forked from jan/fatamorgana
[basic] cast to the expected types before conversion
This commit is contained in:
parent
7f7431f018
commit
5b42cdf609
1 changed files with 6 additions and 2 deletions
|
|
@ -2,7 +2,7 @@
|
|||
This module contains all datatypes and parsing/writing functions for
|
||||
all abstractions below the 'record' or 'block' level.
|
||||
"""
|
||||
from typing import Any, IO, Union
|
||||
from typing import Any, IO, Union, TYPE_CHECKING
|
||||
from collections.abc import Sequence
|
||||
from fractions import Fraction
|
||||
from enum import Enum
|
||||
|
|
@ -250,6 +250,7 @@ def write_uint(stream: IO[bytes], n: int) -> int:
|
|||
Raises:
|
||||
SignedError: if `n` is negative.
|
||||
"""
|
||||
n = int(n)
|
||||
if n < 0:
|
||||
raise SignedError(f'uint must be positive: {n}')
|
||||
|
||||
|
|
@ -295,6 +296,7 @@ def encode_sint(sint: int) -> int:
|
|||
Returns:
|
||||
Unsigned integer encoding for the input.
|
||||
"""
|
||||
sint = int(sint)
|
||||
return (abs(sint) << 1) | (sint < 0)
|
||||
|
||||
|
||||
|
|
@ -1595,7 +1597,7 @@ def read_point_list(
|
|||
|
||||
def write_point_list(
|
||||
stream: IO[bytes],
|
||||
points: list[Sequence[int]],
|
||||
points: 'list[Sequence[int]] | NDArray',
|
||||
fast: bool = False,
|
||||
implicit_closed: bool = True
|
||||
) -> int:
|
||||
|
|
@ -1618,6 +1620,8 @@ def write_point_list(
|
|||
Number of bytes written.
|
||||
"""
|
||||
# If we're in a hurry, just write the points as arbitrary Deltas
|
||||
if _USE_NUMPY:
|
||||
points = numpy.asarray(points, dtype=int)
|
||||
if fast:
|
||||
size = write_uint(stream, 4)
|
||||
size += write_uint(stream, len(points))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue