Skip to main content

Databyte Django App

General Details

Description

The digital era sees data growing exponentially. Keeping track of storage usage is more important than ever. The Databyte app aids in this endeavor by offering tools to monitor and compute the storage usage of Django model instances. With its custom field types and automated calculations, integrating storage tracking into your Django project becomes a breeze.

Features

  • Custom Field Types: Databyte introduces three custom field types:

    • ExternalStorageTrackingField: A simple BigIntegerField to keep track of external storage.
    • AutomatedStorageTrackingField: A BigIntegerField that automatically computes the storage used by its containing record.
    • StorageAwareForeignKey: A ForeignKey field that indicates to Databyte that it should recognize this parent-child relationship in storage counting.
  • Automated Computation: Storage usage is computed and updated automatically whenever a record changes.

  • Child Storage Computation: Automatically aggregates storage information from child records linked via a StorageAwareForeignKey.

  • File Storage Calculation: For models with FileField or ImageField, Databyte can compute the storage taken up by these files.

  • Dynamic Parent-Child Relationships: Using the StorageAwareForeignKey, you can define which records should contribute to their parent's storage count.

Setup Instructions

  1. Install the App:

    pip install databyte
    
  2. Add the App: Include 'databyte' in your INSTALLED_APPS setting.

    INSTALLED_APPS = [
        ...
        'databyte',
        ...
    ]
    
  3. Run Migrations: As with any new app added to a Django project, run migrations:

    python manage.py makemigrations
    python manage.py migrate
    

Usage

  • Integrate Custom Fields: Introduce the ExternalStorageTrackingField and AutomatedStorageTrackingField in any model you wish to track:

    from django.db import models
    from databyte.fields import ExternalStorageTrackingField, AutomatedStorageTrackingField
    
    class MyModel(models.Model):
        external_storage = ExternalStorageTrackingField()
        automated_storage = AutomatedStorageTrackingField(include_in_parents_count=True)
    
  • File Storage: If your model has a FileField or ImageField, Databyte will automatically account for their sizes when computing storage.

  • Parent-Child Relationships: Use StorageAwareForeignKey to establish which child records should be accounted for in parent records' storage calculations:

    from django.db import models
    from databyte.fields import StorageAwareForeignKey
    
    class ChildModel(models.Model):
    parent = StorageAwareForeignKey(ParentModel, on_delete=models.CASCADE, count_as_storage_parent=True)
    
  • Signal Integration: Ensure the signals provided by Databyte are integrated to automatically update storage values on record save and delete events.

Contributing

As this is an open-source project hosted on GitHub, your contributions and improvements are welcome! Follow these general steps for contributing:

  1. Fork the Repository: Start by forking the main repository to your personal GitHub account.

  2. Clone the Forked Repository: Clone your forked repository to your local machine.

    git clone https://github.com/YidiSprei/DjangoDatabyte.git
    
  3. Create a New Branch: Before making any changes, create a new branch:

    git checkout -b feature-name
    
  4. Make Your Changes: Implement your features, enhancements, or bug fixes.

  5. Commit & Push:

    git add .
    git commit -m "Descriptive commit message about changes"
    git push origin feature-name
    
  6. Create a Pull Request (PR): Go to your forked repository on GitHub and click the "New Pull Request" button. Make sure the base fork is the original repository, and the head fork is your repository and branch. Fill out the PR template with the necessary details.

Remember to always be respectful and kind in all interactions with the community. It's all about learning, growing, and helping each other succeed!

Credits

Developed with 💙 by Yidi Sprei. We thank all the contributors and the Django community for their support and inspiration.

Metadata

Release files for databyte 1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for databyte 1.3
File Size Uploaded
databyte-1.3.tar.gz 9.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for databyte 1.3
File Interpreter ABI Platform
databyte-1.3-py3-none-any.whl Python 3 none any Details

Total release size: 19.4 kB

Release files / databyte-1.3.tar.gz

Download URL databyte-1.3.tar.gz
Size 9.7 kB
Tags Source
SHA-256 checksum
How to use checksums
3456c98d53f6ea5cb2fc8e1159ebb5f2ce598a9a9103deec8777b0233ec6152b
BLAKE2b-256 checksum
How to use checksums
9211d0ad5c135712fec39ff59ee91801541fd0fcab46ebb7055f55f7c05ce431
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/4.0.2 CPython/3.11.7

Release files / databyte-1.3-py3-none-any.whl

Download URL databyte-1.3-py3-none-any.whl
Size 9.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6316d397c08b6980a1ba13c48543f0a782c73f290b78288239ef8153c58bea7c
BLAKE2b-256 checksum
How to use checksums
9581361fbab19a28e690405046630a5790a9185838e38035758113e2ead1662a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/4.0.2 CPython/3.11.7

Release history Release notifications | RSS feed

This release

1.3 This release

2 release files

1.2

2 release files

1.1

2 release files

1.0

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page