Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

advanced-dtypes-0.0.2.tar.gz (4.4 kB view hashes)

Uploaded source

Built Distribution

advanced_dtypes-0.0.2-py3-none-any.whl (6.1 kB view hashes)

Uploaded py3

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