Python's lack of static typing makes it possible to use and rely on classes without importing them. Should you import them anyway? Does it matter?
Example
someclass.py
class SomeClass:
def __init__(self, some_value):
self.some_value = some_value
someclient.py
class SomeClient:
def __init__(self, some_class_instance):
self.some_class_helper = some_class_instance
Here, the functionality of SomeClient clearly relies on SomeClass or at least something that behaves like it. However, someclient.py will work just fine without import someclass. Is this ok? It feels wrong to use something without saying anywhere that you're even using it.