Skip to main content

Containers for the python sages 🏺✨📦

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyxides-0.3.0.tar.gz (22.7 kB view details)

Uploaded Source

Built Distribution

pyxides-0.3.0-py3-none-any.whl (19.9 kB view details)

Uploaded Python 3

File details

Details for the file pyxides-0.3.0.tar.gz.

File metadata

  • Download URL: pyxides-0.3.0.tar.gz
  • Upload date:
  • Size: 22.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.10

File hashes

Hashes for pyxides-0.3.0.tar.gz
Algorithm Hash digest
SHA256 2e9f4c67b1e4df9106a14291f83a4a6251c075e03826683708b4f516f6e6866d
MD5 e02ba97b9e8f617d9c65604c7a0fa8ba
BLAKE2b-256 42665313c6a845736546bbf177dd889ecda78e99712bf3edf4ec1dd0870581b3

See more details on using hashes here.

File details

Details for the file pyxides-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: pyxides-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 19.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.10

File hashes

Hashes for pyxides-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9766fae3324d5454a84b126d108b9ad11990dfff6a3ee6272257743c3770d172
MD5 c1461e10071f93a723e972b992e88bc7
BLAKE2b-256 b57018222b52642c221e5a56d3bdedd5b729bbeabb807a66adc4f94d61e0fa65

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page