stac-fastapi.api 5.2.1__tar.gz → 6.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- stac_fastapi_api-6.1.0/.gitignore +135 -0
- stac_fastapi_api-6.1.0/PKG-INFO +22 -0
- stac_fastapi_api-6.1.0/pyproject.toml +64 -0
- {stac_fastapi_api-5.2.1 → stac_fastapi_api-6.1.0}/stac_fastapi/api/app.py +1 -1
- {stac_fastapi_api-5.2.1 → stac_fastapi_api-6.1.0}/stac_fastapi/api/models.py +5 -4
- {stac_fastapi_api-5.2.1 → stac_fastapi_api-6.1.0}/stac_fastapi/api/openapi.py +2 -1
- stac_fastapi_api-6.1.0/stac_fastapi/api/py.typed +0 -0
- {stac_fastapi_api-5.2.1 → stac_fastapi_api-6.1.0}/stac_fastapi/api/routes.py +16 -20
- {stac_fastapi_api-5.2.1 → stac_fastapi_api-6.1.0}/stac_fastapi/api/version.py +1 -1
- stac_fastapi_api-5.2.1/PKG-INFO +0 -49
- stac_fastapi_api-5.2.1/setup.cfg +0 -7
- stac_fastapi_api-5.2.1/setup.py +0 -63
- stac_fastapi_api-5.2.1/stac_fastapi.api.egg-info/PKG-INFO +0 -49
- stac_fastapi_api-5.2.1/stac_fastapi.api.egg-info/SOURCES.txt +0 -23
- stac_fastapi_api-5.2.1/stac_fastapi.api.egg-info/dependency_links.txt +0 -1
- stac_fastapi_api-5.2.1/stac_fastapi.api.egg-info/not-zip-safe +0 -1
- stac_fastapi_api-5.2.1/stac_fastapi.api.egg-info/requires.txt +0 -21
- stac_fastapi_api-5.2.1/stac_fastapi.api.egg-info/top_level.txt +0 -1
- stac_fastapi_api-5.2.1/tests/test_api.py +0 -456
- stac_fastapi_api-5.2.1/tests/test_app.py +0 -580
- stac_fastapi_api-5.2.1/tests/test_app_prefix.py +0 -243
- stac_fastapi_api-5.2.1/tests/test_middleware.py +0 -240
- stac_fastapi_api-5.2.1/tests/test_models.py +0 -164
- {stac_fastapi_api-5.2.1 → stac_fastapi_api-6.1.0}/README.md +0 -0
- {stac_fastapi_api-5.2.1 → stac_fastapi_api-6.1.0}/stac_fastapi/api/__init__.py +0 -0
- {stac_fastapi_api-5.2.1 → stac_fastapi_api-6.1.0}/stac_fastapi/api/config.py +0 -0
- {stac_fastapi_api-5.2.1 → stac_fastapi_api-6.1.0}/stac_fastapi/api/errors.py +0 -0
- {stac_fastapi_api-5.2.1 → stac_fastapi_api-6.1.0}/stac_fastapi/api/middleware.py +0 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
.mypy_cache
|
|
2
|
+
|
|
3
|
+
PIP_EXTRA_INDEX_URL
|
|
4
|
+
!tests/resources/*.jpg
|
|
5
|
+
**.pyc
|
|
6
|
+
**.log
|
|
7
|
+
*.mat
|
|
8
|
+
target/*
|
|
9
|
+
src/local/*
|
|
10
|
+
src/local-test/*
|
|
11
|
+
*.iml
|
|
12
|
+
.idea/
|
|
13
|
+
model/
|
|
14
|
+
.DS_Store
|
|
15
|
+
#config.yaml
|
|
16
|
+
**.save
|
|
17
|
+
*.jpg
|
|
18
|
+
**.save.*
|
|
19
|
+
**.bak
|
|
20
|
+
.DS_Store
|
|
21
|
+
.mvn/
|
|
22
|
+
|
|
23
|
+
# Byte-compiled / optimized / DLL files
|
|
24
|
+
__pycache__/
|
|
25
|
+
*.py[cod]
|
|
26
|
+
*$py.class
|
|
27
|
+
|
|
28
|
+
# C extensions
|
|
29
|
+
*.so
|
|
30
|
+
|
|
31
|
+
# user specific overrides
|
|
32
|
+
tests/tests.ini
|
|
33
|
+
tests/logging.ini
|
|
34
|
+
|
|
35
|
+
# Distribution / packaging
|
|
36
|
+
.Python
|
|
37
|
+
env/
|
|
38
|
+
venv/
|
|
39
|
+
build/
|
|
40
|
+
develop-eggs/
|
|
41
|
+
dist/
|
|
42
|
+
downloads/
|
|
43
|
+
eggs/
|
|
44
|
+
.eggs/
|
|
45
|
+
lib/
|
|
46
|
+
lib64/
|
|
47
|
+
parts/
|
|
48
|
+
sdist/
|
|
49
|
+
var/
|
|
50
|
+
wheels/
|
|
51
|
+
*.egg-info/
|
|
52
|
+
.installed.cfg
|
|
53
|
+
*.egg
|
|
54
|
+
|
|
55
|
+
# PyInstaller
|
|
56
|
+
# Usually these files are written by a python script from a template
|
|
57
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
58
|
+
*.manifest
|
|
59
|
+
*.spec
|
|
60
|
+
|
|
61
|
+
# Installer logs
|
|
62
|
+
pip-log.txt
|
|
63
|
+
pip-delete-this-directory.txt
|
|
64
|
+
|
|
65
|
+
# Unit test / coverage reports
|
|
66
|
+
htmlcov/
|
|
67
|
+
.coverage
|
|
68
|
+
.coverage.*
|
|
69
|
+
.cache
|
|
70
|
+
nosetests.xml
|
|
71
|
+
coverage.xml
|
|
72
|
+
*,cover
|
|
73
|
+
.hypothesis/
|
|
74
|
+
|
|
75
|
+
# Translations
|
|
76
|
+
*.mo
|
|
77
|
+
*.pot
|
|
78
|
+
|
|
79
|
+
# Django stuff:
|
|
80
|
+
*.log
|
|
81
|
+
local_settings.py
|
|
82
|
+
|
|
83
|
+
# Flask stuff:
|
|
84
|
+
instance/
|
|
85
|
+
.webassets-cache
|
|
86
|
+
|
|
87
|
+
# Scrapy stuff:
|
|
88
|
+
.scrapy
|
|
89
|
+
|
|
90
|
+
# Sphinx documentation
|
|
91
|
+
docs/_build/
|
|
92
|
+
|
|
93
|
+
# PyBuilder
|
|
94
|
+
target/
|
|
95
|
+
|
|
96
|
+
# Jupyter Notebook
|
|
97
|
+
.ipynb_checkpoints
|
|
98
|
+
|
|
99
|
+
# pyenv
|
|
100
|
+
.python-version
|
|
101
|
+
|
|
102
|
+
# celery beat schedule file
|
|
103
|
+
celerybeat-schedule
|
|
104
|
+
|
|
105
|
+
# SageMath parsed files
|
|
106
|
+
*.sage.py
|
|
107
|
+
|
|
108
|
+
# dotenv
|
|
109
|
+
**/.env
|
|
110
|
+
|
|
111
|
+
# Spyder project settings
|
|
112
|
+
.spyderproject
|
|
113
|
+
.spyproject
|
|
114
|
+
|
|
115
|
+
# Rope project settings
|
|
116
|
+
.ropeproject
|
|
117
|
+
|
|
118
|
+
# mkdocs documentation
|
|
119
|
+
/site
|
|
120
|
+
|
|
121
|
+
# skaffold temporary build/deploy files
|
|
122
|
+
build.out
|
|
123
|
+
|
|
124
|
+
# pdocs
|
|
125
|
+
docs/api/*
|
|
126
|
+
|
|
127
|
+
# Direnv
|
|
128
|
+
.envrc
|
|
129
|
+
|
|
130
|
+
# Virtualenv
|
|
131
|
+
venv
|
|
132
|
+
.venv/
|
|
133
|
+
|
|
134
|
+
# IDE
|
|
135
|
+
.vscode
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: stac-fastapi-api
|
|
3
|
+
Version: 6.1.0
|
|
4
|
+
Summary: An implementation of STAC API based on the FastAPI framework.
|
|
5
|
+
Project-URL: Homepage, https://github.com/stac-utils/stac-fastapi
|
|
6
|
+
Author-email: ArturoAI <engineering@arturo.ai>
|
|
7
|
+
Maintainer-email: Vincent Sarago <vincent@developmentseed.org>, Jonathan Healy <jonathan.d.healy@gmail.com>, Pete Gadomski <pete.gadomski@gmail.com>, Jeff Albrecht <geospatialjeff@gmail.com>, Nathan Zimmerman <npzimmerman@gmail.com>
|
|
8
|
+
License-Expression: MIT
|
|
9
|
+
Keywords: FastAPI,STAC,STAC-API
|
|
10
|
+
Classifier: Intended Audience :: Developers
|
|
11
|
+
Classifier: Intended Audience :: Information Technology
|
|
12
|
+
Classifier: Intended Audience :: Science/Research
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
20
|
+
Requires-Python: >=3.9
|
|
21
|
+
Requires-Dist: brotli-asgi
|
|
22
|
+
Requires-Dist: stac-fastapi-types~=6.1
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "stac-fastapi-api"
|
|
3
|
+
description = "An implementation of STAC API based on the FastAPI framework."
|
|
4
|
+
readme = "README.md"
|
|
5
|
+
requires-python = ">=3.9"
|
|
6
|
+
license = "MIT"
|
|
7
|
+
authors = [
|
|
8
|
+
{ name = "ArturoAI", email = "engineering@arturo.ai" },
|
|
9
|
+
]
|
|
10
|
+
maintainers = [
|
|
11
|
+
{ name = "Vincent Sarago", email = "vincent@developmentseed.org" },
|
|
12
|
+
{ name = "Jonathan Healy", email = "jonathan.d.healy@gmail.com" },
|
|
13
|
+
{ name = "Pete Gadomski", email = "pete.gadomski@gmail.com" },
|
|
14
|
+
{ name = "Jeff Albrecht", email = "geospatialjeff@gmail.com" },
|
|
15
|
+
{ name = "Nathan Zimmerman", email = "npzimmerman@gmail.com" },
|
|
16
|
+
]
|
|
17
|
+
keywords = [
|
|
18
|
+
"STAC",
|
|
19
|
+
"STAC-API",
|
|
20
|
+
"FastAPI",
|
|
21
|
+
]
|
|
22
|
+
classifiers = [
|
|
23
|
+
"Intended Audience :: Developers",
|
|
24
|
+
"Intended Audience :: Information Technology",
|
|
25
|
+
"Intended Audience :: Science/Research",
|
|
26
|
+
"Programming Language :: Python :: 3.9",
|
|
27
|
+
"Programming Language :: Python :: 3.10",
|
|
28
|
+
"Programming Language :: Python :: 3.11",
|
|
29
|
+
"Programming Language :: Python :: 3.12",
|
|
30
|
+
"Programming Language :: Python :: 3.13",
|
|
31
|
+
"Programming Language :: Python :: 3.14",
|
|
32
|
+
"License :: OSI Approved :: MIT License",
|
|
33
|
+
]
|
|
34
|
+
dynamic = ["version"]
|
|
35
|
+
dependencies = [
|
|
36
|
+
"brotli_asgi",
|
|
37
|
+
"stac-fastapi.types~=6.1",
|
|
38
|
+
]
|
|
39
|
+
|
|
40
|
+
[dependency-groups]
|
|
41
|
+
dev = [
|
|
42
|
+
"httpx",
|
|
43
|
+
"pytest",
|
|
44
|
+
"pytest-cov",
|
|
45
|
+
"pytest-asyncio",
|
|
46
|
+
"pytest-benchmark",
|
|
47
|
+
]
|
|
48
|
+
|
|
49
|
+
[project.urls]
|
|
50
|
+
Homepage = 'https://github.com/stac-utils/stac-fastapi'
|
|
51
|
+
|
|
52
|
+
[tool.hatch.version]
|
|
53
|
+
path = "stac_fastapi/api/version.py"
|
|
54
|
+
|
|
55
|
+
[tool.hatch.build.targets.sdist]
|
|
56
|
+
exclude = ["tests/"]
|
|
57
|
+
|
|
58
|
+
[tool.hatch.build.targets.wheel]
|
|
59
|
+
only-include = ["stac_fastapi"]
|
|
60
|
+
|
|
61
|
+
[build-system]
|
|
62
|
+
requires = ["hatchling"]
|
|
63
|
+
build-backend = "hatchling.build"
|
|
64
|
+
|
|
@@ -110,7 +110,7 @@ class StacApi:
|
|
|
110
110
|
),
|
|
111
111
|
takes_self=True,
|
|
112
112
|
),
|
|
113
|
-
converter=update_openapi,
|
|
113
|
+
converter=update_openapi, # type: ignore
|
|
114
114
|
)
|
|
115
115
|
router: APIRouter = attr.ib(default=attr.Factory(APIRouter))
|
|
116
116
|
search_get_request_model: Type[BaseSearchGetRequest] = attr.ib(
|
|
@@ -29,9 +29,9 @@ except ImportError: # pragma: nocover
|
|
|
29
29
|
|
|
30
30
|
def create_request_model(
|
|
31
31
|
model_name="SearchGetRequest",
|
|
32
|
-
base_model: Union[Type[BaseModel], APIRequest] = BaseSearchGetRequest,
|
|
32
|
+
base_model: Union[Type[BaseModel], Type[APIRequest]] = BaseSearchGetRequest,
|
|
33
33
|
extensions: Optional[List[ApiExtension]] = None,
|
|
34
|
-
mixins: Optional[Union[List[BaseModel], List[APIRequest]]] = None,
|
|
34
|
+
mixins: Optional[Union[List[Type[BaseModel]], List[Type[APIRequest]]]] = None,
|
|
35
35
|
request_type: Optional[str] = "GET",
|
|
36
36
|
) -> Union[Type[BaseModel], APIRequest]:
|
|
37
37
|
"""Create a pydantic model for validating request bodies."""
|
|
@@ -56,7 +56,8 @@ def create_request_model(
|
|
|
56
56
|
for model in models:
|
|
57
57
|
for k, field_info in model.model_fields.items():
|
|
58
58
|
fields[k] = (field_info.annotation, field_info)
|
|
59
|
-
|
|
59
|
+
|
|
60
|
+
return create_model(model_name, **fields, __base__=base_model) # type: ignore
|
|
60
61
|
|
|
61
62
|
raise TypeError("Mixed Request Model types. Check extension request types.")
|
|
62
63
|
|
|
@@ -121,7 +122,7 @@ class ItemCollectionUri(APIRequest, DatetimeMixin):
|
|
|
121
122
|
description="Limits the number of results that are included in each page of the response (capped to 10_000)." # noqa: E501
|
|
122
123
|
),
|
|
123
124
|
] = attr.ib(default=10)
|
|
124
|
-
bbox: Optional[BBox] = attr.ib(default=None, converter=_bbox_converter)
|
|
125
|
+
bbox: Optional[BBox] = attr.ib(default=None, converter=_bbox_converter) # type: ignore
|
|
125
126
|
datetime: DateTimeQueryType = attr.ib(default=None, validator=_validate_datetime)
|
|
126
127
|
|
|
127
128
|
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"""openapi."""
|
|
2
2
|
|
|
3
3
|
from fastapi import FastAPI
|
|
4
|
+
from fastapi.routing import request_response
|
|
4
5
|
from starlette.requests import Request
|
|
5
6
|
from starlette.responses import Response
|
|
6
|
-
from starlette.routing import Route
|
|
7
|
+
from starlette.routing import Route
|
|
7
8
|
|
|
8
9
|
|
|
9
10
|
def update_openapi(app: FastAPI) -> FastAPI:
|
|
File without changes
|
|
@@ -3,17 +3,17 @@
|
|
|
3
3
|
import copy
|
|
4
4
|
import functools
|
|
5
5
|
import inspect
|
|
6
|
-
from typing import Any, Callable, Dict, List, Optional, Type, TypedDict, Union
|
|
6
|
+
from typing import Any, Awaitable, Callable, Dict, List, Optional, Type, TypedDict, Union
|
|
7
7
|
|
|
8
8
|
from fastapi import Depends, FastAPI, params
|
|
9
9
|
from fastapi.datastructures import DefaultPlaceholder
|
|
10
10
|
from fastapi.dependencies.utils import get_dependant, get_parameterless_sub_dependant
|
|
11
|
-
from fastapi.routing import APIRoute
|
|
11
|
+
from fastapi.routing import APIRoute, request_response
|
|
12
12
|
from pydantic import BaseModel
|
|
13
13
|
from starlette.concurrency import run_in_threadpool
|
|
14
14
|
from starlette.requests import Request
|
|
15
15
|
from starlette.responses import Response
|
|
16
|
-
from starlette.routing import BaseRoute, Match
|
|
16
|
+
from starlette.routing import BaseRoute, Match
|
|
17
17
|
from starlette.status import HTTP_204_NO_CONTENT
|
|
18
18
|
|
|
19
19
|
from stac_fastapi.api.models import APIRequest
|
|
@@ -39,7 +39,7 @@ def sync_to_async(func):
|
|
|
39
39
|
def create_async_endpoint(
|
|
40
40
|
func: Callable,
|
|
41
41
|
request_model: Union[Type[APIRequest], Type[BaseModel], Dict],
|
|
42
|
-
):
|
|
42
|
+
) -> Callable[[Any, Any], Awaitable[Any]]:
|
|
43
43
|
"""Wrap a function in a coroutine which may be used to create a FastAPI endpoint.
|
|
44
44
|
|
|
45
45
|
Synchronous functions are executed asynchronously using a background thread.
|
|
@@ -48,32 +48,28 @@ def create_async_endpoint(
|
|
|
48
48
|
if not inspect.iscoroutinefunction(func):
|
|
49
49
|
func = sync_to_async(func)
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
_endpoint: Callable[[Any, Any], Awaitable[Any]]
|
|
52
52
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
53
|
+
if isinstance(request_model, dict):
|
|
54
|
+
|
|
55
|
+
async def _endpoint(request: Request, request_data: Dict[str, Any]):
|
|
56
|
+
"""Endpoint."""
|
|
57
|
+
return _wrap_response(await func(request_data, request=request))
|
|
58
|
+
|
|
59
|
+
elif issubclass(request_model, APIRequest):
|
|
60
|
+
|
|
61
|
+
async def _endpoint(request: Request, request_data=Depends(request_model)):
|
|
57
62
|
"""Endpoint."""
|
|
58
63
|
return _wrap_response(await func(request=request, **request_data.kwargs()))
|
|
59
64
|
|
|
60
65
|
elif issubclass(request_model, BaseModel):
|
|
61
66
|
|
|
62
|
-
async def _endpoint(
|
|
63
|
-
request: Request,
|
|
64
|
-
request_data: request_model, # type:ignore
|
|
65
|
-
):
|
|
67
|
+
async def _endpoint(request: Request, request_data: request_model): # type: ignore
|
|
66
68
|
"""Endpoint."""
|
|
67
69
|
return _wrap_response(await func(request_data, request=request))
|
|
68
70
|
|
|
69
71
|
else:
|
|
70
|
-
|
|
71
|
-
async def _endpoint(
|
|
72
|
-
request: Request,
|
|
73
|
-
request_data: Dict[str, Any], # type:ignore
|
|
74
|
-
):
|
|
75
|
-
"""Endpoint."""
|
|
76
|
-
return _wrap_response(await func(request_data, request=request))
|
|
72
|
+
raise ValueError(f"Unsupported type for request model {type(request_model)}")
|
|
77
73
|
|
|
78
74
|
return _endpoint
|
|
79
75
|
|
stac_fastapi_api-5.2.1/PKG-INFO
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: stac-fastapi.api
|
|
3
|
-
Version: 5.2.1
|
|
4
|
-
Summary: An implementation of STAC API based on the FastAPI framework.
|
|
5
|
-
Home-page: https://github.com/stac-utils/stac-fastapi
|
|
6
|
-
Author: Arturo Engineering
|
|
7
|
-
Author-email: engineering@arturo.ai
|
|
8
|
-
License: MIT
|
|
9
|
-
Keywords: STAC FastAPI COG
|
|
10
|
-
Classifier: Intended Audience :: Developers
|
|
11
|
-
Classifier: Intended Audience :: Information Technology
|
|
12
|
-
Classifier: Intended Audience :: Science/Research
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.13
|
|
18
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
19
|
-
Requires-Python: >=3.9
|
|
20
|
-
Description-Content-Type: text/markdown
|
|
21
|
-
Requires-Dist: brotli_asgi
|
|
22
|
-
Requires-Dist: stac-fastapi.types~=5.2
|
|
23
|
-
Provides-Extra: dev
|
|
24
|
-
Requires-Dist: httpx; extra == "dev"
|
|
25
|
-
Requires-Dist: pytest; extra == "dev"
|
|
26
|
-
Requires-Dist: pytest-cov; extra == "dev"
|
|
27
|
-
Requires-Dist: pytest-asyncio; extra == "dev"
|
|
28
|
-
Requires-Dist: pre-commit; extra == "dev"
|
|
29
|
-
Requires-Dist: requests; extra == "dev"
|
|
30
|
-
Provides-Extra: benchmark
|
|
31
|
-
Requires-Dist: pytest-benchmark; extra == "benchmark"
|
|
32
|
-
Provides-Extra: docs
|
|
33
|
-
Requires-Dist: black>=23.10.1; extra == "docs"
|
|
34
|
-
Requires-Dist: mkdocs>=1.4.3; extra == "docs"
|
|
35
|
-
Requires-Dist: mkdocs-jupyter>=0.24.5; extra == "docs"
|
|
36
|
-
Requires-Dist: mkdocs-material[imaging]>=9.5; extra == "docs"
|
|
37
|
-
Requires-Dist: griffe-inherited-docstrings>=1.0.0; extra == "docs"
|
|
38
|
-
Requires-Dist: mkdocstrings[python]>=0.25.1; extra == "docs"
|
|
39
|
-
Dynamic: author
|
|
40
|
-
Dynamic: author-email
|
|
41
|
-
Dynamic: classifier
|
|
42
|
-
Dynamic: description-content-type
|
|
43
|
-
Dynamic: home-page
|
|
44
|
-
Dynamic: keywords
|
|
45
|
-
Dynamic: license
|
|
46
|
-
Dynamic: provides-extra
|
|
47
|
-
Dynamic: requires-dist
|
|
48
|
-
Dynamic: requires-python
|
|
49
|
-
Dynamic: summary
|
stac_fastapi_api-5.2.1/setup.cfg
DELETED
stac_fastapi_api-5.2.1/setup.py
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"""stac_fastapi: api module."""
|
|
2
|
-
|
|
3
|
-
from setuptools import find_namespace_packages, setup
|
|
4
|
-
|
|
5
|
-
with open("README.md") as f:
|
|
6
|
-
desc = f.read()
|
|
7
|
-
|
|
8
|
-
install_requires = [
|
|
9
|
-
"brotli_asgi",
|
|
10
|
-
"stac-fastapi.types~=5.2",
|
|
11
|
-
]
|
|
12
|
-
|
|
13
|
-
extra_reqs = {
|
|
14
|
-
"dev": [
|
|
15
|
-
"httpx",
|
|
16
|
-
"pytest",
|
|
17
|
-
"pytest-cov",
|
|
18
|
-
"pytest-asyncio",
|
|
19
|
-
"pre-commit",
|
|
20
|
-
"requests",
|
|
21
|
-
],
|
|
22
|
-
"benchmark": [
|
|
23
|
-
"pytest-benchmark",
|
|
24
|
-
],
|
|
25
|
-
"docs": [
|
|
26
|
-
"black>=23.10.1",
|
|
27
|
-
"mkdocs>=1.4.3",
|
|
28
|
-
"mkdocs-jupyter>=0.24.5",
|
|
29
|
-
"mkdocs-material[imaging]>=9.5",
|
|
30
|
-
"griffe-inherited-docstrings>=1.0.0",
|
|
31
|
-
"mkdocstrings[python]>=0.25.1",
|
|
32
|
-
],
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
setup(
|
|
37
|
-
name="stac-fastapi.api",
|
|
38
|
-
description="An implementation of STAC API based on the FastAPI framework.",
|
|
39
|
-
long_description=desc,
|
|
40
|
-
long_description_content_type="text/markdown",
|
|
41
|
-
python_requires=">=3.9",
|
|
42
|
-
classifiers=[
|
|
43
|
-
"Intended Audience :: Developers",
|
|
44
|
-
"Intended Audience :: Information Technology",
|
|
45
|
-
"Intended Audience :: Science/Research",
|
|
46
|
-
"Programming Language :: Python :: 3.9",
|
|
47
|
-
"Programming Language :: Python :: 3.10",
|
|
48
|
-
"Programming Language :: Python :: 3.11",
|
|
49
|
-
"Programming Language :: Python :: 3.12",
|
|
50
|
-
"Programming Language :: Python :: 3.13",
|
|
51
|
-
"License :: OSI Approved :: MIT License",
|
|
52
|
-
],
|
|
53
|
-
keywords="STAC FastAPI COG",
|
|
54
|
-
author="Arturo Engineering",
|
|
55
|
-
author_email="engineering@arturo.ai",
|
|
56
|
-
url="https://github.com/stac-utils/stac-fastapi",
|
|
57
|
-
license="MIT",
|
|
58
|
-
packages=find_namespace_packages(exclude=["alembic", "tests", "scripts"]),
|
|
59
|
-
zip_safe=False,
|
|
60
|
-
install_requires=install_requires,
|
|
61
|
-
tests_require=extra_reqs["dev"],
|
|
62
|
-
extras_require=extra_reqs,
|
|
63
|
-
)
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: stac-fastapi.api
|
|
3
|
-
Version: 5.2.1
|
|
4
|
-
Summary: An implementation of STAC API based on the FastAPI framework.
|
|
5
|
-
Home-page: https://github.com/stac-utils/stac-fastapi
|
|
6
|
-
Author: Arturo Engineering
|
|
7
|
-
Author-email: engineering@arturo.ai
|
|
8
|
-
License: MIT
|
|
9
|
-
Keywords: STAC FastAPI COG
|
|
10
|
-
Classifier: Intended Audience :: Developers
|
|
11
|
-
Classifier: Intended Audience :: Information Technology
|
|
12
|
-
Classifier: Intended Audience :: Science/Research
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.13
|
|
18
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
19
|
-
Requires-Python: >=3.9
|
|
20
|
-
Description-Content-Type: text/markdown
|
|
21
|
-
Requires-Dist: brotli_asgi
|
|
22
|
-
Requires-Dist: stac-fastapi.types~=5.2
|
|
23
|
-
Provides-Extra: dev
|
|
24
|
-
Requires-Dist: httpx; extra == "dev"
|
|
25
|
-
Requires-Dist: pytest; extra == "dev"
|
|
26
|
-
Requires-Dist: pytest-cov; extra == "dev"
|
|
27
|
-
Requires-Dist: pytest-asyncio; extra == "dev"
|
|
28
|
-
Requires-Dist: pre-commit; extra == "dev"
|
|
29
|
-
Requires-Dist: requests; extra == "dev"
|
|
30
|
-
Provides-Extra: benchmark
|
|
31
|
-
Requires-Dist: pytest-benchmark; extra == "benchmark"
|
|
32
|
-
Provides-Extra: docs
|
|
33
|
-
Requires-Dist: black>=23.10.1; extra == "docs"
|
|
34
|
-
Requires-Dist: mkdocs>=1.4.3; extra == "docs"
|
|
35
|
-
Requires-Dist: mkdocs-jupyter>=0.24.5; extra == "docs"
|
|
36
|
-
Requires-Dist: mkdocs-material[imaging]>=9.5; extra == "docs"
|
|
37
|
-
Requires-Dist: griffe-inherited-docstrings>=1.0.0; extra == "docs"
|
|
38
|
-
Requires-Dist: mkdocstrings[python]>=0.25.1; extra == "docs"
|
|
39
|
-
Dynamic: author
|
|
40
|
-
Dynamic: author-email
|
|
41
|
-
Dynamic: classifier
|
|
42
|
-
Dynamic: description-content-type
|
|
43
|
-
Dynamic: home-page
|
|
44
|
-
Dynamic: keywords
|
|
45
|
-
Dynamic: license
|
|
46
|
-
Dynamic: provides-extra
|
|
47
|
-
Dynamic: requires-dist
|
|
48
|
-
Dynamic: requires-python
|
|
49
|
-
Dynamic: summary
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
README.md
|
|
2
|
-
setup.cfg
|
|
3
|
-
setup.py
|
|
4
|
-
stac_fastapi.api.egg-info/PKG-INFO
|
|
5
|
-
stac_fastapi.api.egg-info/SOURCES.txt
|
|
6
|
-
stac_fastapi.api.egg-info/dependency_links.txt
|
|
7
|
-
stac_fastapi.api.egg-info/not-zip-safe
|
|
8
|
-
stac_fastapi.api.egg-info/requires.txt
|
|
9
|
-
stac_fastapi.api.egg-info/top_level.txt
|
|
10
|
-
stac_fastapi/api/__init__.py
|
|
11
|
-
stac_fastapi/api/app.py
|
|
12
|
-
stac_fastapi/api/config.py
|
|
13
|
-
stac_fastapi/api/errors.py
|
|
14
|
-
stac_fastapi/api/middleware.py
|
|
15
|
-
stac_fastapi/api/models.py
|
|
16
|
-
stac_fastapi/api/openapi.py
|
|
17
|
-
stac_fastapi/api/routes.py
|
|
18
|
-
stac_fastapi/api/version.py
|
|
19
|
-
tests/test_api.py
|
|
20
|
-
tests/test_app.py
|
|
21
|
-
tests/test_app_prefix.py
|
|
22
|
-
tests/test_middleware.py
|
|
23
|
-
tests/test_models.py
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
brotli_asgi
|
|
2
|
-
stac-fastapi.types~=5.2
|
|
3
|
-
|
|
4
|
-
[benchmark]
|
|
5
|
-
pytest-benchmark
|
|
6
|
-
|
|
7
|
-
[dev]
|
|
8
|
-
httpx
|
|
9
|
-
pytest
|
|
10
|
-
pytest-cov
|
|
11
|
-
pytest-asyncio
|
|
12
|
-
pre-commit
|
|
13
|
-
requests
|
|
14
|
-
|
|
15
|
-
[docs]
|
|
16
|
-
black>=23.10.1
|
|
17
|
-
mkdocs>=1.4.3
|
|
18
|
-
mkdocs-jupyter>=0.24.5
|
|
19
|
-
mkdocs-material[imaging]>=9.5
|
|
20
|
-
griffe-inherited-docstrings>=1.0.0
|
|
21
|
-
mkdocstrings[python]>=0.25.1
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
stac_fastapi
|