Skip to main content

Use dataclasses without variable annotations.

Project description

typeless-dataclasses: use dataclasses without variable annotations

build codecov PyPI black

Have you ever wanted to use dataclasses, but don't like type annotations?

class Data:
    one: Any
    two: Any = 2

... and don't want to resort to any ugly hacks like this one?

class Data:
    one: ...
    two: ... = 2

With the power of typeless-dataclasses, now you can!

class Data:
    one = field()
    two = field(default=2)

Compare with attrs:

class Data:
    one = attr.ib()
    two = attr.ib(default=2)


Install and update using pip:

$ pip install --upgrade typeless-dataclasses

typeless-dataclasses offers a type-annotation-free experience for Python 3.6* and newer, and PyPy.

(On 3.6, you also need to install the dataclasses backport.)

A Simple Example

Using typeless-dataclasses is easy!

Just add @typeless to your class before @dataclass, and use field() as you normally would; field() attributes become instance variables, and all others remain class variables.

>>> from dataclasses import dataclass, field
>>> from typeless_dataclasses import typeless
>>> @dataclass
... @typeless
... class Data:
...     one = field()
...     two = field(default=2)
...     three = 3
>>> Data(1)
Data(one=1, two=2)


Project details

Release history Release notifications | RSS feed

This version


Download files

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

Source Distribution

typeless-dataclasses-1.0.tar.gz (5.6 kB view hashes)

Uploaded source

Built Distribution

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page