Data types not found in the standard library that are cool in various different ways ;)
Project description
advanced-dtypes
Advanced DataTypes is a package for Python that provides access faster, feature-rich data types not provided in the standard library, motivated by my thoughts of "why is that not a thing?" The aim of the project is to fill out the holes in the standard library data types' feature-set while improving upon the performance of the existing feature-set.
Constant Store
Constant Store is a class that provides a namespace within which to store constants on a class attribute basis. Class definition is very simple:
from advanced_dtypes import ConstStore
class Example(ConstStore):
NAME_1 = "some_value"
NAME_2 = 23
The class is built to populate a set and dictionary on import, which drives many of the features of the class, as well as the __slots__ attribute, which helps boost performance. Since the class attributes are maintained, names can be directly dot-referenced.
>> Example.NAME_1 == "some_value"
True
>> type(Example.NAME_1) == str
True
ConstStore
also provides an interface for the following functionality:
>> len(Example)
2
>> 23 in Example
True
>> Example(23)
NAME_2
>> Example["NAME_2"]
23
>> [value for value in Example]
["some_value", 23]
You should be aware, however, that non-hashable objects will have slower performance in lookups such as in
, Class(value)
and Class[name]
.
Fast Enum
FastEnum
is simply a faster implementation of the existing standard library Enum
.
Definition is exactly the same as a standard enum:
from advanced_dtypes import FastEnum
class Example(FastEnum):
NAME_1 = "some_value"
NAME_2 = 23
Similarly, standard enum functionality remains:
>> Example.NAME_1
<Example.NAME_1: some_value>
>> Example.NAME_1.name
NAME_1
>> Example.NAME_1.value
some_value
>> Example("some_value")
<Example.NAME_1: some_value>
>> Example["NAME_1"]
<Example.NAME_1: some_value>
>> len(Example)
2
>> [item for item in Example]
[<Example.NAME_1: some_value>, <Example.NAME_2: 23>]
>> Example.NAME_1 == Example.NAME_1
True
The only functional addition in this instance is equality checking of members against values directly:
>> Example.NAME_1 == "some_value"
True
How To Install
pip install advanced-dtypes
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
Built Distribution
Hashes for advanced_dtypes-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 068d9cef1034c79f9a5dbd1022c64cc19a8d2c65147600dbb826a6f8fef5e3a2 |
|
MD5 | 656ac6ebc6c4fd6c447f3d3d029d9f70 |
|
BLAKE2b-256 | 5b0e69d746c3966ce12368262ce0151713d823df139314d0c9198d93ff903d4d |