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.
Files changed (28) hide show
  1. stac_fastapi_api-6.1.0/.gitignore +135 -0
  2. stac_fastapi_api-6.1.0/PKG-INFO +22 -0
  3. stac_fastapi_api-6.1.0/pyproject.toml +64 -0
  4. {stac_fastapi_api-5.2.1 → stac_fastapi_api-6.1.0}/stac_fastapi/api/app.py +1 -1
  5. {stac_fastapi_api-5.2.1 → stac_fastapi_api-6.1.0}/stac_fastapi/api/models.py +5 -4
  6. {stac_fastapi_api-5.2.1 → stac_fastapi_api-6.1.0}/stac_fastapi/api/openapi.py +2 -1
  7. stac_fastapi_api-6.1.0/stac_fastapi/api/py.typed +0 -0
  8. {stac_fastapi_api-5.2.1 → stac_fastapi_api-6.1.0}/stac_fastapi/api/routes.py +16 -20
  9. {stac_fastapi_api-5.2.1 → stac_fastapi_api-6.1.0}/stac_fastapi/api/version.py +1 -1
  10. stac_fastapi_api-5.2.1/PKG-INFO +0 -49
  11. stac_fastapi_api-5.2.1/setup.cfg +0 -7
  12. stac_fastapi_api-5.2.1/setup.py +0 -63
  13. stac_fastapi_api-5.2.1/stac_fastapi.api.egg-info/PKG-INFO +0 -49
  14. stac_fastapi_api-5.2.1/stac_fastapi.api.egg-info/SOURCES.txt +0 -23
  15. stac_fastapi_api-5.2.1/stac_fastapi.api.egg-info/dependency_links.txt +0 -1
  16. stac_fastapi_api-5.2.1/stac_fastapi.api.egg-info/not-zip-safe +0 -1
  17. stac_fastapi_api-5.2.1/stac_fastapi.api.egg-info/requires.txt +0 -21
  18. stac_fastapi_api-5.2.1/stac_fastapi.api.egg-info/top_level.txt +0 -1
  19. stac_fastapi_api-5.2.1/tests/test_api.py +0 -456
  20. stac_fastapi_api-5.2.1/tests/test_app.py +0 -580
  21. stac_fastapi_api-5.2.1/tests/test_app_prefix.py +0 -243
  22. stac_fastapi_api-5.2.1/tests/test_middleware.py +0 -240
  23. stac_fastapi_api-5.2.1/tests/test_models.py +0 -164
  24. {stac_fastapi_api-5.2.1 → stac_fastapi_api-6.1.0}/README.md +0 -0
  25. {stac_fastapi_api-5.2.1 → stac_fastapi_api-6.1.0}/stac_fastapi/api/__init__.py +0 -0
  26. {stac_fastapi_api-5.2.1 → stac_fastapi_api-6.1.0}/stac_fastapi/api/config.py +0 -0
  27. {stac_fastapi_api-5.2.1 → stac_fastapi_api-6.1.0}/stac_fastapi/api/errors.py +0 -0
  28. {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
- return create_model(model_name, **fields, __base__=base_model)
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, request_response
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, request_response
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
- if issubclass(request_model, APIRequest):
51
+ _endpoint: Callable[[Any, Any], Awaitable[Any]]
52
52
 
53
- async def _endpoint(
54
- request: Request,
55
- request_data: request_model = Depends(), # type:ignore
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
 
@@ -1,3 +1,3 @@
1
1
  """Library version."""
2
2
 
3
- __version__ = "5.2.1"
3
+ __version__ = "6.1.0"
@@ -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,7 +0,0 @@
1
- [metadata]
2
- version = attr: stac_fastapi.api.version.__version__
3
-
4
- [egg_info]
5
- tag_build =
6
- tag_date = 0
7
-
@@ -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,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