Cleanup: fix mypy errors
This mostly handles a mypy change where implicit optionals (i.e. things like `size: int = None`) are no longer allowed. No functional changes.
This commit is contained in:
parent
b3fb7845c3
commit
f9bc6f2d08
@ -22,6 +22,7 @@
|
|||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import typing
|
import typing
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
from . import header, exceptions
|
from . import header, exceptions
|
||||||
|
|
||||||
@ -104,7 +105,7 @@ class Struct:
|
|||||||
|
|
||||||
log = log.getChild("Struct")
|
log = log.getChild("Struct")
|
||||||
|
|
||||||
def __init__(self, dna_type_id: bytes, size: int = None) -> None:
|
def __init__(self, dna_type_id: bytes, size: Optional[int] = None) -> None:
|
||||||
"""
|
"""
|
||||||
:param dna_type_id: name of the struct in C, like b'AlembicObjectPath'.
|
:param dna_type_id: name of the struct in C, like b'AlembicObjectPath'.
|
||||||
:param size: only for unit tests; typically set after construction by
|
:param size: only for unit tests; typically set after construction by
|
||||||
|
|||||||
@ -25,6 +25,7 @@ import logging
|
|||||||
import pathlib
|
import pathlib
|
||||||
import queue
|
import queue
|
||||||
import typing
|
import typing
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
import blender_asset_tracer.trace.progress
|
import blender_asset_tracer.trace.progress
|
||||||
|
|
||||||
@ -134,7 +135,7 @@ class ThreadSafeCallback(Callback):
|
|||||||
def missing_file(self, filename: pathlib.Path) -> None:
|
def missing_file(self, filename: pathlib.Path) -> None:
|
||||||
self._queue(self.wrapped.missing_file, filename)
|
self._queue(self.wrapped.missing_file, filename)
|
||||||
|
|
||||||
def flush(self, timeout: float = None) -> None:
|
def flush(self, timeout: Optional[float] = None) -> None:
|
||||||
"""Call the queued calls, call this in the main thread."""
|
"""Call the queued calls, call this in the main thread."""
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
|
|||||||
@ -25,6 +25,7 @@ import queue
|
|||||||
import threading
|
import threading
|
||||||
import time
|
import time
|
||||||
import typing
|
import typing
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
from . import progress
|
from . import progress
|
||||||
|
|
||||||
@ -186,7 +187,7 @@ class FileTransferer(threading.Thread, metaclass=abc.ABCMeta):
|
|||||||
if self.done.is_set():
|
if self.done.is_set():
|
||||||
return
|
return
|
||||||
|
|
||||||
def join(self, timeout: float = None) -> None:
|
def join(self, timeout: Optional[float] = None) -> None:
|
||||||
"""Wait for the transfer to finish/stop."""
|
"""Wait for the transfer to finish/stop."""
|
||||||
|
|
||||||
if timeout:
|
if timeout:
|
||||||
|
|||||||
@ -21,6 +21,7 @@ import functools
|
|||||||
import logging
|
import logging
|
||||||
import pathlib
|
import pathlib
|
||||||
import typing
|
import typing
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
from blender_asset_tracer import blendfile, bpathlib
|
from blender_asset_tracer import blendfile, bpathlib
|
||||||
from blender_asset_tracer.blendfile import dna
|
from blender_asset_tracer.blendfile import dna
|
||||||
@ -57,9 +58,9 @@ class BlockUsage:
|
|||||||
block: blendfile.BlendFileBlock,
|
block: blendfile.BlendFileBlock,
|
||||||
asset_path: bpathlib.BlendPath,
|
asset_path: bpathlib.BlendPath,
|
||||||
is_sequence: bool = False,
|
is_sequence: bool = False,
|
||||||
path_full_field: dna.Field = None,
|
path_full_field: Optional[dna.Field] = None,
|
||||||
path_dir_field: dna.Field = None,
|
path_dir_field: Optional[dna.Field] = None,
|
||||||
path_base_field: dna.Field = None,
|
path_base_field: Optional[dna.Field] = None,
|
||||||
block_name: bytes = b"",
|
block_name: bytes = b"",
|
||||||
) -> None:
|
) -> None:
|
||||||
if block_name:
|
if block_name:
|
||||||
|
|||||||
@ -20,6 +20,7 @@
|
|||||||
import logging
|
import logging
|
||||||
import pathlib
|
import pathlib
|
||||||
import unittest
|
import unittest
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
from blender_asset_tracer import blendfile
|
from blender_asset_tracer import blendfile
|
||||||
|
|
||||||
@ -29,6 +30,9 @@ logging.basicConfig(
|
|||||||
|
|
||||||
|
|
||||||
class AbstractBlendFileTest(unittest.TestCase):
|
class AbstractBlendFileTest(unittest.TestCase):
|
||||||
|
blendfiles: pathlib.Path
|
||||||
|
bf: Optional[blendfile.BlendFile]
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def setUpClass(cls):
|
def setUpClass(cls):
|
||||||
cls.blendfiles = pathlib.Path(__file__).with_name("blendfiles")
|
cls.blendfiles = pathlib.Path(__file__).with_name("blendfiles")
|
||||||
|
|||||||
@ -19,6 +19,7 @@
|
|||||||
# (c) 2019, Blender Foundation - Sybren A. Stüvel
|
# (c) 2019, Blender Foundation - Sybren A. Stüvel
|
||||||
import pathlib
|
import pathlib
|
||||||
import platform
|
import platform
|
||||||
|
from typing import Dict
|
||||||
|
|
||||||
import responses
|
import responses
|
||||||
|
|
||||||
@ -29,6 +30,12 @@ httpmock = responses.RequestsMock()
|
|||||||
|
|
||||||
|
|
||||||
class ShamanTransferTest(AbstractBlendFileTest):
|
class ShamanTransferTest(AbstractBlendFileTest):
|
||||||
|
test_file1: pathlib.Path
|
||||||
|
test_file2: pathlib.Path
|
||||||
|
expected_checksums: Dict[pathlib.Path, str]
|
||||||
|
file_sizes: Dict[pathlib.Path, int]
|
||||||
|
packed_names: Dict[pathlib.Path, str]
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def setUpClass(cls):
|
def setUpClass(cls):
|
||||||
super().setUpClass()
|
super().setUpClass()
|
||||||
|
|||||||
@ -2,6 +2,7 @@ import collections
|
|||||||
import logging
|
import logging
|
||||||
import sys
|
import sys
|
||||||
import typing
|
import typing
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
from blender_asset_tracer import trace, blendfile
|
from blender_asset_tracer import trace, blendfile
|
||||||
from blender_asset_tracer.blendfile import dna
|
from blender_asset_tracer.blendfile import dna
|
||||||
@ -65,7 +66,7 @@ class AssetHoldingBlocksTest(AbstractTracerTest):
|
|||||||
|
|
||||||
class DepsTest(AbstractTracerTest):
|
class DepsTest(AbstractTracerTest):
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def field_name(field: dna.Field) -> typing.Optional[str]:
|
def field_name(field: Optional[dna.Field]) -> typing.Optional[str]:
|
||||||
if field is None:
|
if field is None:
|
||||||
return None
|
return None
|
||||||
return field.name.name_full.decode()
|
return field.name.name_full.decode()
|
||||||
@ -88,18 +89,18 @@ class DepsTest(AbstractTracerTest):
|
|||||||
|
|
||||||
exp = expects.get(dep.block_name, None)
|
exp = expects.get(dep.block_name, None)
|
||||||
if isinstance(exp, (set, list)):
|
if isinstance(exp, (set, list)):
|
||||||
self.assertIn(actual, exp, msg="for block %s" % dep.block_name)
|
self.assertIn(actual, exp, msg="for block %r" % dep.block_name)
|
||||||
exp.remove(actual)
|
exp.remove(actual)
|
||||||
if not exp:
|
if not exp:
|
||||||
# Don't leave empty sets in expects.
|
# Don't leave empty sets in expects.
|
||||||
del expects[dep.block_name]
|
del expects[dep.block_name]
|
||||||
elif exp is None:
|
elif exp is None:
|
||||||
self.assertIsNone(
|
self.assertIsNone(
|
||||||
actual, msg="unexpected dependency of block %s" % dep.block_name
|
actual, msg="unexpected dependency of block %r" % dep.block_name
|
||||||
)
|
)
|
||||||
del expects[dep.block_name]
|
del expects[dep.block_name]
|
||||||
else:
|
else:
|
||||||
self.assertEqual(exp, actual, msg="for block %s" % dep.block_name)
|
self.assertEqual(exp, actual, msg="for block %r" % dep.block_name)
|
||||||
del expects[dep.block_name]
|
del expects[dep.block_name]
|
||||||
|
|
||||||
# All expected uses should have been seen.
|
# All expected uses should have been seen.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user