Metadata-Version: 2.1
Name: collateral
Version: 1.0.1
Summary: parallel object manipulation
Home-page: https://gitlab.limos.fr/brguillo/collateral
Author: Bruno Guillon
Author-email: bruno.guillon@uca.fr
License: MIT License
Platform: any
Classifier: Programming Language :: Python :: 3
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: Testing
Description-Content-Type: text/markdown

# Collateral
This tool package provides a simple way to manipulate _collateral_ objects in parallel.
Basically, it provides `Collateral` objects, which gather several objects, called _collaterals_.
The object has two kinds of methods/attributes: _collateral_ and _transversal_.

## Collateral methods and attributes
A collateral method returns a `Collateral` object (or `None`),
which is formed by the result of calling the corresponding method
on each of the collaterals.
Similarly, a collateral attribute has as value,
the `Collateral` object (or `None`)
formed by the result of getting the corresponding attribute
from each of the collaterals.
Hence, a collateral method/attribute behaves on each of the collaterals **independently**.
Collateral methods/attributes exist in a `Collateral` object
if and only if they exist in at least one of its collaterals.

## Transversal methods and attributes
Every `Collateral` object has the same, few, _transversal_ methods and attributes,
which aim to provide basic manipulation method and information on the `Collateral` object itself,
that is, not only on its collaterals.
These methods are methods/attributes of the object
that manipulate the whole object.
They typically do not manipulate the collaterals idenpendently.
E.g., the attribute `collaterals` is a property returning the tuple of collaterals.

## Examples:
```python
import collateral as ll

pL = ll.Collateral([3, 4], [5, 2])
pL[0]
#returns a Collateral object with two collaterals: 3 and 5
pL[1]
#returns a Collateral object with two collaterals: 4 and 2
pL.append(9)
#returns None
pL[2]
#returns a Collateral object with two collaterals: 9 and 9
pL.pop(0)
#returns a Collateral object with two collaterals: 3 and 5
#and pL is a Collateral object with two collaterals: [4, 9] and [2, 9]
pL[0]
#returns a Collateral object with two collaterals: 4 and 2
```


