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.1.tar.gz (3.4 kB view details)

Uploaded Source

File details

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

File metadata

  • Download URL: diq-0.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 4e0d99e9e9062efc02158ba39ae8a66e79edd58a48f933c369229269e035a881
MD5 e55bf1f7f920a80f64645b932a5f79e5
BLAKE2b-256 51d02f7eebdf842cf00f401dc054a066d40f5db6ddb8eccae6f72cd7be9eb3b1

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