Skip to content

Commit f9f1816

Browse files
authored
refactor: move some pydantic models around (#51)
## What I'm changing - Move some more **pydantic** models down into **stapi-pydantic** - Move conformance uris back up into **stapi-fastapi** - Change all `stapi_pydantic` imports to take directly from the top-level (simpler, IMO) ## Checklist - [x] Tests pass: `uv run pytest` - [x] Checks pass: `uv run pre-commit --all-files` - [x] CHANGELOG is updated (if necessary)
1 parent e8ad69a commit f9f1816

22 files changed

+70
-64
lines changed
Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,6 @@
1-
from .models import (
2-
Link,
3-
OpportunityProperties,
4-
Product,
5-
Provider,
6-
ProviderRole,
7-
)
81
from .routers import ProductRouter, RootRouter
92

103
__all__ = [
11-
"Link",
12-
"OpportunityProperties",
13-
"Product",
144
"ProductRouter",
15-
"Provider",
16-
"ProviderRole",
175
"RootRouter",
186
]

stapi-fastapi/src/stapi_fastapi/backends/product_backend.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,14 @@
66
from fastapi import Request
77
from returns.maybe import Maybe
88
from returns.result import ResultE
9-
from stapi_pydantic.opportunity import (
9+
from stapi_pydantic import (
1010
Opportunity,
1111
OpportunityCollection,
1212
OpportunityPayload,
1313
OpportunitySearchRecord,
14+
Order,
15+
OrderPayload,
1416
)
15-
from stapi_pydantic.order import Order, OrderPayload
1617

1718
from stapi_fastapi.routers.product_router import ProductRouter
1819

stapi-fastapi/src/stapi_fastapi/backends/root_backend.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
from fastapi import Request
55
from returns.maybe import Maybe
66
from returns.result import ResultE
7-
from stapi_pydantic.opportunity import OpportunitySearchRecord
8-
from stapi_pydantic.order import (
7+
from stapi_pydantic import (
8+
OpportunitySearchRecord,
99
Order,
1010
OrderStatus,
1111
)
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
CORE = "https://stapi.example.com/v0.1.0/core"
2+
OPPORTUNITIES = "https://stapi.example.com/v0.1.0/opportunities"
3+
ASYNC_OPPORTUNITIES = "https://stapi.example.com/v0.1.0/async-opportunities"
Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,3 @@
1-
from stapi_pydantic.opportunity import OpportunityProperties
2-
from stapi_pydantic.product import Provider, ProviderRole
3-
from stapi_pydantic.shared import Link
4-
51
from .product import Product
62

7-
__all__ = [
8-
"Link",
9-
"OpportunityProperties",
10-
"Product",
11-
"Provider",
12-
"ProviderRole",
13-
]
3+
__all__ = ["Product"]

stapi-fastapi/src/stapi_fastapi/models/product.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from typing import TYPE_CHECKING, Any
44

5-
from stapi_pydantic.product import Product as BaseProduct
5+
from stapi_pydantic import Product as BaseProduct
66

77
if TYPE_CHECKING:
88
from stapi_fastapi.backends.product_backend import (

stapi-fastapi/src/stapi_fastapi/models/root.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from pydantic import BaseModel, Field
2-
from stapi_pydantic.shared import Link
2+
from stapi_pydantic import Link
33

44

55
class RootResponse(BaseModel):

stapi-fastapi/src/stapi_fastapi/routers/product_router.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,17 @@
1717
from geojson_pydantic.geometries import Geometry
1818
from returns.maybe import Maybe, Some
1919
from returns.result import Failure, Success
20-
from stapi_pydantic.json_schema_model import JsonSchemaModel
21-
from stapi_pydantic.opportunity import (
20+
from stapi_pydantic import (
21+
JsonSchemaModel,
22+
Link,
2223
OpportunityCollection,
2324
OpportunityPayload,
2425
OpportunitySearchRecord,
26+
Order,
27+
OrderPayload,
28+
OrderStatus,
2529
Prefer,
2630
)
27-
from stapi_pydantic.order import Order, OrderPayload, OrderStatus
28-
from stapi_pydantic.shared import Link
2931

3032
from stapi_fastapi.constants import TYPE_JSON
3133
from stapi_fastapi.exceptions import ConstraintsException, NotFoundException

stapi-fastapi/src/stapi_fastapi/routers/root_router.py

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,18 @@
66
from fastapi.datastructures import URL
77
from returns.maybe import Maybe, Some
88
from returns.result import Failure, Success
9-
from stapi_pydantic.conformance import (
10-
ASYNC_OPPORTUNITIES,
11-
CORE,
9+
from stapi_pydantic import (
1210
Conformance,
13-
)
14-
from stapi_pydantic.opportunity import (
11+
Link,
1512
OpportunitySearchRecord,
1613
OpportunitySearchRecords,
17-
)
18-
from stapi_pydantic.order import (
1914
Order,
2015
OrderCollection,
2116
OrderStatus,
2217
OrderStatuses,
18+
ProductsCollection,
19+
RootResponse,
2320
)
24-
from stapi_pydantic.product import ProductsCollection
25-
from stapi_pydantic.shared import Link
2621

2722
from stapi_fastapi.backends.root_backend import (
2823
GetOpportunitySearchRecord,
@@ -31,10 +26,10 @@
3126
GetOrders,
3227
GetOrderStatuses,
3328
)
29+
from stapi_fastapi.conformance import ASYNC_OPPORTUNITIES, CORE
3430
from stapi_fastapi.constants import TYPE_GEOJSON, TYPE_JSON
3531
from stapi_fastapi.exceptions import NotFoundException
3632
from stapi_fastapi.models.product import Product
37-
from stapi_fastapi.models.root import RootResponse
3833
from stapi_fastapi.responses import GeoJSONResponse
3934
from stapi_fastapi.routers.product_router import ProductRouter
4035
from stapi_fastapi.routers.route_names import (

stapi-fastapi/tests/application.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88

99
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
1010

11+
from stapi_fastapi.conformance import CORE, OPPORTUNITIES
1112
from stapi_fastapi.routers.root_router import RootRouter
12-
from stapi_pydantic.conformance import CORE, OPPORTUNITIES
1313

1414
from tests.backends import (
1515
mock_get_opportunity_search_record,

0 commit comments

Comments
 (0)