forked from PyCQA/pylint-pytest
-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
this rework allows for a better dev dependency management. now a simple `make install` shall provid the required dev environment for both CI and local dev. using a dev-requirement.txt files ensures repeatability and consistency between CI runs and local dev.
- Loading branch information
Anis Da Silva Campos
committed
Dec 3, 2023
1 parent
57a868b
commit 7b5fec0
Showing
7 changed files
with
262 additions
and
63 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
# Use python executables inside venv | ||
export PATH := ./venv/bin:$(PATH) | ||
export PYTHONPATH=. | ||
|
||
# creates the venv | ||
venv/bin/python3.11: | ||
python3.11 -m venv venv | ||
|
||
# makes sures the venv contains a given version of pip and pip-tools | ||
venv: venv/bin/python3.11 | ||
pip install --quiet --upgrade 'pip==23.3.1' 'pip-tools==7.3' | ||
|
||
# generates a lock file with pinned version of all dependencies to be used by the CI and local devs | ||
dev-requirements.txt: venv dev-requirements.in setup.py | ||
pip-compile \ | ||
--quiet --generate-hashes --max-rounds=20 --strip-extras \ | ||
--resolver=backtracking \ | ||
--output-file dev-requirements.txt \ | ||
dev-requirements.in setup.cfg | ||
|
||
# upgrades the dependencies to their latest/matching version | ||
upgrade: venv | ||
pip-compile \ | ||
--quiet --generate-hashes --max-rounds=20 --strip-extras \ | ||
--upgrade \ | ||
--resolver=backtracking \ | ||
--output-file dev-requirements.txt \ | ||
dev-requirements.in setup.cfg | ||
|
||
|
||
# creates the venv if not present then install the dependencies, the package and pre-commit | ||
.PHONY: install | ||
install: venv | ||
pip-sync dev-requirements.txt | ||
# install pylint_pytest (deps are already handled by the line before) | ||
pip install --no-deps -e . | ||
# install pre-commit hooks | ||
pre-commit install |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
pip-tools | ||
wheel | ||
pre-commit |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,162 @@ | ||
# | ||
# This file is autogenerated by pip-compile with Python 3.11 | ||
# by the following command: | ||
# | ||
# pip-compile --generate-hashes --max-rounds=20 --output-file=dev-requirements.txt --strip-extras dev-requirements.in setup.cfg | ||
# | ||
astroid==3.0.1 \ | ||
--hash=sha256:7d5895c9825e18079c5aeac0572bc2e4c83205c95d416e0b4fee8bc361d2d9ca \ | ||
--hash=sha256:86b0bb7d7da0be1a7c4aedb7974e391b32d4ed89e33de6ed6902b4b15c97577e | ||
# via pylint | ||
build==1.0.3 \ | ||
--hash=sha256:538aab1b64f9828977f84bc63ae570b060a8ed1be419e7870b8b4fc5e6ea553b \ | ||
--hash=sha256:589bf99a67df7c9cf07ec0ac0e5e2ea5d4b37ac63301c4986d1acb126aa83f8f | ||
# via pip-tools | ||
cfgv==3.4.0 \ | ||
--hash=sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9 \ | ||
--hash=sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560 | ||
# via pre-commit | ||
click==8.1.7 \ | ||
--hash=sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 \ | ||
--hash=sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de | ||
# via pip-tools | ||
dill==0.3.7 \ | ||
--hash=sha256:76b122c08ef4ce2eedcd4d1abd8e641114bfc6c2867f49f3c41facf65bf19f5e \ | ||
--hash=sha256:cc1c8b182eb3013e24bd475ff2e9295af86c1a38eb1aff128dac8962a9ce3c03 | ||
# via pylint | ||
distlib==0.3.7 \ | ||
--hash=sha256:2e24928bc811348f0feb63014e97aaae3037f2cf48712d51ae61df7fd6075057 \ | ||
--hash=sha256:9dafe54b34a028eafd95039d5e5d4851a13734540f1331060d31c9916e7147a8 | ||
# via virtualenv | ||
filelock==3.13.1 \ | ||
--hash=sha256:521f5f56c50f8426f5e03ad3b281b490a87ef15bc6c526f168290f0c7148d44e \ | ||
--hash=sha256:57dbda9b35157b05fb3e58ee91448612eb674172fab98ee235ccb0b5bee19a1c | ||
# via virtualenv | ||
identify==2.5.32 \ | ||
--hash=sha256:0b7656ef6cba81664b783352c73f8c24b39cf82f926f78f4550eda928e5e0545 \ | ||
--hash=sha256:5d9979348ec1a21c768ae07e0a652924538e8bce67313a73cb0f681cf08ba407 | ||
# via pre-commit | ||
iniconfig==2.0.0 \ | ||
--hash=sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3 \ | ||
--hash=sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374 | ||
# via pytest | ||
isort==5.12.0 \ | ||
--hash=sha256:8bef7dde241278824a6d83f44a544709b065191b95b6e50894bdc722fcba0504 \ | ||
--hash=sha256:f84c2818376e66cf843d497486ea8fed8700b340f308f076c6fb1229dff318b6 | ||
# via pylint | ||
mccabe==0.7.0 \ | ||
--hash=sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325 \ | ||
--hash=sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e | ||
# via pylint | ||
nodeenv==1.8.0 \ | ||
--hash=sha256:d51e0c37e64fbf47d017feac3145cdbb58836d7eee8c6f6d3b6880c5456227d2 \ | ||
--hash=sha256:df865724bb3c3adc86b3876fa209771517b0cfe596beff01a92700e0e8be4cec | ||
# via pre-commit | ||
packaging==23.2 \ | ||
--hash=sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5 \ | ||
--hash=sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 | ||
# via | ||
# build | ||
# pytest | ||
pip-tools==7.3.0 \ | ||
--hash=sha256:8717693288720a8c6ebd07149c93ab0be1fced0b5191df9e9decd3263e20d85e \ | ||
--hash=sha256:8e9c99127fe024c025b46a0b2d15c7bd47f18f33226cf7330d35493663fc1d1d | ||
# via -r dev-requirements.in | ||
platformdirs==4.0.0 \ | ||
--hash=sha256:118c954d7e949b35437270383a3f2531e99dd93cf7ce4dc8340d3356d30f173b \ | ||
--hash=sha256:cb633b2bcf10c51af60beb0ab06d2f1d69064b43abf4c185ca6b28865f3f9731 | ||
# via | ||
# pylint | ||
# virtualenv | ||
pluggy==1.3.0 \ | ||
--hash=sha256:cf61ae8f126ac6f7c451172cf30e3e43d3ca77615509771b3a984a0730651e12 \ | ||
--hash=sha256:d89c696a773f8bd377d18e5ecda92b7a3793cbe66c87060a6fb58c7b6e1061f7 | ||
# via pytest | ||
pre-commit==3.5.0 \ | ||
--hash=sha256:5804465c675b659b0862f07907f96295d490822a450c4c40e747d0b1c6ebcb32 \ | ||
--hash=sha256:841dc9aef25daba9a0238cd27984041fa0467b4199fc4852e27950664919f660 | ||
# via -r dev-requirements.in | ||
pylint==3.0.2 \ | ||
--hash=sha256:0d4c286ef6d2f66c8bfb527a7f8a629009e42c99707dec821a03e1b51a4c1496 \ | ||
--hash=sha256:60ed5f3a9ff8b61839ff0348b3624ceeb9e6c2a92c514d81c9cc273da3b6bcda | ||
# via pylint-pytest (setup.cfg) | ||
pyproject-hooks==1.0.0 \ | ||
--hash=sha256:283c11acd6b928d2f6a7c73fa0d01cb2bdc5f07c57a2eeb6e83d5e56b97976f8 \ | ||
--hash=sha256:f271b298b97f5955d53fb12b72c1fb1948c22c1a6b70b315c54cedaca0264ef5 | ||
# via build | ||
pytest==7.4.3 \ | ||
--hash=sha256:0d009c083ea859a71b76adf7c1d502e4bc170b80a8ef002da5806527b9591fac \ | ||
--hash=sha256:d989d136982de4e3b29dabcc838ad581c64e8ed52c11fbe86ddebd9da0818cd5 | ||
# via pylint-pytest (setup.cfg) | ||
pyyaml==6.0.1 \ | ||
--hash=sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5 \ | ||
--hash=sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc \ | ||
--hash=sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df \ | ||
--hash=sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741 \ | ||
--hash=sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206 \ | ||
--hash=sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27 \ | ||
--hash=sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595 \ | ||
--hash=sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62 \ | ||
--hash=sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98 \ | ||
--hash=sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696 \ | ||
--hash=sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290 \ | ||
--hash=sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9 \ | ||
--hash=sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d \ | ||
--hash=sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6 \ | ||
--hash=sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867 \ | ||
--hash=sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47 \ | ||
--hash=sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486 \ | ||
--hash=sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6 \ | ||
--hash=sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3 \ | ||
--hash=sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007 \ | ||
--hash=sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938 \ | ||
--hash=sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0 \ | ||
--hash=sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c \ | ||
--hash=sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735 \ | ||
--hash=sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d \ | ||
--hash=sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28 \ | ||
--hash=sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4 \ | ||
--hash=sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba \ | ||
--hash=sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8 \ | ||
--hash=sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5 \ | ||
--hash=sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd \ | ||
--hash=sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3 \ | ||
--hash=sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0 \ | ||
--hash=sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515 \ | ||
--hash=sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c \ | ||
--hash=sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c \ | ||
--hash=sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924 \ | ||
--hash=sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34 \ | ||
--hash=sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43 \ | ||
--hash=sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859 \ | ||
--hash=sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673 \ | ||
--hash=sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54 \ | ||
--hash=sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a \ | ||
--hash=sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b \ | ||
--hash=sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab \ | ||
--hash=sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa \ | ||
--hash=sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c \ | ||
--hash=sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585 \ | ||
--hash=sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d \ | ||
--hash=sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f | ||
# via pre-commit | ||
tomlkit==0.12.3 \ | ||
--hash=sha256:75baf5012d06501f07bee5bf8e801b9f343e7aac5a92581f20f80ce632e6b5a4 \ | ||
--hash=sha256:b0a645a9156dc7cb5d3a1f0d4bab66db287fcb8e0430bdd4664a095ea16414ba | ||
# via pylint | ||
virtualenv==20.25.0 \ | ||
--hash=sha256:4238949c5ffe6876362d9c0180fc6c3a824a7b12b80604eeb8085f2ed7460de3 \ | ||
--hash=sha256:bf51c0d9c7dd63ea8e44086fa1e4fb1093a31e963b86959257378aef020e1f1b | ||
# via pre-commit | ||
wheel==0.42.0 \ | ||
--hash=sha256:177f9c9b0d45c47873b619f5b650346d632cdc35fb5e4d25058e09c9e581433d \ | ||
--hash=sha256:c45be39f7882c9d34243236f2d63cbd58039e360f85d0913425fbd7ceea617a8 | ||
# via | ||
# -r dev-requirements.in | ||
# pip-tools | ||
|
||
# WARNING: The following packages were not pinned, but pip requires them to be | ||
# pinned when the requirements file includes hashes and the requirement is not | ||
# satisfied by a package already installed. Consider using the --allow-unsafe flag. | ||
# pip | ||
# setuptools |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,7 @@ | ||
# Only a configuration storage, for now | ||
[build-system] | ||
requires = ["setuptools"] | ||
|
||
[tool.aliases] | ||
test = "pytest" | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
[metadata] | ||
name = pylint-pytest | ||
version = 1.1.6 | ||
author = Stavros Ntentos | ||
author_email = 133706+stdedos@users.noreply.github.com | ||
license = MIT | ||
description = A Pylint plugin to suppress pytest-related false positives. | ||
keywords = pylint, pytest, plugin | ||
url = https://github.com/pylint-dev/pylint-pytest | ||
long_description = file: README.md | ||
long_description_content_type = text/markdown | ||
classifiers = | ||
Development Status :: 5 - Production/Stable | ||
Intended Audience :: Developers | ||
Topic :: Software Development :: Testing | ||
Topic :: Software Development :: Quality Assurance | ||
Programming Language :: Python | ||
Programming Language :: Python :: 3 | ||
Programming Language :: Python :: 3.8 | ||
Programming Language :: Python :: 3.9 | ||
Programming Language :: Python :: 3.10 | ||
Programming Language :: Python :: 3.11 | ||
Programming Language :: Python :: Implementation :: CPython | ||
Operating System :: OS Independent | ||
License :: OSI Approved :: MIT License | ||
project_urls = | ||
Changelog = https://github.com/pylint-dev/pylint-pytest/blob/master/CHANGELOG.md | ||
Documentation = https://github.com/pylint-dev/pylint-pytest#readme | ||
Say Thanks! = https://saythanks.io/to/stdedos | ||
Source = https://github.com/pylint-dev/pylint-pytest | ||
Tracker = https://github.com/pylint-dev/pylint-pytest/issues | ||
|
||
[aliases] | ||
test = pytest | ||
|
||
[options] | ||
packages = find: | ||
install_requires = | ||
pylint>=2,<4 | ||
pytest>=4.6 | ||
python_requires = >=3.8 | ||
tests_require = | ||
pytest | ||
pytest-cov | ||
pylint | ||
[options.packages.find] | ||
exclude = | ||
tests* | ||
sandbox |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,52 +1,5 @@ | ||
#!/usr/bin/env python | ||
|
||
from os import path | ||
from setuptools import setup | ||
|
||
from setuptools import find_packages, setup | ||
|
||
here = path.abspath(path.dirname(__file__)) | ||
with open(path.join(here, "README.md")) as fin: | ||
long_description = fin.read() | ||
|
||
|
||
setup( | ||
name="pylint-pytest", | ||
version="1.1.6", | ||
author="Stavros Ntentos", | ||
author_email="133706+stdedos@users.noreply.github.com", | ||
license="MIT", | ||
url="https://github.com/pylint-dev/pylint-pytest", | ||
project_urls={ | ||
"Changelog": "https://github.com/pylint-dev/pylint-pytest/blob/master/CHANGELOG.md", | ||
"Documentation": "https://github.com/pylint-dev/pylint-pytest#readme", | ||
"Say Thanks!": "https://saythanks.io/to/stdedos", | ||
"Source": "https://github.com/pylint-dev/pylint-pytest", | ||
"Tracker": "https://github.com/pylint-dev/pylint-pytest/issues", | ||
}, | ||
description="A Pylint plugin to suppress pytest-related false positives.", | ||
long_description=long_description, | ||
long_description_content_type="text/markdown", | ||
packages=find_packages(exclude=["tests*", "sandbox"]), | ||
install_requires=[ | ||
"pylint>=2", | ||
"pytest>=4.6", | ||
], | ||
python_requires=">=3.8", | ||
classifiers=[ | ||
"Development Status :: 5 - Production/Stable", | ||
"Intended Audience :: Developers", | ||
"Topic :: Software Development :: Testing", | ||
"Topic :: Software Development :: Quality Assurance", | ||
"Programming Language :: Python", | ||
"Programming Language :: Python :: 3", | ||
"Programming Language :: Python :: 3.8", | ||
"Programming Language :: Python :: 3.9", | ||
"Programming Language :: Python :: 3.10", | ||
"Programming Language :: Python :: 3.11", | ||
"Programming Language :: Python :: Implementation :: CPython", | ||
"Operating System :: OS Independent", | ||
"License :: OSI Approved :: MIT License", | ||
], | ||
tests_require=["pytest", "pytest-cov", "pylint"], | ||
keywords=["pylint", "pytest", "plugin"], | ||
) | ||
setup() |