Skip to content

Commit 309b817

Browse files
committed
fix(nrtk_transforms): avoid runtime error from type hints
1 parent bd67b41 commit 309b817

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

src/nrtk_explorer/library/nrtk_transforms.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from typing import Any, Dict, Union
1+
from typing import Any, Dict, Optional, TYPE_CHECKING
22

33
import numpy as np
44
import logging
@@ -15,22 +15,27 @@
1515
from pybsm.otf import darkCurrentFromDensity
1616
from nrtk.impls.perturb_image.generic.cv2.blur import GaussianBlurPerturber
1717
from nrtk.impls.perturb_image.pybsm.perturber import PybsmPerturber, PybsmSensor, PybsmScenario
18-
19-
GaussianBlurPerturberType = Union[GaussianBlurPerturber, None]
20-
PybsmPerturberType = Union[PybsmPerturber, None]
2118
except ImportError:
2219
logger.info("Disabling NRTK transforms due to missing library/failing imports")
2320
ENABLED_NRTK_TRANSFORMS = False
21+
22+
if TYPE_CHECKING:
23+
GaussianBlurPerturberType = GaussianBlurPerturber
24+
PybsmPerturberType = PybsmPerturber
25+
else:
2426
GaussianBlurPerturberType = None
2527
PybsmPerturberType = None
2628

29+
GaussianBlurPerturberArg = Optional[GaussianBlurPerturberType]
30+
PybsmPerturberArg = Optional[PybsmPerturberType]
31+
2732

2833
def nrtk_transforms_available():
2934
return ENABLED_NRTK_TRANSFORMS
3035

3136

3237
class NrtkGaussianBlurTransform(ImageTransform):
33-
def __init__(self, perturber: GaussianBlurPerturberType = None):
38+
def __init__(self, perturber: GaussianBlurPerturberArg = None):
3439
if perturber is None:
3540
perturber = GaussianBlurPerturber()
3641

@@ -160,7 +165,7 @@ def createSampleSensorAndScenario():
160165

161166

162167
class NrtkPybsmTransform(ImageTransform):
163-
def __init__(self, perturber: PybsmPerturberType = None):
168+
def __init__(self, perturber: PybsmPerturberArg = None):
164169
if perturber is None:
165170
sensor, scenario = createSampleSensorAndScenario()
166171
perturber = PybsmPerturber(sensor=sensor, scenario=scenario)

0 commit comments

Comments
 (0)