=========================
Python Lifecycle Training
=========================

.. image:: https://github.com/sp-fm/python-lifecycle-training/workflows/Tests/badge.svg
    :target: https://github.com/sp-fm/python-lifecycle-training/actions?query=workflow%3ATests
    :alt: Tests

.. image:: https://github.com/sp-fm/python-lifecycle-training/workflows/Documentation/badge.svg
    :target: https://sp-fm.github.io/python-lifecycle-training/
    :alt: Documentation

.. image:: https://github.com/sp-fm/python-lifecycle-training/workflows/Release/badge.svg
    :target: https://pypi.python.org/pypi/python-lifecycle-training
    :alt: Release

.. image:: https://img.shields.io/pypi/v/python-lifecycle-training.svg
    :target: https://pypi.python.org/pypi/python-lifecycle-training
    :alt: PyPi Version

A training program on getting to know the Python Development Cycle from project setup
all the way to project deployment.

* **Source Code**: https://github.com/sp-fm/python-lifecycle-training
* **Documentation**: https://sp-fm.github.io/python-lifecycle-training/
* **Bug Reports**: https://github.com/sp-fm/python-lifecycle-training/issues

Syllabus
--------

Project Initialization
~~~~~~~~~~~~~~~~~~~~~~

* editorconfig_
* flake8_
* black_
* isort_
* mypy_
* pre-commit_

Project Setup
~~~~~~~~~~~~~

* fire_
* loguru_
* dynaconf_
* pytest_
* coverage_
* pytest-cov_
* tox_

Project Deployment
~~~~~~~~~~~~~~~~~~

* sphinx_
* gh-actions_
* gh-pages_
* pypi_

For more information check out the full tutorial_.

You can find the template for all the tools mentioned in this training at
https://github.com/sp-fm/fuse-framework which can be used as follows:

.. code-block:: console

    $ pip install fuse-framework
    $ fuse init

Hope you enjoy this training.

.. _editorconfig: https://sp-fm.github.io/python-lifecycle-training/editorconfig.html
.. _flake8: https://sp-fm.github.io/python-lifecycle-training/flake8.html
.. _black: https://sp-fm.github.io/python-lifecycle-training/black.html
.. _isort: https://sp-fm.github.io/python-lifecycle-training/isort.html
.. _mypy: https://sp-fm.github.io/python-lifecycle-training/mypy.html
.. _pre-commit: https://sp-fm.github.io/python-lifecycle-training/pre-commit.html
.. _fire: https://sp-fm.github.io/python-lifecycle-training/fire.html
.. _loguru: https://sp-fm.github.io/python-lifecycle-training/loguru.html
.. _dynaconf: https://sp-fm.github.io/python-lifecycle-training/dynaconf.html
.. _pytest: https://sp-fm.github.io/python-lifecycle-training/pytest.html
.. _coverage: https://sp-fm.github.io/python-lifecycle-training/coverage.html
.. _pytest-cov: https://sp-fm.github.io/python-lifecycle-training/pytest-cov.html
.. _tox: https://sp-fm.github.io/python-lifecycle-training/tox.html
.. _sphinx: https://sp-fm.github.io/python-lifecycle-training/sphinx.html
.. _gh-actions: https://sp-fm.github.io/python-lifecycle-training/gh-actions.html
.. _gh-pages: https://sp-fm.github.io/python-lifecycle-training/gh-pages.html
.. _pypi: https://sp-fm.github.io/python-lifecycle-training/pypi.html
.. _tutorial: https://sp-fm.github.io/python-lifecycle-training/tutorial.html
