aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2022-05-27 10:50:19 -0700
committerJussi Pakkanen <jpakkane@gmail.com>2022-06-08 23:19:09 +0300
commitc51639b4ff7c37511ea74d91b2d31f5f22092bdc (patch)
tree228e72703850986b6ec1ab6b2084e75c2cfeb74d
parent3dec0db06dfa2c73e3574ec063446c1f5da23355 (diff)
downloadmeson-c51639b4ff7c37511ea74d91b2d31f5f22092bdc.zip
meson-c51639b4ff7c37511ea74d91b2d31f5f22092bdc.tar.gz
meson-c51639b4ff7c37511ea74d91b2d31f5f22092bdc.tar.bz2
typing: replace ImmutableSetProtocol with typing.AbstractSet
Which does the same thing, but is a builtin and is more accurate
-rw-r--r--mesonbuild/_typing.py39
-rw-r--r--mesonbuild/build.py8
2 files changed, 4 insertions, 43 deletions
diff --git a/mesonbuild/_typing.py b/mesonbuild/_typing.py
index 7616ad6..d3cfa39 100644
--- a/mesonbuild/_typing.py
+++ b/mesonbuild/_typing.py
@@ -79,42 +79,3 @@ class ImmutableListProtocol(Protocol[T]):
def index(self, item: T) -> int: ...
def copy(self) -> typing.List[T]: ...
-
-
-class ImmutableSetProtocol(Protocol[T]):
-
- """A protocol for a set that cannot be mutated.
-
- This provides for cases where mutation of the set is undesired. Although
- this will be allowed at runtime, mypy (or another type checker), will see
- any attempt to use mutative methods as an error.
- """
-
- def __iter__(self) -> typing.Iterator[T]: ...
-
- def __contains__(self, item: T) -> bool: ...
-
- def __len__(self) -> int: ...
-
- def __add__(self, other: typing.Set[T]) -> typing.Set[T]: ...
-
- def __eq__(self, other: typing.Any) -> bool: ...
- def __ne__(self, other: typing.Any) -> bool: ...
- def __le__(self, other: typing.Any) -> bool: ...
- def __lt__(self, other: typing.Any) -> bool: ...
- def __gt__(self, other: typing.Any) -> bool: ...
- def __ge__(self, other: typing.Any) -> bool: ...
-
- def copy(self) -> typing.Set[T]: ...
-
- def difference(self, other: typing.Set[T]) -> typing.Set[T]: ...
-
- def intersection(self, other: typing.Set[T]) -> typing.Set[T]: ...
-
- def issubset(self, other: typing.Set[T]) -> bool: ...
-
- def issuperset(self, other: typing.Set[T]) -> bool: ...
-
- def symmetric_difference(self, other: typing.Set[T]) -> typing.Set[T]: ...
-
- def union(self, other: typing.Set[T]) -> typing.Set[T]: ...
diff --git a/mesonbuild/build.py b/mesonbuild/build.py
index a5a19d9..b2f8f37 100644
--- a/mesonbuild/build.py
+++ b/mesonbuild/build.py
@@ -47,7 +47,7 @@ from .interpreterbase import FeatureNew, FeatureDeprecated
if T.TYPE_CHECKING:
from typing_extensions import Literal
- from ._typing import ImmutableListProtocol, ImmutableSetProtocol
+ from ._typing import ImmutableListProtocol
from .backend.backends import Backend, ExecutableSerialisation
from .interpreter.interpreter import Test, SourceOutputs, Interpreter
from .interpreterbase import SubProject
@@ -1086,7 +1086,7 @@ class BuildTarget(Target):
return result
@lru_cache(maxsize=None)
- def get_link_dep_subdirs(self) -> 'ImmutableSetProtocol[str]':
+ def get_link_dep_subdirs(self) -> T.AbstractSet[str]:
result: OrderedSet[str] = OrderedSet()
for i in self.link_targets:
if not isinstance(i, StaticLibrary):
@@ -2573,7 +2573,7 @@ class CustomTarget(Target, CommandBase):
def get_link_deps_mapping(self, prefix: str) -> T.Mapping[str, str]:
return {}
- def get_link_dep_subdirs(self):
+ def get_link_dep_subdirs(self) -> T.AbstractSet[str]:
return OrderedSet()
def get_all_link_deps(self):
@@ -2765,7 +2765,7 @@ class CustomTargetIndex(HoldableObject):
def get_link_deps_mapping(self, prefix: str) -> T.Mapping[str, str]:
return self.target.get_link_deps_mapping(prefix)
- def get_link_dep_subdirs(self):
+ def get_link_dep_subdirs(self) -> T.AbstractSet[str]:
return self.target.get_link_dep_subdirs()
def is_linkable_target(self) -> bool: