diff --git a/pccommon/pyproject.toml b/pccommon/pyproject.toml new file mode 100644 index 00000000..ef2c2a02 --- /dev/null +++ b/pccommon/pyproject.toml @@ -0,0 +1,50 @@ +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[project] +name = "pccommon" +dynamic = ["version"] +description = "Planetary Computer API - Common." +license = { text = "MIT" } +requires-python = ">=3.7" +dependencies = [ + "azure-data-tables>=12.5.0", + "azure-identity>=1.16.1", + "azure-storage-blob>=12.20.0", + "cachetools~=5.3", + "fastapi-slim>=0.111.0", + "html-sanitizer>=2.4.4", + "idna>=3.7.0", + "lxml_html_clean>=0.1.0", + "opencensus-ext-azure>=1.1.13", + "opencensus-ext-logging>=0.1.1", + "orjson>=3.10.4", + "pydantic-settings>=2.3", + "pydantic>=2.7", + "pyhumps>=3.5.3", + "redis>=4.6.0", + "requests>=2.32.3", + "starlette>=0.37.2", + "types-cachetools>=4.2.9", + "urllib3>=2.2.2", +] + +[project.optional-dependencies] +dev = [ + "pytest", + "pytest-asyncio", + "types-redis", + "types-requests", +] + +[project.scripts] +pcapis = "pccommon.cli:cli" + +[tool.hatch.version] +path = "pccommon/version.py" + +[tool.hatch.build.targets.sdist] +include = [ + "/pccommon", +] diff --git a/pccommon/requirements.txt b/pccommon/requirements.txt index e1832b0b..0584ae14 100644 --- a/pccommon/requirements.txt +++ b/pccommon/requirements.txt @@ -2,7 +2,7 @@ # This file is autogenerated by pip-compile with Python 3.9 # by the following command: # -# pip-compile --extra=server --output-file=pccommon/requirements.txt ./pccommon/setup.py +# pip-compile --extra=server --output-file=pccommon/requirements.txt ./pccommon/pyproject.toml # annotated-types==0.7.0 # via pydantic @@ -17,19 +17,19 @@ azure-core==1.30.2 # azure-storage-blob # opencensus-ext-azure azure-data-tables==12.5.0 - # via pccommon (pccommon/setup.py) + # via pccommon (pccommon/pyproject.toml) azure-identity==1.16.1 # via # opencensus-ext-azure - # pccommon (pccommon/setup.py) + # pccommon (pccommon/pyproject.toml) azure-storage-blob==12.20.0 - # via pccommon (pccommon/setup.py) + # via pccommon (pccommon/pyproject.toml) beautifulsoup4==4.12.3 # via html-sanitizer cachetools==5.3.3 # via # google-auth - # pccommon (pccommon/setup.py) + # pccommon (pccommon/pyproject.toml) certifi==2024.7.4 # via requests cffi==1.16.0 @@ -45,7 +45,7 @@ cryptography==42.0.8 exceptiongroup==1.2.1 # via anyio fastapi-slim==0.111.0 - # via pccommon (pccommon/setup.py) + # via pccommon (pccommon/pyproject.toml) google-api-core==2.19.0 # via opencensus google-auth==2.30.0 @@ -53,11 +53,11 @@ google-auth==2.30.0 googleapis-common-protos==1.63.1 # via google-api-core html-sanitizer==2.4.4 - # via pccommon (pccommon/setup.py) + # via pccommon (pccommon/pyproject.toml) idna==3.7 # via # anyio - # pccommon (pccommon/setup.py) + # pccommon (pccommon/pyproject.toml) # requests # yarl isodate==0.6.1 @@ -71,7 +71,7 @@ lxml==5.2.2 lxml-html-clean==0.1.0 # via # html-sanitizer - # pccommon (pccommon/setup.py) + # pccommon (pccommon/pyproject.toml) msal==1.28.1 # via # azure-identity @@ -87,11 +87,11 @@ opencensus==0.11.4 opencensus-context==0.1.3 # via opencensus opencensus-ext-azure==1.1.13 - # via pccommon (pccommon/setup.py) + # via pccommon (pccommon/pyproject.toml) opencensus-ext-logging==0.1.1 - # via pccommon (pccommon/setup.py) + # via pccommon (pccommon/pyproject.toml) orjson==3.10.5 - # via pccommon (pccommon/setup.py) + # via pccommon (pccommon/pyproject.toml) packaging==24.1 # via msal-extensions portalocker==2.8.2 @@ -116,27 +116,27 @@ pycparser==2.22 pydantic==2.7.4 # via # fastapi-slim - # pccommon (pccommon/setup.py) + # pccommon (pccommon/pyproject.toml) # pydantic-settings pydantic-core==2.18.4 # via pydantic pydantic-settings==2.3.3 - # via pccommon (pccommon/setup.py) + # via pccommon (pccommon/pyproject.toml) pyhumps==3.5.3 - # via pccommon (pccommon/setup.py) + # via pccommon (pccommon/pyproject.toml) pyjwt[crypto]==2.8.0 # via msal python-dotenv==1.0.1 # via pydantic-settings redis==4.6.0 - # via pccommon (pccommon/setup.py) + # via pccommon (pccommon/pyproject.toml) requests==2.32.3 # via # azure-core # google-api-core # msal # opencensus-ext-azure - # pccommon (pccommon/setup.py) + # pccommon (pccommon/pyproject.toml) rsa==4.9 # via google-auth six==1.16.0 @@ -151,9 +151,9 @@ soupsieve==2.5 starlette==0.37.2 # via # fastapi-slim - # pccommon (pccommon/setup.py) + # pccommon (pccommon/pyproject.toml) types-cachetools==4.2.9 - # via pccommon (pccommon/setup.py) + # via pccommon (pccommon/pyproject.toml) typing-extensions==4.12.2 # via # anyio @@ -166,7 +166,7 @@ typing-extensions==4.12.2 # starlette urllib3==2.2.2 # via - # pccommon (pccommon/setup.py) + # pccommon (pccommon/pyproject.toml) # requests yarl==1.9.4 # via azure-data-tables diff --git a/pccommon/setup.cfg b/pccommon/setup.cfg deleted file mode 100644 index f96f74e2..00000000 --- a/pccommon/setup.cfg +++ /dev/null @@ -1,2 +0,0 @@ -[metadata] -version = attr: pccommon.version.__version__ diff --git a/pccommon/setup.py b/pccommon/setup.py deleted file mode 100644 index 66e771f0..00000000 --- a/pccommon/setup.py +++ /dev/null @@ -1,43 +0,0 @@ -"""Setup for pccommon.""" - -from setuptools import find_packages, setup - -# Runtime requirements. -inst_reqs = [ - "fastapi-slim==0.111.0", - "starlette>=0.37.2,<0.38.0", - "opencensus-ext-azure==1.1.13", - "opencensus-ext-logging==0.1.1", - "orjson>=3.10.4", - "azure-identity==1.16.1", - "azure-data-tables==12.5.0", - "azure-storage-blob>=12.20.0", - "pydantic>=2.7,<2.8.0", - "pydantic-settings>=2.3,<2.4", - "cachetools~=5.3", - "types-cachetools==4.2.9", - "pyhumps==3.5.3", - "redis==4.6.0", - "requests==2.32.3", - "idna>=3.7.0", - "html-sanitizer==2.4.4", - # Soon available as lxml[html_clean] - "lxml_html_clean==0.1.0", - "urllib3>=2.2.2", -] - -extra_reqs = { - "dev": ["pytest", "pytest-asyncio", "types-redis", "types-requests"], -} - -setup( - name="pccommon", - python_requires=">=3.7", - description="Planetary Computer API - Common.", - packages=find_packages(exclude=["tests"]), - include_package_data=True, - zip_safe=False, - install_requires=inst_reqs, - extras_require=extra_reqs, - entry_points={"console_scripts": ["pcapis=pccommon.cli:cli"]}, -) diff --git a/scripts/generate-requirements b/scripts/generate-requirements index c6b442aa..30b21a54 100755 --- a/scripts/generate-requirements +++ b/scripts/generate-requirements @@ -31,4 +31,4 @@ docker compose \ -f docker-compose.dev.yml \ run --rm \ tiler-dev \ - pip-compile ./pccommon/setup.py --extra server -o pccommon/requirements.txt $pip_compile_options + pip-compile ./pccommon/pyproject.toml --extra server -o pccommon/requirements.txt $pip_compile_options