Skip to main content

Statick analysis plugins for TeX/LaTeX files and projects.

This project has been archived.

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

Project description

Statick TeX/LaTeX 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 TeX/LaTeX files and perform static analysis on those files.

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

Deprecated

This set of plugins was merged into the main [Statick] repository and Python package. All future development will happen in that repository.

Installation

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

pip install statick-tex

You can also clone the repository and use it locally.

To use the tool plugins you need to install the tools they are based on. For Ubuntu Linux you would use

apt install chktex lacheck

Usage

Pip Install

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

  • doc
    • project
    • output

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

statick project/ --output-directory output/ --profile tex-profile.yaml

Pip Install and Custom Configuration

There are times when you will want to have a custom Statick configuration. This is usually done to run a different set of tools than are called out 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:

  • doc
    • 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 tex-profile.yaml

Source Install and Custom Configuration

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

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

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

./statick/statick project/ --output-directory output --user-paths statick-tex,project/statick-config --profile tex-profile.yaml

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.

pip install mypy
mkdir report
mypy --ignore-missing-imports --strict --html-report report/ --txt-report report src/

It is hoped that in the future we will generate coverage reports from mypy and use those to check for regressions.

Formatting

Statick code is formatted using black. To fix locally use

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_tex-0.5.0.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

statick_tex-0.5.0-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file statick_tex-0.5.0.tar.gz.

File metadata

  • Download URL: statick_tex-0.5.0.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for statick_tex-0.5.0.tar.gz
Algorithm Hash digest
SHA256 a85d860ff1f7a71589971739e7cf6a25c2aee7fed7955fa09f79f6b2059c00e0
MD5 a89e4de7c73019254e24f88d34e32528
BLAKE2b-256 46d091a71d1d7efaf17b8f3924908467bbd02fda3898b643f9f8a728ca01053e

See more details on using hashes here.

Provenance

The following attestation bundles were made for statick_tex-0.5.0.tar.gz:

Publisher: deploy.yaml on tdenewiler/statick-tex

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_tex-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: statick_tex-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 9.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for statick_tex-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 79a1f668434f134d53487b393184b90455441ef325d77ef0ec3952fe56b7cbc1
MD5 51790159eedab892da03587f4e4e05ed
BLAKE2b-256 24504bd49828a451aca38e62931a97d8e78c05696cc76c9a8e4015ba163cb04f

See more details on using hashes here.

Provenance

The following attestation bundles were made for statick_tex-0.5.0-py3-none-any.whl:

Publisher: deploy.yaml on tdenewiler/statick-tex

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 Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page