:hide-toc: Dessine-moi =========== *Dessine-moi* v\ |release|. .. image:: https://img.shields.io/pypi/v/dessinemoi?color=blue :target: https://pypi.org/project/dessinemoi .. image:: https://img.shields.io/conda/v/conda-forge/dessinemoi?color=blue :target: https://anaconda.org/conda-forge/dessinemoi .. image:: https://img.shields.io/github/actions/workflow/status/rayference/dessinemoi/ci.yml?branch=main :target: https://github.com/rayference/dessinemoi/actions/workflows/ci.yml .. image:: https://img.shields.io/readthedocs/dessinemoi :target: https://dessinemoi.readthedocs.io .. image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json :target: https://github.com/astral-sh/uv :alt: uv .. image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json :target: https://github.com/astral-sh/ruff :alt: Ruff *S'il vous plaƮt, dessine-moi un mouton.* Motivation ---------- *Dessine-moi* is a simple Python implementation of the factory pattern. It was born from the need to create dynamically object trees from nested dictionaries (*e.g.* a JSON document). Features -------- - Create a :class:`.Factory` object and register types to it. - Use dictionaries to create objects from the factory. - Create *attrs*-compatible converters to automatically convert dictionaries to instances of registered types. - Customise factories to your needs. Getting started --------------- *Dessine-moi* requires Python 3.8+ and depends on *attrs*. It is tested with Pytest. Install from PyPI in your virtual environment: .. code-block:: bash python -m pip install dessinemoi Using Conda: .. code-block:: bash conda install -c conda-forge dessinemoi The :ref:`usage` section presents *Dessine-moi*'s features and how to use them. License ------- *Dessine-moi* is distributed under the terms of the `MIT license `_. About ----- *Dessine-moi* is written and maintained by `Vincent Leroy `_. The development is supported by `Rayference `_. *Dessine-moi* is a component of the `Eradiate radiative transfer model `_. .. toctree:: :hidden: :caption: Use usage .. toctree:: :hidden: :caption: Reference api release_notes.md .. toctree:: :caption: Develop :hidden: contributing.md GitHub repository