Metadata-Version: 2.1
Name: django_trackings
Version: 0.7.0a1
Summary: A Django app that tracks your queries to help optimize them.
Home-page: https://github.com/tijani-dia/dj-tracker/
Author: Tidiane Dia
Author-email: atdia97@gmail.com
License: BSD-3-Clause
Project-URL: Documentation, https://tijani-dia.github.io/dj-tracker/
Project-URL: Source, https://github.com/tijani-dia/dj-tracker/
Project-URL: Issue tracker, https://github.com/tijani-dia/dj-tracker/issues/
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: django>=3.2
Requires-Dist: django-filter
Provides-Extra: dev
Requires-Dist: Cython==3.0.11; extra == "dev"
Requires-Dist: autoflake; extra == "dev"
Requires-Dist: black>=23.1; extra == "dev"
Requires-Dist: factory-boy; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Requires-Dist: isort; extra == "dev"
Requires-Dist: pytailwindcss; extra == "dev"
Provides-Extra: docs
Requires-Dist: mkdocs; extra == "docs"
Requires-Dist: mkdocs-material; extra == "docs"
Provides-Extra: test
Requires-Dist: factory-boy; extra == "test"

<p align="center">
    <a href="https://github.com/tijani-dia/dj-tracker/actions/workflows/test.yml">
        <img src="https://github.com/tijani-dia/dj-tracker/actions/workflows/test.yml/badge.svg"/>
    </a>
    <a href="https://codecov.io/gh/Tijani-Dia/dj-tracker">
        <img src="https://codecov.io/gh/Tijani-Dia/dj-tracker/branch/main/graph/badge.svg?token=MKJ71ZJE67"/>
    </a>
    <a href="https://pypi.org/project/django-trackings/">
        <img src="https://badge.fury.io/py/django-trackings.svg" alt="Package version">
    </a>
    <a href="https://pepy.tech/project/django-trackings">
        <img src="https://static.pepy.tech/badge/django-trackings" alt="Downloads"/>
    </a>
    <a href="https://opensource.org/licenses/BSD-3-Clause">
        <img src="https://img.shields.io/badge/license-BSD-blue.svg"/>
    </a>
</p>

`dj-tracker` is an app that tracks your queries to help detecting some possible performance optimisations listed in [Database access optimization](https://docs.djangoproject.com/en/dev/topics/db/optimization/).

## Features

- Detailed field usage of model instances
- Report unused fields in a model instance and provides hints on when to use `.defer` and `.only`
- Report model instance attributes access and provides hints on when to use `.values` or `.values_list`
- Report cache hits and provides hints on when to use `iterator`
- Provides hints on when to use `.count`, `.contains`, `.exists`
- Detect N+1 queries
- Detect when a deferred field is loaded
- and many more insights into your queries with minimized overhead....

## Demo

You can try `dj-tracker` with the [bakerydemo](https://github.com/wagtail/bakerydemo) on the [demo app](https://dj-tracker-bakerydemo.herokuapp.com/dj-tracker/).

## Requirements

- Python: `>=3.8`
- Django: `>=3.2`
- [django-filter](https://github.com/carltongibson/django-filter)

## Getting started

Check out the [installation steps](https://tijani-dia.github.io/dj-tracker/installation/) if you want to get started quickly or the [tutorial](https://tijani-dia.github.io/dj-tracker/tutorial/setup/) to see a concrete example of `dj-tracker` usage.

## Documentation

All documentation is in the "docs" directory and online at https://tijani-dia.github.io/dj-tracker/

## Development phase - Contributing

`dj-tracker` is in [alpha phase](https://en.wikipedia.org/wiki/Software_release_life_cycle#Alpha).

You can help a lot by [reporting bugs](https://github.com/Tijani-Dia/dj-tracker/issues/new) you'll encounter. Feature requests, PRs or/and any feedback are also welcome.
