atdict 0.9.4

Last updated:

0 purchases

atdict 0.9.4 Image
atdict 0.9.4 Images
Add to Cart

Description:

atdict 0.9.4

atdict
An attribute-access ordered dictionary

atdict is an attribute-access ordered dictionary. You can use a key
name as an attribute to access the value of the dictionary for a key,
for example, o.key_name rather than o['key_name']. Only a minimum
set of methods are implemented so as to minimize the chances of name
conflicts.


Requirement
Install
How to use

Import atdict
Initialize atdict
Access to a value
Modify a value
Add a key
Delete a key
Copy and deepcopy
Pickle


License
Contact


Requirement

Python 3.6, 3.7, 3.8, or 3.9


Install
You can install with conda from conda-forge:
conda install -c conda-forge atdict

or with pip:
$ pip install -U atdict


How to use
Import atdict
Import atdict from the package atdict.
from atdict import atdict

Initialize atdict
You can initialize an atdict with any arguments that can initialize
collections.OrderedDict.
For example:
o1 = atdict([('foo', 40), ('bar', 'ham')])
print(o1)

It will print.
atdict(foo=40, bar='ham')

An atdict can be also initialized with another atdict.
o2 = atdict(o1)
print(o2)

The o2 is initialized with a (shallow) copy of the contents of o1.
atdict(foo=40, bar='ham')

Access to a value
Yon can use a key name as an attribute of atdict.
print(o1.foo)

This will print the value for the key foo, which is 40.
40

Modify a value
To modify a value, you can assign a new value to the attribute.
o1.foo = 50
print(o1)

atdict(foo=50, bar='ham')

The value for the key foo changed from 40 to 50.
Add a key
To add a key, you can also assign a value to the attribute
o1.baz = 'eggs'
print(o1)

atdict(foo=50, bar='ham', baz='eggs')

Delete a key
del deletes a key.
del o1.bar
print(o1)

atdict(foo=50, baz='eggs')

Copy and deepcopy
A copy will be created if atdict is initialized with another
atdict. However, this will be a shallow copy.
l = [1, 2]
o1 = atdict([('foo', l)])
o2 = atdict(o1)
print(o2.foo is o1.foo)

True

To make a deep copy, you can use copy.deepcopy().
import copy
l = [1, 2]
o1 = atdict([('foo', l)])
o2 = copy.deepcopy(o1)
print(o2)

atdict(foo=[1, 2])

o2.foo and o1.foo are not the same object.
print(o2.foo is o1.foo)

False

Pickle
An atdict is picklable as long as all values are picklable.
import pickle
o1 = atdict([('foo', 40), ('bar', 'ham')])
p1 = pickle.dumps(o1)
o2 = pickle.loads(p1)
print(o2)

atdict(foo=40, bar='ham')


License

atdict is licensed under the BSD license.


Contact

Tai Sakuma - [email protected]

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.