mesonlib: Make a few type annotations strings

Mypy know what to do with these and isn't confused, but some versions of
python 3.5 (at least 3.5.2) can't handle these annotations. By making
them strings the python interpreter wont try to evaluate them.

Fixes #5326
pull/5339/head
Dylan Baker 6 years ago committed by Jussi Pakkanen
parent 1f4023fa47
commit edb1229a48
  1. 6
      mesonbuild/envconfig.py
  2. 3
      mesonbuild/mesonlib.py

@ -134,7 +134,7 @@ class Properties(HasEnvVarFallback):
def get_sys_root(self) -> typing.Optional[typing.Union[str, typing.List[str]]]: def get_sys_root(self) -> typing.Optional[typing.Union[str, typing.List[str]]]:
return self.properties.get('sys_root', None) return self.properties.get('sys_root', None)
def __eq__(self, other: typing.Any) -> typing.Union[bool, 'NotImplemented']: def __eq__(self, other: typing.Any) -> 'typing.Union[bool, NotImplemented]':
if isinstance(other, type(self)): if isinstance(other, type(self)):
return self.properties == other.properties return self.properties == other.properties
return NotImplemented return NotImplemented
@ -159,7 +159,7 @@ class MachineInfo:
self.endian = endian self.endian = endian
self.is_64_bit = cpu_family in CPU_FAMILES_64_BIT # type: bool self.is_64_bit = cpu_family in CPU_FAMILES_64_BIT # type: bool
def __eq__(self, other: typing.Any) -> typing.Union[bool, 'NotImplemented']: def __eq__(self, other: typing.Any) -> 'typing.Union[bool, NotImplemented]':
if self.__class__ is not other.__class__: if self.__class__ is not other.__class__:
return NotImplemented return NotImplemented
return \ return \
@ -168,7 +168,7 @@ class MachineInfo:
self.cpu == other.cpu and \ self.cpu == other.cpu and \
self.endian == other.endian self.endian == other.endian
def __ne__(self, other: typing.Any) -> typing.Union[bool, 'NotImplemented']: def __ne__(self, other: typing.Any) -> 'typing.Union[bool, NotImplemented]':
if self.__class__ is not other.__class__: if self.__class__ is not other.__class__:
return NotImplemented return NotImplemented
return not self.__eq__(other) return not self.__eq__(other)

@ -920,7 +920,8 @@ def extract_as_list(dict_object, *keys, pop=False, **kwargs):
result.append(listify(fetch(key, []), **kwargs)) result.append(listify(fetch(key, []), **kwargs))
return result return result
def typeslistify(item: typing.Union[_T, typing.List[_T]], types: typing.Union[typing.Type[_T], typing.Tuple[typing.Type[_T]]]) -> typing.List[_T]: def typeslistify(item: 'typing.Union[_T, typing.List[_T]]',
types: 'typing.Union[typing.Type[_T], typing.Tuple[typing.Type[_T]]]') -> typing.List[_T]:
''' '''
Ensure that type(@item) is one of @types or a Ensure that type(@item) is one of @types or a
list of items all of which are of type @types list of items all of which are of type @types

Loading…
Cancel
Save