Skip to main content

typeless-dataclasses: use dataclasses without variable annotations

build codecov PyPI black

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

@dataclass
class Data:
    one: Any
    two: Any = 2

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

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

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

@dataclass
@typeless
class Data:
    one = field()
    two = field(default=2)

Compare with attrs:

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

Installing

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)

Links

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 details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

typeless_dataclasses-1.0-py3-none-any.whl (4.2 kB view details)

Uploaded Python 3

File details

Details for the file typeless-dataclasses-1.0.tar.gz.

File metadata

  • Download URL: typeless-dataclasses-1.0.tar.gz
  • Upload date:
  • Size: 5.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.9.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.0

File hashes

Hashes for typeless-dataclasses-1.0.tar.gz
Algorithm Hash digest
SHA256 f375f7740d64545a1da4ab569d2d956efe3b701d9fbbb50ec2ed2b9709f614c1
MD5 7154311d9bfd7c6f65ccaad0dc1127fe
BLAKE2b-256 fa4f555aedf44f79c14fe6adcb21c0d65d6e627a90deb16484232dad6a81d219

See more details on using hashes here.

File details

Details for the file typeless_dataclasses-1.0-py3-none-any.whl.

File metadata

  • Download URL: typeless_dataclasses-1.0-py3-none-any.whl
  • Upload date:
  • Size: 4.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.9.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.0

File hashes

Hashes for typeless_dataclasses-1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a71e86787ee4b043b3f84f9ce9da5d2e0148d37226c513641ed2e5639450d2e7
MD5 79322ad10d0b17c51668b1308d77a215
BLAKE2b-256 a2bce249f705a2da3b20b929f8000f6c58a64b50231f8e238366336f12f4e776

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page