lintro 0.3.2__py3-none-any.whl → 0.4.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of lintro might be problematic. Click here for more details.

@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lintro
3
- Version: 0.3.2
3
+ Version: 0.4.3
4
4
  Summary: A unified CLI tool for code formatting, linting, and quality assurance
5
5
  Author-email: TurboCoder13 <turbocoder13@gmail.com>
6
6
  License: MIT License
7
7
 
8
- Copyright (c) 2024 Eitel Dagnin
8
+ Copyright (c) 2024 TurboCoder13
9
9
 
10
10
  Permission is hereby granted, free of charge, to any person obtaining a copy
11
11
  of this software and associated documentation files (the "Software"), to deal
@@ -36,10 +36,10 @@ Classifier: Programming Language :: Python :: 3.13
36
36
  Classifier: Topic :: Software Development :: Quality Assurance
37
37
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
38
38
  Classifier: Topic :: Utilities
39
- Requires-Python: <3.14,>=3.13
39
+ Requires-Python: ==3.13.7
40
40
  Description-Content-Type: text/markdown
41
41
  License-File: LICENSE
42
- Requires-Dist: click==8.2.1
42
+ Requires-Dist: click==8.1.8
43
43
  Requires-Dist: coverage-badge==1.1.2
44
44
  Requires-Dist: darglint==1.8.1
45
45
  Requires-Dist: loguru==0.7.3
@@ -47,25 +47,28 @@ Requires-Dist: tabulate==0.9.0
47
47
  Requires-Dist: yamllint==1.37.1
48
48
  Requires-Dist: httpx==0.28.1
49
49
  Requires-Dist: toml==0.10.2
50
- Requires-Dist: python-semantic-release>=9.12.0
50
+ Requires-Dist: defusedxml==0.7.1
51
51
  Provides-Extra: dev
52
52
  Requires-Dist: pytest==8.4.1; extra == "dev"
53
53
  Requires-Dist: pytest-cov==6.2.1; extra == "dev"
54
54
  Requires-Dist: pytest-mock==3.14.1; extra == "dev"
55
- Requires-Dist: pytest-xdist==3.6.1; extra == "dev"
55
+ Requires-Dist: pytest-xdist==3.8.0; extra == "dev"
56
56
  Requires-Dist: tox==4.28.4; extra == "dev"
57
57
  Requires-Dist: allure-pytest==2.15.0; extra == "dev"
58
58
  Requires-Dist: ruff; extra == "dev"
59
59
  Requires-Dist: mypy; extra == "dev"
60
60
  Requires-Dist: coverage-badge==1.1.2; extra == "dev"
61
- Requires-Dist: python-semantic-release==9.12.0; extra == "dev"
61
+ Requires-Dist: python-semantic-release==10.3.1; extra == "dev"
62
+ Requires-Dist: assertpy==1.1; extra == "dev"
63
+ Requires-Dist: httpx==0.28.1; extra == "dev"
62
64
  Provides-Extra: test
63
65
  Requires-Dist: pytest==8.4.1; extra == "test"
64
66
  Requires-Dist: pytest-cov==6.2.1; extra == "test"
65
67
  Requires-Dist: pytest-mock==3.14.1; extra == "test"
66
- Requires-Dist: pytest-xdist==3.6.1; extra == "test"
68
+ Requires-Dist: pytest-xdist==3.8.0; extra == "test"
69
+ Requires-Dist: assertpy==1.1; extra == "test"
67
70
  Provides-Extra: typing
68
- Requires-Dist: types-setuptools==80.9.0.20250809; extra == "typing"
71
+ Requires-Dist: types-setuptools==80.9.0.20250822; extra == "typing"
69
72
  Requires-Dist: types-tabulate==0.9.0.20241207; extra == "typing"
70
73
  Dynamic: license-file
71
74
 
@@ -79,6 +82,17 @@ A comprehensive CLI tool that unifies various code formatting, linting, and qual
79
82
 
