In Python 3, I would like to check whether value is either string or None.
One way to do this is
assert type(value) in { st
You can use type(None) to get the type object, but you want to use isinstance() here, not type() in {...}:
assert isinstance(value, (str, type(None)))
The NoneType object is not otherwise exposed anywhere.
I'd not use type checking for that at all really, I'd use:
assert value is None or isinstance(value, str)
as None is a singleton (very much on purpose) and NoneType explicitly forbids subclassing anyway:
>>> type(None)() is None
True
>>> class NoneSubclass(type(None)):
... pass
...
Traceback (most recent call last):
File "", line 1, in
TypeError: type 'NoneType' is not an acceptable base type