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 hashes)

Uploaded Source

Built Distribution

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

Uploaded Python 3

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