diff --git a/README.md b/README.md index 80c2dbf..dbcf07e 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# STAT FastAPI - Blacksky +# STAPI FastAPI - Blacksky -This is an example implementation for `https://github.com/stat-utils/stat-fastapi` proxying to the blacksky tasking API. +This is an example implementation for `https://github.com/stapi-spec/stapi-fastapi` proxying to the Blacksky tasking API. Start the server locally diff --git a/pyproject.toml b/pyproject.toml index 6362833..c13e004 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,17 +1,17 @@ [tool.poetry] -name = "stat-fastapi-blacksky" +name = "stapi-fastapi-blacksky" version = "0.0.0" -description = "Spatio Temporal Asset Tasking with FastAPI" +description = "Sensor Tasking API with FastAPI for Blacksky" authors = ["Jessica Turner "] license = "MIT" readme = "README.md" [tool.poetry.dependencies] python = "^3.12" -fastapi = "^0.110.0" +fastapi = "^0.115.0" pydantic = "^2.6.4" geojson-pydantic = "^1.0.2" -stat-fastapi = { git = "https://github.com/stat-utils/stat-fastapi" } +stapi-fastapi = { git = "https://github.com/stapi-spec/stapi-fastapi" } [tool.poetry.group.dev.dependencies] pytest = "^8.1.1" @@ -26,7 +26,7 @@ shapely = "^2.0.3" pre-commit = "^3.7.0" [tool.poetry.scripts] -blacksky = "stat_fastapi_blacksky.__dev__:cli" +blacksky = "stapi_fastapi_blacksky.__dev__:cli" [tool.ruff] extend-ignore = ["E501", "UP007", "UP034"] @@ -50,11 +50,11 @@ sort = "Cover" omit = [ "**/*_test.py", "**/conftest.py", - "stat_fastapi/__dev__.py", + "stapi_fastapi/__dev__.py", ] [tool.pytest.ini_options] -addopts="--cov=stat_fastapi" +addopts="--cov=stapi_fastapi" filterwarnings = [ "ignore:The 'app' shortcut is now deprecated.:DeprecationWarning", "ignore:Pydantic serializer warnings:UserWarning", diff --git a/stat_fastapi_blacksky/__dev__.py b/src/stapi_fastapi_blacksky/__dev__.py similarity index 71% rename from stat_fastapi_blacksky/__dev__.py rename to src/stapi_fastapi_blacksky/__dev__.py index 975fb0c..0a772ab 100755 --- a/stat_fastapi_blacksky/__dev__.py +++ b/src/stapi_fastapi_blacksky/__dev__.py @@ -11,8 +11,8 @@ print("install uvicorn and pydantic-settings to use the dev server", file=stderr) exit(1) -from stat_fastapi.api import StatApiRouter -from stat_fastapi_blacksky import StatBlackskyBackend +from stapi_fastapi.api import StapiRouter +from stapi_fastapi_blacksky import StapiBlackskyBackend class DevSettings(BaseSettings): @@ -21,13 +21,13 @@ class DevSettings(BaseSettings): app = FastAPI(debug=True) -app.include_router(StatApiRouter(backend=StatBlackskyBackend()).router) +app.include_router(StapiRouter(backend=StapiBlackskyBackend()).router) def cli(): settings = DevSettings() run( - "stat_fastapi_blacksky.__dev__:app", + "stapi_fastapi_blacksky.__dev__:app", reload=True, host=settings.host, port=settings.port, diff --git a/src/stapi_fastapi_blacksky/__init__.py b/src/stapi_fastapi_blacksky/__init__.py new file mode 100644 index 0000000..5af192b --- /dev/null +++ b/src/stapi_fastapi_blacksky/__init__.py @@ -0,0 +1,3 @@ +from stapi_fastapi_blacksky.backend import StapiBlackskyBackend + +__all__ = ["StapiBlackskyBackend"] diff --git a/stat_fastapi_blacksky/backend.py b/src/stapi_fastapi_blacksky/backend.py similarity index 86% rename from stat_fastapi_blacksky/backend.py rename to src/stapi_fastapi_blacksky/backend.py index fe94879..c833a9c 100644 --- a/stat_fastapi_blacksky/backend.py +++ b/src/stapi_fastapi_blacksky/backend.py @@ -2,16 +2,16 @@ from fastapi import Request import requests -from stat_fastapi.exceptions import NotFoundException -from stat_fastapi.models.opportunity import ( +from stapi_fastapi.exceptions import NotFoundException +from stapi_fastapi.models.opportunity import ( Opportunity, OpportunityRequest, ) -from stat_fastapi.models.order import Order -from stat_fastapi.models.product import Product, Provider, ProviderRole +from stapi_fastapi.models.order import Order +from stapi_fastapi.models.product import Product, Provider, ProviderRole -from stat_fastapi_blacksky.settings import Settings -from stat_fastapi_blacksky.models import Constraints +from stapi_fastapi_blacksky.settings import Settings +from stapi_fastapi_blacksky.models import Constraints BLACKSKY_BASE_URL = "https://api.sit.blacksky.com/v1" @@ -40,7 +40,7 @@ ] -def stat_to_oppurtunities_request(search: OpportunityRequest): +def stapi_to_oppurtunities_request(search: OpportunityRequest): """ :param search_request: STAC search as passed on to find_future_items :return: a triple of iw request body, geom and bbox (geom and bbox needed again later to construct STAC answers) @@ -50,7 +50,7 @@ def stat_to_oppurtunities_request(search: OpportunityRequest): return { "item": { "name": "Blacksky_Request", - "description": "STAT Sprint 3", + "description": "STAPI Sprint 3", "timeframe": { "lowerBoundType": "CLOSED", "lowerEndpoint": search.datetime[0].isoformat(), @@ -88,9 +88,9 @@ def get_oppurtunities(blacksky_request: dict, token: str): def blacksky_oppurtunity_to_opportunity(iw: dict): """ - translates a Planet Imaging Windows into a STAT opportunity + translates a Planet Imaging Windows into a STAPI opportunity :param iw: an element from the 'imaging_windows' array of a /imaging_windows/[search_id] response - :return: a corresponding STAT opportunity + :return: a corresponding STAPI opportunity """ opportunity = Opportunity( @@ -106,7 +106,7 @@ def blacksky_oppurtunity_to_opportunity(iw: dict): return opportunity -class StatBlackskyBackend: +class StapiBlackskyBackend: def __init__(self): settings = Settings.load() @@ -137,7 +137,7 @@ async def search_opportunities( if authorization := request.headers.get("authorization"): token = authorization.replace("Bearer ", "") - blacksky_request = stat_to_oppurtunities_request(search) + blacksky_request = stapi_to_oppurtunities_request(search) oppurtunities = get_oppurtunities(blacksky_request, token) return [blacksky_oppurtunity_to_opportunity(iw) for iw in oppurtunities] diff --git a/stat_fastapi_blacksky/models.py b/src/stapi_fastapi_blacksky/models.py similarity index 89% rename from stat_fastapi_blacksky/models.py rename to src/stapi_fastapi_blacksky/models.py index 149e8b0..d0f6024 100644 --- a/stat_fastapi_blacksky/models.py +++ b/src/stapi_fastapi_blacksky/models.py @@ -4,8 +4,8 @@ model_validator, ) -from stat_fastapi.models.constraints import Constraints as BaseConstraints -from stat_fastapi.models.opportunity import OpportunityRequest +from stapi_fastapi.models.constraints import Constraints as BaseConstraints +from stapi_fastapi.models.opportunity import OpportunityRequest OFF_NADIR_RANGE = (0.0, 45.0) diff --git a/stat_fastapi_blacksky/settings.py b/src/stapi_fastapi_blacksky/settings.py similarity index 100% rename from stat_fastapi_blacksky/settings.py rename to src/stapi_fastapi_blacksky/settings.py diff --git a/stat_fastapi_blacksky/__init__.py b/stat_fastapi_blacksky/__init__.py deleted file mode 100644 index e3d0831..0000000 --- a/stat_fastapi_blacksky/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -from stat_fastapi_blacksky.backend import StatBlackskyBackend - -__all__ = ["StatBlackskyBackend"]