80
83
  Lintro is a unified command-line interface that brings together multiple code quality tools into a single, easy-to-use package. Instead of managing separate tools like Ruff, Prettier, Yamllint, and others individually, Lintro provides a consistent interface for all your code quality needs.
81
84
 
85
+ [![Python](https://img.shields.io/badge/python-3.13-blue)](https://www.python.org/downloads/)
86
+ [![Coverage](https://codecov.io/gh/TurboCoder13/py-lintro/branch/main/graph/badge.svg)](https://codecov.io/gh/TurboCoder13/py-lintro)
87
+ [![License](https://img.shields.io/badge/license-MIT-green)](LICENSE)
88
+ [![Tests](https://img.shields.io/github/actions/workflow/status/TurboCoder13/py-lintro/test-and-coverage.yml?label=tests&branch=main&logo=githubactions&logoColor=white)](https://github.com/TurboCoder13/py-lintro/actions/workflows/test-and-coverage.yml?query=branch%3Amain)
89
+ [![CI](https://img.shields.io/github/actions/workflow/status/TurboCoder13/py-lintro/ci-lintro-analysis.yml?label=ci&branch=main&logo=githubactions&logoColor=white)](https://github.com/TurboCoder13/py-lintro/actions/workflows/ci-lintro-analysis.yml?query=branch%3Amain)
90
+ [![Docker](https://img.shields.io/github/actions/workflow/status/TurboCoder13/py-lintro/docker-build-publish.yml?label=docker&logo=docker&branch=main)](https://github.com/TurboCoder13/py-lintro/actions/workflows/docker-build-publish.yml?query=branch%3Amain)
91
+ [![PyPI](https://img.shields.io/pypi/v/lintro?label=pypi)](https://pypi.org/project/lintro/)
92
+
93
+ [![CodeQL](https://github.com/TurboCoder13/py-lintro/actions/workflows/codeql.yml/badge.svg?branch=main)](https://github.com/TurboCoder13/py-lintro/actions/workflows/codeql.yml?query=branch%3Amain)
94
+ [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/turbocoder13/py-lintro/badge)](https://securityscorecards.dev/viewer/?uri=github.com/turbocoder13/py-lintro)
95
+
82
96
  ### Why Lintro?
83
97
 
84
98
  - **🚀 Unified Interface**: One command to run all your linting and formatting tools
@@ -89,15 +103,6 @@ Lintro is a unified command-line interface that brings together multiple code qu
89
103
  - **⚡ Fast**: Optimized execution with efficient tool management
90
104
  - **🔒 Reliable**: Comprehensive test suite with 84% coverage
91
105
 
92
- [![Python](https://img.shields.io/badge/python-3.13-blue)](https://www.python.org/downloads/)
93
- [![Coverage](assets/images/coverage-badge.svg)](docs/coverage-setup.md)
94
- [![License](https://img.shields.io/badge/license-MIT-green)](LICENSE)
95
- [![Tests](https://img.shields.io/github/actions/workflow/status/TurboCoder13/py-lintro/test-and-coverage.yml?label=tests)](https://github.com/TurboCoder13/py-lintro/actions/workflows/test-and-coverage.yml)
96
- [![CI](https://img.shields.io/github/actions/workflow/status/TurboCoder13/py-lintro/ci-lintro-analysis.yml?label=ci)](https://github.com/TurboCoder13/py-lintro/actions/workflows/ci-lintro-analysis.yml)
97
- [![Docker](https://img.shields.io/github/actions/workflow/status/TurboCoder13/py-lintro/docker-build-publish.yml?label=docker&logo=docker)](https://github.com/TurboCoder13/py-lintro/actions/workflows/docker-build-publish.yml)
98
- [![Code Style](https://img.shields.io/badge/code%20style-ruff-black-blue)](https://github.com/astral-sh/ruff)
99
- [![PyPI](https://img.shields.io/pypi/v/lintro?label=pypi)](https://pypi.org/project/lintro/)
100
-
101
106
  ## Features
102
107
 
103
108
  - **Unified CLI** for multiple code quality tools
@@ -109,13 +114,15 @@ Lintro is a unified command-line interface that brings together multiple code qu
109
114
 
110
115
  ## Supported Tools
111
116
 
112
- | Tool | Language/Format | Purpose | Auto-fix |
113
- | ------------ | --------------- | -------------------- | -------- |
114
- | **Ruff** | Python | Linting & Formatting | |
115
- | **Darglint** | Python | Docstring Validation | - |
116
- | **Prettier** | JS/TS/JSON | Code Formatting | |
117
- | **Yamllint** | YAML | Syntax & Style | - |
118
- | **Hadolint** | Dockerfile | Best Practices | - |
117
+ | Tool | Language | Auto-fix |
118
+ | --------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------- | -------- |
119
+ | [![Actionlint](https://img.shields.io/badge/Actionlint-GitHub%20Workflows-24292e?logo=github&logoColor=white)](https://github.com/rhysd/actionlint) | ⚙️ GitHub Workflows | - |
120
+ | [![Bandit](https://img.shields.io/badge/Bandit-security-yellow?logo=python&logoColor=white)](https://github.com/PyCQA/bandit) | 🐍 Python | - |
121
+ | [![Darglint](https://img.shields.io/badge/Darglint-docstrings-3776AB?logo=python&logoColor=white)](https://github.com/terrencepreilly/darglint) | 🐍 Python | - |
122
+ | [![Hadolint](https://img.shields.io/badge/Hadolint-lint-2496ED?logo=docker&logoColor=white)](https://github.com/hadolint/hadolint) | 🐳 Dockerfile | - |
123
+ | [![Prettier](https://img.shields.io/badge/Prettier-format-1a2b34?logo=prettier&logoColor=white)](https://prettier.io/) | 🟨 JS/TS · 🧾 JSON | |
124
+ | [![Ruff](https://img.shields.io/badge/Ruff-lint%2Bformat-000?logo=ruff&logoColor=white)](https://github.com/astral-sh/ruff) | 🐍 Python | ✅ |
125
+ | [![Yamllint](https://img.shields.io/badge/Yamllint-lint-cb171e?logo=yaml&logoColor=white)](https://github.com/adrienverge/yamllint) | 🧾 YAML | - |
119
126
 
120
127
  ## Quick Start
121
128
 
@@ -149,7 +156,7 @@ lintro format
149
156
  lintro check --output-format grid
150
157
 
151
158
  # Run specific tools only
152
- lintro check --tools ruff,prettier
159
+ lintro check --tools ruff,prettier,actionlint
153
160
 
154
161
  # List all available tools
155
162
  lintro list-tools
@@ -206,8 +213,8 @@ lintro check --output-format grid --group-by code # Group by error type
206
213
  # Exclude patterns
207
214
  lintro check --exclude "migrations,node_modules,dist"
208
215
 
209
- # Tool-specific options
210
- lintro check --tool-options "ruff:--line-length=88,prettier:--print-width=80"
216
+ # Tool-specific options use key=value (lists with |)
217
+ lintro check --tool-options "ruff:line_length=88,prettier:print_width=80"
211
218
 
212
219
  # Ruff fix configuration (fmt):
213
220
  # By default, fmt applies both lint fixes and formatting for Ruff.
@@ -1,4 +1,4 @@
1
- lintro/__init__.py,sha256=PDz4oSptiLt_jQFP8SYJrdBvsF6rKHxz9c7sS92G3AA,109
1
+ lintro/__init__.py,sha256=vDv4-8WHqfFUKIr9Cv31ttKZd6-SsATxZ6nlksrc7HE,110
2
2
  lintro/__main__.py,sha256=McxM6wEcEeCLBHZs0F8xzT1PxVqJYkjtaPq1_-Nug-0,106
3
3
  lintro/cli.py,sha256=Fy5nqdSg4id0gjGbPy82wRTK3aZMWbRdRDnwAbIv-vs,2333
4
4
  lintro/ascii-art/fail.txt,sha256=gshKngSrz5FvJdP6g7lPygpLsLsZZh4etBU_wR7PXOw,56396
@@ -30,7 +30,9 @@ lintro/formatters/styles/html.py,sha256=M1YVlzCKsV8_zaOearYwkPOHEVLcbV-tueXMJJcJ
30
30
  lintro/formatters/styles/json.py,sha256=aZobZxntAiyo92_elI1VznrOd8jzEPrU7MUQBQHdM8Q,1923
31
31
  lintro/formatters/styles/markdown.py,sha256=proUn2UEhNceTw6mVv_KSBYinLekgATx58ZWiu_PT1U,1309
32
32
  lintro/formatters/styles/plain.py,sha256=_-4ziK6vBtvxI1wk-qLJHqKTUMs0SGWaBJPz1zV4Ngc,1125
33
- lintro/formatters/tools/__init__.py,sha256=Kdgi4iiqhzSzyEAOpcZ1kK2GKxZHZlPKcQQH-VDAtrM,935
33
+ lintro/formatters/tools/__init__.py,sha256=5HxvLscHFl-dYv0h_X6_-rEaszdVU-XPNtL-ZkliGvU,1289
34
+ lintro/formatters/tools/actionlint_formatter.py,sha256=VtwwGSSsTxmWTy-w9U2Mtu0X_Pmg7rarS4tV7G1nq90,2811
35
+ lintro/formatters/tools/bandit_formatter.py,sha256=iuLAHX08cP6gC6kLqJzlGMjtSRgYXjhwycfKiy4lBtg,3092
34
36
  lintro/formatters/tools/darglint_formatter.py,sha256=kik3kJM1eENOSEVWzUXBZYUeBOCB3FjZcFUns0HL0ck,2177
35
37
  lintro/formatters/tools/hadolint_formatter.py,sha256=enugwgR571IFv-75HJ-RCrsK9GBZfH-Bwb-WjoJGd2Y,2608
36
38
  lintro/formatters/tools/prettier_formatter.py,sha256=VtV3uSoNhUtatqQa18QtQgcBAmzMPyjS2xDIAzpI0IY,2470
@@ -41,7 +43,10 @@ lintro/models/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
41
43
  lintro/models/core/tool.py,sha256=TWkVV_KOYziqCdq_f3Goft3PKWKByitsQ2VFiX6MVHM,2594
42
44
  lintro/models/core/tool_config.py,sha256=_VHxiUc0V3e9e2VIVJCpoEQ66cijuNMtsiz5hQmVIus,804
43
45
  lintro/models/core/tool_result.py,sha256=z5fexuCBt1ir0hvzojxVX-Abt6MNIT7_JvH5oyW_FlI,1319
44
- lintro/parsers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
+ lintro/parsers/__init__.py,sha256=53UA1LuS21BL4xj8i81Qb59dKXe3jCFLBrDVqvvNHVQ,288
47
+ lintro/parsers/actionlint/__init__.py,sha256=N953d0kbJEOZE9cG4eq9BjiSErdk10GMrngV_tKjLvo,33
48
+ lintro/parsers/actionlint/actionlint_issue.py,sha256=H_BQr04KAGHpVp1qKqETcWLi3i-u6atl7ccDae-jqX8,636
49
+ lintro/parsers/actionlint/actionlint_parser.py,sha256=FAovzY877UeaDj7ZHb0zy6Y_hsidWS6UR1O8KCYVISU,1889
45
50
  lintro/parsers/darglint/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
51
  lintro/parsers/darglint/darglint_issue.py,sha256=f43blLSM13r1VyyGwk-bjtC7raBCjRqwlnPw7Nmx9ic,127
47
52
  lintro/parsers/darglint/darglint_parser.py,sha256=oh2Q-innmm_H5O-xTNMvObmLMFJSL51uqOtSgG39WsQ,2045
@@ -57,29 +62,31 @@ lintro/parsers/ruff/ruff_parser.py,sha256=dvufb9F2JLBfdHE2houF5M-5tDcKRsEhtC1CBN
57
62
  lintro/parsers/yamllint/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
63
  lintro/parsers/yamllint/yamllint_issue.py,sha256=jWawdGUiTI1HADbhg8yEdZfC6yHcmk9FDzpr3PBUPBg,608
59
64
  lintro/parsers/yamllint/yamllint_parser.py,sha256=UaZ0sjVPUw3kWJ7QYHY0wX9ybifoy1NbicGjBDMijGE,1945
60
- lintro/tools/__init__.py,sha256=L69IkHRQVlvDYcJugP4z9NCaKc_kceuboQgKjo__BqE,1240
61
- lintro/tools/tool_enum.py,sha256=Bs_LvgupRJJUcvA7ZnxW84OJdD7QZnCtOHvs6wjlUEk,575
65
+ lintro/tools/__init__.py,sha256=8prHy3TTttzVvWWzn5xbPRHwXkPoN6P_KGqTmFJh5HI,1416
66
+ lintro/tools/tool_enum.py,sha256=kQ7atS2ZrfhiEgRJtjPAM4zn0PVhK9iObEqJj0no3JI,767
62
67
  lintro/tools/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
- lintro/tools/core/tool_base.py,sha256=lraij6gUgB6euc7JdE0KLONdpCK56zsuQbYGLBqAEJI,10869
68
+ lintro/tools/core/tool_base.py,sha256=FIotjOzpE3E2fK2t2gA4c6Pwe7AI3uc2GF0-wpe13o4,11043
64
69
  lintro/tools/core/tool_manager.py,sha256=yKQONy17t7-fq1k9dkrMk6lZaAvaSwp7-JcvJFZMoYc,5103
65
70
  lintro/tools/implementations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
66
- lintro/tools/implementations/tool_darglint.py,sha256=lgHqVVFUFNyVHUmzDMOktjeUeP3CpIQywPAtiGDJE9I,9340
67
- lintro/tools/implementations/tool_hadolint.py,sha256=ylUPDKJ_FxM3N4FCtbgKa0RxrL47pcRLSU4GH0ZlYvc,11431
71
+ lintro/tools/implementations/tool_actionlint.py,sha256=7b1pUxs9Ln6KmoLiRQBmyDeq9SmgZ08e0DxleM9NEt8,5466
72
+ lintro/tools/implementations/tool_bandit.py,sha256=Iw6ekDayg8JdSD8dLDOlaUtQ4adcd83wp1iF4xeiteI,15823
73
+ lintro/tools/implementations/tool_darglint.py,sha256=zj8hQ8bVW3fwO8dsK9tdXzyL1yzZvqiEetVGvxhGe4g,9396
74
+ lintro/tools/implementations/tool_hadolint.py,sha256=NfHLoThp23V-n5chSfrBZetleXsRR4oYxkLxOkJxU0g,11479
68
75
  lintro/tools/implementations/tool_prettier.py,sha256=QTboRboHLRzhgGdpGnRbaFf2D2DaG981iRWFYvTUfJE,9446
69
76
  lintro/tools/implementations/tool_ruff.py,sha256=l8QVQES8mvY7pceP0aLS2ivzOsTWmyika6D6eXGnvqs,24424
70
- lintro/tools/implementations/tool_yamllint.py,sha256=kunF5PYYOumd0G62hSvh8fOnhczwioHtpfVcLk3fCYI,8783
77
+ lintro/tools/implementations/tool_yamllint.py,sha256=0powR9F3FkIq-b7PI0-XWdh7nx7rR3HVMtvEaz_NWeA,8831
71
78
  lintro/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
72
79
  lintro/utils/ascii_normalize_cli.py,sha256=ztuHEvmMgl2gLy3vAo8RTwvxCTWyXgL1C7jPMX7IaKM,2391
73
80
  lintro/utils/config.py,sha256=Mi_3dqPjmNF7pcgA3b-Dx0CKQe_qrYCh_uYF9u6g0TQ,1036
74
- lintro/utils/console_logger.py,sha256=ZujOP1UVx88K35ttPd3yB1_zqZ5xkrlqQNqRYUJYFwA,30645
75
- lintro/utils/formatting.py,sha256=TuQH4jhAstz-hqrdN1SIibRjWqKGJxg1CREHJKCq4sM,5187
81
+ lintro/utils/console_logger.py,sha256=1WPIsKySvd6kPcAa4JyqtAd3G8lJf4MOcR1AzGk8TmI,31483
82
+ lintro/utils/formatting.py,sha256=khC9hYBva5xqBV1IqNcivRH9gRdvWw6u6mh2TZLTy7E,5346
76
83
  lintro/utils/output_manager.py,sha256=kqTlWcR2HXyo-uiiWypHm8XaG8DQnngWgEqf1H9X5DU,10211
77
84
  lintro/utils/path_utils.py,sha256=NJP3vjVDcRBgUHtYNrpL0tRa0Sc3oQhGX3_2WWzdZE4,1395
78
- lintro/utils/tool_executor.py,sha256=fS9ed524Jr5wiB92YEVYlEjpk1NSbfgc0u7LP-Udha4,16146
79
- lintro/utils/tool_utils.py,sha256=qqhVH-TzCB4yONzoEyUsAz_i72Th1lBGnFpjWAeeWdg,14674
80
- lintro-0.3.2.dist-info/licenses/LICENSE,sha256=uI_MuPnZqNvr8afiZQO9DPfKQFOIVE3QMg7ZwbTjX-k,1069
81
- lintro-0.3.2.dist-info/METADATA,sha256=4WUpn95xSAt6SHOoy7SpGWXo4nIuLpsmdrRmEbjpEI4,11744
82
- lintro-0.3.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
83
- lintro-0.3.2.dist-info/entry_points.txt,sha256=SYSk35jFyNLEHyrofSJsRv4qFN9NsT4VWSbvnTS9ov0,43
84
- lintro-0.3.2.dist-info/top_level.txt,sha256=_D-7eyV6gNBOoIwHuf_h60wN_RWiw8GxB430Il9VKhU,7
85
- lintro-0.3.2.dist-info/RECORD,,
85
+ lintro/utils/tool_executor.py,sha256=daY1ueIhOmXCEb1Jf56F7gj_UO8yKtTZ9zqxiQKmEj8,16535
86
+ lintro/utils/tool_utils.py,sha256=dspPnkNwYBtVbV2NDiBHEpq3-zsOVFj4szipdvoDxY0,15407
87
+ lintro-0.4.3.dist-info/licenses/LICENSE,sha256=CwaAnyD2psonDBBJjbqFUz00W8nQw-FGDlEGZReUV6A,1069
88
+ lintro-0.4.3.dist-info/METADATA,sha256=eg1KBnfeTLEySOOpOXtz-J5RR8E95mytkA4f3qIoiZ8,13602
89
+ lintro-0.4.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
90
+ lintro-0.4.3.dist-info/entry_points.txt,sha256=SYSk35jFyNLEHyrofSJsRv4qFN9NsT4VWSbvnTS9ov0,43
91
+ lintro-0.4.3.dist-info/top_level.txt,sha256=_D-7eyV6gNBOoIwHuf_h60wN_RWiw8GxB430Il9VKhU,7
92
+ lintro-0.4.3.dist-info/RECORD,,
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2024 Eitel Dagnin
3
+ Copyright (c) 2024 TurboCoder13
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
File without changes