Skip to content

luftfartsverket/reqstool-python-poetry-plugin

Repository files navigation

Commit Activity GitHub Issues License Build Static Badge

Reqstool Python Poetry Plugin

Description

This provides a generic plugin for Poetry that runs during the build process.

The plugin collects decorated code, formatting it and writing it to a annotations.yml file saved to the build/reqstool/ folder, utilizing the reqstool-python-decorators package for the processing.

Installation

Plugin

The package name is reqstool-python-poetry-plugin.

  • Using poetry:
$poetry add reqstool-python-poetry-plugin 
  • pip install (unsure if working as intended):
$pip install reqstool-python-poetry-plugin

Dependencies

reqstool-decorators

The plugin reads decorators available in the reqstool-python-decorators package.

$pip install reqstool-python-decorators

pyproject.toml

[tool.poetry.dependencies]
reqstool-python-decorators = "<version>"

Configuration

The plugin is configured in the pyproject.toml file.

[tool.reqstool]
sources = ["src", "tests"]
test_results = "build/**/junit.xml"
dataset_directory = "docs/reqstool"
output_directory = "build/reqstool"

This specifies where the plugin should be applied: `sources`, where test reports are located: `test_results`, where reqstool files are located: `dataset_directory` and output directory: `output_directory`.


## Usage

Decorators

Used to decorate your code as seen in the examples below, the decorator processing that runs during the build process collects data from the decorated code.

Import decorators:

from reqstool-python-decorators.decorators.decorators import Requirements, SVCs

Example usage of the decorators:

@Requirements("REQ_111", "REQ_222")
def somefunction():
@SVCs("SVC_111", "SVC_222")
def test_somefunction():

Poetry build

When running $poetry build or $poetry install the plugin will run the activate function located inside DecoratorsPlugin class, calling functions from the reqstool-python-decorators package and generate a annotations.yml file in the build/reqstool/ folder containing formatted data on all decorated code found.

License

This project is licensed under the MIT License - see the LICENSE.md file for details.