about summary refs log tree commit diff
diff options
context:
space:
mode:
authorArun Isaac2022-09-16 15:40:33 +0530
committerArun Isaac2022-09-16 15:40:33 +0530
commitee635c900525ceecc7619a9b47ab042e8fb81a50 (patch)
tree0b6bdb9e254586afa3c7c9990ae67f86d3fed6db
parent0ac7b18c846fe8df134a2241bb0163e9fd4b7633 (diff)
downloadgenenetwork2-ee635c900525ceecc7619a9b47ab042e8fb81a50.tar.gz
Add example code to docstring of MonadicDict.
* wqflask/utility/monads.py (MonadicDict): Add example code to
docstring.
-rw-r--r--wqflask/utility/monads.py44
1 files changed, 44 insertions, 0 deletions
diff --git a/wqflask/utility/monads.py b/wqflask/utility/monads.py
index d683b0ae..21d04f36 100644
--- a/wqflask/utility/monads.py
+++ b/wqflask/utility/monads.py
@@ -20,6 +20,50 @@ class MonadicDict(UserDict):
 
     Keys in this dictionary can be any python object, but values must
     be monadic values.
+
+    from pymonad.maybe import Just, Nothing
+
+    Initialize by setting individual keys to monadic values.
+    >>> d = MonadicDict()
+    >>> d["foo"] = Just(1)
+    >>> d["bar"] = Nothing
+    >>> d
+    {'foo': 1}
+
+    Initialize by converting a built-in dictionary object.
+    >>> MonadicDict({"foo": 1})
+    {'foo': 1}
+    >>> MonadicDict({"foo": 1, "bar": None})
+    {'foo': 1}
+
+    Initialize from a built-in dictionary object with monadic values.
+    >>> MonadicDict({"foo": Just(1)}, convert=False)
+    {'foo': 1}
+    >>> MonadicDict({"foo": Just(1), "bar": Nothing}, convert=False)
+    {'foo': 1}
+
+    Get values. For non-existent keys, Nothing is returned. Else, a
+    Just value is returned.
+    >>> d["foo"]
+    Just 1
+    >>> d["bar"]
+    Nothing
+
+    Convert MonadicDict object to a built-in dictionary object.
+    >>> d.data
+    {'foo': 1}
+    >>> type(d)
+    <class 'utility.monads.MonadicDict'>
+    >>> type(d.data)
+    <class 'dict'>
+
+    Delete keys. Deleting non-existent keys does nothing.
+    >>> del d["bar"]
+    >>> d
+    {'foo': 1}
+    >>> del d["foo"]
+    >>> d
+    {}
     """
     def __init__(self, d={}, convert=True):
         """