Metadata-Version: 2.4
Name: csspin-python
Version: 3.2.0
Summary: Plugin-package for csspin providing Python related plugins
Author-email: CONTACT Software GmbH <info@contact-software.com>
Maintainer-email: Waleri Enns <waleri.enns@contact-software.com>, Benjamin Thomas Schwertfeger <benjaminthomas.schwertfeger@contact-software.com>, Fabian Hafer <fabian.hafer@contact-software.com>
License-Expression: Apache-2.0
Project-URL: CONTACT Software GmbH, https://contact-software.com
Project-URL: Documentation, https://csspin-python.readthedocs.io/en/stable/
Project-URL: Issue Tracker, https://github.com/cslab/csspin-python/issues
Project-URL: Release Notes, https://csspin-python.readthedocs.io/en/stable/relnotes.html
Project-URL: Repository, https://github.com/cslab/csspin-python
Classifier: Environment :: Console
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development
Requires-Python: >=3.9
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: platformdirs~=4.3.8
Requires-Dist: virtualenv
Provides-Extra: aws-auth
Requires-Dist: csaccess>=0.1.0; extra == "aws-auth"
Provides-Extra: uv
Requires-Dist: tomli; python_version < "3.11" and extra == "uv"
Requires-Dist: tomli-w; extra == "uv"
Requires-Dist: uv; extra == "uv"
Dynamic: license-file

|Latest Version| |Python| |License|

`csspin-python` is maintained and published by `CONTACT Software GmbH`_ and
serves Python-based plugins for the `csspin`_ task runner.

The following plugins are available:

- `csspin_python.behave`: A plugin for running tests using Behave.
- `csspin_python.debugpy`: A plugin for debugging Python code using `debugpy`_.
- `csspin_python.devpi`: A plugin for simplified usage of `devpi`_.
- `csspin_python.pytest`: A plugin for running tests using pytest.
- `csspin_python.python`: A plugin for provisioning Python environments  and
  installing dependencies.
- `csspin_python.radon`: A plugin for running `radon`_ to analyze code
  complexity.
- `csspin_python.sphinx`: A plugin for building Sphinx documentation.
- `csspin_python.playwright`: A plugin for running tests using `playwright`_.
  This plugin is deprecated, use the pytest plugin with the
  'pytest.playwright.enabled=true' setting instead.
- `csspin_python.uv_provisioner`: A plugin that uses `uv`_ to provision the Python environment.

The package provides an ``aws_auth`` extra, that, if enabled, can authenticate
to `CONTACT Software GmbH`_'s AWS Codeartifact. It also provides an ``uv``
extra, that is necessary for using the ``csspin_python.uv_provisioner`` plugin.

Prerequisites
-------------

`csspin` is available on PyPI and can be installed using pip, pipx or any other
Python package manager, e.g.:

.. code-block:: console

   python -m pip install csspin

Using csspin-python
-------------------

The `csspin-python` package and its plugins can be installed by defining those
within the `spinfile.yaml` configuration file of your project.

.. code-block:: yaml

    spin:
      project_name: my_project

    # To develop plugins comfortably, install the packages editable as
    # follows and add the relevant plugins to the list 'plugins' below
    plugin_packages:
      - csspin-python

    # The list of plugins to be used for this project.
    plugins:
      - csspin_python.pytest

    python:
      version: 3.9.8
      requirements:
        - sphinx-click
        - sphinx-rtd-theme
        - pytest-mock

    pytest:
      opts: [-m, "not slow"]
      tests: [tests]

If the ``spinfile.yaml`` is configured correctly, you can provision the project
using ``spin provision``, that will automatically create a Python virtual
environment and install the required dependencies. After that, you can run
tests using ``spin pytest`` and do other great things.

.. _`CONTACT Software GmbH`: https://contact-software.com
.. |Python| image:: https://img.shields.io/pypi/pyversions/csspin-python.svg?style=flat
    :target: https://pypi.python.org/pypi/csspin-python/
    :alt: Supported Python Versions
.. |Latest Version| image:: http://img.shields.io/pypi/v/csspin-python.svg?style=flat
    :target: https://pypi.python.org/pypi/csspin/
    :alt: Latest Package Version
.. |License| image:: http://img.shields.io/pypi/l/csspin-python.svg?style=flat
    :target: https://www.apache.org/licenses/LICENSE-2.0.txt
    :alt: License
.. _`csspin`: https://pypi.org/project/csspin
.. _`debugpy`: https://pypi.org/project/debugpy
.. _`devpi`: https://pypi.org/project/devpi
.. _`playwright`: https://pypi.org/project/pytest-playwright
.. _`radon`: https://pypi.org/project/radon
.. _`uv`: https://docs.astral.sh/uv/
