Metadata-Version: 2.1
Name: django-valem
Version: 0.1.7
Summary: A collection of Django apps defining data models for managing chemical species, reactions and datasets.
Home-page: https://github.com/xnx/django-valem
Author: Christian Hill
Author-email: ch.hill@iaea.org
Project-URL: Bug Reports, https://github.com/xnx/django-valem/issues
Keywords: django,chemistry,formula,species,state,reaction
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Chemistry
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Framework :: Django
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/x-rst
Provides-Extra: dev
License-File: LICENSE

****************************
Introduction to Django-Valem
****************************


Django-Valem is a collection of Django apps defining data models for parsing,
validation, manipulation and interpretation of chemical reactions, formulas, and
quantum states.
The ``django-valem`` apps package is based around PyValem_.



Installation:
=============
The ``django-valem`` apps can be installed either from PyPI_ using pip

.. code-block:: bash

    python3 -m pip install django-valem


or from the source by running from the project source directory

.. code-block:: bash

    python3 -m pip install .


Configuration:
==============
The ``django-valem`` apps can be added to any Django project by adding the following
apps into the ``INSTALLED_APPS`` list in the ``settings.py`` of the project:

.. code-block:: python

    INSTALLED_APPS = [
        ...

        "rp",  # App handling species and their states
        "rxn",  # App handling chemical reactions between species (rp.RP instances)
        "ds",  # App handling datasets attached to rxn.Reaction instances
        "refs",  # App handling references for ds.ReactionDataSet subclasses instances
    ]


For Developers:
===============
It goes without saying that any development should be done in a clean virtual
environment.
After cloning or forking the project from its GitHub_ page, ``django-valem`` might be
installed into the virtual environment in editable mode with

.. code-block:: bash

    pip install -e .[dev]

The ``[dev]`` extra installs (apart from the package dependencies) also several
development-related packages, such as ``black``, ``ipython``, or ``django`` itself.
The tests can then be executed by running (from the project root directory)

.. code-block:: bash

    python runtests.py

The project does not have ``requirements.txt`` by design, all the package dependencies
are rather handled by ``setup.py``.
The package needs to be installed to run the tests, which grants the testing process
another layer of usefulness.

The project code is formatted by ``black``.
Always make sure to format your code before submitting a pull request, by running
``black`` on all your python files, or ``black .`` from the project source directory.

If the ``rp.models.py``, or ``rxn.models.py`` are changed, the ``makemigrations.py``
script needs to be run to make migrations for the apps, before the apps are pushed to
master, or published to PyPI.


.. _GitHub: https://github.com/xnx/django-valem
.. _PyPI: https://pypi.org/project/django-valem
.. _PyValem: https://github.com/xnx/pyvalem
