Python library for simple object cache and factory.
Project description
Python library unicum
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | fcde16513a09f77c056a357ffd91db9305c2d2b164153c377dd11376d9e9f418 |
|
MD5 | d3971e2f1a61e1bb2be83321cfb345f3 |
|
BLAKE2b-256 | 634653c78b9b007ade044fcfc35a9fdbfda236a398d33e1c548ada19f978e316 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71d883a91a291472787c503f04c1c455185d24bc6bb15e5d6f172ba30a0223e8 |
|
MD5 | 43d0b2efa0c8fcb67ae0243e512a7310 |
|
BLAKE2b-256 | 9267ec8516b1f2689b2865562058be91d0cb28e352c5dee425b2417623ef671b |