-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Migrate to pyproject.toml, remove setup.cfg, pyscaffold (#79)
- Loading branch information
Showing
5 changed files
with
110 additions
and
150 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,75 @@ | ||
[build-system] | ||
requires = ["setuptools>=72", "wheel", "setuptools_scm[toml]>=8"] | ||
|
||
[project] | ||
name = "etos_api" | ||
dynamic = ["version"] | ||
description = "ETOS API" | ||
authors = [{name = "Tobias Persson", email = "[email protected]"}] | ||
license = { text = "Apache License, Version 2.0" } | ||
readme = "README.rst" | ||
classifiers = [ | ||
"Development Status :: 4 - Beta", | ||
"Programming Language :: Python :: 3", | ||
"License :: OSI Approved :: Apache Software License" | ||
] | ||
dependencies = [ | ||
"etos_lib==4.3.1", | ||
"etcd3gw~=2.3", | ||
"uvicorn~=0.22", | ||
"fastapi~=0.109.1", | ||
"aiohttp[speedups]~=3.8", | ||
"gql[requests]~=3.4", | ||
"httpx~=0.24", | ||
"kubernetes~=26.1", | ||
"sse-starlette~=1.6", | ||
"opentelemetry-api~=1.21", | ||
"opentelemetry-exporter-otlp~=1.21", | ||
"opentelemetry-instrumentation-fastapi==0.46b0", | ||
"opentelemetry-sdk~=1.21", | ||
"jsontas~=1.4", | ||
"packageurl-python~=0.11", | ||
"cryptography>=42.0.4,<43.0.0", | ||
"setuptools_scm~=8.0" | ||
] | ||
|
||
[options] | ||
zip_safe = false | ||
include_package_data = true | ||
python_requires = ">=3.4" | ||
|
||
[options.packages.find] | ||
where = "src" | ||
exclude = ["tests"] | ||
|
||
[project.urls] | ||
Documentation = "https://etos.readthedocs.io/" | ||
Homepage = "https://github.com/eiffel-community/etos-api" | ||
Repository = "https://github.com/eiffel-community/etos-api" | ||
|
||
[project.scripts] | ||
|
||
[project.optional-dependencies] | ||
testing = ["pytest", "pytest-cov"] | ||
|
||
[test] | ||
extras = true | ||
|
||
[tool.build_sphinx] | ||
source_dir = "docs" | ||
build_dir = "build/sphinx" | ||
|
||
[tool.devpi.upload] | ||
no-vcs = 1 | ||
formats = "bdist_wheel" | ||
|
||
[tool.flake8] | ||
exclude = [".tox", "build", "dist", ".eggs", "docs/conf.py"] | ||
|
||
[tool.pytest.ini_options] | ||
addopts = "--cov etos_api --cov-report term-missing --verbose" | ||
norecursedirs = ["dist", "build", ".tox"] | ||
testpaths = ["tests"] | ||
|
||
[tool.setuptools_scm] | ||
root = ".." |
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
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,23 +1,42 @@ | ||
# -*- coding: utf-8 -*- | ||
"""Setup file for etos_api. | ||
"""Setup file for etos-api.""" | ||
from setuptools import setup | ||
from setuptools_scm.version import get_local_dirty_tag | ||
|
||
Use setup.cfg to configure your project. | ||
|
||
This file was generated with PyScaffold 3.2.3. | ||
PyScaffold helps you to put up the scaffold of your new Python project. | ||
Learn more under: https://pyscaffold.org/ | ||
""" | ||
import sys | ||
def version_scheme(version) -> str: | ||
"""Get version component for the current commit. | ||
from pkg_resources import VersionConflict, require | ||
from setuptools import setup | ||
Used by setuptools_scm. | ||
""" | ||
if version.tag and version.distance == 0: | ||
# If the current commit has a tag, use the tag as version, regardless of branch. | ||
# Note: Github CI creates releases from detached HEAD, not from a particular branch. | ||
return f"{version.tag}" | ||
elif version.branch == "main" and version.tag and version.distance > 0: | ||
# For untagged commits on the release branch always add a distance like ".post3" | ||
return f"{version.tag}.post{version.distance}" | ||
else: | ||
# For non-release branches, mark the version as dev and distance: | ||
return f"{version.tag}.dev{version.distance}" | ||
|
||
|
||
def local_scheme(version) -> str: | ||
"""Get local version component for the current Git commit. | ||
Used by setuptools_scm. | ||
""" | ||
# If current version is dirty, always add dirty suffix, regardless of branch. | ||
dirty_tag = get_local_dirty_tag(version) if version.dirty else "" | ||
if dirty_tag: | ||
return f"{dirty_tag}.{version.node}" | ||
|
||
try: | ||
require("setuptools>=38.3") | ||
except VersionConflict: | ||
print("Error: version of setuptools is too old (<38.3)!") | ||
sys.exit(1) | ||
if version.distance == 0: | ||
# If the current commit has a tag, do not add a local component, regardless of branch. | ||
return "" | ||
# For all other cases, always add the git reference (like "g7839952") | ||
return f"+{version.node}" | ||
|
||
|
||
if __name__ == "__main__": | ||
setup(use_pyscaffold=True) | ||
setup(use_scm_version={"local_scheme": local_scheme, "version_scheme": version_scheme}) |