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
.a
accessor
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
bcdict
package: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
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 |