Metadata-Version: 2.5
Name: oxylus-utils
Version: 0.0.2
Summary: Django and python utilities.
Author-email: Thomas Baquet <thomas@oxylus.app>
License-Expression: GPL-3.0-or-later
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Utilities
Classifier: Typing :: Typed
Requires-Dist: pydantic>=2.13.4
Requires-Dist: pyyaml>=6.0.3
Provides-Extra: files
Requires-Dist: pillow>=13.0.0; extra == 'files'
Requires-Dist: pymupdf>=2.0; extra == 'files'
Requires-Dist: python-magic>=0.4.27; extra == 'files'
Provides-Extra: jwt
Requires-Dist: pyjwt>=2.15.1; extra == 'jwt'
Description-Content-Type: text/x-rst

Ox-Utils
========

Ox-utils is a collection of various django utilities allowing to reuse them over different
projects. It initially extracted from the `Oxylus-Tech projects <https://github.com/oxylus-tech/>`_.


Django Features
---------------

Those lies in ``ox_utils.django``:

- ``conf``: define a Settings class that allows explicit and documented settings and using django settings. Support for dynaconf.
- ``jwt``: JWT tokens encoder/decoder using pyjwt.
- ``models``:
    - Various common models providing common fields, as ``Named``, ``UUID``, ``Color``. 
    - SaveHook: hooks on save and batch save / delete / etc.
    - Owned: wraps over django-caps for parent-child object
    - TreeNode: improved tree models inspired by MPPT.
- ``files``:
    - abstract file and folder models
    - file type detection based on content and create preview from files;
    - support for images, document files as odt, word, pdf;
    - extensible to support custom file types;
- ``pydantic``:
    - currently only add field type to support django lazy translation;
    - to certainly come at some point: django model field de-serializing data using pydantic models;
- ``serializers``:
    - Expose uuid instead of real db id;
    - Nesting serializers: allows to edit and update list of child items from a parent one.
