pyxides

Containers for the python sages πŸΊβœ¨πŸ“¦


License
MIT
Install
pip install pyxides==0.3.0

Documentation

Pyxides

Containers for the python sages πŸΊβœ¨πŸ“¦

pyxides is a python library for working with array-like object containers.

The name "pyxides" is the plural form of the Greek word "pyxis" (πυξίς), the name for the decorated cylindrical containers from antiquity. The name felt appropriate for a python library involving containers!

Install

pip install pyxides

Use

Basic usage

The containers module contains some ready-made container classes that can be used directly:

from pyxides.containers import ArrayLike1D


a = ArrayLike1D([1, 2, 3])
# it has the usual list-like methods for editing, and expanding
three = a.pop(-1)
a.append(id)
a.extend(['some', 'other', object])
# multi-indexing works
a[[0, 3, 5]]
[1, <function id(obj, /)>, 'other']

Type Enforcement

To construct a container that only allows certain types of objects:

from pyxides.type_check import OfType

class Twinkie:
    """Yum!"""

class Box(list, OfType(Twinkie)):
    """So much YUM!"""

twinkies = Box()
twinkies.append(Twinkie()) # OK!

Object other than Twinkies, are not allowed in the container:

twinkies.append(0)
TypeError: Items in container class 'Box' must derive from  <class '__main__.Twinkie'>. Item 1  is of type <class 'int'>.

Vectorization

TODO

Grouping containers

TODO

Contribute

Contributions are welcome!

  1. Fork it!
  2. Create your feature branch
    git checkout -b feature/rad
  3. Commit your changes
    git commit -am 'Add some cool feature 😎'
  4. Push to the branch
    git push origin feature/rad
  5. Create a new Pull Request

Contact

License