Skip to main content

Pythonic Object Serializer

Project description

Diq: A Pythonic Object Serializer

PyPI License

Diq is a lightweight and flexible Python library that enables easy serialization of class instances into dictionaries. It supports renaming fields dynamically, custom serialization logic, and automatic attribute extraction.


✨ Features

  • 🔹 Convert class instances into dictionaries with dictify()
  • 🔹 Rename attributes dynamically using field->new_name
  • 🔹 Custom serialization via _dictify_{field}() methods
  • 🔹 Automatic attribute detection (no need to list fields manually)
  • 🔹 Lightweight and dependency-free

📦 Installation

pip install diq

🚀 Quick Start

1️⃣ Basic Usage

from diq import Dictify

class User(Dictify):
    def __init__(self, username, email):
        self.username = username
        self.email = email

user = User("john_doe", "john@example.com")
print(user.dictify())  # {'username': 'john_doe', 'email': 'john@example.com'}

2️⃣ Select Specific Fields

print(user.dictify("username"))  
# {'username': 'john_doe'}

3️⃣ Rename Fields

print(user.dictify("username->user", "email->contact"))
# {'user': 'john_doe', 'contact': 'john@example.com'}

4️⃣ Custom Serialization for Specific Fields

from datetime import datetime

from diq import Dictify

class User(Dictify):
    def __init__(self, username, created_at):
        self.username = username
        self.created_at = created_at

    def _dictify_created_at(self):
        return self.created_at.strftime('%Y-%m-%d')

user = User("john_doe", datetime(2025, 3, 15))
print(user.dictify())  
# {'username': 'john_doe', 'created_at': '2025-03-15'}

📝 License

Diq is released under the MIT License.

🤝 Contributing

Contributions are welcome! Feel free to submit issues or pull requests.

📮 Contact

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

diq-0.1.0.tar.gz (3.4 kB view details)

Uploaded Source

File details

Details for the file diq-0.1.0.tar.gz.

File metadata

  • Download URL: diq-0.1.0.tar.gz
  • Upload date:
  • Size: 3.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for diq-0.1.0.tar.gz
Algorithm Hash digest
SHA256 863b7282f38168bbe561c369cdcb37a9071587f394efa9aaf213a5ad0ed51d56
MD5 3eb5a09fbbd10311c745d9f4d5d260e6
BLAKE2b-256 dd3afb262d6823cd462b63e321193d3452bde8baab1732611a1aba2259a0fc21

See more details on using hashes here.

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