Merge branch 'master' into rasa-py-3.13-support

This commit is contained in:
Jonas Eschle 2025-04-08 09:49:42 +02:00 committed by GitHub
commit da63e0d71c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 143 additions and 30 deletions

View File

@ -1,6 +1,10 @@
name: Tests and Codecov name: Tests and Codecov
on: on:
push: push:
branches:
- master
- main
- "release/*"
pull_request: pull_request:
workflow_dispatch: workflow_dispatch:
@ -23,8 +27,8 @@ jobs:
- name: Install dependencies - name: Install dependencies
run: | run: |
python -m pip install --upgrade pip python -m pip install uv
pip install tox tox-gh-actions uv pip install --system tox tox-gh-actions
- name: Test with tox - name: Test with tox
run: tox run: tox
@ -38,9 +42,8 @@ jobs:
- name: Install dependencies - name: Install dependencies
run: | run: |
python -m pip install --upgrade pip python -m pip install uv poetry
pip install poetry uv pip install --system .[dev]
poetry install --with dev
- name: Calculate coverage - name: Calculate coverage
run: poetry run coverage run --source=pipreqs -m unittest discover run: poetry run coverage run --source=pipreqs -m unittest discover

96
.pre-commit-config.yaml Normal file
View File

@ -0,0 +1,96 @@
ci:
autoupdate_commit_msg: "chore: update pre-commit hooks"
autofix_commit_msg: "style: pre-commit fixes"
autoupdate_schedule: quarterly
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
hooks:
- id: check-added-large-files
args: [ '--maxkb=1000' ]
- id: check-case-conflict
- id: check-merge-conflict
- id: check-symlinks
- id: check-yaml
- id: check-toml
- id: check-json
- id: debug-statements
- id: end-of-file-fixer
- id: mixed-line-ending
- id: requirements-txt-fixer
- id: trailing-whitespace
files: ".*\\.(?:tex|py)$"
args: [ --markdown-linebreak-ext=md ]
exclude: (^notebooks/|^tests/truth/)
- id: detect-private-key
- id: fix-byte-order-marker
- id: check-ast
- id: check-docstring-first
- id: debug-statements
- repo: https://github.com/pre-commit/pygrep-hooks
rev: v1.10.0
hooks:
- id: python-use-type-annotations
- id: python-check-mock-methods
- id: python-no-eval
- id: rst-backticks
- id: rst-directive-colons
- repo: https://github.com/asottile/pyupgrade
rev: v3.3.1
hooks:
- id: pyupgrade
args: [ --py38-plus ]
# Notebook formatting
- repo: https://github.com/nbQA-dev/nbQA
rev: 1.9.1
hooks:
- id: nbqa-isort
additional_dependencies: [ isort ]
- id: nbqa-pyupgrade
additional_dependencies: [ pyupgrade ]
args: [ --py38-plus ]
- repo: https://github.com/kynan/nbstripout
rev: 0.8.1
hooks:
- id: nbstripout
- repo: https://github.com/sondrelg/pep585-upgrade
rev: 'v1.0'
hooks:
- id: upgrade-type-hints
args: [ '--futures=true' ]
- repo: https://github.com/MarcoGorelli/auto-walrus
rev: 0.3.4
hooks:
- id: auto-walrus
- repo: https://github.com/python-jsonschema/check-jsonschema
rev: 0.30.0
hooks:
- id: check-github-workflows
- id: check-github-actions
- id: check-dependabot
- id: check-readthedocs
- repo: https://github.com/dannysepler/rm_unneeded_f_str
rev: v0.2.0
hooks:
- id: rm-unneeded-f-str
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: "v0.8.6"
hooks:
- id: ruff
types_or: [ python, pyi, jupyter ]
args: [ --fix, --show-fixes , --line-length=120 ] # --unsafe-fixes,
# Run the formatter.
- id: ruff-format
types_or: [ python, pyi, jupyter ]

View File

@ -2,8 +2,8 @@
``pipreqs`` - Generate requirements.txt file for any project based on imports ``pipreqs`` - Generate requirements.txt file for any project based on imports
============================================================================= =============================================================================
.. image:: https://img.shields.io/travis/bndr/pipreqs.svg .. image:: https://github.com/bndr/pipreqs/actions/workflows/tests.yml/badge.svg
:target: https://travis-ci.org/bndr/pipreqs :target: https://github.com/bndr/pipreqs/actions/workflows/tests.yml
.. image:: https://img.shields.io/pypi/v/pipreqs.svg .. image:: https://img.shields.io/pypi/v/pipreqs.svg

View File

