tri.named_struct supplies a class that can be used like dictionaries (or via attribute access), but with a predefined set of possible key values
Project description
.. image:: https://travis-ci.org/TriOptima/tri.named_struct.svg?branch=master
:target: https://travis-ci.org/TriOptima/tri.named_struct
.. image:: http://codecov.io/github/TriOptima/tri.named_struct/coverage.svg?branch=master
:target: http://codecov.io/github/TriOptima/tri.named_struct?branch=master
tri.named_struct
================
tri.named_struct supplies a class that can be used like dictionaries, but with a predefined set of possible key values.
Example
-------
.. code:: python
from tri.named_struct import NamedStruct
class MyNamedStruct(NamedStruct):
foo = NamedStructField()
bar = NamedStructField()
m = MyNamedStruct(17, 42)
assert m['foo'] == 17
assert m.foo == 17
assert m == dict(foo=17, bar=42)
m.not_foo # Will raise an AttributeError
Default values can be provided:
.. code:: python
from tri.named_struct import NamedStruct
class MyNamedStruct(NamedStruct):
foo = NamedStructField()
bar = NamedStructField()
baz = NamedStructField(default='default')
assert MyNamedStruct(17) == dict(foo=17, bar=None, baz='default')
There is also a functional way to defined a :code:`NamedStruct` subclass:
.. code:: python
from tri.named_struct import named_struct
MyNamedStruct = named_struct('foo, bar')
m = MyNamedStruct(17, 42)
assert m.foo == 17
assert m.bar == 42
Running tests
-------------
You need tox installed then just :code:`make test`.
License
-------
BSD
Documentation
-------------
http://trinamedstruct.readthedocs.org.
=========
Changelog
=========
Here's the recent changes to tri.named_struct.
.. changelog::
:version: dev
:released: Ongoing
.. change::
:tags: docs
Updated CHANGES.
:target: https://travis-ci.org/TriOptima/tri.named_struct
.. image:: http://codecov.io/github/TriOptima/tri.named_struct/coverage.svg?branch=master
:target: http://codecov.io/github/TriOptima/tri.named_struct?branch=master
tri.named_struct
================
tri.named_struct supplies a class that can be used like dictionaries, but with a predefined set of possible key values.
Example
-------
.. code:: python
from tri.named_struct import NamedStruct
class MyNamedStruct(NamedStruct):
foo = NamedStructField()
bar = NamedStructField()
m = MyNamedStruct(17, 42)
assert m['foo'] == 17
assert m.foo == 17
assert m == dict(foo=17, bar=42)
m.not_foo # Will raise an AttributeError
Default values can be provided:
.. code:: python
from tri.named_struct import NamedStruct
class MyNamedStruct(NamedStruct):
foo = NamedStructField()
bar = NamedStructField()
baz = NamedStructField(default='default')
assert MyNamedStruct(17) == dict(foo=17, bar=None, baz='default')
There is also a functional way to defined a :code:`NamedStruct` subclass:
.. code:: python
from tri.named_struct import named_struct
MyNamedStruct = named_struct('foo, bar')
m = MyNamedStruct(17, 42)
assert m.foo == 17
assert m.bar == 42
Running tests
-------------
You need tox installed then just :code:`make test`.
License
-------
BSD
Documentation
-------------
http://trinamedstruct.readthedocs.org.
=========
Changelog
=========
Here's the recent changes to tri.named_struct.
.. changelog::
:version: dev
:released: Ongoing
.. change::
:tags: docs
Updated CHANGES.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
tri.named_struct-0.5.0.tar.gz
(4.9 kB
view hashes)
Built Distribution
Close
Hashes for tri.named_struct-0.5.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba1fd7fcd1d951a5b1c7e77d9e097e1fbe6f1bb92ce77baa1c599e3424d52f40 |
|
MD5 | 240eafa703636c0b158bdae133e8462d |
|
BLAKE2b-256 | f1cddbbd8b337ed234a732988a9fe359db1cf3b25c66bf4e8abbeb21f823335a |