+The bidict.BiDict class is a subclass of :py:class:`dict` that
+implements a bidirectional dictionary. That is, it maps each key to a
+value in constant time and each value back to the one or more keys it
+is associated with in constant time. It does this by simply storing
+the data twice.
+
+Sample usage::
+
+ # Initialize with a normal dict...
+ third_party_wierdos = BiDict({
+ 'prometheus-fastapi-instrumentator': 'prometheus_fastapi_instrumentator',
+ 'scikit-learn': 'sklearn',
+ 'antlr4-python3-runtime' : 'antlr4',
+ 'python-dateutil': 'dateutil',
+ 'speechrecognition': 'speech_recognition',
+ 'beautifulsoup4': 'bs4',
+ 'python-dateutil': 'dateutil',
+ 'homeassistant-api': 'homeassistant_api',
+ })
+
+ # Use in one direction:
+ x = third_party_wierdos['scikit-learn']
+
+ # Use in opposite direction:
+ y = third_party_wierdos.inverse['python_dateutil']
+
+ # Note: type(y) is List since one value may map back to multiple keys.
+
+