Skip to content

Commit

Permalink
Apply various stubs fixes (#1718)
Browse files Browse the repository at this point in the history
This PR applies various stub fixes; these fixes bring us closer to
getting the stubs tests passing on an editable install.
  • Loading branch information
mdickinson committed Oct 3, 2022
1 parent 60b5011 commit ecf5de5
Show file tree
Hide file tree
Showing 7 changed files with 41 additions and 39 deletions.
5 changes: 5 additions & 0 deletions traits/ctraits.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,8 @@ _TRAIT_SET_OBJECT_DEFAULT_VALUE: int

def _validate_complex_number(value: Any) -> complex: ...
def _validate_float(value: Any) -> float: ...

class CHasTraits:
def __init__(self, **traits: Any): ...

class cTrait: ...
3 changes: 1 addition & 2 deletions traits/has_traits.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -152,8 +152,7 @@ class Vetoable(HasStrictTraits):

VetoableEvent: _Any

class MetaInterface(ABCMetaHasTraits):
def __call__(self, adaptee: _Any, default: _Any = ...): ...
class MetaInterface(ABCMetaHasTraits): ...

class Interface(HasTraits, metaclass=MetaInterface): ...

Expand Down
34 changes: 17 additions & 17 deletions traits/stubs_tests/examples/Any.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,23 +19,23 @@ class Test(HasTraits):
obj.i = "5"
obj.i = 5
obj.i = 5.5
obj.var = {"a": 5, "b": 6}
obj.var = {"a": 5.5, "b": 6}
obj.var = {"a": 5, "b": None, "c": ""}
obj.var = []
obj.var = [1, 2, 3]
obj.var = [1.1]
obj.var = [1.1, 2, 3.3]
obj.var = ''
obj.var = "5"
obj.var = 5
obj.var = False
obj.var = 5.5
obj.var = 5 + 4j
obj.var = True
obj.var = [1, 2, "3"]
obj.var = None
obj.var = ['1']
obj.i = {"a": 5, "b": 6}
obj.i = {"a": 5.5, "b": 6}
obj.i = {"a": 5, "b": None, "c": ""}
obj.i = []
obj.i = [1, 2, 3]
obj.i = [1.1]
obj.i = [1.1, 2, 3.3]
obj.i = ''
obj.i = "5"
obj.i = 5
obj.i = False
obj.i = 5.5
obj.i = 5 + 4j
obj.i = True
obj.i = [1, 2, "3"]
obj.i = None
obj.i = ['1']


class Test2(HasTraits):
Expand Down
24 changes: 12 additions & 12 deletions traits/stubs_tests/examples/List.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,18 +33,18 @@ class TestAnyList(HasTraits):
var = List(Any())


obj = TestAnyList()
obj.var = "5"
obj.var = 5 # E: assignment
obj.var = False # E: assignment
obj.var = 5.5 # E: assignment
obj.var = 5 + 4j # E: assignment
obj.var = True # E: assignment
obj.var = [1.1, 2, 3.3]
obj.var = [1, 2, "3"]
obj.var = None # E: assignment

obj.var = [1, 2, 3]
obj2 = TestAnyList()
obj2.var = "5"
obj2.var = 5 # E: assignment
obj2.var = False # E: assignment
obj2.var = 5.5 # E: assignment
obj2.var = 5 + 4j # E: assignment
obj2.var = True # E: assignment
obj2.var = [1.1, 2, 3.3]
obj2.var = [1, 2, "3"]
obj2.var = None # E: assignment

obj2.var = [1, 2, 3]


class TestPlainList(HasTraits):
Expand Down
6 changes: 3 additions & 3 deletions traits/stubs_tests/examples/completeness.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ class HasName(HasStrictTraits):
name = Str()


def try_assigning_age(x: HasName, new_name: str):
def try_assigning_name(x: HasName, new_name: str):
try:
x.age = new_name
x.name = new_name
except TraitError:
raise ValueError(f"Bad age: {new_name}")
raise ValueError(f"Bad name: {new_name}")
5 changes: 3 additions & 2 deletions traits/stubs_tests/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ def run_mypy(filepath):
dest_filename = os.path.basename(filepath)
dest = shutil.copyfile(filepath, os.path.join(tempdir, dest_filename))
normal_report, error_report, exit_status = mypy_api.run(
[dest, '--show-error-code'])
[dest, '--show-error-code', '--follow-imports=skip'])
return normal_report, error_report, exit_status


Expand Down Expand Up @@ -165,5 +165,6 @@ def assertRaisesMypyError(self, filepath):
for line, error_codes in parsed_mypy_output.items():
if line not in line_error_map or sorted(
line_error_map[line]) != sorted(list(error_codes)):
s = "\n{}\n{}".format(str(filepath), normal_report)
s = "Unexpected error on line {}\n{}\n{}".format(
line, str(filepath), normal_report)
raise AssertionError(s)
3 changes: 0 additions & 3 deletions traits/trait_type.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,6 @@ class _TraitMixin(Generic[_Accepts, _Stores]):
def __set__(self, object: Any, value: _Accepts) -> None: ...


_Trait = _TraitMixin()


class _TraitType(BaseTraitHandler, Generic[_Accepts, _Stores]):
default_value: _Stores = ...
metadata: Dict[str, Any] = ...
Expand Down

0 comments on commit ecf5de5

Please sign in to comment.