larray.Session.summary

Session.summary(template=None) str[source]

Return a summary of the content of the session.

Parameters
template: dict {object type: str} or dict {object type: func}

Template describing how items and metadata are summarized. For each object type, it is possible to provide either a string template or a function taking the the key and value of a session item as parameters and returning a string (see examples). A string template contains specific arguments written inside brackets {}. Available arguments are:

  • for groups: ‘key’, ‘name’, ‘axis_name’, ‘labels’ and ‘length’,

  • for axes: ‘key’, ‘name’, ‘labels’ and ‘length’,

  • for arrays: ‘key’, ‘axes_names’, ‘shape’, ‘dtype’ and ‘title’,

  • for session metadata: ‘key’, ‘value’,

  • for all other types: ‘key’, ‘value’.

Returns
str

Short representation of the content of the session.

Examples

>>> axis1 = Axis("a=a0..a2")
>>> group1 = axis1['a0,a1'] >> 'a01'
>>> arr1 = ndtest((2, 2), dtype=np.int64, meta={'title': 'array 1'})
>>> arr2 = ndtest(4, dtype=np.int64, meta={'title': 'array 2'})
>>> arr3 = ndtest((3, 2), dtype=np.int64, meta={'title': 'array 3'})
>>> s = Session({'axis1': axis1, 'group1': group1, 'arr1': arr1, 'arr2': arr2, 'arr3': arr3})
>>> s.meta.title = 'my title'
>>> s.meta.author = 'John Smith'

Default template

>>> print(s.summary())  
Metadata:
    title: my title
    author: John Smith
axis1: a ['a0' 'a1' 'a2'] (3)
group1: a['a0', 'a1'] >> a01 (2)
arr1: a, b (2 x 2) [int64]
arr2: a (4) [int64]
arr3: a, b (3 x 2) [int64]

Using a specific template

>>> def print_array(key, array):
...     axes_names = ', '.join(array.axes.display_names)
...     shape = ' x '.join(str(i) for i in array.shape)
...     return f"{key} -> {axes_names} ({shape})\n  title = {array.meta.title}\n  dtype = {array.dtype}"
>>> template = {Axis:  "{key} -> {name} [{labels}] ({length})",
...             Group: "{key} -> {name}: {axis_name}{labels} ({length})",
...             Array: print_array,
...             Metadata: "\t{key} -> {value}"}
>>> print(s.summary(template))   
Metadata:
    title -> my title
    author -> John Smith
axis1 -> a ['a0' 'a1' 'a2'] (3)
group1 -> a01: a['a0', 'a1'] (2)
arr1 -> a, b (2 x 2)
  title = array 1
  dtype = int64
arr2 -> a (4)
  title = array 2
  dtype = int64
arr3 -> a, b (3 x 2)
  title = array 3
  dtype = int64