Skip to main content

Statick analysis plugins for planning files.

This project has been archived.

The maintainers of this project have marked this project as archived. No new releases are expected.

Project description

Statick Planning Plugins

Unit Tests PyPI version Codecov Python Versions License Checked with mypy Daily Downloads Weekly Downloads Monthly Downloads

This is a set of plugins for Statick that will discover planning files and perform static analysis on those files.

The current plugins will discover planning files in a project and can be configured to check those files using Validate. Custom exceptions can be applied the same way they are with Statick exceptions.

Installation

The recommended method to install these Statick plugins is via pip:

python3 -m pip install statick-planning

You can also clone the repository and use it locally.

The Validate tool has compilation instructions on their Github repository. The way this tool has been used and tested with Statick is by obtaining the binaries via zip file and putting the binaries at /opt/val/. The important part is to get the path to the Validate binary. In our typical setup this binary is at /opt/val/bin/Validate. If you have that binary in a different location you will have to update the commands in the rest of this documentation. An example of where to obtain the zip file is https://dev.azure.com/schlumberger/4e6bcb11-cd68-40fe-98a2-e3777bfec0a6/_apis/build/builds/52/artifacts?artifactName=linux64&api-version=6.0&%24format=zip.

Usage

Pip Install

The most common usage is to use statick and statick-planning from pip. In that case your directory structure will look like the following:

  • project
  • output

To run with the default configuration for the statick-planning tools use:

statick project/ --output-directory output/ --profile planning-profile.yaml --validate-bin /opt/val/bin/Validate

Pip Install and Custom Configuration

At times you will want to have a custom Statick configuration. Typically, this is to run a different set of tools than used in the default profile, or to add exceptions. For this case you will have to add the new Statick configuration somewhere. This example will have custom exceptions in the project, such that the directory structure is:

  • project
    • statick-config
      • rsc
        • exceptions.yaml
  • output

For this setup you will run the following:

statick project/ --output-directory output/ --user-paths project/statick-config/ --profile planning-profile.yaml --config planning-config.yaml --val-validate-bin /opt/val/bin/Validate <!-- markdownlint-disable MD013 -->

Source Install and Custom Configuration

Another setup will be to have all the tools available from cloning repositories, not installing from pip. The directory structure will look like:

  • /home/user
    • package
    • output
    • statick
    • statick-planning

Using the example where we want to override the default exceptions with custom ones in the project, the command to run would be:

/home/user/statick/statick /home/user/package --output-directory output --user-paths /home/user/statick-planning/,/home/user/statick-planning/src/statick_planning/ --profile planning-profile.yaml --config planning-config.yaml --validate-bin /opt/val/bin/Validate <!-- markdownlint-disable MD013 -->

Tests and Contributing

If you write a new feature for Statick or are fixing a bug, you are strongly encouraged to add unit tests for your contribution. In particular, it is much easier to test whether a bug is fixed (and identify future regressions) if you can add a small unit test which replicates the bug.

Before submitting a change, please run tox to check that you have not introduced any regressions or violated any code style guidelines.

Mypy

Statick uses mypy to check that type hints are being followed properly. Type hints are described in PEP 484 and allow for static typing in Python. To determine if proper types are being used in Statick plugins the following command will show any errors, and create several types of reports that can be viewed with a text editor or web browser.

python3 -m pip install mypy
mkdir report
mypy --ignore-missing-imports --strict src/

Formatting

Statick code is formatted using black. To fix locally use

python3 -m pip install black
black src

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

statick_planning-0.3.0.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

statick_planning-0.3.0-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file statick_planning-0.3.0.tar.gz.

File metadata

  • Download URL: statick_planning-0.3.0.tar.gz
  • Upload date:
  • Size: 8.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for statick_planning-0.3.0.tar.gz
Algorithm Hash digest
SHA256 290f856cd01b16d77c4ed75a426e9eababd3c30adabf0fb771fab0fb8f6f3f6c
MD5 497d6b4330b17c4cee38a4f815158961
BLAKE2b-256 9f067c1913222ba51f0da632b7c2604a174fa0ef26896c9b9102d291117098c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for statick_planning-0.3.0.tar.gz:

Publisher: deploy.yaml on tdenewiler/statick-planning

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file statick_planning-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for statick_planning-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c554fa36e01c0dd04e3a310b4c47cddcf5c3b15c13b189fd0da873d0cefa8c0f
MD5 0a0aeedcca292816f4397b350c284739
BLAKE2b-256 96d16b124268355d9cad62273cefed93575f00effb2250ffc2b6c4f1e2cff80f

See more details on using hashes here.

Provenance

The following attestation bundles were made for statick_planning-0.3.0-py3-none-any.whl:

Publisher: deploy.yaml on tdenewiler/statick-planning

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page