Python dictionary with broadcast support.
Project description
Broadcast Dictionary
Python dictionary with broadcast support.
Behaves like a regular dictionary.
Allows to apply operations to all its values at once. Whithout loops, whithout dict comprehension.
Installation
pip install bcdict
Usage
from bcdict import BCDict
>>> d = BCDict({"a": "hello", "b": "world!"})
>>> d
{'a': 'hello', 'b': 'world!'}
Regular element access:
>>> d['a']
'hello'
Regular element assignments
>>> d['a'] = "Hello"
>>> d
{'a': 'Hello', 'b': 'world!'}
Calling functions:
>>> d.upper()
{'a': 'HELLO', 'b': 'WORLD!'}
Slicing:
>>> d[1:3]
{'a': 'el', 'b': 'or'}
Applying functions:
>>> d.pipe(len)
{'a': 5, 'b': 6}
When there is a conflict between an attribute in the values and an attribute in
BCDict, use the attribute accessor explicitly:
>>> d.a.upper()
{'a': 'HELLO', 'b': 'WORLD!'}
Slicing with conflicting keys:
>>> n = BCDict({1:"hello", 2: "world"})
>>> n[1]
'hello'
>>> # Using the attribute accessor:
>>> n.a[1]
{1: 'e', 2: 'o'}
Next steps
See the introduction notebook and other examples.
Also check out the full documentation on bcdict.readthedocs.io.
Changelog
v0.5.0
- feature: broadcast attribute and item assignment
- fix: broadcast slicing with
.aaccessor
v0.4.3
- fix: unpickling causes recursion error
v0.4.2
- docs: improve the documenation
v0.4.1
- fix: sphinxcontrib-mermaid gets installed as default dependency, should be dev dependency
v0.4.0
- new functions
eq()andne()for equality/inequality with broadcast support
v0.3.0
- new functions in
bcdictpackage:apply()broadcast()broadcast_arg()broadcast_kwarg()
- docs: write some documentation and host it on readthedocs
v0.2.0
- remove
item()function. Use.a[]instead.
v0.1.0
- initial release
Original repository: https://github.com/mariushelf/bcdict
Author: Marius Helf (helfsmarius@gmail.com)
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bcdict-0.5.0.tar.gz.
File metadata
- Download URL: bcdict-0.5.0.tar.gz
- Upload date:
- Size: 8.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
519eec003d94ce77f009cca2f34648cda8be2b6892a1677e29b53f4172f1adb2
|
|
| MD5 |
4f36d25ce33315b7fd54b4ac54f83470
|
|
| BLAKE2b-256 |
42d32b4bd8bf34f7e4448f38d1c997dcca2b8fafdcca796242dc55f9bc0f49e6
|
File details
Details for the file bcdict-0.5.0-py3-none-any.whl.
File metadata
- Download URL: bcdict-0.5.0-py3-none-any.whl
- Upload date:
- Size: 7.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
376d2fe3e81c2fae7864ad394262403879622bdb57e16860139f0fd4f1586cbc
|
|
| MD5 |
bdd2ddc9f718118d6035ba52abdadea4
|
|
| BLAKE2b-256 |
88905bb1ee38df506ad9a52f452aaa09bf37b3d3c42e7c9baec3241c9bf55543
|