Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
14 changes: 7 additions & 7 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -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 <[email protected]>"]
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"
Expand All @@ -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"]
Expand All @@ -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",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand All @@ -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,
Expand Down
3 changes: 3 additions & 0 deletions src/stapi_fastapi_blacksky/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from stapi_fastapi_blacksky.backend import StapiBlackskyBackend

__all__ = ["StapiBlackskyBackend"]
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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)
Expand All @@ -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(),
Expand Down Expand Up @@ -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(
Expand All @@ -106,7 +106,7 @@ def blacksky_oppurtunity_to_opportunity(iw: dict):
return opportunity


class StatBlackskyBackend:
class StapiBlackskyBackend:

def __init__(self):
settings = Settings.load()
Expand Down Expand Up @@ -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]

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
3 changes: 0 additions & 3 deletions stat_fastapi_blacksky/__init__.py

This file was deleted.