[![PyPI](https://img.shields.io/pypi/v/fortitude-lint.svg)](https://pypi.org/project/fortitude-lint)
[![License](https://img.shields.io/pypi/l/fortitude-lint.svg)](https://github.com/PlasmaFAIR/fortitude/blob/main/LICENSE)
![Tests](https://github.com/PlasmaFAIR/fortitude/actions/workflows/test.yml/badge.svg)
![Clippy](https://github.com/PlasmaFAIR/fortitude/actions/workflows/clippy.yml/badge.svg)
[![Docs](https://readthedocs.org/projects/fortitude/badge/?version=latest)](https://fortitude.readthedocs.io/en/latest/?badge=latest)
# Fortitude
A Fortran linter, inspired by (and built upon) [Ruff](https://github.com/astral-sh/ruff).
Written in Rust :crab: and installable with Python :snake:.
- :zap: Blazingly fast, up to hundreds of times faster than other open-source Fortran
linters.
- :wrench: Automatically fixes linter warnings.
- :chart_with_upwards_trend: 30+ rules, with many more planned.
- :page_with_curl: Multiple output formats, including SARIF and GitHub/GitLab CI.
- :handshake: Follows [community best
practices](https://fortran-lang.org/en/learn/best_practices/).
- :muscle: Built on a robust [tree-sitter](https://tree-sitter.github.io/tree-sitter/)
parser -- even syntax errors won't stop it!
## Table of Contents
- [Installation](#installation)
- [Usage](#usage)
- [Contributing](#contributing)
- [License](#license)
## Installation
Fortitude can be installed directly into your Python environment:
```bash
pip install fortitude-lint
```
It can also be installed as a pure Rust project:
```bash
git clone https://github.com/PlasmaFAIR/fortitude
cargo install --path fortitude
```
## Usage
Fortitude can lint your whole project under the working directory
using the `check` command:
```bash
fortitude check
```
You can also call `check` on individual files, globs, and
directories. You can configure what extensions `fortitude` searches
for in directories with `--file-extensions`:
```bash
fortitude check src --file-extensions=f90,fpp
```
You can select or ignore individual rules or whole groups with
`--select` and `--ignore`:
```bash
# Just check for missing `implicit none`
fortitude check --select=T001
# Also check for missing `implicit none` in interfaces
fortitude check --select=T001,T002
# Ignore all styling rules
fortitude check --ignore=S
# Only check for typing rules, but ignore superfluous implicit none
fortitude check --select=T --ignore=T003
# Rules and categories can also be referred to by name
fortitude check --select=typing --ignore=superfluous-implicit-none
```
Use `--output-format=concise` to get shorter output:
```bash
$ fortitude check --concise
test.f90:2:1: M001 function not contained within (sub)module or program
test.f90:5:1: S061 end statement should read 'end function double'
test.f90:7:1: M001 subroutine not contained within (sub)module or program
test.f90:8:3: P021 real has implicit kind
```
The `explain` command can be used to get extra information about any rules:
```bash
# Print extra information for all rules
fortitude explain
# Only get information for selected rules
fortitude explain T001,T011
# Print information on all style rules
fortitude explain S
# Rules and categories can also be referred to by name
fortitude explain style,superfluous-implicit-none
```
To see further commands and optional arguments, try using `--help`:
```bash
fortitude --help
fortitude check --help
```
### Fixes
> [!NOTE]
> Added in v0.6.0
Fortitude can automatically fix some lint warnings, such as
unnecessary `implicit none` statements, missing double-colons in
variable declarations, and more. Just pass the `--fix` flag to
`check`:
```console
$ fortitude check --fix
fortitude: 1 files scanned.
Number of errors: 2 (2 fixed, 0 remaining)
```
Run `fortitude explain` to see which rules have fixes available.
### Preview
> [!NOTE]
> Added in v0.6.0
Some fortitude rules are only available through an opt-in preview
mode to give the community some time to evaluate them and provide
feedback. To enable preview rules, pass the `--preview` flag to
`check`,
```console
$ fortitude check --preview
```
or to enable more permanently, set it in your `fpm.toml`:
```toml
[extra.fortitude.check]
preview = true
```
or `fortitude.toml`:
```toml
[check]
preview = true
```
Run `fortitude explain` to see which rules are in preview mode.
## Configuration
Fortitude will look for either a `fortitude.toml` or `fpm.toml` file in the
current directory, or one of its parents. If using `fortitude.toml`, settings
should be under the command name:
```toml
[check]
select = ["S", "T"]
ignore = ["S001", "S051"]
line-length = 132
```
For `fpm.toml` files, this has to be additionally nested under the
`extra.fortitude` table:
```toml
[extra.fortitude.check]
select = ["S", "T"]
ignore = ["S001", "S051"]
line-length = 132
```
You can use `--extend-select` from the command line to select additional
rules on top of those in the configuration file.
```bash
# Selects S, T, and M categories
fortitude check --extend-select=M
```
## Documentation
See [table of rules](https://fortitude.readthedocs.io/en/stable/rules/) for a list of all rules.
## Contributing
Please feel free to add or suggest new rules or comment on the layout of the project
while it's still at this early stage of development. See
[`CONTRIBUTING.md`](CONTRIBUTING.md) for a guide on contributing to the project, and
[`README.dev.md`](README.dev.md) for details on building the project from source,
running tests, and linting/formatting the code. Please consult our [code of
conduct](CODE_OF_CONDUCT.md) before contributing.
## License
This work is distributed under the MIT License. See [`LICENSE`](LICENSE) for more
information.
Fortitude is inspired by, and uses parts from
[ruff](https://github.com/astral-sh/ruff), used under the MIT licence. See
[`LICENSE`](LICENSE) for more information.
Raw data
{
"_id": null,
"home_page": null,
"name": "fortitude-lint",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "Fortran, linter",
"author": "Liam Pattinson <liampattinson@gmail.com>, Peter Hill <peter.hill@york.ac.uk>",
"author_email": "Liam Pattinson <liampattinson@gmail.com>, Peter Hill <peter.hill@york.ac.uk>",
"download_url": "https://files.pythonhosted.org/packages/0f/10/f5716fe9716115cf49a47e0d2def3a9ca6607b4dd3648a9545d25ebd4208/fortitude_lint-0.6.1.tar.gz",
"platform": null,
"description": "[![PyPI](https://img.shields.io/pypi/v/fortitude-lint.svg)](https://pypi.org/project/fortitude-lint)\n[![License](https://img.shields.io/pypi/l/fortitude-lint.svg)](https://github.com/PlasmaFAIR/fortitude/blob/main/LICENSE)\n![Tests](https://github.com/PlasmaFAIR/fortitude/actions/workflows/test.yml/badge.svg)\n![Clippy](https://github.com/PlasmaFAIR/fortitude/actions/workflows/clippy.yml/badge.svg)\n[![Docs](https://readthedocs.org/projects/fortitude/badge/?version=latest)](https://fortitude.readthedocs.io/en/latest/?badge=latest)\n\n# Fortitude\n\nA Fortran linter, inspired by (and built upon) [Ruff](https://github.com/astral-sh/ruff).\nWritten in Rust :crab: and installable with Python :snake:.\n\n- :zap: Blazingly fast, up to hundreds of times faster than other open-source Fortran\n linters.\n- :wrench: Automatically fixes linter warnings.\n- :chart_with_upwards_trend: 30+ rules, with many more planned.\n- :page_with_curl: Multiple output formats, including SARIF and GitHub/GitLab CI.\n- :handshake: Follows [community best\n practices](https://fortran-lang.org/en/learn/best_practices/).\n- :muscle: Built on a robust [tree-sitter](https://tree-sitter.github.io/tree-sitter/)\n parser -- even syntax errors won't stop it!\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Installation\n\nFortitude can be installed directly into your Python environment:\n\n```bash\npip install fortitude-lint\n```\n\nIt can also be installed as a pure Rust project:\n\n```bash\ngit clone https://github.com/PlasmaFAIR/fortitude\ncargo install --path fortitude\n```\n\n## Usage\n\nFortitude can lint your whole project under the working directory\nusing the `check` command:\n\n```bash\nfortitude check\n```\n\nYou can also call `check` on individual files, globs, and\ndirectories. You can configure what extensions `fortitude` searches\nfor in directories with `--file-extensions`:\n\n```bash\nfortitude check src --file-extensions=f90,fpp\n```\n\nYou can select or ignore individual rules or whole groups with\n`--select` and `--ignore`:\n\n```bash\n# Just check for missing `implicit none`\nfortitude check --select=T001\n# Also check for missing `implicit none` in interfaces\nfortitude check --select=T001,T002\n# Ignore all styling rules\nfortitude check --ignore=S\n# Only check for typing rules, but ignore superfluous implicit none\nfortitude check --select=T --ignore=T003\n# Rules and categories can also be referred to by name\nfortitude check --select=typing --ignore=superfluous-implicit-none\n```\n\nUse `--output-format=concise` to get shorter output:\n\n```bash\n$ fortitude check --concise\ntest.f90:2:1: M001 function not contained within (sub)module or program\ntest.f90:5:1: S061 end statement should read 'end function double'\ntest.f90:7:1: M001 subroutine not contained within (sub)module or program\ntest.f90:8:3: P021 real has implicit kind\n```\n\nThe `explain` command can be used to get extra information about any rules:\n\n```bash\n# Print extra information for all rules\nfortitude explain\n# Only get information for selected rules\nfortitude explain T001,T011\n# Print information on all style rules\nfortitude explain S\n# Rules and categories can also be referred to by name\nfortitude explain style,superfluous-implicit-none\n```\n\nTo see further commands and optional arguments, try using `--help`:\n\n```bash\nfortitude --help\nfortitude check --help\n```\n\n### Fixes\n\n> [!NOTE]\n> Added in v0.6.0\n\nFortitude can automatically fix some lint warnings, such as\nunnecessary `implicit none` statements, missing double-colons in\nvariable declarations, and more. Just pass the `--fix` flag to\n`check`:\n\n```console\n$ fortitude check --fix\nfortitude: 1 files scanned.\nNumber of errors: 2 (2 fixed, 0 remaining)\n```\n\nRun `fortitude explain` to see which rules have fixes available.\n\n### Preview\n\n> [!NOTE]\n> Added in v0.6.0\n\nSome fortitude rules are only available through an opt-in preview\nmode to give the community some time to evaluate them and provide\nfeedback. To enable preview rules, pass the `--preview` flag to\n`check`,\n\n```console\n$ fortitude check --preview\n```\n\nor to enable more permanently, set it in your `fpm.toml`:\n\n```toml\n[extra.fortitude.check]\npreview = true\n```\n\nor `fortitude.toml`:\n\n```toml\n[check]\npreview = true\n```\n\nRun `fortitude explain` to see which rules are in preview mode.\n\n## Configuration\n\nFortitude will look for either a `fortitude.toml` or `fpm.toml` file in the\ncurrent directory, or one of its parents. If using `fortitude.toml`, settings\nshould be under the command name:\n\n```toml\n[check]\nselect = [\"S\", \"T\"]\nignore = [\"S001\", \"S051\"]\nline-length = 132\n```\n\nFor `fpm.toml` files, this has to be additionally nested under the\n`extra.fortitude` table:\n\n```toml\n[extra.fortitude.check]\nselect = [\"S\", \"T\"]\nignore = [\"S001\", \"S051\"]\nline-length = 132\n```\n\nYou can use `--extend-select` from the command line to select additional\nrules on top of those in the configuration file.\n\n```bash\n# Selects S, T, and M categories\nfortitude check --extend-select=M\n```\n\n## Documentation\n\nSee [table of rules](https://fortitude.readthedocs.io/en/stable/rules/) for a list of all rules.\n\n## Contributing\n\nPlease feel free to add or suggest new rules or comment on the layout of the project\nwhile it's still at this early stage of development. See\n[`CONTRIBUTING.md`](CONTRIBUTING.md) for a guide on contributing to the project, and\n[`README.dev.md`](README.dev.md) for details on building the project from source,\nrunning tests, and linting/formatting the code. Please consult our [code of\nconduct](CODE_OF_CONDUCT.md) before contributing.\n\n## License\n\nThis work is distributed under the MIT License. See [`LICENSE`](LICENSE) for more\ninformation.\n\nFortitude is inspired by, and uses parts from\n[ruff](https://github.com/astral-sh/ruff), used under the MIT licence. See\n[`LICENSE`](LICENSE) for more information.\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A Fortran linter, written in Rust and installable with Python",
"version": "0.6.1",
"project_urls": {
"Repository": "https://github.com/PlasmaFAIR/fortitude"
},
"split_keywords": [
"fortran",
" linter"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "60b32b05c6aa62350c308d5c69c7d60851772d60ed1b561640bff37f7da50015",
"md5": "1d732b374ee47224b1e767f62fb47559",
"sha256": "f24005457b5eb093e9e6eb4afc8769eba5d2192fd02e69b9dfc337e68ba91d7a"
},
"downloads": -1,
"filename": "fortitude_lint-0.6.1-py3-none-macosx_10_12_x86_64.whl",
"has_sig": false,
"md5_digest": "1d732b374ee47224b1e767f62fb47559",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 2319823,
"upload_time": "2024-12-10T15:32:27",
"upload_time_iso_8601": "2024-12-10T15:32:27.874269Z",
"url": "https://files.pythonhosted.org/packages/60/b3/2b05c6aa62350c308d5c69c7d60851772d60ed1b561640bff37f7da50015/fortitude_lint-0.6.1-py3-none-macosx_10_12_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "8cfec4d1a33cf7cde17cb4ae5000f3f00bb3efbc21067983a5800b070d58be8f",
"md5": "00714364c183d26ab0baec082c235dea",
"sha256": "19b45df2298794a81b950c3c7ed6423021eda6f5565d9e0cee94850a2eed9b42"
},
"downloads": -1,
"filename": "fortitude_lint-0.6.1-py3-none-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "00714364c183d26ab0baec082c235dea",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 2227163,
"upload_time": "2024-12-10T15:32:26",
"upload_time_iso_8601": "2024-12-10T15:32:26.282860Z",
"url": "https://files.pythonhosted.org/packages/8c/fe/c4d1a33cf7cde17cb4ae5000f3f00bb3efbc21067983a5800b070d58be8f/fortitude_lint-0.6.1-py3-none-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "5402202e2aad2e0eac99e8102631f368d57f3b882532a37248b5615f3d83f22c",
"md5": "aae10170163f0c5118acfe50c70ae07f",
"sha256": "2564b0ca6a2c57ff9a8d29beff5c749e95db1e4e411fc975008c22ddaa32a483"
},
"downloads": -1,
"filename": "fortitude_lint-0.6.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "aae10170163f0c5118acfe50c70ae07f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 2361249,
"upload_time": "2024-12-10T15:32:09",
"upload_time_iso_8601": "2024-12-10T15:32:09.235126Z",
"url": "https://files.pythonhosted.org/packages/54/02/202e2aad2e0eac99e8102631f368d57f3b882532a37248b5615f3d83f22c/fortitude_lint-0.6.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "4cedd7c808874505b50607039aa321c5bc2ad43348e96d873a668fd9b7fc47cf",
"md5": "c2c502e2e86c9c7103fdae50f4622463",
"sha256": "b6c38f6ff39c61dfef0858b992acfc4f7384d231ac77256a3cac12ecf9ba05b0"
},
"downloads": -1,
"filename": "fortitude_lint-0.6.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
"has_sig": false,
"md5_digest": "c2c502e2e86c9c7103fdae50f4622463",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 2320561,
"upload_time": "2024-12-10T15:32:12",
"upload_time_iso_8601": "2024-12-10T15:32:12.086508Z",
"url": "https://files.pythonhosted.org/packages/4c/ed/d7c808874505b50607039aa321c5bc2ad43348e96d873a668fd9b7fc47cf/fortitude_lint-0.6.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "71a812b51035723c2eba8e9fa1a493c5cda6c2bcb3dfc173a1f08e723a190f7a",
"md5": "53b207f69722d40d64578c9393e55b78",
"sha256": "fa1cf9c2c6cee6eea9be26fe74e4cc3f27192b6cba2198190ea5abe42213f0a0"
},
"downloads": -1,
"filename": "fortitude_lint-0.6.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "53b207f69722d40d64578c9393e55b78",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 2588316,
"upload_time": "2024-12-10T15:32:20",
"upload_time_iso_8601": "2024-12-10T15:32:20.399072Z",
"url": "https://files.pythonhosted.org/packages/71/a8/12b51035723c2eba8e9fa1a493c5cda6c2bcb3dfc173a1f08e723a190f7a/fortitude_lint-0.6.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "495211ca8b6f10f1aaf7d179b9569ca286616bd58ce8bff0964e423e0e606537",
"md5": "e3e89ad246626122f8cb8ff9c02b483d",
"sha256": "230509d24b028459fb9d95f300a393312ba66920b62d3ef37d26d741f70868f0"
},
"downloads": -1,
"filename": "fortitude_lint-0.6.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
"has_sig": false,
"md5_digest": "e3e89ad246626122f8cb8ff9c02b483d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 2576090,
"upload_time": "2024-12-10T15:32:15",
"upload_time_iso_8601": "2024-12-10T15:32:15.387452Z",
"url": "https://files.pythonhosted.org/packages/49/52/11ca8b6f10f1aaf7d179b9569ca286616bd58ce8bff0964e423e0e606537/fortitude_lint-0.6.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c3481dd0945b7745ac611e186ea750ad76acffbd45358fb96a0c17520cdef693",
"md5": "39ac392b3753306f38b314a889ad483f",
"sha256": "bd3afbdb9035d978aab5a30509e44fe126c6b6d47bc4cef560236a50137db550"
},
"downloads": -1,
"filename": "fortitude_lint-0.6.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl",
"has_sig": false,
"md5_digest": "39ac392b3753306f38b314a889ad483f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 2703866,
"upload_time": "2024-12-10T15:32:17",
"upload_time_iso_8601": "2024-12-10T15:32:17.760784Z",
"url": "https://files.pythonhosted.org/packages/c3/48/1dd0945b7745ac611e186ea750ad76acffbd45358fb96a0c17520cdef693/fortitude_lint-0.6.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "247bb87d1e2f60d6832c1e00da57b94eba19ef1c222ed85c50aecd0ca1159c38",
"md5": "4bc3889781b2d71fe8147005c4bd053e",
"sha256": "e4aa7539d36c5fa1893c941f849873e4a2d6f882724aa25c93fd7117e17ed0f7"
},
"downloads": -1,
"filename": "fortitude_lint-0.6.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "4bc3889781b2d71fe8147005c4bd053e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 2487883,
"upload_time": "2024-12-10T15:32:23",
"upload_time_iso_8601": "2024-12-10T15:32:23.474649Z",
"url": "https://files.pythonhosted.org/packages/24/7b/b87d1e2f60d6832c1e00da57b94eba19ef1c222ed85c50aecd0ca1159c38/fortitude_lint-0.6.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "509a3621ae0fa640af8bec6bc566812607994c6e34996fd8d341cdcda0295e59",
"md5": "63dff5c64de128aeeeabdd1f1bb56f5d",
"sha256": "ecae87fa2227d88714052b93f1965cd01fbe249c4fb208aab18a42ff8a25c386"
},
"downloads": -1,
"filename": "fortitude_lint-0.6.1-py3-none-musllinux_1_2_aarch64.whl",
"has_sig": false,
"md5_digest": "63dff5c64de128aeeeabdd1f1bb56f5d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 2360943,
"upload_time": "2024-12-10T15:32:29",
"upload_time_iso_8601": "2024-12-10T15:32:29.338024Z",
"url": "https://files.pythonhosted.org/packages/50/9a/3621ae0fa640af8bec6bc566812607994c6e34996fd8d341cdcda0295e59/fortitude_lint-0.6.1-py3-none-musllinux_1_2_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "8345a4bf565e00ae793a031614125244eaa7c550995dd1e0bee494ba1cd846ca",
"md5": "a50d962337d529f943f943705fd792f7",
"sha256": "714f00f08b4ff45891aa13cb4a9569b9d02746f3409fa81370639640c9d15c81"
},
"downloads": -1,
"filename": "fortitude_lint-0.6.1-py3-none-musllinux_1_2_armv7l.whl",
"has_sig": false,
"md5_digest": "a50d962337d529f943f943705fd792f7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 2361856,
"upload_time": "2024-12-10T15:32:30",
"upload_time_iso_8601": "2024-12-10T15:32:30.962059Z",
"url": "https://files.pythonhosted.org/packages/83/45/a4bf565e00ae793a031614125244eaa7c550995dd1e0bee494ba1cd846ca/fortitude_lint-0.6.1-py3-none-musllinux_1_2_armv7l.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "4944e970cca64b5fc65a52a5b08a20eb265c0411dc98ceb71a5d3503a02da198",
"md5": "2bcb23cba96de6d469d52563028aed7c",
"sha256": "6886540c71390e52b7df7c10051d34bfa37e9bf9b56f4dd064a7415bd9c310d6"
},
"downloads": -1,
"filename": "fortitude_lint-0.6.1-py3-none-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "2bcb23cba96de6d469d52563028aed7c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 2511582,
"upload_time": "2024-12-10T15:32:33",
"upload_time_iso_8601": "2024-12-10T15:32:33.674131Z",
"url": "https://files.pythonhosted.org/packages/49/44/e970cca64b5fc65a52a5b08a20eb265c0411dc98ceb71a5d3503a02da198/fortitude_lint-0.6.1-py3-none-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "5189ea51544a088c0bf3c94bdfad11eaacd8ecc06a9b38e2cb83a75f6e46f9b8",
"md5": "bbee9b154cb73bfa6c096e68d0e13b3b",
"sha256": "09b273009187c9aeb79f53fcac7e4eb189160c1c3035f6d579b13dec0feeb56a"
},
"downloads": -1,
"filename": "fortitude_lint-0.6.1-py3-none-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "bbee9b154cb73bfa6c096e68d0e13b3b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 2544247,
"upload_time": "2024-12-10T15:32:35",
"upload_time_iso_8601": "2024-12-10T15:32:35.240950Z",
"url": "https://files.pythonhosted.org/packages/51/89/ea51544a088c0bf3c94bdfad11eaacd8ecc06a9b38e2cb83a75f6e46f9b8/fortitude_lint-0.6.1-py3-none-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "fcbe21b5ac14b32a72760df76133c50e5f4e75854db858d7d6bd8a1f29649a96",
"md5": "31e27673802ab1721d79eb9185bacce6",
"sha256": "a8ed310a8ff100d7942a4b474e50ab6e116f6ecf16d89cd8cd52031b40b2786b"
},
"downloads": -1,
"filename": "fortitude_lint-0.6.1-py3-none-win32.whl",
"has_sig": false,
"md5_digest": "31e27673802ab1721d79eb9185bacce6",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 1974897,
"upload_time": "2024-12-10T15:32:41",
"upload_time_iso_8601": "2024-12-10T15:32:41.636612Z",
"url": "https://files.pythonhosted.org/packages/fc/be/21b5ac14b32a72760df76133c50e5f4e75854db858d7d6bd8a1f29649a96/fortitude_lint-0.6.1-py3-none-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ed3c5877241233fc2d054b168919a151b923e9f45b187be3015e1649d2127d31",
"md5": "50b2f098c0a0608f3de1c3dc45d12369",
"sha256": "e7fc2c176d8c601e32381c00f3987836d9ea67efadaa01c69227111d08006974"
},
"downloads": -1,
"filename": "fortitude_lint-0.6.1-py3-none-win_amd64.whl",
"has_sig": false,
"md5_digest": "50b2f098c0a0608f3de1c3dc45d12369",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 2117332,
"upload_time": "2024-12-10T15:32:38",
"upload_time_iso_8601": "2024-12-10T15:32:38.837953Z",
"url": "https://files.pythonhosted.org/packages/ed/3c/5877241233fc2d054b168919a151b923e9f45b187be3015e1649d2127d31/fortitude_lint-0.6.1-py3-none-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0f10f5716fe9716115cf49a47e0d2def3a9ca6607b4dd3648a9545d25ebd4208",
"md5": "31c4fc2996e896fd657292d7c3d9f89a",
"sha256": "898c2de5253391c57dfdb55eec5eaea3833a2e7a8fabf2bfb7a5f32ac92d03c3"
},
"downloads": -1,
"filename": "fortitude_lint-0.6.1.tar.gz",
"has_sig": false,
"md5_digest": "31c4fc2996e896fd657292d7c3d9f89a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 110954,
"upload_time": "2024-12-10T15:32:36",
"upload_time_iso_8601": "2024-12-10T15:32:36.640314Z",
"url": "https://files.pythonhosted.org/packages/0f/10/f5716fe9716115cf49a47e0d2def3a9ca6607b4dd3648a9545d25ebd4208/fortitude_lint-0.6.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-10 15:32:36",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "PlasmaFAIR",
"github_project": "fortitude",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "fortitude-lint"
}