Skip to main content

Tests codecov PyPI version Documentation Status pre-commit

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() and ne() 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)

Metadata

Release files for bcdict 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bcdict 0.5.0
File Size Uploaded
bcdict-0.5.0.tar.gz 8.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bcdict 0.5.0
File Interpreter ABI Platform
bcdict-0.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 15.4 kB

Release files / bcdict-0.5.0.tar.gz

Download URL bcdict-0.5.0.tar.gz
Size 8.2 kB
Tags Source
SHA-256 checksum
How to use checksums
519eec003d94ce77f009cca2f34648cda8be2b6892a1677e29b53f4172f1adb2
BLAKE2b-256 checksum
How to use checksums
42d32b4bd8bf34f7e4448f38d1c997dcca2b8fafdcca796242dc55f9bc0f49e6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.9.13

Release files / bcdict-0.5.0-py3-none-any.whl

Download URL bcdict-0.5.0-py3-none-any.whl
Size 7.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
376d2fe3e81c2fae7864ad394262403879622bdb57e16860139f0fd4f1586cbc
BLAKE2b-256 checksum
How to use checksums
88905bb1ee38df506ad9a52f452aaa09bf37b3d3c42e7c9baec3241c9bf55543
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.9.13

Release history Release notifications | RSS feed

This release

0.5.0 This release

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page