utils#

DisCoPy utility functions.

discopy.utils.dumps(obj)[source]#

Serialise a DisCoPy object as JSON.

>>> from pprint import PrettyPrinter
>>> pprint = PrettyPrinter(indent=4, width=60).pprint
>>> from discopy.cat import Box, Ob
>>> f = Box('f', Ob('x'), Ob('y'), data=[42, {'Alice': 1}])
>>> d = f >> f[::-1]
>>> assert loads(dumps(d)) == d
>>> pprint(json.loads(dumps(d)))
{   'boxes': [   {   'cod': {   'factory': 'discopy.cat.Ob',
                                'name': 'y'},
                     'data': [42, {'Alice': 1}],
                     'dom': {   'factory': 'discopy.cat.Ob',
                                'name': 'x'},
                     'factory': 'discopy.cat.Box',
                     'name': 'f'},
                 {   'cod': {   'factory': 'discopy.cat.Ob',
                                'name': 'x'},
                     'data': [42, {'Alice': 1}],
                     'dom': {   'factory': 'discopy.cat.Ob',
                                'name': 'y'},
                     'factory': 'discopy.cat.Box',
                     'is_dagger': True,
                     'name': 'f'}],
    'cod': {'factory': 'discopy.cat.Ob', 'name': 'x'},
    'dom': {'factory': 'discopy.cat.Ob', 'name': 'x'},
    'factory': 'discopy.cat.Arrow'}
discopy.utils.loads(raw)[source]#

Loads a serialised DisCoPy object.