Skip to content

Commit 81ba249

Browse files
committed
Update wirio
1 parent cebccce commit 81ba249

File tree

9 files changed

+39
-26
lines changed

9 files changed

+39
-26
lines changed

notebooks/notebook.ipynb

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"cells": [
33
{
44
"cell_type": "code",
5-
"execution_count": 1,
5+
"execution_count": null,
66
"metadata": {},
77
"outputs": [],
88
"source": [
@@ -12,11 +12,20 @@
1212
},
1313
{
1414
"cell_type": "code",
15-
"execution_count": 2,
15+
"execution_count": null,
1616
"metadata": {},
1717
"outputs": [],
1818
"source": [
19-
"email_service = await services.get(EmailService)\n",
19+
"service_provider = services.build_service_provider()"
20+
]
21+
},
22+
{
23+
"cell_type": "code",
24+
"execution_count": null,
25+
"metadata": {},
26+
"outputs": [],
27+
"source": [
28+
"email_service = await service_provider.get_required_service(EmailService)\n",
2029
"await email_service.send_email()"
2130
]
2231
}

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ dependencies = [
1111
"pydantic>=2.12.5",
1212
"pydantic-settings[azure-key-vault]>=2.12.0",
1313
"sqlmodel>=0.0.31",
14-
"wirio>=0.7.0",
14+
"wirio>=0.8.0",
1515
]
1616

1717
[dependency-groups]

scripts/script.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55

66

77
async def main() -> None:
8-
async with services:
9-
email_service = await services.get(EmailService)
8+
async with services.build_service_provider() as service_provider:
9+
email_service = await service_provider.get_required_service(EmailService)
1010
await email_service.send_email()
1111

1212

src/python_template/api/main.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from fastapi import FastAPI
2-
from wirio.service_container import ServiceContainer
2+
from wirio.service_collection import ServiceCollection
33

44
from python_template.api.application_settings import ApplicationSettings
55
from python_template.api.service_collection_extensions import (
@@ -24,7 +24,7 @@
2424
app = FastAPI(openapi_url=openapi_url)
2525
app.include_router(product_router)
2626

27-
services = ServiceContainer()
27+
services = ServiceCollection()
2828
application_settings = ApplicationSettings() # ty:ignore[missing-argument]
2929
services.add_singleton(ApplicationSettings, application_settings)
3030
add_observability(services, application_settings)

src/python_template/api/service_collection_extensions.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@
99
async_sessionmaker,
1010
create_async_engine,
1111
)
12-
from wirio.service_container import ServiceContainer
12+
from wirio.service_collection import ServiceCollection
1313

1414
from python_template.api.application_settings import ApplicationSettings
1515
from python_template.common.application_environment import ApplicationEnvironment
1616

1717

1818
def add_observability(
19-
services: ServiceContainer, application_settings: ApplicationSettings
19+
services: ServiceCollection, application_settings: ApplicationSettings
2020
) -> None:
2121
def inject_logging() -> Logger:
2222
return logging.getLogger(__name__)
@@ -32,7 +32,7 @@ def inject_logging() -> Logger:
3232
)
3333

3434

35-
def add_sqlmodel(services: ServiceContainer) -> None:
35+
def add_sqlmodel(services: ServiceCollection) -> None:
3636
def inject_async_engine(application_settings: ApplicationSettings) -> AsyncEngine:
3737
return create_async_engine(application_settings.postgresql_connection_string)
3838

tests/integration/api/conftest.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
from collections.abc import AsyncGenerator
22

33
import pytest
4-
from wirio.service_container import ServiceContainer
4+
from wirio.service_provider import ServiceProvider
55

66
from python_template.api.main import services
77

88

99
@pytest.fixture
10-
async def services_fixture() -> AsyncGenerator[ServiceContainer]:
11-
async with services:
12-
yield services
10+
async def service_provider() -> AsyncGenerator[ServiceProvider]:
11+
async with services.build_service_provider() as service_provider:
12+
yield service_provider

tests/integration/api/workflows/products/discontinue_product/test_discontinue_product_workflow.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import pytest
22
from sqlalchemy.ext.asyncio import AsyncSession
3-
from wirio.service_container import ServiceContainer
3+
from wirio.service_provider import ServiceProvider
44

55
from python_template.api.workflows.products.discontinue_product.discontinue_product_request import (
66
DiscontinueProductRequest,
@@ -14,9 +14,11 @@
1414

1515
class TestDiscontinueProductWorkflow:
1616
@pytest.fixture(autouse=True)
17-
async def setup(self, services_fixture: ServiceContainer) -> None:
18-
self.workflow = await services_fixture.get(DiscontinueProductWorkflow)
19-
self.sql_session = await services_fixture.get(AsyncSession)
17+
async def setup(self, service_provider: ServiceProvider) -> None:
18+
self.workflow = await service_provider.get_required_service(
19+
DiscontinueProductWorkflow
20+
)
21+
self.sql_session = await service_provider.get_required_service(AsyncSession)
2022

2123
async def test_discontinue_product(self) -> None:
2224
product = ProductBuilder().build()

tests/integration/api/workflows/products/publish_product/test_publish_product_workflow.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import pytest
2-
from wirio.service_container import ServiceContainer
2+
from wirio.service_provider import ServiceProvider
33

44
from python_template.api.workflows.products.publish_product.publish_product_workflow import (
55
PublishProductWorkflow,
@@ -11,8 +11,10 @@
1111

1212
class TestPublishProductWorkflow:
1313
@pytest.fixture(autouse=True)
14-
async def setup(self, services_fixture: ServiceContainer) -> None:
15-
self.workflow = await services_fixture.get(PublishProductWorkflow)
14+
async def setup(self, service_provider: ServiceProvider) -> None:
15+
self.workflow = await service_provider.get_required_service(
16+
PublishProductWorkflow
17+
)
1618

1719
async def test_publish_product(self) -> None:
1820
request = PublishProductRequestBuilder().build()

uv.lock

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)