modernize type annotations

This commit is contained in:
Jan Petykiewicz 2023-02-23 13:15:32 -08:00 • committed by jan
commit 1463535676
34 changed files with 409 additions and 444 deletions

View file

@ -1,4 +1,4 @@
from typing import TypeVar, Tuple
from typing import TypeVar
from abc import ABCMeta, abstractmethod
@ -28,7 +28,7 @@ class Mirrorable(metaclass=ABCMeta):
"""
pass
def mirror2d(self: T, axes: Tuple[bool, bool]) -> T:
def mirror2d(self: T, axes: tuple[bool, bool]) -> T:
"""
Optionally mirror the entity across both axes

View file

@ -1,6 +1,6 @@
# TODO top-level comment about how traits should set __slots__ = (), and how to use AutoSlots
from typing import TypeVar, Any, Optional
from typing import TypeVar, Any
from abc import ABCMeta, abstractmethod
import numpy
@ -65,7 +65,7 @@ class Positionable(metaclass=ABCMeta):
pass
@abstractmethod
def get_bounds(self) -> Optional[NDArray[numpy.float64]]:
def get_bounds(self) -> NDArray[numpy.float64] | None:
"""
Returns `[[x_min, y_min], [x_max, y_max]]` which specify a minimal bounding box for the entity.
Returns `None` for an empty entity.

View file

@ -1,4 +1,4 @@
from typing import TypeVar, Optional, TYPE_CHECKING
from typing import TypeVar, TYPE_CHECKING
from abc import ABCMeta, abstractmethod
from ..error import MasqueError
@ -26,7 +26,7 @@ class Repeatable(metaclass=ABCMeta):
'''
@property
@abstractmethod
def repetition(self) -> Optional['Repetition']:
def repetition(self) -> 'Repetition' | None:
"""
Repetition object, or None (single instance only)
"""
@ -34,14 +34,14 @@ class Repeatable(metaclass=ABCMeta):
# @repetition.setter
# @abstractmethod
# def repetition(self, repetition: Optional['Repetition']):
# def repetition(self, repetition: 'Repetition' | None):
# pass
'''
---- Methods
'''
@abstractmethod
def set_repetition(self: T, repetition: Optional['Repetition']) -> T:
def set_repetition(self: T, repetition: 'Repetition' | None) -> T:
"""
Set the repetition
@ -60,18 +60,18 @@ class RepeatableImpl(Repeatable, metaclass=ABCMeta):
"""
__slots__ = _empty_slots
_repetition: Optional['Repetition']
_repetition: 'Repetition' | None
""" Repetition object, or None (single instance only) """
'''
---- Non-abstract properties
'''
@property
def repetition(self) -> Optional['Repetition']:
def repetition(self) -> 'Repetition' | None:
return self._repetition
@repetition.setter
def repetition(self, repetition: Optional['Repetition']):
def repetition(self, repetition: 'Repetition' | None):
from ..repetition import Repetition
if repetition is not None and not isinstance(repetition, Repetition):
raise MasqueError(f'{repetition} is not a valid Repetition object!')
@ -80,6 +80,6 @@ class RepeatableImpl(Repeatable, metaclass=ABCMeta):
'''
---- Non-abstract methods
'''
def set_repetition(self: I, repetition: Optional['Repetition']) -> I:
def set_repetition(self: I, repetition: 'Repetition' | None) -> I:
self.repetition = repetition
return self