Add NoReturn __contains__ with a more descriptive error message

This commit is contained in:
jan 2023-10-12 01:32:33 -07:00
parent f2e2de1d2e
commit 2d88c00cd7

View File

@ -1,4 +1,4 @@
from typing import Iterable, KeysView, ValuesView, overload, Self, Mapping from typing import Iterable, KeysView, ValuesView, overload, Self, Mapping, NoReturn
import warnings import warnings
import traceback import traceback
import logging import logging
@ -138,6 +138,9 @@ class PortList(metaclass=ABCMeta):
else: else:
return {k: self.ports[k] for k in key} return {k: self.ports[k] for k in key}
def __contains__(self, key: str) -> NoReturn:
raise NotImplementedError('PortsList.__contains__ is left unimplemented. Use `key in container.ports` instead.')
# NOTE: Didn't add keys(), items(), values(), __contains__(), etc. # NOTE: Didn't add keys(), items(), values(), __contains__(), etc.
# because it's weird on stuff like Pattern that contains other lists # because it's weird on stuff like Pattern that contains other lists
# and because you can just grab .ports and use that instead # and because you can just grab .ports and use that instead