Skip to main content

Python library for simple object cache and factory.

Project description

Python library unicum

CodeShip Travis ci Read the Docs CodeFactor Grade Code Climate maintainability Codecov lgtm grade total lgtm alerts GitHub GitHub release PyPI Version PyPI - Python Version PyPI Downloads

unicum consists of multiple object implementations that implement various factory pattern. All types merge into on type VisibleObject and each type contributes bits and piece.

The visible obj focus on robust and simple construction from a dictionary via PersistentObject having values only simple types or containers containers of simple types.

These values are translated via FatoryObject into more complex structures which are take from a factory.

Or, alternatively, using DataRange into something similar to a data_frame type in R, a table with column and row names as well as common types for each column values.

Inheriting from LinkedObject provides functionality to swap or update attributes at runtime

Example Usage

Using FactoryObject:

>>> from unicum import FactoryObject

>>> class Currency(FactoryObject): __factory = dict()
>>> class EUR(Currency): pass
>>> class USD(Currency): pass

>>> EUR().register()  # registers USD() instance with class name 'EUR'
>>> eur = Currency('EUR')  # picks instance with key 'EUR' from currency cache
>>> eur == EUR()  # picks instance with key given by class name 'EUR' from currency cache, too.

True

>>> eur2 = eur.__class__('EUR')  # picks instance with key 'EUR' from currency cache
>>> eur == eur2

True

>>> usd = USD().register()  # registers USD() instance with class name 'USD'
>>> usd.register('usd')  # registers usd with name 'usd'
>>> usd == USD()

True

>>> eur == eur.__class__('USD')

False

>>> usd == eur.__class__('USD')

True

>>> usd == Currency('usd')

True

Using LinkedObject:

>>> from unicum import LinkedObject

Development Version

The latest development version can be installed directly from GitHub:

$ pip install --upgrade git+https://github.com/sonntagsgesicht/unicum.git

Contributions

Issues and Pull Requests are always welcome.

License

Code and documentation are available according to the Apache Software License (see 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

unicum-0.3.tar.gz (23.8 kB view details)

Uploaded Source

Built Distribution

unicum-0.3-py3-none-any.whl (27.8 kB view details)

Uploaded Python 3

File details

Details for the file unicum-0.3.tar.gz.

File metadata

  • Download URL: unicum-0.3.tar.gz
  • Upload date:
  • Size: 23.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.33.0 CPython/3.7.4

File hashes

Hashes for unicum-0.3.tar.gz
Algorithm Hash digest
SHA256 fcde16513a09f77c056a357ffd91db9305c2d2b164153c377dd11376d9e9f418
MD5 d3971e2f1a61e1bb2be83321cfb345f3
BLAKE2b-256 634653c78b9b007ade044fcfc35a9fdbfda236a398d33e1c548ada19f978e316

See more details on using hashes here.

File details

Details for the file unicum-0.3-py3-none-any.whl.

File metadata

  • Download URL: unicum-0.3-py3-none-any.whl
  • Upload date:
  • Size: 27.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.33.0 CPython/3.7.4

File hashes

Hashes for unicum-0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 71d883a91a291472787c503f04c1c455185d24bc6bb15e5d6f172ba30a0223e8
MD5 43d0b2efa0c8fcb67ae0243e512a7310
BLAKE2b-256 9267ec8516b1f2689b2865562058be91d0cb28e352c5dee425b2417623ef671b

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