commit 17bde0d16d48ee7481d5c2c15ba1e50b60344138 Author: foefl Date: Wed Apr 9 15:53:08 2025 +0200 initial template diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..21e6a91 --- /dev/null +++ b/.gitignore @@ -0,0 +1,170 @@ +# own +prototypes/ +data/ +reports/ +*.code-workspace +# credentials +CREDENTIALS* + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm-project.org/#use-with-ide +.pdm.toml +.pdm-python +.pdm-build/ + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..b53e2c4 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# py311 diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..7b39038 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,150 @@ +[project] +name = "py311" +version = "0.1.0" +description = "PLEASE ADD PROJECT DESCRIPTION" +authors = [ + {name = "PLEASE ADD AUTHOR", email = "PLEASE ADD EMAIL ADDRESS"}, +] +dependencies = [] +requires-python = ">=3.11" +readme = "README.md" +license = {text = "LicenseRef-Proprietary"} + +[build-system] +requires = ["pdm-backend"] +build-backend = "pdm.backend" + + +[tool.ruff] +line-length = 94 +indent-width = 4 +target-version = "py311" +src = ["src"] + +[tool.ruff.format] +quote-style = "double" +skip-magic-trailing-comma = false + +[tool.ruff.lint] +select = ["E", "F", "I"] + +[tool.ruff.lint.isort] +extra-standard-library = ["typing_extensions"] + + +[tool.pytest.ini_options] +addopts = [ + "-vl", + "--import-mode=importlib", +] +testpaths = [ + "tests", +] +filterwarnings = [ +] +markers = [ + "new: to test only new tests, usually removed afterwards (deselect with '-m \"not quick\"')", +] +log_cli = true + +[tool.coverage.run] +relative_files = true +source = [ + "src/", + "tests/", +] + +[tool.coverage.report] +exclude_also = [ + "def __repr__", + "def __str__", + "@overload", + "if logging", + 'if [t\.]*TYPE_CHECKING', + "@pytest.fixture", + "if __name__ == __main__:", + "@wrap_result", +] + +[tool.coverage.html] +directory = "reports/coverage" + + +[tool.bumpversion] +current_version = "0.5.6" +parse = """(?x) + (?P0|[1-9]\\d*)\\. + (?P0|[1-9]\\d*)\\. + (?P0|[1-9]\\d*) + (?: + # separator for pre-release section + (?P[a-zA-Z-]+) # pre-release label + (?P0|[1-9]\\d*) # pre-release version number + )? # pre-release section is optional +""" +serialize = [ + "{major}.{minor}.{patch}{pre_l}{pre_n}", + "{major}.{minor}.{patch}", +] +search = "{current_version}" +replace = "{new_version}" +regex = false +ignore_missing_version = false +ignore_missing_files = false +tag = false +sign_tags = false +tag_name = "v{new_version}" +tag_message = "Bump version: {current_version} → {new_version}" +allow_dirty = true +commit = false +message = "Bump version: {current_version} → {new_version}" +commit_args = "" +setup_hooks = [] +pre_commit_hooks = [] +post_commit_hooks = [] + +[tool.bumpversion.parts.pre_l] +values = ["dev", "rc", "final"] +optional_value = "final" + +[[tool.bumpversion.files]] +filename = "pyproject.toml" +search = "version = \"{current_version}\"" +replace = "version = \"{new_version}\"" + + +[tool.pdm] +distribution = true + +[tool.pdm.build] +package-dir = "src" + +[tool.pdm.resolution] +respect-source-order = true + +[[tool.pdm.source]] +name = "private" +url = "http://localhost:8001/simple" +verify_ssl = false + +[[tool.pdm.source]] +name = "pypi" +url = "https://pypi.org/simple" +[dependency-groups] +tests = [ + "pytest>=8.3.4", + "pytest-cov>=6.0.0", + "pytest-xdist>=3.6.1", +] +lint = [ + "ruff>=0.9.6", +] +dev = [ + "pdoc3>=0.11.5", + "bump-my-version>=1.1.1", + "nox>=2025.2.9", +] +nb = [ + "jupyterlab>=4.3.5", + "ipywidgets>=8.1.5", +] diff --git a/scripts/build.ps1 b/scripts/build.ps1 new file mode 100644 index 0000000..edb0a24 --- /dev/null +++ b/scripts/build.ps1 @@ -0,0 +1 @@ +pdm build -d build/ \ No newline at end of file diff --git a/scripts/bump_patch.ps1 b/scripts/bump_patch.ps1 new file mode 100644 index 0000000..19ee4d1 --- /dev/null +++ b/scripts/bump_patch.ps1 @@ -0,0 +1,2 @@ +pdm run bump-my-version bump patch +pdm run bump-my-version show current_version \ No newline at end of file diff --git a/scripts/bump_prerelease_num.ps1 b/scripts/bump_prerelease_num.ps1 new file mode 100644 index 0000000..2855af1 --- /dev/null +++ b/scripts/bump_prerelease_num.ps1 @@ -0,0 +1,2 @@ +pdm run bump-my-version bump pre_n +pdm run bump-my-version show current_version \ No newline at end of file diff --git a/scripts/bump_release_type.ps1 b/scripts/bump_release_type.ps1 new file mode 100644 index 0000000..3d315ad --- /dev/null +++ b/scripts/bump_release_type.ps1 @@ -0,0 +1,2 @@ +pdm run bump-my-version bump pre_l +pdm run bump-my-version show current_version \ No newline at end of file diff --git a/scripts/publish.ps1 b/scripts/publish.ps1 new file mode 100644 index 0000000..d16fc9c --- /dev/null +++ b/scripts/publish.ps1 @@ -0,0 +1 @@ +pdm publish -r local --skip-existing \ No newline at end of file diff --git a/src/py311/__init__.py b/src/py311/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29