update type annotations

This commit is contained in:
Jan Petykiewicz 2024-07-29 03:53:08 -07:00
parent bd288d1363
commit d83ef1ce2d
3 changed files with 13 additions and 11 deletions

View File

@ -2,7 +2,8 @@
This module contains all datatypes and parsing/writing functions for This module contains all datatypes and parsing/writing functions for
all abstractions below the 'record' or 'block' level. all abstractions below the 'record' or 'block' level.
""" """
from typing import Type, Union, Any, Sequence, IO from typing import Any, IO, Union
from collections.abc import Sequence
from fractions import Fraction from fractions import Fraction
from enum import Enum from enum import Enum
import math import math
@ -20,7 +21,7 @@ except ImportError:
''' '''
Type definitions Type definitions
''' '''
real_t = Union[int, float, Fraction] real_t = int | float | Fraction
repetition_t = Union['ReuseRepetition', 'GridRepetition', 'ArbitraryRepetition'] repetition_t = Union['ReuseRepetition', 'GridRepetition', 'ArbitraryRepetition']
property_value_t = Union[int, bytes, 'AString', 'NString', 'PropStringReference', float, Fraction] property_value_t = Union[int, bytes, 'AString', 'NString', 'PropStringReference', float, Fraction]
bytes_t = bytes bytes_t = bytes
@ -184,7 +185,7 @@ if _USE_NUMPY:
byte_arr = _read(stream, 1) byte_arr = _read(stream, 1)
return numpy.unpackbits(numpy.frombuffer(byte_arr, dtype=numpy.uint8)) return numpy.unpackbits(numpy.frombuffer(byte_arr, dtype=numpy.uint8))
def _np_write_bool_byte(stream: IO[bytes], bits: tuple[Union[bool, int], ...]) -> int: def _np_write_bool_byte(stream: IO[bytes], bits: tuple[bool | int, ...]) -> int:
""" """
Pack 8 booleans into a byte, and write it to the stream. Pack 8 booleans into a byte, and write it to the stream.
@ -563,7 +564,7 @@ class NString:
""" """
_string: str _string: str
def __init__(self, string_or_bytes: Union[bytes, str]) -> None: def __init__(self, string_or_bytes: bytes | str) -> None:
""" """
Args: Args:
string_or_bytes: Content of the `NString`. string_or_bytes: Content of the `NString`.
@ -677,7 +678,7 @@ class AString:
""" """
_string: str _string: str
def __init__(self, string_or_bytes: Union[bytes, str]) -> None: def __init__(self, string_or_bytes: bytes | str) -> None:
""" """
Args: Args:
string_or_bytes: Content of the AString. string_or_bytes: Content of the AString.
@ -1722,10 +1723,10 @@ class PropStringReference:
ref: int ref: int
"""ID of the target""" """ID of the target"""
reference_type: Type reference_type: type
"""Type of the target: `bytes`, `NString`, or `AString`""" """Type of the target: `bytes`, `NString`, or `AString`"""
def __init__(self, ref: int, ref_type: Type) -> None: def __init__(self, ref: int, ref_type: type) -> None:
""" """
:param ref: ID number of the target. :param ref: ID number of the target.
:param ref_type: Type of the target. One of bytes, NString, AString. :param ref_type: Type of the target. One of bytes, NString, AString.
@ -1767,7 +1768,7 @@ def read_property_value(stream: IO[bytes]) -> property_value_t:
Raises: Raises:
InvalidDataError: if an invalid type is read. InvalidDataError: if an invalid type is read.
""" """
ref_type: Type ref_type: type
prop_type = read_uint(stream) prop_type = read_uint(stream)
if 0 <= prop_type <= 7: if 0 <= prop_type <= 7:
return read_real(stream, prop_type) return read_real(stream, prop_type)

View File

@ -3,7 +3,7 @@ This module contains data structures and functions for reading from and
writing to whole OASIS layout files, and provides a few additional writing to whole OASIS layout files, and provides a few additional
abstractions for the data contained inside them. abstractions for the data contained inside them.
""" """
from typing import Type, IO from typing import IO
import io import io
import logging import logging
@ -528,7 +528,7 @@ class XName:
# Mapping from record id to record class. # Mapping from record id to record class.
_GEOMETRY: dict[int, Type[records.geometry_t]] = { _GEOMETRY: dict[int, type[records.geometry_t]] = {
19: records.Text, 19: records.Text,
20: records.Rectangle, 20: records.Rectangle,
21: records.Polygon, 21: records.Polygon,

View File

@ -10,7 +10,8 @@ Higher-level code (e.g. monitoring for combinations of records with
parse, or code for dealing with nested records in a CBlock) should live parse, or code for dealing with nested records in a CBlock) should live
in main.py instead. in main.py instead.
""" """
from typing import Union, Sequence, Any, TypeVar, IO from typing import Any, TypeVar, IO, Union
from collections.abc import Sequence
from abc import ABCMeta, abstractmethod from abc import ABCMeta, abstractmethod
import copy import copy
import math import math