Skip to main content

Immutable implementation for Python using dataclasses

Project description

Immutable

Overview

This library provides decorators and base classes to create immutable data classes in Python. By enforcing immutability and keyword-only arguments, it enhances the robustness and clarity of your data structures.

📋 Requirements

  • Python 3.9 or later.
  • No external dependencies are required.

📦 Installation

Pip

pip install python-immutable

uv

uv add python-immutable

Poetry

poetry add python-immutable

🛠 Usage

Using immutable Decorator

Apply immutable to a class to make it immutable and enforce keyword-only arguments.

from immutable import immutable

@immutable
class MyClass:
    # Fields here

Extending Immutable Base Class

Inherit from Immutable for similar functionality.

from immutable import Immutable

class MyClass(Immutable):
    # Fields here

🤝 Contributing

Contributions are welcome. Please submit pull requests or issues on the GitHub repository.

⚠️ Important Note

Ensure compatibility with Python 3.9 or newer when contributing.

🔒 License

This project is released under the Apache-2.0 License. See the LICENSE file for more details.

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

Built Distribution

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

File details

Details for the file python_immutable-1.2.1.dev325060610399975197.tar.gz.

File metadata

File hashes

Hashes for python_immutable-1.2.1.dev325060610399975197.tar.gz
Algorithm Hash digest
SHA256 eeeb7550db13a72f0d8514a9d9bd0ca3b69b40deb71a617a9970af27f67d5501
MD5 912aade9c9b08cab988f8dd31b2d5113
BLAKE2b-256 a89a110884610ceac9e60be49dc54ba6dc3d7e65cb8647102e07c74b1efe1f27

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_immutable-1.2.1.dev325060610399975197.tar.gz:

Publisher: integration_delivery.yml on sassanh/python-immutable

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_immutable-1.2.1.dev325060610399975197-py3-none-any.whl.

File metadata

File hashes

Hashes for python_immutable-1.2.1.dev325060610399975197-py3-none-any.whl
Algorithm Hash digest
SHA256 903ff99817ad3741f6d24ed1303915700759a3d1b923eb31b7f64eb77dc9ce2b
MD5 8cbbc5cc4d880e948630fb9ed01e9f05
BLAKE2b-256 2b3c28b336d29e34d6f76fb92fdd800523fbd6be9ba6774a53ebe5ebe8ebf0b3

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_immutable-1.2.1.dev325060610399975197-py3-none-any.whl:

Publisher: integration_delivery.yml on sassanh/python-immutable

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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