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:
Sybren A. Stüvel 2023-11-02 14:46:38 +01:00
parent b3fb7845c3
commit f9bc6f2d08
7 changed files with 26 additions and 10 deletions

View File

@ -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

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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")

View File

@ -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()

View File

@ -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.