Abstract Data Types for Python
Project description
PyAbstractDataType
A simple library that adds ADTs to Python.
Documentation
Basic usage:
from adt import adt
@adt
class MyADT:
Variant1: (int, int)
Variant2: (int)
Variant3: (str, str, list[float])
Supports match
statement!
obj1 = MyADT.Variant1(2, 2)
obj2 = MyADT.Variant3("hi", "foo", [2.3, 5.6, 3.1415])
objs = obj1, obj2
for obj in objs:
match obj1:
case MyADT.Variant1(a, b):
print(f"Found you! {a}, {b}")
case MyADT.Variant2(x):
print(":(")
case _:
raise ValueError("wtf")
Output:
Found you! 2, 2
Traceback (most recent call last):
...
ValueError: wtf
Examples
See example.py.
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
Close
Hashes for pyabstractdatatype-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d46de2f30a8d3840e8733277eaad34908613b1f30eb1c015e1f6c603c917ebf6 |
|
MD5 | d9fc01fe95a891743bbf1b3ac34c77f3 |
|
BLAKE2b-256 | ac3e2d535feb04bfc2d0bcd28fc1b7f9abeccfbc9617fe0ba743c0880a1344bf |