From 8a50312099d8014a10ce36acf2f64d21c98bd4e6 Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Thu, 21 Dec 2023 13:31:36 +0000 Subject: Move the rust stubs inline for better IDE integration (#16757) At least for vscode this allows click through / type checking / syntax highlighting. --- changelog.d/16757.misc | 1 + stubs/synapse/__init__.pyi | 0 stubs/synapse/synapse_rust/__init__.pyi | 3 -- stubs/synapse/synapse_rust/acl.pyi | 21 --------- stubs/synapse/synapse_rust/push.pyi | 76 --------------------------------- synapse/synapse_rust/__init__.pyi | 3 ++ synapse/synapse_rust/acl.pyi | 21 +++++++++ synapse/synapse_rust/push.pyi | 76 +++++++++++++++++++++++++++++++++ 8 files changed, 101 insertions(+), 100 deletions(-) create mode 100644 changelog.d/16757.misc delete mode 100644 stubs/synapse/__init__.pyi delete mode 100644 stubs/synapse/synapse_rust/__init__.pyi delete mode 100644 stubs/synapse/synapse_rust/acl.pyi delete mode 100644 stubs/synapse/synapse_rust/push.pyi create mode 100644 synapse/synapse_rust/__init__.pyi create mode 100644 synapse/synapse_rust/acl.pyi create mode 100644 synapse/synapse_rust/push.pyi diff --git a/changelog.d/16757.misc b/changelog.d/16757.misc new file mode 100644 index 0000000000..9856bf1aa6 --- /dev/null +++ b/changelog.d/16757.misc @@ -0,0 +1 @@ +Move the rust stubs inline for better IDE integration. diff --git a/stubs/synapse/__init__.pyi b/stubs/synapse/__init__.pyi deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/stubs/synapse/synapse_rust/__init__.pyi b/stubs/synapse/synapse_rust/__init__.pyi deleted file mode 100644 index d25c609106..0000000000 --- a/stubs/synapse/synapse_rust/__init__.pyi +++ /dev/null @@ -1,3 +0,0 @@ -def sum_as_string(a: int, b: int) -> str: ... -def get_rust_file_digest() -> str: ... -def reset_logging_config() -> None: ... diff --git a/stubs/synapse/synapse_rust/acl.pyi b/stubs/synapse/synapse_rust/acl.pyi deleted file mode 100644 index e03989b627..0000000000 --- a/stubs/synapse/synapse_rust/acl.pyi +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright 2023 The Matrix.org Foundation C.I.C. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from typing import List - -class ServerAclEvaluator: - def __init__( - self, allow_ip_literals: bool, allow: List[str], deny: List[str] - ) -> None: ... - def server_matches_acl_event(self, server_name: str) -> bool: ... diff --git a/stubs/synapse/synapse_rust/push.pyi b/stubs/synapse/synapse_rust/push.pyi deleted file mode 100644 index 25259ce91d..0000000000 --- a/stubs/synapse/synapse_rust/push.pyi +++ /dev/null @@ -1,76 +0,0 @@ -# Copyright 2022 The Matrix.org Foundation C.I.C. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from typing import Any, Collection, Dict, Mapping, Optional, Sequence, Tuple, Union - -from synapse.types import JsonDict, JsonValue - -class PushRule: - @property - def rule_id(self) -> str: ... - @property - def priority_class(self) -> int: ... - @property - def conditions(self) -> Sequence[Mapping[str, str]]: ... - @property - def actions(self) -> Sequence[Union[Mapping[str, Any], str]]: ... - @property - def default(self) -> bool: ... - @property - def default_enabled(self) -> bool: ... - @staticmethod - def from_db( - rule_id: str, priority_class: int, conditions: str, actions: str - ) -> "PushRule": ... - -class PushRules: - def __init__(self, rules: Collection[PushRule]): ... - def rules(self) -> Collection[PushRule]: ... - -class FilteredPushRules: - def __init__( - self, - push_rules: PushRules, - enabled_map: Dict[str, bool], - msc1767_enabled: bool, - msc3381_polls_enabled: bool, - msc3664_enabled: bool, - msc4028_push_encrypted_events: bool, - ): ... - def rules(self) -> Collection[Tuple[PushRule, bool]]: ... - -def get_base_rule_ids() -> Collection[str]: ... - -class PushRuleEvaluator: - def __init__( - self, - flattened_keys: Mapping[str, JsonValue], - has_mentions: bool, - room_member_count: int, - sender_power_level: Optional[int], - notification_power_levels: Mapping[str, int], - related_events_flattened: Mapping[str, Mapping[str, JsonValue]], - related_event_match_enabled: bool, - room_version_feature_flags: Tuple[str, ...], - msc3931_enabled: bool, - ): ... - def run( - self, - push_rules: FilteredPushRules, - user_id: Optional[str], - display_name: Optional[str], - ) -> Collection[Union[Mapping, str]]: ... - def matches( - self, condition: JsonDict, user_id: Optional[str], display_name: Optional[str] - ) -> bool: ... diff --git a/synapse/synapse_rust/__init__.pyi b/synapse/synapse_rust/__init__.pyi new file mode 100644 index 0000000000..d25c609106 --- /dev/null +++ b/synapse/synapse_rust/__init__.pyi @@ -0,0 +1,3 @@ +def sum_as_string(a: int, b: int) -> str: ... +def get_rust_file_digest() -> str: ... +def reset_logging_config() -> None: ... diff --git a/synapse/synapse_rust/acl.pyi b/synapse/synapse_rust/acl.pyi new file mode 100644 index 0000000000..e03989b627 --- /dev/null +++ b/synapse/synapse_rust/acl.pyi @@ -0,0 +1,21 @@ +# Copyright 2023 The Matrix.org Foundation C.I.C. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import List + +class ServerAclEvaluator: + def __init__( + self, allow_ip_literals: bool, allow: List[str], deny: List[str] + ) -> None: ... + def server_matches_acl_event(self, server_name: str) -> bool: ... diff --git a/synapse/synapse_rust/push.pyi b/synapse/synapse_rust/push.pyi new file mode 100644 index 0000000000..25259ce91d --- /dev/null +++ b/synapse/synapse_rust/push.pyi @@ -0,0 +1,76 @@ +# Copyright 2022 The Matrix.org Foundation C.I.C. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import Any, Collection, Dict, Mapping, Optional, Sequence, Tuple, Union + +from synapse.types import JsonDict, JsonValue + +class PushRule: + @property + def rule_id(self) -> str: ... + @property + def priority_class(self) -> int: ... + @property + def conditions(self) -> Sequence[Mapping[str, str]]: ... + @property + def actions(self) -> Sequence[Union[Mapping[str, Any], str]]: ... + @property + def default(self) -> bool: ... + @property + def default_enabled(self) -> bool: ... + @staticmethod + def from_db( + rule_id: str, priority_class: int, conditions: str, actions: str + ) -> "PushRule": ... + +class PushRules: + def __init__(self, rules: Collection[PushRule]): ... + def rules(self) -> Collection[PushRule]: ... + +class FilteredPushRules: + def __init__( + self, + push_rules: PushRules, + enabled_map: Dict[str, bool], + msc1767_enabled: bool, + msc3381_polls_enabled: bool, + msc3664_enabled: bool, + msc4028_push_encrypted_events: bool, + ): ... + def rules(self) -> Collection[Tuple[PushRule, bool]]: ... + +def get_base_rule_ids() -> Collection[str]: ... + +class PushRuleEvaluator: + def __init__( + self, + flattened_keys: Mapping[str, JsonValue], + has_mentions: bool, + room_member_count: int, + sender_power_level: Optional[int], + notification_power_levels: Mapping[str, int], + related_events_flattened: Mapping[str, Mapping[str, JsonValue]], + related_event_match_enabled: bool, + room_version_feature_flags: Tuple[str, ...], + msc3931_enabled: bool, + ): ... + def run( + self, + push_rules: FilteredPushRules, + user_id: Optional[str], + display_name: Optional[str], + ) -> Collection[Union[Mapping, str]]: ... + def matches( + self, condition: JsonDict, user_id: Optional[str], display_name: Optional[str] + ) -> bool: ... -- cgit 1.4.1