Skip to main content

Python dictionary with broadcast support.

Project description

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)

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

bcdict-0.5.0.tar.gz (8.2 kB view details)

Uploaded Source

Built Distribution

bcdict-0.5.0-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

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

Hashes for bcdict-0.5.0.tar.gz
Algorithm Hash digest
SHA256 519eec003d94ce77f009cca2f34648cda8be2b6892a1677e29b53f4172f1adb2
MD5 4f36d25ce33315b7fd54b4ac54f83470
BLAKE2b-256 42d32b4bd8bf34f7e4448f38d1c997dcca2b8fafdcca796242dc55f9bc0f49e6

See more details on using hashes here.

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

Hashes for bcdict-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 376d2fe3e81c2fae7864ad394262403879622bdb57e16860139f0fd4f1586cbc
MD5 bdd2ddc9f718118d6035ba52abdadea4
BLAKE2b-256 88905bb1ee38df506ad9a52f452aaa09bf37b3d3c42e7c9baec3241c9bf55543

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