@ -36,6 +36,7 @@ Pyxides:astro_pyxis
QtCore:PySide QtCore:PySide
S3:s3cmd S3:s3cmd
SCons:pystick SCons:pystick
speech_recognition:SpeechRecognition
Shared:Zope2 Shared:Zope2
Signals:Zope2 Signals:Zope2
Stemmer:PyStemmer Stemmer:PyStemmer
@ -582,6 +583,7 @@ ctff:tff
cups:pycups cups:pycups
curator:elasticsearch_curator curator:elasticsearch_curator
curl:pycurl curl:pycurl
cv2:opencv-python
daemon:python_daemon daemon:python_daemon
dare:DARE dare:DARE
dateutil:python_dateutil dateutil:python_dateutil
@ -720,6 +722,7 @@ jaraco:jaraco.util
jinja2:Jinja2 jinja2:Jinja2
jiracli:jira_cli jiracli:jira_cli
johnny:johnny_cache johnny:johnny_cache
jose:python_jose
jpgrid:python_geohash jpgrid:python_geohash
jpiarea:python_geohash jpiarea:python_geohash
jpype:JPype1 jpype:JPype1
@ -975,6 +978,7 @@ pysynth_samp:PySynth
pythongettext:python_gettext pythongettext:python_gettext
pythonjsonlogger:python_json_logger pythonjsonlogger:python_json_logger
pyutilib:PyUtilib pyutilib:PyUtilib
pywintypes:pywin32
pyximport:Cython pyximport:Cython
qs:qserve qs:qserve
quadtree:python_geohash quadtree:python_geohash

View File

@ -31,7 +31,7 @@ Options:
--clean <file> Clean up requirements.txt by removing modules --clean <file> Clean up requirements.txt by removing modules
that are not imported in project that are not imported in project
--mode <scheme> Enables dynamic versioning with <compat>, --mode <scheme> Enables dynamic versioning with <compat>,
<gt> or <non-pin> schemes. <gt> or <no-pin> schemes.
<compat> | e.g. Flask~=1.1.2 <compat> | e.g. Flask~=1.1.2
<gt> | e.g. Flask>=1.1.2 <gt> | e.g. Flask>=1.1.2
<no-pin> | e.g. Flask <no-pin> | e.g. Flask
@ -110,6 +110,7 @@ def get_all_imports(path, encoding="utf-8", extra_ignore_dirs=None, follow_links
"__pycache__", "__pycache__",
"env", "env",
"venv", "venv",
".venv",
".ipynb_checkpoints", ".ipynb_checkpoints",
] ]

View File

@ -1,11 +1,16 @@
[tool.poetry] [project]
name = "pipreqs" name = "pipreqs"
version = "0.5.0" version = "0.5.0"
description = "Pip requirements.txt generator based on imports in project" description = "Pip requirements.txt generator based on imports in project"
authors = ["Vadim Kravcenko <vadim.kravcenko@gmail.com>"] authors = [
{ name = "Vadim Kravcenko", email = "vadim.kravcenko@gmail.com" }
]
maintainers = [
{name = "Jonas Eschle", email = "jonas.eschle@gmail.com"}
]
license = "Apache-2.0" license = "Apache-2.0"
readme = ["README.rst", "HISTORY.rst"] readme = "README.rst"
packages = [{include = "pipreqs"}] packages = [{ include = "pipreqs" }]
repository = "https://github.com/bndr/pipreqs" repository = "https://github.com/bndr/pipreqs"
keywords = ["pip", "requirements", "imports"] keywords = ["pip", "requirements", "imports"]
classifiers = [ classifiers = [
@ -14,30 +19,35 @@ classifiers = [
"License :: OSI Approved :: Apache Software License", "License :: OSI Approved :: Apache Software License",
"Natural Language :: English", "Natural Language :: English",
"Programming Language :: Python :: 3", "Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13" "Programming Language :: Python :: 3.13",
] ]
requires-python = ">=3.9, <3.14"
[tool.poetry.scripts] dependencies = [
pipreqs = "pipreqs.pipreqs:main" "yarg>=0.1.9",
"docopt>=0.6.2",
[tool.poetry.dependencies] "nbconvert>=7.11.0",
python = ">=3.8.1,<3.14" "ipython>=8.12.3",
yarg = "0.1.9" ]
docopt = "0.6.2" [project.optional-dependencies]
nbconvert = "^7.11.0" dev = [
ipython = "8.12.3" "flake8>=6.1.0",
"tox>=4.11.3",
[tool.poetry.group.dev.dependencies] "coverage>=7.3.2",
"sphinx>=7.2.6;python_version>='3.9'",
]
[tool.poetry.group.dev.dependencies] # for legacy usage
flake8 = "^6.1.0" flake8 = "^6.1.0"
tox = "^4.11.3" tox = "^4.11.3"
coverage = "^7.3.2" coverage = "^7.3.2"
sphinx = { version = "^7.2.6", python = ">=3.9" } sphinx = { version = "^7.2.6", python = ">=3.9" }
[project.scripts]
pipreqs = "pipreqs.pipreqs:main"
[build-system] [build-system]
requires = ["poetry-core"] requires = ["poetry-core>=2.0.0,<3.0.0"]
build-backend = "poetry.core.masonry.api" build-backend = "poetry.core.masonry.api"

View File

@ -1,10 +1,9 @@
[tox] [tox]
isolated_build = true isolated_build = true
envlist = py38, py39, py310, py311, py312, py313, pypy3, flake8 envlist = py39, py310, py311, py312, py313, pypy3, flake8
[gh-actions] [gh-actions]
python = python =
3.8: py38
3.9: py39 3.9: py39
3.10: py310 3.10: py310
3.11: py311 3.11: py311
@ -15,7 +14,7 @@ python =
[testenv] [testenv]
setenv = setenv =
PYTHONPATH = {toxinidir}:{toxinidir}/pipreqs PYTHONPATH = {toxinidir}:{toxinidir}/pipreqs
commands = commands =
python -m unittest discover python -m unittest discover
[testenv:flake8] [testenv:flake8]