From 3315cb2336c265e8dec86edacc1854ef171ea524 Mon Sep 17 00:00:00 2001 From: gauvainboiche Date: Mon, 11 May 2026 09:25:19 +0200 Subject: [PATCH] feat: Semaine 8 --- Semaine_08/architecture_j1.pdf | Bin 0 -> 443963 bytes Semaine_08/livrexpress/.python-version | 1 + Semaine_08/livrexpress/README.md | 7 + Semaine_08/livrexpress/data/database.py | 6 + .../data/repositories/customer_repository.py | 32 + .../data/repositories/order_repository.py | 90 ++ .../protocols/customer_repository_protocol.py | 6 + .../protocols/order_repository_protocol.py | 8 + Semaine_08/livrexpress/data/repository.py | 0 .../livrexpress/domain/entities/customer.py | 15 + .../livrexpress/domain/entities/dish.py | 20 + .../livrexpress/domain/entities/order.py | 55 + .../domain/exceptions/order_exceptions.py | 15 + .../domain/services/order_service.py | 66 ++ Semaine_08/livrexpress/livrexpress.db | Bin 0 -> 28672 bytes Semaine_08/livrexpress/main.py | 11 + Semaine_08/livrexpress/presentation/routes.py | 18 + .../presentation/templates/layout.html | 34 + .../presentation/templates/my_orders.html | 24 + .../presentation/templates/order_row.html | 21 + Semaine_08/livrexpress/pyproject.toml | 10 + Semaine_08/livrexpress/seed.py | 249 +++++ Semaine_08/livrexpress/uv.lock | 273 +++++ Semaine_08/mediawatch/.python-version | 1 + .../mediawatch/17-04-2026_14-32-21-.png | Bin 0 -> 30925 bytes Semaine_08/mediawatch/README.md | 2 + .../Screenshot_2026-04-17_at_14.12.19.png | Bin 0 -> 194778 bytes Semaine_08/mediawatch/adapters/__init__.py | 0 .../mediawatch/adapters/inbound/__init__.py | 0 .../adapters/inbound/watch_controller.py | 24 + .../mediawatch/adapters/outbound/__init__.py | 0 .../adapters/outbound/cli_notifier.py | 10 + .../adapters/outbound/rss_feed_adapter.py | 25 + Semaine_08/mediawatch/application/__init__.py | 0 .../application/usecases/__init__.py | 0 .../application/usecases/run_watch_cycle.py | 41 + Semaine_08/mediawatch/domain/__init__.py | 0 Semaine_08/mediawatch/domain/entities.py | 14 + Semaine_08/mediawatch/domain/matcher.py | 6 + Semaine_08/mediawatch/main.py | 1 + Semaine_08/mediawatch/ports/__init__.py | 0 .../mediawatch/ports/inbound/__init__.py | 0 .../ports/inbound/usecase_protocol.py | 5 + .../mediawatch/ports/outbound/__init__.py | 0 .../ports/outbound/article_source_protocol.py | 7 + .../ports/outbound/notifier_protocol.py | 7 + Semaine_08/mediawatch/pyproject.toml | 16 + Semaine_08/mediawatch/requests.http | 14 + Semaine_08/mediawatch/test_1.py | 24 + Semaine_08/mediawatch/test_2.py | 28 + Semaine_08/mediawatch/test_3.py | 22 + Semaine_08/mediawatch/tests/__init__.py | 0 .../mediawatch/tests/fake_article_source.py | 8 + Semaine_08/mediawatch/tests/fake_notifier.py | 8 + .../mediawatch/tests/test_run_watch_cycle.py | 73 ++ Semaine_08/mediawatch/uv.lock | 434 ++++++++ Semaine_08/orderflow/.python-version | 1 + Semaine_08/orderflow/README.md | 0 .../orderflow/analytics_service/consumer.py | 53 + Semaine_08/orderflow/docker-compose.yml | 44 + .../orderflow/kitchen_service/consumer.py | 54 + Semaine_08/orderflow/main.py | 6 + .../orderflow/notif_service/consumer.py | 39 + Semaine_08/orderflow/order_service/main.py | 40 + .../orderflow/order_service/producer.py | 26 + .../orderflow/payment_service/consumer.py | 67 ++ Semaine_08/orderflow/pyproject.toml | 10 + Semaine_08/orderflow/request.http | 11 + Semaine_08/orderflow/seed.py | 168 +++ Semaine_08/orderflow/shared/events.py | 17 + Semaine_08/orderflow/start_consumer.py | 89 ++ Semaine_08/orderflow/test.py | 6 + Semaine_08/orderflow/uv.lock | 966 ++++++++++++++++++ Semaine_08/secuvault/.env | 3 + Semaine_08/secuvault/.python-version | 1 + .../09_concurrence_et_transactions.pdf | Bin 0 -> 301133 bytes .../secuvault/10_exercice_secuvault.pdf | Bin 0 -> 133443 bytes Semaine_08/secuvault/ATTACKS.md | 72 ++ .../BOICHE_Gauvain_eval_15_04_2026.zip | Bin 0 -> 101274 bytes Semaine_08/secuvault/README.md | 65 ++ Semaine_08/secuvault/domain/exceptions.py | 17 + Semaine_08/secuvault/domain/models/secrets.py | 11 + Semaine_08/secuvault/domain/models/teams.py | 7 + Semaine_08/secuvault/domain/models/users.py | 9 + Semaine_08/secuvault/domain/services.py | 68 ++ Semaine_08/secuvault/infra/crypto.py | 38 + Semaine_08/secuvault/infra/database.py | 103 ++ Semaine_08/secuvault/infra/repositories.py | 146 +++ Semaine_08/secuvault/main.py | 26 + .../secuvault/presentation/routes/auth.py | 51 + .../secuvault/presentation/routes/secrets.py | 211 ++++ Semaine_08/secuvault/presentation/schemas.py | 14 + .../presentation/templates/TEMPLATES.md | 12 + .../presentation/templates/base.html | 25 + .../presentation/templates/error.html | 12 + .../presentation/templates/login.html | 28 + .../presentation/templates/secret_create.html | 39 + .../presentation/templates/secret_detail.html | 24 + .../presentation/templates/secret_rotate.html | 35 + .../presentation/templates/secrets_list.html | 53 + Semaine_08/secuvault/pyproject.toml | 17 + Semaine_08/secuvault/secret.key | 1 + Semaine_08/secuvault/secuvault.db | Bin 0 -> 36864 bytes Semaine_08/secuvault/uv.lock | 540 ++++++++++ Semaine_08/shopflow/.python-version | 1 + Semaine_08/shopflow/README.md | 0 Semaine_08/shopflow/api-gateway/Dockerfile | 9 + Semaine_08/shopflow/api-gateway/main.py | 66 ++ .../shopflow/catalog-service/Dockerfile | 9 + Semaine_08/shopflow/catalog-service/main.py | 34 + Semaine_08/shopflow/docker-compose.yml | 27 + Semaine_08/shopflow/main.py | 6 + .../shopflow/order-service/.dockerignore | 3 + Semaine_08/shopflow/order-service/Dockerfile | 9 + .../shopflow/order-service/circuit_breaker.py | 34 + Semaine_08/shopflow/order-service/main.py | 89 ++ Semaine_08/shopflow/pyproject.toml | 11 + Semaine_08/shopflow/requests.http | 149 +++ Semaine_08/shopflow/test.py | 21 + Semaine_08/shopflow/user-service/Dockerfile | 9 + Semaine_08/shopflow/user-service/main.py | 35 + Semaine_08/shopflow/uv.lock | 280 +++++ Semaine_08/test.py | 0 123 files changed, 5748 insertions(+) create mode 100644 Semaine_08/architecture_j1.pdf create mode 100644 Semaine_08/livrexpress/.python-version create mode 100644 Semaine_08/livrexpress/README.md create mode 100644 Semaine_08/livrexpress/data/database.py create mode 100644 Semaine_08/livrexpress/data/repositories/customer_repository.py create mode 100644 Semaine_08/livrexpress/data/repositories/order_repository.py create mode 100644 Semaine_08/livrexpress/data/repositories/protocols/customer_repository_protocol.py create mode 100644 Semaine_08/livrexpress/data/repositories/protocols/order_repository_protocol.py create mode 100644 Semaine_08/livrexpress/data/repository.py create mode 100644 Semaine_08/livrexpress/domain/entities/customer.py create mode 100644 Semaine_08/livrexpress/domain/entities/dish.py create mode 100644 Semaine_08/livrexpress/domain/entities/order.py create mode 100644 Semaine_08/livrexpress/domain/exceptions/order_exceptions.py create mode 100644 Semaine_08/livrexpress/domain/services/order_service.py create mode 100644 Semaine_08/livrexpress/livrexpress.db create mode 100644 Semaine_08/livrexpress/main.py create mode 100644 Semaine_08/livrexpress/presentation/routes.py create mode 100644 Semaine_08/livrexpress/presentation/templates/layout.html create mode 100644 Semaine_08/livrexpress/presentation/templates/my_orders.html create mode 100644 Semaine_08/livrexpress/presentation/templates/order_row.html create mode 100644 Semaine_08/livrexpress/pyproject.toml create mode 100644 Semaine_08/livrexpress/seed.py create mode 100644 Semaine_08/livrexpress/uv.lock create mode 100644 Semaine_08/mediawatch/.python-version create mode 100644 Semaine_08/mediawatch/17-04-2026_14-32-21-.png create mode 100644 Semaine_08/mediawatch/README.md create mode 100644 Semaine_08/mediawatch/Screenshot_2026-04-17_at_14.12.19.png create mode 100644 Semaine_08/mediawatch/adapters/__init__.py create mode 100644 Semaine_08/mediawatch/adapters/inbound/__init__.py create mode 100644 Semaine_08/mediawatch/adapters/inbound/watch_controller.py create mode 100644 Semaine_08/mediawatch/adapters/outbound/__init__.py create mode 100644 Semaine_08/mediawatch/adapters/outbound/cli_notifier.py create mode 100644 Semaine_08/mediawatch/adapters/outbound/rss_feed_adapter.py create mode 100644 Semaine_08/mediawatch/application/__init__.py create mode 100644 Semaine_08/mediawatch/application/usecases/__init__.py create mode 100644 Semaine_08/mediawatch/application/usecases/run_watch_cycle.py create mode 100644 Semaine_08/mediawatch/domain/__init__.py create mode 100644 Semaine_08/mediawatch/domain/entities.py create mode 100644 Semaine_08/mediawatch/domain/matcher.py create mode 100644 Semaine_08/mediawatch/main.py create mode 100644 Semaine_08/mediawatch/ports/__init__.py create mode 100644 Semaine_08/mediawatch/ports/inbound/__init__.py create mode 100644 Semaine_08/mediawatch/ports/inbound/usecase_protocol.py create mode 100644 Semaine_08/mediawatch/ports/outbound/__init__.py create mode 100644 Semaine_08/mediawatch/ports/outbound/article_source_protocol.py create mode 100644 Semaine_08/mediawatch/ports/outbound/notifier_protocol.py create mode 100644 Semaine_08/mediawatch/pyproject.toml create mode 100644 Semaine_08/mediawatch/requests.http create mode 100644 Semaine_08/mediawatch/test_1.py create mode 100644 Semaine_08/mediawatch/test_2.py create mode 100644 Semaine_08/mediawatch/test_3.py create mode 100644 Semaine_08/mediawatch/tests/__init__.py create mode 100644 Semaine_08/mediawatch/tests/fake_article_source.py create mode 100644 Semaine_08/mediawatch/tests/fake_notifier.py create mode 100644 Semaine_08/mediawatch/tests/test_run_watch_cycle.py create mode 100644 Semaine_08/mediawatch/uv.lock create mode 100644 Semaine_08/orderflow/.python-version create mode 100644 Semaine_08/orderflow/README.md create mode 100644 Semaine_08/orderflow/analytics_service/consumer.py create mode 100644 Semaine_08/orderflow/docker-compose.yml create mode 100644 Semaine_08/orderflow/kitchen_service/consumer.py create mode 100644 Semaine_08/orderflow/main.py create mode 100644 Semaine_08/orderflow/notif_service/consumer.py create mode 100644 Semaine_08/orderflow/order_service/main.py create mode 100644 Semaine_08/orderflow/order_service/producer.py create mode 100644 Semaine_08/orderflow/payment_service/consumer.py create mode 100644 Semaine_08/orderflow/pyproject.toml create mode 100644 Semaine_08/orderflow/request.http create mode 100644 Semaine_08/orderflow/seed.py create mode 100644 Semaine_08/orderflow/shared/events.py create mode 100644 Semaine_08/orderflow/start_consumer.py create mode 100644 Semaine_08/orderflow/test.py create mode 100644 Semaine_08/orderflow/uv.lock create mode 100644 Semaine_08/secuvault/.env create mode 100644 Semaine_08/secuvault/.python-version create mode 100644 Semaine_08/secuvault/09_concurrence_et_transactions.pdf create mode 100644 Semaine_08/secuvault/10_exercice_secuvault.pdf create mode 100644 Semaine_08/secuvault/ATTACKS.md create mode 100644 Semaine_08/secuvault/BOICHE_Gauvain_eval_15_04_2026.zip create mode 100644 Semaine_08/secuvault/README.md create mode 100644 Semaine_08/secuvault/domain/exceptions.py create mode 100644 Semaine_08/secuvault/domain/models/secrets.py create mode 100644 Semaine_08/secuvault/domain/models/teams.py create mode 100644 Semaine_08/secuvault/domain/models/users.py create mode 100644 Semaine_08/secuvault/domain/services.py create mode 100644 Semaine_08/secuvault/infra/crypto.py create mode 100644 Semaine_08/secuvault/infra/database.py create mode 100644 Semaine_08/secuvault/infra/repositories.py create mode 100644 Semaine_08/secuvault/main.py create mode 100644 Semaine_08/secuvault/presentation/routes/auth.py create mode 100644 Semaine_08/secuvault/presentation/routes/secrets.py create mode 100644 Semaine_08/secuvault/presentation/schemas.py create mode 100644 Semaine_08/secuvault/presentation/templates/TEMPLATES.md create mode 100644 Semaine_08/secuvault/presentation/templates/base.html create mode 100644 Semaine_08/secuvault/presentation/templates/error.html create mode 100644 Semaine_08/secuvault/presentation/templates/login.html create mode 100644 Semaine_08/secuvault/presentation/templates/secret_create.html create mode 100644 Semaine_08/secuvault/presentation/templates/secret_detail.html create mode 100644 Semaine_08/secuvault/presentation/templates/secret_rotate.html create mode 100644 Semaine_08/secuvault/presentation/templates/secrets_list.html create mode 100644 Semaine_08/secuvault/pyproject.toml create mode 100644 Semaine_08/secuvault/secret.key create mode 100644 Semaine_08/secuvault/secuvault.db create mode 100644 Semaine_08/secuvault/uv.lock create mode 100644 Semaine_08/shopflow/.python-version create mode 100644 Semaine_08/shopflow/README.md create mode 100644 Semaine_08/shopflow/api-gateway/Dockerfile create mode 100644 Semaine_08/shopflow/api-gateway/main.py create mode 100644 Semaine_08/shopflow/catalog-service/Dockerfile create mode 100644 Semaine_08/shopflow/catalog-service/main.py create mode 100644 Semaine_08/shopflow/docker-compose.yml create mode 100644 Semaine_08/shopflow/main.py create mode 100644 Semaine_08/shopflow/order-service/.dockerignore create mode 100644 Semaine_08/shopflow/order-service/Dockerfile create mode 100644 Semaine_08/shopflow/order-service/circuit_breaker.py create mode 100644 Semaine_08/shopflow/order-service/main.py create mode 100644 Semaine_08/shopflow/pyproject.toml create mode 100644 Semaine_08/shopflow/requests.http create mode 100644 Semaine_08/shopflow/test.py create mode 100644 Semaine_08/shopflow/user-service/Dockerfile create mode 100644 Semaine_08/shopflow/user-service/main.py create mode 100644 Semaine_08/shopflow/uv.lock create mode 100644 Semaine_08/test.py diff --git a/Semaine_08/architecture_j1.pdf b/Semaine_08/architecture_j1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9f5d9eacd4093fbd29de75d02f9ca6df2aaad25a GIT binary patch literal 443963 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 z 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 VuRr4Tfbar#M#{}Cry)=J{{bi~u@(RT literal 0 HcmV?d00001 diff --git a/Semaine_08/livrexpress/.python-version b/Semaine_08/livrexpress/.python-version new file mode 100644 index 0000000..e4fba21 --- /dev/null +++ b/Semaine_08/livrexpress/.python-version @@ -0,0 +1 @@ +3.12 diff --git a/Semaine_08/livrexpress/README.md b/Semaine_08/livrexpress/README.md new file mode 100644 index 0000000..ea81390 --- /dev/null +++ b/Semaine_08/livrexpress/README.md @@ -0,0 +1,7 @@ +- uv init --python 3.12 +- uv run main.py +- .venv/Scripts/activate + +- uv add fastapi +- uv add jinja2 +- uv add uvicorn \ No newline at end of file diff --git a/Semaine_08/livrexpress/data/database.py b/Semaine_08/livrexpress/data/database.py new file mode 100644 index 0000000..fda7f5a --- /dev/null +++ b/Semaine_08/livrexpress/data/database.py @@ -0,0 +1,6 @@ +import sqlite3 + +def get_database_connection(): + connection = sqlite3.connect('livrexpress.db') + connection.row_factory = sqlite3.Row + return connection \ No newline at end of file diff --git a/Semaine_08/livrexpress/data/repositories/customer_repository.py b/Semaine_08/livrexpress/data/repositories/customer_repository.py new file mode 100644 index 0000000..fca60e6 --- /dev/null +++ b/Semaine_08/livrexpress/data/repositories/customer_repository.py @@ -0,0 +1,32 @@ +from data.database import get_database_connection +from data.repositories.protocols.customer_repository_protocol import CustomerRepositoryProtocol +from domain.entities.customer import Customer +from domain.services.order_service import OrderService + +class CustomerRepository(CustomerRepositoryProtocol): + def __init__(self) -> None: + self.db = get_database_connection() + + def find_by_id(self, customer_id: int): + row = self.db.execute( + """ + SELECT c.id, c.name, c.email, c.address + FROM customers c + LEFT JOIN orders o + ON o.customer_id = c.id + WHERE c.id = :id + GROUP BY c.id + """, + {"id": customer_id} + ).fetchone() + + if row is None: return None + + return Customer( + id= row['id'], + name= row['name'], + email= row['email'], + address= row['address'], + order_count= row['order_count'], + is_premium= row['order_count'] >= OrderService.PREMIUM_THRESHOLD, + ) \ No newline at end of file diff --git a/Semaine_08/livrexpress/data/repositories/order_repository.py b/Semaine_08/livrexpress/data/repositories/order_repository.py new file mode 100644 index 0000000..b8c5715 --- /dev/null +++ b/Semaine_08/livrexpress/data/repositories/order_repository.py @@ -0,0 +1,90 @@ +from datetime import datetime + +from data.database import get_database_connection +from data.repositories.protocols.order_repository_protocol import OrderRepositoryProtocol +from domain.entities.dish import Dish +from domain.entities.order import Order + + +class OrderRepository(OrderRepositoryProtocol): + def __init__(self) -> None: + self.db = get_database_connection() + + def find_by_customer_id(self, customer_id: int) -> list[Order]: + orders = self.db.execute( # list[tuple] + """ + SELECT o.id, o.customer_id, o.restaurant_id, r.name as restaurant_name, o.delivery_address, o.created_at, o.delivered_at + FROM orders o + JOIN restaurants r + ON o.restaurant_id = r.id + WHERE o.customer_id = :customer_id + ORDER BY o.created_at DESC + """, + {"customer_id": customer_id} + ).fetchall() + + return [ + Order( + id= row['id'], + customer_id= row['customer_id'], + restaurant_id= row['restaurant_id'], + restaurant_name= row['restaurant_name'], + dishes= self.get_dishes(row['id']), + delivery_address= row['delivery_address'], + created_at= datetime.fromisoformat(row['created_at']), + delivery_at= datetime.fromisoformat(row['delivered_at']) if row['delivered_at'] else None + ) for row in orders + ] + + def find_by_id(self, order_id: int) -> Order | None: + row = self.db.execute( # tuple + """ + SELECT o.*, r.name as restraurant_name + FROM orders o + JOIN restaurants r + ON o.restaurant_id = r.id + WHERE o.id = :id + """, + {"id": order_id} + ).fetchone() + + if row is None: return None + + return Order( + id= row['id'], + customer_id= row['customer_id'], + restaurant_id= row['restaurant_id'], + restaurant_name= row['restaurant_name'], + dishes= self.get_dishes(order_id), + delivery_address= row['delivery_address'], + created_at= datetime.fromisoformat(row['created_at']), + delivery_at= datetime.fromisoformat(row['delivered_at']) if row['delivered_at'] else None + ) + + def get_dishes(self, order_id: int) -> list[Dish]: + cursor = self.db.execute( # list[tuple] + """ + SELECT d.id, d.name, d.price, d.restaurant_id + FROM dishes d + JOIN order_dishes od + ON d.id = od.dish_id + WHERE od.order_id = :order_id + """, + {"order_id": order_id} + ) + + return [ + Dish( + id= row['id'], + name= row['name'], + price= row['price'], + restaurant_id= row['restaurant_id'] + ) for row in cursor + ] + + + def save(self, order: Order) -> None: + self.db.execute( + "UPDATE orders SET delivered_at = :delivered_at WHERE id= :id", + {"id": order.id, "delivered_at": order.delivery_at.isoformat() if order.delivery_at else None} # condition ternaire + ) \ No newline at end of file diff --git a/Semaine_08/livrexpress/data/repositories/protocols/customer_repository_protocol.py b/Semaine_08/livrexpress/data/repositories/protocols/customer_repository_protocol.py new file mode 100644 index 0000000..4f8450e --- /dev/null +++ b/Semaine_08/livrexpress/data/repositories/protocols/customer_repository_protocol.py @@ -0,0 +1,6 @@ +from typing import Protocol +from domain.entities.customer import Customer + +class CustomerRepositoryProtocol(Protocol): + def find_by_id(self, customer_id: int) -> Customer: ... + def save(self, customer): ... \ No newline at end of file diff --git a/Semaine_08/livrexpress/data/repositories/protocols/order_repository_protocol.py b/Semaine_08/livrexpress/data/repositories/protocols/order_repository_protocol.py new file mode 100644 index 0000000..60ff996 --- /dev/null +++ b/Semaine_08/livrexpress/data/repositories/protocols/order_repository_protocol.py @@ -0,0 +1,8 @@ +from typing import Protocol +from domain.entities.order import Order + +class OrderRepositoryProtocol(Protocol): + def find_by_customer_id(self, customer_id: int) -> list[Order]: ... + def find_by_id(self, order_id: int) -> Order | None: ... + def save(self, order: Order) -> None: ... + def update(self, order: Order) -> None: ... \ No newline at end of file diff --git a/Semaine_08/livrexpress/data/repository.py b/Semaine_08/livrexpress/data/repository.py new file mode 100644 index 0000000..e69de29 diff --git a/Semaine_08/livrexpress/domain/entities/customer.py b/Semaine_08/livrexpress/domain/entities/customer.py new file mode 100644 index 0000000..9d74f35 --- /dev/null +++ b/Semaine_08/livrexpress/domain/entities/customer.py @@ -0,0 +1,15 @@ +from dataclasses import dataclass, field +from typing import Optional + +@dataclass +class Customer: + id: int + name: str + email: str + address: str + order_count: int + is_premium: Optional[bool] = field(default=None) + + def __post_init__(self): + if self.is_premium is None: + self.is_premium = self.order_count > 10 \ No newline at end of file diff --git a/Semaine_08/livrexpress/domain/entities/dish.py b/Semaine_08/livrexpress/domain/entities/dish.py new file mode 100644 index 0000000..5ecaf7d --- /dev/null +++ b/Semaine_08/livrexpress/domain/entities/dish.py @@ -0,0 +1,20 @@ +from dataclasses import dataclass + +@dataclass +class Dish: + id: int + name: str + price: float + description: str = "" + is_available: bool = True + + def with_new_price(self, new_price: float) -> 'Dish': + return Dish( + id=self.id, + name=self.name, + price=new_price, + description=self.description, + is_available=self.is_available + ) + +plat_01 = Dish(id=1, name="Spaghetti Carbonara", price=12.99, description="Classic Italian pasta dish with eggs, cheese, pancetta, and pepper.") diff --git a/Semaine_08/livrexpress/domain/entities/order.py b/Semaine_08/livrexpress/domain/entities/order.py new file mode 100644 index 0000000..4b62c8c --- /dev/null +++ b/Semaine_08/livrexpress/domain/entities/order.py @@ -0,0 +1,55 @@ +from dataclasses import dataclass +from datetime import datetime +from typing import Optional + +from domain.entities.dish import Dish + + +@dataclass +class Order: + id: int + customer_id: int + restaurant_id: int + restaurant_name: str + dishes: list[Dish] + delivery_address: str + created_at: Optional[datetime] = datetime.now() + delivery_at: Optional[datetime] = None + + def amount(self): + return sum(dish.price for dish in self.dishes) + + def is_late(self): + if self.delivery_at is None: + return False + deadline = order.created_at + timedelta(minutes= self.DELIVERY_DELAY_MINUTES) #type: ignore + return datetime.now() > deadline + + def status(self): + if self.delivery_at: + return "Delivered" + elif self.is_late(): + return "Late" + else: + return "In delivery progress..." + + def urgency_level(self, delivery_delay, warning_threshold): + if self.delivery_at: + return "Delivered" + minutes = (datetime.now() - order.created_at).total_seconds() / 60 #type: ignore + if minutes > delivery_delay: + return "severe_delay" + elif minutes > warning_threshold: + return "light_delay" + return "normal" + +@dataclass +class OrderWithStatus: + order_id: int + restaurant_name: str + total_amount: float + is_late: bool + free_delivery: bool + is_premium_customer: bool + status: str + urgency_level: str # normal, light_delay, severe_delay, delivered \ No newline at end of file diff --git a/Semaine_08/livrexpress/domain/exceptions/order_exceptions.py b/Semaine_08/livrexpress/domain/exceptions/order_exceptions.py new file mode 100644 index 0000000..e9274a2 --- /dev/null +++ b/Semaine_08/livrexpress/domain/exceptions/order_exceptions.py @@ -0,0 +1,15 @@ +class OrderNotFoundException(Exception): + """Raised when an order is not found.""" + + def __init__(self, order_id: int): + self.order_id = order_id + super().__init__(f"Order with ID {order_id} not found.") + +class OrderAlreadyDeliveredException(Exception): + """Raised when an order has already been delivered.""" + + def __init__(self, order_id: int): + self.order_id = order_id + super().__init__(f"Order with ID {order_id} has already been delivered.") + +raise OrderNotFoundException(34) \ No newline at end of file diff --git a/Semaine_08/livrexpress/domain/services/order_service.py b/Semaine_08/livrexpress/domain/services/order_service.py new file mode 100644 index 0000000..6d90e9d --- /dev/null +++ b/Semaine_08/livrexpress/domain/services/order_service.py @@ -0,0 +1,66 @@ +from ast import Or +from datetime import datetime, timedelta + +from data.repositories.protocols.customer_repository_protocol import CustomerRepositoryProtocol +from data.repositories.protocols.order_repository_protocol import OrderRepositoryProtocol +from domain.exceptions.order_exceptions import OrderAlreadyDeliveredException, OrderNotFoundException +from domain.entities.order import Order, OrderWithStatus + + +class OrderService: + DELIVERY_DELAY_MINUTES = 45 + WARNING_THRESHOLD_MINUTES = 30 + FREE_DELIVERY_THRESHOLD = 25.0 + PREMIUM_THRESHOLD = 10 + + def __init__( + self, + order_repo: OrderRepositoryProtocol, + customer_repo: CustomerRepositoryProtocol + ): + self.order_repo = order_repo + self.customer_repo = customer_repo + + def get_orders_with_status(self, customer_id: int): + orders = self.order_repo.find_by_customer_id(customer_id) + customer = self.customer_repo.find_by_id(customer_id) + result = [] + + for order in orders: + result.append( + OrderWithStatus( + order_id= order.id, + restaurant_name= order.restaurant_name, + total_amount= order.amount(), + is_late= order.is_late(), + free_delivery= order.amount() >= self.FREE_DELIVERY_THRESHOLD, + is_premium_customer= customer.order_count >= self.PREMIUM_THRESHOLD, + status= order.status(), + urgency_level= order.urgency_level(self.DELIVERY_DELAY_MINUTES, self.WARNING_THRESHOLD_MINUTES) + ) + ) + + return result + + def mark_order_as_delivered(self, order_id: int): + order = self.order_repo.find_by_id(order_id) + if order is None: + raise OrderNotFoundException(order_id) + if order.delivery_at is not None: + raise OrderAlreadyDeliveredException(order_id) + + order.delivery_at = datetime.now() + self.order_repo.update(order) + + customer = self.customer_repo.find_by_id(order.customer_id) + + return OrderWithStatus( + order_id= order.id, + restaurant_name= order.restaurant_name, + total_amount= order.amount(), + is_late= order.is_late(), + free_delivery= order.amount() >= self.FREE_DELIVERY_THRESHOLD, + is_premium_customer= customer.order_count >= self.PREMIUM_THRESHOLD, + status= order.status(), + urgency_level= order.urgency_level(self.DELIVERY_DELAY_MINUTES, self.WARNING_THRESHOLD_MINUTES) + ) \ No newline at end of file diff --git a/Semaine_08/livrexpress/livrexpress.db b/Semaine_08/livrexpress/livrexpress.db new file mode 100644 index 0000000000000000000000000000000000000000..83ce2816fbd0eaa86cafe90bd621df1184a340b2 GIT binary patch literal 28672 zcmeI4O>Epm6vsXOjQ49oXcY>oGF4PHt2S*mo0MdsYPP9UMcr)D&9;zJWOj$d>VCBL zZdDMMG!jS^2M&k>^uz&i>xml@hk{gbsgMxj#>asZAS$?V;n`ki?Xp`ohf0-rBkjDg z-@L!){bqca#P<57g4N>e^`>1nTP!OK3xo&@j0u9E!cT)=P!wp$!2wtjYWHiZ!pYkQ zlHgTiKMT}I{h4YcH{zQCu|EeSK%bs-}IxNJK|H&B76W5^h8+y?a2>Mh_h# zZ%f@Q{rnvD-p3j}wEvishFRww zFkpJKxn^6HZYNmq1ves!xtoJKX~D&#eIjc!67YB&JEEkGj*pX_iyn?{q!Vh&5ilV~ zm`*URL7;dnf&^meHBlWsew=K0LvXIwVE?=6@at{fsPIP)rN~eoaZb3zPe5dPXO3v2 zV`JpjSx<9s{p>Zwh|b>Wa6&K-`^hPo;vg-5f%Cd))q1-k_f`-UOS^k>k-j6)FQLMM z1dsp{Kmter2_OL^fCP{L5ut(hFd96Q&xx3~@e<*%6)o)RTtyujHj&8w_>Y}JPSzi?!6o4@HkW?(hl{l88p z1o}IDK);}$(06H@ZqS$E6c!|a1dsp{Kmter2_OL^fCP{L5&SGdpS^P<%Eo!{xH>C=-_Gm}#VoGH-Q+%W=lkk{C#t)i&;(sSlh5~idD%}jJDJJ!77aYJb6q^^@j*qW`-*y=h-hq3 z(QIE)&l3^V2Nj*^E9!Y7qCePI0Hl&(U_7Mvs3g16Dxf3f6a9xOjb#KLM92Dxk| za%0bveT8O1q}=`gLE0AR-}Eo~8~ug;K) + + + + + + Document + + + +

+

🍕 Livr'Express

+
+
+ {% block content %}{% endblock %} +
+ + \ No newline at end of file diff --git a/Semaine_08/livrexpress/presentation/templates/my_orders.html b/Semaine_08/livrexpress/presentation/templates/my_orders.html new file mode 100644 index 0000000..3de152c --- /dev/null +++ b/Semaine_08/livrexpress/presentation/templates/my_orders.html @@ -0,0 +1,24 @@ +{% extends "layout.html" %} + +{% block content %} +

My Orders

+ + + + + + + + + + + {% for order in orders %} + {% include "order_row.html" %} + {% else %} + + + + {% endfor %} + +
RestaurantTotal PriceStatusAction
No orders found.
+{% endblock content %} \ No newline at end of file diff --git a/Semaine_08/livrexpress/presentation/templates/order_row.html b/Semaine_08/livrexpress/presentation/templates/order_row.html new file mode 100644 index 0000000..603cd8e --- /dev/null +++ b/Semaine_08/livrexpress/presentation/templates/order_row.html @@ -0,0 +1,21 @@ + + {{ order.restaurant_name }} + {{ order.total_amount }} + + {% if order.is_late %} + Late + {% endif %} + {% if order.free_delivery %} + Free Delivery + {% endif %} + + + {% if order.status == 'delivered' %} + Delivered + {% elif order.status == 'pending' %} + Pending + {% elif order.status == 'cancelled' %} + Cancelled + {% endif %} + + \ No newline at end of file diff --git a/Semaine_08/livrexpress/pyproject.toml b/Semaine_08/livrexpress/pyproject.toml new file mode 100644 index 0000000..c9f5d9b --- /dev/null +++ b/Semaine_08/livrexpress/pyproject.toml @@ -0,0 +1,10 @@ +[project] +name = "livrexpress" +version = "0.1.0" +description = "Add your description here" +readme = "README.md" +requires-python = ">=3.12" +dependencies = [ + "fastapi>=0.135.3", + "jinja2>=3.1.6", +] diff --git a/Semaine_08/livrexpress/seed.py b/Semaine_08/livrexpress/seed.py new file mode 100644 index 0000000..ec5002e --- /dev/null +++ b/Semaine_08/livrexpress/seed.py @@ -0,0 +1,249 @@ +""" +seed_db.py, Peuplement de la base de données LivrExpress +========================================================== +Réinitialise et peuple livrexpress.db avec des données de démonstration. + +Usage : + uv run python seed_db.py (depuis le dossier code/livexpress/) + +Ce script illustre concrètement toutes les règles métier de OrderService : + + RÈGLES (OrderService) + ┌─────────────────────────────────────────────────────────────────┐ + │ urgency_level → "normal" commande créée il y a < 30min │ + │ "light_delay" entre 30 et 45min │ + │ "severe_delay" > 45min sans livraison │ + │ "delivered" commande livrée │ + │ is_late → True si non livrée et créée il y a > 45min │ + │ free_delivery → True si total >= 25.0 € │ + │ is_premium → True si le client a >= 10 commandes au total │ + └─────────────────────────────────────────────────────────────────┘ + +Le middleware simule l'utilisateur connecté avec customer_id = 1 (Marie). +""" + +import sqlite3 +from datetime import datetime, timedelta + +DB_PATH = "livrexpress.db" +NOW = datetime.now() + + +# ───────────────────────────────────────────────────────────────────────────── +# Schéma +# ───────────────────────────────────────────────────────────────────────────── + +SCHEMA = """ +DROP TABLE IF EXISTS order_dishes; +DROP TABLE IF EXISTS orders; +DROP TABLE IF EXISTS dishes; +DROP TABLE IF EXISTS restaurants; +DROP TABLE IF EXISTS customers; + +CREATE TABLE customers ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + name TEXT NOT NULL, + email TEXT NOT NULL, + address TEXT NOT NULL +); + +CREATE TABLE restaurants ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + name TEXT NOT NULL +); + +CREATE TABLE dishes ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + name TEXT NOT NULL, + price REAL NOT NULL, + restaurant_id INTEGER NOT NULL, + FOREIGN KEY (restaurant_id) REFERENCES restaurants(id) +); + +CREATE TABLE orders ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + customer_id INTEGER NOT NULL, + restaurant_id INTEGER NOT NULL, + delivery_address TEXT NOT NULL, + created_at TEXT NOT NULL, + delivered_at TEXT, + FOREIGN KEY (customer_id) REFERENCES customers(id), + FOREIGN KEY (restaurant_id) REFERENCES restaurants(id) +); + +CREATE TABLE order_dishes ( + order_id INTEGER NOT NULL, + dish_id INTEGER NOT NULL, + FOREIGN KEY (order_id) REFERENCES orders(id), + FOREIGN KEY (dish_id) REFERENCES dishes(id) +); +""" + + +def seed(): + conn = sqlite3.connect(DB_PATH) + conn.executescript(SCHEMA) + c = conn.cursor() + + # ── Clients ────────────────────────────────────────────────────────────── + # Marie : 12 commandes au total → is_premium = True (seuil = 10) + # Lucas : 3 commandes au total → is_premium = False + c.execute("INSERT INTO customers (name, email, address) VALUES (?, ?, ?)", + ("Marie Dupont", "marie@example.com", "12 rue de la Paix, Paris")) + marie_id = c.lastrowid + c.execute("INSERT INTO customers (name, email, address) VALUES (?, ?, ?)", + ("Lucas Martin", "lucas@example.com", "5 avenue Montaigne, Paris")) + lucas_id = c.lastrowid + + # ── Restaurants ────────────────────────────────────────────────────────── + c.execute("INSERT INTO restaurants (name) VALUES (?)", ("Chez Mario",)) + mario_id = c.lastrowid + c.execute("INSERT INTO restaurants (name) VALUES (?)", ("Le Wok d'Or",)) + wok_id = c.lastrowid + c.execute("INSERT INTO restaurants (name) VALUES (?)", ("Burger Palace",)) + burger_id = c.lastrowid + + # ── Plats ──────────────────────────────────────────────────────────────── + dishes = [ + ("Margherita", 12.0, mario_id), # d1 + ("Quattro Stagioni", 14.5, mario_id), # d2 + ("Tiramisu", 6.0, mario_id), # d3 + ("Pad Thaï", 13.5, wok_id), # d4 + ("Nem croustillants", 8.0, wok_id), # d5 + ("Burger Classic", 11.0, burger_id), # d6 + ("Burger Double Bacon", 14.0, burger_id), # d7 + ("Frites maison", 4.5, burger_id), # d8 + ("Cheese Cake", 7.0, burger_id), # d9 + ] + dish_ids = [] + for name, price, rid in dishes: + c.execute("INSERT INTO dishes (name, price, restaurant_id) VALUES (?, ?, ?)", + (name, price, rid)) + dish_ids.append(c.lastrowid) + d1, d2, d3, d4, d5, d6, d7, d8, d9 = dish_ids + + # ── Commandes pour Marie (customer_id=1) ───────────────────────────────── + # On couvre tous les cas des règles métier : + # + # urgency is_late free_del dishes total + # -------- ------- -------- ---------------------- ----- + # normal False False Margherita 12.0 + # normal False True Quattro + Tiramisu 20.5 + # light_del False False Nem croustillants 8.0 + # light_del False True Pad Thaï + Nem 21.5 + # severe_del True False Burger Classic 11.0 + # severe_del True True Burger x2 + Frites + CC 40.5 + # delivered False True Margherita + Pad Thaï 25.5 + + order_specs = [ + # (label, restaurant_id, created_at_offset_min, delivered_offset_min, dish_list) + ("normal / pas chère", mario_id, -10, None, [d1]), + ("normal / livraison ok",mario_id, -20, None, [d2, d3]), + ("légère alerte", wok_id, -35, None, [d5]), + ("légère alerte + gratu",wok_id, -38, None, [d4, d5]), + ("retard / pas chère", burger_id, -60, None, [d6]), + ("retard / livraison ok",burger_id, -90, None, [d7, d7, d8, d9]), + ("livrée", mario_id, -50, -5, [d1, d4]), + ] + + marie_orders = [] + for label, rest_id, offset_min, delivered_offset, dish_list in order_specs: + created = NOW + timedelta(minutes=offset_min) + delivered = (NOW + timedelta(minutes=delivered_offset)).isoformat() if delivered_offset else None + c.execute( + "INSERT INTO orders (customer_id, restaurant_id, delivery_address, created_at, delivered_at)" + " VALUES (?, ?, ?, ?, ?)", + (marie_id, rest_id, "12 rue de la Paix, Paris", + created.isoformat(), delivered) + ) + order_id = c.lastrowid + for dish_id in dish_list: + c.execute("INSERT INTO order_dishes (order_id, dish_id) VALUES (?, ?)", + (order_id, dish_id)) + total = sum(price for name, price, rid in dishes + for did in dish_list if did == dish_ids[dishes.index((name, price, rid))]) + marie_orders.append((label, order_id, total, created, delivered, dish_list)) + + # Commandes historiques pour atteindre order_count >= 10 (Marie est premium) + # On en a déjà 7 ci-dessus, on en ajoute 5 dans le passé. + for i in range(5): + past = NOW - timedelta(days=30 + i) + c.execute( + "INSERT INTO orders (customer_id, restaurant_id, delivery_address, created_at, delivered_at)" + " VALUES (?, ?, ?, ?, ?)", + (marie_id, mario_id, "12 rue de la Paix, Paris", + past.isoformat(), (past + timedelta(minutes=35)).isoformat()) + ) + c.execute("INSERT INTO order_dishes (order_id, dish_id) VALUES (?, ?)", + (c.lastrowid, d1)) + + # ── Commandes pour Lucas (customer_id=2), non visibles via /my-orders ── + for i in range(3): + past = NOW - timedelta(days=5 + i) + c.execute( + "INSERT INTO orders (customer_id, restaurant_id, delivery_address, created_at, delivered_at)" + " VALUES (?, ?, ?, ?, ?)", + (lucas_id, burger_id, "5 avenue Montaigne, Paris", + past.isoformat(), (past + timedelta(minutes=40)).isoformat()) + ) + c.execute("INSERT INTO order_dishes (order_id, dish_id) VALUES (?, ?)", + (c.lastrowid, d6)) + + conn.commit() + conn.close() + + # ── Résumé ────────────────────────────────────────────────────────────── + print() + print("━" * 68) + print(" LivrExpress, Base de données peuplée") + print("━" * 68) + print(f"\n Heure actuelle : {NOW.strftime('%H:%M:%S')}") + print(f"\n CLIENTS") + print(f" #1 Marie Dupont , 12 commandes au total → 🌟 PREMIUM (seuil ≥ 10)") + print(f" #2 Lucas Martin , 3 commandes au total → non premium") + print(f"\n Client simulé par le middleware : customer_id = 1 (Marie)") + print(f"\n COMMANDES VISIBLES sur /my-orders (Marie, 7 commandes récentes)") + print(f"\n {'scénario':<26} {'total':>7} {'créée il y a':>13} {'urgency_level':<14} badges") + print(" " + "─" * 66) + + urgency_labels = { + "normal": "normal ", + "light_delay": "⚠️ light_delay ", + "severe_delay": "🔴 severe_delay", + "delivered": "✅ delivered ", + } + + for label, order_id, total, created, delivered, dish_list in marie_orders: + elapsed = (NOW - created).total_seconds() / 60 + if delivered: + ul = "delivered" + elif elapsed > 45: + ul = "severe_delay" + elif elapsed > 30: + ul = "light_delay" + else: + ul = "normal" + + badges = [] + if not delivered and elapsed > 45: + badges.append("⏰ is_late") + if total >= 25.0: + badges.append("🚚 free_delivery") + if delivered: + badges.append("livrée") + + age_str = f"{int(elapsed)}min ago" + print(f" {label:<26} {total:>6.1f}€ {age_str:>13} " + f"{urgency_labels[ul]} {', '.join(badges) if badges else '—'}") + + print(f"\n + 5 commandes anciennes (livrées, > 30 jours) pour atteindre order_count = 12") + print(f"\n COMMANDES Lucas (non visibles) : 3 commandes livrées") + print() + print(" ✓ Lancez l'app : uv run uvicorn main:app --reload") + print(" ✓ Commandes : http://localhost:8000/my-orders") + print("━" * 68) + print() + + +if __name__ == "__main__": + seed() \ No newline at end of file diff --git a/Semaine_08/livrexpress/uv.lock b/Semaine_08/livrexpress/uv.lock new file mode 100644 index 0000000..bcac84b --- /dev/null +++ b/Semaine_08/livrexpress/uv.lock @@ -0,0 +1,273 @@ +version = 1 +revision = 3 +requires-python = ">=3.12" + +[[package]] +name = "annotated-doc" +version = "0.0.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/57/ba/046ceea27344560984e26a590f90bc7f4a75b06701f653222458922b558c/annotated_doc-0.0.4.tar.gz", hash = "sha256:fbcda96e87e9c92ad167c2e53839e57503ecfda18804ea28102353485033faa4", size = 7288, upload-time = "2025-11-10T22:07:42.062Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/d3/26bf1008eb3d2daa8ef4cacc7f3bfdc11818d111f7e2d0201bc6e3b49d45/annotated_doc-0.0.4-py3-none-any.whl", hash = "sha256:571ac1dc6991c450b25a9c2d84a3705e2ae7a53467b5d111c24fa8baabbed320", size = 5303, upload-time = "2025-11-10T22:07:40.673Z" }, +] + +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload-time = "2024-05-20T21:33:25.928Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" }, +] + +[[package]] +name = "anyio" +version = "4.13.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/14/2c5dd9f512b66549ae92767a9c7b330ae88e1932ca57876909410251fe13/anyio-4.13.0.tar.gz", hash = "sha256:334b70e641fd2221c1505b3890c69882fe4a2df910cba14d97019b90b24439dc", size = 231622, upload-time = "2026-03-24T12:59:09.671Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/da/42/e921fccf5015463e32a3cf6ee7f980a6ed0f395ceeaa45060b61d86486c2/anyio-4.13.0-py3-none-any.whl", hash = "sha256:08b310f9e24a9594186fd75b4f73f4a4152069e3853f1ed8bfbf58369f4ad708", size = 114353, upload-time = "2026-03-24T12:59:08.246Z" }, +] + +[[package]] +name = "fastapi" +version = "0.135.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-doc" }, + { name = "pydantic" }, + { name = "starlette" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/e6/7adb4c5fa231e82c35b8f5741a9f2d055f520c29af5546fd70d3e8e1cd2e/fastapi-0.135.3.tar.gz", hash = "sha256:bd6d7caf1a2bdd8d676843cdcd2287729572a1ef524fc4d65c17ae002a1be654", size = 396524, upload-time = "2026-04-01T16:23:58.188Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/a4/5caa2de7f917a04ada20018eccf60d6cc6145b0199d55ca3711b0fc08312/fastapi-0.135.3-py3-none-any.whl", hash = "sha256:9b0f590c813acd13d0ab43dd8494138eb58e484bfac405db1f3187cfc5810d98", size = 117734, upload-time = "2026-04-01T16:23:59.328Z" }, +] + +[[package]] +name = "idna" +version = "3.11" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582, upload-time = "2025-10-12T14:55:20.501Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload-time = "2025-10-12T14:55:18.883Z" }, +] + +[[package]] +name = "jinja2" +version = "3.1.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115, upload-time = "2025-03-05T20:05:02.478Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, +] + +[[package]] +name = "livrexpress" +version = "0.1.0" +source = { virtual = "." } +dependencies = [ + { name = "fastapi" }, + { name = "jinja2" }, +] + +[package.metadata] +requires-dist = [ + { name = "fastapi", specifier = ">=0.135.3" }, + { name = "jinja2", specifier = ">=3.1.6" }, +] + +[[package]] +name = "markupsafe" +version = "3.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313, upload-time = "2025-09-27T18:37:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5a/72/147da192e38635ada20e0a2e1a51cf8823d2119ce8883f7053879c2199b5/markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e", size = 11615, upload-time = "2025-09-27T18:36:30.854Z" }, + { url = "https://files.pythonhosted.org/packages/9a/81/7e4e08678a1f98521201c3079f77db69fb552acd56067661f8c2f534a718/markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce", size = 12020, upload-time = "2025-09-27T18:36:31.971Z" }, + { url = "https://files.pythonhosted.org/packages/1e/2c/799f4742efc39633a1b54a92eec4082e4f815314869865d876824c257c1e/markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d", size = 24332, upload-time = "2025-09-27T18:36:32.813Z" }, + { url = "https://files.pythonhosted.org/packages/3c/2e/8d0c2ab90a8c1d9a24f0399058ab8519a3279d1bd4289511d74e909f060e/markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d", size = 22947, upload-time = "2025-09-27T18:36:33.86Z" }, + { url = "https://files.pythonhosted.org/packages/2c/54/887f3092a85238093a0b2154bd629c89444f395618842e8b0c41783898ea/markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a", size = 21962, upload-time = "2025-09-27T18:36:35.099Z" }, + { url = "https://files.pythonhosted.org/packages/c9/2f/336b8c7b6f4a4d95e91119dc8521402461b74a485558d8f238a68312f11c/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b", size = 23760, upload-time = "2025-09-27T18:36:36.001Z" }, + { url = "https://files.pythonhosted.org/packages/32/43/67935f2b7e4982ffb50a4d169b724d74b62a3964bc1a9a527f5ac4f1ee2b/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f", size = 21529, upload-time = "2025-09-27T18:36:36.906Z" }, + { url = "https://files.pythonhosted.org/packages/89/e0/4486f11e51bbba8b0c041098859e869e304d1c261e59244baa3d295d47b7/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b", size = 23015, upload-time = "2025-09-27T18:36:37.868Z" }, + { url = "https://files.pythonhosted.org/packages/2f/e1/78ee7a023dac597a5825441ebd17170785a9dab23de95d2c7508ade94e0e/markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", size = 14540, upload-time = "2025-09-27T18:36:38.761Z" }, + { url = "https://files.pythonhosted.org/packages/aa/5b/bec5aa9bbbb2c946ca2733ef9c4ca91c91b6a24580193e891b5f7dbe8e1e/markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", size = 15105, upload-time = "2025-09-27T18:36:39.701Z" }, + { url = "https://files.pythonhosted.org/packages/e5/f1/216fc1bbfd74011693a4fd837e7026152e89c4bcf3e77b6692fba9923123/markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", size = 13906, upload-time = "2025-09-27T18:36:40.689Z" }, + { url = "https://files.pythonhosted.org/packages/38/2f/907b9c7bbba283e68f20259574b13d005c121a0fa4c175f9bed27c4597ff/markupsafe-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795", size = 11622, upload-time = "2025-09-27T18:36:41.777Z" }, + { url = "https://files.pythonhosted.org/packages/9c/d9/5f7756922cdd676869eca1c4e3c0cd0df60ed30199ffd775e319089cb3ed/markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219", size = 12029, upload-time = "2025-09-27T18:36:43.257Z" }, + { url = "https://files.pythonhosted.org/packages/00/07/575a68c754943058c78f30db02ee03a64b3c638586fba6a6dd56830b30a3/markupsafe-3.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6", size = 24374, upload-time = "2025-09-27T18:36:44.508Z" }, + { url = "https://files.pythonhosted.org/packages/a9/21/9b05698b46f218fc0e118e1f8168395c65c8a2c750ae2bab54fc4bd4e0e8/markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676", size = 22980, upload-time = "2025-09-27T18:36:45.385Z" }, + { url = "https://files.pythonhosted.org/packages/7f/71/544260864f893f18b6827315b988c146b559391e6e7e8f7252839b1b846a/markupsafe-3.0.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9", size = 21990, upload-time = "2025-09-27T18:36:46.916Z" }, + { url = "https://files.pythonhosted.org/packages/c2/28/b50fc2f74d1ad761af2f5dcce7492648b983d00a65b8c0e0cb457c82ebbe/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1", size = 23784, upload-time = "2025-09-27T18:36:47.884Z" }, + { url = "https://files.pythonhosted.org/packages/ed/76/104b2aa106a208da8b17a2fb72e033a5a9d7073c68f7e508b94916ed47a9/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc", size = 21588, upload-time = "2025-09-27T18:36:48.82Z" }, + { url = "https://files.pythonhosted.org/packages/b5/99/16a5eb2d140087ebd97180d95249b00a03aa87e29cc224056274f2e45fd6/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12", size = 23041, upload-time = "2025-09-27T18:36:49.797Z" }, + { url = "https://files.pythonhosted.org/packages/19/bc/e7140ed90c5d61d77cea142eed9f9c303f4c4806f60a1044c13e3f1471d0/markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", size = 14543, upload-time = "2025-09-27T18:36:51.584Z" }, + { url = "https://files.pythonhosted.org/packages/05/73/c4abe620b841b6b791f2edc248f556900667a5a1cf023a6646967ae98335/markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", size = 15113, upload-time = "2025-09-27T18:36:52.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/3a/fa34a0f7cfef23cf9500d68cb7c32dd64ffd58a12b09225fb03dd37d5b80/markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", size = 13911, upload-time = "2025-09-27T18:36:53.513Z" }, + { url = "https://files.pythonhosted.org/packages/e4/d7/e05cd7efe43a88a17a37b3ae96e79a19e846f3f456fe79c57ca61356ef01/markupsafe-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73", size = 11658, upload-time = "2025-09-27T18:36:54.819Z" }, + { url = "https://files.pythonhosted.org/packages/99/9e/e412117548182ce2148bdeacdda3bb494260c0b0184360fe0d56389b523b/markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37", size = 12066, upload-time = "2025-09-27T18:36:55.714Z" }, + { url = "https://files.pythonhosted.org/packages/bc/e6/fa0ffcda717ef64a5108eaa7b4f5ed28d56122c9a6d70ab8b72f9f715c80/markupsafe-3.0.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19", size = 25639, upload-time = "2025-09-27T18:36:56.908Z" }, + { url = "https://files.pythonhosted.org/packages/96/ec/2102e881fe9d25fc16cb4b25d5f5cde50970967ffa5dddafdb771237062d/markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025", size = 23569, upload-time = "2025-09-27T18:36:57.913Z" }, + { url = "https://files.pythonhosted.org/packages/4b/30/6f2fce1f1f205fc9323255b216ca8a235b15860c34b6798f810f05828e32/markupsafe-3.0.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6", size = 23284, upload-time = "2025-09-27T18:36:58.833Z" }, + { url = "https://files.pythonhosted.org/packages/58/47/4a0ccea4ab9f5dcb6f79c0236d954acb382202721e704223a8aafa38b5c8/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f", size = 24801, upload-time = "2025-09-27T18:36:59.739Z" }, + { url = "https://files.pythonhosted.org/packages/6a/70/3780e9b72180b6fecb83a4814d84c3bf4b4ae4bf0b19c27196104149734c/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb", size = 22769, upload-time = "2025-09-27T18:37:00.719Z" }, + { url = "https://files.pythonhosted.org/packages/98/c5/c03c7f4125180fc215220c035beac6b9cb684bc7a067c84fc69414d315f5/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009", size = 23642, upload-time = "2025-09-27T18:37:01.673Z" }, + { url = "https://files.pythonhosted.org/packages/80/d6/2d1b89f6ca4bff1036499b1e29a1d02d282259f3681540e16563f27ebc23/markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", size = 14612, upload-time = "2025-09-27T18:37:02.639Z" }, + { url = "https://files.pythonhosted.org/packages/2b/98/e48a4bfba0a0ffcf9925fe2d69240bfaa19c6f7507b8cd09c70684a53c1e/markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", size = 15200, upload-time = "2025-09-27T18:37:03.582Z" }, + { url = "https://files.pythonhosted.org/packages/0e/72/e3cc540f351f316e9ed0f092757459afbc595824ca724cbc5a5d4263713f/markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", size = 13973, upload-time = "2025-09-27T18:37:04.929Z" }, + { url = "https://files.pythonhosted.org/packages/33/8a/8e42d4838cd89b7dde187011e97fe6c3af66d8c044997d2183fbd6d31352/markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe", size = 11619, upload-time = "2025-09-27T18:37:06.342Z" }, + { url = "https://files.pythonhosted.org/packages/b5/64/7660f8a4a8e53c924d0fa05dc3a55c9cee10bbd82b11c5afb27d44b096ce/markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026", size = 12029, upload-time = "2025-09-27T18:37:07.213Z" }, + { url = "https://files.pythonhosted.org/packages/da/ef/e648bfd021127bef5fa12e1720ffed0c6cbb8310c8d9bea7266337ff06de/markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737", size = 24408, upload-time = "2025-09-27T18:37:09.572Z" }, + { url = "https://files.pythonhosted.org/packages/41/3c/a36c2450754618e62008bf7435ccb0f88053e07592e6028a34776213d877/markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97", size = 23005, upload-time = "2025-09-27T18:37:10.58Z" }, + { url = "https://files.pythonhosted.org/packages/bc/20/b7fdf89a8456b099837cd1dc21974632a02a999ec9bf7ca3e490aacd98e7/markupsafe-3.0.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d", size = 22048, upload-time = "2025-09-27T18:37:11.547Z" }, + { url = "https://files.pythonhosted.org/packages/9a/a7/591f592afdc734f47db08a75793a55d7fbcc6902a723ae4cfbab61010cc5/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda", size = 23821, upload-time = "2025-09-27T18:37:12.48Z" }, + { url = "https://files.pythonhosted.org/packages/7d/33/45b24e4f44195b26521bc6f1a82197118f74df348556594bd2262bda1038/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf", size = 21606, upload-time = "2025-09-27T18:37:13.485Z" }, + { url = "https://files.pythonhosted.org/packages/ff/0e/53dfaca23a69fbfbbf17a4b64072090e70717344c52eaaaa9c5ddff1e5f0/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe", size = 23043, upload-time = "2025-09-27T18:37:14.408Z" }, + { url = "https://files.pythonhosted.org/packages/46/11/f333a06fc16236d5238bfe74daccbca41459dcd8d1fa952e8fbd5dccfb70/markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9", size = 14747, upload-time = "2025-09-27T18:37:15.36Z" }, + { url = "https://files.pythonhosted.org/packages/28/52/182836104b33b444e400b14f797212f720cbc9ed6ba34c800639d154e821/markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581", size = 15341, upload-time = "2025-09-27T18:37:16.496Z" }, + { url = "https://files.pythonhosted.org/packages/6f/18/acf23e91bd94fd7b3031558b1f013adfa21a8e407a3fdb32745538730382/markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4", size = 14073, upload-time = "2025-09-27T18:37:17.476Z" }, + { url = "https://files.pythonhosted.org/packages/3c/f0/57689aa4076e1b43b15fdfa646b04653969d50cf30c32a102762be2485da/markupsafe-3.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab", size = 11661, upload-time = "2025-09-27T18:37:18.453Z" }, + { url = "https://files.pythonhosted.org/packages/89/c3/2e67a7ca217c6912985ec766c6393b636fb0c2344443ff9d91404dc4c79f/markupsafe-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175", size = 12069, upload-time = "2025-09-27T18:37:19.332Z" }, + { url = "https://files.pythonhosted.org/packages/f0/00/be561dce4e6ca66b15276e184ce4b8aec61fe83662cce2f7d72bd3249d28/markupsafe-3.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634", size = 25670, upload-time = "2025-09-27T18:37:20.245Z" }, + { url = "https://files.pythonhosted.org/packages/50/09/c419f6f5a92e5fadde27efd190eca90f05e1261b10dbd8cbcb39cd8ea1dc/markupsafe-3.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50", size = 23598, upload-time = "2025-09-27T18:37:21.177Z" }, + { url = "https://files.pythonhosted.org/packages/22/44/a0681611106e0b2921b3033fc19bc53323e0b50bc70cffdd19f7d679bb66/markupsafe-3.0.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e", size = 23261, upload-time = "2025-09-27T18:37:22.167Z" }, + { url = "https://files.pythonhosted.org/packages/5f/57/1b0b3f100259dc9fffe780cfb60d4be71375510e435efec3d116b6436d43/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5", size = 24835, upload-time = "2025-09-27T18:37:23.296Z" }, + { url = "https://files.pythonhosted.org/packages/26/6a/4bf6d0c97c4920f1597cc14dd720705eca0bf7c787aebc6bb4d1bead5388/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523", size = 22733, upload-time = "2025-09-27T18:37:24.237Z" }, + { url = "https://files.pythonhosted.org/packages/14/c7/ca723101509b518797fedc2fdf79ba57f886b4aca8a7d31857ba3ee8281f/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc", size = 23672, upload-time = "2025-09-27T18:37:25.271Z" }, + { url = "https://files.pythonhosted.org/packages/fb/df/5bd7a48c256faecd1d36edc13133e51397e41b73bb77e1a69deab746ebac/markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", size = 14819, upload-time = "2025-09-27T18:37:26.285Z" }, + { url = "https://files.pythonhosted.org/packages/1a/8a/0402ba61a2f16038b48b39bccca271134be00c5c9f0f623208399333c448/markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", size = 15426, upload-time = "2025-09-27T18:37:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/70/bc/6f1c2f612465f5fa89b95bead1f44dcb607670fd42891d8fdcd5d039f4f4/markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", size = 14146, upload-time = "2025-09-27T18:37:28.327Z" }, +] + +[[package]] +name = "pydantic" +version = "2.13.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/84/6b/69fd5c7194b21ebde0f8637e2a4ddc766ada29d472bfa6a5ca533d79549a/pydantic-2.13.0.tar.gz", hash = "sha256:b89b575b6e670ebf6e7448c01b41b244f471edd276cd0b6fe02e7e7aca320070", size = 843468, upload-time = "2026-04-13T10:51:35.571Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/01/d7/c3a52c61f5b7be648e919005820fbac33028c6149994cd64453f49951c17/pydantic-2.13.0-py3-none-any.whl", hash = "sha256:ab0078b90da5f3e2fd2e71e3d9b457ddcb35d0350854fbda93b451e28d56baaf", size = 471872, upload-time = "2026-04-13T10:51:33.343Z" }, +] + +[[package]] +name = "pydantic-core" +version = "2.46.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6f/0a/9414cddf82eda3976b14048cc0fa8f5b5d1aecb0b22e1dcd2dbfe0e139b1/pydantic_core-2.46.0.tar.gz", hash = "sha256:82d2498c96be47b47e903e1378d1d0f770097ec56ea953322f39936a7cf34977", size = 471441, upload-time = "2026-04-13T09:06:33.813Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/d2/206c72ad47071559142a35f71efc29eb16448a4a5ae9487230ab8e4e292b/pydantic_core-2.46.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:66ccedb02c934622612448489824955838a221b3a35875458970521ef17b2f9c", size = 2117060, upload-time = "2026-04-13T09:04:47.443Z" }, + { url = "https://files.pythonhosted.org/packages/17/2c/7a53b33f91c8b77e696b1a6aa3bed609bf9374bdc0f8dcda681bc7d922b8/pydantic_core-2.46.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a44f27f4d2788ef9876ec47a43739b118c5904d74f418f53398f6ced3bbcacf2", size = 1951802, upload-time = "2026-04-13T09:05:34.591Z" }, + { url = "https://files.pythonhosted.org/packages/fc/20/90e548c1f6d38800ef11c915881525770ce270d8e5e887563ff046a08674/pydantic_core-2.46.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f26a1032bcce6ca4b4670eb3f7d8195bd0a8b8f255f1307823e217ca3cfa7c27", size = 1976621, upload-time = "2026-04-13T09:04:03.909Z" }, + { url = "https://files.pythonhosted.org/packages/20/3c/9c5810ca70b60c623488cdd80f7e9ee1a0812df81e97098b64788719860f/pydantic_core-2.46.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1b8d1412f725060527e56675904b17a2d421dddcf861eecf7c75b9dda47921a4", size = 2056721, upload-time = "2026-04-13T09:04:40.992Z" }, + { url = "https://files.pythonhosted.org/packages/1a/a3/d6e5f4cdec84278431c75540f90838c9d0a4dfe9402a8f3902073660ff28/pydantic_core-2.46.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dc3d1569edd859cabaa476cabce9eecd05049a7966af7b4a33b541bfd4ca1104", size = 2239634, upload-time = "2026-04-13T09:03:52.478Z" }, + { url = "https://files.pythonhosted.org/packages/46/42/ef58aacf330d8de6e309d62469aa1f80e945eaf665929b4037ac1bfcebc1/pydantic_core-2.46.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:38108976f2d8afaa8f5067fd1390a8c9f5cc580175407cda636e76bc76e88054", size = 2315739, upload-time = "2026-04-13T09:05:04.971Z" }, + { url = "https://files.pythonhosted.org/packages/8b/86/c63b12fafa2d86a515bfd1840b39c23a49302f02b653161bf9c3a0566c50/pydantic_core-2.46.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a5a06d8ed01dad5575056b5187e5959b336793c6047920a3441ee5b03533836", size = 2098169, upload-time = "2026-04-13T09:07:27.151Z" }, + { url = "https://files.pythonhosted.org/packages/76/19/b5b33a2f6be4755b21a20434293c4364be255f4c1a108f125d101d4cc4ee/pydantic_core-2.46.0-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:04017ace142da9ce27cafd423a480872571b5c7e80382aec22f7d715ca8eb870", size = 2170830, upload-time = "2026-04-13T09:04:39.448Z" }, + { url = "https://files.pythonhosted.org/packages/99/ae/7559f99a29b7d440012ddb4da897359304988a881efaca912fd2f655652e/pydantic_core-2.46.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2629ad992ed1b1c012e6067f5ffafd3336fcb9b54569449fabb85621f1444ed3", size = 2203901, upload-time = "2026-04-13T09:04:01.048Z" }, + { url = "https://files.pythonhosted.org/packages/dd/0e/b0ef945a39aeb4ac58da316813e1106b7fbdfbf20ac141c1c27904355ac5/pydantic_core-2.46.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3068b1e7bd986aebc88f6859f8353e72072538dcf92a7fb9cf511a0f61c5e729", size = 2191789, upload-time = "2026-04-13T09:06:39.915Z" }, + { url = "https://files.pythonhosted.org/packages/90/f4/830484e07188c1236b013995818888ab93bab8fd88aa9689b1d8fd22220d/pydantic_core-2.46.0-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:1e366916ff69ff700aa9326601634e688581bc24c5b6b4f8738d809ec7d72611", size = 2344423, upload-time = "2026-04-13T09:05:12.252Z" }, + { url = "https://files.pythonhosted.org/packages/fd/ba/e455c18cbdc333177af754e740be4fe9d1de173d65bbe534daf88da02ac0/pydantic_core-2.46.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:485a23e8f4618a1b8e23ac744180acde283fffe617f96923d25507d5cade62ec", size = 2384037, upload-time = "2026-04-13T09:06:24.503Z" }, + { url = "https://files.pythonhosted.org/packages/78/1f/b35d20d73144a41e78de0ae398e60fdd8bed91667daa1a5a92ab958551ba/pydantic_core-2.46.0-cp312-cp312-win32.whl", hash = "sha256:520940e1b702fe3b33525d0351777f25e9924f1818ca7956447dabacf2d339fd", size = 1967068, upload-time = "2026-04-13T09:05:23.374Z" }, + { url = "https://files.pythonhosted.org/packages/d1/84/4b6252e9606e8295647b848233cc4137ee0a04ebba8f0f9fb2977655b38c/pydantic_core-2.46.0-cp312-cp312-win_amd64.whl", hash = "sha256:90d2048e0339fa365e5a66aefe760ddd3b3d0a45501e088bc5bc7f4ed9ff9571", size = 2071008, upload-time = "2026-04-13T09:05:21.392Z" }, + { url = "https://files.pythonhosted.org/packages/39/95/d08eb508d4d5560ccbd226ee5971e5ef9b749aba9b413c0c4ed6e406d4f6/pydantic_core-2.46.0-cp312-cp312-win_arm64.whl", hash = "sha256:a70247649b7dffe36648e8f34be5ce8c5fa0a27ff07b071ea780c20a738c05ce", size = 2036634, upload-time = "2026-04-13T09:05:48.299Z" }, + { url = "https://files.pythonhosted.org/packages/df/05/ab3b0742bad1d51822f1af0c4232208408902bdcfc47601f3b812e09e6c2/pydantic_core-2.46.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:a05900c37264c070c683c650cbca8f83d7cbb549719e645fcd81a24592eac788", size = 2116814, upload-time = "2026-04-13T09:04:12.41Z" }, + { url = "https://files.pythonhosted.org/packages/98/08/30b43d9569d69094a0899a199711c43aa58fce6ce80f6a8f7693673eb995/pydantic_core-2.46.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8de8e482fd4f1e3f36c50c6aac46d044462615d8f12cfafc6bebeaa0909eea22", size = 1951867, upload-time = "2026-04-13T09:04:02.364Z" }, + { url = "https://files.pythonhosted.org/packages/db/a0/bf9a1ba34537c2ed3872a48195291138fdec8fe26c4009776f00d63cf0c8/pydantic_core-2.46.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c525ecf8a4cdf198327b65030a7d081867ad8e60acb01a7214fff95cf9832d47", size = 1977040, upload-time = "2026-04-13T09:06:16.088Z" }, + { url = "https://files.pythonhosted.org/packages/71/70/0ba03c20e1e118219fc18c5417b008b7e880f0e3fb38560ec4465984d471/pydantic_core-2.46.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f14581aeb12e61542ce73b9bfef2bca5439d65d9ab3efe1a4d8e346b61838f9b", size = 2055284, upload-time = "2026-04-13T09:05:25.125Z" }, + { url = "https://files.pythonhosted.org/packages/58/cf/1e320acefbde7fb7158a9e5def55e0adf9a4634636098ce28dc6b978e0d3/pydantic_core-2.46.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c108067f2f7e190d0dbd81247d789ec41f9ea50ccd9265a3a46710796ac60530", size = 2238896, upload-time = "2026-04-13T09:05:01.345Z" }, + { url = "https://files.pythonhosted.org/packages/df/f5/ea8ba209756abe9eba891bb0ef3772b4c59a894eb9ad86cd5bd0dd4e3e52/pydantic_core-2.46.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1ac10967e9a7bb1b96697374513f9a1a90a59e2fb41566b5e00ee45392beac59", size = 2314353, upload-time = "2026-04-13T09:06:07.942Z" }, + { url = "https://files.pythonhosted.org/packages/e8/f8/5885350203b72e96438eee7f94de0d8f0442f4627237ca8ef75de34db1cd/pydantic_core-2.46.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7897078fe8a13b73623c0955dfb2b3d2c9acb7177aac25144758c9e5a5265aaa", size = 2098522, upload-time = "2026-04-13T09:04:23.239Z" }, + { url = "https://files.pythonhosted.org/packages/bf/88/5930b0e828e371db5a556dd3189565417ddc3d8316bb001058168aadcf5f/pydantic_core-2.46.0-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:e69ce405510a419a082a78faed65bb4249cfb51232293cc675645c12f7379bf7", size = 2168757, upload-time = "2026-04-13T09:07:12.46Z" }, + { url = "https://files.pythonhosted.org/packages/da/75/63d563d3035a0548e721c38b5b69fd5626fdd51da0f09ff4467503915b82/pydantic_core-2.46.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fd28d13eea0d8cf351dc1fe274b5070cc8e1cca2644381dee5f99de629e77cf3", size = 2202518, upload-time = "2026-04-13T09:05:44.418Z" }, + { url = "https://files.pythonhosted.org/packages/a7/53/1958eacbfddc41aadf5ae86dd85041bf054b675f34a2fa76385935f96070/pydantic_core-2.46.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:ee1547a6b8243e73dd10f585555e5a263395e55ce6dea618a078570a1e889aef", size = 2190148, upload-time = "2026-04-13T09:06:56.151Z" }, + { url = "https://files.pythonhosted.org/packages/c7/17/098cc6d3595e4623186f2bc6604a6195eb182e126702a90517236391e9ce/pydantic_core-2.46.0-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:c3dc68dcf62db22a18ddfc3ad4960038f72b75908edc48ae014d7ac8b391d57a", size = 2342925, upload-time = "2026-04-13T09:04:17.286Z" }, + { url = "https://files.pythonhosted.org/packages/71/a7/abdb924620b1ac535c690b36ad5b8871f376104090f8842c08625cecf1d3/pydantic_core-2.46.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:004a2081c881abfcc6854a4623da6a09090a0d7c1398a6ae7133ca1256cee70b", size = 2383167, upload-time = "2026-04-13T09:04:52.643Z" }, + { url = "https://files.pythonhosted.org/packages/d7/c9/2ddd10f50e4b7350d2574629a0f53d8d4eb6573f9c19a6b43e6b1487a31d/pydantic_core-2.46.0-cp313-cp313-win32.whl", hash = "sha256:59d24ec8d5eaabad93097525a69d0f00f2667cb353eb6cda578b1cfff203ceef", size = 1965660, upload-time = "2026-04-13T09:06:05.877Z" }, + { url = "https://files.pythonhosted.org/packages/b5/e7/1efc38ed6f2680c032bcefa0e3ebd496a8c77e92dfdb86b07d0f2fc632b1/pydantic_core-2.46.0-cp313-cp313-win_amd64.whl", hash = "sha256:71186dad5ac325c64d68fe0e654e15fd79802e7cc42bc6f0ff822d5ad8b1ab25", size = 2069563, upload-time = "2026-04-13T09:07:14.738Z" }, + { url = "https://files.pythonhosted.org/packages/c3/1e/a325b4989e742bf7e72ed35fa124bc611fd76539c9f8cd2a9a7854473533/pydantic_core-2.46.0-cp313-cp313-win_arm64.whl", hash = "sha256:8e4503f3213f723842c9a3b53955c88a9cfbd0b288cbd1c1ae933aebeec4a1b4", size = 2034966, upload-time = "2026-04-13T09:04:21.629Z" }, + { url = "https://files.pythonhosted.org/packages/36/3b/914891d384cdbf9a6f464eb13713baa22ea1e453d4da80fb7da522079370/pydantic_core-2.46.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:4fc801c290342350ffc82d77872054a934b2e24163727263362170c1db5416ca", size = 2113349, upload-time = "2026-04-13T09:04:59.407Z" }, + { url = "https://files.pythonhosted.org/packages/35/95/3a0c6f65e231709fb3463e32943c69d10285cb50203a2130a4732053a06d/pydantic_core-2.46.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0a36f2cc88170cc177930afcc633a8c15907ea68b59ac16bd180c2999d714940", size = 1949170, upload-time = "2026-04-13T09:06:09.935Z" }, + { url = "https://files.pythonhosted.org/packages/d1/63/d845c36a608469fe7bee226edeff0984c33dbfe7aecd755b0e7ab5a275c4/pydantic_core-2.46.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2a3912e0c568a1f99d4d6d3e41def40179d61424c0ca1c8c87c4877d7f6fd7fb", size = 1977914, upload-time = "2026-04-13T09:04:56.16Z" }, + { url = "https://files.pythonhosted.org/packages/08/6f/f2e7a7f85931fb31671f5378d1c7fc70606e4b36d59b1b48e1bd1ef5d916/pydantic_core-2.46.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3534c3415ed1a19ab23096b628916a827f7858ec8db49ad5d7d1e44dc13c0d7b", size = 2050538, upload-time = "2026-04-13T09:05:06.789Z" }, + { url = "https://files.pythonhosted.org/packages/8c/97/f4aa7181dd9a16dd9059a99fc48fdab0c2aab68307283a5c04cf56de68c4/pydantic_core-2.46.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:21067396fc285609323a4db2f63a87570044abe0acddfcca8b135fc7948e3db7", size = 2236294, upload-time = "2026-04-13T09:07:03.2Z" }, + { url = "https://files.pythonhosted.org/packages/24/c1/6a5042fc32765c87101b500f394702890af04239c318b6002cfd627b710d/pydantic_core-2.46.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2afd85b7be186e2fe7cdbb09a3d964bcc2042f65bbcc64ad800b3c7915032655", size = 2312954, upload-time = "2026-04-13T09:06:11.919Z" }, + { url = "https://files.pythonhosted.org/packages/cb/e4/566101a561492ce8454f0844ca29c3b675a6b3a7b3ff577db85ed05c8c50/pydantic_core-2.46.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:67e2c2e171b78db8154da602de72ffdc473c6ee51de8a9d80c0f1cd4051abfc7", size = 2102533, upload-time = "2026-04-13T09:06:58.664Z" }, + { url = "https://files.pythonhosted.org/packages/3e/ac/adc11ee1646a5c4dd9abb09a00e7909e6dc25beddc0b1310ca734bb9b48e/pydantic_core-2.46.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:c16ae1f3170267b1a37e16dba5c297bdf60c8b5657b147909ca8774ce7366644", size = 2169447, upload-time = "2026-04-13T09:04:11.143Z" }, + { url = "https://files.pythonhosted.org/packages/26/73/408e686b45b82d28ac19e8229e07282254dbee6a5d24c5c7cf3cf3716613/pydantic_core-2.46.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:133b69e1c1ba34d3702eed73f19f7f966928f9aa16663b55c2ebce0893cca42e", size = 2200672, upload-time = "2026-04-13T09:03:54.056Z" }, + { url = "https://files.pythonhosted.org/packages/0a/3b/807d5b035ec891b57b9079ce881f48263936c37bd0d154a056e7fd152afb/pydantic_core-2.46.0-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:15ed8e5bde505133d96b41702f31f06829c46b05488211a5b1c7877e11de5eb5", size = 2188293, upload-time = "2026-04-13T09:07:07.614Z" }, + { url = "https://files.pythonhosted.org/packages/f1/ed/719b307516285099d1196c52769fdbe676fd677da007b9c349ae70b7226d/pydantic_core-2.46.0-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:8cfc29a1c66a7f0fcb36262e92f353dd0b9c4061d558fceb022e698a801cb8ae", size = 2335023, upload-time = "2026-04-13T09:04:05.176Z" }, + { url = "https://files.pythonhosted.org/packages/8d/90/8718e4ae98c4e8a7325afdc079be82be1e131d7a47cb6c098844a9531ffe/pydantic_core-2.46.0-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:e1155708540f13845bf68d5ac511a55c76cfe2e057ed12b4bf3adac1581fc5c2", size = 2377155, upload-time = "2026-04-13T09:06:18.081Z" }, + { url = "https://files.pythonhosted.org/packages/dd/dc/7172789283b963f81da2fc92b186e22de55687019079f71c4d570822502b/pydantic_core-2.46.0-cp314-cp314-win32.whl", hash = "sha256:de5635a48df6b2eef161d10ea1bc2626153197333662ba4cd700ee7ec1aba7f5", size = 1963078, upload-time = "2026-04-13T09:05:30.615Z" }, + { url = "https://files.pythonhosted.org/packages/e0/69/03a7ea4b6264def3a44eabf577528bcec2f49468c5698b2044dea54dc07e/pydantic_core-2.46.0-cp314-cp314-win_amd64.whl", hash = "sha256:f07a5af60c5e7cf53dd1ff734228bd72d0dc9938e64a75b5bb308ca350d9681e", size = 2068439, upload-time = "2026-04-13T09:04:57.729Z" }, + { url = "https://files.pythonhosted.org/packages/f5/eb/1c3afcfdee2ab6634b802ab0a0f1966df4c8b630028ec56a1cb0a710dc58/pydantic_core-2.46.0-cp314-cp314-win_arm64.whl", hash = "sha256:e7a77eca3c7d5108ff509db20aae6f80d47c7ed7516d8b96c387aacc42f3ce0f", size = 2026470, upload-time = "2026-04-13T09:05:08.654Z" }, + { url = "https://files.pythonhosted.org/packages/5c/30/1177dde61b200785c4739665e3aa03a9d4b2c25d2d0408b07d585e633965/pydantic_core-2.46.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:5e7cdd4398bee1aaeafe049ac366b0f887451d9ae418fd8785219c13fea2f928", size = 2107447, upload-time = "2026-04-13T09:05:46.314Z" }, + { url = "https://files.pythonhosted.org/packages/b1/60/4e0f61f99bdabbbc309d364a2791e1ba31e778a4935bc43391a7bdec0744/pydantic_core-2.46.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5c2c92d82808e27cef3f7ab3ed63d657d0c755e0dbe5b8a58342e37bdf09bd2e", size = 1926927, upload-time = "2026-04-13T09:06:20.371Z" }, + { url = "https://files.pythonhosted.org/packages/1d/d0/67f89a8269152c1d6eaa81f04e75a507372ebd8ca7382855a065222caa80/pydantic_core-2.46.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bab80af91cd7014b45d1089303b5f844a9d91d7da60eabf3d5f9694b32a6655", size = 1966613, upload-time = "2026-04-13T09:07:05.389Z" }, + { url = "https://files.pythonhosted.org/packages/cd/07/8dfdc3edc78f29a80fb31f366c50203ec904cff6a4c923599bf50ac0d0ff/pydantic_core-2.46.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1e49ffdb714bc990f00b39d1ad1d683033875b5af15582f60c1f34ad3eeccfaa", size = 2032902, upload-time = "2026-04-13T09:06:42.47Z" }, + { url = "https://files.pythonhosted.org/packages/b0/2a/111c5e8fe24f99c46bcad7d3a82a8f6dbc738066e2c72c04c71f827d8c78/pydantic_core-2.46.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ca877240e8dbdeef3a66f751dc41e5a74893767d510c22a22fc5c0199844f0ce", size = 2244456, upload-time = "2026-04-13T09:05:36.484Z" }, + { url = "https://files.pythonhosted.org/packages/6b/7c/cfc5d11c15a63ece26e148572c77cfbb2c7f08d315a7b63ef0fe0711d753/pydantic_core-2.46.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87e6843f89ecd2f596d7294e33196c61343186255b9880c4f1b725fde8b0e20d", size = 2294535, upload-time = "2026-04-13T09:06:01.689Z" }, + { url = "https://files.pythonhosted.org/packages/c4/2c/f0d744e3dab7bd026a3f4670a97a295157cff923a2666d30a15a70a7e3d0/pydantic_core-2.46.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e20bc5add1dd9bc3b9a3600d40632e679376569098345500799a6ad7c5d46c72", size = 2104621, upload-time = "2026-04-13T09:04:34.388Z" }, + { url = "https://files.pythonhosted.org/packages/a7/64/e7cc4698dc024264d214b51d5a47a2404221b12060dd537d76f831b2120a/pydantic_core-2.46.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:ee6ff79a5f0289d64a9d6696a3ce1f98f925b803dd538335a118231e26d6d827", size = 2130718, upload-time = "2026-04-13T09:04:26.23Z" }, + { url = "https://files.pythonhosted.org/packages/0b/a8/224e655fec21f7d4441438ad2ecaccb33b5a3876ce7bb2098c74a49efc14/pydantic_core-2.46.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:52d35cfb58c26323101c7065508d7bb69bb56338cda9ea47a7b32be581af055d", size = 2180738, upload-time = "2026-04-13T09:05:50.253Z" }, + { url = "https://files.pythonhosted.org/packages/32/7b/b3025618ed4c4e4cbaa9882731c19625db6669896b621760ea95bc1125ef/pydantic_core-2.46.0-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:d14cc5a6f260fa78e124061eebc5769af6534fc837e9a62a47f09a2c341fa4ea", size = 2171222, upload-time = "2026-04-13T09:07:29.929Z" }, + { url = "https://files.pythonhosted.org/packages/7b/e3/68170aa1d891920af09c1f2f34df61dc5ff3a746400027155523e3400e89/pydantic_core-2.46.0-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:4f7ff859d663b6635f6307a10803d07f0d09487e16c3d36b1744af51dbf948b2", size = 2320040, upload-time = "2026-04-13T09:06:35.732Z" }, + { url = "https://files.pythonhosted.org/packages/67/1b/5e65807001b84972476300c1f49aea2b4971b7e9fffb5c2654877dadd274/pydantic_core-2.46.0-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:8ef749be6ed0d69dba31902aaa8255a9bb269ae50c93888c4df242d8bb7acd9e", size = 2377062, upload-time = "2026-04-13T09:07:39.945Z" }, + { url = "https://files.pythonhosted.org/packages/75/03/48caa9dd5f28f7662bd52bff454d9a451f6b7e5e4af95e289e5e170749c9/pydantic_core-2.46.0-cp314-cp314t-win32.whl", hash = "sha256:d93ca72870133f86360e4bb0c78cd4e6ba2a0f9f3738a6486909ffc031463b32", size = 1951028, upload-time = "2026-04-13T09:04:20.224Z" }, + { url = "https://files.pythonhosted.org/packages/87/ed/e97ff55fe28c0e6e3cba641d622b15e071370b70e5f07c496b07b65db7c9/pydantic_core-2.46.0-cp314-cp314t-win_amd64.whl", hash = "sha256:6ebb2668afd657e2127cb40f2ceb627dd78e74e9dfde14d9bf6cdd532a29ff59", size = 2048519, upload-time = "2026-04-13T09:05:10.464Z" }, + { url = "https://files.pythonhosted.org/packages/b6/51/e0db8267a287994546925f252e329eeae4121b1e77e76353418da5a3adf0/pydantic_core-2.46.0-cp314-cp314t-win_arm64.whl", hash = "sha256:4864f5bbb7993845baf9209bae1669a8a76769296a018cb569ebda9dcb4241f5", size = 2026791, upload-time = "2026-04-13T09:04:37.724Z" }, + { url = "https://files.pythonhosted.org/packages/74/0c/106ed5cc50393d90523f09adcc50d05e42e748eb107dc06aea971137f02d/pydantic_core-2.46.0-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:bc0e2fefe384152d7da85b5c2fe8ce2bf24752f68a58e3f3ea42e28a29dfdeb2", size = 2104968, upload-time = "2026-04-13T09:06:26.967Z" }, + { url = "https://files.pythonhosted.org/packages/f5/71/b494cef3165e3413ee9bbbb5a9eedc9af0ea7b88d8638beef6c2061b110e/pydantic_core-2.46.0-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:a2ab0e785548be1b4362a62c4004f9217598b7ee465f1f420fc2123e2a5b5b02", size = 1940442, upload-time = "2026-04-13T09:06:29.332Z" }, + { url = "https://files.pythonhosted.org/packages/7e/3e/a4d578c8216c443e26a1124f8c1e07c0654264ce5651143d3883d85ff140/pydantic_core-2.46.0-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:16d45aecb18b8cba1c68eeb17c2bb2d38627ceed04c5b30b882fc9134e01f187", size = 1999672, upload-time = "2026-04-13T09:04:42.798Z" }, + { url = "https://files.pythonhosted.org/packages/cd/c1/9114560468685525a21770138382fd0cb849aaf351ff2c7b97f760d121e0/pydantic_core-2.46.0-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5078f6c377b002428e984259ac327ef8902aacae6c14b7de740dd4869a491501", size = 2154533, upload-time = "2026-04-13T09:04:50.868Z" }, +] + +[[package]] +name = "starlette" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/81/69/17425771797c36cded50b7fe44e850315d039f28b15901ab44839e70b593/starlette-1.0.0.tar.gz", hash = "sha256:6a4beaf1f81bb472fd19ea9b918b50dc3a77a6f2e190a12954b25e6ed5eea149", size = 2655289, upload-time = "2026-03-22T18:29:46.779Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl", hash = "sha256:d3ec55e0bb321692d275455ddfd3df75fff145d009685eb40dc91fc66b03d38b", size = 72651, upload-time = "2026-03-22T18:29:45.111Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, +] + +[[package]] +name = "typing-inspection" +version = "0.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949, upload-time = "2025-10-01T02:14:41.687Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload-time = "2025-10-01T02:14:40.154Z" }, +] diff --git a/Semaine_08/mediawatch/.python-version b/Semaine_08/mediawatch/.python-version new file mode 100644 index 0000000..e4fba21 --- /dev/null +++ b/Semaine_08/mediawatch/.python-version @@ -0,0 +1 @@ +3.12 diff --git a/Semaine_08/mediawatch/17-04-2026_14-32-21-.png b/Semaine_08/mediawatch/17-04-2026_14-32-21-.png new file mode 100644 index 0000000000000000000000000000000000000000..c7087a1123a2817164e26a3ed7b96e922c7076fb GIT binary patch literal 30925 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
kt-FUI&+!& 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 IWf%Vc0I%FdKmY&$ literal 0 HcmV?d00001 diff --git a/Semaine_08/mediawatch/README.md b/Semaine_08/mediawatch/README.md new file mode 100644 index 0000000..3c79744 --- /dev/null +++ b/Semaine_08/mediawatch/README.md @@ -0,0 +1,2 @@ +uv run pytest .\tests\test_run_watch_cycle.py +uvicorn main:app --reload --host localhost --port 8080 \ No newline at end of file diff --git a/Semaine_08/mediawatch/Screenshot_2026-04-17_at_14.12.19.png b/Semaine_08/mediawatch/Screenshot_2026-04-17_at_14.12.19.png new file mode 100644 index 0000000000000000000000000000000000000000..f5c7e4b5e2ab85aada03764370714f5f91a1e9a0 GIT binary patch literal 194778 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 MeADQ^J-agJ&dheILAHLFc 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«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ŭ#y-|F^JXI=6=m}mH?im>6Ea?ReOH%; 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 V^u6h^$0XpRp{jlE*;%uY{{SJS$M*mL literal 0 HcmV?d00001 diff --git a/Semaine_08/mediawatch/adapters/__init__.py b/Semaine_08/mediawatch/adapters/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Semaine_08/mediawatch/adapters/inbound/__init__.py b/Semaine_08/mediawatch/adapters/inbound/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Semaine_08/mediawatch/adapters/inbound/watch_controller.py b/Semaine_08/mediawatch/adapters/inbound/watch_controller.py new file mode 100644 index 0000000..41b4634 --- /dev/null +++ b/Semaine_08/mediawatch/adapters/inbound/watch_controller.py @@ -0,0 +1,24 @@ +from fastapi import FastAPI +from application.usecases.run_watch_cycle import RunWatchCycleUsecase + +from adapters.outbound.rss_feed_adapter import RssFeedAdapter +from adapters.outbound.cli_notifier import CliNotifierAdapter +from domain.matcher import MatchingService + +app = FastAPI() + +rss_adapter = RssFeedAdapter("https://www.lemonde.fr/rss/une.xml") +notifier = CliNotifierAdapter() +matcher = MatchingService() +usecase = RunWatchCycleUsecase(rss_adapter, notifier, matcher) + +@app.get("/rss/{keyword}") +def run_watch_by_http(keyword: str): + result = usecase.execute(keywords=[keyword]) + + return { + "status": "success", + "keyword_searched": keyword, + "articles_processed": result.processed, + "alerts_sent": result.alerts_sent + } \ No newline at end of file diff --git a/Semaine_08/mediawatch/adapters/outbound/__init__.py b/Semaine_08/mediawatch/adapters/outbound/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Semaine_08/mediawatch/adapters/outbound/cli_notifier.py b/Semaine_08/mediawatch/adapters/outbound/cli_notifier.py new file mode 100644 index 0000000..da9475a --- /dev/null +++ b/Semaine_08/mediawatch/adapters/outbound/cli_notifier.py @@ -0,0 +1,10 @@ +from domain.entities import Alert +from ports.outbound.notifier_protocol import Notifier + +class CliNotifierAdapter(Notifier): + def send_alert(self, alert: Alert) -> None: + print("-" * 30) + print(f"Mots-clefs : {alert.matched_keywords}") + print(f"Titre : {alert.article.title}") + print(f"Lien : {alert.article.url}") + print("-" * 30) \ No newline at end of file diff --git a/Semaine_08/mediawatch/adapters/outbound/rss_feed_adapter.py b/Semaine_08/mediawatch/adapters/outbound/rss_feed_adapter.py new file mode 100644 index 0000000..a93516f --- /dev/null +++ b/Semaine_08/mediawatch/adapters/outbound/rss_feed_adapter.py @@ -0,0 +1,25 @@ +import feedparser +from datetime import datetime +from time import mktime +from domain.entities import Article + +class RssFeedAdapter(): + def __init__(self, feed_url: str): + self.feed_url = feed_url + + def fetch_articles(self) -> list[Article]: + # On consomme le flux externe + feed = feedparser.parse(self.feed_url) + articles = [] + + for entry in feed.entries: + # On convertit le format spécifique RSS vers notre Entité + published = datetime.fromtimestamp(mktime(entry.published_parsed)) #type: ignore + + articles.append(Article( + title=entry.title, + url=entry.link, + published_at=published, + source=feed.feed.title + )) + return articles \ No newline at end of file diff --git a/Semaine_08/mediawatch/application/__init__.py b/Semaine_08/mediawatch/application/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Semaine_08/mediawatch/application/usecases/__init__.py b/Semaine_08/mediawatch/application/usecases/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Semaine_08/mediawatch/application/usecases/run_watch_cycle.py b/Semaine_08/mediawatch/application/usecases/run_watch_cycle.py new file mode 100644 index 0000000..51ff96c --- /dev/null +++ b/Semaine_08/mediawatch/application/usecases/run_watch_cycle.py @@ -0,0 +1,41 @@ +from dataclasses import dataclass + +from domain.matcher import MatchingService +from domain.entities import Alert +from ports.outbound.article_source_protocol import ArticleSource +from ports.outbound.notifier_protocol import Notifier + +@dataclass +class WatchCycleResult: + processed: int + alerts_sent: int + +class RunWatchCycleUsecase: + def __init__( + self, + source: ArticleSource, + notifier: Notifier, + matcher: MatchingService + ): + self.source = source + self.notifier = notifier + self.matcher = matcher + + def execute(self, keywords: list[str]): + articles = self.source.fetch_articles() + alerts_sent = 0 + + for article in articles: + matched = self.matcher.find_match(article, keywords) + if matched: + alert = Alert( + article= article, + matched_keywords=matched + ) + self.notifier.send_alert(alert) + alerts_sent += 1 + + return WatchCycleResult( + processed=len(articles), + alerts_sent=alerts_sent + ) \ No newline at end of file diff --git a/Semaine_08/mediawatch/domain/__init__.py b/Semaine_08/mediawatch/domain/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Semaine_08/mediawatch/domain/entities.py b/Semaine_08/mediawatch/domain/entities.py new file mode 100644 index 0000000..9b6944b --- /dev/null +++ b/Semaine_08/mediawatch/domain/entities.py @@ -0,0 +1,14 @@ +from dataclasses import dataclass +from datetime import datetime + +@dataclass +class Article: + title: str + url: str + published_at: datetime + source: str + +@dataclass +class Alert: + article: Article + matched_keywords: list[str] \ No newline at end of file diff --git a/Semaine_08/mediawatch/domain/matcher.py b/Semaine_08/mediawatch/domain/matcher.py new file mode 100644 index 0000000..df360f1 --- /dev/null +++ b/Semaine_08/mediawatch/domain/matcher.py @@ -0,0 +1,6 @@ +from domain.entities import Article + +class MatchingService: + def find_match(self, article: Article, keywords: list[str]) -> list[str]: + title_lower = article.title.lower() + return [kw for kw in keywords if kw.lower() in title_lower] \ No newline at end of file diff --git a/Semaine_08/mediawatch/main.py b/Semaine_08/mediawatch/main.py new file mode 100644 index 0000000..d9f95b1 --- /dev/null +++ b/Semaine_08/mediawatch/main.py @@ -0,0 +1 @@ +from adapters.inbound.watch_controller import app \ No newline at end of file diff --git a/Semaine_08/mediawatch/ports/__init__.py b/Semaine_08/mediawatch/ports/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Semaine_08/mediawatch/ports/inbound/__init__.py b/Semaine_08/mediawatch/ports/inbound/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Semaine_08/mediawatch/ports/inbound/usecase_protocol.py b/Semaine_08/mediawatch/ports/inbound/usecase_protocol.py new file mode 100644 index 0000000..3a838f8 --- /dev/null +++ b/Semaine_08/mediawatch/ports/inbound/usecase_protocol.py @@ -0,0 +1,5 @@ +from typing import Any, Protocol + +class Usecase(Protocol): + def execute(self, *args, **kwargs) -> Any: + ... \ No newline at end of file diff --git a/Semaine_08/mediawatch/ports/outbound/__init__.py b/Semaine_08/mediawatch/ports/outbound/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Semaine_08/mediawatch/ports/outbound/article_source_protocol.py b/Semaine_08/mediawatch/ports/outbound/article_source_protocol.py new file mode 100644 index 0000000..fae0404 --- /dev/null +++ b/Semaine_08/mediawatch/ports/outbound/article_source_protocol.py @@ -0,0 +1,7 @@ +from typing import Protocol + +from domain.entities import Article + +class ArticleSource(Protocol): + def fetch_articles(self) -> list[Article]: + ... \ No newline at end of file diff --git a/Semaine_08/mediawatch/ports/outbound/notifier_protocol.py b/Semaine_08/mediawatch/ports/outbound/notifier_protocol.py new file mode 100644 index 0000000..214ddbf --- /dev/null +++ b/Semaine_08/mediawatch/ports/outbound/notifier_protocol.py @@ -0,0 +1,7 @@ +from typing import Protocol + +from domain.entities import Alert + +class Notifier(Protocol): + def send_alert(self, alert: Alert) -> None: + ... \ No newline at end of file diff --git a/Semaine_08/mediawatch/pyproject.toml b/Semaine_08/mediawatch/pyproject.toml new file mode 100644 index 0000000..aee2089 --- /dev/null +++ b/Semaine_08/mediawatch/pyproject.toml @@ -0,0 +1,16 @@ +[project] +name = "mediawatch" +version = "0.1.0" +description = "Add your description here" +readme = "README.md" +requires-python = ">=3.12" +dependencies = [ + "fastapi>=0.136.0", + "feedparser>=6.0.12", + "pytest>=9.0.3", + "python-dotenv>=1.2.2", + "requests>=2.33.1", + "uvicorn>=0.44.0", +] +[tool.pytest.ini_options] +pythonpath = ["."] diff --git a/Semaine_08/mediawatch/requests.http b/Semaine_08/mediawatch/requests.http new file mode 100644 index 0000000..b81311f --- /dev/null +++ b/Semaine_08/mediawatch/requests.http @@ -0,0 +1,14 @@ +### Get RRS Python +GET http://localhost:8080/rss/python + +### Get RRS Space + +GET http://localhost:8080/rss/space + +### Get RRS Iran + +GET http://localhost:8080/rss/iran + +### Get RRS Macron + +GET http://localhost:8080/rss/macron \ No newline at end of file diff --git a/Semaine_08/mediawatch/test_1.py b/Semaine_08/mediawatch/test_1.py new file mode 100644 index 0000000..b012e8a --- /dev/null +++ b/Semaine_08/mediawatch/test_1.py @@ -0,0 +1,24 @@ +import feedparser, requests + +# L'architecture vient couper le couplage FORT + +RSS_URL = "https://www.nasa.gov/rss/dyn/breaking_news.rss" +SLACK_WEBHOOK = "https://hooks.slack.com/services/your/webhook/url" +KEYWORDS = ["NASA", "space", "launch"] + +def run(): + feed = feedparser.parse(RSS_URL) + for entry in feed.entries: + title = entry.title.lower() + matched_keywords = [kw for kw in KEYWORDS if kw.lower() in title] + if matched_keywords: + message = ( + f"**New NASA news**: {entry.title}\n" + f"Link: {entry.link}" + ) + + requests.post(SLACK_WEBHOOK, json={"text": message}) + print(f"Posted to Slack: {entry.title}") + +if __name__ == "__main__": + run() \ No newline at end of file diff --git a/Semaine_08/mediawatch/test_2.py b/Semaine_08/mediawatch/test_2.py new file mode 100644 index 0000000..062b8ea --- /dev/null +++ b/Semaine_08/mediawatch/test_2.py @@ -0,0 +1,28 @@ +""" +Le « duck typing » est un style de programmation qui met l'accent sur le comportement d'un objet plutôt que sur son type spécifique. Ce nom tire son origine de l'expression « Si ça ressemble à un canard et que ça cancane comme un canard, alors c'est un canard ». Dans le « duck typing », l'adéquation d'un objet à un contexte particulier est déterminée par la présence de certaines méthodes et propriétés, plutôt que par le type réel de l'objet. +""" + +from abc import ABC, abstractmethod + +def send_alert(notifier, message): + return notifier.send(message) + +""" +Les classes de base abstraites (ABC) constituent un moyen de définir des interfaces en Python. Elles permettent de créer un modèle pour les classes qui doivent implémenter certaines méthodes. Cependant, l'utilisation des ABC peut entraîner un couplage étroit entre l'interface et l'implémentation, ce qui va à l'encontre des principes du duck typing. Dans le duck typing, on s'intéresse avant tout à la capacité d'un objet à effectuer une action donnée (comme envoyer un message), plutôt qu'à savoir s'il s'agit d'une instance d'une classe spécifique ou s'il implémente une interface spécifique. +""" + +class Notifier(ABC): + @abstractmethod + def send(self, message: str) -> str: + ... + +""" +Les méthodes abstraites sont des méthodes déclarées dans une classe de base abstraite mais qui ne disposent pas d'implémentation. Elles servent de contrat que les sous-classes doivent respecter. Cependant, le recours aux méthodes abstraites peut entraîner un couplage étroit entre l'interface et l'implémentation, ce qui va à l'encontre des principes du duck typing. Dans le duck typing, ce qui importe, c'est de savoir si un objet est capable d'effectuer une action donnée (comme envoyer un message), plutôt que de savoir s'il s'agit d'une instance d'une classe spécifique ou s'il implémente une interface spécifique. +""" + +class SlackNotifier(Notifier): + def send(self, message: str) -> str: + return f"Sent to Slack: {message}" + +slack_notifier = SlackNotifier() +print(send_alert(slack_notifier, "This is a test alert!")) \ No newline at end of file diff --git a/Semaine_08/mediawatch/test_3.py b/Semaine_08/mediawatch/test_3.py new file mode 100644 index 0000000..5cb0a49 --- /dev/null +++ b/Semaine_08/mediawatch/test_3.py @@ -0,0 +1,22 @@ +from typing import Protocol + +class Notifier(Protocol): + def send(self, message: str) -> str: + ... + +class SlackNotifier: + def send(self, message: str) -> str: + return f"Sent to Slack: {message}" + +class EmailNotifier: + def send(self, message: str) -> str: + return f"Sent via Email: {message}" + +def send_alert(notifier: Notifier, message: str) -> str: + return notifier.send(message) + +slack_notifier = SlackNotifier() +email_notifier = EmailNotifier() + +print(send_alert(slack_notifier, "This is a test alert for Slack!")) +print(send_alert(email_notifier, "This is a test alert for Email!")) \ No newline at end of file diff --git a/Semaine_08/mediawatch/tests/__init__.py b/Semaine_08/mediawatch/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Semaine_08/mediawatch/tests/fake_article_source.py b/Semaine_08/mediawatch/tests/fake_article_source.py new file mode 100644 index 0000000..4c1ba33 --- /dev/null +++ b/Semaine_08/mediawatch/tests/fake_article_source.py @@ -0,0 +1,8 @@ +from domain.entities import Article + +class FakeArticleSource: + def __init__(self, articles: list[Article]): + self.articles = articles + + def fetch_articles(self) -> list[Article]: + return self.articles \ No newline at end of file diff --git a/Semaine_08/mediawatch/tests/fake_notifier.py b/Semaine_08/mediawatch/tests/fake_notifier.py new file mode 100644 index 0000000..652ee96 --- /dev/null +++ b/Semaine_08/mediawatch/tests/fake_notifier.py @@ -0,0 +1,8 @@ +from domain.entities import Alert + +class FakeNotifier: + def __init__(self): + self.alerts_sent: list[Alert] = [] + + def send_alert(self, alert: Alert): + self.alerts_sent.append(alert) \ No newline at end of file diff --git a/Semaine_08/mediawatch/tests/test_run_watch_cycle.py b/Semaine_08/mediawatch/tests/test_run_watch_cycle.py new file mode 100644 index 0000000..031d016 --- /dev/null +++ b/Semaine_08/mediawatch/tests/test_run_watch_cycle.py @@ -0,0 +1,73 @@ +from datetime import datetime + +from application.usecases.run_watch_cycle import RunWatchCycleUsecase + +from domain.entities import Article +from domain.matcher import MatchingService + +from tests.fake_article_source import FakeArticleSource +from tests.fake_notifier import FakeNotifier + +# Les Fixtures sont des objets ou des fonctions qui fournissent un contexte pour les tests. + +def make_article(title: str) -> Article: + return Article( + title=title, + url="http://example.com/article", + published_at= datetime(2024, 6, 1, 12, 0, 0), + source="Example News" + ) + +def make_usecase(articles: list[Article]) -> tuple[RunWatchCycleUsecase, FakeNotifier]: + source = FakeArticleSource(articles) + notifier = FakeNotifier() + service = MatchingService() + + usecase = RunWatchCycleUsecase( + source=source, + notifier=notifier, + matcher=service + ) + return usecase, notifier + +def test_article_matching_keyword_triggers_alert(): + usecase, notifier = make_usecase([ + make_article("Breaking: New Python Version Released") + ]) + result = usecase.execute(keywords=["python"]) + + assert result.alerts_sent == 1 + assert result.processed == 1 + assert "python" in notifier.alerts_sent[0].matched_keywords + +def test_article_without_keyword_triggers_no_alert(): + usecase, notifier = make_usecase([ + make_article("Sports Update: Local Team Wins Championship") + ]) + result = usecase.execute(keywords=["Python"]) + + assert result.alerts_sent == 0 + assert result.processed == 1 + assert len(notifier.alerts_sent) == 0 + +def test_matching_is_case_insensitive(): + usecase, _ = make_usecase([ + make_article("Breaking: New PYTHON Version Released") + ]) + result = usecase.execute(keywords=["python"]) + + assert result.alerts_sent == 1 + +def test_only_matching_articles_trigger_alerts(): + articles = [ + make_article("Python 3.13 : les nouveautés"), + make_article("Recette de brioche au beurre"), + make_article("Architecture hexagonale en Python"), + make_article("Les chats dorment 16h par jour"), + ] + use_case, notifier = make_usecase(articles) + + result = use_case.execute(keywords=["python"]) + + assert result.processed == 4 + assert result.alerts_sent == 2 \ No newline at end of file diff --git a/Semaine_08/mediawatch/uv.lock b/Semaine_08/mediawatch/uv.lock new file mode 100644 index 0000000..0a43151 --- /dev/null +++ b/Semaine_08/mediawatch/uv.lock @@ -0,0 +1,434 @@ +version = 1 +revision = 3 +requires-python = ">=3.12" + +[[package]] +name = "annotated-doc" +version = "0.0.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/57/ba/046ceea27344560984e26a590f90bc7f4a75b06701f653222458922b558c/annotated_doc-0.0.4.tar.gz", hash = "sha256:fbcda96e87e9c92ad167c2e53839e57503ecfda18804ea28102353485033faa4", size = 7288, upload-time = "2025-11-10T22:07:42.062Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/d3/26bf1008eb3d2daa8ef4cacc7f3bfdc11818d111f7e2d0201bc6e3b49d45/annotated_doc-0.0.4-py3-none-any.whl", hash = "sha256:571ac1dc6991c450b25a9c2d84a3705e2ae7a53467b5d111c24fa8baabbed320", size = 5303, upload-time = "2025-11-10T22:07:40.673Z" }, +] + +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload-time = "2024-05-20T21:33:25.928Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" }, +] + +[[package]] +name = "anyio" +version = "4.13.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/14/2c5dd9f512b66549ae92767a9c7b330ae88e1932ca57876909410251fe13/anyio-4.13.0.tar.gz", hash = "sha256:334b70e641fd2221c1505b3890c69882fe4a2df910cba14d97019b90b24439dc", size = 231622, upload-time = "2026-03-24T12:59:09.671Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/da/42/e921fccf5015463e32a3cf6ee7f980a6ed0f395ceeaa45060b61d86486c2/anyio-4.13.0-py3-none-any.whl", hash = "sha256:08b310f9e24a9594186fd75b4f73f4a4152069e3853f1ed8bfbf58369f4ad708", size = 114353, upload-time = "2026-03-24T12:59:08.246Z" }, +] + +[[package]] +name = "certifi" +version = "2026.2.25" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/af/2d/7bf41579a8986e348fa033a31cdd0e4121114f6bce2457e8876010b092dd/certifi-2026.2.25.tar.gz", hash = "sha256:e887ab5cee78ea814d3472169153c2d12cd43b14bd03329a39a9c6e2e80bfba7", size = 155029, upload-time = "2026-02-25T02:54:17.342Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl", hash = "sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa", size = 153684, upload-time = "2026-02-25T02:54:15.766Z" }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e7/a1/67fe25fac3c7642725500a3f6cfe5821ad557c3abb11c9d20d12c7008d3e/charset_normalizer-3.4.7.tar.gz", hash = "sha256:ae89db9e5f98a11a4bf50407d4363e7b09b31e55bc117b4f7d80aab97ba009e5", size = 144271, upload-time = "2026-04-02T09:28:39.342Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/eb/4fc8d0a7110eb5fc9cc161723a34a8a6c200ce3b4fbf681bc86feee22308/charset_normalizer-3.4.7-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:eca9705049ad3c7345d574e3510665cb2cf844c2f2dcfe675332677f081cbd46", size = 311328, upload-time = "2026-04-02T09:26:24.331Z" }, + { url = "https://files.pythonhosted.org/packages/f8/e3/0fadc706008ac9d7b9b5be6dc767c05f9d3e5df51744ce4cc9605de7b9f4/charset_normalizer-3.4.7-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6178f72c5508bfc5fd446a5905e698c6212932f25bcdd4b47a757a50605a90e2", size = 208061, upload-time = "2026-04-02T09:26:25.568Z" }, + { url = "https://files.pythonhosted.org/packages/42/f0/3dd1045c47f4a4604df85ec18ad093912ae1344ac706993aff91d38773a2/charset_normalizer-3.4.7-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e1421b502d83040e6d7fb2fb18dff63957f720da3d77b2fbd3187ceb63755d7b", size = 229031, upload-time = "2026-04-02T09:26:26.865Z" }, + { url = "https://files.pythonhosted.org/packages/dc/67/675a46eb016118a2fbde5a277a5d15f4f69d5f3f5f338e5ee2f8948fcf43/charset_normalizer-3.4.7-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:edac0f1ab77644605be2cbba52e6b7f630731fc42b34cb0f634be1a6eface56a", size = 225239, upload-time = "2026-04-02T09:26:28.044Z" }, + { url = "https://files.pythonhosted.org/packages/4b/f8/d0118a2f5f23b02cd166fa385c60f9b0d4f9194f574e2b31cef350ad7223/charset_normalizer-3.4.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5649fd1c7bade02f320a462fdefd0b4bd3ce036065836d4f42e0de958038e116", size = 216589, upload-time = "2026-04-02T09:26:29.239Z" }, + { url = "https://files.pythonhosted.org/packages/b1/f1/6d2b0b261b6c4ceef0fcb0d17a01cc5bc53586c2d4796fa04b5c540bc13d/charset_normalizer-3.4.7-cp312-cp312-manylinux_2_31_armv7l.whl", hash = "sha256:203104ed3e428044fd943bc4bf45fa73c0730391f9621e37fe39ecf477b128cb", size = 202733, upload-time = "2026-04-02T09:26:30.5Z" }, + { url = "https://files.pythonhosted.org/packages/6f/c0/7b1f943f7e87cc3db9626ba17807d042c38645f0a1d4415c7a14afb5591f/charset_normalizer-3.4.7-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:298930cec56029e05497a76988377cbd7457ba864beeea92ad7e844fe74cd1f1", size = 212652, upload-time = "2026-04-02T09:26:31.709Z" }, + { url = "https://files.pythonhosted.org/packages/38/dd/5a9ab159fe45c6e72079398f277b7d2b523e7f716acc489726115a910097/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:708838739abf24b2ceb208d0e22403dd018faeef86ddac04319a62ae884c4f15", size = 211229, upload-time = "2026-04-02T09:26:33.282Z" }, + { url = "https://files.pythonhosted.org/packages/d5/ff/531a1cad5ca855d1c1a8b69cb71abfd6d85c0291580146fda7c82857caa1/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:0f7eb884681e3938906ed0434f20c63046eacd0111c4ba96f27b76084cd679f5", size = 203552, upload-time = "2026-04-02T09:26:34.845Z" }, + { url = "https://files.pythonhosted.org/packages/c1/4c/a5fb52d528a8ca41f7598cb619409ece30a169fbdf9cdce592e53b46c3a6/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4dc1e73c36828f982bfe79fadf5919923f8a6f4df2860804db9a98c48824ce8d", size = 230806, upload-time = "2026-04-02T09:26:36.152Z" }, + { url = "https://files.pythonhosted.org/packages/59/7a/071feed8124111a32b316b33ae4de83d36923039ef8cf48120266844285b/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:aed52fea0513bac0ccde438c188c8a471c4e0f457c2dd20cdbf6ea7a450046c7", size = 212316, upload-time = "2026-04-02T09:26:37.672Z" }, + { url = "https://files.pythonhosted.org/packages/fd/35/f7dba3994312d7ba508e041eaac39a36b120f32d4c8662b8814dab876431/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:fea24543955a6a729c45a73fe90e08c743f0b3334bbf3201e6c4bc1b0c7fa464", size = 227274, upload-time = "2026-04-02T09:26:38.93Z" }, + { url = "https://files.pythonhosted.org/packages/8a/2d/a572df5c9204ab7688ec1edc895a73ebded3b023bb07364710b05dd1c9be/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bb6d88045545b26da47aa879dd4a89a71d1dce0f0e549b1abcb31dfe4a8eac49", size = 218468, upload-time = "2026-04-02T09:26:40.17Z" }, + { url = "https://files.pythonhosted.org/packages/86/eb/890922a8b03a568ca2f336c36585a4713c55d4d67bf0f0c78924be6315ca/charset_normalizer-3.4.7-cp312-cp312-win32.whl", hash = "sha256:2257141f39fe65a3fdf38aeccae4b953e5f3b3324f4ff0daf9f15b8518666a2c", size = 148460, upload-time = "2026-04-02T09:26:41.416Z" }, + { url = "https://files.pythonhosted.org/packages/35/d9/0e7dffa06c5ab081f75b1b786f0aefc88365825dfcd0ac544bdb7b2b6853/charset_normalizer-3.4.7-cp312-cp312-win_amd64.whl", hash = "sha256:5ed6ab538499c8644b8a3e18debabcd7ce684f3fa91cf867521a7a0279cab2d6", size = 159330, upload-time = "2026-04-02T09:26:42.554Z" }, + { url = "https://files.pythonhosted.org/packages/9e/5d/481bcc2a7c88ea6b0878c299547843b2521ccbc40980cb406267088bc701/charset_normalizer-3.4.7-cp312-cp312-win_arm64.whl", hash = "sha256:56be790f86bfb2c98fb742ce566dfb4816e5a83384616ab59c49e0604d49c51d", size = 147828, upload-time = "2026-04-02T09:26:44.075Z" }, + { url = "https://files.pythonhosted.org/packages/c1/3b/66777e39d3ae1ddc77ee606be4ec6d8cbd4c801f65e5a1b6f2b11b8346dd/charset_normalizer-3.4.7-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f496c9c3cc02230093d8330875c4c3cdfc3b73612a5fd921c65d39cbcef08063", size = 309627, upload-time = "2026-04-02T09:26:45.198Z" }, + { url = "https://files.pythonhosted.org/packages/2e/4e/b7f84e617b4854ade48a1b7915c8ccfadeba444d2a18c291f696e37f0d3b/charset_normalizer-3.4.7-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0ea948db76d31190bf08bd371623927ee1339d5f2a0b4b1b4a4439a65298703c", size = 207008, upload-time = "2026-04-02T09:26:46.824Z" }, + { url = "https://files.pythonhosted.org/packages/c4/bb/ec73c0257c9e11b268f018f068f5d00aa0ef8c8b09f7753ebd5f2880e248/charset_normalizer-3.4.7-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a277ab8928b9f299723bc1a2dabb1265911b1a76341f90a510368ca44ad9ab66", size = 228303, upload-time = "2026-04-02T09:26:48.397Z" }, + { url = "https://files.pythonhosted.org/packages/85/fb/32d1f5033484494619f701e719429c69b766bfc4dbc61aa9e9c8c166528b/charset_normalizer-3.4.7-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3bec022aec2c514d9cf199522a802bd007cd588ab17ab2525f20f9c34d067c18", size = 224282, upload-time = "2026-04-02T09:26:49.684Z" }, + { url = "https://files.pythonhosted.org/packages/fa/07/330e3a0dda4c404d6da83b327270906e9654a24f6c546dc886a0eb0ffb23/charset_normalizer-3.4.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e044c39e41b92c845bc815e5ae4230804e8e7bc29e399b0437d64222d92809dd", size = 215595, upload-time = "2026-04-02T09:26:50.915Z" }, + { url = "https://files.pythonhosted.org/packages/e3/7c/fc890655786e423f02556e0216d4b8c6bcb6bdfa890160dc66bf52dee468/charset_normalizer-3.4.7-cp313-cp313-manylinux_2_31_armv7l.whl", hash = "sha256:f495a1652cf3fbab2eb0639776dad966c2fb874d79d87ca07f9d5f059b8bd215", size = 201986, upload-time = "2026-04-02T09:26:52.197Z" }, + { url = "https://files.pythonhosted.org/packages/d8/97/bfb18b3db2aed3b90cf54dc292ad79fdd5ad65c4eae454099475cbeadd0d/charset_normalizer-3.4.7-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e712b419df8ba5e42b226c510472b37bd57b38e897d3eca5e8cfd410a29fa859", size = 211711, upload-time = "2026-04-02T09:26:53.49Z" }, + { url = "https://files.pythonhosted.org/packages/6f/a5/a581c13798546a7fd557c82614a5c65a13df2157e9ad6373166d2a3e645d/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7804338df6fcc08105c7745f1502ba68d900f45fd770d5bdd5288ddccb8a42d8", size = 210036, upload-time = "2026-04-02T09:26:54.975Z" }, + { url = "https://files.pythonhosted.org/packages/8c/bf/b3ab5bcb478e4193d517644b0fb2bf5497fbceeaa7a1bc0f4d5b50953861/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:481551899c856c704d58119b5025793fa6730adda3571971af568f66d2424bb5", size = 202998, upload-time = "2026-04-02T09:26:56.303Z" }, + { url = "https://files.pythonhosted.org/packages/e7/4e/23efd79b65d314fa320ec6017b4b5834d5c12a58ba4610aa353af2e2f577/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f59099f9b66f0d7145115e6f80dd8b1d847176df89b234a5a6b3f00437aa0832", size = 230056, upload-time = "2026-04-02T09:26:57.554Z" }, + { url = "https://files.pythonhosted.org/packages/b9/9f/1e1941bc3f0e01df116e68dc37a55c4d249df5e6fa77f008841aef68264f/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:f59ad4c0e8f6bba240a9bb85504faa1ab438237199d4cce5f622761507b8f6a6", size = 211537, upload-time = "2026-04-02T09:26:58.843Z" }, + { url = "https://files.pythonhosted.org/packages/80/0f/088cbb3020d44428964a6c97fe1edfb1b9550396bf6d278330281e8b709c/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:3dedcc22d73ec993f42055eff4fcfed9318d1eeb9a6606c55892a26964964e48", size = 226176, upload-time = "2026-04-02T09:27:00.437Z" }, + { url = "https://files.pythonhosted.org/packages/6a/9f/130394f9bbe06f4f63e22641d32fc9b202b7e251c9aef4db044324dac493/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:64f02c6841d7d83f832cd97ccf8eb8a906d06eb95d5276069175c696b024b60a", size = 217723, upload-time = "2026-04-02T09:27:02.021Z" }, + { url = "https://files.pythonhosted.org/packages/73/55/c469897448a06e49f8fa03f6caae97074fde823f432a98f979cc42b90e69/charset_normalizer-3.4.7-cp313-cp313-win32.whl", hash = "sha256:4042d5c8f957e15221d423ba781e85d553722fc4113f523f2feb7b188cc34c5e", size = 148085, upload-time = "2026-04-02T09:27:03.192Z" }, + { url = "https://files.pythonhosted.org/packages/5d/78/1b74c5bbb3f99b77a1715c91b3e0b5bdb6fe302d95ace4f5b1bec37b0167/charset_normalizer-3.4.7-cp313-cp313-win_amd64.whl", hash = "sha256:3946fa46a0cf3e4c8cb1cc52f56bb536310d34f25f01ca9b6c16afa767dab110", size = 158819, upload-time = "2026-04-02T09:27:04.454Z" }, + { url = "https://files.pythonhosted.org/packages/68/86/46bd42279d323deb8687c4a5a811fd548cb7d1de10cf6535d099877a9a9f/charset_normalizer-3.4.7-cp313-cp313-win_arm64.whl", hash = "sha256:80d04837f55fc81da168b98de4f4b797ef007fc8a79ab71c6ec9bc4dd662b15b", size = 147915, upload-time = "2026-04-02T09:27:05.971Z" }, + { url = "https://files.pythonhosted.org/packages/97/c8/c67cb8c70e19ef1960b97b22ed2a1567711de46c4ddf19799923adc836c2/charset_normalizer-3.4.7-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:c36c333c39be2dbca264d7803333c896ab8fa7d4d6f0ab7edb7dfd7aea6e98c0", size = 309234, upload-time = "2026-04-02T09:27:07.194Z" }, + { url = "https://files.pythonhosted.org/packages/99/85/c091fdee33f20de70d6c8b522743b6f831a2f1cd3ff86de4c6a827c48a76/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1c2aed2e5e41f24ea8ef1590b8e848a79b56f3a5564a65ceec43c9d692dc7d8a", size = 208042, upload-time = "2026-04-02T09:27:08.749Z" }, + { url = "https://files.pythonhosted.org/packages/87/1c/ab2ce611b984d2fd5d86a5a8a19c1ae26acac6bad967da4967562c75114d/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:54523e136b8948060c0fa0bc7b1b50c32c186f2fceee897a495406bb6e311d2b", size = 228706, upload-time = "2026-04-02T09:27:09.951Z" }, + { url = "https://files.pythonhosted.org/packages/a8/29/2b1d2cb00bf085f59d29eb773ce58ec2d325430f8c216804a0a5cd83cbca/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:715479b9a2802ecac752a3b0efa2b0b60285cf962ee38414211abdfccc233b41", size = 224727, upload-time = "2026-04-02T09:27:11.175Z" }, + { url = "https://files.pythonhosted.org/packages/47/5c/032c2d5a07fe4d4855fea851209cca2b6f03ebeb6d4e3afdb3358386a684/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bd6c2a1c7573c64738d716488d2cdd3c00e340e4835707d8fdb8dc1a66ef164e", size = 215882, upload-time = "2026-04-02T09:27:12.446Z" }, + { url = "https://files.pythonhosted.org/packages/2c/c2/356065d5a8b78ed04499cae5f339f091946a6a74f91e03476c33f0ab7100/charset_normalizer-3.4.7-cp314-cp314-manylinux_2_31_armv7l.whl", hash = "sha256:c45e9440fb78f8ddabcf714b68f936737a121355bf59f3907f4e17721b9d1aae", size = 200860, upload-time = "2026-04-02T09:27:13.721Z" }, + { url = "https://files.pythonhosted.org/packages/0c/cd/a32a84217ced5039f53b29f460962abb2d4420def55afabe45b1c3c7483d/charset_normalizer-3.4.7-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3534e7dcbdcf757da6b85a0bbf5b6868786d5982dd959b065e65481644817a18", size = 211564, upload-time = "2026-04-02T09:27:15.272Z" }, + { url = "https://files.pythonhosted.org/packages/44/86/58e6f13ce26cc3b8f4a36b94a0f22ae2f00a72534520f4ae6857c4b81f89/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:e8ac484bf18ce6975760921bb6148041faa8fef0547200386ea0b52b5d27bf7b", size = 211276, upload-time = "2026-04-02T09:27:16.834Z" }, + { url = "https://files.pythonhosted.org/packages/8f/fe/d17c32dc72e17e155e06883efa84514ca375f8a528ba2546bee73fc4df81/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:a5fe03b42827c13cdccd08e6c0247b6a6d4b5e3cdc53fd1749f5896adcdc2356", size = 201238, upload-time = "2026-04-02T09:27:18.229Z" }, + { url = "https://files.pythonhosted.org/packages/6a/29/f33daa50b06525a237451cdb6c69da366c381a3dadcd833fa5676bc468b3/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:2d6eb928e13016cea4f1f21d1e10c1cebd5a421bc57ddf5b1142ae3f86824fab", size = 230189, upload-time = "2026-04-02T09:27:19.445Z" }, + { url = "https://files.pythonhosted.org/packages/b6/6e/52c84015394a6a0bdcd435210a7e944c5f94ea1055f5cc5d56c5fe368e7b/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:e74327fb75de8986940def6e8dee4f127cc9752bee7355bb323cc5b2659b6d46", size = 211352, upload-time = "2026-04-02T09:27:20.79Z" }, + { url = "https://files.pythonhosted.org/packages/8c/d7/4353be581b373033fb9198bf1da3cf8f09c1082561e8e922aa7b39bf9fe8/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:d6038d37043bced98a66e68d3aa2b6a35505dc01328cd65217cefe82f25def44", size = 227024, upload-time = "2026-04-02T09:27:22.063Z" }, + { url = "https://files.pythonhosted.org/packages/30/45/99d18aa925bd1740098ccd3060e238e21115fffbfdcb8f3ece837d0ace6c/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:7579e913a5339fb8fa133f6bbcfd8e6749696206cf05acdbdca71a1b436d8e72", size = 217869, upload-time = "2026-04-02T09:27:23.486Z" }, + { url = "https://files.pythonhosted.org/packages/5c/05/5ee478aa53f4bb7996482153d4bfe1b89e0f087f0ab6b294fcf92d595873/charset_normalizer-3.4.7-cp314-cp314-win32.whl", hash = "sha256:5b77459df20e08151cd6f8b9ef8ef1f961ef73d85c21a555c7eed5b79410ec10", size = 148541, upload-time = "2026-04-02T09:27:25.146Z" }, + { url = "https://files.pythonhosted.org/packages/48/77/72dcb0921b2ce86420b2d79d454c7022bf5be40202a2a07906b9f2a35c97/charset_normalizer-3.4.7-cp314-cp314-win_amd64.whl", hash = "sha256:92a0a01ead5e668468e952e4238cccd7c537364eb7d851ab144ab6627dbbe12f", size = 159634, upload-time = "2026-04-02T09:27:26.642Z" }, + { url = "https://files.pythonhosted.org/packages/c6/a3/c2369911cd72f02386e4e340770f6e158c7980267da16af8f668217abaa0/charset_normalizer-3.4.7-cp314-cp314-win_arm64.whl", hash = "sha256:67f6279d125ca0046a7fd386d01b311c6363844deac3e5b069b514ba3e63c246", size = 148384, upload-time = "2026-04-02T09:27:28.271Z" }, + { url = "https://files.pythonhosted.org/packages/94/09/7e8a7f73d24dba1f0035fbbf014d2c36828fc1bf9c88f84093e57d315935/charset_normalizer-3.4.7-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:effc3f449787117233702311a1b7d8f59cba9ced946ba727bdc329ec69028e24", size = 330133, upload-time = "2026-04-02T09:27:29.474Z" }, + { url = "https://files.pythonhosted.org/packages/8d/da/96975ddb11f8e977f706f45cddd8540fd8242f71ecdb5d18a80723dcf62c/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fbccdc05410c9ee21bbf16a35f4c1d16123dcdeb8a1d38f33654fa21d0234f79", size = 216257, upload-time = "2026-04-02T09:27:30.793Z" }, + { url = "https://files.pythonhosted.org/packages/e5/e8/1d63bf8ef2d388e95c64b2098f45f84758f6d102a087552da1485912637b/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:733784b6d6def852c814bce5f318d25da2ee65dd4839a0718641c696e09a2960", size = 234851, upload-time = "2026-04-02T09:27:32.44Z" }, + { url = "https://files.pythonhosted.org/packages/9b/40/e5ff04233e70da2681fa43969ad6f66ca5611d7e669be0246c4c7aaf6dc8/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a89c23ef8d2c6b27fd200a42aa4ac72786e7c60d40efdc76e6011260b6e949c4", size = 233393, upload-time = "2026-04-02T09:27:34.03Z" }, + { url = "https://files.pythonhosted.org/packages/be/c1/06c6c49d5a5450f76899992f1ee40b41d076aee9279b49cf9974d2f313d5/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6c114670c45346afedc0d947faf3c7f701051d2518b943679c8ff88befe14f8e", size = 223251, upload-time = "2026-04-02T09:27:35.369Z" }, + { url = "https://files.pythonhosted.org/packages/2b/9f/f2ff16fb050946169e3e1f82134d107e5d4ae72647ec8a1b1446c148480f/charset_normalizer-3.4.7-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:a180c5e59792af262bf263b21a3c49353f25945d8d9f70628e73de370d55e1e1", size = 206609, upload-time = "2026-04-02T09:27:36.661Z" }, + { url = "https://files.pythonhosted.org/packages/69/d5/a527c0cd8d64d2eab7459784fb4169a0ac76e5a6fc5237337982fd61347e/charset_normalizer-3.4.7-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3c9a494bc5ec77d43cea229c4f6db1e4d8fe7e1bbffa8b6f0f0032430ff8ab44", size = 220014, upload-time = "2026-04-02T09:27:38.019Z" }, + { url = "https://files.pythonhosted.org/packages/7e/80/8a7b8104a3e203074dc9aa2c613d4b726c0e136bad1cc734594b02867972/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8d828b6667a32a728a1ad1d93957cdf37489c57b97ae6c4de2860fa749b8fc1e", size = 218979, upload-time = "2026-04-02T09:27:39.37Z" }, + { url = "https://files.pythonhosted.org/packages/02/9a/b759b503d507f375b2b5c153e4d2ee0a75aa215b7f2489cf314f4541f2c0/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:cf1493cd8607bec4d8a7b9b004e699fcf8f9103a9284cc94962cb73d20f9d4a3", size = 209238, upload-time = "2026-04-02T09:27:40.722Z" }, + { url = "https://files.pythonhosted.org/packages/c2/4e/0f3f5d47b86bdb79256e7290b26ac847a2832d9a4033f7eb2cd4bcf4bb5b/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:0c96c3b819b5c3e9e165495db84d41914d6894d55181d2d108cc1a69bfc9cce0", size = 236110, upload-time = "2026-04-02T09:27:42.33Z" }, + { url = "https://files.pythonhosted.org/packages/96/23/bce28734eb3ed2c91dcf93abeb8a5cf393a7b2749725030bb630e554fdd8/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:752a45dc4a6934060b3b0dab47e04edc3326575f82be64bc4fc293914566503e", size = 219824, upload-time = "2026-04-02T09:27:43.924Z" }, + { url = "https://files.pythonhosted.org/packages/2c/6f/6e897c6984cc4d41af319b077f2f600fc8214eb2fe2d6bcb79141b882400/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:8778f0c7a52e56f75d12dae53ae320fae900a8b9b4164b981b9c5ce059cd1fcb", size = 233103, upload-time = "2026-04-02T09:27:45.348Z" }, + { url = "https://files.pythonhosted.org/packages/76/22/ef7bd0fe480a0ae9b656189ec00744b60933f68b4f42a7bb06589f6f576a/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ce3412fbe1e31eb81ea42f4169ed94861c56e643189e1e75f0041f3fe7020abe", size = 225194, upload-time = "2026-04-02T09:27:46.706Z" }, + { url = "https://files.pythonhosted.org/packages/c5/a7/0e0ab3e0b5bc1219bd80a6a0d4d72ca74d9250cb2382b7c699c147e06017/charset_normalizer-3.4.7-cp314-cp314t-win32.whl", hash = "sha256:c03a41a8784091e67a39648f70c5f97b5b6a37f216896d44d2cdcb82615339a0", size = 159827, upload-time = "2026-04-02T09:27:48.053Z" }, + { url = "https://files.pythonhosted.org/packages/7a/1d/29d32e0fb40864b1f878c7f5a0b343ae676c6e2b271a2d55cc3a152391da/charset_normalizer-3.4.7-cp314-cp314t-win_amd64.whl", hash = "sha256:03853ed82eeebbce3c2abfdbc98c96dc205f32a79627688ac9a27370ea61a49c", size = 174168, upload-time = "2026-04-02T09:27:49.795Z" }, + { url = "https://files.pythonhosted.org/packages/de/32/d92444ad05c7a6e41fb2036749777c163baf7a0301a040cb672d6b2b1ae9/charset_normalizer-3.4.7-cp314-cp314t-win_arm64.whl", hash = "sha256:c35abb8bfff0185efac5878da64c45dafd2b37fb0383add1be155a763c1f083d", size = 153018, upload-time = "2026-04-02T09:27:51.116Z" }, + { url = "https://files.pythonhosted.org/packages/db/8f/61959034484a4a7c527811f4721e75d02d653a35afb0b6054474d8185d4c/charset_normalizer-3.4.7-py3-none-any.whl", hash = "sha256:3dce51d0f5e7951f8bb4900c257dad282f49190fdbebecd4ba99bcc41fef404d", size = 61958, upload-time = "2026-04-02T09:28:37.794Z" }, +] + +[[package]] +name = "click" +version = "8.3.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/57/75/31212c6bf2503fdf920d87fee5d7a86a2e3bcf444984126f13d8e4016804/click-8.3.2.tar.gz", hash = "sha256:14162b8b3b3550a7d479eafa77dfd3c38d9dc8951f6f69c78913a8f9a7540fd5", size = 302856, upload-time = "2026-04-03T19:14:45.118Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e4/20/71885d8b97d4f3dde17b1fdb92dbd4908b00541c5a3379787137285f602e/click-8.3.2-py3-none-any.whl", hash = "sha256:1924d2c27c5653561cd2cae4548d1406039cb79b858b747cfea24924bbc1616d", size = 108379, upload-time = "2026-04-03T19:14:43.505Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "fastapi" +version = "0.136.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-doc" }, + { name = "pydantic" }, + { name = "starlette" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4e/d9/e66315807e41e69e7f6a1b42a162dada2f249c5f06ad3f1a95f84ab336ef/fastapi-0.136.0.tar.gz", hash = "sha256:cf08e067cc66e106e102d9ba659463abfac245200752f8a5b7b1e813de4ff73e", size = 396607, upload-time = "2026-04-16T11:47:13.623Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/26/a3/0bd5f0cdb0bbc92650e8dc457e9250358411ee5d1b65e42b6632387daf81/fastapi-0.136.0-py3-none-any.whl", hash = "sha256:8793d44ec7378e2be07f8a013cf7f7aa47d6327d0dfe9804862688ec4541a6b4", size = 117556, upload-time = "2026-04-16T11:47:11.922Z" }, +] + +[[package]] +name = "feedparser" +version = "6.0.12" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "sgmllib3k" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/dc/79/db7edb5e77d6dfbc54d7d9df72828be4318275b2e580549ff45a962f6461/feedparser-6.0.12.tar.gz", hash = "sha256:64f76ce90ae3e8ef5d1ede0f8d3b50ce26bcce71dd8ae5e82b1cd2d4a5f94228", size = 286579, upload-time = "2025-09-10T13:33:59.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4e/eb/c96d64137e29ae17d83ad2552470bafe3a7a915e85434d9942077d7fd011/feedparser-6.0.12-py3-none-any.whl", hash = "sha256:6bbff10f5a52662c00a2e3f86a38928c37c48f77b3c511aedcd51de933549324", size = 81480, upload-time = "2025-09-10T13:33:58.022Z" }, +] + +[[package]] +name = "h11" +version = "0.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload-time = "2025-04-24T03:35:25.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, +] + +[[package]] +name = "idna" +version = "3.11" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582, upload-time = "2025-10-12T14:55:20.501Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload-time = "2025-10-12T14:55:18.883Z" }, +] + +[[package]] +name = "iniconfig" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503, upload-time = "2025-10-18T21:55:43.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload-time = "2025-10-18T21:55:41.639Z" }, +] + +[[package]] +name = "mediawatch" +version = "0.1.0" +source = { virtual = "." } +dependencies = [ + { name = "fastapi" }, + { name = "feedparser" }, + { name = "pytest" }, + { name = "python-dotenv" }, + { name = "requests" }, + { name = "uvicorn" }, +] + +[package.metadata] +requires-dist = [ + { name = "fastapi", specifier = ">=0.136.0" }, + { name = "feedparser", specifier = ">=6.0.12" }, + { name = "pytest", specifier = ">=9.0.3" }, + { name = "python-dotenv", specifier = ">=1.2.2" }, + { name = "requests", specifier = ">=2.33.1" }, + { name = "uvicorn", specifier = ">=0.44.0" }, +] + +[[package]] +name = "packaging" +version = "26.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/de/0d2b39fb4af88a0258f3bac87dfcbb48e73fbdea4a2ed0e2213f9a4c2f9a/packaging-26.1.tar.gz", hash = "sha256:f042152b681c4bfac5cae2742a55e103d27ab2ec0f3d88037136b6bfe7c9c5de", size = 215519, upload-time = "2026-04-14T21:12:49.362Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/c2/920ef838e2f0028c8262f16101ec09ebd5969864e5a64c4c05fad0617c56/packaging-26.1-py3-none-any.whl", hash = "sha256:5d9c0669c6285e491e0ced2eee587eaf67b670d94a19e94e3984a481aba6802f", size = 95831, upload-time = "2026-04-14T21:12:47.56Z" }, +] + +[[package]] +name = "pluggy" +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, +] + +[[package]] +name = "pydantic" +version = "2.13.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f3/6b/1353beb3d1cd5cf61cdec5b6f87a9872399de3bc5cae0b7ce07ff4de2ab0/pydantic-2.13.1.tar.gz", hash = "sha256:a0f829b279ddd1e39291133fe2539d2aa46cc6b150c1706a270ff0879e3774d2", size = 843746, upload-time = "2026-04-15T14:57:19.398Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/5a/2225f4c176dbfed0d809e848b50ef08f70e61daa667b7fa14b0d311ae44d/pydantic-2.13.1-py3-none-any.whl", hash = "sha256:9557ecc2806faaf6037f85b1fbd963d01e30511c48085f0d573650fdeaad378a", size = 471917, upload-time = "2026-04-15T14:57:17.277Z" }, +] + +[[package]] +name = "pydantic-core" +version = "2.46.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a1/93/f97a86a7eb28faa1d038af2fd5d6166418b4433659108a4c311b57128b2d/pydantic_core-2.46.1.tar.gz", hash = "sha256:d408153772d9f298098fb5d620f045bdf0f017af0d5cb6e309ef8c205540caa4", size = 471230, upload-time = "2026-04-15T14:49:34.52Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ce/fb/caaa8ee23861c170f07dbd58fc2be3a2c02a32637693cbb23eef02e84808/pydantic_core-2.46.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:ae8c8c5eb4c796944f3166f2f0dab6c761c2c2cc5bd20e5f692128be8600b9a4", size = 2119472, upload-time = "2026-04-15T14:49:45.946Z" }, + { url = "https://files.pythonhosted.org/packages/fa/61/bcffaa52894489ff89e5e1cdde67429914bf083c0db7296bef153020f786/pydantic_core-2.46.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:daba6f5f5b986aa0682623a1a4f8d1ecb0ec00ce09cfa9ca71a3b742bc383e3a", size = 1951230, upload-time = "2026-04-15T14:52:27.646Z" }, + { url = "https://files.pythonhosted.org/packages/f8/95/80d2f43a2a1a1e3220fd329d614aa5a39e0a75d24353a3aaf226e605f1c2/pydantic_core-2.46.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0265f3a2460539ecc97817a80c7a23c458dd84191229b655522a2674f701f14e", size = 1976394, upload-time = "2026-04-15T14:50:32.742Z" }, + { url = "https://files.pythonhosted.org/packages/8d/31/2c5b1a207926b5fc1961a2d11da940129bc3841c36cc4df03014195b2966/pydantic_core-2.46.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bb16c0156c4b4e94aa3719138cc43c53d30ff21126b6a3af63786dcc0757b56e", size = 2068455, upload-time = "2026-04-15T14:50:01.286Z" }, + { url = "https://files.pythonhosted.org/packages/7d/36/c6aa07274359a51ac62895895325ce90107e811c6cea39d2617a99ef10d7/pydantic_core-2.46.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1b42d80fad8e4b283e1e4138f1142f0d038c46d137aad2f9824ad9086080dd41", size = 2239049, upload-time = "2026-04-15T14:53:02.216Z" }, + { url = "https://files.pythonhosted.org/packages/0a/3f/77cdd0db8bddc714842dfd93f737c863751cf02001c993341504f6b0cd53/pydantic_core-2.46.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9cced85896d5b795293bc36b7e2fb0347a36c828551b50cbba510510d928548c", size = 2318681, upload-time = "2026-04-15T14:50:04.539Z" }, + { url = "https://files.pythonhosted.org/packages/a1/a3/09d929a40e6727274b0b500ad06e1b3f35d4f4665ae1c8ba65acbb17e9b5/pydantic_core-2.46.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a641cb1e74b44c418adaf9f5f450670dbec53511f030d8cde8d8accb66edc363", size = 2096527, upload-time = "2026-04-15T14:53:14.766Z" }, + { url = "https://files.pythonhosted.org/packages/89/ae/544c3a82456ebc254a9fcbe2715bab76c70acf9d291aaea24391147943e4/pydantic_core-2.46.1-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:191e7a122ab14eb12415fe3f92610fc06c7f1d2b4b9101d24d490d447ac92506", size = 2170407, upload-time = "2026-04-15T14:51:27.138Z" }, + { url = "https://files.pythonhosted.org/packages/9d/ce/0dfd881c7af4c522f47b325707bd9a2cdcf4f40e4f2fd30df0e9a3e8d393/pydantic_core-2.46.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4fe4ff660f7938b5d92f21529ce331b011aa35e481ab64b7cd03f52384e544bb", size = 2188578, upload-time = "2026-04-15T14:50:39.655Z" }, + { url = "https://files.pythonhosted.org/packages/a1/e9/980ea2a6d5114dd1a62ecc5f56feb3d34555f33bd11043f042e5f7f0724a/pydantic_core-2.46.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:18fcea085b3adc3868d8d19606da52d7a52d8bccd8e28652b0778dbe5e6a6660", size = 2188959, upload-time = "2026-04-15T14:52:42.243Z" }, + { url = "https://files.pythonhosted.org/packages/e7/f1/595e0f50f4bfc56cde2fe558f2b0978f29f2865da894c6226231e17464a5/pydantic_core-2.46.1-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:e8e589e7c9466e022d79e13c5764c2239b2e5a7993ba727822b021234f89b56b", size = 2339973, upload-time = "2026-04-15T14:52:10.642Z" }, + { url = "https://files.pythonhosted.org/packages/49/44/be9f979a6ab6b8c36865ccd92c3a38a760c66055e1f384665f35525134c4/pydantic_core-2.46.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f78eb3d4027963bdc9baccd177f02a98bf8714bc51fe17153d8b51218918b5bc", size = 2385228, upload-time = "2026-04-15T14:51:00.77Z" }, + { url = "https://files.pythonhosted.org/packages/5b/d4/c826cd711787d240219f01d0d3ca116cb55516b8b95277820aa9c85e1882/pydantic_core-2.46.1-cp312-cp312-win32.whl", hash = "sha256:54fe30c20cab03844dc63bdc6ddca67f74a2eb8482df69c1e5f68396856241be", size = 1978828, upload-time = "2026-04-15T14:50:29.362Z" }, + { url = "https://files.pythonhosted.org/packages/22/05/8a1fcf8181be4c7a9cfc34e5fbf2d9c3866edc9dfd3c48d5401806e0a523/pydantic_core-2.46.1-cp312-cp312-win_amd64.whl", hash = "sha256:aea4e22ed4c53f2774221435e39969a54d2e783f4aee902cdd6c8011415de893", size = 2070015, upload-time = "2026-04-15T14:49:47.301Z" }, + { url = "https://files.pythonhosted.org/packages/61/d5/fea36ad2882b99c174ef4ffbc7ea6523f6abe26060fbc1f77d6441670232/pydantic_core-2.46.1-cp312-cp312-win_arm64.whl", hash = "sha256:f76fb49c34b4d66aa6e552ce9e852ea97a3a06301a9f01ae82f23e449e3a55f8", size = 2030176, upload-time = "2026-04-15T14:50:47.307Z" }, + { url = "https://files.pythonhosted.org/packages/ff/d2/bda39bad2f426cb5078e6ad28076614d3926704196efe0d7a2a19a99025d/pydantic_core-2.46.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:cdc8a5762a9c4b9d86e204d555444e3227507c92daba06259ee66595834de47a", size = 2119092, upload-time = "2026-04-15T14:49:50.392Z" }, + { url = "https://files.pythonhosted.org/packages/ee/f3/69631e64d69cb3481494b2bddefe0ddd07771209f74e9106d066f9138c2a/pydantic_core-2.46.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ba381dfe9c85692c566ecb60fa5a77a697a2a8eebe274ec5e4d6ec15fafad799", size = 1951400, upload-time = "2026-04-15T14:51:06.588Z" }, + { url = "https://files.pythonhosted.org/packages/53/1c/21cb3db6ae997df31be8e91f213081f72ffa641cb45c89b8a1986832b1f9/pydantic_core-2.46.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1593d8de98207466dc070118322fef68307a0cc6a5625e7b386f6fdae57f9ab6", size = 1976864, upload-time = "2026-04-15T14:50:54.804Z" }, + { url = "https://files.pythonhosted.org/packages/91/9c/05c819f734318ce5a6ca24da300d93696c105af4adb90494ee571303afd8/pydantic_core-2.46.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8262c74a1af5b0fdf795f5537f7145785a63f9fbf9e15405f547440c30017ed8", size = 2066669, upload-time = "2026-04-15T14:51:42.346Z" }, + { url = "https://files.pythonhosted.org/packages/cb/23/fadddf1c7f2f517f58731aea9b35c914e6005250f08dac9b8e53904cdbaa/pydantic_core-2.46.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4b88949a24182e83fbbb3f7ca9b7858d0d37b735700ea91081434b7d37b3b444", size = 2238737, upload-time = "2026-04-15T14:50:45.558Z" }, + { url = "https://files.pythonhosted.org/packages/23/07/0cd4f95cb0359c8b1ec71e89c3777e7932c8dfeb9cd54740289f310aaead/pydantic_core-2.46.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b8f3708cd55537aeaf3fd0ea55df0d68d0da51dcb07cbc8508745b34acc4c6e0", size = 2316258, upload-time = "2026-04-15T14:51:08.471Z" }, + { url = "https://files.pythonhosted.org/packages/0c/40/6fc24c3766a19c222a0d60d652b78f0283339d4cd4c173fab06b7ee76571/pydantic_core-2.46.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f79292435fff1d4f0c18d9cfaf214025cc88e4f5104bfaed53f173621da1c743", size = 2097474, upload-time = "2026-04-15T14:49:56.543Z" }, + { url = "https://files.pythonhosted.org/packages/4b/af/f39795d1ce549e35d0841382b9c616ae211caffb88863147369a8d74fba9/pydantic_core-2.46.1-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:a2e607aeb59cf4575bb364470288db3b9a1f0e7415d053a322e3e154c1a0802e", size = 2168383, upload-time = "2026-04-15T14:51:29.269Z" }, + { url = "https://files.pythonhosted.org/packages/e6/32/0d563f74582795779df6cc270c3fc220f49f4daf7860d74a5a6cda8491ff/pydantic_core-2.46.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ec5ca190b75878a9f6ae1fc8f5eb678497934475aef3d93204c9fa01e97370b6", size = 2186182, upload-time = "2026-04-15T14:50:19.097Z" }, + { url = "https://files.pythonhosted.org/packages/5c/07/1c10d5ce312fc4cf86d1e50bdcdbb8ef248409597b099cab1b4bb3a093f7/pydantic_core-2.46.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:1f80535259dcdd517d7b8ca588d5ca24b4f337228e583bebedf7a3adcdf5f721", size = 2187859, upload-time = "2026-04-15T14:49:22.974Z" }, + { url = "https://files.pythonhosted.org/packages/92/01/e1f62d4cb39f0913dbf5c95b9b119ef30ddba9493dff8c2b012f0cdd67dc/pydantic_core-2.46.1-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:24820b3c82c43df61eca30147e42853e6c127d8b868afdc0c162df829e011eb4", size = 2338372, upload-time = "2026-04-15T14:49:53.316Z" }, + { url = "https://files.pythonhosted.org/packages/44/ed/218dfeea6127fb1781a6ceca241ec6edf00e8a8933ff331af2215975a534/pydantic_core-2.46.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:f12794b1dd8ac9fb66619e0b3a0427189f5d5638e55a3de1385121a9b7bf9b39", size = 2384039, upload-time = "2026-04-15T14:53:04.929Z" }, + { url = "https://files.pythonhosted.org/packages/6c/1e/011e763cd059238249fbd5780e0f8d0b04b47f86c8925e22784f3e5fc977/pydantic_core-2.46.1-cp313-cp313-win32.whl", hash = "sha256:9bc09aed935cdf50f09e908923f9efbcca54e9244bd14a5a0e2a6c8d2c21b4e9", size = 1977943, upload-time = "2026-04-15T14:52:17.969Z" }, + { url = "https://files.pythonhosted.org/packages/8c/06/b559a490d3ed106e9b1777b8d5c8112dd8d31716243cd662616f66c1f8ea/pydantic_core-2.46.1-cp313-cp313-win_amd64.whl", hash = "sha256:fac2d6c8615b8b42bee14677861ba09d56ee076ba4a65cfb9c3c3d0cc89042f2", size = 2068729, upload-time = "2026-04-15T14:53:07.288Z" }, + { url = "https://files.pythonhosted.org/packages/9f/52/32a198946e2e19508532aa9da02a61419eb15bd2d96bab57f810f2713e31/pydantic_core-2.46.1-cp313-cp313-win_arm64.whl", hash = "sha256:f978329f12ace9f3cb814a5e44d98bbeced2e36f633132bafa06d2d71332e33e", size = 2029550, upload-time = "2026-04-15T14:52:22.707Z" }, + { url = "https://files.pythonhosted.org/packages/bd/2b/6793fe89ab66cb2d3d6e5768044eab80bba1d0fae8fd904d0a1574712e17/pydantic_core-2.46.1-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:9917cb61effac7ec0f448ef491ec7584526d2193be84ff981e85cbf18b68c42a", size = 2118110, upload-time = "2026-04-15T14:50:52.947Z" }, + { url = "https://files.pythonhosted.org/packages/d2/87/e9a905ddfcc2fd7bd862b340c02be6ab1f827922822d425513635d0ac774/pydantic_core-2.46.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0e749679ca9f8a9d0bff95fb7f6b57bb53f2207fa42ffcc1ec86de7e0029ab89", size = 1948645, upload-time = "2026-04-15T14:51:55.577Z" }, + { url = "https://files.pythonhosted.org/packages/15/23/26e67f86ed62ac9d6f7f3091ee5220bf14b5ac36fb811851d601365ef896/pydantic_core-2.46.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2ecacee70941e233a2dad23f7796a06f86cc10cc2fbd1c97c7dd5b5a79ffa4f", size = 1977576, upload-time = "2026-04-15T14:49:37.58Z" }, + { url = "https://files.pythonhosted.org/packages/b8/78/813c13c0de323d4de54ee2e6fdd69a0271c09ac8dd65a8a000931aa487a5/pydantic_core-2.46.1-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:647d0a2475b8ed471962eed92fa69145b864942f9c6daa10f95ac70676637ae7", size = 2060358, upload-time = "2026-04-15T14:51:40.087Z" }, + { url = "https://files.pythonhosted.org/packages/09/5e/4caf2a15149271fbd2b4d968899a450853c800b85152abcf54b11531417f/pydantic_core-2.46.1-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac9cde61965b0697fce6e6cc372df9e1ad93734828aac36e9c1c42a22ad02897", size = 2235980, upload-time = "2026-04-15T14:50:34.535Z" }, + { url = "https://files.pythonhosted.org/packages/c2/c1/a2cdabb5da6f5cb63a3558bcafffc20f790fa14ccffbefbfb1370fadc93f/pydantic_core-2.46.1-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0a2eb0864085f8b641fb3f54a2fb35c58aff24b175b80bc8a945050fcde03204", size = 2316800, upload-time = "2026-04-15T14:52:46.999Z" }, + { url = "https://files.pythonhosted.org/packages/76/fd/19d711e4e9331f9d77f222bffc202bf30ea0d74f6419046376bb82f244c8/pydantic_core-2.46.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b83ce9fede4bc4fb649281d9857f06d30198b8f70168f18b987518d713111572", size = 2101762, upload-time = "2026-04-15T14:49:24.278Z" }, + { url = "https://files.pythonhosted.org/packages/dc/64/ce95625448e1a4e219390a2923fd594f3fa368599c6b42ac71a5df7238c9/pydantic_core-2.46.1-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:cb33192753c60f269d2f4a1db8253c95b0df6e04f2989631a8cc1b0f4f6e2e92", size = 2167737, upload-time = "2026-04-15T14:50:41.637Z" }, + { url = "https://files.pythonhosted.org/packages/ad/31/413572d03ca3e73b408f00f54418b91a8be6401451bc791eaeff210328e5/pydantic_core-2.46.1-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:96611d51f953f87e1ae97637c01ee596a08b7f494ea00a5afb67ea6547b9f53b", size = 2185658, upload-time = "2026-04-15T14:51:46.799Z" }, + { url = "https://files.pythonhosted.org/packages/36/09/e4f581353bdf3f0c7de8a8b27afd14fc761da29d78146376315a6fedc487/pydantic_core-2.46.1-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:9b176fa55f9107db5e6c86099aa5bfd934f1d3ba6a8b43f714ddeebaed3f42b7", size = 2184154, upload-time = "2026-04-15T14:52:49.629Z" }, + { url = "https://files.pythonhosted.org/packages/1a/a4/d0d52849933f5a4bf1ad9d8da612792f96469b37e286a269e3ee9c60bbb1/pydantic_core-2.46.1-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:79a59f63a4ce4f3330e27e6f3ce281dd1099453b637350e97d7cf24c207cd120", size = 2332379, upload-time = "2026-04-15T14:49:55.009Z" }, + { url = "https://files.pythonhosted.org/packages/30/93/25bfb08fdbef419f73290e573899ce938a327628c34e8f3a4bafeea30126/pydantic_core-2.46.1-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:f200fce071808a385a314b7343f5e3688d7c45746be3d64dc71ee2d3e2a13268", size = 2377964, upload-time = "2026-04-15T14:51:59.649Z" }, + { url = "https://files.pythonhosted.org/packages/15/36/b777766ff83fef1cf97473d64764cd44f38e0d8c269ed06faace9ae17666/pydantic_core-2.46.1-cp314-cp314-win32.whl", hash = "sha256:3a07eccc0559fb9acc26d55b16bf8ebecd7f237c74a9e2c5741367db4e6d8aff", size = 1976450, upload-time = "2026-04-15T14:51:57.665Z" }, + { url = "https://files.pythonhosted.org/packages/7b/4b/4cd19d2437acfc18ca166db5a2067040334991eb862c4ecf2db098c91fbf/pydantic_core-2.46.1-cp314-cp314-win_amd64.whl", hash = "sha256:1706d270309ac7d071ffe393988c471363705feb3d009186e55d17786ada9622", size = 2067750, upload-time = "2026-04-15T14:49:38.941Z" }, + { url = "https://files.pythonhosted.org/packages/7f/a0/490751c0ef8f5b27aae81731859aed1508e72c1a9b5774c6034269db773b/pydantic_core-2.46.1-cp314-cp314-win_arm64.whl", hash = "sha256:22d4e7457ade8af06528012f382bc994a97cc2ce6e119305a70b3deff1e409d6", size = 2021109, upload-time = "2026-04-15T14:50:27.728Z" }, + { url = "https://files.pythonhosted.org/packages/36/3a/2a018968245fffd25d5f1972714121ad309ff2de19d80019ad93494844f9/pydantic_core-2.46.1-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:607ff9db0b7e2012e7eef78465e69f9a0d7d1c3e7c6a84cf0c4011db0fcc3feb", size = 2111548, upload-time = "2026-04-15T14:52:08.273Z" }, + { url = "https://files.pythonhosted.org/packages/77/5b/4103b6192213217e874e764e5467d2ff10d8873c1147d01fa432ac281880/pydantic_core-2.46.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:8cda3eacaea13bd02a1bea7e457cc9fc30b91c5a91245cef9b215140f80dd78c", size = 1926745, upload-time = "2026-04-15T14:50:03.045Z" }, + { url = "https://files.pythonhosted.org/packages/c3/70/602a667cf4be4bec6c3334512b12ae4ea79ce9bfe41dc51be1fd34434453/pydantic_core-2.46.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9493279cdc7997fe19e5ed9b41f30cbc3806bd4722adb402fedb6f6d41bd72a", size = 1965922, upload-time = "2026-04-15T14:51:12.555Z" }, + { url = "https://files.pythonhosted.org/packages/a9/24/06a89ce5323e755b7d2812189f9706b87aaebe49b34d247b380502f7992c/pydantic_core-2.46.1-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3644e5e10059999202355b6c6616e624909e23773717d8f76deb8a6e2a72328c", size = 2043221, upload-time = "2026-04-15T14:51:18.995Z" }, + { url = "https://files.pythonhosted.org/packages/2c/6e/b1d9ad907d9d76964903903349fd2e33c87db4b993cc44713edcad0fc488/pydantic_core-2.46.1-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4ad6c9de57683e26c92730991960c0c3571b8053263b042de2d3e105930b2767", size = 2243655, upload-time = "2026-04-15T14:50:10.718Z" }, + { url = "https://files.pythonhosted.org/packages/ef/73/787abfaad51174641abb04c8aa125322279b40ad7ce23c495f5a69f76554/pydantic_core-2.46.1-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:557ebaa27c7617e7088002318c679a8ce685fa048523417cd1ca52b7f516d955", size = 2295976, upload-time = "2026-04-15T14:53:09.694Z" }, + { url = "https://files.pythonhosted.org/packages/56/0b/b7c5a631b6d5153d4a1ea4923b139aea256dc3bd99c8e6c7b312c7733146/pydantic_core-2.46.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cd37e39b22b796ba0298fe81e9421dd7b65f97acfbb0fb19b33ffdda7b9a7b4", size = 2103439, upload-time = "2026-04-15T14:50:08.32Z" }, + { url = "https://files.pythonhosted.org/packages/2a/3f/952ee470df69e5674cdec1cbde22331adf643b5cc2ff79f4292d80146ee4/pydantic_core-2.46.1-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:6689443b59714992e67d62505cdd2f952d6cf1c14cc9fd9aeec6719befc6f23b", size = 2132871, upload-time = "2026-04-15T14:50:24.445Z" }, + { url = "https://files.pythonhosted.org/packages/e3/8b/1dea3b1e683c60c77a60f710215f90f486755962aa8939dbcb7c0f975ac3/pydantic_core-2.46.1-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6f32c41ca1e3456b5dd691827b7c1433c12d5f0058cc186afbb3615bc07d97b8", size = 2168658, upload-time = "2026-04-15T14:52:24.897Z" }, + { url = "https://files.pythonhosted.org/packages/67/97/32ae283810910d274d5ba9f48f856f5f2f612410b78b249f302d297816f5/pydantic_core-2.46.1-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:88cd1355578852db83954dc36e4f58f299646916da976147c20cf6892ba5dc43", size = 2171184, upload-time = "2026-04-15T14:52:34.854Z" }, + { url = "https://files.pythonhosted.org/packages/a2/57/c9a855527fe56c2072070640221f53095b0b19eaf651f3c77643c9cabbe3/pydantic_core-2.46.1-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:a170fefdb068279a473cc9d34848b85e61d68bfcc2668415b172c5dfc6f213bf", size = 2316573, upload-time = "2026-04-15T14:52:12.871Z" }, + { url = "https://files.pythonhosted.org/packages/37/b3/14c39ffc7399819c5448007c7bcb4e6da5669850cfb7dcbb727594290b48/pydantic_core-2.46.1-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:556a63ff1006934dba4eed7ea31b58274c227e29298ec398e4275eda4b905e95", size = 2378340, upload-time = "2026-04-15T14:51:02.619Z" }, + { url = "https://files.pythonhosted.org/packages/01/55/a37461fbb29c053ea4e62cfc5c2d56425cb5efbef8316e63f6d84ae45718/pydantic_core-2.46.1-cp314-cp314t-win32.whl", hash = "sha256:3b146d8336a995f7d7da6d36e4a779b7e7dff2719ac00a1eb8bd3ded00bec87b", size = 1960843, upload-time = "2026-04-15T14:52:06.103Z" }, + { url = "https://files.pythonhosted.org/packages/22/d7/97e1221197d17a27f768363f87ec061519eeeed15bbd315d2e9d1429ff03/pydantic_core-2.46.1-cp314-cp314t-win_amd64.whl", hash = "sha256:f1bc856c958e6fe9ec071e210afe6feb695f2e2e81fd8d2b102f558d364c4c17", size = 2048696, upload-time = "2026-04-15T14:52:52.154Z" }, + { url = "https://files.pythonhosted.org/packages/19/d5/4eac95255c7d35094b46a32ec1e4d80eac94729c694726ee1d69948bd5f0/pydantic_core-2.46.1-cp314-cp314t-win_arm64.whl", hash = "sha256:21a5bfd8a1aa4de60494cdf66b0c912b1495f26a8899896040021fbd6038d989", size = 2022343, upload-time = "2026-04-15T14:49:49.036Z" }, + { url = "https://files.pythonhosted.org/packages/f4/97/95de673a1356a88b2efdaa120eb6af357a81555c35f6809a7a1423ff7aef/pydantic_core-2.46.1-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:5f9107a24a4bc00293434dfa95cf8968751ad0dd703b26ea83a75a56f7326041", size = 2107564, upload-time = "2026-04-15T14:50:49.14Z" }, + { url = "https://files.pythonhosted.org/packages/00/fc/a7c16d85211ea9accddc693b7d049f20b0c06440d9264d1e1c074394ee6c/pydantic_core-2.46.1-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:2b1801ba99876984d0a03362782819238141c4d0f3f67f69093663691332fc35", size = 1939925, upload-time = "2026-04-15T14:50:36.188Z" }, + { url = "https://files.pythonhosted.org/packages/2e/23/87841169d77820ddabeb81d82002c95dcb82163846666d74f5bdeeaec750/pydantic_core-2.46.1-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7fd82a91a20ed6d54fa8c91e7a98255b1ff45bf09b051bfe7fe04eb411e232e", size = 1995313, upload-time = "2026-04-15T14:50:22.538Z" }, + { url = "https://files.pythonhosted.org/packages/ea/96/b46609359a354fa9cd336fc5d93334f1c358b756cc81e4b397347a88fa6f/pydantic_core-2.46.1-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f135bf07c92c93def97008bc4496d16934da9efefd7204e5f22a2c92523cb1f", size = 2151197, upload-time = "2026-04-15T14:51:22.925Z" }, +] + +[[package]] +name = "pygments" +version = "2.20.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c3/b2/bc9c9196916376152d655522fdcebac55e66de6603a76a02bca1b6414f6c/pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f", size = 4955991, upload-time = "2026-03-29T13:29:33.898Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176", size = 1231151, upload-time = "2026-03-29T13:29:30.038Z" }, +] + +[[package]] +name = "pytest" +version = "9.0.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "iniconfig" }, + { name = "packaging" }, + { name = "pluggy" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7d/0d/549bd94f1a0a402dc8cf64563a117c0f3765662e2e668477624baeec44d5/pytest-9.0.3.tar.gz", hash = "sha256:b86ada508af81d19edeb213c681b1d48246c1a91d304c6c81a427674c17eb91c", size = 1572165, upload-time = "2026-04-07T17:16:18.027Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d4/24/a372aaf5c9b7208e7112038812994107bc65a84cd00e0354a88c2c77a617/pytest-9.0.3-py3-none-any.whl", hash = "sha256:2c5efc453d45394fdd706ade797c0a81091eccd1d6e4bccfcd476e2b8e0ab5d9", size = 375249, upload-time = "2026-04-07T17:16:16.13Z" }, +] + +[[package]] +name = "python-dotenv" +version = "1.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/82/ed/0301aeeac3e5353ef3d94b6ec08bbcabd04a72018415dcb29e588514bba8/python_dotenv-1.2.2.tar.gz", hash = "sha256:2c371a91fbd7ba082c2c1dc1f8bf89ca22564a087c2c287cd9b662adde799cf3", size = 50135, upload-time = "2026-03-01T16:00:26.196Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl", hash = "sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a", size = 22101, upload-time = "2026-03-01T16:00:25.09Z" }, +] + +[[package]] +name = "requests" +version = "2.33.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5f/a4/98b9c7c6428a668bf7e42ebb7c79d576a1c3c1e3ae2d47e674b468388871/requests-2.33.1.tar.gz", hash = "sha256:18817f8c57c6263968bc123d237e3b8b08ac046f5456bd1e307ee8f4250d3517", size = 134120, upload-time = "2026-03-30T16:09:15.531Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d7/8e/7540e8a2036f79a125c1d2ebadf69ed7901608859186c856fa0388ef4197/requests-2.33.1-py3-none-any.whl", hash = "sha256:4e6d1ef462f3626a1f0a0a9c42dd93c63bad33f9f1c1937509b8c5c8718ab56a", size = 64947, upload-time = "2026-03-30T16:09:13.83Z" }, +] + +[[package]] +name = "sgmllib3k" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9e/bd/3704a8c3e0942d711c1299ebf7b9091930adae6675d7c8f476a7ce48653c/sgmllib3k-1.0.0.tar.gz", hash = "sha256:7868fb1c8bfa764c1ac563d3cf369c381d1325d36124933a726f29fcdaa812e9", size = 5750, upload-time = "2010-08-24T14:33:52.445Z" } + +[[package]] +name = "starlette" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/81/69/17425771797c36cded50b7fe44e850315d039f28b15901ab44839e70b593/starlette-1.0.0.tar.gz", hash = "sha256:6a4beaf1f81bb472fd19ea9b918b50dc3a77a6f2e190a12954b25e6ed5eea149", size = 2655289, upload-time = "2026-03-22T18:29:46.779Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl", hash = "sha256:d3ec55e0bb321692d275455ddfd3df75fff145d009685eb40dc91fc66b03d38b", size = 72651, upload-time = "2026-03-22T18:29:45.111Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, +] + +[[package]] +name = "typing-inspection" +version = "0.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949, upload-time = "2025-10-01T02:14:41.687Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload-time = "2025-10-01T02:14:40.154Z" }, +] + +[[package]] +name = "urllib3" +version = "2.6.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556, upload-time = "2026-01-07T16:24:43.925Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", size = 131584, upload-time = "2026-01-07T16:24:42.685Z" }, +] + +[[package]] +name = "uvicorn" +version = "0.44.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5e/da/6eee1ff8b6cbeed47eeb5229749168e81eb4b7b999a1a15a7176e51410c9/uvicorn-0.44.0.tar.gz", hash = "sha256:6c942071b68f07e178264b9152f1f16dfac5da85880c4ce06366a96d70d4f31e", size = 86947, upload-time = "2026-04-06T09:23:22.826Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/23/a5bbd9600dd607411fa644c06ff4951bec3a4d82c4b852374024359c19c0/uvicorn-0.44.0-py3-none-any.whl", hash = "sha256:ce937c99a2cc70279556967274414c087888e8cec9f9c94644dfca11bd3ced89", size = 69425, upload-time = "2026-04-06T09:23:21.524Z" }, +] diff --git a/Semaine_08/orderflow/.python-version b/Semaine_08/orderflow/.python-version new file mode 100644 index 0000000..e4fba21 --- /dev/null +++ b/Semaine_08/orderflow/.python-version @@ -0,0 +1 @@ +3.12 diff --git a/Semaine_08/orderflow/README.md b/Semaine_08/orderflow/README.md new file mode 100644 index 0000000..e69de29 diff --git a/Semaine_08/orderflow/analytics_service/consumer.py b/Semaine_08/orderflow/analytics_service/consumer.py new file mode 100644 index 0000000..822605d --- /dev/null +++ b/Semaine_08/orderflow/analytics_service/consumer.py @@ -0,0 +1,53 @@ +import sys, os, json +from collections import defaultdict + +sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + +from kafka import KafkaConsumer +from shared.events import BOOTSTRAP_SERVERS, TOPIC_ORDERS, TOPIC_PAYMENTS, TOPIC_NOTIFICATIONS + +TOPIC_ORDERS_DLQ = "orders_dlq" + +stats = defaultdict(int) + +def run(): + consumer = KafkaConsumer( + TOPIC_ORDERS, + TOPIC_ORDERS_DLQ, + TOPIC_PAYMENTS, + bootstrap_servers=BOOTSTRAP_SERVERS, + group_id="analytics_service", + auto_offset_reset="earliest", + value_deserializer=lambda v: json.loads(v.decode("utf-8")) + ) + + print("[ANALYTICS SERVICE] Service d'analyse démarré, en attente d'évènements...") + + for message in consumer: + event = message.value + event_type = event["type"] + payload = event["payload"] + + stats[event_type] += 1 + + if event_type == "order_created": + order_id = payload["order_id"] + total = payload["total_amount"] + print(f"[ANALYTICS SERVICE] Nouvelle commande {order_id} - total {total}€ " + f"| commandes reçues : {stats['order_created']}") + + elif event_type == "payment.confirmed": + stats["revenue"] = stats.get("revenue", 0) + payload["amount"] + print(f"[ANALYTICS SERVICE] Paiement confirmé - commande {payload['order_id']}, " + f"{payload['amount']}€ | CA total : {stats['revenue']}€") + + elif event_type == "payment.failed": + print(f"[ANALYTICS SERVICE] Paiement échoué - commande {payload['order_id']} " + f"| échecs : {stats['payment.failed']}") + + elif event_type == "order.preparation_started": + print(f"[ANALYTICS SERVICE] Préparation démarrée - commande {payload['order_id']} " + f"| en préparation : {stats['order.preparation_started']}") + +if __name__ == "__main__": + run() \ No newline at end of file diff --git a/Semaine_08/orderflow/docker-compose.yml b/Semaine_08/orderflow/docker-compose.yml new file mode 100644 index 0000000..e120176 --- /dev/null +++ b/Semaine_08/orderflow/docker-compose.yml @@ -0,0 +1,44 @@ +services: + kafka: + image: confluentinc/cp-kafka:7.5.0 + container_name: commandflow-kafka + hostname: kafka + ports: + - "9092:9092" + environment: + KAFKA_NODE_ID: 1 + KAFKA_PROCESS_ROLES: broker,controller + KAFKA_CONTROLLER_QUORUM_VOTERS: 1@kafka:29093 + # Deux listeners : + # PLAINTEXT → pour les containers Docker entre eux (kafka:29092) + # PLAINTEXT_HOST → pour les services Python sur la machine hôte (localhost:9092) + KAFKA_LISTENERS: PLAINTEXT://kafka:29092,PLAINTEXT_HOST://0.0.0.0:9092,CONTROLLER://kafka:29093 + KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,PLAINTEXT_HOST://localhost:9092 + KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT,CONTROLLER:PLAINTEXT + KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT + KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER + KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 + KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1 + KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1 + KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0 + CLUSTER_ID: MkU3OEVBNTcwNTJENDM2Qk + healthcheck: + # Vérifie que Kafka accepte des connexions avant de laisser kafdrop démarrer + test: ["CMD", "kafka-topics", "--bootstrap-server", "localhost:9092", "--list"] + interval: 10s + timeout: 10s + retries: 10 + start_period: 20s + + kafdrop: + image: obsidiandynamics/kafdrop:latest + container_name: commandflow-kafdrop + hostname: kafdrop # évite un bug DNS du container + ports: + - "9000:9000" + environment: + KAFKA_BROKERCONNECT: "kafka:29092" + depends_on: + kafka: + condition: service_healthy # attend que Kafka soit vraiment prêt + restart: on-failure \ No newline at end of file diff --git a/Semaine_08/orderflow/kitchen_service/consumer.py b/Semaine_08/orderflow/kitchen_service/consumer.py new file mode 100644 index 0000000..4ca4dd3 --- /dev/null +++ b/Semaine_08/orderflow/kitchen_service/consumer.py @@ -0,0 +1,54 @@ +import sys, os, json + +sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + +from kafka import KafkaConsumer, KafkaProducer +from shared.events import BOOTSTRAP_SERVERS, TOPIC_PAYMENTS, TOPIC_NOTIFICATIONS, make_event + +def run(): + consumer = KafkaConsumer( + TOPIC_PAYMENTS, + bootstrap_servers=BOOTSTRAP_SERVERS, + group_id="kitchen_service", + auto_offset_reset="latest", + value_deserializer=lambda v: json.loads(v.decode("utf-8")) + ) + + producer = KafkaProducer( + bootstrap_servers=BOOTSTRAP_SERVERS, + key_serializer=str.encode, + value_serializer=lambda v: json.dumps(v).encode(), + acks="all" + ) + + print("[KITCHEN SERVICE] Service de cuisine démarré, en attente d'évènements...") + + for message in consumer: + event = message.value + + if event["type"] != "payment.confirmed": + continue + + payload = event["payload"] + order_id = payload["order_id"] + restaurant_id = payload["restaurant_id"] + + print(f"[KITCHEN SERVICE] Paiement confirmé - démarrage de la préparation de la commande {order_id}") + + result = make_event("order.preparation_started", { + "order_id": order_id, + "customer_id": payload["customer_id"], + "restaurant_id": restaurant_id + }) + + producer.send( + topic=TOPIC_NOTIFICATIONS, + key=str(restaurant_id), + value=result + ) + producer.flush() + + print(f"[KITCHEN SERVICE] Préparation de la commande {order_id} commencée") + +if __name__ == "__main__": + run() \ No newline at end of file diff --git a/Semaine_08/orderflow/main.py b/Semaine_08/orderflow/main.py new file mode 100644 index 0000000..2a31237 --- /dev/null +++ b/Semaine_08/orderflow/main.py @@ -0,0 +1,6 @@ +def main(): + print("Hello from orderflow!") + + +if __name__ == "__main__": + main() diff --git a/Semaine_08/orderflow/notif_service/consumer.py b/Semaine_08/orderflow/notif_service/consumer.py new file mode 100644 index 0000000..500f108 --- /dev/null +++ b/Semaine_08/orderflow/notif_service/consumer.py @@ -0,0 +1,39 @@ +import sys, os, json + +sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + +from kafka import KafkaConsumer +from shared.events import BOOTSTRAP_SERVERS, TOPIC_ORDERS, TOPIC_PAYMENTS, TOPIC_NOTIFICATIONS + +def run(): + consumer = KafkaConsumer( + TOPIC_PAYMENTS, + TOPIC_ORDERS, + bootstrap_servers=BOOTSTRAP_SERVERS, + group_id="notif_service", + auto_offset_reset="latest", + value_deserializer=lambda v: json.loads(v.decode("utf-8")) + ) + + print("[NOTIFICATION SERVICE] Service de notification démarré, en attente d'évènements...") + + for message in consumer: + event = message.value + event_type = event["type"] + payload = event["payload"] + order_id = payload["order_id"] + + if event_type == "payment.confirmed": + print(f"[NOTIFICATION SERVICE] 🎉 Paiement confirmé pour la commande {order_id} " + f"(client {payload['customer_id']}, montant {payload['amount']}€)") + + elif event_type == "payment.failed": + print(f"[NOTIFICATION SERVICE] ❌ Paiement échoué pour la commande {order_id} " + f"(client {payload['customer_id']}, montant {payload['amount']}€)") + + elif event_type == "order.preparation_started": + print(f"[NOTIFICATION SERVICE] 🍳 Préparation commencée pour la commande {order_id} " + f"(restaurant {payload['restaurant_id']})") + +if __name__ == "__main__": + run() \ No newline at end of file diff --git a/Semaine_08/orderflow/order_service/main.py b/Semaine_08/orderflow/order_service/main.py new file mode 100644 index 0000000..447c9d0 --- /dev/null +++ b/Semaine_08/orderflow/order_service/main.py @@ -0,0 +1,40 @@ +import sys, os +sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + +from uuid import uuid4 +from fastapi import FastAPI + +from fastapi.responses import JSONResponse +from pydantic import BaseModel +from producer import OrderProducer + +app = FastAPI() +producer = OrderProducer() +orders_db: list[dict] = [] + +class OrderItem(BaseModel): + dish_id: int + name: str + price: float + +class CreateOrderDto(BaseModel): + customer_id: int + restaurant_id: int + items: list[OrderItem] + +@app.post("/orders") +async def place_order(payload: CreateOrderDto): + order = { + "order_id": uuid4().hex, + "customer_id": payload.customer_id, + "restaurant_id": payload.restaurant_id, + "items": [ item.model_dump() for item in payload.items ], + "total_amount": sum([ item.price for item in payload.items ]) + } + + producer.publish_order_created(order) + + return JSONResponse( + status_code= 202, + content= {"message": "Commande acceptee", "order_id": order["order_id"]} + ) \ No newline at end of file diff --git a/Semaine_08/orderflow/order_service/producer.py b/Semaine_08/orderflow/order_service/producer.py new file mode 100644 index 0000000..7211771 --- /dev/null +++ b/Semaine_08/orderflow/order_service/producer.py @@ -0,0 +1,26 @@ +import json + +from kafka import KafkaProducer +from shared.events import BOOTSTRAP_SERVERS, make_event, TOPIC_ORDERS + +class OrderProducer: + def __init__(self): + self.producer = KafkaProducer( + bootstrap_servers=BOOTSTRAP_SERVERS, + key_serializer= str.encode, # convertir en bytes "3" -> b"3" + value_serializer=lambda v: json.dumps(v).encode(), + acks= "all" + ) + + def publish_order_created(self, order: dict): + event = make_event( + "order_created", + order + ) + + self.producer.send( + TOPIC_ORDERS, + value=event + ) + + self.producer.flush() diff --git a/Semaine_08/orderflow/payment_service/consumer.py b/Semaine_08/orderflow/payment_service/consumer.py new file mode 100644 index 0000000..36aeddc --- /dev/null +++ b/Semaine_08/orderflow/payment_service/consumer.py @@ -0,0 +1,67 @@ +import sys, os, random, json + +sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + +from kafka import KafkaConsumer, KafkaProducer +from shared.events import BOOTSTRAP_SERVERS, TOPIC_ORDERS, TOPIC_PAYMENTS, make_event + +def simulate_payment(amount: float) -> bool: + return random.random() > 0.1 + +def run(): + consumer = KafkaConsumer( + TOPIC_ORDERS, + bootstrap_servers=BOOTSTRAP_SERVERS, + group_id="payment_service", + auto_offset_reset="latest", + value_deserializer=lambda v: json.loads(v.decode("utf-8")) + ) + + producer = KafkaProducer( + bootstrap_servers=BOOTSTRAP_SERVERS, + key_serializer=str.encode, + value_serializer=lambda v: json.dumps(v).encode(), + acks="all" + ) + + print("[PAYMENT SERVICE] Service de paiement démarré, en attente d'évènements...") + + for message in consumer: + event = message.value + + if event["type"] != "order_created": + continue + + payload = event["payload"] + order_id = payload["order_id"] + restaurant_id = payload["restaurant_id"] + amount = payload["total_amount"] + + print(f"[PAYMENT SERVICE] Traitement en cours : commande {order_id}, total {amount}€") + + if simulate_payment(amount): + result = make_event("payment.confirmed", { + "order_id": order_id, + "customer_id": payload["customer_id"], + "restaurant_id": restaurant_id, + "amount": amount + }) + print(f"[PAYMENT SERVICE] Paiement confirmé pour la commande {order_id}") + else: + result = make_event("payment.failed", { + "order_id": order_id, + "customer_id": payload["customer_id"], + "restaurant_id": restaurant_id, + "amount": amount + }) + print(f"[PAYMENT SERVICE] Paiement échoué pour la commande {order_id}") + + producer.send( + topic=TOPIC_PAYMENTS, + key=str(restaurant_id), + value=result + ) + producer.flush() + +if __name__ == "__main__": + run() \ No newline at end of file diff --git a/Semaine_08/orderflow/pyproject.toml b/Semaine_08/orderflow/pyproject.toml new file mode 100644 index 0000000..3d8382d --- /dev/null +++ b/Semaine_08/orderflow/pyproject.toml @@ -0,0 +1,10 @@ +[project] +name = "orderflow" +version = "0.1.0" +description = "Add your description here" +readme = "README.md" +requires-python = ">=3.12" +dependencies = [ + "fastapi[standard]>=0.135.3", + "kafka-python>=2.0.0", +] diff --git a/Semaine_08/orderflow/request.http b/Semaine_08/orderflow/request.http new file mode 100644 index 0000000..2a16bf2 --- /dev/null +++ b/Semaine_08/orderflow/request.http @@ -0,0 +1,11 @@ +POST http://localhost:9000/orders +Content-Type: application/json + +{ + "customer_id": 7, + "restaurant_id": 3, + "items": [ + {"dish_id": 12, "name": "Pizza Margherita", "price": 11.50}, + {"dish_id": 8, "name": "Tiramisu", "price": 5.00} + ], +} \ No newline at end of file diff --git a/Semaine_08/orderflow/seed.py b/Semaine_08/orderflow/seed.py new file mode 100644 index 0000000..862ea59 --- /dev/null +++ b/Semaine_08/orderflow/seed.py @@ -0,0 +1,168 @@ +""" +seed.py — Envoie une série de commandes CommandFlow pour observer le flux complet. + +Usage : + uv run python seed.py # envoie 10 commandes normales + uv run python seed.py --all # inclut des commandes avec montant invalide (DLQ) + uv run python seed.py --count 5 # envoie 5 commandes + +Ce script publie directement sur Kafka (sans passer par l'API FastAPI). +Il utilise OrderProducer, le même producer qu'order-service. + +Pour observer le flux : + 1. Lancer Kafka : docker compose up -d + 2. Lancer les consumers dans des terminaux séparés + 3. Lancer ce script + 4. Observer les logs de chaque consumer + 5. Ouvrir Kafdrop sur http://localhost:9000 pour voir les topics +""" +import sys +import os +import time +import argparse +import random + +# Ajoute les dossiers nécessaires au path +BASE_DIR = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, BASE_DIR) +sys.path.insert(0, os.path.join(BASE_DIR, "order_service")) + +# order-service contient un tiret → on ne peut pas faire "import order-service.producer" +# On ajoute le dossier au path et on importe directement producer.py +import importlib.util as _ilu + +_spec = _ilu.spec_from_file_location( + "order_producer", + os.path.join(BASE_DIR, "order_service", "producer.py"), +) +_mod = _ilu.module_from_spec(_spec) +_spec.loader.exec_module(_mod) +OrderProducer = _mod.OrderProducer + + +# --------------------------------------------------------------------------- +# Données de test +# --------------------------------------------------------------------------- + +RESTAURANTS = [ + {"id": 1, "name": "Pizza Roma"}, + {"id": 2, "name": "Sushi Zen"}, + {"id": 3, "name": "Burger Lab"}, +] + +MENUS = { + 1: [ # Pizza Roma + {"dish_id": 101, "name": "Margherita", "price": 12.50}, + {"dish_id": 102, "name": "Quattro Stagioni", "price": 14.00}, + {"dish_id": 103, "name": "Tiramisu", "price": 5.50}, + {"dish_id": 104, "name": "Coca-Cola", "price": 3.00}, + ], + 2: [ # Sushi Zen + {"dish_id": 201, "name": "California Roll x8", "price": 11.00}, + {"dish_id": 202, "name": "Saumon Tataki", "price": 13.50}, + {"dish_id": 203, "name": "Edamame", "price": 4.50}, + {"dish_id": 204, "name": "Thé vert", "price": 2.50}, + ], + 3: [ # Burger Lab + {"dish_id": 301, "name": "Classic Smash", "price": 10.00}, + {"dish_id": 302, "name": "Double Bacon", "price": 13.00}, + {"dish_id": 303, "name": "Frites maison", "price": 4.00}, + {"dish_id": 304, "name": "Milkshake", "price": 5.00}, + ], +} + + +def random_order(customer_id: int, order_id: int) -> dict: + """Génère une commande aléatoire réaliste.""" + restaurant = random.choice(RESTAURANTS) + menu = MENUS[restaurant["id"]] + + # 1 à 3 plats aléatoires du menu + items = random.sample(menu, k=random.randint(1, 3)) + total = round(sum(item["price"] for item in items), 2) + + return { + "order_id": order_id, + "customer_id": customer_id, + "restaurant_id": restaurant["id"], + "items": items, + "total_amount": total, + } + + +def invalid_order(customer_id: int, order_id: int) -> dict: + """Génère une commande avec un montant invalide pour déclencher la DLQ.""" + return { + "order_id": order_id, + "customer_id": customer_id, + "restaurant_id": 1, + "items": [{"dish_id": 999, "name": "Plat inexistant", "price": -5.00}], + "total_amount": -5.00, # ← invalide : payment-service lèvera une ValueError + } + + +# --------------------------------------------------------------------------- +# Script principal +# --------------------------------------------------------------------------- + +def main(): + parser = argparse.ArgumentParser(description="Seed CommandFlow avec des commandes de test.") + parser.add_argument("--count", type=int, default=10, help="Nombre de commandes à envoyer (défaut : 10)") + parser.add_argument("--all", action="store_true", help="Inclut 2 commandes invalides (pour tester la DLQ)") + parser.add_argument("--delay", type=float, default=0.5, help="Délai entre chaque message en secondes (défaut : 0.5)") + args = parser.parse_args() + + producer = OrderProducer() + + print("=" * 60) + print(" CommandFlow — seed") + print("=" * 60) + print(f" Commandes à envoyer : {args.count}") + print(f" Délai entre messages : {args.delay}s") + print(f" Commandes invalides : {'oui (DLQ)' if args.all else 'non'}") + print("=" * 60) + print() + + orders = [] + + # Génère les commandes normales + for i in range(1, args.count + 1): + customer_id = random.randint(1, 50) + orders.append(("normal", random_order(customer_id, order_id=i))) + + # Insère 2 commandes invalides si --all + if args.all: + bad_id_1 = args.count + 1 + bad_id_2 = args.count + 2 + orders.insert(len(orders) // 3, ("invalid", invalid_order(99, bad_id_1))) + orders.insert(2 * len(orders) // 3, ("invalid", invalid_order(99, bad_id_2))) + + # Envoi + sent = 0 + for kind, order in orders: + tag = "⚠ INVALIDE" if kind == "invalid" else "✓" + print( + f"[seed] {tag} order_id={order['order_id']:>3} " + f"| customer={order['customer_id']:>2} " + f"| resto_id={order['restaurant_id']} " + f"| total={order['total_amount']:>6.2f}€ " + f"| items={len(order['items'])}" + ) + producer.publish_order_created(order) + sent += 1 + time.sleep(args.delay) + + print() + print("=" * 60) + print(f" {sent} messages publiés sur le topic 'orders'.") + print() + print(" Pour observer le flux :") + print(" → Kafdrop : http://localhost:9000") + print(" → Topics : orders, payments, notifications") + if args.all: + print(" → DLQ : orders-dlq (2 messages attendus)") + print("=" * 60) + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/Semaine_08/orderflow/shared/events.py b/Semaine_08/orderflow/shared/events.py new file mode 100644 index 0000000..2b7cb1b --- /dev/null +++ b/Semaine_08/orderflow/shared/events.py @@ -0,0 +1,17 @@ +from datetime import datetime, timezone +from uuid import uuid4 +import os + +TOPIC_ORDERS= "orders" +TOPIC_PAYMENTS= "payments" +TOPIC_NOTIFICATIONS= "notifications" + +BOOTSTRAP_SERVERS= os.getenv("BOOTSTRAP_SERVERS", "localhost:9092") + +def make_event(event_type: str, payload: dict) -> dict: + return { + "id": str(uuid4()), + "type": event_type, + "timestamp": datetime.now(timezone.utc).isoformat(), + "payload": payload + } \ No newline at end of file diff --git a/Semaine_08/orderflow/start_consumer.py b/Semaine_08/orderflow/start_consumer.py new file mode 100644 index 0000000..a54f239 --- /dev/null +++ b/Semaine_08/orderflow/start_consumer.py @@ -0,0 +1,89 @@ +""" +start_consumers.py — Lance les 3 consumers CommandFlow dans des fenêtres séparées. + +Fonctionne sur Windows, macOS et Linux sans dépendance externe. + +Usage : + uv run python start_consumers.py +""" +import subprocess +import sys +import os +import platform + +BASE_DIR = os.path.dirname(os.path.abspath(__file__)) + +CONSUMERS = [ + ("payment_service", "payment_service/consumer.py"), + ("kitchen_service", "kitchen_service/consumer.py"), + ("notif_service", "notif_service/consumer.py"), + ("analytics_service", "analytics_service/consumer.py"), +] + + +def open_in_new_terminal(title: str, script_path: str) -> None: + """Ouvre le script dans une nouvelle fenêtre de terminal, selon l'OS.""" + uv = "uv" + cmd = f"uv run python {script_path}" + system = platform.system() + + if system == "Windows": + # start /WAIT ouvre une nouvelle fenêtre cmd et la garde ouverte + subprocess.Popen( + ["cmd", "/c", "start", f'"{title}"', "cmd", "/k", cmd], + cwd=BASE_DIR, + shell=False, + ) + + elif system == "Darwin": # macOS + # osascript pilote Terminal.app + apple_script = ( + f'tell application "Terminal" to activate\n' + f'tell application "Terminal" to do script ' + f'"cd \\"{BASE_DIR}\\" && echo \'=== {title} ===' + "'" + + f' && {cmd}"' + ) + subprocess.Popen(["osascript", "-e", apple_script]) + + else: # Linux + # Essaie gnome-terminal, puis xterm en fallback + if _cmd_exists("gnome-terminal"): + subprocess.Popen( + ["gnome-terminal", f"--title={title}", "--", + "bash", "-c", f"cd '{BASE_DIR}' && {cmd}; exec bash"], + ) + elif _cmd_exists("xterm"): + subprocess.Popen( + ["xterm", "-title", title, "-e", + f"cd '{BASE_DIR}' && {cmd}; exec bash"], + ) + else: + print(f" ⚠ Impossible d'ouvrir un terminal pour {title}.") + print(f" Lance manuellement : {cmd}") + + +def _cmd_exists(name: str) -> bool: + import shutil + return shutil.which(name) is not None + + +def main(): + print() + print("╔══════════════════════════════════════╗") + print("║ CommandFlow — démarrage consumers ║") + print(f"║ OS détecté : {platform.system():<23}║") + print("╚══════════════════════════════════════╝") + print() + + for title, script in CONSUMERS: + open_in_new_terminal(title, script) + print(f" ✓ {title}") + + print() + print(" Consumers actifs. Lance le seed :") + print(" uv run python seed.py --delay 1.5") + print() + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/Semaine_08/orderflow/test.py b/Semaine_08/orderflow/test.py new file mode 100644 index 0000000..19e4bf8 --- /dev/null +++ b/Semaine_08/orderflow/test.py @@ -0,0 +1,6 @@ +""" +Broker: intermédiaire +- recevoir +- stocker (définir un délai) +- distribuer +""" \ No newline at end of file diff --git a/Semaine_08/orderflow/uv.lock b/Semaine_08/orderflow/uv.lock new file mode 100644 index 0000000..7d6d012 --- /dev/null +++ b/Semaine_08/orderflow/uv.lock @@ -0,0 +1,966 @@ +version = 1 +revision = 3 +requires-python = ">=3.12" +resolution-markers = [ + "python_full_version >= '3.14'", + "python_full_version == '3.13.*'", + "python_full_version < '3.13'", +] + +[[package]] +name = "annotated-doc" +version = "0.0.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/57/ba/046ceea27344560984e26a590f90bc7f4a75b06701f653222458922b558c/annotated_doc-0.0.4.tar.gz", hash = "sha256:fbcda96e87e9c92ad167c2e53839e57503ecfda18804ea28102353485033faa4", size = 7288, upload-time = "2025-11-10T22:07:42.062Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/d3/26bf1008eb3d2daa8ef4cacc7f3bfdc11818d111f7e2d0201bc6e3b49d45/annotated_doc-0.0.4-py3-none-any.whl", hash = "sha256:571ac1dc6991c450b25a9c2d84a3705e2ae7a53467b5d111c24fa8baabbed320", size = 5303, upload-time = "2025-11-10T22:07:40.673Z" }, +] + +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload-time = "2024-05-20T21:33:25.928Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" }, +] + +[[package]] +name = "anyio" +version = "4.13.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/14/2c5dd9f512b66549ae92767a9c7b330ae88e1932ca57876909410251fe13/anyio-4.13.0.tar.gz", hash = "sha256:334b70e641fd2221c1505b3890c69882fe4a2df910cba14d97019b90b24439dc", size = 231622, upload-time = "2026-03-24T12:59:09.671Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/da/42/e921fccf5015463e32a3cf6ee7f980a6ed0f395ceeaa45060b61d86486c2/anyio-4.13.0-py3-none-any.whl", hash = "sha256:08b310f9e24a9594186fd75b4f73f4a4152069e3853f1ed8bfbf58369f4ad708", size = 114353, upload-time = "2026-03-24T12:59:08.246Z" }, +] + +[[package]] +name = "certifi" +version = "2026.2.25" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/af/2d/7bf41579a8986e348fa033a31cdd0e4121114f6bce2457e8876010b092dd/certifi-2026.2.25.tar.gz", hash = "sha256:e887ab5cee78ea814d3472169153c2d12cd43b14bd03329a39a9c6e2e80bfba7", size = 155029, upload-time = "2026-02-25T02:54:17.342Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl", hash = "sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa", size = 153684, upload-time = "2026-02-25T02:54:15.766Z" }, +] + +[[package]] +name = "click" +version = "8.3.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/57/75/31212c6bf2503fdf920d87fee5d7a86a2e3bcf444984126f13d8e4016804/click-8.3.2.tar.gz", hash = "sha256:14162b8b3b3550a7d479eafa77dfd3c38d9dc8951f6f69c78913a8f9a7540fd5", size = 302856, upload-time = "2026-04-03T19:14:45.118Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e4/20/71885d8b97d4f3dde17b1fdb92dbd4908b00541c5a3379787137285f602e/click-8.3.2-py3-none-any.whl", hash = "sha256:1924d2c27c5653561cd2cae4548d1406039cb79b858b747cfea24924bbc1616d", size = 108379, upload-time = "2026-04-03T19:14:43.505Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "dnspython" +version = "2.8.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8c/8b/57666417c0f90f08bcafa776861060426765fdb422eb10212086fb811d26/dnspython-2.8.0.tar.gz", hash = "sha256:181d3c6996452cb1189c4046c61599b84a5a86e099562ffde77d26984ff26d0f", size = 368251, upload-time = "2025-09-07T18:58:00.022Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ba/5a/18ad964b0086c6e62e2e7500f7edc89e3faa45033c71c1893d34eed2b2de/dnspython-2.8.0-py3-none-any.whl", hash = "sha256:01d9bbc4a2d76bf0db7c1f729812ded6d912bd318d3b1cf81d30c0f845dbf3af", size = 331094, upload-time = "2025-09-07T18:57:58.071Z" }, +] + +[[package]] +name = "email-validator" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "dnspython" }, + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f5/22/900cb125c76b7aaa450ce02fd727f452243f2e91a61af068b40adba60ea9/email_validator-2.3.0.tar.gz", hash = "sha256:9fc05c37f2f6cf439ff414f8fc46d917929974a82244c20eb10231ba60c54426", size = 51238, upload-time = "2025-08-26T13:09:06.831Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/15/545e2b6cf2e3be84bc1ed85613edd75b8aea69807a71c26f4ca6a9258e82/email_validator-2.3.0-py3-none-any.whl", hash = "sha256:80f13f623413e6b197ae73bb10bf4eb0908faf509ad8362c5edeb0be7fd450b4", size = 35604, upload-time = "2025-08-26T13:09:05.858Z" }, +] + +[[package]] +name = "fastapi" +version = "0.135.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-doc" }, + { name = "pydantic" }, + { name = "starlette" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/e6/7adb4c5fa231e82c35b8f5741a9f2d055f520c29af5546fd70d3e8e1cd2e/fastapi-0.135.3.tar.gz", hash = "sha256:bd6d7caf1a2bdd8d676843cdcd2287729572a1ef524fc4d65c17ae002a1be654", size = 396524, upload-time = "2026-04-01T16:23:58.188Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/a4/5caa2de7f917a04ada20018eccf60d6cc6145b0199d55ca3711b0fc08312/fastapi-0.135.3-py3-none-any.whl", hash = "sha256:9b0f590c813acd13d0ab43dd8494138eb58e484bfac405db1f3187cfc5810d98", size = 117734, upload-time = "2026-04-01T16:23:59.328Z" }, +] + +[package.optional-dependencies] +standard = [ + { name = "email-validator" }, + { name = "fastapi-cli", extra = ["standard"] }, + { name = "httpx" }, + { name = "jinja2" }, + { name = "pydantic-extra-types" }, + { name = "pydantic-settings" }, + { name = "python-multipart" }, + { name = "uvicorn", extra = ["standard"] }, +] + +[[package]] +name = "fastapi-cli" +version = "0.0.24" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "rich-toolkit" }, + { name = "typer" }, + { name = "uvicorn", extra = ["standard"] }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6e/58/74797ae9e4610cfa0c6b34c8309096d3b20bb29be3b8b5fbf1004d10fa5f/fastapi_cli-0.0.24.tar.gz", hash = "sha256:1afc9c9e21d7ebc8a3ca5e31790cd8d837742be7e4f8b9236e99cb3451f0de00", size = 19043, upload-time = "2026-02-24T10:45:10.476Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/4b/68f9fe268e535d79c76910519530026a4f994ce07189ac0dded45c6af825/fastapi_cli-0.0.24-py3-none-any.whl", hash = "sha256:4a1f78ed798f106b4fee85ca93b85d8fe33c0a3570f775964d37edb80b8f0edc", size = 12304, upload-time = "2026-02-24T10:45:09.552Z" }, +] + +[package.optional-dependencies] +standard = [ + { name = "fastapi-cloud-cli" }, + { name = "uvicorn", extra = ["standard"] }, +] + +[[package]] +name = "fastapi-cloud-cli" +version = "0.17.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "fastar" }, + { name = "httpx" }, + { name = "pydantic", extra = ["email"] }, + { name = "rich-toolkit" }, + { name = "rignore" }, + { name = "sentry-sdk" }, + { name = "typer" }, + { name = "uvicorn", extra = ["standard"] }, +] +sdist = { url = "https://files.pythonhosted.org/packages/67/79/66567c39c5fab6dbebf9e40b3a3fcb0e2ec359517c87a67434c76b06e60b/fastapi_cloud_cli-0.17.0.tar.gz", hash = "sha256:2b6c241b63427023bd1e23b3251f23234aba4b05428b245a050e92db1389823c", size = 47276, upload-time = "2026-04-15T13:17:56.402Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/50/31/fa442466bacadffec3d6611509d6ea391b6ca01b6ee0d4af835bfdea3483/fastapi_cloud_cli-0.17.0-py3-none-any.whl", hash = "sha256:b496e6998f037f572ab06a233ce257828b4c701488ce500b5c9d725e970a7cb1", size = 33936, upload-time = "2026-04-15T13:17:55.112Z" }, +] + +[[package]] +name = "fastar" +version = "0.11.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/03/0f/0aeb3fc50046617702acc0078b277b58367fd62eb727b9ec733ae0e8bbcc/fastar-0.11.0.tar.gz", hash = "sha256:aa7f100f7313c03fdb20f1385927ba95671071ba308ad0c1763fef295e1895ce", size = 70238, upload-time = "2026-04-13T17:11:17.143Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0f/06/a5773706afc8bd496769786590bbc56d2d0ee419a299cc12ea3f5717fcf3/fastar-0.11.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:3c51f1c2cdddbd1420d2897ace7738e36c65e17f6ae84e0bfe763f8d1068bb97", size = 708394, upload-time = "2026-04-13T17:09:57.269Z" }, + { url = "https://files.pythonhosted.org/packages/cc/a6/d5e2a4e48495616440a21eed07558219ca90243ad00b0502586f95bd4833/fastar-0.11.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0d9d6b052baf5380baea866675dab6ccd04ec2460d12b1c46f10ce3f4ee6a820", size = 628417, upload-time = "2026-04-13T17:09:42.145Z" }, + { url = "https://files.pythonhosted.org/packages/ab/69/9816d69ac8265c9e50456637a487ccfb7a9c566efd9dbcd673df9c2558c2/fastar-0.11.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:bd2f05666d4df7e14885b5c38fefd92a785917387513d33d837ff42ec143a22f", size = 863950, upload-time = "2026-04-13T17:09:11.506Z" }, + { url = "https://files.pythonhosted.org/packages/5b/0d/f88daad53aff2e754b6b5ff2a7113f72447a34f6ef17cc23ca99988117b7/fastar-0.11.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c1e6e74aba1ae77ca4aedcaf1697cd413319f4c88a5ccbe5b42c709517c5097e", size = 760737, upload-time = "2026-04-13T17:07:55.958Z" }, + { url = "https://files.pythonhosted.org/packages/2f/a6/82ef4ecd969d50d92ed3ed9dbd8fe77faa24be5e5736f716edc9f4ce8d62/fastar-0.11.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:38ef77fe940bbc9b37a98bd838727f844b11731cd39358a2640ff864fb385086", size = 757603, upload-time = "2026-04-13T17:08:10.623Z" }, + { url = "https://files.pythonhosted.org/packages/03/35/50249f0d827251f8ac511495e2eacccebda80a00a0ad73e9615b8113b84f/fastar-0.11.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8955e61b32d6aff82c983217abf80933fd823b0e727586fc72f08043d996fd59", size = 923952, upload-time = "2026-04-13T17:08:25.526Z" }, + { url = "https://files.pythonhosted.org/packages/7b/d8/faee41659e9c379d906d24eaee6d6833ac8cfef0a5df480e5c2a8d3efb33/fastar-0.11.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:483532442cdb08fbff0169510224eae0836f2f672cea6aacb52847d90fefdc46", size = 816574, upload-time = "2026-04-13T17:08:56.076Z" }, + { url = "https://files.pythonhosted.org/packages/22/47/0448ea7992b997dad2bf004bfd98eca74b5858630eae080b50c7b17d9ddc/fastar-0.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef5a6071121e05d8287fc75bccb054bcbac8bb0501200a0c0a8feeace5303ea4", size = 819382, upload-time = "2026-04-13T17:09:26.66Z" }, + { url = "https://files.pythonhosted.org/packages/33/ef/0d63eb43586831b7a6f8b22c4d77125a7c594423af1f4f090fa9541b9b40/fastar-0.11.0-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:e45e598af5afe8412197d4786efd6cf29be02e7d3d4f6a3461149eae5d7e94f1", size = 885254, upload-time = "2026-04-13T17:08:40.9Z" }, + { url = "https://files.pythonhosted.org/packages/01/25/edd584675d69e49a165052c3ee886df1c5d574f3e7d813c990306387c623/fastar-0.11.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2e160919b1c47ddb8538e7e8eb4cd527281b40f0bf75110a75993838ef61f286", size = 971239, upload-time = "2026-04-13T17:10:12.997Z" }, + { url = "https://files.pythonhosted.org/packages/a5/37/e8bb24f506ba2b08fbaf36c5800e843bd4d542954e9331f00418e2d23349/fastar-0.11.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:4bb4dc0fc8f7a6807febcebce8a2f3626ba4955a9263d81ecc630aad83be84c0", size = 1035185, upload-time = "2026-04-13T17:10:30.207Z" }, + { url = "https://files.pythonhosted.org/packages/9a/bf/be753736296338149ee4cb3e92e2b5423d6ba17c7b951d15218fd7e99bbf/fastar-0.11.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4ec95af56aa173f6e320e1183001bf108ba59beaf13edd1fc8200648db203588", size = 1072191, upload-time = "2026-04-13T17:10:47.072Z" }, + { url = "https://files.pythonhosted.org/packages/d2/cd/a81c1aaafb5a22ce57c98ae22f39c89413ed53e4ee6e1b1444b0bd666a6c/fastar-0.11.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:136cf342735464091c39dc3708168f9fdeb9ebea40b1ead937c61afaf46143d9", size = 1028054, upload-time = "2026-04-13T17:11:04.293Z" }, + { url = "https://files.pythonhosted.org/packages/ec/88/1ce4eed3d70627c95f49ca017f6bbbf2ddcc4b0c601d293259de7689bc20/fastar-0.11.0-cp312-cp312-win32.whl", hash = "sha256:35f23c11b556cc4d3704587faacbc0037f7bdf6c4525cd1d09c70bda4b1c6809", size = 454198, upload-time = "2026-04-13T17:11:45.168Z" }, + { url = "https://files.pythonhosted.org/packages/8f/1d/26ce92f4331cd61a69840db9ca6115829805eec24f285481a854f578e917/fastar-0.11.0-cp312-cp312-win_amd64.whl", hash = "sha256:920bc56c3c0b8a8ca492904941d1883c1c947c858cd93343356c29122a38f44c", size = 486697, upload-time = "2026-04-13T17:11:31.084Z" }, + { url = "https://files.pythonhosted.org/packages/ed/96/e6eda4480559c69b05d466e7b5ea9170e81fef3795a73e059959a3258319/fastar-0.11.0-cp312-cp312-win_arm64.whl", hash = "sha256:395248faf89e8a6bd5dc1fd544c8465113b627cb6d7c8b296796b60ebea33593", size = 462591, upload-time = "2026-04-13T17:11:20.577Z" }, + { url = "https://files.pythonhosted.org/packages/c9/d6/3be260037e86fb694e88d47f583bac3a0188c99cee1a6b257ac26cb6b53c/fastar-0.11.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:33f544b08b4541b678e53749b4552a44720d96761fb79c172b005b1089c443ed", size = 707975, upload-time = "2026-04-13T17:09:58.866Z" }, + { url = "https://files.pythonhosted.org/packages/e1/cd/7867aefb1784662554a335f2952c75a50f0c70585ed0d2210d6cc15e5627/fastar-0.11.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:91c1c792447e4a642745f347ff9847c52af39633071c57ee67ed53c157fc3506", size = 628460, upload-time = "2026-04-13T17:09:43.776Z" }, + { url = "https://files.pythonhosted.org/packages/e5/2b/d11d84bdd5e0e377771b955755771e3460b290da5809cb78c1b735ee2228/fastar-0.11.0-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:881247e6b6eaea59fc6569f9b61447aa6b9fc2ee864e048b4643d69c52745805", size = 863054, upload-time = "2026-04-13T17:09:13.048Z" }, + { url = "https://files.pythonhosted.org/packages/25/39/d3f428b318fa940b1b6e785b8d54fc895dfb5d5b945ef8d5442ffa904fb2/fastar-0.11.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:863b7929845c9fec92ef6c8d59579cf46af5136655e5342f8df5cebe46cab06c", size = 760247, upload-time = "2026-04-13T17:07:57.396Z" }, + { url = "https://files.pythonhosted.org/packages/9e/04/03949aee82aabb8ede06ac5a4a5579ffaf98a8fe59ce958494508ff15513/fastar-0.11.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:96b4a57df12bf3211662627a3ea29d62ecb314a2434a0d0843f9fc23e47536e5", size = 756512, upload-time = "2026-04-13T17:08:12.415Z" }, + { url = "https://files.pythonhosted.org/packages/3f/0c/2ca1ae0a3828ca51047962d932b80daca2522db73e8cb9d040cb6ebe28d5/fastar-0.11.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ceef1c2c4df7b7b8ebd3f5d718bbf457b9bbdf25ce0bd07870211ec4fbd9aff4", size = 922183, upload-time = "2026-04-13T17:08:27.187Z" }, + { url = "https://files.pythonhosted.org/packages/65/68/7fe808b1f73a68e686f25434f538c6dc10ef4dfb3db0ace22cd861744bf8/fastar-0.11.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b8e545918441910a779659d4759ad0eef349e935fbdb4668a666d3681567eb05", size = 816394, upload-time = "2026-04-13T17:08:57.657Z" }, + { url = "https://files.pythonhosted.org/packages/1f/17/07d086080f8a83b8d7966955e29bcdbd6a060f5bd949dc9d5abd3658cead/fastar-0.11.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28095bb8f821e85fc2764e1a55f03e5e2876dee2abe7cd0ee9420d929905d643", size = 818983, upload-time = "2026-04-13T17:09:28.46Z" }, + { url = "https://files.pythonhosted.org/packages/fb/e2/2c4edf0910af2e814ff6d65b77a91196d472ca8a9fb2033bd983f6856caa/fastar-0.11.0-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:0fafb95ecbe70f666a5e9b35dd63974ccdc9bb3d99ccdbd4014a823ec3e659b5", size = 884689, upload-time = "2026-04-13T17:08:42.763Z" }, + { url = "https://files.pythonhosted.org/packages/fa/ba/04fdcbd6558e60de4ced3b55230fac47675d181252582b2fcec3c74608e5/fastar-0.11.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:af48fed039b94016629dcdad1c95c90c486326dd068de2b0a4df419ee09b6821", size = 970677, upload-time = "2026-04-13T17:10:15.124Z" }, + { url = "https://files.pythonhosted.org/packages/df/b3/2b860a9658550167dbd5824c85e88d0b4b912bf493e42a6322544d6e483d/fastar-0.11.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:74cd96163f39b8638ab4e8d49708ca887959672a22871d8170d01f067319533b", size = 1034026, upload-time = "2026-04-13T17:10:32.318Z" }, + { url = "https://files.pythonhosted.org/packages/b7/9b/fa42ea1188b144bac4b1b60753dfd449974a4d5eda132029ee7711569f94/fastar-0.11.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4e8b993cb5613bab495ed482810bedc0986633fcb9a3b55c37ec88e0d6714f6a", size = 1071147, upload-time = "2026-04-13T17:10:48.833Z" }, + { url = "https://files.pythonhosted.org/packages/95/c8/d2e501556dca9f1fbc9246111a31792fb49ad908fa4927f34938a97a3604/fastar-0.11.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:dfe39d91fc28e37e06162d94afe01050220edb7df554acb5b702b5503e564816", size = 1028377, upload-time = "2026-04-13T17:11:06.374Z" }, + { url = "https://files.pythonhosted.org/packages/db/33/5f11f23eca0a569cd052507bc45dda2e5468697f8665728d25be44120f7d/fastar-0.11.0-cp313-cp313-win32.whl", hash = "sha256:c5f63d4d99ff4bfb37c659982ec413358bdee747005348756cc50a04d412d989", size = 454089, upload-time = "2026-04-13T17:11:46.821Z" }, + { url = "https://files.pythonhosted.org/packages/da/2f/35ff03c939cba7a255a9132367873fec6c355fd06a7f84fedcbaf4c8129f/fastar-0.11.0-cp313-cp313-win_amd64.whl", hash = "sha256:8690ed1928d31ded3ada308e1086525fb3871f5fa81e1b69601a3f7774004583", size = 486312, upload-time = "2026-04-13T17:11:32.86Z" }, + { url = "https://files.pythonhosted.org/packages/ef/71/ee9246cbfcbfd4144558f35e7e9a306ffe0a7564730a5188c45f21d2dab8/fastar-0.11.0-cp313-cp313-win_arm64.whl", hash = "sha256:d977ded9d98a0719a305e0a4d5ee811f1d3e856d853a50acb8ae833c3cd6d5d2", size = 461975, upload-time = "2026-04-13T17:11:22.589Z" }, + { url = "https://files.pythonhosted.org/packages/7a/cd/3644c48ecac456f928c12d47ec3bed36c36555b17c3859856f1ff860265d/fastar-0.11.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:71375bd6f03c2a43eb47bd949ea38ff45434917f9cdac79675c5b9f60de4fa73", size = 707860, upload-time = "2026-04-13T17:10:00.371Z" }, + { url = "https://files.pythonhosted.org/packages/69/ca/dee04476ae3626b2b040a60ad84628f77e1ffd8444232f2426b0ca1e0d7e/fastar-0.11.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:eddfd9cab16e19ae247fe44bf992cb403ccfe27d3931d6de29a4695d95ad386c", size = 628216, upload-time = "2026-04-13T17:09:45.355Z" }, + { url = "https://files.pythonhosted.org/packages/dc/5e/9395c7353d079cb4f5be0f7982ce0dc9f2e7dec5fd175eef466729d6023a/fastar-0.11.0-cp314-cp314-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:7c371f1d4386c699018bb64eb2fa785feacf32785559049d2bb72fe4af023f53", size = 864378, upload-time = "2026-04-13T17:09:14.611Z" }, + { url = "https://files.pythonhosted.org/packages/fa/ba/1e4f67148223ff219612b6281a6000357abbcc2417964fa5c83f11d68fce/fastar-0.11.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cad7fa41e3e66554387481c1a09365e4638becd322904932674159d5f4046728", size = 760921, upload-time = "2026-04-13T17:07:59.138Z" }, + { url = "https://files.pythonhosted.org/packages/0f/82/09d11fb6d12f17993ffaf32ffd30c3c121a11e2966e84f19fb6f66430118/fastar-0.11.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:cf36652fa71b83761717c9899b98732498f8a2cb6327ff16bbf07f6be85c3437", size = 757012, upload-time = "2026-04-13T17:08:14.186Z" }, + { url = "https://files.pythonhosted.org/packages/52/1f/5aeeacc4cb65615e2c9292cd9c5b0cd6fb6d2e6ee472ca6adc6c1b1b22ef/fastar-0.11.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f68ff8c17833053da4841720e95edde80ce45bb994b6b7d51418dddaac70ee47", size = 924510, upload-time = "2026-04-13T17:08:28.741Z" }, + { url = "https://files.pythonhosted.org/packages/bb/1a/1e5bdabbeaf2e856928956292609f2ff6a650f94480fb8afaca30229e483/fastar-0.11.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4563ed37a12ea1cdc398af8571258d24b988bf342b7b3bf5451bd5891243280c", size = 816602, upload-time = "2026-04-13T17:08:59.461Z" }, + { url = "https://files.pythonhosted.org/packages/87/24/f960147910da3bed41a3adfcb026e17d5f50f4cf467a3324237a7088f61a/fastar-0.11.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cee63c9875cba3b70dc44338c560facc5d6e763047dcc4a30501f9a68cf5f890", size = 819452, upload-time = "2026-04-13T17:09:29.926Z" }, + { url = "https://files.pythonhosted.org/packages/cc/f4/3e77d7901d5707fd7f8a352e153c8ae09ea974e6fabad0b7c4eb9944b8d4/fastar-0.11.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:bd76bfffae6d0a91f4ac4a612f721e7aec108db97dccdd120ae063cd66959f27", size = 885254, upload-time = "2026-04-13T17:08:44.285Z" }, + { url = "https://files.pythonhosted.org/packages/47/01/1585edd5ec47782ae93cd94edf05828e0ab02ef00aec00aea4194a600464/fastar-0.11.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:8f5b707501ec01c1bc0518f741f01d322e50c9adc19a451aa24f67a2316e9397", size = 971496, upload-time = "2026-04-13T17:10:17.024Z" }, + { url = "https://files.pythonhosted.org/packages/f1/e9/6874c9d1236ded565a0bed54b320ac9f165f287b1d89490fb70f9f323c81/fastar-0.11.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:37c0b5a88a657839aad98b0a6c9e4ac4c2c15d6b49c44ee3935c6b08e9d3e479", size = 1034685, upload-time = "2026-04-13T17:10:34.063Z" }, + { url = "https://files.pythonhosted.org/packages/14/d8/4ab20613ce2983427aee958e39be878dba874aa227c530a845e32429c4f6/fastar-0.11.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:6c55f536c62a6efb180c1af0d5182948bff576bbfe6276e8e1359c9c7d2215d8", size = 1072675, upload-time = "2026-04-13T17:10:50.53Z" }, + { url = "https://files.pythonhosted.org/packages/1f/ae/5ac3b7c20ce4b08f011dd2b979f96caabe64f9b10b157f211ea91bdfadca/fastar-0.11.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:3082eeca59e189b9039335862f4c2780c0c8871d656bfdf559db4414a105b251", size = 1029330, upload-time = "2026-04-13T17:11:08.138Z" }, + { url = "https://files.pythonhosted.org/packages/8a/e7/37cd6a1d4e288292170b64e19d79ecce2a7de8bb76790323399a2abc4619/fastar-0.11.0-cp314-cp314-win32.whl", hash = "sha256:b201a0a4e29f9fec2a177e13154b8725ec65ab9f83bd6415483efaa2aa18344b", size = 453940, upload-time = "2026-04-13T17:11:48.713Z" }, + { url = "https://files.pythonhosted.org/packages/ff/1c/795c878b1ee29d79021cf8ed81f18f2b25ccde58453b0d34b9bdc7e025ea/fastar-0.11.0-cp314-cp314-win_amd64.whl", hash = "sha256:868fddb26072a43e870a8819134b9f80ee602931be5a76e6fb873e04da343637", size = 486334, upload-time = "2026-04-13T17:11:34.882Z" }, + { url = "https://files.pythonhosted.org/packages/ff/a4/113f104301df8bddcc0b3775b611a30cb7610baa3add933c7ccac9386467/fastar-0.11.0-cp314-cp314-win_arm64.whl", hash = "sha256:3db39c9cc42abb0c780a26b299f24dfbc8be455985e969e15336d70d7b2f833b", size = 461534, upload-time = "2026-04-13T17:11:24.329Z" }, + { url = "https://files.pythonhosted.org/packages/5a/a6/5c5f2c2c8e0c63e56a5636ebc7721589c889e94c0092cec7eb28ae7207e6/fastar-0.11.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:49c3299dec5e125e7ebaa27545714da9c7391777366015427e0ae62d548b442b", size = 707156, upload-time = "2026-04-13T17:10:02.176Z" }, + { url = "https://files.pythonhosted.org/packages/df/f7/982c01b61f0fc135ad2b16d01e6d0ee53cf8791e68827f5f7c5a65b2e5b1/fastar-0.11.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:3328ed1ed56d31f5198350b17dd60449b8d6b9d47abb4688bab6aef4450a165b", size = 627032, upload-time = "2026-04-13T17:09:46.978Z" }, + { url = "https://files.pythonhosted.org/packages/2b/c3/38f1dac77ae0c71c37b176277c96d830796b8ce2fe69705f917829b53829/fastar-0.11.0-cp314-cp314t-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:bd3eca3bbfec84a614bcb4143b4ad4f784d0895babc26cfc88436af88ca23c7a", size = 864403, upload-time = "2026-04-13T17:09:16.58Z" }, + { url = "https://files.pythonhosted.org/packages/6e/f0/e69c363bdb3e5a5848e937b662b5469581ee6682c51bc1c0556494773929/fastar-0.11.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ff86a967acb0d621dd24063dda090daa67bf4993b9570e97fe156de88a9006ca", size = 759480, upload-time = "2026-04-13T17:08:00.599Z" }, + { url = "https://files.pythonhosted.org/packages/3b/29/4d8737590c2a6357d614d7cc7288e8f68e7e449680b8922997cc4349e65e/fastar-0.11.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:86eaf7c0e985d93a7734168be2fb232b2a8cca53e41431c2782d7c12b12c03b1", size = 756219, upload-time = "2026-04-13T17:08:15.699Z" }, + { url = "https://files.pythonhosted.org/packages/bb/ec/400de7b3b7d48801908f19cf5462177104395799472671b3e8152b2b04ca/fastar-0.11.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91f07b0b8eb67e2f177733a1f884edad7dfb9f8977ffef15927b20cb9604027d", size = 923669, upload-time = "2026-04-13T17:08:30.574Z" }, + { url = "https://files.pythonhosted.org/packages/5d/01/8926c53da923fed7ab4b96e7fbf7f73b663beb4f02095b654d6fab46f9ad/fastar-0.11.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f85c896885eb4abf1a635d54dea22cac6ae48d04fc2ea26ae652fcf1febe1220", size = 815729, upload-time = "2026-04-13T17:09:01.204Z" }, + { url = "https://files.pythonhosted.org/packages/89/f0/5fef4c7946e352651b504b1a4235dac3505e7cfd24020788ab50552e84bf/fastar-0.11.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:075c07095c8de4b774ba8f28b9c0a02b1a2cd254da50cbe464dd3bb2432e9158", size = 819812, upload-time = "2026-04-13T17:09:31.907Z" }, + { url = "https://files.pythonhosted.org/packages/b3/c8/0ebc3298b4a45e7bddc50b169ae6a6f5b80c939394d4befe6e60de535ee7/fastar-0.11.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:07f028933820c65750baf3383b807ecce1cd9385cf00ce192b79d263ad6b856c", size = 884074, upload-time = "2026-04-13T17:08:45.802Z" }, + { url = "https://files.pythonhosted.org/packages/ae/9f/7baa4cdff8d6fbca41fa5c764b48a941fed8a9ec6c4cc92de65895a28299/fastar-0.11.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:039f875efa0f01fa43c20bf4e2fc7305489c61d0ac76eda991acfba7820a0e63", size = 969450, upload-time = "2026-04-13T17:10:18.667Z" }, + { url = "https://files.pythonhosted.org/packages/d4/dc/1ebbfb58a47056ba866494f19efbcdd2ba2897096b94f36e796594b4d05b/fastar-0.11.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:fff12452a9a5c6814a012445f26365541cc3d99dcca61f09762e6a389f7a32ea", size = 1033775, upload-time = "2026-04-13T17:10:36.165Z" }, + { url = "https://files.pythonhosted.org/packages/c2/5f/ce4e3914066f08c99eb8c32952cc07c1a013e81b1db1b0f598130bf6b974/fastar-0.11.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:2bf733e09f942b6fa876efe30a90508d1f4caef5630c00fb2a84fba355873712", size = 1072158, upload-time = "2026-04-13T17:10:52.497Z" }, + { url = "https://files.pythonhosted.org/packages/03/2a/6bca72992c84151c387cc6558f3867f5ebe5fb3684ee6fa9b76280ba4b8e/fastar-0.11.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:d1531fa848fdd3677d2dce0a4b436ea64d9ae38fb8babe2ddbc180dd153cb7a3", size = 1028577, upload-time = "2026-04-13T17:11:09.934Z" }, + { url = "https://files.pythonhosted.org/packages/83/18/7a7c15657a3da5569b26fc51cde6a80f8d84cb54b3b1aea6d74a103db4ad/fastar-0.11.0-cp314-cp314t-win32.whl", hash = "sha256:5744551bc67c6fc6581cbd0e34a0fd6e2cd0bd30b43e94b1c3119cf35064b162", size = 453601, upload-time = "2026-04-13T17:11:53.726Z" }, + { url = "https://files.pythonhosted.org/packages/6d/d8/331b59a6de279f3ad75c10c02c40a12f21d64a437d9c3d6f1af2dcbd7a76/fastar-0.11.0-cp314-cp314t-win_amd64.whl", hash = "sha256:f4ce44e3b56c47cf38244b98d29f269b259740a580c47a2552efa5b96a5458fb", size = 486436, upload-time = "2026-04-13T17:11:40.089Z" }, + { url = "https://files.pythonhosted.org/packages/6b/fd/5390ec4f49100f3ecb9968a392f9e6d039f1e3fe0ecd28443716ff01e589/fastar-0.11.0-cp314-cp314t-win_arm64.whl", hash = "sha256:76c1359314355eafbc6989f20fb1ad565a3d10200117923b9da765a17e2f6f11", size = 461049, upload-time = "2026-04-13T17:11:25.918Z" }, +] + +[[package]] +name = "h11" +version = "0.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload-time = "2025-04-24T03:35:25.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, +] + +[[package]] +name = "httpcore" +version = "1.0.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484, upload-time = "2025-04-24T22:06:22.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784, upload-time = "2025-04-24T22:06:20.566Z" }, +] + +[[package]] +name = "httptools" +version = "0.7.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b5/46/120a669232c7bdedb9d52d4aeae7e6c7dfe151e99dc70802e2fc7a5e1993/httptools-0.7.1.tar.gz", hash = "sha256:abd72556974f8e7c74a259655924a717a2365b236c882c3f6f8a45fe94703ac9", size = 258961, upload-time = "2025-10-10T03:55:08.559Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/53/7f/403e5d787dc4942316e515e949b0c8a013d84078a915910e9f391ba9b3ed/httptools-0.7.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:38e0c83a2ea9746ebbd643bdfb521b9aa4a91703e2cd705c20443405d2fd16a5", size = 206280, upload-time = "2025-10-10T03:54:39.274Z" }, + { url = "https://files.pythonhosted.org/packages/2a/0d/7f3fd28e2ce311ccc998c388dd1c53b18120fda3b70ebb022b135dc9839b/httptools-0.7.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f25bbaf1235e27704f1a7b86cd3304eabc04f569c828101d94a0e605ef7205a5", size = 110004, upload-time = "2025-10-10T03:54:40.403Z" }, + { url = "https://files.pythonhosted.org/packages/84/a6/b3965e1e146ef5762870bbe76117876ceba51a201e18cc31f5703e454596/httptools-0.7.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2c15f37ef679ab9ecc06bfc4e6e8628c32a8e4b305459de7cf6785acd57e4d03", size = 517655, upload-time = "2025-10-10T03:54:41.347Z" }, + { url = "https://files.pythonhosted.org/packages/11/7d/71fee6f1844e6fa378f2eddde6c3e41ce3a1fb4b2d81118dd544e3441ec0/httptools-0.7.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7fe6e96090df46b36ccfaf746f03034e5ab723162bc51b0a4cf58305324036f2", size = 511440, upload-time = "2025-10-10T03:54:42.452Z" }, + { url = "https://files.pythonhosted.org/packages/22/a5/079d216712a4f3ffa24af4a0381b108aa9c45b7a5cc6eb141f81726b1823/httptools-0.7.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f72fdbae2dbc6e68b8239defb48e6a5937b12218e6ffc2c7846cc37befa84362", size = 495186, upload-time = "2025-10-10T03:54:43.937Z" }, + { url = "https://files.pythonhosted.org/packages/e9/9e/025ad7b65278745dee3bd0ebf9314934c4592560878308a6121f7f812084/httptools-0.7.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e99c7b90a29fd82fea9ef57943d501a16f3404d7b9ee81799d41639bdaae412c", size = 499192, upload-time = "2025-10-10T03:54:45.003Z" }, + { url = "https://files.pythonhosted.org/packages/6d/de/40a8f202b987d43afc4d54689600ff03ce65680ede2f31df348d7f368b8f/httptools-0.7.1-cp312-cp312-win_amd64.whl", hash = "sha256:3e14f530fefa7499334a79b0cf7e7cd2992870eb893526fb097d51b4f2d0f321", size = 86694, upload-time = "2025-10-10T03:54:45.923Z" }, + { url = "https://files.pythonhosted.org/packages/09/8f/c77b1fcbfd262d422f12da02feb0d218fa228d52485b77b953832105bb90/httptools-0.7.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6babce6cfa2a99545c60bfef8bee0cc0545413cb0018f617c8059a30ad985de3", size = 202889, upload-time = "2025-10-10T03:54:47.089Z" }, + { url = "https://files.pythonhosted.org/packages/0a/1a/22887f53602feaa066354867bc49a68fc295c2293433177ee90870a7d517/httptools-0.7.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:601b7628de7504077dd3dcb3791c6b8694bbd967148a6d1f01806509254fb1ca", size = 108180, upload-time = "2025-10-10T03:54:48.052Z" }, + { url = "https://files.pythonhosted.org/packages/32/6a/6aaa91937f0010d288d3d124ca2946d48d60c3a5ee7ca62afe870e3ea011/httptools-0.7.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:04c6c0e6c5fb0739c5b8a9eb046d298650a0ff38cf42537fc372b28dc7e4472c", size = 478596, upload-time = "2025-10-10T03:54:48.919Z" }, + { url = "https://files.pythonhosted.org/packages/6d/70/023d7ce117993107be88d2cbca566a7c1323ccbaf0af7eabf2064fe356f6/httptools-0.7.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:69d4f9705c405ae3ee83d6a12283dc9feba8cc6aaec671b412917e644ab4fa66", size = 473268, upload-time = "2025-10-10T03:54:49.993Z" }, + { url = "https://files.pythonhosted.org/packages/32/4d/9dd616c38da088e3f436e9a616e1d0cc66544b8cdac405cc4e81c8679fc7/httptools-0.7.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:44c8f4347d4b31269c8a9205d8a5ee2df5322b09bbbd30f8f862185bb6b05346", size = 455517, upload-time = "2025-10-10T03:54:51.066Z" }, + { url = "https://files.pythonhosted.org/packages/1d/3a/a6c595c310b7df958e739aae88724e24f9246a514d909547778d776799be/httptools-0.7.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:465275d76db4d554918aba40bf1cbebe324670f3dfc979eaffaa5d108e2ed650", size = 458337, upload-time = "2025-10-10T03:54:52.196Z" }, + { url = "https://files.pythonhosted.org/packages/fd/82/88e8d6d2c51edc1cc391b6e044c6c435b6aebe97b1abc33db1b0b24cd582/httptools-0.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:322d00c2068d125bd570f7bf78b2d367dad02b919d8581d7476d8b75b294e3e6", size = 85743, upload-time = "2025-10-10T03:54:53.448Z" }, + { url = "https://files.pythonhosted.org/packages/34/50/9d095fcbb6de2d523e027a2f304d4551855c2f46e0b82befd718b8b20056/httptools-0.7.1-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:c08fe65728b8d70b6923ce31e3956f859d5e1e8548e6f22ec520a962c6757270", size = 203619, upload-time = "2025-10-10T03:54:54.321Z" }, + { url = "https://files.pythonhosted.org/packages/07/f0/89720dc5139ae54b03f861b5e2c55a37dba9a5da7d51e1e824a1f343627f/httptools-0.7.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:7aea2e3c3953521c3c51106ee11487a910d45586e351202474d45472db7d72d3", size = 108714, upload-time = "2025-10-10T03:54:55.163Z" }, + { url = "https://files.pythonhosted.org/packages/b3/cb/eea88506f191fb552c11787c23f9a405f4c7b0c5799bf73f2249cd4f5228/httptools-0.7.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:0e68b8582f4ea9166be62926077a3334064d422cf08ab87d8b74664f8e9058e1", size = 472909, upload-time = "2025-10-10T03:54:56.056Z" }, + { url = "https://files.pythonhosted.org/packages/e0/4a/a548bdfae6369c0d078bab5769f7b66f17f1bfaa6fa28f81d6be6959066b/httptools-0.7.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:df091cf961a3be783d6aebae963cc9b71e00d57fa6f149025075217bc6a55a7b", size = 470831, upload-time = "2025-10-10T03:54:57.219Z" }, + { url = "https://files.pythonhosted.org/packages/4d/31/14df99e1c43bd132eec921c2e7e11cda7852f65619bc0fc5bdc2d0cb126c/httptools-0.7.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:f084813239e1eb403ddacd06a30de3d3e09a9b76e7894dcda2b22f8a726e9c60", size = 452631, upload-time = "2025-10-10T03:54:58.219Z" }, + { url = "https://files.pythonhosted.org/packages/22/d2/b7e131f7be8d854d48cb6d048113c30f9a46dca0c9a8b08fcb3fcd588cdc/httptools-0.7.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:7347714368fb2b335e9063bc2b96f2f87a9ceffcd9758ac295f8bbcd3ffbc0ca", size = 452910, upload-time = "2025-10-10T03:54:59.366Z" }, + { url = "https://files.pythonhosted.org/packages/53/cf/878f3b91e4e6e011eff6d1fa9ca39f7eb17d19c9d7971b04873734112f30/httptools-0.7.1-cp314-cp314-win_amd64.whl", hash = "sha256:cfabda2a5bb85aa2a904ce06d974a3f30fb36cc63d7feaddec05d2050acede96", size = 88205, upload-time = "2025-10-10T03:55:00.389Z" }, +] + +[[package]] +name = "httpx" +version = "0.28.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "certifi" }, + { name = "httpcore" }, + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406, upload-time = "2024-12-06T15:37:23.222Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload-time = "2024-12-06T15:37:21.509Z" }, +] + +[[package]] +name = "idna" +version = "3.11" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582, upload-time = "2025-10-12T14:55:20.501Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload-time = "2025-10-12T14:55:18.883Z" }, +] + +[[package]] +name = "jinja2" +version = "3.1.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115, upload-time = "2025-03-05T20:05:02.478Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, +] + +[[package]] +name = "kafka-python" +version = "2.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a4/98/cbecbe20ec9e4e6f978c42229e7c777f498eec5061f986b4acfa34a7ec46/kafka_python-2.3.1.tar.gz", hash = "sha256:90f1caa12d8faa9fd059852b0c73adf169b979279aa2e3ff370f9fe615d654b6", size = 357302, upload-time = "2026-04-09T21:10:22.861Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/83/6f79b5e03f7d259cba60d3e48c97f7b76a86d20486a515e8ffadea97434e/kafka_python-2.3.1-py2.py3-none-any.whl", hash = "sha256:4908865da9e57f0f966a83788c71cb0ae91c33451a26ab6e6984a00b15c6ed71", size = 326065, upload-time = "2026-04-09T21:10:24.685Z" }, +] + +[[package]] +name = "markdown-it-py" +version = "4.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mdurl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5b/f5/4ec618ed16cc4f8fb3b701563655a69816155e79e24a17b651541804721d/markdown_it_py-4.0.0.tar.gz", hash = "sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3", size = 73070, upload-time = "2025-08-11T12:57:52.854Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl", hash = "sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147", size = 87321, upload-time = "2025-08-11T12:57:51.923Z" }, +] + +[[package]] +name = "markupsafe" +version = "3.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313, upload-time = "2025-09-27T18:37:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5a/72/147da192e38635ada20e0a2e1a51cf8823d2119ce8883f7053879c2199b5/markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e", size = 11615, upload-time = "2025-09-27T18:36:30.854Z" }, + { url = "https://files.pythonhosted.org/packages/9a/81/7e4e08678a1f98521201c3079f77db69fb552acd56067661f8c2f534a718/markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce", size = 12020, upload-time = "2025-09-27T18:36:31.971Z" }, + { url = "https://files.pythonhosted.org/packages/1e/2c/799f4742efc39633a1b54a92eec4082e4f815314869865d876824c257c1e/markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d", size = 24332, upload-time = "2025-09-27T18:36:32.813Z" }, + { url = "https://files.pythonhosted.org/packages/3c/2e/8d0c2ab90a8c1d9a24f0399058ab8519a3279d1bd4289511d74e909f060e/markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d", size = 22947, upload-time = "2025-09-27T18:36:33.86Z" }, + { url = "https://files.pythonhosted.org/packages/2c/54/887f3092a85238093a0b2154bd629c89444f395618842e8b0c41783898ea/markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a", size = 21962, upload-time = "2025-09-27T18:36:35.099Z" }, + { url = "https://files.pythonhosted.org/packages/c9/2f/336b8c7b6f4a4d95e91119dc8521402461b74a485558d8f238a68312f11c/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b", size = 23760, upload-time = "2025-09-27T18:36:36.001Z" }, + { url = "https://files.pythonhosted.org/packages/32/43/67935f2b7e4982ffb50a4d169b724d74b62a3964bc1a9a527f5ac4f1ee2b/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f", size = 21529, upload-time = "2025-09-27T18:36:36.906Z" }, + { url = "https://files.pythonhosted.org/packages/89/e0/4486f11e51bbba8b0c041098859e869e304d1c261e59244baa3d295d47b7/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b", size = 23015, upload-time = "2025-09-27T18:36:37.868Z" }, + { url = "https://files.pythonhosted.org/packages/2f/e1/78ee7a023dac597a5825441ebd17170785a9dab23de95d2c7508ade94e0e/markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", size = 14540, upload-time = "2025-09-27T18:36:38.761Z" }, + { url = "https://files.pythonhosted.org/packages/aa/5b/bec5aa9bbbb2c946ca2733ef9c4ca91c91b6a24580193e891b5f7dbe8e1e/markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", size = 15105, upload-time = "2025-09-27T18:36:39.701Z" }, + { url = "https://files.pythonhosted.org/packages/e5/f1/216fc1bbfd74011693a4fd837e7026152e89c4bcf3e77b6692fba9923123/markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", size = 13906, upload-time = "2025-09-27T18:36:40.689Z" }, + { url = "https://files.pythonhosted.org/packages/38/2f/907b9c7bbba283e68f20259574b13d005c121a0fa4c175f9bed27c4597ff/markupsafe-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795", size = 11622, upload-time = "2025-09-27T18:36:41.777Z" }, + { url = "https://files.pythonhosted.org/packages/9c/d9/5f7756922cdd676869eca1c4e3c0cd0df60ed30199ffd775e319089cb3ed/markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219", size = 12029, upload-time = "2025-09-27T18:36:43.257Z" }, + { url = "https://files.pythonhosted.org/packages/00/07/575a68c754943058c78f30db02ee03a64b3c638586fba6a6dd56830b30a3/markupsafe-3.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6", size = 24374, upload-time = "2025-09-27T18:36:44.508Z" }, + { url = "https://files.pythonhosted.org/packages/a9/21/9b05698b46f218fc0e118e1f8168395c65c8a2c750ae2bab54fc4bd4e0e8/markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676", size = 22980, upload-time = "2025-09-27T18:36:45.385Z" }, + { url = "https://files.pythonhosted.org/packages/7f/71/544260864f893f18b6827315b988c146b559391e6e7e8f7252839b1b846a/markupsafe-3.0.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9", size = 21990, upload-time = "2025-09-27T18:36:46.916Z" }, + { url = "https://files.pythonhosted.org/packages/c2/28/b50fc2f74d1ad761af2f5dcce7492648b983d00a65b8c0e0cb457c82ebbe/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1", size = 23784, upload-time = "2025-09-27T18:36:47.884Z" }, + { url = "https://files.pythonhosted.org/packages/ed/76/104b2aa106a208da8b17a2fb72e033a5a9d7073c68f7e508b94916ed47a9/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc", size = 21588, upload-time = "2025-09-27T18:36:48.82Z" }, + { url = "https://files.pythonhosted.org/packages/b5/99/16a5eb2d140087ebd97180d95249b00a03aa87e29cc224056274f2e45fd6/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12", size = 23041, upload-time = "2025-09-27T18:36:49.797Z" }, + { url = "https://files.pythonhosted.org/packages/19/bc/e7140ed90c5d61d77cea142eed9f9c303f4c4806f60a1044c13e3f1471d0/markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", size = 14543, upload-time = "2025-09-27T18:36:51.584Z" }, + { url = "https://files.pythonhosted.org/packages/05/73/c4abe620b841b6b791f2edc248f556900667a5a1cf023a6646967ae98335/markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", size = 15113, upload-time = "2025-09-27T18:36:52.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/3a/fa34a0f7cfef23cf9500d68cb7c32dd64ffd58a12b09225fb03dd37d5b80/markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", size = 13911, upload-time = "2025-09-27T18:36:53.513Z" }, + { url = "https://files.pythonhosted.org/packages/e4/d7/e05cd7efe43a88a17a37b3ae96e79a19e846f3f456fe79c57ca61356ef01/markupsafe-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73", size = 11658, upload-time = "2025-09-27T18:36:54.819Z" }, + { url = "https://files.pythonhosted.org/packages/99/9e/e412117548182ce2148bdeacdda3bb494260c0b0184360fe0d56389b523b/markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37", size = 12066, upload-time = "2025-09-27T18:36:55.714Z" }, + { url = "https://files.pythonhosted.org/packages/bc/e6/fa0ffcda717ef64a5108eaa7b4f5ed28d56122c9a6d70ab8b72f9f715c80/markupsafe-3.0.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19", size = 25639, upload-time = "2025-09-27T18:36:56.908Z" }, + { url = "https://files.pythonhosted.org/packages/96/ec/2102e881fe9d25fc16cb4b25d5f5cde50970967ffa5dddafdb771237062d/markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025", size = 23569, upload-time = "2025-09-27T18:36:57.913Z" }, + { url = "https://files.pythonhosted.org/packages/4b/30/6f2fce1f1f205fc9323255b216ca8a235b15860c34b6798f810f05828e32/markupsafe-3.0.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6", size = 23284, upload-time = "2025-09-27T18:36:58.833Z" }, + { url = "https://files.pythonhosted.org/packages/58/47/4a0ccea4ab9f5dcb6f79c0236d954acb382202721e704223a8aafa38b5c8/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f", size = 24801, upload-time = "2025-09-27T18:36:59.739Z" }, + { url = "https://files.pythonhosted.org/packages/6a/70/3780e9b72180b6fecb83a4814d84c3bf4b4ae4bf0b19c27196104149734c/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb", size = 22769, upload-time = "2025-09-27T18:37:00.719Z" }, + { url = "https://files.pythonhosted.org/packages/98/c5/c03c7f4125180fc215220c035beac6b9cb684bc7a067c84fc69414d315f5/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009", size = 23642, upload-time = "2025-09-27T18:37:01.673Z" }, + { url = "https://files.pythonhosted.org/packages/80/d6/2d1b89f6ca4bff1036499b1e29a1d02d282259f3681540e16563f27ebc23/markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", size = 14612, upload-time = "2025-09-27T18:37:02.639Z" }, + { url = "https://files.pythonhosted.org/packages/2b/98/e48a4bfba0a0ffcf9925fe2d69240bfaa19c6f7507b8cd09c70684a53c1e/markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", size = 15200, upload-time = "2025-09-27T18:37:03.582Z" }, + { url = "https://files.pythonhosted.org/packages/0e/72/e3cc540f351f316e9ed0f092757459afbc595824ca724cbc5a5d4263713f/markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", size = 13973, upload-time = "2025-09-27T18:37:04.929Z" }, + { url = "https://files.pythonhosted.org/packages/33/8a/8e42d4838cd89b7dde187011e97fe6c3af66d8c044997d2183fbd6d31352/markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe", size = 11619, upload-time = "2025-09-27T18:37:06.342Z" }, + { url = "https://files.pythonhosted.org/packages/b5/64/7660f8a4a8e53c924d0fa05dc3a55c9cee10bbd82b11c5afb27d44b096ce/markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026", size = 12029, upload-time = "2025-09-27T18:37:07.213Z" }, + { url = "https://files.pythonhosted.org/packages/da/ef/e648bfd021127bef5fa12e1720ffed0c6cbb8310c8d9bea7266337ff06de/markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737", size = 24408, upload-time = "2025-09-27T18:37:09.572Z" }, + { url = "https://files.pythonhosted.org/packages/41/3c/a36c2450754618e62008bf7435ccb0f88053e07592e6028a34776213d877/markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97", size = 23005, upload-time = "2025-09-27T18:37:10.58Z" }, + { url = "https://files.pythonhosted.org/packages/bc/20/b7fdf89a8456b099837cd1dc21974632a02a999ec9bf7ca3e490aacd98e7/markupsafe-3.0.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d", size = 22048, upload-time = "2025-09-27T18:37:11.547Z" }, + { url = "https://files.pythonhosted.org/packages/9a/a7/591f592afdc734f47db08a75793a55d7fbcc6902a723ae4cfbab61010cc5/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda", size = 23821, upload-time = "2025-09-27T18:37:12.48Z" }, + { url = "https://files.pythonhosted.org/packages/7d/33/45b24e4f44195b26521bc6f1a82197118f74df348556594bd2262bda1038/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf", size = 21606, upload-time = "2025-09-27T18:37:13.485Z" }, + { url = "https://files.pythonhosted.org/packages/ff/0e/53dfaca23a69fbfbbf17a4b64072090e70717344c52eaaaa9c5ddff1e5f0/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe", size = 23043, upload-time = "2025-09-27T18:37:14.408Z" }, + { url = "https://files.pythonhosted.org/packages/46/11/f333a06fc16236d5238bfe74daccbca41459dcd8d1fa952e8fbd5dccfb70/markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9", size = 14747, upload-time = "2025-09-27T18:37:15.36Z" }, + { url = "https://files.pythonhosted.org/packages/28/52/182836104b33b444e400b14f797212f720cbc9ed6ba34c800639d154e821/markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581", size = 15341, upload-time = "2025-09-27T18:37:16.496Z" }, + { url = "https://files.pythonhosted.org/packages/6f/18/acf23e91bd94fd7b3031558b1f013adfa21a8e407a3fdb32745538730382/markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4", size = 14073, upload-time = "2025-09-27T18:37:17.476Z" }, + { url = "https://files.pythonhosted.org/packages/3c/f0/57689aa4076e1b43b15fdfa646b04653969d50cf30c32a102762be2485da/markupsafe-3.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab", size = 11661, upload-time = "2025-09-27T18:37:18.453Z" }, + { url = "https://files.pythonhosted.org/packages/89/c3/2e67a7ca217c6912985ec766c6393b636fb0c2344443ff9d91404dc4c79f/markupsafe-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175", size = 12069, upload-time = "2025-09-27T18:37:19.332Z" }, + { url = "https://files.pythonhosted.org/packages/f0/00/be561dce4e6ca66b15276e184ce4b8aec61fe83662cce2f7d72bd3249d28/markupsafe-3.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634", size = 25670, upload-time = "2025-09-27T18:37:20.245Z" }, + { url = "https://files.pythonhosted.org/packages/50/09/c419f6f5a92e5fadde27efd190eca90f05e1261b10dbd8cbcb39cd8ea1dc/markupsafe-3.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50", size = 23598, upload-time = "2025-09-27T18:37:21.177Z" }, + { url = "https://files.pythonhosted.org/packages/22/44/a0681611106e0b2921b3033fc19bc53323e0b50bc70cffdd19f7d679bb66/markupsafe-3.0.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e", size = 23261, upload-time = "2025-09-27T18:37:22.167Z" }, + { url = "https://files.pythonhosted.org/packages/5f/57/1b0b3f100259dc9fffe780cfb60d4be71375510e435efec3d116b6436d43/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5", size = 24835, upload-time = "2025-09-27T18:37:23.296Z" }, + { url = "https://files.pythonhosted.org/packages/26/6a/4bf6d0c97c4920f1597cc14dd720705eca0bf7c787aebc6bb4d1bead5388/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523", size = 22733, upload-time = "2025-09-27T18:37:24.237Z" }, + { url = "https://files.pythonhosted.org/packages/14/c7/ca723101509b518797fedc2fdf79ba57f886b4aca8a7d31857ba3ee8281f/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc", size = 23672, upload-time = "2025-09-27T18:37:25.271Z" }, + { url = "https://files.pythonhosted.org/packages/fb/df/5bd7a48c256faecd1d36edc13133e51397e41b73bb77e1a69deab746ebac/markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", size = 14819, upload-time = "2025-09-27T18:37:26.285Z" }, + { url = "https://files.pythonhosted.org/packages/1a/8a/0402ba61a2f16038b48b39bccca271134be00c5c9f0f623208399333c448/markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", size = 15426, upload-time = "2025-09-27T18:37:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/70/bc/6f1c2f612465f5fa89b95bead1f44dcb607670fd42891d8fdcd5d039f4f4/markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", size = 14146, upload-time = "2025-09-27T18:37:28.327Z" }, +] + +[[package]] +name = "mdurl" +version = "0.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload-time = "2022-08-14T12:40:10.846Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" }, +] + +[[package]] +name = "orderflow" +version = "0.1.0" +source = { virtual = "." } +dependencies = [ + { name = "fastapi", extra = ["standard"] }, + { name = "kafka-python" }, +] + +[package.metadata] +requires-dist = [ + { name = "fastapi", extras = ["standard"], specifier = ">=0.135.3" }, + { name = "kafka-python", specifier = ">=2.0.0" }, +] + +[[package]] +name = "pydantic" +version = "2.13.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f3/6b/1353beb3d1cd5cf61cdec5b6f87a9872399de3bc5cae0b7ce07ff4de2ab0/pydantic-2.13.1.tar.gz", hash = "sha256:a0f829b279ddd1e39291133fe2539d2aa46cc6b150c1706a270ff0879e3774d2", size = 843746, upload-time = "2026-04-15T14:57:19.398Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/5a/2225f4c176dbfed0d809e848b50ef08f70e61daa667b7fa14b0d311ae44d/pydantic-2.13.1-py3-none-any.whl", hash = "sha256:9557ecc2806faaf6037f85b1fbd963d01e30511c48085f0d573650fdeaad378a", size = 471917, upload-time = "2026-04-15T14:57:17.277Z" }, +] + +[package.optional-dependencies] +email = [ + { name = "email-validator" }, +] + +[[package]] +name = "pydantic-core" +version = "2.46.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a1/93/f97a86a7eb28faa1d038af2fd5d6166418b4433659108a4c311b57128b2d/pydantic_core-2.46.1.tar.gz", hash = "sha256:d408153772d9f298098fb5d620f045bdf0f017af0d5cb6e309ef8c205540caa4", size = 471230, upload-time = "2026-04-15T14:49:34.52Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ce/fb/caaa8ee23861c170f07dbd58fc2be3a2c02a32637693cbb23eef02e84808/pydantic_core-2.46.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:ae8c8c5eb4c796944f3166f2f0dab6c761c2c2cc5bd20e5f692128be8600b9a4", size = 2119472, upload-time = "2026-04-15T14:49:45.946Z" }, + { url = "https://files.pythonhosted.org/packages/fa/61/bcffaa52894489ff89e5e1cdde67429914bf083c0db7296bef153020f786/pydantic_core-2.46.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:daba6f5f5b986aa0682623a1a4f8d1ecb0ec00ce09cfa9ca71a3b742bc383e3a", size = 1951230, upload-time = "2026-04-15T14:52:27.646Z" }, + { url = "https://files.pythonhosted.org/packages/f8/95/80d2f43a2a1a1e3220fd329d614aa5a39e0a75d24353a3aaf226e605f1c2/pydantic_core-2.46.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0265f3a2460539ecc97817a80c7a23c458dd84191229b655522a2674f701f14e", size = 1976394, upload-time = "2026-04-15T14:50:32.742Z" }, + { url = "https://files.pythonhosted.org/packages/8d/31/2c5b1a207926b5fc1961a2d11da940129bc3841c36cc4df03014195b2966/pydantic_core-2.46.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bb16c0156c4b4e94aa3719138cc43c53d30ff21126b6a3af63786dcc0757b56e", size = 2068455, upload-time = "2026-04-15T14:50:01.286Z" }, + { url = "https://files.pythonhosted.org/packages/7d/36/c6aa07274359a51ac62895895325ce90107e811c6cea39d2617a99ef10d7/pydantic_core-2.46.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1b42d80fad8e4b283e1e4138f1142f0d038c46d137aad2f9824ad9086080dd41", size = 2239049, upload-time = "2026-04-15T14:53:02.216Z" }, + { url = "https://files.pythonhosted.org/packages/0a/3f/77cdd0db8bddc714842dfd93f737c863751cf02001c993341504f6b0cd53/pydantic_core-2.46.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9cced85896d5b795293bc36b7e2fb0347a36c828551b50cbba510510d928548c", size = 2318681, upload-time = "2026-04-15T14:50:04.539Z" }, + { url = "https://files.pythonhosted.org/packages/a1/a3/09d929a40e6727274b0b500ad06e1b3f35d4f4665ae1c8ba65acbb17e9b5/pydantic_core-2.46.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a641cb1e74b44c418adaf9f5f450670dbec53511f030d8cde8d8accb66edc363", size = 2096527, upload-time = "2026-04-15T14:53:14.766Z" }, + { url = "https://files.pythonhosted.org/packages/89/ae/544c3a82456ebc254a9fcbe2715bab76c70acf9d291aaea24391147943e4/pydantic_core-2.46.1-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:191e7a122ab14eb12415fe3f92610fc06c7f1d2b4b9101d24d490d447ac92506", size = 2170407, upload-time = "2026-04-15T14:51:27.138Z" }, + { url = "https://files.pythonhosted.org/packages/9d/ce/0dfd881c7af4c522f47b325707bd9a2cdcf4f40e4f2fd30df0e9a3e8d393/pydantic_core-2.46.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4fe4ff660f7938b5d92f21529ce331b011aa35e481ab64b7cd03f52384e544bb", size = 2188578, upload-time = "2026-04-15T14:50:39.655Z" }, + { url = "https://files.pythonhosted.org/packages/a1/e9/980ea2a6d5114dd1a62ecc5f56feb3d34555f33bd11043f042e5f7f0724a/pydantic_core-2.46.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:18fcea085b3adc3868d8d19606da52d7a52d8bccd8e28652b0778dbe5e6a6660", size = 2188959, upload-time = "2026-04-15T14:52:42.243Z" }, + { url = "https://files.pythonhosted.org/packages/e7/f1/595e0f50f4bfc56cde2fe558f2b0978f29f2865da894c6226231e17464a5/pydantic_core-2.46.1-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:e8e589e7c9466e022d79e13c5764c2239b2e5a7993ba727822b021234f89b56b", size = 2339973, upload-time = "2026-04-15T14:52:10.642Z" }, + { url = "https://files.pythonhosted.org/packages/49/44/be9f979a6ab6b8c36865ccd92c3a38a760c66055e1f384665f35525134c4/pydantic_core-2.46.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f78eb3d4027963bdc9baccd177f02a98bf8714bc51fe17153d8b51218918b5bc", size = 2385228, upload-time = "2026-04-15T14:51:00.77Z" }, + { url = "https://files.pythonhosted.org/packages/5b/d4/c826cd711787d240219f01d0d3ca116cb55516b8b95277820aa9c85e1882/pydantic_core-2.46.1-cp312-cp312-win32.whl", hash = "sha256:54fe30c20cab03844dc63bdc6ddca67f74a2eb8482df69c1e5f68396856241be", size = 1978828, upload-time = "2026-04-15T14:50:29.362Z" }, + { url = "https://files.pythonhosted.org/packages/22/05/8a1fcf8181be4c7a9cfc34e5fbf2d9c3866edc9dfd3c48d5401806e0a523/pydantic_core-2.46.1-cp312-cp312-win_amd64.whl", hash = "sha256:aea4e22ed4c53f2774221435e39969a54d2e783f4aee902cdd6c8011415de893", size = 2070015, upload-time = "2026-04-15T14:49:47.301Z" }, + { url = "https://files.pythonhosted.org/packages/61/d5/fea36ad2882b99c174ef4ffbc7ea6523f6abe26060fbc1f77d6441670232/pydantic_core-2.46.1-cp312-cp312-win_arm64.whl", hash = "sha256:f76fb49c34b4d66aa6e552ce9e852ea97a3a06301a9f01ae82f23e449e3a55f8", size = 2030176, upload-time = "2026-04-15T14:50:47.307Z" }, + { url = "https://files.pythonhosted.org/packages/ff/d2/bda39bad2f426cb5078e6ad28076614d3926704196efe0d7a2a19a99025d/pydantic_core-2.46.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:cdc8a5762a9c4b9d86e204d555444e3227507c92daba06259ee66595834de47a", size = 2119092, upload-time = "2026-04-15T14:49:50.392Z" }, + { url = "https://files.pythonhosted.org/packages/ee/f3/69631e64d69cb3481494b2bddefe0ddd07771209f74e9106d066f9138c2a/pydantic_core-2.46.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ba381dfe9c85692c566ecb60fa5a77a697a2a8eebe274ec5e4d6ec15fafad799", size = 1951400, upload-time = "2026-04-15T14:51:06.588Z" }, + { url = "https://files.pythonhosted.org/packages/53/1c/21cb3db6ae997df31be8e91f213081f72ffa641cb45c89b8a1986832b1f9/pydantic_core-2.46.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1593d8de98207466dc070118322fef68307a0cc6a5625e7b386f6fdae57f9ab6", size = 1976864, upload-time = "2026-04-15T14:50:54.804Z" }, + { url = "https://files.pythonhosted.org/packages/91/9c/05c819f734318ce5a6ca24da300d93696c105af4adb90494ee571303afd8/pydantic_core-2.46.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8262c74a1af5b0fdf795f5537f7145785a63f9fbf9e15405f547440c30017ed8", size = 2066669, upload-time = "2026-04-15T14:51:42.346Z" }, + { url = "https://files.pythonhosted.org/packages/cb/23/fadddf1c7f2f517f58731aea9b35c914e6005250f08dac9b8e53904cdbaa/pydantic_core-2.46.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4b88949a24182e83fbbb3f7ca9b7858d0d37b735700ea91081434b7d37b3b444", size = 2238737, upload-time = "2026-04-15T14:50:45.558Z" }, + { url = "https://files.pythonhosted.org/packages/23/07/0cd4f95cb0359c8b1ec71e89c3777e7932c8dfeb9cd54740289f310aaead/pydantic_core-2.46.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b8f3708cd55537aeaf3fd0ea55df0d68d0da51dcb07cbc8508745b34acc4c6e0", size = 2316258, upload-time = "2026-04-15T14:51:08.471Z" }, + { url = "https://files.pythonhosted.org/packages/0c/40/6fc24c3766a19c222a0d60d652b78f0283339d4cd4c173fab06b7ee76571/pydantic_core-2.46.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f79292435fff1d4f0c18d9cfaf214025cc88e4f5104bfaed53f173621da1c743", size = 2097474, upload-time = "2026-04-15T14:49:56.543Z" }, + { url = "https://files.pythonhosted.org/packages/4b/af/f39795d1ce549e35d0841382b9c616ae211caffb88863147369a8d74fba9/pydantic_core-2.46.1-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:a2e607aeb59cf4575bb364470288db3b9a1f0e7415d053a322e3e154c1a0802e", size = 2168383, upload-time = "2026-04-15T14:51:29.269Z" }, + { url = "https://files.pythonhosted.org/packages/e6/32/0d563f74582795779df6cc270c3fc220f49f4daf7860d74a5a6cda8491ff/pydantic_core-2.46.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ec5ca190b75878a9f6ae1fc8f5eb678497934475aef3d93204c9fa01e97370b6", size = 2186182, upload-time = "2026-04-15T14:50:19.097Z" }, + { url = "https://files.pythonhosted.org/packages/5c/07/1c10d5ce312fc4cf86d1e50bdcdbb8ef248409597b099cab1b4bb3a093f7/pydantic_core-2.46.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:1f80535259dcdd517d7b8ca588d5ca24b4f337228e583bebedf7a3adcdf5f721", size = 2187859, upload-time = "2026-04-15T14:49:22.974Z" }, + { url = "https://files.pythonhosted.org/packages/92/01/e1f62d4cb39f0913dbf5c95b9b119ef30ddba9493dff8c2b012f0cdd67dc/pydantic_core-2.46.1-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:24820b3c82c43df61eca30147e42853e6c127d8b868afdc0c162df829e011eb4", size = 2338372, upload-time = "2026-04-15T14:49:53.316Z" }, + { url = "https://files.pythonhosted.org/packages/44/ed/218dfeea6127fb1781a6ceca241ec6edf00e8a8933ff331af2215975a534/pydantic_core-2.46.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:f12794b1dd8ac9fb66619e0b3a0427189f5d5638e55a3de1385121a9b7bf9b39", size = 2384039, upload-time = "2026-04-15T14:53:04.929Z" }, + { url = "https://files.pythonhosted.org/packages/6c/1e/011e763cd059238249fbd5780e0f8d0b04b47f86c8925e22784f3e5fc977/pydantic_core-2.46.1-cp313-cp313-win32.whl", hash = "sha256:9bc09aed935cdf50f09e908923f9efbcca54e9244bd14a5a0e2a6c8d2c21b4e9", size = 1977943, upload-time = "2026-04-15T14:52:17.969Z" }, + { url = "https://files.pythonhosted.org/packages/8c/06/b559a490d3ed106e9b1777b8d5c8112dd8d31716243cd662616f66c1f8ea/pydantic_core-2.46.1-cp313-cp313-win_amd64.whl", hash = "sha256:fac2d6c8615b8b42bee14677861ba09d56ee076ba4a65cfb9c3c3d0cc89042f2", size = 2068729, upload-time = "2026-04-15T14:53:07.288Z" }, + { url = "https://files.pythonhosted.org/packages/9f/52/32a198946e2e19508532aa9da02a61419eb15bd2d96bab57f810f2713e31/pydantic_core-2.46.1-cp313-cp313-win_arm64.whl", hash = "sha256:f978329f12ace9f3cb814a5e44d98bbeced2e36f633132bafa06d2d71332e33e", size = 2029550, upload-time = "2026-04-15T14:52:22.707Z" }, + { url = "https://files.pythonhosted.org/packages/bd/2b/6793fe89ab66cb2d3d6e5768044eab80bba1d0fae8fd904d0a1574712e17/pydantic_core-2.46.1-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:9917cb61effac7ec0f448ef491ec7584526d2193be84ff981e85cbf18b68c42a", size = 2118110, upload-time = "2026-04-15T14:50:52.947Z" }, + { url = "https://files.pythonhosted.org/packages/d2/87/e9a905ddfcc2fd7bd862b340c02be6ab1f827922822d425513635d0ac774/pydantic_core-2.46.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0e749679ca9f8a9d0bff95fb7f6b57bb53f2207fa42ffcc1ec86de7e0029ab89", size = 1948645, upload-time = "2026-04-15T14:51:55.577Z" }, + { url = "https://files.pythonhosted.org/packages/15/23/26e67f86ed62ac9d6f7f3091ee5220bf14b5ac36fb811851d601365ef896/pydantic_core-2.46.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2ecacee70941e233a2dad23f7796a06f86cc10cc2fbd1c97c7dd5b5a79ffa4f", size = 1977576, upload-time = "2026-04-15T14:49:37.58Z" }, + { url = "https://files.pythonhosted.org/packages/b8/78/813c13c0de323d4de54ee2e6fdd69a0271c09ac8dd65a8a000931aa487a5/pydantic_core-2.46.1-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:647d0a2475b8ed471962eed92fa69145b864942f9c6daa10f95ac70676637ae7", size = 2060358, upload-time = "2026-04-15T14:51:40.087Z" }, + { url = "https://files.pythonhosted.org/packages/09/5e/4caf2a15149271fbd2b4d968899a450853c800b85152abcf54b11531417f/pydantic_core-2.46.1-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac9cde61965b0697fce6e6cc372df9e1ad93734828aac36e9c1c42a22ad02897", size = 2235980, upload-time = "2026-04-15T14:50:34.535Z" }, + { url = "https://files.pythonhosted.org/packages/c2/c1/a2cdabb5da6f5cb63a3558bcafffc20f790fa14ccffbefbfb1370fadc93f/pydantic_core-2.46.1-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0a2eb0864085f8b641fb3f54a2fb35c58aff24b175b80bc8a945050fcde03204", size = 2316800, upload-time = "2026-04-15T14:52:46.999Z" }, + { url = "https://files.pythonhosted.org/packages/76/fd/19d711e4e9331f9d77f222bffc202bf30ea0d74f6419046376bb82f244c8/pydantic_core-2.46.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b83ce9fede4bc4fb649281d9857f06d30198b8f70168f18b987518d713111572", size = 2101762, upload-time = "2026-04-15T14:49:24.278Z" }, + { url = "https://files.pythonhosted.org/packages/dc/64/ce95625448e1a4e219390a2923fd594f3fa368599c6b42ac71a5df7238c9/pydantic_core-2.46.1-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:cb33192753c60f269d2f4a1db8253c95b0df6e04f2989631a8cc1b0f4f6e2e92", size = 2167737, upload-time = "2026-04-15T14:50:41.637Z" }, + { url = "https://files.pythonhosted.org/packages/ad/31/413572d03ca3e73b408f00f54418b91a8be6401451bc791eaeff210328e5/pydantic_core-2.46.1-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:96611d51f953f87e1ae97637c01ee596a08b7f494ea00a5afb67ea6547b9f53b", size = 2185658, upload-time = "2026-04-15T14:51:46.799Z" }, + { url = "https://files.pythonhosted.org/packages/36/09/e4f581353bdf3f0c7de8a8b27afd14fc761da29d78146376315a6fedc487/pydantic_core-2.46.1-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:9b176fa55f9107db5e6c86099aa5bfd934f1d3ba6a8b43f714ddeebaed3f42b7", size = 2184154, upload-time = "2026-04-15T14:52:49.629Z" }, + { url = "https://files.pythonhosted.org/packages/1a/a4/d0d52849933f5a4bf1ad9d8da612792f96469b37e286a269e3ee9c60bbb1/pydantic_core-2.46.1-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:79a59f63a4ce4f3330e27e6f3ce281dd1099453b637350e97d7cf24c207cd120", size = 2332379, upload-time = "2026-04-15T14:49:55.009Z" }, + { url = "https://files.pythonhosted.org/packages/30/93/25bfb08fdbef419f73290e573899ce938a327628c34e8f3a4bafeea30126/pydantic_core-2.46.1-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:f200fce071808a385a314b7343f5e3688d7c45746be3d64dc71ee2d3e2a13268", size = 2377964, upload-time = "2026-04-15T14:51:59.649Z" }, + { url = "https://files.pythonhosted.org/packages/15/36/b777766ff83fef1cf97473d64764cd44f38e0d8c269ed06faace9ae17666/pydantic_core-2.46.1-cp314-cp314-win32.whl", hash = "sha256:3a07eccc0559fb9acc26d55b16bf8ebecd7f237c74a9e2c5741367db4e6d8aff", size = 1976450, upload-time = "2026-04-15T14:51:57.665Z" }, + { url = "https://files.pythonhosted.org/packages/7b/4b/4cd19d2437acfc18ca166db5a2067040334991eb862c4ecf2db098c91fbf/pydantic_core-2.46.1-cp314-cp314-win_amd64.whl", hash = "sha256:1706d270309ac7d071ffe393988c471363705feb3d009186e55d17786ada9622", size = 2067750, upload-time = "2026-04-15T14:49:38.941Z" }, + { url = "https://files.pythonhosted.org/packages/7f/a0/490751c0ef8f5b27aae81731859aed1508e72c1a9b5774c6034269db773b/pydantic_core-2.46.1-cp314-cp314-win_arm64.whl", hash = "sha256:22d4e7457ade8af06528012f382bc994a97cc2ce6e119305a70b3deff1e409d6", size = 2021109, upload-time = "2026-04-15T14:50:27.728Z" }, + { url = "https://files.pythonhosted.org/packages/36/3a/2a018968245fffd25d5f1972714121ad309ff2de19d80019ad93494844f9/pydantic_core-2.46.1-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:607ff9db0b7e2012e7eef78465e69f9a0d7d1c3e7c6a84cf0c4011db0fcc3feb", size = 2111548, upload-time = "2026-04-15T14:52:08.273Z" }, + { url = "https://files.pythonhosted.org/packages/77/5b/4103b6192213217e874e764e5467d2ff10d8873c1147d01fa432ac281880/pydantic_core-2.46.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:8cda3eacaea13bd02a1bea7e457cc9fc30b91c5a91245cef9b215140f80dd78c", size = 1926745, upload-time = "2026-04-15T14:50:03.045Z" }, + { url = "https://files.pythonhosted.org/packages/c3/70/602a667cf4be4bec6c3334512b12ae4ea79ce9bfe41dc51be1fd34434453/pydantic_core-2.46.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9493279cdc7997fe19e5ed9b41f30cbc3806bd4722adb402fedb6f6d41bd72a", size = 1965922, upload-time = "2026-04-15T14:51:12.555Z" }, + { url = "https://files.pythonhosted.org/packages/a9/24/06a89ce5323e755b7d2812189f9706b87aaebe49b34d247b380502f7992c/pydantic_core-2.46.1-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3644e5e10059999202355b6c6616e624909e23773717d8f76deb8a6e2a72328c", size = 2043221, upload-time = "2026-04-15T14:51:18.995Z" }, + { url = "https://files.pythonhosted.org/packages/2c/6e/b1d9ad907d9d76964903903349fd2e33c87db4b993cc44713edcad0fc488/pydantic_core-2.46.1-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4ad6c9de57683e26c92730991960c0c3571b8053263b042de2d3e105930b2767", size = 2243655, upload-time = "2026-04-15T14:50:10.718Z" }, + { url = "https://files.pythonhosted.org/packages/ef/73/787abfaad51174641abb04c8aa125322279b40ad7ce23c495f5a69f76554/pydantic_core-2.46.1-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:557ebaa27c7617e7088002318c679a8ce685fa048523417cd1ca52b7f516d955", size = 2295976, upload-time = "2026-04-15T14:53:09.694Z" }, + { url = "https://files.pythonhosted.org/packages/56/0b/b7c5a631b6d5153d4a1ea4923b139aea256dc3bd99c8e6c7b312c7733146/pydantic_core-2.46.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cd37e39b22b796ba0298fe81e9421dd7b65f97acfbb0fb19b33ffdda7b9a7b4", size = 2103439, upload-time = "2026-04-15T14:50:08.32Z" }, + { url = "https://files.pythonhosted.org/packages/2a/3f/952ee470df69e5674cdec1cbde22331adf643b5cc2ff79f4292d80146ee4/pydantic_core-2.46.1-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:6689443b59714992e67d62505cdd2f952d6cf1c14cc9fd9aeec6719befc6f23b", size = 2132871, upload-time = "2026-04-15T14:50:24.445Z" }, + { url = "https://files.pythonhosted.org/packages/e3/8b/1dea3b1e683c60c77a60f710215f90f486755962aa8939dbcb7c0f975ac3/pydantic_core-2.46.1-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6f32c41ca1e3456b5dd691827b7c1433c12d5f0058cc186afbb3615bc07d97b8", size = 2168658, upload-time = "2026-04-15T14:52:24.897Z" }, + { url = "https://files.pythonhosted.org/packages/67/97/32ae283810910d274d5ba9f48f856f5f2f612410b78b249f302d297816f5/pydantic_core-2.46.1-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:88cd1355578852db83954dc36e4f58f299646916da976147c20cf6892ba5dc43", size = 2171184, upload-time = "2026-04-15T14:52:34.854Z" }, + { url = "https://files.pythonhosted.org/packages/a2/57/c9a855527fe56c2072070640221f53095b0b19eaf651f3c77643c9cabbe3/pydantic_core-2.46.1-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:a170fefdb068279a473cc9d34848b85e61d68bfcc2668415b172c5dfc6f213bf", size = 2316573, upload-time = "2026-04-15T14:52:12.871Z" }, + { url = "https://files.pythonhosted.org/packages/37/b3/14c39ffc7399819c5448007c7bcb4e6da5669850cfb7dcbb727594290b48/pydantic_core-2.46.1-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:556a63ff1006934dba4eed7ea31b58274c227e29298ec398e4275eda4b905e95", size = 2378340, upload-time = "2026-04-15T14:51:02.619Z" }, + { url = "https://files.pythonhosted.org/packages/01/55/a37461fbb29c053ea4e62cfc5c2d56425cb5efbef8316e63f6d84ae45718/pydantic_core-2.46.1-cp314-cp314t-win32.whl", hash = "sha256:3b146d8336a995f7d7da6d36e4a779b7e7dff2719ac00a1eb8bd3ded00bec87b", size = 1960843, upload-time = "2026-04-15T14:52:06.103Z" }, + { url = "https://files.pythonhosted.org/packages/22/d7/97e1221197d17a27f768363f87ec061519eeeed15bbd315d2e9d1429ff03/pydantic_core-2.46.1-cp314-cp314t-win_amd64.whl", hash = "sha256:f1bc856c958e6fe9ec071e210afe6feb695f2e2e81fd8d2b102f558d364c4c17", size = 2048696, upload-time = "2026-04-15T14:52:52.154Z" }, + { url = "https://files.pythonhosted.org/packages/19/d5/4eac95255c7d35094b46a32ec1e4d80eac94729c694726ee1d69948bd5f0/pydantic_core-2.46.1-cp314-cp314t-win_arm64.whl", hash = "sha256:21a5bfd8a1aa4de60494cdf66b0c912b1495f26a8899896040021fbd6038d989", size = 2022343, upload-time = "2026-04-15T14:49:49.036Z" }, + { url = "https://files.pythonhosted.org/packages/f4/97/95de673a1356a88b2efdaa120eb6af357a81555c35f6809a7a1423ff7aef/pydantic_core-2.46.1-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:5f9107a24a4bc00293434dfa95cf8968751ad0dd703b26ea83a75a56f7326041", size = 2107564, upload-time = "2026-04-15T14:50:49.14Z" }, + { url = "https://files.pythonhosted.org/packages/00/fc/a7c16d85211ea9accddc693b7d049f20b0c06440d9264d1e1c074394ee6c/pydantic_core-2.46.1-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:2b1801ba99876984d0a03362782819238141c4d0f3f67f69093663691332fc35", size = 1939925, upload-time = "2026-04-15T14:50:36.188Z" }, + { url = "https://files.pythonhosted.org/packages/2e/23/87841169d77820ddabeb81d82002c95dcb82163846666d74f5bdeeaec750/pydantic_core-2.46.1-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7fd82a91a20ed6d54fa8c91e7a98255b1ff45bf09b051bfe7fe04eb411e232e", size = 1995313, upload-time = "2026-04-15T14:50:22.538Z" }, + { url = "https://files.pythonhosted.org/packages/ea/96/b46609359a354fa9cd336fc5d93334f1c358b756cc81e4b397347a88fa6f/pydantic_core-2.46.1-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f135bf07c92c93def97008bc4496d16934da9efefd7204e5f22a2c92523cb1f", size = 2151197, upload-time = "2026-04-15T14:51:22.925Z" }, +] + +[[package]] +name = "pydantic-extra-types" +version = "2.11.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/71/dba38ee2651f84f7842206adbd2233d8bbdb59fb85e9fa14232486a8c471/pydantic_extra_types-2.11.1.tar.gz", hash = "sha256:46792d2307383859e923d8fcefa82108b1a141f8a9c0198982b3832ab5ef1049", size = 172002, upload-time = "2026-03-16T08:08:03.92Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/17/c1/3226e6d7f5a4f736f38ac11a6fbb262d701889802595cdb0f53a885ac2e0/pydantic_extra_types-2.11.1-py3-none-any.whl", hash = "sha256:1722ea2bddae5628ace25f2aa685b69978ef533123e5638cfbddb999e0100ec1", size = 79526, upload-time = "2026-03-16T08:08:02.533Z" }, +] + +[[package]] +name = "pydantic-settings" +version = "2.13.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, + { name = "python-dotenv" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/52/6d/fffca34caecc4a3f97bda81b2098da5e8ab7efc9a66e819074a11955d87e/pydantic_settings-2.13.1.tar.gz", hash = "sha256:b4c11847b15237fb0171e1462bf540e294affb9b86db4d9aa5c01730bdbe4025", size = 223826, upload-time = "2026-02-19T13:45:08.055Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/00/4b/ccc026168948fec4f7555b9164c724cf4125eac006e176541483d2c959be/pydantic_settings-2.13.1-py3-none-any.whl", hash = "sha256:d56fd801823dbeae7f0975e1f8c8e25c258eb75d278ea7abb5d9cebb01b56237", size = 58929, upload-time = "2026-02-19T13:45:06.034Z" }, +] + +[[package]] +name = "pygments" +version = "2.20.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c3/b2/bc9c9196916376152d655522fdcebac55e66de6603a76a02bca1b6414f6c/pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f", size = 4955991, upload-time = "2026-03-29T13:29:33.898Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176", size = 1231151, upload-time = "2026-03-29T13:29:30.038Z" }, +] + +[[package]] +name = "python-dotenv" +version = "1.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/82/ed/0301aeeac3e5353ef3d94b6ec08bbcabd04a72018415dcb29e588514bba8/python_dotenv-1.2.2.tar.gz", hash = "sha256:2c371a91fbd7ba082c2c1dc1f8bf89ca22564a087c2c287cd9b662adde799cf3", size = 50135, upload-time = "2026-03-01T16:00:26.196Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl", hash = "sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a", size = 22101, upload-time = "2026-03-01T16:00:25.09Z" }, +] + +[[package]] +name = "python-multipart" +version = "0.0.26" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/88/71/b145a380824a960ebd60e1014256dbb7d2253f2316ff2d73dfd8928ec2c3/python_multipart-0.0.26.tar.gz", hash = "sha256:08fadc45918cd615e26846437f50c5d6d23304da32c341f289a617127b081f17", size = 43501, upload-time = "2026-04-10T14:09:59.473Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/22/f1925cdda983ab66fc8ec6ec8014b959262747e58bdca26a4e3d1da29d56/python_multipart-0.0.26-py3-none-any.whl", hash = "sha256:c0b169f8c4484c13b0dcf2ef0ec3a4adb255c4b7d18d8e420477d2b1dd03f185", size = 28847, upload-time = "2026-04-10T14:09:58.131Z" }, +] + +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/33/422b98d2195232ca1826284a76852ad5a86fe23e31b009c9886b2d0fb8b2/pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196", size = 182063, upload-time = "2025-09-25T21:32:11.445Z" }, + { url = "https://files.pythonhosted.org/packages/89/a0/6cf41a19a1f2f3feab0e9c0b74134aa2ce6849093d5517a0c550fe37a648/pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0", size = 173973, upload-time = "2025-09-25T21:32:12.492Z" }, + { url = "https://files.pythonhosted.org/packages/ed/23/7a778b6bd0b9a8039df8b1b1d80e2e2ad78aa04171592c8a5c43a56a6af4/pyyaml-6.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28", size = 775116, upload-time = "2025-09-25T21:32:13.652Z" }, + { url = "https://files.pythonhosted.org/packages/65/30/d7353c338e12baef4ecc1b09e877c1970bd3382789c159b4f89d6a70dc09/pyyaml-6.0.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c", size = 844011, upload-time = "2025-09-25T21:32:15.21Z" }, + { url = "https://files.pythonhosted.org/packages/8b/9d/b3589d3877982d4f2329302ef98a8026e7f4443c765c46cfecc8858c6b4b/pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc", size = 807870, upload-time = "2025-09-25T21:32:16.431Z" }, + { url = "https://files.pythonhosted.org/packages/05/c0/b3be26a015601b822b97d9149ff8cb5ead58c66f981e04fedf4e762f4bd4/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e", size = 761089, upload-time = "2025-09-25T21:32:17.56Z" }, + { url = "https://files.pythonhosted.org/packages/be/8e/98435a21d1d4b46590d5459a22d88128103f8da4c2d4cb8f14f2a96504e1/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea", size = 790181, upload-time = "2025-09-25T21:32:18.834Z" }, + { url = "https://files.pythonhosted.org/packages/74/93/7baea19427dcfbe1e5a372d81473250b379f04b1bd3c4c5ff825e2327202/pyyaml-6.0.3-cp312-cp312-win32.whl", hash = "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5", size = 137658, upload-time = "2025-09-25T21:32:20.209Z" }, + { url = "https://files.pythonhosted.org/packages/86/bf/899e81e4cce32febab4fb42bb97dcdf66bc135272882d1987881a4b519e9/pyyaml-6.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b", size = 154003, upload-time = "2025-09-25T21:32:21.167Z" }, + { url = "https://files.pythonhosted.org/packages/1a/08/67bd04656199bbb51dbed1439b7f27601dfb576fb864099c7ef0c3e55531/pyyaml-6.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd", size = 140344, upload-time = "2025-09-25T21:32:22.617Z" }, + { url = "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", size = 181669, upload-time = "2025-09-25T21:32:23.673Z" }, + { url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", size = 173252, upload-time = "2025-09-25T21:32:25.149Z" }, + { url = "https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c", size = 767081, upload-time = "2025-09-25T21:32:26.575Z" }, + { url = "https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5", size = 841159, upload-time = "2025-09-25T21:32:27.727Z" }, + { url = "https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6", size = 801626, upload-time = "2025-09-25T21:32:28.878Z" }, + { url = "https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6", size = 753613, upload-time = "2025-09-25T21:32:30.178Z" }, + { url = "https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be", size = 794115, upload-time = "2025-09-25T21:32:31.353Z" }, + { url = "https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26", size = 137427, upload-time = "2025-09-25T21:32:32.58Z" }, + { url = "https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c", size = 154090, upload-time = "2025-09-25T21:32:33.659Z" }, + { url = "https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb", size = 140246, upload-time = "2025-09-25T21:32:34.663Z" }, + { url = "https://files.pythonhosted.org/packages/9d/8c/f4bd7f6465179953d3ac9bc44ac1a8a3e6122cf8ada906b4f96c60172d43/pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac", size = 181814, upload-time = "2025-09-25T21:32:35.712Z" }, + { url = "https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310", size = 173809, upload-time = "2025-09-25T21:32:36.789Z" }, + { url = "https://files.pythonhosted.org/packages/92/b5/47e807c2623074914e29dabd16cbbdd4bf5e9b2db9f8090fa64411fc5382/pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7", size = 766454, upload-time = "2025-09-25T21:32:37.966Z" }, + { url = "https://files.pythonhosted.org/packages/02/9e/e5e9b168be58564121efb3de6859c452fccde0ab093d8438905899a3a483/pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788", size = 836355, upload-time = "2025-09-25T21:32:39.178Z" }, + { url = "https://files.pythonhosted.org/packages/88/f9/16491d7ed2a919954993e48aa941b200f38040928474c9e85ea9e64222c3/pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5", size = 794175, upload-time = "2025-09-25T21:32:40.865Z" }, + { url = "https://files.pythonhosted.org/packages/dd/3f/5989debef34dc6397317802b527dbbafb2b4760878a53d4166579111411e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764", size = 755228, upload-time = "2025-09-25T21:32:42.084Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ce/af88a49043cd2e265be63d083fc75b27b6ed062f5f9fd6cdc223ad62f03e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35", size = 789194, upload-time = "2025-09-25T21:32:43.362Z" }, + { url = "https://files.pythonhosted.org/packages/23/20/bb6982b26a40bb43951265ba29d4c246ef0ff59c9fdcdf0ed04e0687de4d/pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac", size = 156429, upload-time = "2025-09-25T21:32:57.844Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f4/a4541072bb9422c8a883ab55255f918fa378ecf083f5b85e87fc2b4eda1b/pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3", size = 143912, upload-time = "2025-09-25T21:32:59.247Z" }, + { url = "https://files.pythonhosted.org/packages/7c/f9/07dd09ae774e4616edf6cda684ee78f97777bdd15847253637a6f052a62f/pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3", size = 189108, upload-time = "2025-09-25T21:32:44.377Z" }, + { url = "https://files.pythonhosted.org/packages/4e/78/8d08c9fb7ce09ad8c38ad533c1191cf27f7ae1effe5bb9400a46d9437fcf/pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba", size = 183641, upload-time = "2025-09-25T21:32:45.407Z" }, + { url = "https://files.pythonhosted.org/packages/7b/5b/3babb19104a46945cf816d047db2788bcaf8c94527a805610b0289a01c6b/pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c", size = 831901, upload-time = "2025-09-25T21:32:48.83Z" }, + { url = "https://files.pythonhosted.org/packages/8b/cc/dff0684d8dc44da4d22a13f35f073d558c268780ce3c6ba1b87055bb0b87/pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702", size = 861132, upload-time = "2025-09-25T21:32:50.149Z" }, + { url = "https://files.pythonhosted.org/packages/b1/5e/f77dc6b9036943e285ba76b49e118d9ea929885becb0a29ba8a7c75e29fe/pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c", size = 839261, upload-time = "2025-09-25T21:32:51.808Z" }, + { url = "https://files.pythonhosted.org/packages/ce/88/a9db1376aa2a228197c58b37302f284b5617f56a5d959fd1763fb1675ce6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065", size = 805272, upload-time = "2025-09-25T21:32:52.941Z" }, + { url = "https://files.pythonhosted.org/packages/da/92/1446574745d74df0c92e6aa4a7b0b3130706a4142b2d1a5869f2eaa423c6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65", size = 829923, upload-time = "2025-09-25T21:32:54.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/7a/1c7270340330e575b92f397352af856a8c06f230aa3e76f86b39d01b416a/pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9", size = 174062, upload-time = "2025-09-25T21:32:55.767Z" }, + { url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341, upload-time = "2025-09-25T21:32:56.828Z" }, +] + +[[package]] +name = "rich" +version = "15.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown-it-py" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c0/8f/0722ca900cc807c13a6a0c696dacf35430f72e0ec571c4275d2371fca3e9/rich-15.0.0.tar.gz", hash = "sha256:edd07a4824c6b40189fb7ac9bc4c52536e9780fbbfbddf6f1e2502c31b068c36", size = 230680, upload-time = "2026-04-12T08:24:00.75Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/82/3b/64d4899d73f91ba49a8c18a8ff3f0ea8f1c1d75481760df8c68ef5235bf5/rich-15.0.0-py3-none-any.whl", hash = "sha256:33bd4ef74232fb73fe9279a257718407f169c09b78a87ad3d296f548e27de0bb", size = 310654, upload-time = "2026-04-12T08:24:02.83Z" }, +] + +[[package]] +name = "rich-toolkit" +version = "0.19.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "rich" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/ba/dae9e3096651042754da419a4042bc1c75e07d615f9b15066d738838e4df/rich_toolkit-0.19.7.tar.gz", hash = "sha256:133c0915872da91d4c25d85342d5ec1dfacc69b63448af1a08a0d4b4f23ef46e", size = 195877, upload-time = "2026-02-24T16:06:20.555Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/3c/c923619f6d2f5fafcc96fec0aaf9550a46cd5b6481f06e0c6b66a2a4fed0/rich_toolkit-0.19.7-py3-none-any.whl", hash = "sha256:0288e9203728c47c5a4eb60fd2f0692d9df7455a65901ab6f898437a2ba5989d", size = 32963, upload-time = "2026-02-24T16:06:22.066Z" }, +] + +[[package]] +name = "rignore" +version = "0.7.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e5/f5/8bed2310abe4ae04b67a38374a4d311dd85220f5d8da56f47ae9361be0b0/rignore-0.7.6.tar.gz", hash = "sha256:00d3546cd793c30cb17921ce674d2c8f3a4b00501cb0e3dd0e82217dbeba2671", size = 57140, upload-time = "2025-11-05T21:41:21.968Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/0e/012556ef3047a2628842b44e753bb15f4dc46806780ff090f1e8fe4bf1eb/rignore-0.7.6-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:03e82348cb7234f8d9b2834f854400ddbbd04c0f8f35495119e66adbd37827a8", size = 883488, upload-time = "2025-11-05T20:42:41.359Z" }, + { url = "https://files.pythonhosted.org/packages/93/b0/d4f1f3fe9eb3f8e382d45ce5b0547ea01c4b7e0b4b4eb87bcd66a1d2b888/rignore-0.7.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b9e624f6be6116ea682e76c5feb71ea91255c67c86cb75befe774365b2931961", size = 820411, upload-time = "2025-11-05T20:42:24.782Z" }, + { url = "https://files.pythonhosted.org/packages/4a/c8/dea564b36dedac8de21c18e1851789545bc52a0c22ece9843444d5608a6a/rignore-0.7.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bda49950d405aa8d0ebe26af807c4e662dd281d926530f03f29690a2e07d649a", size = 897821, upload-time = "2025-11-05T20:40:52.613Z" }, + { url = "https://files.pythonhosted.org/packages/b3/2b/ee96db17ac1835e024c5d0742eefb7e46de60020385ac883dd3d1cde2c1f/rignore-0.7.6-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b5fd5ab3840b8c16851d327ed06e9b8be6459702a53e5ab1fc4073b684b3789e", size = 873963, upload-time = "2025-11-05T20:41:07.49Z" }, + { url = "https://files.pythonhosted.org/packages/a5/8c/ad5a57bbb9d14d5c7e5960f712a8a0b902472ea3f4a2138cbf70d1777b75/rignore-0.7.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ced2a248352636a5c77504cb755dc02c2eef9a820a44d3f33061ce1bb8a7f2d2", size = 1169216, upload-time = "2025-11-05T20:41:23.73Z" }, + { url = "https://files.pythonhosted.org/packages/80/e6/5b00bc2a6bc1701e6878fca798cf5d9125eb3113193e33078b6fc0d99123/rignore-0.7.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a04a3b73b75ddc12c9c9b21efcdaab33ca3832941d6f1d67bffd860941cd448a", size = 942942, upload-time = "2025-11-05T20:41:39.393Z" }, + { url = "https://files.pythonhosted.org/packages/85/e5/7f99bd0cc9818a91d0e8b9acc65b792e35750e3bdccd15a7ee75e64efca4/rignore-0.7.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d24321efac92140b7ec910ac7c53ab0f0c86a41133d2bb4b0e6a7c94967f44dd", size = 959787, upload-time = "2025-11-05T20:42:09.765Z" }, + { url = "https://files.pythonhosted.org/packages/55/54/2ffea79a7c1eabcede1926347ebc2a81bc6b81f447d05b52af9af14948b9/rignore-0.7.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:73c7aa109d41e593785c55fdaa89ad80b10330affa9f9d3e3a51fa695f739b20", size = 984245, upload-time = "2025-11-05T20:41:54.062Z" }, + { url = "https://files.pythonhosted.org/packages/41/f7/e80f55dfe0f35787fa482aa18689b9c8251e045076c35477deb0007b3277/rignore-0.7.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1734dc49d1e9501b07852ef44421f84d9f378da9fbeda729e77db71f49cac28b", size = 1078647, upload-time = "2025-11-05T21:40:13.463Z" }, + { url = "https://files.pythonhosted.org/packages/d4/cf/2c64f0b6725149f7c6e7e5a909d14354889b4beaadddaa5fff023ec71084/rignore-0.7.6-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:5719ea14ea2b652c0c0894be5dfde954e1853a80dea27dd2fbaa749618d837f5", size = 1139186, upload-time = "2025-11-05T21:40:31.27Z" }, + { url = "https://files.pythonhosted.org/packages/75/95/a86c84909ccc24af0d094b50d54697951e576c252a4d9f21b47b52af9598/rignore-0.7.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:8e23424fc7ce35726854f639cb7968151a792c0c3d9d082f7f67e0c362cfecca", size = 1117604, upload-time = "2025-11-05T21:40:48.07Z" }, + { url = "https://files.pythonhosted.org/packages/7f/5e/13b249613fd5d18d58662490ab910a9f0be758981d1797789913adb4e918/rignore-0.7.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3efdcf1dd84d45f3e2bd2f93303d9be103888f56dfa7c3349b5bf4f0657ec696", size = 1127725, upload-time = "2025-11-05T21:41:05.804Z" }, + { url = "https://files.pythonhosted.org/packages/c7/28/fa5dcd1e2e16982c359128664e3785f202d3eca9b22dd0b2f91c4b3d242f/rignore-0.7.6-cp312-cp312-win32.whl", hash = "sha256:ccca9d1a8b5234c76b71546fc3c134533b013f40495f394a65614a81f7387046", size = 646145, upload-time = "2025-11-05T21:41:51.096Z" }, + { url = "https://files.pythonhosted.org/packages/26/87/69387fb5dd81a0f771936381431780b8cf66fcd2cfe9495e1aaf41548931/rignore-0.7.6-cp312-cp312-win_amd64.whl", hash = "sha256:c96a285e4a8bfec0652e0bfcf42b1aabcdda1e7625f5006d188e3b1c87fdb543", size = 726090, upload-time = "2025-11-05T21:41:36.485Z" }, + { url = "https://files.pythonhosted.org/packages/24/5f/e8418108dcda8087fb198a6f81caadbcda9fd115d61154bf0df4d6d3619b/rignore-0.7.6-cp312-cp312-win_arm64.whl", hash = "sha256:a64a750e7a8277a323f01ca50b7784a764845f6cce2fe38831cb93f0508d0051", size = 656317, upload-time = "2025-11-05T21:41:25.305Z" }, + { url = "https://files.pythonhosted.org/packages/b7/8a/a4078f6e14932ac7edb171149c481de29969d96ddee3ece5dc4c26f9e0c3/rignore-0.7.6-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:2bdab1d31ec9b4fb1331980ee49ea051c0d7f7bb6baa28b3125ef03cdc48fdaf", size = 883057, upload-time = "2025-11-05T20:42:42.741Z" }, + { url = "https://files.pythonhosted.org/packages/f9/8f/f8daacd177db4bf7c2223bab41e630c52711f8af9ed279be2058d2fe4982/rignore-0.7.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:90f0a00ce0c866c275bf888271f1dc0d2140f29b82fcf33cdbda1e1a6af01010", size = 820150, upload-time = "2025-11-05T20:42:26.545Z" }, + { url = "https://files.pythonhosted.org/packages/36/31/b65b837e39c3f7064c426754714ac633b66b8c2290978af9d7f513e14aa9/rignore-0.7.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c1ad295537041dc2ed4b540fb1a3906bd9ede6ccdad3fe79770cd89e04e3c73c", size = 897406, upload-time = "2025-11-05T20:40:53.854Z" }, + { url = "https://files.pythonhosted.org/packages/ca/58/1970ce006c427e202ac7c081435719a076c478f07b3a23f469227788dc23/rignore-0.7.6-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f782dbd3a65a5ac85adfff69e5c6b101285ef3f845c3a3cae56a54bebf9fe116", size = 874050, upload-time = "2025-11-05T20:41:08.922Z" }, + { url = "https://files.pythonhosted.org/packages/d4/00/eb45db9f90137329072a732273be0d383cb7d7f50ddc8e0bceea34c1dfdf/rignore-0.7.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:65cece3b36e5b0826d946494734c0e6aaf5a0337e18ff55b071438efe13d559e", size = 1167835, upload-time = "2025-11-05T20:41:24.997Z" }, + { url = "https://files.pythonhosted.org/packages/f3/f1/6f1d72ddca41a64eed569680587a1236633587cc9f78136477ae69e2c88a/rignore-0.7.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d7e4bb66c13cd7602dc8931822c02dfbbd5252015c750ac5d6152b186f0a8be0", size = 941945, upload-time = "2025-11-05T20:41:40.628Z" }, + { url = "https://files.pythonhosted.org/packages/48/6f/2f178af1c1a276a065f563ec1e11e7a9e23d4996fd0465516afce4b5c636/rignore-0.7.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:297e500c15766e196f68aaaa70e8b6db85fa23fdc075b880d8231fdfba738cd7", size = 959067, upload-time = "2025-11-05T20:42:11.09Z" }, + { url = "https://files.pythonhosted.org/packages/5b/db/423a81c4c1e173877c7f9b5767dcaf1ab50484a94f60a0b2ed78be3fa765/rignore-0.7.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a07084211a8d35e1a5b1d32b9661a5ed20669970b369df0cf77da3adea3405de", size = 984438, upload-time = "2025-11-05T20:41:55.443Z" }, + { url = "https://files.pythonhosted.org/packages/31/eb/c4f92cc3f2825d501d3c46a244a671eb737fc1bcf7b05a3ecd34abb3e0d7/rignore-0.7.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:181eb2a975a22256a1441a9d2f15eb1292839ea3f05606620bd9e1938302cf79", size = 1078365, upload-time = "2025-11-05T21:40:15.148Z" }, + { url = "https://files.pythonhosted.org/packages/26/09/99442f02794bd7441bfc8ed1c7319e890449b816a7493b2db0e30af39095/rignore-0.7.6-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:7bbcdc52b5bf9f054b34ce4af5269df5d863d9c2456243338bc193c28022bd7b", size = 1139066, upload-time = "2025-11-05T21:40:32.771Z" }, + { url = "https://files.pythonhosted.org/packages/2c/88/bcfc21e520bba975410e9419450f4b90a2ac8236b9a80fd8130e87d098af/rignore-0.7.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f2e027a6da21a7c8c0d87553c24ca5cc4364def18d146057862c23a96546238e", size = 1118036, upload-time = "2025-11-05T21:40:49.646Z" }, + { url = "https://files.pythonhosted.org/packages/e2/25/d37215e4562cda5c13312636393aea0bafe38d54d4e0517520a4cc0753ec/rignore-0.7.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ee4a18b82cbbc648e4aac1510066682fe62beb5dc88e2c67c53a83954e541360", size = 1127550, upload-time = "2025-11-05T21:41:07.648Z" }, + { url = "https://files.pythonhosted.org/packages/dc/76/a264ab38bfa1620ec12a8ff1c07778da89e16d8c0f3450b0333020d3d6dc/rignore-0.7.6-cp313-cp313-win32.whl", hash = "sha256:a7d7148b6e5e95035d4390396895adc384d37ff4e06781a36fe573bba7c283e5", size = 646097, upload-time = "2025-11-05T21:41:53.201Z" }, + { url = "https://files.pythonhosted.org/packages/62/44/3c31b8983c29ea8832b6082ddb1d07b90379c2d993bd20fce4487b71b4f4/rignore-0.7.6-cp313-cp313-win_amd64.whl", hash = "sha256:b037c4b15a64dced08fc12310ee844ec2284c4c5c1ca77bc37d0a04f7bff386e", size = 726170, upload-time = "2025-11-05T21:41:38.131Z" }, + { url = "https://files.pythonhosted.org/packages/aa/41/e26a075cab83debe41a42661262f606166157df84e0e02e2d904d134c0d8/rignore-0.7.6-cp313-cp313-win_arm64.whl", hash = "sha256:e47443de9b12fe569889bdbe020abe0e0b667516ee2ab435443f6d0869bd2804", size = 656184, upload-time = "2025-11-05T21:41:27.396Z" }, + { url = "https://files.pythonhosted.org/packages/9a/b9/1f5bd82b87e5550cd843ceb3768b4a8ef274eb63f29333cf2f29644b3d75/rignore-0.7.6-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:8e41be9fa8f2f47239ded8920cc283699a052ac4c371f77f5ac017ebeed75732", size = 882632, upload-time = "2025-11-05T20:42:44.063Z" }, + { url = "https://files.pythonhosted.org/packages/e9/6b/07714a3efe4a8048864e8a5b7db311ba51b921e15268b17defaebf56d3db/rignore-0.7.6-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:6dc1e171e52cefa6c20e60c05394a71165663b48bca6c7666dee4f778f2a7d90", size = 820760, upload-time = "2025-11-05T20:42:27.885Z" }, + { url = "https://files.pythonhosted.org/packages/ac/0f/348c829ea2d8d596e856371b14b9092f8a5dfbb62674ec9b3f67e4939a9d/rignore-0.7.6-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ce2268837c3600f82ab8db58f5834009dc638ee17103582960da668963bebc5", size = 899044, upload-time = "2025-11-05T20:40:55.336Z" }, + { url = "https://files.pythonhosted.org/packages/f0/30/2e1841a19b4dd23878d73edd5d82e998a83d5ed9570a89675f140ca8b2ad/rignore-0.7.6-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:690a3e1b54bfe77e89c4bacb13f046e642f8baadafc61d68f5a726f324a76ab6", size = 874144, upload-time = "2025-11-05T20:41:10.195Z" }, + { url = "https://files.pythonhosted.org/packages/c2/bf/0ce9beb2e5f64c30e3580bef09f5829236889f01511a125f98b83169b993/rignore-0.7.6-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:09d12ac7a0b6210c07bcd145007117ebd8abe99c8eeb383e9e4673910c2754b2", size = 1168062, upload-time = "2025-11-05T20:41:26.511Z" }, + { url = "https://files.pythonhosted.org/packages/b9/8b/571c178414eb4014969865317da8a02ce4cf5241a41676ef91a59aab24de/rignore-0.7.6-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2a2b2b74a8c60203b08452479b90e5ce3dbe96a916214bc9eb2e5af0b6a9beb0", size = 942542, upload-time = "2025-11-05T20:41:41.838Z" }, + { url = "https://files.pythonhosted.org/packages/19/62/7a3cf601d5a45137a7e2b89d10c05b5b86499190c4b7ca5c3c47d79ee519/rignore-0.7.6-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8fc5a531ef02131e44359419a366bfac57f773ea58f5278c2cdd915f7d10ea94", size = 958739, upload-time = "2025-11-05T20:42:12.463Z" }, + { url = "https://files.pythonhosted.org/packages/5f/1f/4261f6a0d7caf2058a5cde2f5045f565ab91aa7badc972b57d19ce58b14e/rignore-0.7.6-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b7a1f77d9c4cd7e76229e252614d963442686bfe12c787a49f4fe481df49e7a9", size = 984138, upload-time = "2025-11-05T20:41:56.775Z" }, + { url = "https://files.pythonhosted.org/packages/2b/bf/628dfe19c75e8ce1f45f7c248f5148b17dfa89a817f8e3552ab74c3ae812/rignore-0.7.6-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ead81f728682ba72b5b1c3d5846b011d3e0174da978de87c61645f2ed36659a7", size = 1079299, upload-time = "2025-11-05T21:40:16.639Z" }, + { url = "https://files.pythonhosted.org/packages/af/a5/be29c50f5c0c25c637ed32db8758fdf5b901a99e08b608971cda8afb293b/rignore-0.7.6-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:12ffd50f520c22ffdabed8cd8bfb567d9ac165b2b854d3e679f4bcaef11a9441", size = 1139618, upload-time = "2025-11-05T21:40:34.507Z" }, + { url = "https://files.pythonhosted.org/packages/2a/40/3c46cd7ce4fa05c20b525fd60f599165e820af66e66f2c371cd50644558f/rignore-0.7.6-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:e5a16890fbe3c894f8ca34b0fcacc2c200398d4d46ae654e03bc9b3dbf2a0a72", size = 1117626, upload-time = "2025-11-05T21:40:51.494Z" }, + { url = "https://files.pythonhosted.org/packages/8c/b9/aea926f263b8a29a23c75c2e0d8447965eb1879d3feb53cfcf84db67ed58/rignore-0.7.6-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:3abab3bf99e8a77488ef6c7c9a799fac22224c28fe9f25cc21aa7cc2b72bfc0b", size = 1128144, upload-time = "2025-11-05T21:41:09.169Z" }, + { url = "https://files.pythonhosted.org/packages/a4/f6/0d6242f8d0df7f2ecbe91679fefc1f75e7cd2072cb4f497abaab3f0f8523/rignore-0.7.6-cp314-cp314-win32.whl", hash = "sha256:eeef421c1782953c4375aa32f06ecae470c1285c6381eee2a30d2e02a5633001", size = 646385, upload-time = "2025-11-05T21:41:55.105Z" }, + { url = "https://files.pythonhosted.org/packages/d5/38/c0dcd7b10064f084343d6af26fe9414e46e9619c5f3224b5272e8e5d9956/rignore-0.7.6-cp314-cp314-win_amd64.whl", hash = "sha256:6aeed503b3b3d5af939b21d72a82521701a4bd3b89cd761da1e7dc78621af304", size = 725738, upload-time = "2025-11-05T21:41:39.736Z" }, + { url = "https://files.pythonhosted.org/packages/d9/7a/290f868296c1ece914d565757ab363b04730a728b544beb567ceb3b2d96f/rignore-0.7.6-cp314-cp314-win_arm64.whl", hash = "sha256:104f215b60b3c984c386c3e747d6ab4376d5656478694e22c7bd2f788ddd8304", size = 656008, upload-time = "2025-11-05T21:41:29.028Z" }, + { url = "https://files.pythonhosted.org/packages/ca/d2/3c74e3cd81fe8ea08a8dcd2d755c09ac2e8ad8fe409508904557b58383d3/rignore-0.7.6-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:bb24a5b947656dd94cb9e41c4bc8b23cec0c435b58be0d74a874f63c259549e8", size = 882835, upload-time = "2025-11-05T20:42:45.443Z" }, + { url = "https://files.pythonhosted.org/packages/77/61/a772a34b6b63154877433ac2d048364815b24c2dd308f76b212c408101a2/rignore-0.7.6-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5b1e33c9501cefe24b70a1eafd9821acfd0ebf0b35c3a379430a14df089993e3", size = 820301, upload-time = "2025-11-05T20:42:29.226Z" }, + { url = "https://files.pythonhosted.org/packages/71/30/054880b09c0b1b61d17eeb15279d8bf729c0ba52b36c3ada52fb827cbb3c/rignore-0.7.6-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bec3994665a44454df86deb762061e05cd4b61e3772f5b07d1882a8a0d2748d5", size = 897611, upload-time = "2025-11-05T20:40:56.475Z" }, + { url = "https://files.pythonhosted.org/packages/1e/40/b2d1c169f833d69931bf232600eaa3c7998ba4f9a402e43a822dad2ea9f2/rignore-0.7.6-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:26cba2edfe3cff1dfa72bddf65d316ddebf182f011f2f61538705d6dbaf54986", size = 873875, upload-time = "2025-11-05T20:41:11.561Z" }, + { url = "https://files.pythonhosted.org/packages/55/59/ca5ae93d83a1a60e44b21d87deb48b177a8db1b85e82fc8a9abb24a8986d/rignore-0.7.6-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ffa86694fec604c613696cb91e43892aa22e1fec5f9870e48f111c603e5ec4e9", size = 1167245, upload-time = "2025-11-05T20:41:28.29Z" }, + { url = "https://files.pythonhosted.org/packages/a5/52/cf3dce392ba2af806cba265aad6bcd9c48bb2a6cb5eee448d3319f6e505b/rignore-0.7.6-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48efe2ed95aa8104145004afb15cdfa02bea5cdde8b0344afeb0434f0d989aa2", size = 941750, upload-time = "2025-11-05T20:41:43.111Z" }, + { url = "https://files.pythonhosted.org/packages/ec/be/3f344c6218d779395e785091d05396dfd8b625f6aafbe502746fcd880af2/rignore-0.7.6-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8dcae43eb44b7f2457fef7cc87f103f9a0013017a6f4e62182c565e924948f21", size = 958896, upload-time = "2025-11-05T20:42:13.784Z" }, + { url = "https://files.pythonhosted.org/packages/c9/34/d3fa71938aed7d00dcad87f0f9bcb02ad66c85d6ffc83ba31078ce53646a/rignore-0.7.6-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2cd649a7091c0dad2f11ef65630d30c698d505cbe8660dd395268e7c099cc99f", size = 983992, upload-time = "2025-11-05T20:41:58.022Z" }, + { url = "https://files.pythonhosted.org/packages/24/a4/52a697158e9920705bdbd0748d59fa63e0f3233fb92e9df9a71afbead6ca/rignore-0.7.6-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:42de84b0289d478d30ceb7ae59023f7b0527786a9a5b490830e080f0e4ea5aeb", size = 1078181, upload-time = "2025-11-05T21:40:18.151Z" }, + { url = "https://files.pythonhosted.org/packages/ac/65/aa76dbcdabf3787a6f0fd61b5cc8ed1e88580590556d6c0207960d2384bb/rignore-0.7.6-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:875a617e57b53b4acbc5a91de418233849711c02e29cc1f4f9febb2f928af013", size = 1139232, upload-time = "2025-11-05T21:40:35.966Z" }, + { url = "https://files.pythonhosted.org/packages/08/44/31b31a49b3233c6842acc1c0731aa1e7fb322a7170612acf30327f700b44/rignore-0.7.6-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:8703998902771e96e49968105207719f22926e4431b108450f3f430b4e268b7c", size = 1117349, upload-time = "2025-11-05T21:40:53.013Z" }, + { url = "https://files.pythonhosted.org/packages/e9/ae/1b199a2302c19c658cf74e5ee1427605234e8c91787cfba0015f2ace145b/rignore-0.7.6-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:602ef33f3e1b04c1e9a10a3c03f8bc3cef2d2383dcc250d309be42b49923cabc", size = 1127702, upload-time = "2025-11-05T21:41:10.881Z" }, + { url = "https://files.pythonhosted.org/packages/fc/d3/18210222b37e87e36357f7b300b7d98c6dd62b133771e71ae27acba83a4f/rignore-0.7.6-cp314-cp314t-win32.whl", hash = "sha256:c1d8f117f7da0a4a96a8daef3da75bc090e3792d30b8b12cfadc240c631353f9", size = 647033, upload-time = "2025-11-05T21:42:00.095Z" }, + { url = "https://files.pythonhosted.org/packages/3e/87/033eebfbee3ec7d92b3bb1717d8f68c88e6fc7de54537040f3b3a405726f/rignore-0.7.6-cp314-cp314t-win_amd64.whl", hash = "sha256:ca36e59408bec81de75d307c568c2d0d410fb880b1769be43611472c61e85c96", size = 725647, upload-time = "2025-11-05T21:41:44.449Z" }, + { url = "https://files.pythonhosted.org/packages/79/62/b88e5879512c55b8ee979c666ee6902adc4ed05007226de266410ae27965/rignore-0.7.6-cp314-cp314t-win_arm64.whl", hash = "sha256:b83adabeb3e8cf662cabe1931b83e165b88c526fa6af6b3aa90429686e474896", size = 656035, upload-time = "2025-11-05T21:41:31.13Z" }, +] + +[[package]] +name = "sentry-sdk" +version = "2.58.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/26/b3/fb8291170d0e844173164709fc0fa0c221ed75a5da740c8746f2a83b4eb1/sentry_sdk-2.58.0.tar.gz", hash = "sha256:c1144d947352d54e5b7daa63596d9f848adf684989c06c4f5a659f0c85a18f6f", size = 438764, upload-time = "2026-04-13T17:23:26.265Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fa/eb/d875669993b762556ae8b2efd86219943b4c0864d22204d622a9aee3052b/sentry_sdk-2.58.0-py2.py3-none-any.whl", hash = "sha256:688d1c704ddecf382ea3326f21a67453d4caa95592d722b7c780a36a9d23109e", size = 460919, upload-time = "2026-04-13T17:23:24.675Z" }, +] + +[[package]] +name = "shellingham" +version = "1.5.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de", size = 10310, upload-time = "2023-10-24T04:13:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755, upload-time = "2023-10-24T04:13:38.866Z" }, +] + +[[package]] +name = "starlette" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/81/69/17425771797c36cded50b7fe44e850315d039f28b15901ab44839e70b593/starlette-1.0.0.tar.gz", hash = "sha256:6a4beaf1f81bb472fd19ea9b918b50dc3a77a6f2e190a12954b25e6ed5eea149", size = 2655289, upload-time = "2026-03-22T18:29:46.779Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl", hash = "sha256:d3ec55e0bb321692d275455ddfd3df75fff145d009685eb40dc91fc66b03d38b", size = 72651, upload-time = "2026-03-22T18:29:45.111Z" }, +] + +[[package]] +name = "typer" +version = "0.24.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-doc" }, + { name = "click" }, + { name = "rich" }, + { name = "shellingham" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f5/24/cb09efec5cc954f7f9b930bf8279447d24618bb6758d4f6adf2574c41780/typer-0.24.1.tar.gz", hash = "sha256:e39b4732d65fbdcde189ae76cf7cd48aeae72919dea1fdfc16593be016256b45", size = 118613, upload-time = "2026-02-21T16:54:40.609Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4a/91/48db081e7a63bb37284f9fbcefda7c44c277b18b0e13fbc36ea2335b71e6/typer-0.24.1-py3-none-any.whl", hash = "sha256:112c1f0ce578bfb4cab9ffdabc68f031416ebcc216536611ba21f04e9aa84c9e", size = 56085, upload-time = "2026-02-21T16:54:41.616Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, +] + +[[package]] +name = "typing-inspection" +version = "0.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949, upload-time = "2025-10-01T02:14:41.687Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload-time = "2025-10-01T02:14:40.154Z" }, +] + +[[package]] +name = "urllib3" +version = "2.6.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556, upload-time = "2026-01-07T16:24:43.925Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", size = 131584, upload-time = "2026-01-07T16:24:42.685Z" }, +] + +[[package]] +name = "uvicorn" +version = "0.44.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5e/da/6eee1ff8b6cbeed47eeb5229749168e81eb4b7b999a1a15a7176e51410c9/uvicorn-0.44.0.tar.gz", hash = "sha256:6c942071b68f07e178264b9152f1f16dfac5da85880c4ce06366a96d70d4f31e", size = 86947, upload-time = "2026-04-06T09:23:22.826Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/23/a5bbd9600dd607411fa644c06ff4951bec3a4d82c4b852374024359c19c0/uvicorn-0.44.0-py3-none-any.whl", hash = "sha256:ce937c99a2cc70279556967274414c087888e8cec9f9c94644dfca11bd3ced89", size = 69425, upload-time = "2026-04-06T09:23:21.524Z" }, +] + +[package.optional-dependencies] +standard = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "httptools" }, + { name = "python-dotenv" }, + { name = "pyyaml" }, + { name = "uvloop", marker = "platform_python_implementation != 'PyPy' and sys_platform != 'cygwin' and sys_platform != 'win32'" }, + { name = "watchfiles" }, + { name = "websockets" }, +] + +[[package]] +name = "uvloop" +version = "0.22.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/06/f0/18d39dbd1971d6d62c4629cc7fa67f74821b0dc1f5a77af43719de7936a7/uvloop-0.22.1.tar.gz", hash = "sha256:6c84bae345b9147082b17371e3dd5d42775bddce91f885499017f4607fdaf39f", size = 2443250, upload-time = "2025-10-16T22:17:19.342Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3d/ff/7f72e8170be527b4977b033239a83a68d5c881cc4775fca255c677f7ac5d/uvloop-0.22.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:fe94b4564e865d968414598eea1a6de60adba0c040ba4ed05ac1300de402cd42", size = 1359936, upload-time = "2025-10-16T22:16:29.436Z" }, + { url = "https://files.pythonhosted.org/packages/c3/c6/e5d433f88fd54d81ef4be58b2b7b0cea13c442454a1db703a1eea0db1a59/uvloop-0.22.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:51eb9bd88391483410daad430813d982010f9c9c89512321f5b60e2cddbdddd6", size = 752769, upload-time = "2025-10-16T22:16:30.493Z" }, + { url = "https://files.pythonhosted.org/packages/24/68/a6ac446820273e71aa762fa21cdcc09861edd3536ff47c5cd3b7afb10eeb/uvloop-0.22.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:700e674a166ca5778255e0e1dc4e9d79ab2acc57b9171b79e65feba7184b3370", size = 4317413, upload-time = "2025-10-16T22:16:31.644Z" }, + { url = "https://files.pythonhosted.org/packages/5f/6f/e62b4dfc7ad6518e7eff2516f680d02a0f6eb62c0c212e152ca708a0085e/uvloop-0.22.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7b5b1ac819a3f946d3b2ee07f09149578ae76066d70b44df3fa990add49a82e4", size = 4426307, upload-time = "2025-10-16T22:16:32.917Z" }, + { url = "https://files.pythonhosted.org/packages/90/60/97362554ac21e20e81bcef1150cb2a7e4ffdaf8ea1e5b2e8bf7a053caa18/uvloop-0.22.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e047cc068570bac9866237739607d1313b9253c3051ad84738cbb095be0537b2", size = 4131970, upload-time = "2025-10-16T22:16:34.015Z" }, + { url = "https://files.pythonhosted.org/packages/99/39/6b3f7d234ba3964c428a6e40006340f53ba37993f46ed6e111c6e9141d18/uvloop-0.22.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:512fec6815e2dd45161054592441ef76c830eddaad55c8aa30952e6fe1ed07c0", size = 4296343, upload-time = "2025-10-16T22:16:35.149Z" }, + { url = "https://files.pythonhosted.org/packages/89/8c/182a2a593195bfd39842ea68ebc084e20c850806117213f5a299dfc513d9/uvloop-0.22.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:561577354eb94200d75aca23fbde86ee11be36b00e52a4eaf8f50fb0c86b7705", size = 1358611, upload-time = "2025-10-16T22:16:36.833Z" }, + { url = "https://files.pythonhosted.org/packages/d2/14/e301ee96a6dc95224b6f1162cd3312f6d1217be3907b79173b06785f2fe7/uvloop-0.22.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1cdf5192ab3e674ca26da2eada35b288d2fa49fdd0f357a19f0e7c4e7d5077c8", size = 751811, upload-time = "2025-10-16T22:16:38.275Z" }, + { url = "https://files.pythonhosted.org/packages/b7/02/654426ce265ac19e2980bfd9ea6590ca96a56f10c76e63801a2df01c0486/uvloop-0.22.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6e2ea3d6190a2968f4a14a23019d3b16870dd2190cd69c8180f7c632d21de68d", size = 4288562, upload-time = "2025-10-16T22:16:39.375Z" }, + { url = "https://files.pythonhosted.org/packages/15/c0/0be24758891ef825f2065cd5db8741aaddabe3e248ee6acc5e8a80f04005/uvloop-0.22.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0530a5fbad9c9e4ee3f2b33b148c6a64d47bbad8000ea63704fa8260f4cf728e", size = 4366890, upload-time = "2025-10-16T22:16:40.547Z" }, + { url = "https://files.pythonhosted.org/packages/d2/53/8369e5219a5855869bcee5f4d317f6da0e2c669aecf0ef7d371e3d084449/uvloop-0.22.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bc5ef13bbc10b5335792360623cc378d52d7e62c2de64660616478c32cd0598e", size = 4119472, upload-time = "2025-10-16T22:16:41.694Z" }, + { url = "https://files.pythonhosted.org/packages/f8/ba/d69adbe699b768f6b29a5eec7b47dd610bd17a69de51b251126a801369ea/uvloop-0.22.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1f38ec5e3f18c8a10ded09742f7fb8de0108796eb673f30ce7762ce1b8550cad", size = 4239051, upload-time = "2025-10-16T22:16:43.224Z" }, + { url = "https://files.pythonhosted.org/packages/90/cd/b62bdeaa429758aee8de8b00ac0dd26593a9de93d302bff3d21439e9791d/uvloop-0.22.1-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3879b88423ec7e97cd4eba2a443aa26ed4e59b45e6b76aabf13fe2f27023a142", size = 1362067, upload-time = "2025-10-16T22:16:44.503Z" }, + { url = "https://files.pythonhosted.org/packages/0d/f8/a132124dfda0777e489ca86732e85e69afcd1ff7686647000050ba670689/uvloop-0.22.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:4baa86acedf1d62115c1dc6ad1e17134476688f08c6efd8a2ab076e815665c74", size = 752423, upload-time = "2025-10-16T22:16:45.968Z" }, + { url = "https://files.pythonhosted.org/packages/a3/94/94af78c156f88da4b3a733773ad5ba0b164393e357cc4bd0ab2e2677a7d6/uvloop-0.22.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:297c27d8003520596236bdb2335e6b3f649480bd09e00d1e3a99144b691d2a35", size = 4272437, upload-time = "2025-10-16T22:16:47.451Z" }, + { url = "https://files.pythonhosted.org/packages/b5/35/60249e9fd07b32c665192cec7af29e06c7cd96fa1d08b84f012a56a0b38e/uvloop-0.22.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c1955d5a1dd43198244d47664a5858082a3239766a839b2102a269aaff7a4e25", size = 4292101, upload-time = "2025-10-16T22:16:49.318Z" }, + { url = "https://files.pythonhosted.org/packages/02/62/67d382dfcb25d0a98ce73c11ed1a6fba5037a1a1d533dcbb7cab033a2636/uvloop-0.22.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b31dc2fccbd42adc73bc4e7cdbae4fc5086cf378979e53ca5d0301838c5682c6", size = 4114158, upload-time = "2025-10-16T22:16:50.517Z" }, + { url = "https://files.pythonhosted.org/packages/f0/7a/f1171b4a882a5d13c8b7576f348acfe6074d72eaf52cccef752f748d4a9f/uvloop-0.22.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:93f617675b2d03af4e72a5333ef89450dfaa5321303ede6e67ba9c9d26878079", size = 4177360, upload-time = "2025-10-16T22:16:52.646Z" }, + { url = "https://files.pythonhosted.org/packages/79/7b/b01414f31546caf0919da80ad57cbfe24c56b151d12af68cee1b04922ca8/uvloop-0.22.1-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:37554f70528f60cad66945b885eb01f1bb514f132d92b6eeed1c90fd54ed6289", size = 1454790, upload-time = "2025-10-16T22:16:54.355Z" }, + { url = "https://files.pythonhosted.org/packages/d4/31/0bb232318dd838cad3fa8fb0c68c8b40e1145b32025581975e18b11fab40/uvloop-0.22.1-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:b76324e2dc033a0b2f435f33eb88ff9913c156ef78e153fb210e03c13da746b3", size = 796783, upload-time = "2025-10-16T22:16:55.906Z" }, + { url = "https://files.pythonhosted.org/packages/42/38/c9b09f3271a7a723a5de69f8e237ab8e7803183131bc57c890db0b6bb872/uvloop-0.22.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:badb4d8e58ee08dad957002027830d5c3b06aea446a6a3744483c2b3b745345c", size = 4647548, upload-time = "2025-10-16T22:16:57.008Z" }, + { url = "https://files.pythonhosted.org/packages/c1/37/945b4ca0ac27e3dc4952642d4c900edd030b3da6c9634875af6e13ae80e5/uvloop-0.22.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b91328c72635f6f9e0282e4a57da7470c7350ab1c9f48546c0f2866205349d21", size = 4467065, upload-time = "2025-10-16T22:16:58.206Z" }, + { url = "https://files.pythonhosted.org/packages/97/cc/48d232f33d60e2e2e0b42f4e73455b146b76ebe216487e862700457fbf3c/uvloop-0.22.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:daf620c2995d193449393d6c62131b3fbd40a63bf7b307a1527856ace637fe88", size = 4328384, upload-time = "2025-10-16T22:16:59.36Z" }, + { url = "https://files.pythonhosted.org/packages/e4/16/c1fd27e9549f3c4baf1dc9c20c456cd2f822dbf8de9f463824b0c0357e06/uvloop-0.22.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6cde23eeda1a25c75b2e07d39970f3374105d5eafbaab2a4482be82f272d5a5e", size = 4296730, upload-time = "2025-10-16T22:17:00.744Z" }, +] + +[[package]] +name = "watchfiles" +version = "1.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c2/c9/8869df9b2a2d6c59d79220a4db37679e74f807c559ffe5265e08b227a210/watchfiles-1.1.1.tar.gz", hash = "sha256:a173cb5c16c4f40ab19cecf48a534c409f7ea983ab8fed0741304a1c0a31b3f2", size = 94440, upload-time = "2025-10-14T15:06:21.08Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/74/d5/f039e7e3c639d9b1d09b07ea412a6806d38123f0508e5f9b48a87b0a76cc/watchfiles-1.1.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:8c89f9f2f740a6b7dcc753140dd5e1ab9215966f7a3530d0c0705c83b401bd7d", size = 404745, upload-time = "2025-10-14T15:04:46.731Z" }, + { url = "https://files.pythonhosted.org/packages/a5/96/a881a13aa1349827490dab2d363c8039527060cfcc2c92cc6d13d1b1049e/watchfiles-1.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bd404be08018c37350f0d6e34676bd1e2889990117a2b90070b3007f172d0610", size = 391769, upload-time = "2025-10-14T15:04:48.003Z" }, + { url = "https://files.pythonhosted.org/packages/4b/5b/d3b460364aeb8da471c1989238ea0e56bec24b6042a68046adf3d9ddb01c/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8526e8f916bb5b9a0a777c8317c23ce65de259422bba5b31325a6fa6029d33af", size = 449374, upload-time = "2025-10-14T15:04:49.179Z" }, + { url = "https://files.pythonhosted.org/packages/b9/44/5769cb62d4ed055cb17417c0a109a92f007114a4e07f30812a73a4efdb11/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2edc3553362b1c38d9f06242416a5d8e9fe235c204a4072e988ce2e5bb1f69f6", size = 459485, upload-time = "2025-10-14T15:04:50.155Z" }, + { url = "https://files.pythonhosted.org/packages/19/0c/286b6301ded2eccd4ffd0041a1b726afda999926cf720aab63adb68a1e36/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30f7da3fb3f2844259cba4720c3fc7138eb0f7b659c38f3bfa65084c7fc7abce", size = 488813, upload-time = "2025-10-14T15:04:51.059Z" }, + { url = "https://files.pythonhosted.org/packages/c7/2b/8530ed41112dd4a22f4dcfdb5ccf6a1baad1ff6eed8dc5a5f09e7e8c41c7/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f8979280bdafff686ba5e4d8f97840f929a87ed9cdf133cbbd42f7766774d2aa", size = 594816, upload-time = "2025-10-14T15:04:52.031Z" }, + { url = "https://files.pythonhosted.org/packages/ce/d2/f5f9fb49489f184f18470d4f99f4e862a4b3e9ac2865688eb2099e3d837a/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dcc5c24523771db3a294c77d94771abcfcb82a0e0ee8efd910c37c59ec1b31bb", size = 475186, upload-time = "2025-10-14T15:04:53.064Z" }, + { url = "https://files.pythonhosted.org/packages/cf/68/5707da262a119fb06fbe214d82dd1fe4a6f4af32d2d14de368d0349eb52a/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db5d7ae38ff20153d542460752ff397fcf5c96090c1230803713cf3147a6803", size = 456812, upload-time = "2025-10-14T15:04:55.174Z" }, + { url = "https://files.pythonhosted.org/packages/66/ab/3cbb8756323e8f9b6f9acb9ef4ec26d42b2109bce830cc1f3468df20511d/watchfiles-1.1.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:28475ddbde92df1874b6c5c8aaeb24ad5be47a11f87cde5a28ef3835932e3e94", size = 630196, upload-time = "2025-10-14T15:04:56.22Z" }, + { url = "https://files.pythonhosted.org/packages/78/46/7152ec29b8335f80167928944a94955015a345440f524d2dfe63fc2f437b/watchfiles-1.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:36193ed342f5b9842edd3532729a2ad55c4160ffcfa3700e0d54be496b70dd43", size = 622657, upload-time = "2025-10-14T15:04:57.521Z" }, + { url = "https://files.pythonhosted.org/packages/0a/bf/95895e78dd75efe9a7f31733607f384b42eb5feb54bd2eb6ed57cc2e94f4/watchfiles-1.1.1-cp312-cp312-win32.whl", hash = "sha256:859e43a1951717cc8de7f4c77674a6d389b106361585951d9e69572823f311d9", size = 272042, upload-time = "2025-10-14T15:04:59.046Z" }, + { url = "https://files.pythonhosted.org/packages/87/0a/90eb755f568de2688cb220171c4191df932232c20946966c27a59c400850/watchfiles-1.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:91d4c9a823a8c987cce8fa2690923b069966dabb196dd8d137ea2cede885fde9", size = 288410, upload-time = "2025-10-14T15:05:00.081Z" }, + { url = "https://files.pythonhosted.org/packages/36/76/f322701530586922fbd6723c4f91ace21364924822a8772c549483abed13/watchfiles-1.1.1-cp312-cp312-win_arm64.whl", hash = "sha256:a625815d4a2bdca61953dbba5a39d60164451ef34c88d751f6c368c3ea73d404", size = 278209, upload-time = "2025-10-14T15:05:01.168Z" }, + { url = "https://files.pythonhosted.org/packages/bb/f4/f750b29225fe77139f7ae5de89d4949f5a99f934c65a1f1c0b248f26f747/watchfiles-1.1.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:130e4876309e8686a5e37dba7d5e9bc77e6ed908266996ca26572437a5271e18", size = 404321, upload-time = "2025-10-14T15:05:02.063Z" }, + { url = "https://files.pythonhosted.org/packages/2b/f9/f07a295cde762644aa4c4bb0f88921d2d141af45e735b965fb2e87858328/watchfiles-1.1.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5f3bde70f157f84ece3765b42b4a52c6ac1a50334903c6eaf765362f6ccca88a", size = 391783, upload-time = "2025-10-14T15:05:03.052Z" }, + { url = "https://files.pythonhosted.org/packages/bc/11/fc2502457e0bea39a5c958d86d2cb69e407a4d00b85735ca724bfa6e0d1a/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:14e0b1fe858430fc0251737ef3824c54027bedb8c37c38114488b8e131cf8219", size = 449279, upload-time = "2025-10-14T15:05:04.004Z" }, + { url = "https://files.pythonhosted.org/packages/e3/1f/d66bc15ea0b728df3ed96a539c777acfcad0eb78555ad9efcaa1274688f0/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f27db948078f3823a6bb3b465180db8ebecf26dd5dae6f6180bd87383b6b4428", size = 459405, upload-time = "2025-10-14T15:05:04.942Z" }, + { url = "https://files.pythonhosted.org/packages/be/90/9f4a65c0aec3ccf032703e6db02d89a157462fbb2cf20dd415128251cac0/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:059098c3a429f62fc98e8ec62b982230ef2c8df68c79e826e37b895bc359a9c0", size = 488976, upload-time = "2025-10-14T15:05:05.905Z" }, + { url = "https://files.pythonhosted.org/packages/37/57/ee347af605d867f712be7029bb94c8c071732a4b44792e3176fa3c612d39/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bfb5862016acc9b869bb57284e6cb35fdf8e22fe59f7548858e2f971d045f150", size = 595506, upload-time = "2025-10-14T15:05:06.906Z" }, + { url = "https://files.pythonhosted.org/packages/a8/78/cc5ab0b86c122047f75e8fc471c67a04dee395daf847d3e59381996c8707/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:319b27255aacd9923b8a276bb14d21a5f7ff82564c744235fc5eae58d95422ae", size = 474936, upload-time = "2025-10-14T15:05:07.906Z" }, + { url = "https://files.pythonhosted.org/packages/62/da/def65b170a3815af7bd40a3e7010bf6ab53089ef1b75d05dd5385b87cf08/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c755367e51db90e75b19454b680903631d41f9e3607fbd941d296a020c2d752d", size = 456147, upload-time = "2025-10-14T15:05:09.138Z" }, + { url = "https://files.pythonhosted.org/packages/57/99/da6573ba71166e82d288d4df0839128004c67d2778d3b566c138695f5c0b/watchfiles-1.1.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c22c776292a23bfc7237a98f791b9ad3144b02116ff10d820829ce62dff46d0b", size = 630007, upload-time = "2025-10-14T15:05:10.117Z" }, + { url = "https://files.pythonhosted.org/packages/a8/51/7439c4dd39511368849eb1e53279cd3454b4a4dbace80bab88feeb83c6b5/watchfiles-1.1.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:3a476189be23c3686bc2f4321dd501cb329c0a0469e77b7b534ee10129ae6374", size = 622280, upload-time = "2025-10-14T15:05:11.146Z" }, + { url = "https://files.pythonhosted.org/packages/95/9c/8ed97d4bba5db6fdcdb2b298d3898f2dd5c20f6b73aee04eabe56c59677e/watchfiles-1.1.1-cp313-cp313-win32.whl", hash = "sha256:bf0a91bfb5574a2f7fc223cf95eeea79abfefa404bf1ea5e339c0c1560ae99a0", size = 272056, upload-time = "2025-10-14T15:05:12.156Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f3/c14e28429f744a260d8ceae18bf58c1d5fa56b50d006a7a9f80e1882cb0d/watchfiles-1.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:52e06553899e11e8074503c8e716d574adeeb7e68913115c4b3653c53f9bae42", size = 288162, upload-time = "2025-10-14T15:05:13.208Z" }, + { url = "https://files.pythonhosted.org/packages/dc/61/fe0e56c40d5cd29523e398d31153218718c5786b5e636d9ae8ae79453d27/watchfiles-1.1.1-cp313-cp313-win_arm64.whl", hash = "sha256:ac3cc5759570cd02662b15fbcd9d917f7ecd47efe0d6b40474eafd246f91ea18", size = 277909, upload-time = "2025-10-14T15:05:14.49Z" }, + { url = "https://files.pythonhosted.org/packages/79/42/e0a7d749626f1e28c7108a99fb9bf524b501bbbeb9b261ceecde644d5a07/watchfiles-1.1.1-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:563b116874a9a7ce6f96f87cd0b94f7faf92d08d0021e837796f0a14318ef8da", size = 403389, upload-time = "2025-10-14T15:05:15.777Z" }, + { url = "https://files.pythonhosted.org/packages/15/49/08732f90ce0fbbc13913f9f215c689cfc9ced345fb1bcd8829a50007cc8d/watchfiles-1.1.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3ad9fe1dae4ab4212d8c91e80b832425e24f421703b5a42ef2e4a1e215aff051", size = 389964, upload-time = "2025-10-14T15:05:16.85Z" }, + { url = "https://files.pythonhosted.org/packages/27/0d/7c315d4bd5f2538910491a0393c56bf70d333d51bc5b34bee8e68e8cea19/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce70f96a46b894b36eba678f153f052967a0d06d5b5a19b336ab0dbbd029f73e", size = 448114, upload-time = "2025-10-14T15:05:17.876Z" }, + { url = "https://files.pythonhosted.org/packages/c3/24/9e096de47a4d11bc4df41e9d1e61776393eac4cb6eb11b3e23315b78b2cc/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:cb467c999c2eff23a6417e58d75e5828716f42ed8289fe6b77a7e5a91036ca70", size = 460264, upload-time = "2025-10-14T15:05:18.962Z" }, + { url = "https://files.pythonhosted.org/packages/cc/0f/e8dea6375f1d3ba5fcb0b3583e2b493e77379834c74fd5a22d66d85d6540/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:836398932192dae4146c8f6f737d74baeac8b70ce14831a239bdb1ca882fc261", size = 487877, upload-time = "2025-10-14T15:05:20.094Z" }, + { url = "https://files.pythonhosted.org/packages/ac/5b/df24cfc6424a12deb41503b64d42fbea6b8cb357ec62ca84a5a3476f654a/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:743185e7372b7bc7c389e1badcc606931a827112fbbd37f14c537320fca08620", size = 595176, upload-time = "2025-10-14T15:05:21.134Z" }, + { url = "https://files.pythonhosted.org/packages/8f/b5/853b6757f7347de4e9b37e8cc3289283fb983cba1ab4d2d7144694871d9c/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:afaeff7696e0ad9f02cbb8f56365ff4686ab205fcf9c4c5b6fdfaaa16549dd04", size = 473577, upload-time = "2025-10-14T15:05:22.306Z" }, + { url = "https://files.pythonhosted.org/packages/e1/f7/0a4467be0a56e80447c8529c9fce5b38eab4f513cb3d9bf82e7392a5696b/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f7eb7da0eb23aa2ba036d4f616d46906013a68caf61b7fdbe42fc8b25132e77", size = 455425, upload-time = "2025-10-14T15:05:23.348Z" }, + { url = "https://files.pythonhosted.org/packages/8e/e0/82583485ea00137ddf69bc84a2db88bd92ab4a6e3c405e5fb878ead8d0e7/watchfiles-1.1.1-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:831a62658609f0e5c64178211c942ace999517f5770fe9436be4c2faeba0c0ef", size = 628826, upload-time = "2025-10-14T15:05:24.398Z" }, + { url = "https://files.pythonhosted.org/packages/28/9a/a785356fccf9fae84c0cc90570f11702ae9571036fb25932f1242c82191c/watchfiles-1.1.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:f9a2ae5c91cecc9edd47e041a930490c31c3afb1f5e6d71de3dc671bfaca02bf", size = 622208, upload-time = "2025-10-14T15:05:25.45Z" }, + { url = "https://files.pythonhosted.org/packages/c3/f4/0872229324ef69b2c3edec35e84bd57a1289e7d3fe74588048ed8947a323/watchfiles-1.1.1-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:d1715143123baeeaeadec0528bb7441103979a1d5f6fd0e1f915383fea7ea6d5", size = 404315, upload-time = "2025-10-14T15:05:26.501Z" }, + { url = "https://files.pythonhosted.org/packages/7b/22/16d5331eaed1cb107b873f6ae1b69e9ced582fcf0c59a50cd84f403b1c32/watchfiles-1.1.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:39574d6370c4579d7f5d0ad940ce5b20db0e4117444e39b6d8f99db5676c52fd", size = 390869, upload-time = "2025-10-14T15:05:27.649Z" }, + { url = "https://files.pythonhosted.org/packages/b2/7e/5643bfff5acb6539b18483128fdc0ef2cccc94a5b8fbda130c823e8ed636/watchfiles-1.1.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7365b92c2e69ee952902e8f70f3ba6360d0d596d9299d55d7d386df84b6941fb", size = 449919, upload-time = "2025-10-14T15:05:28.701Z" }, + { url = "https://files.pythonhosted.org/packages/51/2e/c410993ba5025a9f9357c376f48976ef0e1b1aefb73b97a5ae01a5972755/watchfiles-1.1.1-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bfff9740c69c0e4ed32416f013f3c45e2ae42ccedd1167ef2d805c000b6c71a5", size = 460845, upload-time = "2025-10-14T15:05:30.064Z" }, + { url = "https://files.pythonhosted.org/packages/8e/a4/2df3b404469122e8680f0fcd06079317e48db58a2da2950fb45020947734/watchfiles-1.1.1-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b27cf2eb1dda37b2089e3907d8ea92922b673c0c427886d4edc6b94d8dfe5db3", size = 489027, upload-time = "2025-10-14T15:05:31.064Z" }, + { url = "https://files.pythonhosted.org/packages/ea/84/4587ba5b1f267167ee715b7f66e6382cca6938e0a4b870adad93e44747e6/watchfiles-1.1.1-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:526e86aced14a65a5b0ec50827c745597c782ff46b571dbfe46192ab9e0b3c33", size = 595615, upload-time = "2025-10-14T15:05:32.074Z" }, + { url = "https://files.pythonhosted.org/packages/6a/0f/c6988c91d06e93cd0bb3d4a808bcf32375ca1904609835c3031799e3ecae/watchfiles-1.1.1-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:04e78dd0b6352db95507fd8cb46f39d185cf8c74e4cf1e4fbad1d3df96faf510", size = 474836, upload-time = "2025-10-14T15:05:33.209Z" }, + { url = "https://files.pythonhosted.org/packages/b4/36/ded8aebea91919485b7bbabbd14f5f359326cb5ec218cd67074d1e426d74/watchfiles-1.1.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c85794a4cfa094714fb9c08d4a218375b2b95b8ed1666e8677c349906246c05", size = 455099, upload-time = "2025-10-14T15:05:34.189Z" }, + { url = "https://files.pythonhosted.org/packages/98/e0/8c9bdba88af756a2fce230dd365fab2baf927ba42cd47521ee7498fd5211/watchfiles-1.1.1-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:74d5012b7630714b66be7b7b7a78855ef7ad58e8650c73afc4c076a1f480a8d6", size = 630626, upload-time = "2025-10-14T15:05:35.216Z" }, + { url = "https://files.pythonhosted.org/packages/2a/84/a95db05354bf2d19e438520d92a8ca475e578c647f78f53197f5a2f17aaf/watchfiles-1.1.1-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:8fbe85cb3201c7d380d3d0b90e63d520f15d6afe217165d7f98c9c649654db81", size = 622519, upload-time = "2025-10-14T15:05:36.259Z" }, + { url = "https://files.pythonhosted.org/packages/1d/ce/d8acdc8de545de995c339be67711e474c77d643555a9bb74a9334252bd55/watchfiles-1.1.1-cp314-cp314-win32.whl", hash = "sha256:3fa0b59c92278b5a7800d3ee7733da9d096d4aabcfabb9a928918bd276ef9b9b", size = 272078, upload-time = "2025-10-14T15:05:37.63Z" }, + { url = "https://files.pythonhosted.org/packages/c4/c9/a74487f72d0451524be827e8edec251da0cc1fcf111646a511ae752e1a3d/watchfiles-1.1.1-cp314-cp314-win_amd64.whl", hash = "sha256:c2047d0b6cea13b3316bdbafbfa0c4228ae593d995030fda39089d36e64fc03a", size = 287664, upload-time = "2025-10-14T15:05:38.95Z" }, + { url = "https://files.pythonhosted.org/packages/df/b8/8ac000702cdd496cdce998c6f4ee0ca1f15977bba51bdf07d872ebdfc34c/watchfiles-1.1.1-cp314-cp314-win_arm64.whl", hash = "sha256:842178b126593addc05acf6fce960d28bc5fae7afbaa2c6c1b3a7b9460e5be02", size = 277154, upload-time = "2025-10-14T15:05:39.954Z" }, + { url = "https://files.pythonhosted.org/packages/47/a8/e3af2184707c29f0f14b1963c0aace6529f9d1b8582d5b99f31bbf42f59e/watchfiles-1.1.1-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:88863fbbc1a7312972f1c511f202eb30866370ebb8493aef2812b9ff28156a21", size = 403820, upload-time = "2025-10-14T15:05:40.932Z" }, + { url = "https://files.pythonhosted.org/packages/c0/ec/e47e307c2f4bd75f9f9e8afbe3876679b18e1bcec449beca132a1c5ffb2d/watchfiles-1.1.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:55c7475190662e202c08c6c0f4d9e345a29367438cf8e8037f3155e10a88d5a5", size = 390510, upload-time = "2025-10-14T15:05:41.945Z" }, + { url = "https://files.pythonhosted.org/packages/d5/a0/ad235642118090f66e7b2f18fd5c42082418404a79205cdfca50b6309c13/watchfiles-1.1.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f53fa183d53a1d7a8852277c92b967ae99c2d4dcee2bfacff8868e6e30b15f7", size = 448408, upload-time = "2025-10-14T15:05:43.385Z" }, + { url = "https://files.pythonhosted.org/packages/df/85/97fa10fd5ff3332ae17e7e40e20784e419e28521549780869f1413742e9d/watchfiles-1.1.1-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6aae418a8b323732fa89721d86f39ec8f092fc2af67f4217a2b07fd3e93c6101", size = 458968, upload-time = "2025-10-14T15:05:44.404Z" }, + { url = "https://files.pythonhosted.org/packages/47/c2/9059c2e8966ea5ce678166617a7f75ecba6164375f3b288e50a40dc6d489/watchfiles-1.1.1-cp314-cp314t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f096076119da54a6080e8920cbdaac3dbee667eb91dcc5e5b78840b87415bd44", size = 488096, upload-time = "2025-10-14T15:05:45.398Z" }, + { url = "https://files.pythonhosted.org/packages/94/44/d90a9ec8ac309bc26db808a13e7bfc0e4e78b6fc051078a554e132e80160/watchfiles-1.1.1-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:00485f441d183717038ed2e887a7c868154f216877653121068107b227a2f64c", size = 596040, upload-time = "2025-10-14T15:05:46.502Z" }, + { url = "https://files.pythonhosted.org/packages/95/68/4e3479b20ca305cfc561db3ed207a8a1c745ee32bf24f2026a129d0ddb6e/watchfiles-1.1.1-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a55f3e9e493158d7bfdb60a1165035f1cf7d320914e7b7ea83fe22c6023b58fc", size = 473847, upload-time = "2025-10-14T15:05:47.484Z" }, + { url = "https://files.pythonhosted.org/packages/4f/55/2af26693fd15165c4ff7857e38330e1b61ab8c37d15dc79118cdba115b7a/watchfiles-1.1.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c91ed27800188c2ae96d16e3149f199d62f86c7af5f5f4d2c61a3ed8cd3666c", size = 455072, upload-time = "2025-10-14T15:05:48.928Z" }, + { url = "https://files.pythonhosted.org/packages/66/1d/d0d200b10c9311ec25d2273f8aad8c3ef7cc7ea11808022501811208a750/watchfiles-1.1.1-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:311ff15a0bae3714ffb603e6ba6dbfba4065ab60865d15a6ec544133bdb21099", size = 629104, upload-time = "2025-10-14T15:05:49.908Z" }, + { url = "https://files.pythonhosted.org/packages/e3/bd/fa9bb053192491b3867ba07d2343d9f2252e00811567d30ae8d0f78136fe/watchfiles-1.1.1-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:a916a2932da8f8ab582f242c065f5c81bed3462849ca79ee357dd9551b0e9b01", size = 622112, upload-time = "2025-10-14T15:05:50.941Z" }, +] + +[[package]] +name = "websockets" +version = "16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/04/24/4b2031d72e840ce4c1ccb255f693b15c334757fc50023e4db9537080b8c4/websockets-16.0.tar.gz", hash = "sha256:5f6261a5e56e8d5c42a4497b364ea24d94d9563e8fbd44e78ac40879c60179b5", size = 179346, upload-time = "2026-01-10T09:23:47.181Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/7b/bac442e6b96c9d25092695578dda82403c77936104b5682307bd4deb1ad4/websockets-16.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:71c989cbf3254fbd5e84d3bff31e4da39c43f884e64f2551d14bb3c186230f00", size = 177365, upload-time = "2026-01-10T09:22:46.787Z" }, + { url = "https://files.pythonhosted.org/packages/b0/fe/136ccece61bd690d9c1f715baaeefd953bb2360134de73519d5df19d29ca/websockets-16.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:8b6e209ffee39ff1b6d0fa7bfef6de950c60dfb91b8fcead17da4ee539121a79", size = 175038, upload-time = "2026-01-10T09:22:47.999Z" }, + { url = "https://files.pythonhosted.org/packages/40/1e/9771421ac2286eaab95b8575b0cb701ae3663abf8b5e1f64f1fd90d0a673/websockets-16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:86890e837d61574c92a97496d590968b23c2ef0aeb8a9bc9421d174cd378ae39", size = 175328, upload-time = "2026-01-10T09:22:49.809Z" }, + { url = "https://files.pythonhosted.org/packages/18/29/71729b4671f21e1eaa5d6573031ab810ad2936c8175f03f97f3ff164c802/websockets-16.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:9b5aca38b67492ef518a8ab76851862488a478602229112c4b0d58d63a7a4d5c", size = 184915, upload-time = "2026-01-10T09:22:51.071Z" }, + { url = "https://files.pythonhosted.org/packages/97/bb/21c36b7dbbafc85d2d480cd65df02a1dc93bf76d97147605a8e27ff9409d/websockets-16.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e0334872c0a37b606418ac52f6ab9cfd17317ac26365f7f65e203e2d0d0d359f", size = 186152, upload-time = "2026-01-10T09:22:52.224Z" }, + { url = "https://files.pythonhosted.org/packages/4a/34/9bf8df0c0cf88fa7bfe36678dc7b02970c9a7d5e065a3099292db87b1be2/websockets-16.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a0b31e0b424cc6b5a04b8838bbaec1688834b2383256688cf47eb97412531da1", size = 185583, upload-time = "2026-01-10T09:22:53.443Z" }, + { url = "https://files.pythonhosted.org/packages/47/88/4dd516068e1a3d6ab3c7c183288404cd424a9a02d585efbac226cb61ff2d/websockets-16.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:485c49116d0af10ac698623c513c1cc01c9446c058a4e61e3bf6c19dff7335a2", size = 184880, upload-time = "2026-01-10T09:22:55.033Z" }, + { url = "https://files.pythonhosted.org/packages/91/d6/7d4553ad4bf1c0421e1ebd4b18de5d9098383b5caa1d937b63df8d04b565/websockets-16.0-cp312-cp312-win32.whl", hash = "sha256:eaded469f5e5b7294e2bdca0ab06becb6756ea86894a47806456089298813c89", size = 178261, upload-time = "2026-01-10T09:22:56.251Z" }, + { url = "https://files.pythonhosted.org/packages/c3/f0/f3a17365441ed1c27f850a80b2bc680a0fa9505d733fe152fdf5e98c1c0b/websockets-16.0-cp312-cp312-win_amd64.whl", hash = "sha256:5569417dc80977fc8c2d43a86f78e0a5a22fee17565d78621b6bb264a115d4ea", size = 178693, upload-time = "2026-01-10T09:22:57.478Z" }, + { url = "https://files.pythonhosted.org/packages/cc/9c/baa8456050d1c1b08dd0ec7346026668cbc6f145ab4e314d707bb845bf0d/websockets-16.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:878b336ac47938b474c8f982ac2f7266a540adc3fa4ad74ae96fea9823a02cc9", size = 177364, upload-time = "2026-01-10T09:22:59.333Z" }, + { url = "https://files.pythonhosted.org/packages/7e/0c/8811fc53e9bcff68fe7de2bcbe75116a8d959ac699a3200f4847a8925210/websockets-16.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:52a0fec0e6c8d9a784c2c78276a48a2bdf099e4ccc2a4cad53b27718dbfd0230", size = 175039, upload-time = "2026-01-10T09:23:01.171Z" }, + { url = "https://files.pythonhosted.org/packages/aa/82/39a5f910cb99ec0b59e482971238c845af9220d3ab9fa76dd9162cda9d62/websockets-16.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e6578ed5b6981005df1860a56e3617f14a6c307e6a71b4fff8c48fdc50f3ed2c", size = 175323, upload-time = "2026-01-10T09:23:02.341Z" }, + { url = "https://files.pythonhosted.org/packages/bd/28/0a25ee5342eb5d5f297d992a77e56892ecb65e7854c7898fb7d35e9b33bd/websockets-16.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:95724e638f0f9c350bb1c2b0a7ad0e83d9cc0c9259f3ea94e40d7b02a2179ae5", size = 184975, upload-time = "2026-01-10T09:23:03.756Z" }, + { url = "https://files.pythonhosted.org/packages/f9/66/27ea52741752f5107c2e41fda05e8395a682a1e11c4e592a809a90c6a506/websockets-16.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c0204dc62a89dc9d50d682412c10b3542d748260d743500a85c13cd1ee4bde82", size = 186203, upload-time = "2026-01-10T09:23:05.01Z" }, + { url = "https://files.pythonhosted.org/packages/37/e5/8e32857371406a757816a2b471939d51c463509be73fa538216ea52b792a/websockets-16.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:52ac480f44d32970d66763115edea932f1c5b1312de36df06d6b219f6741eed8", size = 185653, upload-time = "2026-01-10T09:23:06.301Z" }, + { url = "https://files.pythonhosted.org/packages/9b/67/f926bac29882894669368dc73f4da900fcdf47955d0a0185d60103df5737/websockets-16.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6e5a82b677f8f6f59e8dfc34ec06ca6b5b48bc4fcda346acd093694cc2c24d8f", size = 184920, upload-time = "2026-01-10T09:23:07.492Z" }, + { url = "https://files.pythonhosted.org/packages/3c/a1/3d6ccdcd125b0a42a311bcd15a7f705d688f73b2a22d8cf1c0875d35d34a/websockets-16.0-cp313-cp313-win32.whl", hash = "sha256:abf050a199613f64c886ea10f38b47770a65154dc37181bfaff70c160f45315a", size = 178255, upload-time = "2026-01-10T09:23:09.245Z" }, + { url = "https://files.pythonhosted.org/packages/6b/ae/90366304d7c2ce80f9b826096a9e9048b4bb760e44d3b873bb272cba696b/websockets-16.0-cp313-cp313-win_amd64.whl", hash = "sha256:3425ac5cf448801335d6fdc7ae1eb22072055417a96cc6b31b3861f455fbc156", size = 178689, upload-time = "2026-01-10T09:23:10.483Z" }, + { url = "https://files.pythonhosted.org/packages/f3/1d/e88022630271f5bd349ed82417136281931e558d628dd52c4d8621b4a0b2/websockets-16.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8cc451a50f2aee53042ac52d2d053d08bf89bcb31ae799cb4487587661c038a0", size = 177406, upload-time = "2026-01-10T09:23:12.178Z" }, + { url = "https://files.pythonhosted.org/packages/f2/78/e63be1bf0724eeb4616efb1ae1c9044f7c3953b7957799abb5915bffd38e/websockets-16.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:daa3b6ff70a9241cf6c7fc9e949d41232d9d7d26fd3522b1ad2b4d62487e9904", size = 175085, upload-time = "2026-01-10T09:23:13.511Z" }, + { url = "https://files.pythonhosted.org/packages/bb/f4/d3c9220d818ee955ae390cf319a7c7a467beceb24f05ee7aaaa2414345ba/websockets-16.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:fd3cb4adb94a2a6e2b7c0d8d05cb94e6f1c81a0cf9dc2694fb65c7e8d94c42e4", size = 175328, upload-time = "2026-01-10T09:23:14.727Z" }, + { url = "https://files.pythonhosted.org/packages/63/bc/d3e208028de777087e6fb2b122051a6ff7bbcca0d6df9d9c2bf1dd869ae9/websockets-16.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:781caf5e8eee67f663126490c2f96f40906594cb86b408a703630f95550a8c3e", size = 185044, upload-time = "2026-01-10T09:23:15.939Z" }, + { url = "https://files.pythonhosted.org/packages/ad/6e/9a0927ac24bd33a0a9af834d89e0abc7cfd8e13bed17a86407a66773cc0e/websockets-16.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:caab51a72c51973ca21fa8a18bd8165e1a0183f1ac7066a182ff27107b71e1a4", size = 186279, upload-time = "2026-01-10T09:23:17.148Z" }, + { url = "https://files.pythonhosted.org/packages/b9/ca/bf1c68440d7a868180e11be653c85959502efd3a709323230314fda6e0b3/websockets-16.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:19c4dc84098e523fd63711e563077d39e90ec6702aff4b5d9e344a60cb3c0cb1", size = 185711, upload-time = "2026-01-10T09:23:18.372Z" }, + { url = "https://files.pythonhosted.org/packages/c4/f8/fdc34643a989561f217bb477cbc47a3a07212cbda91c0e4389c43c296ebf/websockets-16.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:a5e18a238a2b2249c9a9235466b90e96ae4795672598a58772dd806edc7ac6d3", size = 184982, upload-time = "2026-01-10T09:23:19.652Z" }, + { url = "https://files.pythonhosted.org/packages/dd/d1/574fa27e233764dbac9c52730d63fcf2823b16f0856b3329fc6268d6ae4f/websockets-16.0-cp314-cp314-win32.whl", hash = "sha256:a069d734c4a043182729edd3e9f247c3b2a4035415a9172fd0f1b71658a320a8", size = 177915, upload-time = "2026-01-10T09:23:21.458Z" }, + { url = "https://files.pythonhosted.org/packages/8a/f1/ae6b937bf3126b5134ce1f482365fde31a357c784ac51852978768b5eff4/websockets-16.0-cp314-cp314-win_amd64.whl", hash = "sha256:c0ee0e63f23914732c6d7e0cce24915c48f3f1512ec1d079ed01fc629dab269d", size = 178381, upload-time = "2026-01-10T09:23:22.715Z" }, + { url = "https://files.pythonhosted.org/packages/06/9b/f791d1db48403e1f0a27577a6beb37afae94254a8c6f08be4a23e4930bc0/websockets-16.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:a35539cacc3febb22b8f4d4a99cc79b104226a756aa7400adc722e83b0d03244", size = 177737, upload-time = "2026-01-10T09:23:24.523Z" }, + { url = "https://files.pythonhosted.org/packages/bd/40/53ad02341fa33b3ce489023f635367a4ac98b73570102ad2cdd770dacc9a/websockets-16.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:b784ca5de850f4ce93ec85d3269d24d4c82f22b7212023c974c401d4980ebc5e", size = 175268, upload-time = "2026-01-10T09:23:25.781Z" }, + { url = "https://files.pythonhosted.org/packages/74/9b/6158d4e459b984f949dcbbb0c5d270154c7618e11c01029b9bbd1bb4c4f9/websockets-16.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:569d01a4e7fba956c5ae4fc988f0d4e187900f5497ce46339c996dbf24f17641", size = 175486, upload-time = "2026-01-10T09:23:27.033Z" }, + { url = "https://files.pythonhosted.org/packages/e5/2d/7583b30208b639c8090206f95073646c2c9ffd66f44df967981a64f849ad/websockets-16.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:50f23cdd8343b984957e4077839841146f67a3d31ab0d00e6b824e74c5b2f6e8", size = 185331, upload-time = "2026-01-10T09:23:28.259Z" }, + { url = "https://files.pythonhosted.org/packages/45/b0/cce3784eb519b7b5ad680d14b9673a31ab8dcb7aad8b64d81709d2430aa8/websockets-16.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:152284a83a00c59b759697b7f9e9cddf4e3c7861dd0d964b472b70f78f89e80e", size = 186501, upload-time = "2026-01-10T09:23:29.449Z" }, + { url = "https://files.pythonhosted.org/packages/19/60/b8ebe4c7e89fb5f6cdf080623c9d92789a53636950f7abacfc33fe2b3135/websockets-16.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:bc59589ab64b0022385f429b94697348a6a234e8ce22544e3681b2e9331b5944", size = 186062, upload-time = "2026-01-10T09:23:31.368Z" }, + { url = "https://files.pythonhosted.org/packages/88/a8/a080593f89b0138b6cba1b28f8df5673b5506f72879322288b031337c0b8/websockets-16.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:32da954ffa2814258030e5a57bc73a3635463238e797c7375dc8091327434206", size = 185356, upload-time = "2026-01-10T09:23:32.627Z" }, + { url = "https://files.pythonhosted.org/packages/c2/b6/b9afed2afadddaf5ebb2afa801abf4b0868f42f8539bfe4b071b5266c9fe/websockets-16.0-cp314-cp314t-win32.whl", hash = "sha256:5a4b4cc550cb665dd8a47f868c8d04c8230f857363ad3c9caf7a0c3bf8c61ca6", size = 178085, upload-time = "2026-01-10T09:23:33.816Z" }, + { url = "https://files.pythonhosted.org/packages/9f/3e/28135a24e384493fa804216b79a6a6759a38cc4ff59118787b9fb693df93/websockets-16.0-cp314-cp314t-win_amd64.whl", hash = "sha256:b14dc141ed6d2dde437cddb216004bcac6a1df0935d79656387bd41632ba0bbd", size = 178531, upload-time = "2026-01-10T09:23:35.016Z" }, + { url = "https://files.pythonhosted.org/packages/6f/28/258ebab549c2bf3e64d2b0217b973467394a9cea8c42f70418ca2c5d0d2e/websockets-16.0-py3-none-any.whl", hash = "sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec", size = 171598, upload-time = "2026-01-10T09:23:45.395Z" }, +] diff --git a/Semaine_08/secuvault/.env b/Semaine_08/secuvault/.env new file mode 100644 index 0000000..a74d046 --- /dev/null +++ b/Semaine_08/secuvault/.env @@ -0,0 +1,3 @@ +ALICE_PASSWORD=Abdomen7&Exhale03Promotion0 +BOB_PASSWORD=Satchel29Blimp8$Mutable7 +CHARLIE_PASSWORD=Frivolous8%Hefty26Unstuck9 \ No newline at end of file diff --git a/Semaine_08/secuvault/.python-version b/Semaine_08/secuvault/.python-version new file mode 100644 index 0000000..e4fba21 --- /dev/null +++ b/Semaine_08/secuvault/.python-version @@ -0,0 +1 @@ +3.12 diff --git a/Semaine_08/secuvault/09_concurrence_et_transactions.pdf b/Semaine_08/secuvault/09_concurrence_et_transactions.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d30c63b1f4eb4f26aceb7dbaf34ae3468cde6410 GIT binary patch literal 301133 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 C=TndX literal 0 HcmV?d00001 diff --git a/Semaine_08/secuvault/10_exercice_secuvault.pdf b/Semaine_08/secuvault/10_exercice_secuvault.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5e91e126df0f5978027282a2e0bea5f5e8bebf1a GIT binary patch literal 133443 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%0DaR-0uO1AU(sM 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 E2Zf1AlK=n! literal 0 HcmV?d00001 diff --git a/Semaine_08/secuvault/ATTACKS.md b/Semaine_08/secuvault/ATTACKS.md new file mode 100644 index 0000000..ca2686b --- /dev/null +++ b/Semaine_08/secuvault/ATTACKS.md @@ -0,0 +1,72 @@ +# BONUS - Résistance aux attaques + +## Scénario 1 - Accès direct à un secret via l'URL (IDOR) + +**Description** +Un utilisateur authentifié tente d'accéder à un secret appartenant à une équipe dont il n'est **pas** membre, en devinant ou en réutilisant un identifiant de secret dans l'URL. + +**Procédure de test** + +1. Se connecter en tant qu'**alice** (membre de `devops` uniquement). +2. Identifier l'identifiant du secret `Mailchimp API` (appartenant à `marketing`) - il est visible en parcourant la base de données ou en étant connecté en tant que BOB. +3. En tant qu'alice, accéder à `http://127.0.0.1:8000/secrets/`. + +**Résultat attendu** +HTTP 403 - page d'erreur « Accès refusé. » + +**Résultat obtenu** +HTTP 403 - la route `GET /secrets/{secret_id}` délègue à `services.reveal_secret()`, qui appelle `check_team_membership(user, secret.team_id)`. Alice n'étant pas membre de `marketing`, une `AccessDeniedError` est levée dans la couche domaine, et la route retourne la page d'erreur 403 sans révéler aucune information sur le secret. + +## Scénario 2 - Création d'un secret pour une équipe étrangère + +**Description** +Un utilisateur authentifié soumet un formulaire de création de secret en falsifiant le champ `team_id` pour cibler une équipe dont il n'est **pas** membre. + +**Procédure de test** + +1. Se connecter en tant qu'**alice** (membre de `devops` uniquement). +2. Ouvrir les outils développeur du navigateur ou utiliser `curl` / Postman. +3. Envoyer une requête `POST /secrets` avec `name=test&value=hack&team_id=`. + +**Résultat attendu** +HTTP 403 - accès refusé, secret non créé. + +**Résultat obtenu** +HTTP 403 - la route `POST /secrets` délègue à `services.create_secret()`, qui appelle `check_team_membership(user, team_id)` avant tout chiffrement ou écriture en base. La règle métier bloque la création et la route renvoie la page d'erreur 403. + +## Scénario 3 - Enumération d'identifiants (ID enumeration) + +**Description** +Un attaquant authentifié tente de lister tous les secrets en parcourant séquentiellement les identifiants (`/secrets/1`, `/secrets/2`, `/secrets/3`…). + +**Procédure de test** + +1. Se connecter en tant qu'**alice** (membre de `devops` uniquement). +2. Parcourir l'URL `http://127.0.0.1:8000/secrets/1`, `/secrets/2`, à partir de 1 en incrémentant. +3. L'ID 1 appartient à `devops` → alice peut le voir. +4. L'ID 2 appartient à `marketing` → alice ne devrait pas y avoir accès. + +**Résultat attendu** +- `/secrets/1` → HTTP 200, valeur déchiffrée affichée (alice est membre de devops). +- `/secrets/2` → HTTP 403, page d'erreur « Accès refusé. » + +**Résultat obtenu** +Conforme aux attentes. La protection n'est pas basée sur l'obscurcissement des identifiants mais sur le contrôle d'accès systématique dans `services.reveal_secret()` : chaque accès vérifie l'appartenance à l'équipe propriétaire du secret, quelle que soit la valeur de l'identifiant. + +## Bonus - Conflit de rotation concurrente (Optimistic Locking) + +**Description** +Deux utilisateurs membres d'une même équipe ouvrent simultanément le formulaire de rotation d'un secret et soumettent tous les deux leurs modifications. + +**Procédure de test** + +1. Se connecter en tant que **bob** dans deux onglets/navigateurs différents. +2. Dans les deux onglets, ouvrir le formulaire de rotation du secret `AWS root key` (équipe devops). +3. Soumettre la rotation dans le premier onglet → succès, la version passe à 2. +4. Soumettre la rotation dans le second onglet (qui contient toujours `expected_version=1`). + +**Résultat attendu** +Le deuxième envoi est rejeté avec un message de conflit (HTTP 409). + +**Résultat obtenu** +`services.rotate_secret()` compare `expected_version` avec la version courante en base. Si elles diffèrent, une `ConflictError` est levée avant toute modification. En base, la requête `UPDATE … WHERE id = ? AND version = ?` ne met à jour aucune ligne si la version a changé (`rowcount == 0`), ce qui constitue un second filet de sécurité. L'utilisateur voit le formulaire rechargé avec le message d'avertissement et la version actuelle du secret. \ No newline at end of file diff --git a/Semaine_08/secuvault/BOICHE_Gauvain_eval_15_04_2026.zip b/Semaine_08/secuvault/BOICHE_Gauvain_eval_15_04_2026.zip new file mode 100644 index 0000000000000000000000000000000000000000..782ea22d65f6c87321f6e618aca49027e75e589b GIT binary patch literal 101274 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 QM1UuFpkev=b1C!x00 **Production** : définir `SESSION_SECRET` avec une valeur aléatoire longue et garder `secret.key` hors du dépôt. diff --git a/Semaine_08/secuvault/domain/exceptions.py b/Semaine_08/secuvault/domain/exceptions.py new file mode 100644 index 0000000..2b5ca95 --- /dev/null +++ b/Semaine_08/secuvault/domain/exceptions.py @@ -0,0 +1,17 @@ +class SecuVaultError(Exception): + """Base exception for all SecuVault domain errors.""" + +class AuthenticationError(SecuVaultError): + """Bad credentials or inactive account.""" + +class AccessDeniedError(SecuVaultError): + """User is not authorised to access the requested resource.""" + +class SecretNotFoundError(SecuVaultError): + """Requested secret does not exist.""" + +class TeamNotFoundError(SecuVaultError): + """Requested team does not exist.""" + +class ConflictError(SecuVaultError): + """Optimistic-locking detected a concurrent modification conflict.""" \ No newline at end of file diff --git a/Semaine_08/secuvault/domain/models/secrets.py b/Semaine_08/secuvault/domain/models/secrets.py new file mode 100644 index 0000000..e972dbd --- /dev/null +++ b/Semaine_08/secuvault/domain/models/secrets.py @@ -0,0 +1,11 @@ +from dataclasses import dataclass + +@dataclass +class Secret: + id: int + name: str + encrypted_value: str + team_id: int + version: int + created_at: str + updated_at: str \ No newline at end of file diff --git a/Semaine_08/secuvault/domain/models/teams.py b/Semaine_08/secuvault/domain/models/teams.py new file mode 100644 index 0000000..9f460e6 --- /dev/null +++ b/Semaine_08/secuvault/domain/models/teams.py @@ -0,0 +1,7 @@ +from dataclasses import dataclass + +@dataclass(frozen=True) +class Team: + id: int + name: str + description: str | None = None \ No newline at end of file diff --git a/Semaine_08/secuvault/domain/models/users.py b/Semaine_08/secuvault/domain/models/users.py new file mode 100644 index 0000000..d16679c --- /dev/null +++ b/Semaine_08/secuvault/domain/models/users.py @@ -0,0 +1,9 @@ +from dataclasses import dataclass + +@dataclass +class User: + id: int + username: str + teams_id: list[int] + password_hash: str + is_active: bool = True \ No newline at end of file diff --git a/Semaine_08/secuvault/domain/services.py b/Semaine_08/secuvault/domain/services.py new file mode 100644 index 0000000..4cc08d0 --- /dev/null +++ b/Semaine_08/secuvault/domain/services.py @@ -0,0 +1,68 @@ +from domain.exceptions import ( + AccessDeniedError, + AuthenticationError, + ConflictError, + SecretNotFoundError, +) +from domain.models.secrets import Secret +from domain.models.users import User + +def authenticate_user(username: str, password: str, user_repository, crypto) -> User: + user = user_repository.find_by_username(username) + if user is None or not user.is_active: + raise AuthenticationError("Identifiants incorrects.") + if not crypto.verify_password(password, user.password_hash): + raise AuthenticationError("Identifiants incorrects.") + return user + +def check_team_membership(user: User, team_id: int) -> None: + if team_id not in user.teams_id: + raise AccessDeniedError("Vous n'\u00eates pas membre de cette \u00e9quipe.") + +def list_secrets_for_team(user: User, team_id: int, secret_repository) -> list[Secret]: + check_team_membership(user, team_id) + return secret_repository.find_by_team_id(team_id) + +def reveal_secret(user: User, secret_id: int, secret_repository, crypto) -> str: + secret = secret_repository.find_by_id(secret_id) + if secret is None: + raise SecretNotFoundError("Secret introuvable.") + check_team_membership(user, secret.team_id) + return crypto.decrypt_secret(secret.encrypted_value) + +def create_secret( + user: User, + team_id: int, + name: str, + value: str, + secret_repository, + crypto, +) -> Secret: + check_team_membership(user, team_id) + encrypted_value = crypto.encrypt_secret(value) + return secret_repository.create(name=name, encrypted_value=encrypted_value, team_id=team_id) + +def rotate_secret( + user: User, + secret_id: int, + new_value: str, + expected_version: int, + secret_repository, + crypto, +) -> Secret: + secret = secret_repository.find_by_id(secret_id) + if secret is None: + raise SecretNotFoundError("Secret introuvable.") + check_team_membership(user, secret.team_id) + if secret.version != expected_version: + raise ConflictError( + "Ce secret a été modifié par quelqu'un d'autre depuis que vous avez ouvert " + "le formulaire. Veuillez recharger la page et réessayer." + ) + encrypted_value = crypto.encrypt_secret(new_value) + updated = secret_repository.update(secret_id, encrypted_value, expected_version) + if updated is None: + raise ConflictError( + "Conflit de modification détecté. Veuillez recharger et réessayer." + ) + return updated \ No newline at end of file diff --git a/Semaine_08/secuvault/infra/crypto.py b/Semaine_08/secuvault/infra/crypto.py new file mode 100644 index 0000000..447b8d2 --- /dev/null +++ b/Semaine_08/secuvault/infra/crypto.py @@ -0,0 +1,38 @@ +''' +Là encore, j'ai délégué à Clause Sonnet 4.6 (voir secrets.py pour la partie 1) + +Je dois avouer une chose : chercher sur Internet est devenu un enfer. +Je ne sais pas comment faire pour trouver des ressources pertinentes, et j'ai l'impression que les résultats sont de moins bonne qualité qu'avant. + +J'ai donc préféré déléguer à l'IA. En revanche il n'y a rien de sorcier. +''' + +import os + +import bcrypt +from cryptography.fernet import Fernet + +_KEY_FILE = "secret.key" + +def _load_or_create_key() -> bytes: + if os.path.exists(_KEY_FILE): + with open(_KEY_FILE, "rb") as fh: + return fh.read().strip() + key = Fernet.generate_key() + with open(_KEY_FILE, "wb") as fh: + fh.write(key) + return key + +_fernet = Fernet(_load_or_create_key()) + +def hash_password(password: str) -> str: + return bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()).decode("utf-8") + +def verify_password(password: str, password_hash: str) -> bool: + return bcrypt.checkpw(password.encode("utf-8"), password_hash.encode("utf-8")) + +def encrypt_secret(plaintext: str) -> str: + return _fernet.encrypt(plaintext.encode("utf-8")).decode("utf-8") + +def decrypt_secret(ciphertext: str) -> str: + return _fernet.decrypt(ciphertext.encode("utf-8")).decode("utf-8") \ No newline at end of file diff --git a/Semaine_08/secuvault/infra/database.py b/Semaine_08/secuvault/infra/database.py new file mode 100644 index 0000000..a216171 --- /dev/null +++ b/Semaine_08/secuvault/infra/database.py @@ -0,0 +1,103 @@ +import sqlite3 + +DB_PATH = "secuvault.db" + +_SCHEMA = """ +CREATE TABLE IF NOT EXISTS users ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + username TEXT UNIQUE NOT NULL, + password_hash TEXT NOT NULL, + is_active INTEGER NOT NULL DEFAULT 1 +); + +CREATE TABLE IF NOT EXISTS teams ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + name TEXT UNIQUE NOT NULL, + description TEXT +); + +CREATE TABLE IF NOT EXISTS user_teams ( + user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE, + team_id INTEGER NOT NULL REFERENCES teams(id) ON DELETE CASCADE, + PRIMARY KEY (user_id, team_id) +); + +CREATE TABLE IF NOT EXISTS secrets ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + name TEXT NOT NULL, + encrypted_value TEXT NOT NULL, + team_id INTEGER NOT NULL REFERENCES teams(id) ON DELETE CASCADE, + created_at TEXT NOT NULL DEFAULT (datetime('now')), + updated_at TEXT NOT NULL DEFAULT (datetime('now')), + version INTEGER NOT NULL DEFAULT 1 +); +""" + +def get_database_connection() -> sqlite3.Connection: + conn = sqlite3.connect(DB_PATH, check_same_thread=False) + conn.row_factory = sqlite3.Row + conn.execute("PRAGMA journal_mode=WAL") + conn.execute("PRAGMA foreign_keys=ON") + return conn + +def init_db() -> None: + conn = get_database_connection() + try: + conn.executescript(_SCHEMA) + conn.commit() + finally: + conn.close() + +def provision_data() -> None: + import os + from dotenv import load_dotenv + from infra.crypto import hash_password + + load_dotenv() + + conn = get_database_connection() + try: + if conn.execute("SELECT COUNT(*) FROM users").fetchone()[0] > 0: + return + + with conn: + conn.execute("INSERT INTO teams (name, description) VALUES ('devops', 'Équipe DevOps')") + conn.execute("INSERT INTO teams (name, description) VALUES ('marketing', 'Équipe Marketing')") + + for username, password in [ + ("alice", os.environ["ALICE_PASSWORD"]), + ("bob", os.environ["BOB_PASSWORD"]), + ("charlie", os.environ["CHARLIE_PASSWORD"]), + ]: + conn.execute( + "INSERT INTO users (username, password_hash) VALUES (?, ?)", + (username, hash_password(password)), + ) + + users = {r["username"]: r["id"] for r in conn.execute("SELECT id, username FROM users")} + teams = {r["name"]: r["id"] for r in conn.execute("SELECT id, name FROM teams")} + + memberships = [ + (users["alice"], teams["devops"]), + (users["bob"], teams["devops"]), + (users["bob"], teams["marketing"]), + (users["charlie"], teams["marketing"]), + ] + conn.executemany( + "INSERT INTO user_teams (user_id, team_id) VALUES (?, ?)", + memberships, + ) + + devops_id = teams["devops"] + marketing_id = teams["marketing"] + from infra.crypto import encrypt_secret + conn.execute( + "INSERT INTO secrets (name, encrypted_value, team_id) VALUES (?, ?, ?)", + ("AWS root key", encrypt_secret("AKIAIOSFODNN7EXAMPLE"), devops_id), + ) + conn.execute( + "INSERT INTO secrets (name, encrypted_value, team_id) VALUES (?, ?, ?)", + ("Mailchimp API", encrypt_secret("mc-api-key-placeholder"), marketing_id), + ) + finally: + conn.close() \ No newline at end of file diff --git a/Semaine_08/secuvault/infra/repositories.py b/Semaine_08/secuvault/infra/repositories.py new file mode 100644 index 0000000..cb67475 --- /dev/null +++ b/Semaine_08/secuvault/infra/repositories.py @@ -0,0 +1,146 @@ +''' +Pareil, pour la partie crypto, avec Claude Sonnet 4.6 (voir secrets.py pour la partie 1) +''' + +import sqlite3 +from typing import Optional + +from domain.models.secrets import Secret +from domain.models.teams import Team +from domain.models.users import User + +class UserRepository: + def __init__(self, conn: sqlite3.Connection) -> None: + self.conn = conn + + def find_by_username(self, username: str) -> Optional[User]: + row = self.conn.execute( + """ + SELECT u.id, u.username, u.password_hash, u.is_active, + GROUP_CONCAT(ut.team_id) AS teams_id + FROM users u + LEFT JOIN user_teams ut ON u.id = ut.user_id + WHERE u.username = ? + GROUP BY u.id + """, + (username,), + ).fetchone() + return self._row_to_user(row) + + def find_by_id(self, user_id: int) -> Optional[User]: + row = self.conn.execute( + """ + SELECT u.id, u.username, u.password_hash, u.is_active, + GROUP_CONCAT(ut.team_id) AS teams_id + FROM users u + LEFT JOIN user_teams ut ON u.id = ut.user_id + WHERE u.id = ? + GROUP BY u.id + """, + (user_id,), + ).fetchone() + return self._row_to_user(row) + + @staticmethod + def _row_to_user(row) -> Optional[User]: + if row is None: + return None + teams_id = [int(t) for t in row["teams_id"].split(",")] if row["teams_id"] else [] + return User( + id=row["id"], + username=row["username"], + password_hash=row["password_hash"], + teams_id=teams_id, + is_active=bool(row["is_active"]), + ) + +class TeamRepository: + def __init__(self, conn: sqlite3.Connection) -> None: + self.conn = conn + + def find_by_id(self, team_id: int) -> Optional[Team]: + row = self.conn.execute("SELECT * FROM teams WHERE id = ?", (team_id,)).fetchone() + return self._row_to_team(row) + + def list_all(self) -> list[Team]: + rows = self.conn.execute("SELECT * FROM teams ORDER BY name").fetchall() + return [self._row_to_team(r) for r in rows] + + def find_by_user(self, user_id: int) -> list[Team]: + rows = self.conn.execute( + """ + SELECT t.* + FROM teams t + JOIN user_teams ut ON t.id = ut.team_id + WHERE ut.user_id = ? + ORDER BY t.name + """, + (user_id,), + ).fetchall() + return [self._row_to_team(r) for r in rows] + + @staticmethod + def _row_to_team(row) -> Optional[Team]: + if row is None: + return None + return Team(id=row["id"], name=row["name"], description=row["description"]) + +class SecretRepository: + def __init__(self, conn: sqlite3.Connection) -> None: + self.conn = conn + + def find_by_id(self, secret_id: int) -> Optional[Secret]: + row = self.conn.execute("SELECT * FROM secrets WHERE id = ?", (secret_id,)).fetchone() + return self._row_to_secret(row) + + def find_by_team_id(self, team_id: int) -> list[Secret]: + rows = self.conn.execute( + "SELECT * FROM secrets WHERE team_id = ? ORDER BY name", + (team_id,), + ).fetchall() + return [self._row_to_secret(r) for r in rows] + + def create(self, *, name: str, encrypted_value: str, team_id: int) -> Secret: + cursor = self.conn.execute( + "INSERT INTO secrets (name, encrypted_value, team_id) VALUES (?, ?, ?)", + (name, encrypted_value, team_id), + ) + self.conn.commit() + return self.find_by_id(cursor.lastrowid) + + def update( + self, secret_id: int, encrypted_value: str, expected_version: int + ) -> Optional[Secret]: + cursor = self.conn.execute( + """ + UPDATE secrets + SET encrypted_value = ?, + version = version + 1, + updated_at = datetime('now') + WHERE id = ? AND version = ? + """, + (encrypted_value, secret_id, expected_version), + ) + self.conn.commit() + if cursor.rowcount == 0: + return None # Conflict detected + return self.find_by_id(secret_id) + + def delete(self, secret_id: int) -> bool: + cursor = self.conn.execute("DELETE FROM secrets WHERE id = ?", (secret_id,)) + self.conn.commit() + return cursor.rowcount > 0 + + @staticmethod + def _row_to_secret(row) -> Optional[Secret]: + if row is None: + return None + return Secret( + id=row["id"], + name=row["name"], + encrypted_value=row["encrypted_value"], + team_id=row["team_id"], + version=row["version"], + created_at=row["created_at"], + updated_at=row["updated_at"], + ) \ No newline at end of file diff --git a/Semaine_08/secuvault/main.py b/Semaine_08/secuvault/main.py new file mode 100644 index 0000000..7a6fa8d --- /dev/null +++ b/Semaine_08/secuvault/main.py @@ -0,0 +1,26 @@ +import os +from contextlib import asynccontextmanager + +from fastapi import FastAPI +from starlette.middleware.sessions import SessionMiddleware + +from infra.database import init_db, provision_data +from presentation.routes.auth import router as auth_router +from presentation.routes.secrets import router as secrets_router + +# Use an environment variable in production; fall back to a dev default. +_SESSION_SECRET = os.environ.get( + "SESSION_SECRET", "secuvault-dev-secret-please-change-in-production" +) + +@asynccontextmanager +async def lifespan(app: FastAPI): + init_db() + provision_data() + yield + +app = FastAPI(title="SecuVault", lifespan=lifespan) +app.add_middleware(SessionMiddleware, secret_key=_SESSION_SECRET) + +app.include_router(auth_router) +app.include_router(secrets_router) \ No newline at end of file diff --git a/Semaine_08/secuvault/presentation/routes/auth.py b/Semaine_08/secuvault/presentation/routes/auth.py new file mode 100644 index 0000000..e110f50 --- /dev/null +++ b/Semaine_08/secuvault/presentation/routes/auth.py @@ -0,0 +1,51 @@ +from fastapi import APIRouter, Depends, Form, Request +from fastapi.responses import HTMLResponse, RedirectResponse +from fastapi.templating import Jinja2Templates + +from domain import services +from domain.exceptions import AuthenticationError +from infra.database import get_database_connection +from infra.repositories import UserRepository +import infra.crypto as crypto + +router = APIRouter() +templates = Jinja2Templates(directory="presentation/templates") + +def _get_db(): + conn = get_database_connection() + try: + yield conn + finally: + conn.close() + +@router.get("/login", response_class=HTMLResponse) +def login_page(request: Request): + if request.session.get("user_id"): + return RedirectResponse(url="/secrets", status_code=302) + return templates.TemplateResponse(request, "login.html", {"user": None, "error": None}) + +@router.post("/login") +def login( + request: Request, + username: str = Form(...), + password: str = Form(...), + conn=Depends(_get_db), +): + user_repo = UserRepository(conn) + try: + user = services.authenticate_user(username, password, user_repo, crypto) + except AuthenticationError as exc: + return templates.TemplateResponse( + request, + "login.html", + {"user": None, "error": str(exc)}, + status_code=401, + ) + request.session["user_id"] = user.id + request.session["username"] = user.username + return RedirectResponse(url="/secrets", status_code=302) + +@router.get("/logout") +def logout(request: Request): + request.session.clear() + return RedirectResponse(url="/login", status_code=302) \ No newline at end of file diff --git a/Semaine_08/secuvault/presentation/routes/secrets.py b/Semaine_08/secuvault/presentation/routes/secrets.py new file mode 100644 index 0000000..77b5618 --- /dev/null +++ b/Semaine_08/secuvault/presentation/routes/secrets.py @@ -0,0 +1,211 @@ +''' +La gestion des secrets, je connaissais déjà un peu d'un projet personnel Node/React/Express avec JWT. +C'est assez facile de mettre des jetons d'authentification dans les cookies de session, et de faire du rendu côté serveur. +Là avec Jinja2, un peu galère. Parce que je ne connais pas, et peut-être qu'on change de paradigme. + +Je t'avoue que sur la partie secret, autant j'ai "la logique" de comment faire, autant je ne suis pas sûr +que mon code soit très bon au final en 6 heures de temps, notamment sur la partie "rotation" du secret. + +Alors j'ai donné ça à Claude Sonnet 4.6 avec mes instructions. + +Au final j'ai un code lourd mais, à vue d'oeil, qui est fonctionnel. Mais je ne suis pas sûr que ce soit "bien" fait, +j'ai l'impression de faire plein de choses dans la route qui devraient être dans les services du domaine. + +Je ne sais pas quoi en penser - de l'IA et de moi en général. Je trouve que j'ai du mal à faire le tri entre ce +que je devrais faire et ce que l'IA fait, et à évaluer la qualité de ce qui est produit. + +Bref. C'est à ta libre appréciation évidemment, +tu corriges et tu notes, moi je fais ce que je fais en mon âme et conscience. +''' + +import infra.crypto as crypto + +from fastapi import APIRouter, Depends, Form, Request +from fastapi.responses import HTMLResponse, RedirectResponse +from fastapi.templating import Jinja2Templates + +from domain import services +from domain.exceptions import AccessDeniedError, ConflictError, SecretNotFoundError +from infra.database import get_database_connection +from infra.repositories import SecretRepository, TeamRepository, UserRepository + +router = APIRouter() +templates = Jinja2Templates(directory="presentation/templates") + +def _get_db(): + conn = get_database_connection() + try: + yield conn + finally: + conn.close() + +def _get_current_user(request: Request, conn): + user_id = request.session.get("user_id") + if not user_id: + return None + return UserRepository(conn).find_by_id(int(user_id)) + +@router.get("/", response_class=HTMLResponse) +def index(request: Request): + if request.session.get("user_id"): + return RedirectResponse(url="/secrets", status_code=302) + return RedirectResponse(url="/login", status_code=302) + +@router.get("/secrets", response_class=HTMLResponse) +def list_secrets(request: Request, conn=Depends(_get_db)): + user = _get_current_user(request, conn) + if user is None: + return RedirectResponse(url="/login", status_code=302) + + team_repo = TeamRepository(conn) + secret_repo = SecretRepository(conn) + teams = team_repo.find_by_user(user.id) + + secrets_by_team: dict = {} + for team in teams: + secrets_by_team[team] = services.list_secrets_for_team(user, team.id, secret_repo) + + return templates.TemplateResponse( + request, + "secrets_list.html", + {"user": user, "secrets_by_team": secrets_by_team}, + ) + +@router.get("/secrets/new", response_class=HTMLResponse) +def create_secret_form(request: Request, conn=Depends(_get_db)): + user = _get_current_user(request, conn) + if user is None: + return RedirectResponse(url="/login", status_code=302) + + teams = TeamRepository(conn).find_by_user(user.id) + return templates.TemplateResponse( + request, + "secret_create.html", + {"user": user, "teams": teams, "error": None}, + ) + +@router.post("/secrets", response_class=HTMLResponse) +def create_secret( + request: Request, + name: str = Form(...), + value: str = Form(...), + team_id: int = Form(...), + conn=Depends(_get_db), +): + user = _get_current_user(request, conn) + if user is None: + return RedirectResponse(url="/login", status_code=302) + + try: + services.create_secret(user, team_id, name, value, SecretRepository(conn), crypto) + except AccessDeniedError as exc: + teams = TeamRepository(conn).find_by_user(user.id) + return templates.TemplateResponse( + request, + "secret_create.html", + {"user": user, "teams": teams, "error": str(exc)}, + status_code=403, + ) + return RedirectResponse(url="/secrets", status_code=302) + +@router.get("/secrets/{secret_id}", response_class=HTMLResponse) +def reveal_secret(request: Request, secret_id: int, conn=Depends(_get_db)): + user = _get_current_user(request, conn) + if user is None: + return RedirectResponse(url="/login", status_code=302) + + secret_repo = SecretRepository(conn) + try: + plaintext = services.reveal_secret(user, secret_id, secret_repo, crypto) + except SecretNotFoundError: + return templates.TemplateResponse( + request, + "error.html", + {"user": user, "status_code": 404, "message": "Secret introuvable."}, + status_code=404, + ) + except AccessDeniedError: + return templates.TemplateResponse( + request, + "error.html", + {"user": user, "status_code": 403, "message": "Acc\u00e8s refus\u00e9."}, + status_code=403, + ) + # Access validated \u2014 fetch the secret metadata for display + secret = secret_repo.find_by_id(secret_id) + return templates.TemplateResponse( + request, + "secret_detail.html", + {"user": user, "secret": secret, "plaintext": plaintext}, + ) + +@router.get("/secrets/{secret_id}/rotate", response_class=HTMLResponse) +def rotate_secret_form(request: Request, secret_id: int, conn=Depends(_get_db)): + user = _get_current_user(request, conn) + if user is None: + return RedirectResponse(url="/login", status_code=302) + + secret_repo = SecretRepository(conn) + secret = secret_repo.find_by_id(secret_id) + if secret is None: + return templates.TemplateResponse( + request, + "error.html", + {"user": user, "status_code": 404, "message": "Secret introuvable."}, + status_code=404, + ) + + try: + services.check_team_membership(user, secret.team_id) + except AccessDeniedError: + return templates.TemplateResponse( + request, + "error.html", + {"user": user, "status_code": 403, "message": "Acc\u00e8s refus\u00e9."}, + status_code=403, + ) + return templates.TemplateResponse( + request, + "secret_rotate.html", + {"user": user, "secret": secret, "error": None}, + ) + +@router.post("/secrets/{secret_id}/rotate", response_class=HTMLResponse) +def rotate_secret( + request: Request, + secret_id: int, + new_value: str = Form(...), + expected_version: int = Form(...), + conn=Depends(_get_db), +): + user = _get_current_user(request, conn) + if user is None: + return RedirectResponse(url="/login", status_code=302) + + secret_repo = SecretRepository(conn) + try: + services.rotate_secret(user, secret_id, new_value, expected_version, secret_repo, crypto) + except SecretNotFoundError: + return templates.TemplateResponse( + request, + "error.html", + {"user": user, "status_code": 404, "message": "Secret introuvable."}, + status_code=404, + ) + except AccessDeniedError: + return templates.TemplateResponse( + request, + "error.html", + {"user": user, "status_code": 403, "message": "Acc\u00e8s refus\u00e9."}, + status_code=403, + ) + except ConflictError as exc: + # Re-fetch fresh secret so the form shows the new version + secret = secret_repo.find_by_id(secret_id) + return templates.TemplateResponse( + request, + "secret_rotate.html", + {"user": user, "secret": secret, "error": str(exc)}, + status_code=409, + ) + return RedirectResponse(url="/secrets", status_code=302) \ No newline at end of file diff --git a/Semaine_08/secuvault/presentation/schemas.py b/Semaine_08/secuvault/presentation/schemas.py new file mode 100644 index 0000000..c026859 --- /dev/null +++ b/Semaine_08/secuvault/presentation/schemas.py @@ -0,0 +1,14 @@ +from pydantic import BaseModel, Field + +class LoginForm(BaseModel): + username: str = Field(min_length=1, max_length=64) + password: str = Field(min_length=1, max_length=256) + +class CreateSecretForm(BaseModel): + name: str = Field(min_length=1, max_length=256) + value: str = Field(min_length=1) + team_id: int + +class RotateSecretForm(BaseModel): + new_value: str = Field(min_length=1) + expected_version: int \ No newline at end of file diff --git a/Semaine_08/secuvault/presentation/templates/TEMPLATES.md b/Semaine_08/secuvault/presentation/templates/TEMPLATES.md new file mode 100644 index 0000000..eae99c1 --- /dev/null +++ b/Semaine_08/secuvault/presentation/templates/TEMPLATES.md @@ -0,0 +1,12 @@ +# Contexte + +Deux choses : +1 - J'ai fait la base avec le contenu de LivrExpress / ShopFlow +2 - Je connaissais un peu d'HTML +3 - ... mais putain ce que ça me gonfle comme langage (le balisage en général) + +Alors j'ai codé le minimum syndical pour que ça tourne et après j'ai fait un planificateur Claude Opus 4.6 et un agent Claude Sonnet 4.6 pour générer un template propre. + +C'est pas une instance Vault mais c'est déjà bien. + +J'assume pleinement mon usage de l'IA pour les parties où j'ai des lacunes mais où je sais contrôler la qualité du résultat. C'est aussi la réalité des juniors. Et des seniors aussi d'ailleurs. \ No newline at end of file diff --git a/Semaine_08/secuvault/presentation/templates/base.html b/Semaine_08/secuvault/presentation/templates/base.html new file mode 100644 index 0000000..84832ad --- /dev/null +++ b/Semaine_08/secuvault/presentation/templates/base.html @@ -0,0 +1,25 @@ + + + + + + {% block title %}SecuVault{% endblock %} + + + +

+
+ {% block content %}{% endblock %} +
+ + diff --git a/Semaine_08/secuvault/presentation/templates/error.html b/Semaine_08/secuvault/presentation/templates/error.html new file mode 100644 index 0000000..f1ba77e --- /dev/null +++ b/Semaine_08/secuvault/presentation/templates/error.html @@ -0,0 +1,12 @@ +{% extends "base.html" %} +{% block title %}SecuVault - Erreur {{ status_code }}{% endblock %} + +{% block content %} +
+
+
{{ status_code }}
+

{{ message }}

+ ⬅️ Retour aux secrets +
+
+{% endblock %} diff --git a/Semaine_08/secuvault/presentation/templates/login.html b/Semaine_08/secuvault/presentation/templates/login.html new file mode 100644 index 0000000..38bc5bd --- /dev/null +++ b/Semaine_08/secuvault/presentation/templates/login.html @@ -0,0 +1,28 @@ +{% extends "base.html" %} +{% block title %}SecuVault - Connexion{% endblock %} + +{% block content %} +
+
+
+
+

Connexion

+ {% if error %} +
{{ error }}
+ {% endif %} +
+
+ + +
+
+ + +
+ +
+
+
+
+
+{% endblock %} diff --git a/Semaine_08/secuvault/presentation/templates/secret_create.html b/Semaine_08/secuvault/presentation/templates/secret_create.html new file mode 100644 index 0000000..baaec0c --- /dev/null +++ b/Semaine_08/secuvault/presentation/templates/secret_create.html @@ -0,0 +1,39 @@ +{% extends "base.html" %} +{% block title %}SecuVault - Nouveau secret{% endblock %} + +{% block content %} +
+
+
+
+

Créer un secret

+ {% if error %} +
{{ error }}
+ {% endif %} +
+
+ + +
+
+ + +
+
+ + +
+
+ + ⛔ Annuler +
+
+
+
+
+
+{% endblock %} diff --git a/Semaine_08/secuvault/presentation/templates/secret_detail.html b/Semaine_08/secuvault/presentation/templates/secret_detail.html new file mode 100644 index 0000000..3c4dc3a --- /dev/null +++ b/Semaine_08/secuvault/presentation/templates/secret_detail.html @@ -0,0 +1,24 @@ +{% extends "base.html" %} +{% block title %}SecuVault - {{ secret.name }}{% endblock %} + +{% block content %} +
+
+
+
+ {{ secret.name }} + v{{ secret.version }} +
+
+ +
{{ plaintext }}
+

Mis à jour le {{ secret.updated_at }}

+
+ +
+
+
+{% endblock %} diff --git a/Semaine_08/secuvault/presentation/templates/secret_rotate.html b/Semaine_08/secuvault/presentation/templates/secret_rotate.html new file mode 100644 index 0000000..a98d163 --- /dev/null +++ b/Semaine_08/secuvault/presentation/templates/secret_rotate.html @@ -0,0 +1,35 @@ +{% extends "base.html" %} +{% block title %}SecuVault - Rotation : {{ secret.name }}{% endblock %} + +{% block content %} +
+
+
+
+

Rotation du secret

+

+ {{ secret.name }} + v{{ secret.version }} +

+ {% if error %} +
+ {{ error }} +
+ {% endif %} +
+ {# The current version is embedded as a hidden field for optimistic-locking. #} + +
+ + +
+
+ + Annuler +
+
+
+
+
+
+{% endblock %} diff --git a/Semaine_08/secuvault/presentation/templates/secrets_list.html b/Semaine_08/secuvault/presentation/templates/secrets_list.html new file mode 100644 index 0000000..c20c4d1 --- /dev/null +++ b/Semaine_08/secuvault/presentation/templates/secrets_list.html @@ -0,0 +1,53 @@ +{% extends "base.html" %} +{% block title %}SecuVault - Mes secrets{% endblock %} + +{% block content %} +
+

Mes secrets

+ + Nouveau secret +
+ +{% if not secrets_by_team %} +
Vous n'appartenez à aucune équipe pour l'instant.
+{% endif %} + +{% for team, secrets in secrets_by_team.items() %} +
+
+ {{ team.name }} + {% if team.description %} + - {{ team.description }} + {% endif %} +
+
+ {% if secrets %} + + + + + + + + + + + {% for secret in secrets %} + + + + + + + {% endfor %} + +
NomDernière mise à jourVersionActions
{{ secret.name }}{{ secret.updated_at }}v{{ secret.version }} + Révéler + Rotation +
+ {% else %} +

Aucun secret dans cette équipe.

+ {% endif %} +
+
+{% endfor %} +{% endblock %} diff --git a/Semaine_08/secuvault/pyproject.toml b/Semaine_08/secuvault/pyproject.toml new file mode 100644 index 0000000..8163ccb --- /dev/null +++ b/Semaine_08/secuvault/pyproject.toml @@ -0,0 +1,17 @@ +[project] +name = "secuvault" +version = "0.1.0" +description = "Shared password vault" +readme = "README.md" +requires-python = ">=3.12" +dependencies = [ + "bcrypt>=5.0.0", + "cryptography>=46.0.7", + "fastapi>=0.135.3", + "itsdangerous>=2.2.0", + "jinja2>=3.1.6", + "python-dotenv>=1.0.0", + "python-multipart>=0.0.26", + "uvicorn>=0.44.0", +] + diff --git a/Semaine_08/secuvault/secret.key b/Semaine_08/secuvault/secret.key new file mode 100644 index 0000000..aeba64b --- /dev/null +++ b/Semaine_08/secuvault/secret.key @@ -0,0 +1 @@ +Z-hPZ_S8EzfZaxEF2PEfzZwismEfleoVOHl-RiYEgCo= \ No newline at end of file diff --git a/Semaine_08/secuvault/secuvault.db b/Semaine_08/secuvault/secuvault.db new file mode 100644 index 0000000000000000000000000000000000000000..d6315492b3f690c0f321ef25bafa5e31d74cac3b GIT binary patch literal 36864 zcmeI)OK%%R00;1WI8HVtS)_tY6^U-7qQ+_y;zvSUR0+r47^i;3uh`B3Yi)1h^=sF= zYdenAgQ!eLui9zaQz|!QL$2tu zX^bN-loo?oQOE|jW1=w56jtU15|pa7pN426D@Me$u$PX;gXyAhPb><-Ts9d^kV@iW zB756DtSzoodIV36r{n zw74Ut#Y9NV2v%8RMX9=lWI_mwF_CmD6wHKzVR3Xy(r?K+A^G}mhbJ3G4%!LkVp(CO zO3Il^OJ2FzR{J;I?$PmG&C37p$M-?Exc$>z;S} zW}U9cGEFJ%s(fs8n&d*QBy~;IeqEY&t>l@e=Y~s;S(nR2fB3phWVgcJ&76U;v(A~( zlOCOJ+jC~KJz;W*XeuW@F`KKhQPCC6w1(FzHSc!MI9+#L7j?;QRLNsU&OO%Yx^;^# zj+W=B_lDf*k|iRKF(xk^XS(*pn=97JyG@F^hab>3&4Z=Kv&XQ*|jJ~Q@OEt-;U9j2}qa;;Kr8oNcm<-V4wSH=OxS40^+Wi{M6@w)o zvvbx*?E=|Y{w<3ClGjLt009U<00Izz00bZa0SG_<0uXq41){8zS{lx9m71hC75Rp@ ze8c0tp&Mc`7OfoA_q$!~$lH?F6py;5S9X88E?=I>YBSM_f*Z8ycw2zNzJhS{-5E0qWC|^ z4gmrXfB*y_009U<00Izz00bZaflDp0z+R^x-ydK&_8K?38({tZ@8Ex=_`tISr>@{N>g`MLqsaNpH z${fA~z#4`8vv?y!x-aGkXK`(~=p2nWJFR9xNPjI8AdpCvc^feec0^ZJ*SE1Wc>?3)NTa; literal 0 HcmV?d00001 diff --git a/Semaine_08/secuvault/uv.lock b/Semaine_08/secuvault/uv.lock new file mode 100644 index 0000000..89e93da --- /dev/null +++ b/Semaine_08/secuvault/uv.lock @@ -0,0 +1,540 @@ +version = 1 +revision = 3 +requires-python = ">=3.12" + +[[package]] +name = "annotated-doc" +version = "0.0.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/57/ba/046ceea27344560984e26a590f90bc7f4a75b06701f653222458922b558c/annotated_doc-0.0.4.tar.gz", hash = "sha256:fbcda96e87e9c92ad167c2e53839e57503ecfda18804ea28102353485033faa4", size = 7288, upload-time = "2025-11-10T22:07:42.062Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/d3/26bf1008eb3d2daa8ef4cacc7f3bfdc11818d111f7e2d0201bc6e3b49d45/annotated_doc-0.0.4-py3-none-any.whl", hash = "sha256:571ac1dc6991c450b25a9c2d84a3705e2ae7a53467b5d111c24fa8baabbed320", size = 5303, upload-time = "2025-11-10T22:07:40.673Z" }, +] + +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload-time = "2024-05-20T21:33:25.928Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" }, +] + +[[package]] +name = "anyio" +version = "4.13.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/14/2c5dd9f512b66549ae92767a9c7b330ae88e1932ca57876909410251fe13/anyio-4.13.0.tar.gz", hash = "sha256:334b70e641fd2221c1505b3890c69882fe4a2df910cba14d97019b90b24439dc", size = 231622, upload-time = "2026-03-24T12:59:09.671Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/da/42/e921fccf5015463e32a3cf6ee7f980a6ed0f395ceeaa45060b61d86486c2/anyio-4.13.0-py3-none-any.whl", hash = "sha256:08b310f9e24a9594186fd75b4f73f4a4152069e3853f1ed8bfbf58369f4ad708", size = 114353, upload-time = "2026-03-24T12:59:08.246Z" }, +] + +[[package]] +name = "bcrypt" +version = "5.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d4/36/3329e2518d70ad8e2e5817d5a4cac6bba05a47767ec416c7d020a965f408/bcrypt-5.0.0.tar.gz", hash = "sha256:f748f7c2d6fd375cc93d3fba7ef4a9e3a092421b8dbf34d8d4dc06be9492dfdd", size = 25386, upload-time = "2025-09-25T19:50:47.829Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/13/85/3e65e01985fddf25b64ca67275bb5bdb4040bd1a53b66d355c6c37c8a680/bcrypt-5.0.0-cp313-cp313t-macosx_10_12_universal2.whl", hash = "sha256:f3c08197f3039bec79cee59a606d62b96b16669cff3949f21e74796b6e3cd2be", size = 481806, upload-time = "2025-09-25T19:49:05.102Z" }, + { url = "https://files.pythonhosted.org/packages/44/dc/01eb79f12b177017a726cbf78330eb0eb442fae0e7b3dfd84ea2849552f3/bcrypt-5.0.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:200af71bc25f22006f4069060c88ed36f8aa4ff7f53e67ff04d2ab3f1e79a5b2", size = 268626, upload-time = "2025-09-25T19:49:06.723Z" }, + { url = "https://files.pythonhosted.org/packages/8c/cf/e82388ad5959c40d6afd94fb4743cc077129d45b952d46bdc3180310e2df/bcrypt-5.0.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:baade0a5657654c2984468efb7d6c110db87ea63ef5a4b54732e7e337253e44f", size = 271853, upload-time = "2025-09-25T19:49:08.028Z" }, + { url = "https://files.pythonhosted.org/packages/ec/86/7134b9dae7cf0efa85671651341f6afa695857fae172615e960fb6a466fa/bcrypt-5.0.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:c58b56cdfb03202b3bcc9fd8daee8e8e9b6d7e3163aa97c631dfcfcc24d36c86", size = 269793, upload-time = "2025-09-25T19:49:09.727Z" }, + { url = "https://files.pythonhosted.org/packages/cc/82/6296688ac1b9e503d034e7d0614d56e80c5d1a08402ff856a4549cb59207/bcrypt-5.0.0-cp313-cp313t-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4bfd2a34de661f34d0bda43c3e4e79df586e4716ef401fe31ea39d69d581ef23", size = 289930, upload-time = "2025-09-25T19:49:11.204Z" }, + { url = "https://files.pythonhosted.org/packages/d1/18/884a44aa47f2a3b88dd09bc05a1e40b57878ecd111d17e5bba6f09f8bb77/bcrypt-5.0.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:ed2e1365e31fc73f1825fa830f1c8f8917ca1b3ca6185773b349c20fd606cec2", size = 272194, upload-time = "2025-09-25T19:49:12.524Z" }, + { url = "https://files.pythonhosted.org/packages/0e/8f/371a3ab33c6982070b674f1788e05b656cfbf5685894acbfef0c65483a59/bcrypt-5.0.0-cp313-cp313t-manylinux_2_34_aarch64.whl", hash = "sha256:83e787d7a84dbbfba6f250dd7a5efd689e935f03dd83b0f919d39349e1f23f83", size = 269381, upload-time = "2025-09-25T19:49:14.308Z" }, + { url = "https://files.pythonhosted.org/packages/b1/34/7e4e6abb7a8778db6422e88b1f06eb07c47682313997ee8a8f9352e5a6f1/bcrypt-5.0.0-cp313-cp313t-manylinux_2_34_x86_64.whl", hash = "sha256:137c5156524328a24b9fac1cb5db0ba618bc97d11970b39184c1d87dc4bf1746", size = 271750, upload-time = "2025-09-25T19:49:15.584Z" }, + { url = "https://files.pythonhosted.org/packages/c0/1b/54f416be2499bd72123c70d98d36c6cd61a4e33d9b89562c22481c81bb30/bcrypt-5.0.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:38cac74101777a6a7d3b3e3cfefa57089b5ada650dce2baf0cbdd9d65db22a9e", size = 303757, upload-time = "2025-09-25T19:49:17.244Z" }, + { url = "https://files.pythonhosted.org/packages/13/62/062c24c7bcf9d2826a1a843d0d605c65a755bc98002923d01fd61270705a/bcrypt-5.0.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:d8d65b564ec849643d9f7ea05c6d9f0cd7ca23bdd4ac0c2dbef1104ab504543d", size = 306740, upload-time = "2025-09-25T19:49:18.693Z" }, + { url = "https://files.pythonhosted.org/packages/d5/c8/1fdbfc8c0f20875b6b4020f3c7dc447b8de60aa0be5faaf009d24242aec9/bcrypt-5.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:741449132f64b3524e95cd30e5cd3343006ce146088f074f31ab26b94e6c75ba", size = 334197, upload-time = "2025-09-25T19:49:20.523Z" }, + { url = "https://files.pythonhosted.org/packages/a6/c1/8b84545382d75bef226fbc6588af0f7b7d095f7cd6a670b42a86243183cd/bcrypt-5.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:212139484ab3207b1f0c00633d3be92fef3c5f0af17cad155679d03ff2ee1e41", size = 352974, upload-time = "2025-09-25T19:49:22.254Z" }, + { url = "https://files.pythonhosted.org/packages/10/a6/ffb49d4254ed085e62e3e5dd05982b4393e32fe1e49bb1130186617c29cd/bcrypt-5.0.0-cp313-cp313t-win32.whl", hash = "sha256:9d52ed507c2488eddd6a95bccee4e808d3234fa78dd370e24bac65a21212b861", size = 148498, upload-time = "2025-09-25T19:49:24.134Z" }, + { url = "https://files.pythonhosted.org/packages/48/a9/259559edc85258b6d5fc5471a62a3299a6aa37a6611a169756bf4689323c/bcrypt-5.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:f6984a24db30548fd39a44360532898c33528b74aedf81c26cf29c51ee47057e", size = 145853, upload-time = "2025-09-25T19:49:25.702Z" }, + { url = "https://files.pythonhosted.org/packages/2d/df/9714173403c7e8b245acf8e4be8876aac64a209d1b392af457c79e60492e/bcrypt-5.0.0-cp313-cp313t-win_arm64.whl", hash = "sha256:9fffdb387abe6aa775af36ef16f55e318dcda4194ddbf82007a6f21da29de8f5", size = 139626, upload-time = "2025-09-25T19:49:26.928Z" }, + { url = "https://files.pythonhosted.org/packages/f8/14/c18006f91816606a4abe294ccc5d1e6f0e42304df5a33710e9e8e95416e1/bcrypt-5.0.0-cp314-cp314t-macosx_10_12_universal2.whl", hash = "sha256:4870a52610537037adb382444fefd3706d96d663ac44cbb2f37e3919dca3d7ef", size = 481862, upload-time = "2025-09-25T19:49:28.365Z" }, + { url = "https://files.pythonhosted.org/packages/67/49/dd074d831f00e589537e07a0725cf0e220d1f0d5d8e85ad5bbff251c45aa/bcrypt-5.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:48f753100931605686f74e27a7b49238122aa761a9aefe9373265b8b7aa43ea4", size = 268544, upload-time = "2025-09-25T19:49:30.39Z" }, + { url = "https://files.pythonhosted.org/packages/f5/91/50ccba088b8c474545b034a1424d05195d9fcbaaf802ab8bfe2be5a4e0d7/bcrypt-5.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f70aadb7a809305226daedf75d90379c397b094755a710d7014b8b117df1ebbf", size = 271787, upload-time = "2025-09-25T19:49:32.144Z" }, + { url = "https://files.pythonhosted.org/packages/aa/e7/d7dba133e02abcda3b52087a7eea8c0d4f64d3e593b4fffc10c31b7061f3/bcrypt-5.0.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:744d3c6b164caa658adcb72cb8cc9ad9b4b75c7db507ab4bc2480474a51989da", size = 269753, upload-time = "2025-09-25T19:49:33.885Z" }, + { url = "https://files.pythonhosted.org/packages/33/fc/5b145673c4b8d01018307b5c2c1fc87a6f5a436f0ad56607aee389de8ee3/bcrypt-5.0.0-cp314-cp314t-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a28bc05039bdf3289d757f49d616ab3efe8cf40d8e8001ccdd621cd4f98f4fc9", size = 289587, upload-time = "2025-09-25T19:49:35.144Z" }, + { url = "https://files.pythonhosted.org/packages/27/d7/1ff22703ec6d4f90e62f1a5654b8867ef96bafb8e8102c2288333e1a6ca6/bcrypt-5.0.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:7f277a4b3390ab4bebe597800a90da0edae882c6196d3038a73adf446c4f969f", size = 272178, upload-time = "2025-09-25T19:49:36.793Z" }, + { url = "https://files.pythonhosted.org/packages/c8/88/815b6d558a1e4d40ece04a2f84865b0fef233513bd85fd0e40c294272d62/bcrypt-5.0.0-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:79cfa161eda8d2ddf29acad370356b47f02387153b11d46042e93a0a95127493", size = 269295, upload-time = "2025-09-25T19:49:38.164Z" }, + { url = "https://files.pythonhosted.org/packages/51/8c/e0db387c79ab4931fc89827d37608c31cc57b6edc08ccd2386139028dc0d/bcrypt-5.0.0-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:a5393eae5722bcef046a990b84dff02b954904c36a194f6cfc817d7dca6c6f0b", size = 271700, upload-time = "2025-09-25T19:49:39.917Z" }, + { url = "https://files.pythonhosted.org/packages/06/83/1570edddd150f572dbe9fc00f6203a89fc7d4226821f67328a85c330f239/bcrypt-5.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7f4c94dec1b5ab5d522750cb059bb9409ea8872d4494fd152b53cca99f1ddd8c", size = 334034, upload-time = "2025-09-25T19:49:41.227Z" }, + { url = "https://files.pythonhosted.org/packages/c9/f2/ea64e51a65e56ae7a8a4ec236c2bfbdd4b23008abd50ac33fbb2d1d15424/bcrypt-5.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:0cae4cb350934dfd74c020525eeae0a5f79257e8a201c0c176f4b84fdbf2a4b4", size = 352766, upload-time = "2025-09-25T19:49:43.08Z" }, + { url = "https://files.pythonhosted.org/packages/d7/d4/1a388d21ee66876f27d1a1f41287897d0c0f1712ef97d395d708ba93004c/bcrypt-5.0.0-cp314-cp314t-win32.whl", hash = "sha256:b17366316c654e1ad0306a6858e189fc835eca39f7eb2cafd6aaca8ce0c40a2e", size = 152449, upload-time = "2025-09-25T19:49:44.971Z" }, + { url = "https://files.pythonhosted.org/packages/3f/61/3291c2243ae0229e5bca5d19f4032cecad5dfb05a2557169d3a69dc0ba91/bcrypt-5.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:92864f54fb48b4c718fc92a32825d0e42265a627f956bc0361fe869f1adc3e7d", size = 149310, upload-time = "2025-09-25T19:49:46.162Z" }, + { url = "https://files.pythonhosted.org/packages/3e/89/4b01c52ae0c1a681d4021e5dd3e45b111a8fb47254a274fa9a378d8d834b/bcrypt-5.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:dd19cf5184a90c873009244586396a6a884d591a5323f0e8a5922560718d4993", size = 143761, upload-time = "2025-09-25T19:49:47.345Z" }, + { url = "https://files.pythonhosted.org/packages/84/29/6237f151fbfe295fe3e074ecc6d44228faa1e842a81f6d34a02937ee1736/bcrypt-5.0.0-cp38-abi3-macosx_10_12_universal2.whl", hash = "sha256:fc746432b951e92b58317af8e0ca746efe93e66555f1b40888865ef5bf56446b", size = 494553, upload-time = "2025-09-25T19:49:49.006Z" }, + { url = "https://files.pythonhosted.org/packages/45/b6/4c1205dde5e464ea3bd88e8742e19f899c16fa8916fb8510a851fae985b5/bcrypt-5.0.0-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c2388ca94ffee269b6038d48747f4ce8df0ffbea43f31abfa18ac72f0218effb", size = 275009, upload-time = "2025-09-25T19:49:50.581Z" }, + { url = "https://files.pythonhosted.org/packages/3b/71/427945e6ead72ccffe77894b2655b695ccf14ae1866cd977e185d606dd2f/bcrypt-5.0.0-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:560ddb6ec730386e7b3b26b8b4c88197aaed924430e7b74666a586ac997249ef", size = 278029, upload-time = "2025-09-25T19:49:52.533Z" }, + { url = "https://files.pythonhosted.org/packages/17/72/c344825e3b83c5389a369c8a8e58ffe1480b8a699f46c127c34580c4666b/bcrypt-5.0.0-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:d79e5c65dcc9af213594d6f7f1fa2c98ad3fc10431e7aa53c176b441943efbdd", size = 275907, upload-time = "2025-09-25T19:49:54.709Z" }, + { url = "https://files.pythonhosted.org/packages/0b/7e/d4e47d2df1641a36d1212e5c0514f5291e1a956a7749f1e595c07a972038/bcrypt-5.0.0-cp38-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2b732e7d388fa22d48920baa267ba5d97cca38070b69c0e2d37087b381c681fd", size = 296500, upload-time = "2025-09-25T19:49:56.013Z" }, + { url = "https://files.pythonhosted.org/packages/0f/c3/0ae57a68be2039287ec28bc463b82e4b8dc23f9d12c0be331f4782e19108/bcrypt-5.0.0-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:0c8e093ea2532601a6f686edbc2c6b2ec24131ff5c52f7610dd64fa4553b5464", size = 278412, upload-time = "2025-09-25T19:49:57.356Z" }, + { url = "https://files.pythonhosted.org/packages/45/2b/77424511adb11e6a99e3a00dcc7745034bee89036ad7d7e255a7e47be7d8/bcrypt-5.0.0-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:5b1589f4839a0899c146e8892efe320c0fa096568abd9b95593efac50a87cb75", size = 275486, upload-time = "2025-09-25T19:49:59.116Z" }, + { url = "https://files.pythonhosted.org/packages/43/0a/405c753f6158e0f3f14b00b462d8bca31296f7ecfc8fc8bc7919c0c7d73a/bcrypt-5.0.0-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:89042e61b5e808b67daf24a434d89bab164d4de1746b37a8d173b6b14f3db9ff", size = 277940, upload-time = "2025-09-25T19:50:00.869Z" }, + { url = "https://files.pythonhosted.org/packages/62/83/b3efc285d4aadc1fa83db385ec64dcfa1707e890eb42f03b127d66ac1b7b/bcrypt-5.0.0-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:e3cf5b2560c7b5a142286f69bde914494b6d8f901aaa71e453078388a50881c4", size = 310776, upload-time = "2025-09-25T19:50:02.393Z" }, + { url = "https://files.pythonhosted.org/packages/95/7d/47ee337dacecde6d234890fe929936cb03ebc4c3a7460854bbd9c97780b8/bcrypt-5.0.0-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:f632fd56fc4e61564f78b46a2269153122db34988e78b6be8b32d28507b7eaeb", size = 312922, upload-time = "2025-09-25T19:50:04.232Z" }, + { url = "https://files.pythonhosted.org/packages/d6/3a/43d494dfb728f55f4e1cf8fd435d50c16a2d75493225b54c8d06122523c6/bcrypt-5.0.0-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:801cad5ccb6b87d1b430f183269b94c24f248dddbbc5c1f78b6ed231743e001c", size = 341367, upload-time = "2025-09-25T19:50:05.559Z" }, + { url = "https://files.pythonhosted.org/packages/55/ab/a0727a4547e383e2e22a630e0f908113db37904f58719dc48d4622139b5c/bcrypt-5.0.0-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:3cf67a804fc66fc217e6914a5635000259fbbbb12e78a99488e4d5ba445a71eb", size = 359187, upload-time = "2025-09-25T19:50:06.916Z" }, + { url = "https://files.pythonhosted.org/packages/1b/bb/461f352fdca663524b4643d8b09e8435b4990f17fbf4fea6bc2a90aa0cc7/bcrypt-5.0.0-cp38-abi3-win32.whl", hash = "sha256:3abeb543874b2c0524ff40c57a4e14e5d3a66ff33fb423529c88f180fd756538", size = 153752, upload-time = "2025-09-25T19:50:08.515Z" }, + { url = "https://files.pythonhosted.org/packages/41/aa/4190e60921927b7056820291f56fc57d00d04757c8b316b2d3c0d1d6da2c/bcrypt-5.0.0-cp38-abi3-win_amd64.whl", hash = "sha256:35a77ec55b541e5e583eb3436ffbbf53b0ffa1fa16ca6782279daf95d146dcd9", size = 150881, upload-time = "2025-09-25T19:50:09.742Z" }, + { url = "https://files.pythonhosted.org/packages/54/12/cd77221719d0b39ac0b55dbd39358db1cd1246e0282e104366ebbfb8266a/bcrypt-5.0.0-cp38-abi3-win_arm64.whl", hash = "sha256:cde08734f12c6a4e28dc6755cd11d3bdfea608d93d958fffbe95a7026ebe4980", size = 144931, upload-time = "2025-09-25T19:50:11.016Z" }, + { url = "https://files.pythonhosted.org/packages/5d/ba/2af136406e1c3839aea9ecadc2f6be2bcd1eff255bd451dd39bcf302c47a/bcrypt-5.0.0-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:0c418ca99fd47e9c59a301744d63328f17798b5947b0f791e9af3c1c499c2d0a", size = 495313, upload-time = "2025-09-25T19:50:12.309Z" }, + { url = "https://files.pythonhosted.org/packages/ac/ee/2f4985dbad090ace5ad1f7dd8ff94477fe089b5fab2040bd784a3d5f187b/bcrypt-5.0.0-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ddb4e1500f6efdd402218ffe34d040a1196c072e07929b9820f363a1fd1f4191", size = 275290, upload-time = "2025-09-25T19:50:13.673Z" }, + { url = "https://files.pythonhosted.org/packages/e4/6e/b77ade812672d15cf50842e167eead80ac3514f3beacac8902915417f8b7/bcrypt-5.0.0-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7aeef54b60ceddb6f30ee3db090351ecf0d40ec6e2abf41430997407a46d2254", size = 278253, upload-time = "2025-09-25T19:50:15.089Z" }, + { url = "https://files.pythonhosted.org/packages/36/c4/ed00ed32f1040f7990dac7115f82273e3c03da1e1a1587a778d8cea496d8/bcrypt-5.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:f0ce778135f60799d89c9693b9b398819d15f1921ba15fe719acb3178215a7db", size = 276084, upload-time = "2025-09-25T19:50:16.699Z" }, + { url = "https://files.pythonhosted.org/packages/e7/c4/fa6e16145e145e87f1fa351bbd54b429354fd72145cd3d4e0c5157cf4c70/bcrypt-5.0.0-cp39-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a71f70ee269671460b37a449f5ff26982a6f2ba493b3eabdd687b4bf35f875ac", size = 297185, upload-time = "2025-09-25T19:50:18.525Z" }, + { url = "https://files.pythonhosted.org/packages/24/b4/11f8a31d8b67cca3371e046db49baa7c0594d71eb40ac8121e2fc0888db0/bcrypt-5.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f8429e1c410b4073944f03bd778a9e066e7fad723564a52ff91841d278dfc822", size = 278656, upload-time = "2025-09-25T19:50:19.809Z" }, + { url = "https://files.pythonhosted.org/packages/ac/31/79f11865f8078e192847d2cb526e3fa27c200933c982c5b2869720fa5fce/bcrypt-5.0.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:edfcdcedd0d0f05850c52ba3127b1fce70b9f89e0fe5ff16517df7e81fa3cbb8", size = 275662, upload-time = "2025-09-25T19:50:21.567Z" }, + { url = "https://files.pythonhosted.org/packages/d4/8d/5e43d9584b3b3591a6f9b68f755a4da879a59712981ef5ad2a0ac1379f7a/bcrypt-5.0.0-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:611f0a17aa4a25a69362dcc299fda5c8a3d4f160e2abb3831041feb77393a14a", size = 278240, upload-time = "2025-09-25T19:50:23.305Z" }, + { url = "https://files.pythonhosted.org/packages/89/48/44590e3fc158620f680a978aafe8f87a4c4320da81ed11552f0323aa9a57/bcrypt-5.0.0-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:db99dca3b1fdc3db87d7c57eac0c82281242d1eabf19dcb8a6b10eb29a2e72d1", size = 311152, upload-time = "2025-09-25T19:50:24.597Z" }, + { url = "https://files.pythonhosted.org/packages/5f/85/e4fbfc46f14f47b0d20493669a625da5827d07e8a88ee460af6cd9768b44/bcrypt-5.0.0-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:5feebf85a9cefda32966d8171f5db7e3ba964b77fdfe31919622256f80f9cf42", size = 313284, upload-time = "2025-09-25T19:50:26.268Z" }, + { url = "https://files.pythonhosted.org/packages/25/ae/479f81d3f4594456a01ea2f05b132a519eff9ab5768a70430fa1132384b1/bcrypt-5.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:3ca8a166b1140436e058298a34d88032ab62f15aae1c598580333dc21d27ef10", size = 341643, upload-time = "2025-09-25T19:50:28.02Z" }, + { url = "https://files.pythonhosted.org/packages/df/d2/36a086dee1473b14276cd6ea7f61aef3b2648710b5d7f1c9e032c29b859f/bcrypt-5.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:61afc381250c3182d9078551e3ac3a41da14154fbff647ddf52a769f588c4172", size = 359698, upload-time = "2025-09-25T19:50:31.347Z" }, + { url = "https://files.pythonhosted.org/packages/c0/f6/688d2cd64bfd0b14d805ddb8a565e11ca1fb0fd6817175d58b10052b6d88/bcrypt-5.0.0-cp39-abi3-win32.whl", hash = "sha256:64d7ce196203e468c457c37ec22390f1a61c85c6f0b8160fd752940ccfb3a683", size = 153725, upload-time = "2025-09-25T19:50:34.384Z" }, + { url = "https://files.pythonhosted.org/packages/9f/b9/9d9a641194a730bda138b3dfe53f584d61c58cd5230e37566e83ec2ffa0d/bcrypt-5.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:64ee8434b0da054d830fa8e89e1c8bf30061d539044a39524ff7dec90481e5c2", size = 150912, upload-time = "2025-09-25T19:50:35.69Z" }, + { url = "https://files.pythonhosted.org/packages/27/44/d2ef5e87509158ad2187f4dd0852df80695bb1ee0cfe0a684727b01a69e0/bcrypt-5.0.0-cp39-abi3-win_arm64.whl", hash = "sha256:f2347d3534e76bf50bca5500989d6c1d05ed64b440408057a37673282c654927", size = 144953, upload-time = "2025-09-25T19:50:37.32Z" }, +] + +[[package]] +name = "cffi" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pycparser", marker = "implementation_name != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588, upload-time = "2025-09-08T23:24:04.541Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ea/47/4f61023ea636104d4f16ab488e268b93008c3d0bb76893b1b31db1f96802/cffi-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d02d6655b0e54f54c4ef0b94eb6be0607b70853c45ce98bd278dc7de718be5d", size = 185271, upload-time = "2025-09-08T23:22:44.795Z" }, + { url = "https://files.pythonhosted.org/packages/df/a2/781b623f57358e360d62cdd7a8c681f074a71d445418a776eef0aadb4ab4/cffi-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8eca2a813c1cb7ad4fb74d368c2ffbbb4789d377ee5bb8df98373c2cc0dee76c", size = 181048, upload-time = "2025-09-08T23:22:45.938Z" }, + { url = "https://files.pythonhosted.org/packages/ff/df/a4f0fbd47331ceeba3d37c2e51e9dfc9722498becbeec2bd8bc856c9538a/cffi-2.0.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe", size = 212529, upload-time = "2025-09-08T23:22:47.349Z" }, + { url = "https://files.pythonhosted.org/packages/d5/72/12b5f8d3865bf0f87cf1404d8c374e7487dcf097a1c91c436e72e6badd83/cffi-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062", size = 220097, upload-time = "2025-09-08T23:22:48.677Z" }, + { url = "https://files.pythonhosted.org/packages/c2/95/7a135d52a50dfa7c882ab0ac17e8dc11cec9d55d2c18dda414c051c5e69e/cffi-2.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e", size = 207983, upload-time = "2025-09-08T23:22:50.06Z" }, + { url = "https://files.pythonhosted.org/packages/3a/c8/15cb9ada8895957ea171c62dc78ff3e99159ee7adb13c0123c001a2546c1/cffi-2.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:81afed14892743bbe14dacb9e36d9e0e504cd204e0b165062c488942b9718037", size = 206519, upload-time = "2025-09-08T23:22:51.364Z" }, + { url = "https://files.pythonhosted.org/packages/78/2d/7fa73dfa841b5ac06c7b8855cfc18622132e365f5b81d02230333ff26e9e/cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba", size = 219572, upload-time = "2025-09-08T23:22:52.902Z" }, + { url = "https://files.pythonhosted.org/packages/07/e0/267e57e387b4ca276b90f0434ff88b2c2241ad72b16d31836adddfd6031b/cffi-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94", size = 222963, upload-time = "2025-09-08T23:22:54.518Z" }, + { url = "https://files.pythonhosted.org/packages/b6/75/1f2747525e06f53efbd878f4d03bac5b859cbc11c633d0fb81432d98a795/cffi-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187", size = 221361, upload-time = "2025-09-08T23:22:55.867Z" }, + { url = "https://files.pythonhosted.org/packages/7b/2b/2b6435f76bfeb6bbf055596976da087377ede68df465419d192acf00c437/cffi-2.0.0-cp312-cp312-win32.whl", hash = "sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18", size = 172932, upload-time = "2025-09-08T23:22:57.188Z" }, + { url = "https://files.pythonhosted.org/packages/f8/ed/13bd4418627013bec4ed6e54283b1959cf6db888048c7cf4b4c3b5b36002/cffi-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5", size = 183557, upload-time = "2025-09-08T23:22:58.351Z" }, + { url = "https://files.pythonhosted.org/packages/95/31/9f7f93ad2f8eff1dbc1c3656d7ca5bfd8fb52c9d786b4dcf19b2d02217fa/cffi-2.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6", size = 177762, upload-time = "2025-09-08T23:22:59.668Z" }, + { url = "https://files.pythonhosted.org/packages/4b/8d/a0a47a0c9e413a658623d014e91e74a50cdd2c423f7ccfd44086ef767f90/cffi-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:00bdf7acc5f795150faa6957054fbbca2439db2f775ce831222b66f192f03beb", size = 185230, upload-time = "2025-09-08T23:23:00.879Z" }, + { url = "https://files.pythonhosted.org/packages/4a/d2/a6c0296814556c68ee32009d9c2ad4f85f2707cdecfd7727951ec228005d/cffi-2.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:45d5e886156860dc35862657e1494b9bae8dfa63bf56796f2fb56e1679fc0bca", size = 181043, upload-time = "2025-09-08T23:23:02.231Z" }, + { url = "https://files.pythonhosted.org/packages/b0/1e/d22cc63332bd59b06481ceaac49d6c507598642e2230f201649058a7e704/cffi-2.0.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b", size = 212446, upload-time = "2025-09-08T23:23:03.472Z" }, + { url = "https://files.pythonhosted.org/packages/a9/f5/a2c23eb03b61a0b8747f211eb716446c826ad66818ddc7810cc2cc19b3f2/cffi-2.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b", size = 220101, upload-time = "2025-09-08T23:23:04.792Z" }, + { url = "https://files.pythonhosted.org/packages/f2/7f/e6647792fc5850d634695bc0e6ab4111ae88e89981d35ac269956605feba/cffi-2.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f93fd8e5c8c0a4aa1f424d6173f14a892044054871c771f8566e4008eaa359d2", size = 207948, upload-time = "2025-09-08T23:23:06.127Z" }, + { url = "https://files.pythonhosted.org/packages/cb/1e/a5a1bd6f1fb30f22573f76533de12a00bf274abcdc55c8edab639078abb6/cffi-2.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:dd4f05f54a52fb558f1ba9f528228066954fee3ebe629fc1660d874d040ae5a3", size = 206422, upload-time = "2025-09-08T23:23:07.753Z" }, + { url = "https://files.pythonhosted.org/packages/98/df/0a1755e750013a2081e863e7cd37e0cdd02664372c754e5560099eb7aa44/cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26", size = 219499, upload-time = "2025-09-08T23:23:09.648Z" }, + { url = "https://files.pythonhosted.org/packages/50/e1/a969e687fcf9ea58e6e2a928ad5e2dd88cc12f6f0ab477e9971f2309b57c/cffi-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c", size = 222928, upload-time = "2025-09-08T23:23:10.928Z" }, + { url = "https://files.pythonhosted.org/packages/36/54/0362578dd2c9e557a28ac77698ed67323ed5b9775ca9d3fe73fe191bb5d8/cffi-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b", size = 221302, upload-time = "2025-09-08T23:23:12.42Z" }, + { url = "https://files.pythonhosted.org/packages/eb/6d/bf9bda840d5f1dfdbf0feca87fbdb64a918a69bca42cfa0ba7b137c48cb8/cffi-2.0.0-cp313-cp313-win32.whl", hash = "sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27", size = 172909, upload-time = "2025-09-08T23:23:14.32Z" }, + { url = "https://files.pythonhosted.org/packages/37/18/6519e1ee6f5a1e579e04b9ddb6f1676c17368a7aba48299c3759bbc3c8b3/cffi-2.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75", size = 183402, upload-time = "2025-09-08T23:23:15.535Z" }, + { url = "https://files.pythonhosted.org/packages/cb/0e/02ceeec9a7d6ee63bb596121c2c8e9b3a9e150936f4fbef6ca1943e6137c/cffi-2.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91", size = 177780, upload-time = "2025-09-08T23:23:16.761Z" }, + { url = "https://files.pythonhosted.org/packages/92/c4/3ce07396253a83250ee98564f8d7e9789fab8e58858f35d07a9a2c78de9f/cffi-2.0.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fc33c5141b55ed366cfaad382df24fe7dcbc686de5be719b207bb248e3053dc5", size = 185320, upload-time = "2025-09-08T23:23:18.087Z" }, + { url = "https://files.pythonhosted.org/packages/59/dd/27e9fa567a23931c838c6b02d0764611c62290062a6d4e8ff7863daf9730/cffi-2.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c654de545946e0db659b3400168c9ad31b5d29593291482c43e3564effbcee13", size = 181487, upload-time = "2025-09-08T23:23:19.622Z" }, + { url = "https://files.pythonhosted.org/packages/d6/43/0e822876f87ea8a4ef95442c3d766a06a51fc5298823f884ef87aaad168c/cffi-2.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:24b6f81f1983e6df8db3adc38562c83f7d4a0c36162885ec7f7b77c7dcbec97b", size = 220049, upload-time = "2025-09-08T23:23:20.853Z" }, + { url = "https://files.pythonhosted.org/packages/b4/89/76799151d9c2d2d1ead63c2429da9ea9d7aac304603de0c6e8764e6e8e70/cffi-2.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:12873ca6cb9b0f0d3a0da705d6086fe911591737a59f28b7936bdfed27c0d47c", size = 207793, upload-time = "2025-09-08T23:23:22.08Z" }, + { url = "https://files.pythonhosted.org/packages/bb/dd/3465b14bb9e24ee24cb88c9e3730f6de63111fffe513492bf8c808a3547e/cffi-2.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9b97165e8aed9272a6bb17c01e3cc5871a594a446ebedc996e2397a1c1ea8ef", size = 206300, upload-time = "2025-09-08T23:23:23.314Z" }, + { url = "https://files.pythonhosted.org/packages/47/d9/d83e293854571c877a92da46fdec39158f8d7e68da75bf73581225d28e90/cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:afb8db5439b81cf9c9d0c80404b60c3cc9c3add93e114dcae767f1477cb53775", size = 219244, upload-time = "2025-09-08T23:23:24.541Z" }, + { url = "https://files.pythonhosted.org/packages/2b/0f/1f177e3683aead2bb00f7679a16451d302c436b5cbf2505f0ea8146ef59e/cffi-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:737fe7d37e1a1bffe70bd5754ea763a62a066dc5913ca57e957824b72a85e205", size = 222828, upload-time = "2025-09-08T23:23:26.143Z" }, + { url = "https://files.pythonhosted.org/packages/c6/0f/cafacebd4b040e3119dcb32fed8bdef8dfe94da653155f9d0b9dc660166e/cffi-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:38100abb9d1b1435bc4cc340bb4489635dc2f0da7456590877030c9b3d40b0c1", size = 220926, upload-time = "2025-09-08T23:23:27.873Z" }, + { url = "https://files.pythonhosted.org/packages/3e/aa/df335faa45b395396fcbc03de2dfcab242cd61a9900e914fe682a59170b1/cffi-2.0.0-cp314-cp314-win32.whl", hash = "sha256:087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f", size = 175328, upload-time = "2025-09-08T23:23:44.61Z" }, + { url = "https://files.pythonhosted.org/packages/bb/92/882c2d30831744296ce713f0feb4c1cd30f346ef747b530b5318715cc367/cffi-2.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25", size = 185650, upload-time = "2025-09-08T23:23:45.848Z" }, + { url = "https://files.pythonhosted.org/packages/9f/2c/98ece204b9d35a7366b5b2c6539c350313ca13932143e79dc133ba757104/cffi-2.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad", size = 180687, upload-time = "2025-09-08T23:23:47.105Z" }, + { url = "https://files.pythonhosted.org/packages/3e/61/c768e4d548bfa607abcda77423448df8c471f25dbe64fb2ef6d555eae006/cffi-2.0.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9a67fc9e8eb39039280526379fb3a70023d77caec1852002b4da7e8b270c4dd9", size = 188773, upload-time = "2025-09-08T23:23:29.347Z" }, + { url = "https://files.pythonhosted.org/packages/2c/ea/5f76bce7cf6fcd0ab1a1058b5af899bfbef198bea4d5686da88471ea0336/cffi-2.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7a66c7204d8869299919db4d5069a82f1561581af12b11b3c9f48c584eb8743d", size = 185013, upload-time = "2025-09-08T23:23:30.63Z" }, + { url = "https://files.pythonhosted.org/packages/be/b4/c56878d0d1755cf9caa54ba71e5d049479c52f9e4afc230f06822162ab2f/cffi-2.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cc09976e8b56f8cebd752f7113ad07752461f48a58cbba644139015ac24954c", size = 221593, upload-time = "2025-09-08T23:23:31.91Z" }, + { url = "https://files.pythonhosted.org/packages/e0/0d/eb704606dfe8033e7128df5e90fee946bbcb64a04fcdaa97321309004000/cffi-2.0.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:92b68146a71df78564e4ef48af17551a5ddd142e5190cdf2c5624d0c3ff5b2e8", size = 209354, upload-time = "2025-09-08T23:23:33.214Z" }, + { url = "https://files.pythonhosted.org/packages/d8/19/3c435d727b368ca475fb8742ab97c9cb13a0de600ce86f62eab7fa3eea60/cffi-2.0.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b1e74d11748e7e98e2f426ab176d4ed720a64412b6a15054378afdb71e0f37dc", size = 208480, upload-time = "2025-09-08T23:23:34.495Z" }, + { url = "https://files.pythonhosted.org/packages/d0/44/681604464ed9541673e486521497406fadcc15b5217c3e326b061696899a/cffi-2.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:28a3a209b96630bca57cce802da70c266eb08c6e97e5afd61a75611ee6c64592", size = 221584, upload-time = "2025-09-08T23:23:36.096Z" }, + { url = "https://files.pythonhosted.org/packages/25/8e/342a504ff018a2825d395d44d63a767dd8ebc927ebda557fecdaca3ac33a/cffi-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7553fb2090d71822f02c629afe6042c299edf91ba1bf94951165613553984512", size = 224443, upload-time = "2025-09-08T23:23:37.328Z" }, + { url = "https://files.pythonhosted.org/packages/e1/5e/b666bacbbc60fbf415ba9988324a132c9a7a0448a9a8f125074671c0f2c3/cffi-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6c6c373cfc5c83a975506110d17457138c8c63016b563cc9ed6e056a82f13ce4", size = 223437, upload-time = "2025-09-08T23:23:38.945Z" }, + { url = "https://files.pythonhosted.org/packages/a0/1d/ec1a60bd1a10daa292d3cd6bb0b359a81607154fb8165f3ec95fe003b85c/cffi-2.0.0-cp314-cp314t-win32.whl", hash = "sha256:1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e", size = 180487, upload-time = "2025-09-08T23:23:40.423Z" }, + { url = "https://files.pythonhosted.org/packages/bf/41/4c1168c74fac325c0c8156f04b6749c8b6a8f405bbf91413ba088359f60d/cffi-2.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6", size = 191726, upload-time = "2025-09-08T23:23:41.742Z" }, + { url = "https://files.pythonhosted.org/packages/ae/3a/dbeec9d1ee0844c679f6bb5d6ad4e9f198b1224f4e7a32825f47f6192b0c/cffi-2.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9", size = 184195, upload-time = "2025-09-08T23:23:43.004Z" }, +] + +[[package]] +name = "click" +version = "8.3.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/57/75/31212c6bf2503fdf920d87fee5d7a86a2e3bcf444984126f13d8e4016804/click-8.3.2.tar.gz", hash = "sha256:14162b8b3b3550a7d479eafa77dfd3c38d9dc8951f6f69c78913a8f9a7540fd5", size = 302856, upload-time = "2026-04-03T19:14:45.118Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e4/20/71885d8b97d4f3dde17b1fdb92dbd4908b00541c5a3379787137285f602e/click-8.3.2-py3-none-any.whl", hash = "sha256:1924d2c27c5653561cd2cae4548d1406039cb79b858b747cfea24924bbc1616d", size = 108379, upload-time = "2026-04-03T19:14:43.505Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "cryptography" +version = "46.0.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/47/93/ac8f3d5ff04d54bc814e961a43ae5b0b146154c89c61b47bb07557679b18/cryptography-46.0.7.tar.gz", hash = "sha256:e4cfd68c5f3e0bfdad0d38e023239b96a2fe84146481852dffbcca442c245aa5", size = 750652, upload-time = "2026-04-08T01:57:54.692Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/5d/4a8f770695d73be252331e60e526291e3df0c9b27556a90a6b47bccca4c2/cryptography-46.0.7-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:ea42cbe97209df307fdc3b155f1b6fa2577c0defa8f1f7d3be7d31d189108ad4", size = 7179869, upload-time = "2026-04-08T01:56:17.157Z" }, + { url = "https://files.pythonhosted.org/packages/5f/45/6d80dc379b0bbc1f9d1e429f42e4cb9e1d319c7a8201beffd967c516ea01/cryptography-46.0.7-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b36a4695e29fe69215d75960b22577197aca3f7a25b9cf9d165dcfe9d80bc325", size = 4275492, upload-time = "2026-04-08T01:56:19.36Z" }, + { url = "https://files.pythonhosted.org/packages/4a/9a/1765afe9f572e239c3469f2cb429f3ba7b31878c893b246b4b2994ffe2fe/cryptography-46.0.7-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5ad9ef796328c5e3c4ceed237a183f5d41d21150f972455a9d926593a1dcb308", size = 4426670, upload-time = "2026-04-08T01:56:21.415Z" }, + { url = "https://files.pythonhosted.org/packages/8f/3e/af9246aaf23cd4ee060699adab1e47ced3f5f7e7a8ffdd339f817b446462/cryptography-46.0.7-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:73510b83623e080a2c35c62c15298096e2a5dc8d51c3b4e1740211839d0dea77", size = 4280275, upload-time = "2026-04-08T01:56:23.539Z" }, + { url = "https://files.pythonhosted.org/packages/0f/54/6bbbfc5efe86f9d71041827b793c24811a017c6ac0fd12883e4caa86b8ed/cryptography-46.0.7-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:cbd5fb06b62bd0721e1170273d3f4d5a277044c47ca27ee257025146c34cbdd1", size = 4928402, upload-time = "2026-04-08T01:56:25.624Z" }, + { url = "https://files.pythonhosted.org/packages/2d/cf/054b9d8220f81509939599c8bdbc0c408dbd2bdd41688616a20731371fe0/cryptography-46.0.7-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:420b1e4109cc95f0e5700eed79908cef9268265c773d3a66f7af1eef53d409ef", size = 4459985, upload-time = "2026-04-08T01:56:27.309Z" }, + { url = "https://files.pythonhosted.org/packages/f9/46/4e4e9c6040fb01c7467d47217d2f882daddeb8828f7df800cb806d8a2288/cryptography-46.0.7-cp311-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:24402210aa54baae71d99441d15bb5a1919c195398a87b563df84468160a65de", size = 3990652, upload-time = "2026-04-08T01:56:29.095Z" }, + { url = "https://files.pythonhosted.org/packages/36/5f/313586c3be5a2fbe87e4c9a254207b860155a8e1f3cca99f9910008e7d08/cryptography-46.0.7-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:8a469028a86f12eb7d2fe97162d0634026d92a21f3ae0ac87ed1c4a447886c83", size = 4279805, upload-time = "2026-04-08T01:56:30.928Z" }, + { url = "https://files.pythonhosted.org/packages/69/33/60dfc4595f334a2082749673386a4d05e4f0cf4df8248e63b2c3437585f2/cryptography-46.0.7-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:9694078c5d44c157ef3162e3bf3946510b857df5a3955458381d1c7cfc143ddb", size = 4892883, upload-time = "2026-04-08T01:56:32.614Z" }, + { url = "https://files.pythonhosted.org/packages/c7/0b/333ddab4270c4f5b972f980adef4faa66951a4aaf646ca067af597f15563/cryptography-46.0.7-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:42a1e5f98abb6391717978baf9f90dc28a743b7d9be7f0751a6f56a75d14065b", size = 4459756, upload-time = "2026-04-08T01:56:34.306Z" }, + { url = "https://files.pythonhosted.org/packages/d2/14/633913398b43b75f1234834170947957c6b623d1701ffc7a9600da907e89/cryptography-46.0.7-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:91bbcb08347344f810cbe49065914fe048949648f6bd5c2519f34619142bbe85", size = 4410244, upload-time = "2026-04-08T01:56:35.977Z" }, + { url = "https://files.pythonhosted.org/packages/10/f2/19ceb3b3dc14009373432af0c13f46aa08e3ce334ec6eff13492e1812ccd/cryptography-46.0.7-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:5d1c02a14ceb9148cc7816249f64f623fbfee39e8c03b3650d842ad3f34d637e", size = 4674868, upload-time = "2026-04-08T01:56:38.034Z" }, + { url = "https://files.pythonhosted.org/packages/1a/bb/a5c213c19ee94b15dfccc48f363738633a493812687f5567addbcbba9f6f/cryptography-46.0.7-cp311-abi3-win32.whl", hash = "sha256:d23c8ca48e44ee015cd0a54aeccdf9f09004eba9fc96f38c911011d9ff1bd457", size = 3026504, upload-time = "2026-04-08T01:56:39.666Z" }, + { url = "https://files.pythonhosted.org/packages/2b/02/7788f9fefa1d060ca68717c3901ae7fffa21ee087a90b7f23c7a603c32ae/cryptography-46.0.7-cp311-abi3-win_amd64.whl", hash = "sha256:397655da831414d165029da9bc483bed2fe0e75dde6a1523ec2fe63f3c46046b", size = 3488363, upload-time = "2026-04-08T01:56:41.893Z" }, + { url = "https://files.pythonhosted.org/packages/7b/56/15619b210e689c5403bb0540e4cb7dbf11a6bf42e483b7644e471a2812b3/cryptography-46.0.7-cp314-cp314t-macosx_10_9_universal2.whl", hash = "sha256:d151173275e1728cf7839aaa80c34fe550c04ddb27b34f48c232193df8db5842", size = 7119671, upload-time = "2026-04-08T01:56:44Z" }, + { url = "https://files.pythonhosted.org/packages/74/66/e3ce040721b0b5599e175ba91ab08884c75928fbeb74597dd10ef13505d2/cryptography-46.0.7-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:db0f493b9181c7820c8134437eb8b0b4792085d37dbb24da050476ccb664e59c", size = 4268551, upload-time = "2026-04-08T01:56:46.071Z" }, + { url = "https://files.pythonhosted.org/packages/03/11/5e395f961d6868269835dee1bafec6a1ac176505a167f68b7d8818431068/cryptography-46.0.7-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ebd6daf519b9f189f85c479427bbd6e9c9037862cf8fe89ee35503bd209ed902", size = 4408887, upload-time = "2026-04-08T01:56:47.718Z" }, + { url = "https://files.pythonhosted.org/packages/40/53/8ed1cf4c3b9c8e611e7122fb56f1c32d09e1fff0f1d77e78d9ff7c82653e/cryptography-46.0.7-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:b7b412817be92117ec5ed95f880defe9cf18a832e8cafacf0a22337dc1981b4d", size = 4271354, upload-time = "2026-04-08T01:56:49.312Z" }, + { url = "https://files.pythonhosted.org/packages/50/46/cf71e26025c2e767c5609162c866a78e8a2915bbcfa408b7ca495c6140c4/cryptography-46.0.7-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:fbfd0e5f273877695cb93baf14b185f4878128b250cc9f8e617ea0c025dfb022", size = 4905845, upload-time = "2026-04-08T01:56:50.916Z" }, + { url = "https://files.pythonhosted.org/packages/c0/ea/01276740375bac6249d0a971ebdf6b4dc9ead0ee0a34ef3b5a88c1a9b0d4/cryptography-46.0.7-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:ffca7aa1d00cf7d6469b988c581598f2259e46215e0140af408966a24cf086ce", size = 4444641, upload-time = "2026-04-08T01:56:52.882Z" }, + { url = "https://files.pythonhosted.org/packages/3d/4c/7d258f169ae71230f25d9f3d06caabcff8c3baf0978e2b7d65e0acac3827/cryptography-46.0.7-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:60627cf07e0d9274338521205899337c5d18249db56865f943cbe753aa96f40f", size = 3967749, upload-time = "2026-04-08T01:56:54.597Z" }, + { url = "https://files.pythonhosted.org/packages/b5/2a/2ea0767cad19e71b3530e4cad9605d0b5e338b6a1e72c37c9c1ceb86c333/cryptography-46.0.7-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:80406c3065e2c55d7f49a9550fe0c49b3f12e5bfff5dedb727e319e1afb9bf99", size = 4270942, upload-time = "2026-04-08T01:56:56.416Z" }, + { url = "https://files.pythonhosted.org/packages/41/3d/fe14df95a83319af25717677e956567a105bb6ab25641acaa093db79975d/cryptography-46.0.7-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:c5b1ccd1239f48b7151a65bc6dd54bcfcc15e028c8ac126d3fada09db0e07ef1", size = 4871079, upload-time = "2026-04-08T01:56:58.31Z" }, + { url = "https://files.pythonhosted.org/packages/9c/59/4a479e0f36f8f378d397f4eab4c850b4ffb79a2f0d58704b8fa0703ddc11/cryptography-46.0.7-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:d5f7520159cd9c2154eb61eb67548ca05c5774d39e9c2c4339fd793fe7d097b2", size = 4443999, upload-time = "2026-04-08T01:57:00.508Z" }, + { url = "https://files.pythonhosted.org/packages/28/17/b59a741645822ec6d04732b43c5d35e4ef58be7bfa84a81e5ae6f05a1d33/cryptography-46.0.7-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:fcd8eac50d9138c1d7fc53a653ba60a2bee81a505f9f8850b6b2888555a45d0e", size = 4399191, upload-time = "2026-04-08T01:57:02.654Z" }, + { url = "https://files.pythonhosted.org/packages/59/6a/bb2e166d6d0e0955f1e9ff70f10ec4b2824c9cfcdb4da772c7dd69cc7d80/cryptography-46.0.7-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:65814c60f8cc400c63131584e3e1fad01235edba2614b61fbfbfa954082db0ee", size = 4655782, upload-time = "2026-04-08T01:57:04.592Z" }, + { url = "https://files.pythonhosted.org/packages/95/b6/3da51d48415bcb63b00dc17c2eff3a651b7c4fed484308d0f19b30e8cb2c/cryptography-46.0.7-cp314-cp314t-win32.whl", hash = "sha256:fdd1736fed309b4300346f88f74cd120c27c56852c3838cab416e7a166f67298", size = 3002227, upload-time = "2026-04-08T01:57:06.91Z" }, + { url = "https://files.pythonhosted.org/packages/32/a8/9f0e4ed57ec9cebe506e58db11ae472972ecb0c659e4d52bbaee80ca340a/cryptography-46.0.7-cp314-cp314t-win_amd64.whl", hash = "sha256:e06acf3c99be55aa3b516397fe42f5855597f430add9c17fa46bf2e0fb34c9bb", size = 3475332, upload-time = "2026-04-08T01:57:08.807Z" }, + { url = "https://files.pythonhosted.org/packages/a7/7f/cd42fc3614386bc0c12f0cb3c4ae1fc2bbca5c9662dfed031514911d513d/cryptography-46.0.7-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:462ad5cb1c148a22b2e3bcc5ad52504dff325d17daf5df8d88c17dda1f75f2a4", size = 7165618, upload-time = "2026-04-08T01:57:10.645Z" }, + { url = "https://files.pythonhosted.org/packages/a5/d0/36a49f0262d2319139d2829f773f1b97ef8aef7f97e6e5bd21455e5a8fb5/cryptography-46.0.7-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:84d4cced91f0f159a7ddacad249cc077e63195c36aac40b4150e7a57e84fffe7", size = 4270628, upload-time = "2026-04-08T01:57:12.885Z" }, + { url = "https://files.pythonhosted.org/packages/8a/6c/1a42450f464dda6ffbe578a911f773e54dd48c10f9895a23a7e88b3e7db5/cryptography-46.0.7-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:128c5edfe5e5938b86b03941e94fac9ee793a94452ad1365c9fc3f4f62216832", size = 4415405, upload-time = "2026-04-08T01:57:14.923Z" }, + { url = "https://files.pythonhosted.org/packages/9a/92/4ed714dbe93a066dc1f4b4581a464d2d7dbec9046f7c8b7016f5286329e2/cryptography-46.0.7-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:5e51be372b26ef4ba3de3c167cd3d1022934bc838ae9eaad7e644986d2a3d163", size = 4272715, upload-time = "2026-04-08T01:57:16.638Z" }, + { url = "https://files.pythonhosted.org/packages/b7/e6/a26b84096eddd51494bba19111f8fffe976f6a09f132706f8f1bf03f51f7/cryptography-46.0.7-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:cdf1a610ef82abb396451862739e3fc93b071c844399e15b90726ef7470eeaf2", size = 4918400, upload-time = "2026-04-08T01:57:19.021Z" }, + { url = "https://files.pythonhosted.org/packages/c7/08/ffd537b605568a148543ac3c2b239708ae0bd635064bab41359252ef88ed/cryptography-46.0.7-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:1d25aee46d0c6f1a501adcddb2d2fee4b979381346a78558ed13e50aa8a59067", size = 4450634, upload-time = "2026-04-08T01:57:21.185Z" }, + { url = "https://files.pythonhosted.org/packages/16/01/0cd51dd86ab5b9befe0d031e276510491976c3a80e9f6e31810cce46c4ad/cryptography-46.0.7-cp38-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:cdfbe22376065ffcf8be74dc9a909f032df19bc58a699456a21712d6e5eabfd0", size = 3985233, upload-time = "2026-04-08T01:57:22.862Z" }, + { url = "https://files.pythonhosted.org/packages/92/49/819d6ed3a7d9349c2939f81b500a738cb733ab62fbecdbc1e38e83d45e12/cryptography-46.0.7-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:abad9dac36cbf55de6eb49badd4016806b3165d396f64925bf2999bcb67837ba", size = 4271955, upload-time = "2026-04-08T01:57:24.814Z" }, + { url = "https://files.pythonhosted.org/packages/80/07/ad9b3c56ebb95ed2473d46df0847357e01583f4c52a85754d1a55e29e4d0/cryptography-46.0.7-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:935ce7e3cfdb53e3536119a542b839bb94ec1ad081013e9ab9b7cfd478b05006", size = 4879888, upload-time = "2026-04-08T01:57:26.88Z" }, + { url = "https://files.pythonhosted.org/packages/b8/c7/201d3d58f30c4c2bdbe9b03844c291feb77c20511cc3586daf7edc12a47b/cryptography-46.0.7-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:35719dc79d4730d30f1c2b6474bd6acda36ae2dfae1e3c16f2051f215df33ce0", size = 4449961, upload-time = "2026-04-08T01:57:29.068Z" }, + { url = "https://files.pythonhosted.org/packages/a5/ef/649750cbf96f3033c3c976e112265c33906f8e462291a33d77f90356548c/cryptography-46.0.7-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:7bbc6ccf49d05ac8f7d7b5e2e2c33830d4fe2061def88210a126d130d7f71a85", size = 4401696, upload-time = "2026-04-08T01:57:31.029Z" }, + { url = "https://files.pythonhosted.org/packages/41/52/a8908dcb1a389a459a29008c29966c1d552588d4ae6d43f3a1a4512e0ebe/cryptography-46.0.7-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a1529d614f44b863a7b480c6d000fe93b59acee9c82ffa027cfadc77521a9f5e", size = 4664256, upload-time = "2026-04-08T01:57:33.144Z" }, + { url = "https://files.pythonhosted.org/packages/4b/fa/f0ab06238e899cc3fb332623f337a7364f36f4bb3f2534c2bb95a35b132c/cryptography-46.0.7-cp38-abi3-win32.whl", hash = "sha256:f247c8c1a1fb45e12586afbb436ef21ff1e80670b2861a90353d9b025583d246", size = 3013001, upload-time = "2026-04-08T01:57:34.933Z" }, + { url = "https://files.pythonhosted.org/packages/d2/f1/00ce3bde3ca542d1acd8f8cfa38e446840945aa6363f9b74746394b14127/cryptography-46.0.7-cp38-abi3-win_amd64.whl", hash = "sha256:506c4ff91eff4f82bdac7633318a526b1d1309fc07ca76a3ad182cb5b686d6d3", size = 3472985, upload-time = "2026-04-08T01:57:36.714Z" }, +] + +[[package]] +name = "fastapi" +version = "0.135.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-doc" }, + { name = "pydantic" }, + { name = "starlette" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/e6/7adb4c5fa231e82c35b8f5741a9f2d055f520c29af5546fd70d3e8e1cd2e/fastapi-0.135.3.tar.gz", hash = "sha256:bd6d7caf1a2bdd8d676843cdcd2287729572a1ef524fc4d65c17ae002a1be654", size = 396524, upload-time = "2026-04-01T16:23:58.188Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/a4/5caa2de7f917a04ada20018eccf60d6cc6145b0199d55ca3711b0fc08312/fastapi-0.135.3-py3-none-any.whl", hash = "sha256:9b0f590c813acd13d0ab43dd8494138eb58e484bfac405db1f3187cfc5810d98", size = 117734, upload-time = "2026-04-01T16:23:59.328Z" }, +] + +[[package]] +name = "h11" +version = "0.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload-time = "2025-04-24T03:35:25.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, +] + +[[package]] +name = "idna" +version = "3.11" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582, upload-time = "2025-10-12T14:55:20.501Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload-time = "2025-10-12T14:55:18.883Z" }, +] + +[[package]] +name = "itsdangerous" +version = "2.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9c/cb/8ac0172223afbccb63986cc25049b154ecfb5e85932587206f42317be31d/itsdangerous-2.2.0.tar.gz", hash = "sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173", size = 54410, upload-time = "2024-04-16T21:28:15.614Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/96/92447566d16df59b2a776c0fb82dbc4d9e07cd95062562af01e408583fc4/itsdangerous-2.2.0-py3-none-any.whl", hash = "sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef", size = 16234, upload-time = "2024-04-16T21:28:14.499Z" }, +] + +[[package]] +name = "jinja2" +version = "3.1.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115, upload-time = "2025-03-05T20:05:02.478Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, +] + +[[package]] +name = "markupsafe" +version = "3.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313, upload-time = "2025-09-27T18:37:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5a/72/147da192e38635ada20e0a2e1a51cf8823d2119ce8883f7053879c2199b5/markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e", size = 11615, upload-time = "2025-09-27T18:36:30.854Z" }, + { url = "https://files.pythonhosted.org/packages/9a/81/7e4e08678a1f98521201c3079f77db69fb552acd56067661f8c2f534a718/markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce", size = 12020, upload-time = "2025-09-27T18:36:31.971Z" }, + { url = "https://files.pythonhosted.org/packages/1e/2c/799f4742efc39633a1b54a92eec4082e4f815314869865d876824c257c1e/markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d", size = 24332, upload-time = "2025-09-27T18:36:32.813Z" }, + { url = "https://files.pythonhosted.org/packages/3c/2e/8d0c2ab90a8c1d9a24f0399058ab8519a3279d1bd4289511d74e909f060e/markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d", size = 22947, upload-time = "2025-09-27T18:36:33.86Z" }, + { url = "https://files.pythonhosted.org/packages/2c/54/887f3092a85238093a0b2154bd629c89444f395618842e8b0c41783898ea/markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a", size = 21962, upload-time = "2025-09-27T18:36:35.099Z" }, + { url = "https://files.pythonhosted.org/packages/c9/2f/336b8c7b6f4a4d95e91119dc8521402461b74a485558d8f238a68312f11c/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b", size = 23760, upload-time = "2025-09-27T18:36:36.001Z" }, + { url = "https://files.pythonhosted.org/packages/32/43/67935f2b7e4982ffb50a4d169b724d74b62a3964bc1a9a527f5ac4f1ee2b/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f", size = 21529, upload-time = "2025-09-27T18:36:36.906Z" }, + { url = "https://files.pythonhosted.org/packages/89/e0/4486f11e51bbba8b0c041098859e869e304d1c261e59244baa3d295d47b7/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b", size = 23015, upload-time = "2025-09-27T18:36:37.868Z" }, + { url = "https://files.pythonhosted.org/packages/2f/e1/78ee7a023dac597a5825441ebd17170785a9dab23de95d2c7508ade94e0e/markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", size = 14540, upload-time = "2025-09-27T18:36:38.761Z" }, + { url = "https://files.pythonhosted.org/packages/aa/5b/bec5aa9bbbb2c946ca2733ef9c4ca91c91b6a24580193e891b5f7dbe8e1e/markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", size = 15105, upload-time = "2025-09-27T18:36:39.701Z" }, + { url = "https://files.pythonhosted.org/packages/e5/f1/216fc1bbfd74011693a4fd837e7026152e89c4bcf3e77b6692fba9923123/markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", size = 13906, upload-time = "2025-09-27T18:36:40.689Z" }, + { url = "https://files.pythonhosted.org/packages/38/2f/907b9c7bbba283e68f20259574b13d005c121a0fa4c175f9bed27c4597ff/markupsafe-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795", size = 11622, upload-time = "2025-09-27T18:36:41.777Z" }, + { url = "https://files.pythonhosted.org/packages/9c/d9/5f7756922cdd676869eca1c4e3c0cd0df60ed30199ffd775e319089cb3ed/markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219", size = 12029, upload-time = "2025-09-27T18:36:43.257Z" }, + { url = "https://files.pythonhosted.org/packages/00/07/575a68c754943058c78f30db02ee03a64b3c638586fba6a6dd56830b30a3/markupsafe-3.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6", size = 24374, upload-time = "2025-09-27T18:36:44.508Z" }, + { url = "https://files.pythonhosted.org/packages/a9/21/9b05698b46f218fc0e118e1f8168395c65c8a2c750ae2bab54fc4bd4e0e8/markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676", size = 22980, upload-time = "2025-09-27T18:36:45.385Z" }, + { url = "https://files.pythonhosted.org/packages/7f/71/544260864f893f18b6827315b988c146b559391e6e7e8f7252839b1b846a/markupsafe-3.0.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9", size = 21990, upload-time = "2025-09-27T18:36:46.916Z" }, + { url = "https://files.pythonhosted.org/packages/c2/28/b50fc2f74d1ad761af2f5dcce7492648b983d00a65b8c0e0cb457c82ebbe/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1", size = 23784, upload-time = "2025-09-27T18:36:47.884Z" }, + { url = "https://files.pythonhosted.org/packages/ed/76/104b2aa106a208da8b17a2fb72e033a5a9d7073c68f7e508b94916ed47a9/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc", size = 21588, upload-time = "2025-09-27T18:36:48.82Z" }, + { url = "https://files.pythonhosted.org/packages/b5/99/16a5eb2d140087ebd97180d95249b00a03aa87e29cc224056274f2e45fd6/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12", size = 23041, upload-time = "2025-09-27T18:36:49.797Z" }, + { url = "https://files.pythonhosted.org/packages/19/bc/e7140ed90c5d61d77cea142eed9f9c303f4c4806f60a1044c13e3f1471d0/markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", size = 14543, upload-time = "2025-09-27T18:36:51.584Z" }, + { url = "https://files.pythonhosted.org/packages/05/73/c4abe620b841b6b791f2edc248f556900667a5a1cf023a6646967ae98335/markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", size = 15113, upload-time = "2025-09-27T18:36:52.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/3a/fa34a0f7cfef23cf9500d68cb7c32dd64ffd58a12b09225fb03dd37d5b80/markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", size = 13911, upload-time = "2025-09-27T18:36:53.513Z" }, + { url = "https://files.pythonhosted.org/packages/e4/d7/e05cd7efe43a88a17a37b3ae96e79a19e846f3f456fe79c57ca61356ef01/markupsafe-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73", size = 11658, upload-time = "2025-09-27T18:36:54.819Z" }, + { url = "https://files.pythonhosted.org/packages/99/9e/e412117548182ce2148bdeacdda3bb494260c0b0184360fe0d56389b523b/markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37", size = 12066, upload-time = "2025-09-27T18:36:55.714Z" }, + { url = "https://files.pythonhosted.org/packages/bc/e6/fa0ffcda717ef64a5108eaa7b4f5ed28d56122c9a6d70ab8b72f9f715c80/markupsafe-3.0.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19", size = 25639, upload-time = "2025-09-27T18:36:56.908Z" }, + { url = "https://files.pythonhosted.org/packages/96/ec/2102e881fe9d25fc16cb4b25d5f5cde50970967ffa5dddafdb771237062d/markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025", size = 23569, upload-time = "2025-09-27T18:36:57.913Z" }, + { url = "https://files.pythonhosted.org/packages/4b/30/6f2fce1f1f205fc9323255b216ca8a235b15860c34b6798f810f05828e32/markupsafe-3.0.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6", size = 23284, upload-time = "2025-09-27T18:36:58.833Z" }, + { url = "https://files.pythonhosted.org/packages/58/47/4a0ccea4ab9f5dcb6f79c0236d954acb382202721e704223a8aafa38b5c8/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f", size = 24801, upload-time = "2025-09-27T18:36:59.739Z" }, + { url = "https://files.pythonhosted.org/packages/6a/70/3780e9b72180b6fecb83a4814d84c3bf4b4ae4bf0b19c27196104149734c/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb", size = 22769, upload-time = "2025-09-27T18:37:00.719Z" }, + { url = "https://files.pythonhosted.org/packages/98/c5/c03c7f4125180fc215220c035beac6b9cb684bc7a067c84fc69414d315f5/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009", size = 23642, upload-time = "2025-09-27T18:37:01.673Z" }, + { url = "https://files.pythonhosted.org/packages/80/d6/2d1b89f6ca4bff1036499b1e29a1d02d282259f3681540e16563f27ebc23/markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", size = 14612, upload-time = "2025-09-27T18:37:02.639Z" }, + { url = "https://files.pythonhosted.org/packages/2b/98/e48a4bfba0a0ffcf9925fe2d69240bfaa19c6f7507b8cd09c70684a53c1e/markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", size = 15200, upload-time = "2025-09-27T18:37:03.582Z" }, + { url = "https://files.pythonhosted.org/packages/0e/72/e3cc540f351f316e9ed0f092757459afbc595824ca724cbc5a5d4263713f/markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", size = 13973, upload-time = "2025-09-27T18:37:04.929Z" }, + { url = "https://files.pythonhosted.org/packages/33/8a/8e42d4838cd89b7dde187011e97fe6c3af66d8c044997d2183fbd6d31352/markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe", size = 11619, upload-time = "2025-09-27T18:37:06.342Z" }, + { url = "https://files.pythonhosted.org/packages/b5/64/7660f8a4a8e53c924d0fa05dc3a55c9cee10bbd82b11c5afb27d44b096ce/markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026", size = 12029, upload-time = "2025-09-27T18:37:07.213Z" }, + { url = "https://files.pythonhosted.org/packages/da/ef/e648bfd021127bef5fa12e1720ffed0c6cbb8310c8d9bea7266337ff06de/markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737", size = 24408, upload-time = "2025-09-27T18:37:09.572Z" }, + { url = "https://files.pythonhosted.org/packages/41/3c/a36c2450754618e62008bf7435ccb0f88053e07592e6028a34776213d877/markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97", size = 23005, upload-time = "2025-09-27T18:37:10.58Z" }, + { url = "https://files.pythonhosted.org/packages/bc/20/b7fdf89a8456b099837cd1dc21974632a02a999ec9bf7ca3e490aacd98e7/markupsafe-3.0.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d", size = 22048, upload-time = "2025-09-27T18:37:11.547Z" }, + { url = "https://files.pythonhosted.org/packages/9a/a7/591f592afdc734f47db08a75793a55d7fbcc6902a723ae4cfbab61010cc5/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda", size = 23821, upload-time = "2025-09-27T18:37:12.48Z" }, + { url = "https://files.pythonhosted.org/packages/7d/33/45b24e4f44195b26521bc6f1a82197118f74df348556594bd2262bda1038/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf", size = 21606, upload-time = "2025-09-27T18:37:13.485Z" }, + { url = "https://files.pythonhosted.org/packages/ff/0e/53dfaca23a69fbfbbf17a4b64072090e70717344c52eaaaa9c5ddff1e5f0/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe", size = 23043, upload-time = "2025-09-27T18:37:14.408Z" }, + { url = "https://files.pythonhosted.org/packages/46/11/f333a06fc16236d5238bfe74daccbca41459dcd8d1fa952e8fbd5dccfb70/markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9", size = 14747, upload-time = "2025-09-27T18:37:15.36Z" }, + { url = "https://files.pythonhosted.org/packages/28/52/182836104b33b444e400b14f797212f720cbc9ed6ba34c800639d154e821/markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581", size = 15341, upload-time = "2025-09-27T18:37:16.496Z" }, + { url = "https://files.pythonhosted.org/packages/6f/18/acf23e91bd94fd7b3031558b1f013adfa21a8e407a3fdb32745538730382/markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4", size = 14073, upload-time = "2025-09-27T18:37:17.476Z" }, + { url = "https://files.pythonhosted.org/packages/3c/f0/57689aa4076e1b43b15fdfa646b04653969d50cf30c32a102762be2485da/markupsafe-3.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab", size = 11661, upload-time = "2025-09-27T18:37:18.453Z" }, + { url = "https://files.pythonhosted.org/packages/89/c3/2e67a7ca217c6912985ec766c6393b636fb0c2344443ff9d91404dc4c79f/markupsafe-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175", size = 12069, upload-time = "2025-09-27T18:37:19.332Z" }, + { url = "https://files.pythonhosted.org/packages/f0/00/be561dce4e6ca66b15276e184ce4b8aec61fe83662cce2f7d72bd3249d28/markupsafe-3.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634", size = 25670, upload-time = "2025-09-27T18:37:20.245Z" }, + { url = "https://files.pythonhosted.org/packages/50/09/c419f6f5a92e5fadde27efd190eca90f05e1261b10dbd8cbcb39cd8ea1dc/markupsafe-3.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50", size = 23598, upload-time = "2025-09-27T18:37:21.177Z" }, + { url = "https://files.pythonhosted.org/packages/22/44/a0681611106e0b2921b3033fc19bc53323e0b50bc70cffdd19f7d679bb66/markupsafe-3.0.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e", size = 23261, upload-time = "2025-09-27T18:37:22.167Z" }, + { url = "https://files.pythonhosted.org/packages/5f/57/1b0b3f100259dc9fffe780cfb60d4be71375510e435efec3d116b6436d43/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5", size = 24835, upload-time = "2025-09-27T18:37:23.296Z" }, + { url = "https://files.pythonhosted.org/packages/26/6a/4bf6d0c97c4920f1597cc14dd720705eca0bf7c787aebc6bb4d1bead5388/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523", size = 22733, upload-time = "2025-09-27T18:37:24.237Z" }, + { url = "https://files.pythonhosted.org/packages/14/c7/ca723101509b518797fedc2fdf79ba57f886b4aca8a7d31857ba3ee8281f/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc", size = 23672, upload-time = "2025-09-27T18:37:25.271Z" }, + { url = "https://files.pythonhosted.org/packages/fb/df/5bd7a48c256faecd1d36edc13133e51397e41b73bb77e1a69deab746ebac/markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", size = 14819, upload-time = "2025-09-27T18:37:26.285Z" }, + { url = "https://files.pythonhosted.org/packages/1a/8a/0402ba61a2f16038b48b39bccca271134be00c5c9f0f623208399333c448/markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", size = 15426, upload-time = "2025-09-27T18:37:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/70/bc/6f1c2f612465f5fa89b95bead1f44dcb607670fd42891d8fdcd5d039f4f4/markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", size = 14146, upload-time = "2025-09-27T18:37:28.327Z" }, +] + +[[package]] +name = "pycparser" +version = "3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1b/7d/92392ff7815c21062bea51aa7b87d45576f649f16458d78b7cf94b9ab2e6/pycparser-3.0.tar.gz", hash = "sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29", size = 103492, upload-time = "2026-01-21T14:26:51.89Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl", hash = "sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992", size = 48172, upload-time = "2026-01-21T14:26:50.693Z" }, +] + +[[package]] +name = "pydantic" +version = "2.13.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/84/6b/69fd5c7194b21ebde0f8637e2a4ddc766ada29d472bfa6a5ca533d79549a/pydantic-2.13.0.tar.gz", hash = "sha256:b89b575b6e670ebf6e7448c01b41b244f471edd276cd0b6fe02e7e7aca320070", size = 843468, upload-time = "2026-04-13T10:51:35.571Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/01/d7/c3a52c61f5b7be648e919005820fbac33028c6149994cd64453f49951c17/pydantic-2.13.0-py3-none-any.whl", hash = "sha256:ab0078b90da5f3e2fd2e71e3d9b457ddcb35d0350854fbda93b451e28d56baaf", size = 471872, upload-time = "2026-04-13T10:51:33.343Z" }, +] + +[[package]] +name = "pydantic-core" +version = "2.46.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6f/0a/9414cddf82eda3976b14048cc0fa8f5b5d1aecb0b22e1dcd2dbfe0e139b1/pydantic_core-2.46.0.tar.gz", hash = "sha256:82d2498c96be47b47e903e1378d1d0f770097ec56ea953322f39936a7cf34977", size = 471441, upload-time = "2026-04-13T09:06:33.813Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/d2/206c72ad47071559142a35f71efc29eb16448a4a5ae9487230ab8e4e292b/pydantic_core-2.46.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:66ccedb02c934622612448489824955838a221b3a35875458970521ef17b2f9c", size = 2117060, upload-time = "2026-04-13T09:04:47.443Z" }, + { url = "https://files.pythonhosted.org/packages/17/2c/7a53b33f91c8b77e696b1a6aa3bed609bf9374bdc0f8dcda681bc7d922b8/pydantic_core-2.46.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a44f27f4d2788ef9876ec47a43739b118c5904d74f418f53398f6ced3bbcacf2", size = 1951802, upload-time = "2026-04-13T09:05:34.591Z" }, + { url = "https://files.pythonhosted.org/packages/fc/20/90e548c1f6d38800ef11c915881525770ce270d8e5e887563ff046a08674/pydantic_core-2.46.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f26a1032bcce6ca4b4670eb3f7d8195bd0a8b8f255f1307823e217ca3cfa7c27", size = 1976621, upload-time = "2026-04-13T09:04:03.909Z" }, + { url = "https://files.pythonhosted.org/packages/20/3c/9c5810ca70b60c623488cdd80f7e9ee1a0812df81e97098b64788719860f/pydantic_core-2.46.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1b8d1412f725060527e56675904b17a2d421dddcf861eecf7c75b9dda47921a4", size = 2056721, upload-time = "2026-04-13T09:04:40.992Z" }, + { url = "https://files.pythonhosted.org/packages/1a/a3/d6e5f4cdec84278431c75540f90838c9d0a4dfe9402a8f3902073660ff28/pydantic_core-2.46.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dc3d1569edd859cabaa476cabce9eecd05049a7966af7b4a33b541bfd4ca1104", size = 2239634, upload-time = "2026-04-13T09:03:52.478Z" }, + { url = "https://files.pythonhosted.org/packages/46/42/ef58aacf330d8de6e309d62469aa1f80e945eaf665929b4037ac1bfcebc1/pydantic_core-2.46.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:38108976f2d8afaa8f5067fd1390a8c9f5cc580175407cda636e76bc76e88054", size = 2315739, upload-time = "2026-04-13T09:05:04.971Z" }, + { url = "https://files.pythonhosted.org/packages/8b/86/c63b12fafa2d86a515bfd1840b39c23a49302f02b653161bf9c3a0566c50/pydantic_core-2.46.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a5a06d8ed01dad5575056b5187e5959b336793c6047920a3441ee5b03533836", size = 2098169, upload-time = "2026-04-13T09:07:27.151Z" }, + { url = "https://files.pythonhosted.org/packages/76/19/b5b33a2f6be4755b21a20434293c4364be255f4c1a108f125d101d4cc4ee/pydantic_core-2.46.0-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:04017ace142da9ce27cafd423a480872571b5c7e80382aec22f7d715ca8eb870", size = 2170830, upload-time = "2026-04-13T09:04:39.448Z" }, + { url = "https://files.pythonhosted.org/packages/99/ae/7559f99a29b7d440012ddb4da897359304988a881efaca912fd2f655652e/pydantic_core-2.46.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2629ad992ed1b1c012e6067f5ffafd3336fcb9b54569449fabb85621f1444ed3", size = 2203901, upload-time = "2026-04-13T09:04:01.048Z" }, + { url = "https://files.pythonhosted.org/packages/dd/0e/b0ef945a39aeb4ac58da316813e1106b7fbdfbf20ac141c1c27904355ac5/pydantic_core-2.46.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3068b1e7bd986aebc88f6859f8353e72072538dcf92a7fb9cf511a0f61c5e729", size = 2191789, upload-time = "2026-04-13T09:06:39.915Z" }, + { url = "https://files.pythonhosted.org/packages/90/f4/830484e07188c1236b013995818888ab93bab8fd88aa9689b1d8fd22220d/pydantic_core-2.46.0-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:1e366916ff69ff700aa9326601634e688581bc24c5b6b4f8738d809ec7d72611", size = 2344423, upload-time = "2026-04-13T09:05:12.252Z" }, + { url = "https://files.pythonhosted.org/packages/fd/ba/e455c18cbdc333177af754e740be4fe9d1de173d65bbe534daf88da02ac0/pydantic_core-2.46.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:485a23e8f4618a1b8e23ac744180acde283fffe617f96923d25507d5cade62ec", size = 2384037, upload-time = "2026-04-13T09:06:24.503Z" }, + { url = "https://files.pythonhosted.org/packages/78/1f/b35d20d73144a41e78de0ae398e60fdd8bed91667daa1a5a92ab958551ba/pydantic_core-2.46.0-cp312-cp312-win32.whl", hash = "sha256:520940e1b702fe3b33525d0351777f25e9924f1818ca7956447dabacf2d339fd", size = 1967068, upload-time = "2026-04-13T09:05:23.374Z" }, + { url = "https://files.pythonhosted.org/packages/d1/84/4b6252e9606e8295647b848233cc4137ee0a04ebba8f0f9fb2977655b38c/pydantic_core-2.46.0-cp312-cp312-win_amd64.whl", hash = "sha256:90d2048e0339fa365e5a66aefe760ddd3b3d0a45501e088bc5bc7f4ed9ff9571", size = 2071008, upload-time = "2026-04-13T09:05:21.392Z" }, + { url = "https://files.pythonhosted.org/packages/39/95/d08eb508d4d5560ccbd226ee5971e5ef9b749aba9b413c0c4ed6e406d4f6/pydantic_core-2.46.0-cp312-cp312-win_arm64.whl", hash = "sha256:a70247649b7dffe36648e8f34be5ce8c5fa0a27ff07b071ea780c20a738c05ce", size = 2036634, upload-time = "2026-04-13T09:05:48.299Z" }, + { url = "https://files.pythonhosted.org/packages/df/05/ab3b0742bad1d51822f1af0c4232208408902bdcfc47601f3b812e09e6c2/pydantic_core-2.46.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:a05900c37264c070c683c650cbca8f83d7cbb549719e645fcd81a24592eac788", size = 2116814, upload-time = "2026-04-13T09:04:12.41Z" }, + { url = "https://files.pythonhosted.org/packages/98/08/30b43d9569d69094a0899a199711c43aa58fce6ce80f6a8f7693673eb995/pydantic_core-2.46.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8de8e482fd4f1e3f36c50c6aac46d044462615d8f12cfafc6bebeaa0909eea22", size = 1951867, upload-time = "2026-04-13T09:04:02.364Z" }, + { url = "https://files.pythonhosted.org/packages/db/a0/bf9a1ba34537c2ed3872a48195291138fdec8fe26c4009776f00d63cf0c8/pydantic_core-2.46.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c525ecf8a4cdf198327b65030a7d081867ad8e60acb01a7214fff95cf9832d47", size = 1977040, upload-time = "2026-04-13T09:06:16.088Z" }, + { url = "https://files.pythonhosted.org/packages/71/70/0ba03c20e1e118219fc18c5417b008b7e880f0e3fb38560ec4465984d471/pydantic_core-2.46.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f14581aeb12e61542ce73b9bfef2bca5439d65d9ab3efe1a4d8e346b61838f9b", size = 2055284, upload-time = "2026-04-13T09:05:25.125Z" }, + { url = "https://files.pythonhosted.org/packages/58/cf/1e320acefbde7fb7158a9e5def55e0adf9a4634636098ce28dc6b978e0d3/pydantic_core-2.46.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c108067f2f7e190d0dbd81247d789ec41f9ea50ccd9265a3a46710796ac60530", size = 2238896, upload-time = "2026-04-13T09:05:01.345Z" }, + { url = "https://files.pythonhosted.org/packages/df/f5/ea8ba209756abe9eba891bb0ef3772b4c59a894eb9ad86cd5bd0dd4e3e52/pydantic_core-2.46.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1ac10967e9a7bb1b96697374513f9a1a90a59e2fb41566b5e00ee45392beac59", size = 2314353, upload-time = "2026-04-13T09:06:07.942Z" }, + { url = "https://files.pythonhosted.org/packages/e8/f8/5885350203b72e96438eee7f94de0d8f0442f4627237ca8ef75de34db1cd/pydantic_core-2.46.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7897078fe8a13b73623c0955dfb2b3d2c9acb7177aac25144758c9e5a5265aaa", size = 2098522, upload-time = "2026-04-13T09:04:23.239Z" }, + { url = "https://files.pythonhosted.org/packages/bf/88/5930b0e828e371db5a556dd3189565417ddc3d8316bb001058168aadcf5f/pydantic_core-2.46.0-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:e69ce405510a419a082a78faed65bb4249cfb51232293cc675645c12f7379bf7", size = 2168757, upload-time = "2026-04-13T09:07:12.46Z" }, + { url = "https://files.pythonhosted.org/packages/da/75/63d563d3035a0548e721c38b5b69fd5626fdd51da0f09ff4467503915b82/pydantic_core-2.46.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fd28d13eea0d8cf351dc1fe274b5070cc8e1cca2644381dee5f99de629e77cf3", size = 2202518, upload-time = "2026-04-13T09:05:44.418Z" }, + { url = "https://files.pythonhosted.org/packages/a7/53/1958eacbfddc41aadf5ae86dd85041bf054b675f34a2fa76385935f96070/pydantic_core-2.46.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:ee1547a6b8243e73dd10f585555e5a263395e55ce6dea618a078570a1e889aef", size = 2190148, upload-time = "2026-04-13T09:06:56.151Z" }, + { url = "https://files.pythonhosted.org/packages/c7/17/098cc6d3595e4623186f2bc6604a6195eb182e126702a90517236391e9ce/pydantic_core-2.46.0-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:c3dc68dcf62db22a18ddfc3ad4960038f72b75908edc48ae014d7ac8b391d57a", size = 2342925, upload-time = "2026-04-13T09:04:17.286Z" }, + { url = "https://files.pythonhosted.org/packages/71/a7/abdb924620b1ac535c690b36ad5b8871f376104090f8842c08625cecf1d3/pydantic_core-2.46.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:004a2081c881abfcc6854a4623da6a09090a0d7c1398a6ae7133ca1256cee70b", size = 2383167, upload-time = "2026-04-13T09:04:52.643Z" }, + { url = "https://files.pythonhosted.org/packages/d7/c9/2ddd10f50e4b7350d2574629a0f53d8d4eb6573f9c19a6b43e6b1487a31d/pydantic_core-2.46.0-cp313-cp313-win32.whl", hash = "sha256:59d24ec8d5eaabad93097525a69d0f00f2667cb353eb6cda578b1cfff203ceef", size = 1965660, upload-time = "2026-04-13T09:06:05.877Z" }, + { url = "https://files.pythonhosted.org/packages/b5/e7/1efc38ed6f2680c032bcefa0e3ebd496a8c77e92dfdb86b07d0f2fc632b1/pydantic_core-2.46.0-cp313-cp313-win_amd64.whl", hash = "sha256:71186dad5ac325c64d68fe0e654e15fd79802e7cc42bc6f0ff822d5ad8b1ab25", size = 2069563, upload-time = "2026-04-13T09:07:14.738Z" }, + { url = "https://files.pythonhosted.org/packages/c3/1e/a325b4989e742bf7e72ed35fa124bc611fd76539c9f8cd2a9a7854473533/pydantic_core-2.46.0-cp313-cp313-win_arm64.whl", hash = "sha256:8e4503f3213f723842c9a3b53955c88a9cfbd0b288cbd1c1ae933aebeec4a1b4", size = 2034966, upload-time = "2026-04-13T09:04:21.629Z" }, + { url = "https://files.pythonhosted.org/packages/36/3b/914891d384cdbf9a6f464eb13713baa22ea1e453d4da80fb7da522079370/pydantic_core-2.46.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:4fc801c290342350ffc82d77872054a934b2e24163727263362170c1db5416ca", size = 2113349, upload-time = "2026-04-13T09:04:59.407Z" }, + { url = "https://files.pythonhosted.org/packages/35/95/3a0c6f65e231709fb3463e32943c69d10285cb50203a2130a4732053a06d/pydantic_core-2.46.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0a36f2cc88170cc177930afcc633a8c15907ea68b59ac16bd180c2999d714940", size = 1949170, upload-time = "2026-04-13T09:06:09.935Z" }, + { url = "https://files.pythonhosted.org/packages/d1/63/d845c36a608469fe7bee226edeff0984c33dbfe7aecd755b0e7ab5a275c4/pydantic_core-2.46.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2a3912e0c568a1f99d4d6d3e41def40179d61424c0ca1c8c87c4877d7f6fd7fb", size = 1977914, upload-time = "2026-04-13T09:04:56.16Z" }, + { url = "https://files.pythonhosted.org/packages/08/6f/f2e7a7f85931fb31671f5378d1c7fc70606e4b36d59b1b48e1bd1ef5d916/pydantic_core-2.46.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3534c3415ed1a19ab23096b628916a827f7858ec8db49ad5d7d1e44dc13c0d7b", size = 2050538, upload-time = "2026-04-13T09:05:06.789Z" }, + { url = "https://files.pythonhosted.org/packages/8c/97/f4aa7181dd9a16dd9059a99fc48fdab0c2aab68307283a5c04cf56de68c4/pydantic_core-2.46.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:21067396fc285609323a4db2f63a87570044abe0acddfcca8b135fc7948e3db7", size = 2236294, upload-time = "2026-04-13T09:07:03.2Z" }, + { url = "https://files.pythonhosted.org/packages/24/c1/6a5042fc32765c87101b500f394702890af04239c318b6002cfd627b710d/pydantic_core-2.46.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2afd85b7be186e2fe7cdbb09a3d964bcc2042f65bbcc64ad800b3c7915032655", size = 2312954, upload-time = "2026-04-13T09:06:11.919Z" }, + { url = "https://files.pythonhosted.org/packages/cb/e4/566101a561492ce8454f0844ca29c3b675a6b3a7b3ff577db85ed05c8c50/pydantic_core-2.46.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:67e2c2e171b78db8154da602de72ffdc473c6ee51de8a9d80c0f1cd4051abfc7", size = 2102533, upload-time = "2026-04-13T09:06:58.664Z" }, + { url = "https://files.pythonhosted.org/packages/3e/ac/adc11ee1646a5c4dd9abb09a00e7909e6dc25beddc0b1310ca734bb9b48e/pydantic_core-2.46.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:c16ae1f3170267b1a37e16dba5c297bdf60c8b5657b147909ca8774ce7366644", size = 2169447, upload-time = "2026-04-13T09:04:11.143Z" }, + { url = "https://files.pythonhosted.org/packages/26/73/408e686b45b82d28ac19e8229e07282254dbee6a5d24c5c7cf3cf3716613/pydantic_core-2.46.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:133b69e1c1ba34d3702eed73f19f7f966928f9aa16663b55c2ebce0893cca42e", size = 2200672, upload-time = "2026-04-13T09:03:54.056Z" }, + { url = "https://files.pythonhosted.org/packages/0a/3b/807d5b035ec891b57b9079ce881f48263936c37bd0d154a056e7fd152afb/pydantic_core-2.46.0-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:15ed8e5bde505133d96b41702f31f06829c46b05488211a5b1c7877e11de5eb5", size = 2188293, upload-time = "2026-04-13T09:07:07.614Z" }, + { url = "https://files.pythonhosted.org/packages/f1/ed/719b307516285099d1196c52769fdbe676fd677da007b9c349ae70b7226d/pydantic_core-2.46.0-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:8cfc29a1c66a7f0fcb36262e92f353dd0b9c4061d558fceb022e698a801cb8ae", size = 2335023, upload-time = "2026-04-13T09:04:05.176Z" }, + { url = "https://files.pythonhosted.org/packages/8d/90/8718e4ae98c4e8a7325afdc079be82be1e131d7a47cb6c098844a9531ffe/pydantic_core-2.46.0-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:e1155708540f13845bf68d5ac511a55c76cfe2e057ed12b4bf3adac1581fc5c2", size = 2377155, upload-time = "2026-04-13T09:06:18.081Z" }, + { url = "https://files.pythonhosted.org/packages/dd/dc/7172789283b963f81da2fc92b186e22de55687019079f71c4d570822502b/pydantic_core-2.46.0-cp314-cp314-win32.whl", hash = "sha256:de5635a48df6b2eef161d10ea1bc2626153197333662ba4cd700ee7ec1aba7f5", size = 1963078, upload-time = "2026-04-13T09:05:30.615Z" }, + { url = "https://files.pythonhosted.org/packages/e0/69/03a7ea4b6264def3a44eabf577528bcec2f49468c5698b2044dea54dc07e/pydantic_core-2.46.0-cp314-cp314-win_amd64.whl", hash = "sha256:f07a5af60c5e7cf53dd1ff734228bd72d0dc9938e64a75b5bb308ca350d9681e", size = 2068439, upload-time = "2026-04-13T09:04:57.729Z" }, + { url = "https://files.pythonhosted.org/packages/f5/eb/1c3afcfdee2ab6634b802ab0a0f1966df4c8b630028ec56a1cb0a710dc58/pydantic_core-2.46.0-cp314-cp314-win_arm64.whl", hash = "sha256:e7a77eca3c7d5108ff509db20aae6f80d47c7ed7516d8b96c387aacc42f3ce0f", size = 2026470, upload-time = "2026-04-13T09:05:08.654Z" }, + { url = "https://files.pythonhosted.org/packages/5c/30/1177dde61b200785c4739665e3aa03a9d4b2c25d2d0408b07d585e633965/pydantic_core-2.46.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:5e7cdd4398bee1aaeafe049ac366b0f887451d9ae418fd8785219c13fea2f928", size = 2107447, upload-time = "2026-04-13T09:05:46.314Z" }, + { url = "https://files.pythonhosted.org/packages/b1/60/4e0f61f99bdabbbc309d364a2791e1ba31e778a4935bc43391a7bdec0744/pydantic_core-2.46.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5c2c92d82808e27cef3f7ab3ed63d657d0c755e0dbe5b8a58342e37bdf09bd2e", size = 1926927, upload-time = "2026-04-13T09:06:20.371Z" }, + { url = "https://files.pythonhosted.org/packages/1d/d0/67f89a8269152c1d6eaa81f04e75a507372ebd8ca7382855a065222caa80/pydantic_core-2.46.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bab80af91cd7014b45d1089303b5f844a9d91d7da60eabf3d5f9694b32a6655", size = 1966613, upload-time = "2026-04-13T09:07:05.389Z" }, + { url = "https://files.pythonhosted.org/packages/cd/07/8dfdc3edc78f29a80fb31f366c50203ec904cff6a4c923599bf50ac0d0ff/pydantic_core-2.46.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1e49ffdb714bc990f00b39d1ad1d683033875b5af15582f60c1f34ad3eeccfaa", size = 2032902, upload-time = "2026-04-13T09:06:42.47Z" }, + { url = "https://files.pythonhosted.org/packages/b0/2a/111c5e8fe24f99c46bcad7d3a82a8f6dbc738066e2c72c04c71f827d8c78/pydantic_core-2.46.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ca877240e8dbdeef3a66f751dc41e5a74893767d510c22a22fc5c0199844f0ce", size = 2244456, upload-time = "2026-04-13T09:05:36.484Z" }, + { url = "https://files.pythonhosted.org/packages/6b/7c/cfc5d11c15a63ece26e148572c77cfbb2c7f08d315a7b63ef0fe0711d753/pydantic_core-2.46.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87e6843f89ecd2f596d7294e33196c61343186255b9880c4f1b725fde8b0e20d", size = 2294535, upload-time = "2026-04-13T09:06:01.689Z" }, + { url = "https://files.pythonhosted.org/packages/c4/2c/f0d744e3dab7bd026a3f4670a97a295157cff923a2666d30a15a70a7e3d0/pydantic_core-2.46.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e20bc5add1dd9bc3b9a3600d40632e679376569098345500799a6ad7c5d46c72", size = 2104621, upload-time = "2026-04-13T09:04:34.388Z" }, + { url = "https://files.pythonhosted.org/packages/a7/64/e7cc4698dc024264d214b51d5a47a2404221b12060dd537d76f831b2120a/pydantic_core-2.46.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:ee6ff79a5f0289d64a9d6696a3ce1f98f925b803dd538335a118231e26d6d827", size = 2130718, upload-time = "2026-04-13T09:04:26.23Z" }, + { url = "https://files.pythonhosted.org/packages/0b/a8/224e655fec21f7d4441438ad2ecaccb33b5a3876ce7bb2098c74a49efc14/pydantic_core-2.46.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:52d35cfb58c26323101c7065508d7bb69bb56338cda9ea47a7b32be581af055d", size = 2180738, upload-time = "2026-04-13T09:05:50.253Z" }, + { url = "https://files.pythonhosted.org/packages/32/7b/b3025618ed4c4e4cbaa9882731c19625db6669896b621760ea95bc1125ef/pydantic_core-2.46.0-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:d14cc5a6f260fa78e124061eebc5769af6534fc837e9a62a47f09a2c341fa4ea", size = 2171222, upload-time = "2026-04-13T09:07:29.929Z" }, + { url = "https://files.pythonhosted.org/packages/7b/e3/68170aa1d891920af09c1f2f34df61dc5ff3a746400027155523e3400e89/pydantic_core-2.46.0-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:4f7ff859d663b6635f6307a10803d07f0d09487e16c3d36b1744af51dbf948b2", size = 2320040, upload-time = "2026-04-13T09:06:35.732Z" }, + { url = "https://files.pythonhosted.org/packages/67/1b/5e65807001b84972476300c1f49aea2b4971b7e9fffb5c2654877dadd274/pydantic_core-2.46.0-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:8ef749be6ed0d69dba31902aaa8255a9bb269ae50c93888c4df242d8bb7acd9e", size = 2377062, upload-time = "2026-04-13T09:07:39.945Z" }, + { url = "https://files.pythonhosted.org/packages/75/03/48caa9dd5f28f7662bd52bff454d9a451f6b7e5e4af95e289e5e170749c9/pydantic_core-2.46.0-cp314-cp314t-win32.whl", hash = "sha256:d93ca72870133f86360e4bb0c78cd4e6ba2a0f9f3738a6486909ffc031463b32", size = 1951028, upload-time = "2026-04-13T09:04:20.224Z" }, + { url = "https://files.pythonhosted.org/packages/87/ed/e97ff55fe28c0e6e3cba641d622b15e071370b70e5f07c496b07b65db7c9/pydantic_core-2.46.0-cp314-cp314t-win_amd64.whl", hash = "sha256:6ebb2668afd657e2127cb40f2ceb627dd78e74e9dfde14d9bf6cdd532a29ff59", size = 2048519, upload-time = "2026-04-13T09:05:10.464Z" }, + { url = "https://files.pythonhosted.org/packages/b6/51/e0db8267a287994546925f252e329eeae4121b1e77e76353418da5a3adf0/pydantic_core-2.46.0-cp314-cp314t-win_arm64.whl", hash = "sha256:4864f5bbb7993845baf9209bae1669a8a76769296a018cb569ebda9dcb4241f5", size = 2026791, upload-time = "2026-04-13T09:04:37.724Z" }, + { url = "https://files.pythonhosted.org/packages/74/0c/106ed5cc50393d90523f09adcc50d05e42e748eb107dc06aea971137f02d/pydantic_core-2.46.0-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:bc0e2fefe384152d7da85b5c2fe8ce2bf24752f68a58e3f3ea42e28a29dfdeb2", size = 2104968, upload-time = "2026-04-13T09:06:26.967Z" }, + { url = "https://files.pythonhosted.org/packages/f5/71/b494cef3165e3413ee9bbbb5a9eedc9af0ea7b88d8638beef6c2061b110e/pydantic_core-2.46.0-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:a2ab0e785548be1b4362a62c4004f9217598b7ee465f1f420fc2123e2a5b5b02", size = 1940442, upload-time = "2026-04-13T09:06:29.332Z" }, + { url = "https://files.pythonhosted.org/packages/7e/3e/a4d578c8216c443e26a1124f8c1e07c0654264ce5651143d3883d85ff140/pydantic_core-2.46.0-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:16d45aecb18b8cba1c68eeb17c2bb2d38627ceed04c5b30b882fc9134e01f187", size = 1999672, upload-time = "2026-04-13T09:04:42.798Z" }, + { url = "https://files.pythonhosted.org/packages/cd/c1/9114560468685525a21770138382fd0cb849aaf351ff2c7b97f760d121e0/pydantic_core-2.46.0-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5078f6c377b002428e984259ac327ef8902aacae6c14b7de740dd4869a491501", size = 2154533, upload-time = "2026-04-13T09:04:50.868Z" }, +] + +[[package]] +name = "python-dotenv" +version = "1.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/82/ed/0301aeeac3e5353ef3d94b6ec08bbcabd04a72018415dcb29e588514bba8/python_dotenv-1.2.2.tar.gz", hash = "sha256:2c371a91fbd7ba082c2c1dc1f8bf89ca22564a087c2c287cd9b662adde799cf3", size = 50135, upload-time = "2026-03-01T16:00:26.196Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl", hash = "sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a", size = 22101, upload-time = "2026-03-01T16:00:25.09Z" }, +] + +[[package]] +name = "python-multipart" +version = "0.0.26" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/88/71/b145a380824a960ebd60e1014256dbb7d2253f2316ff2d73dfd8928ec2c3/python_multipart-0.0.26.tar.gz", hash = "sha256:08fadc45918cd615e26846437f50c5d6d23304da32c341f289a617127b081f17", size = 43501, upload-time = "2026-04-10T14:09:59.473Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/22/f1925cdda983ab66fc8ec6ec8014b959262747e58bdca26a4e3d1da29d56/python_multipart-0.0.26-py3-none-any.whl", hash = "sha256:c0b169f8c4484c13b0dcf2ef0ec3a4adb255c4b7d18d8e420477d2b1dd03f185", size = 28847, upload-time = "2026-04-10T14:09:58.131Z" }, +] + +[[package]] +name = "secuvault" +version = "0.1.0" +source = { virtual = "." } +dependencies = [ + { name = "bcrypt" }, + { name = "cryptography" }, + { name = "fastapi" }, + { name = "itsdangerous" }, + { name = "jinja2" }, + { name = "python-dotenv" }, + { name = "python-multipart" }, + { name = "uvicorn" }, +] + +[package.metadata] +requires-dist = [ + { name = "bcrypt", specifier = ">=5.0.0" }, + { name = "cryptography", specifier = ">=46.0.7" }, + { name = "fastapi", specifier = ">=0.135.3" }, + { name = "itsdangerous", specifier = ">=2.2.0" }, + { name = "jinja2", specifier = ">=3.1.6" }, + { name = "python-dotenv", specifier = ">=1.0.0" }, + { name = "python-multipart", specifier = ">=0.0.26" }, + { name = "uvicorn", specifier = ">=0.44.0" }, +] + +[[package]] +name = "starlette" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/81/69/17425771797c36cded50b7fe44e850315d039f28b15901ab44839e70b593/starlette-1.0.0.tar.gz", hash = "sha256:6a4beaf1f81bb472fd19ea9b918b50dc3a77a6f2e190a12954b25e6ed5eea149", size = 2655289, upload-time = "2026-03-22T18:29:46.779Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl", hash = "sha256:d3ec55e0bb321692d275455ddfd3df75fff145d009685eb40dc91fc66b03d38b", size = 72651, upload-time = "2026-03-22T18:29:45.111Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, +] + +[[package]] +name = "typing-inspection" +version = "0.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949, upload-time = "2025-10-01T02:14:41.687Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload-time = "2025-10-01T02:14:40.154Z" }, +] + +[[package]] +name = "uvicorn" +version = "0.44.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5e/da/6eee1ff8b6cbeed47eeb5229749168e81eb4b7b999a1a15a7176e51410c9/uvicorn-0.44.0.tar.gz", hash = "sha256:6c942071b68f07e178264b9152f1f16dfac5da85880c4ce06366a96d70d4f31e", size = 86947, upload-time = "2026-04-06T09:23:22.826Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/23/a5bbd9600dd607411fa644c06ff4951bec3a4d82c4b852374024359c19c0/uvicorn-0.44.0-py3-none-any.whl", hash = "sha256:ce937c99a2cc70279556967274414c087888e8cec9f9c94644dfca11bd3ced89", size = 69425, upload-time = "2026-04-06T09:23:21.524Z" }, +] diff --git a/Semaine_08/shopflow/.python-version b/Semaine_08/shopflow/.python-version new file mode 100644 index 0000000..e4fba21 --- /dev/null +++ b/Semaine_08/shopflow/.python-version @@ -0,0 +1 @@ +3.12 diff --git a/Semaine_08/shopflow/README.md b/Semaine_08/shopflow/README.md new file mode 100644 index 0000000..e69de29 diff --git a/Semaine_08/shopflow/api-gateway/Dockerfile b/Semaine_08/shopflow/api-gateway/Dockerfile new file mode 100644 index 0000000..e0ef785 --- /dev/null +++ b/Semaine_08/shopflow/api-gateway/Dockerfile @@ -0,0 +1,9 @@ +FROM python:3.12-slim + +WORKDIR /app + +RUN pip install fastapi uvicorn httpx + +COPY main.py . + +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"] \ No newline at end of file diff --git a/Semaine_08/shopflow/api-gateway/main.py b/Semaine_08/shopflow/api-gateway/main.py new file mode 100644 index 0000000..16d5d1f --- /dev/null +++ b/Semaine_08/shopflow/api-gateway/main.py @@ -0,0 +1,66 @@ +import httpx +from fastapi import FastAPI, Request, Response + +app = FastAPI() + +SERVICES = { + "users": "http://user-service:8000", + "products": "http://catalog-service:8000", + "orders": "http://order-service:8000", + "notifications": "http://notif-service:8000", +} + +TIMEOUT = 5.0 + +@app.get("/health") +def health(): + return {"status": "ok", "service": "api-gateway"} + +@app.api_route("/{full_path:path}", methods=["GET", "POST", "PUT", "DELETE", "PATCH"]) +async def gateway(full_path: str, request: Request): + # Extraire le nom du service depuis le début du chemin + # ex: "users/1" → service="users", "orders" → service="orders" + parts = full_path.split("/", 1) + service_key = parts[0] + + base_url = SERVICES.get(service_key) + if not base_url: + return Response( + content=f'{{"detail": "Service \'{service_key}\' inconnu"}}', + status_code=404, + media_type="application/json", + ) + + target_url = f"{base_url}/{full_path}" + if request.url.query: + target_url += f"?{request.url.query}" + + body = await request.body() + + async with httpx.AsyncClient() as client: + try: + response = await client.request( + method=request.method, + url=target_url, + content=body, + headers={"Content-Type": request.headers.get("Content-Type", "application/json")}, + timeout=TIMEOUT, + ) + except httpx.TimeoutException: + return Response( + content='{"detail": "Service timeout"}', + status_code=504, + media_type="application/json", + ) + except Exception as e: + return Response( + content=f'{{"detail": "Gateway error: {str(e)}"}}', + status_code=502, + media_type="application/json", + ) + + return Response( + content=response.content, + status_code=response.status_code, + media_type=response.headers.get("content-type"), + ) \ No newline at end of file diff --git a/Semaine_08/shopflow/catalog-service/Dockerfile b/Semaine_08/shopflow/catalog-service/Dockerfile new file mode 100644 index 0000000..e0ef785 --- /dev/null +++ b/Semaine_08/shopflow/catalog-service/Dockerfile @@ -0,0 +1,9 @@ +FROM python:3.12-slim + +WORKDIR /app + +RUN pip install fastapi uvicorn httpx + +COPY main.py . + +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"] \ No newline at end of file diff --git a/Semaine_08/shopflow/catalog-service/main.py b/Semaine_08/shopflow/catalog-service/main.py new file mode 100644 index 0000000..8c9058c --- /dev/null +++ b/Semaine_08/shopflow/catalog-service/main.py @@ -0,0 +1,34 @@ +from fastapi import FastAPI, HTTPException +from pydantic import BaseModel + +app = FastAPI() + +products_db: dict = { + 1: {"id": 1, "name": "Laptop", "price": 999.99, "stock": 10}, + 2: {"id": 2, "name": "Smartphone", "price": 499.99, "stock": 20}, + 3: {"id": 3, "name": "Headphones", "price": 199.99, "stock": 15}, +} + +class UpdateStockDTO(BaseModel): + quantity: int + +@app.get("/products/{product_id}") +async def get_product(product_id: int): + product = products_db.get(product_id) + if not product: + raise HTTPException(status_code=404, detail="Product not found") + return product + +@app.put("/products/{product_id}/stock") +async def update_stock(product_id: int, payload: UpdateStockDTO): + product = products_db.get(product_id) + if not product: + raise HTTPException(status_code=404, detail="Product not found") + if product["stock"] < payload.quantity: + raise HTTPException(status_code=400, detail="Insufficient stock") + product["stock"] -= payload.quantity + return product + +@app.get("/health") +def health(): + return {"status": "ok", "service": "catalog-service"} \ No newline at end of file diff --git a/Semaine_08/shopflow/docker-compose.yml b/Semaine_08/shopflow/docker-compose.yml new file mode 100644 index 0000000..f07a844 --- /dev/null +++ b/Semaine_08/shopflow/docker-compose.yml @@ -0,0 +1,27 @@ +services: + + api-gateway: + build: ./api-gateway + ports: + - "8000:8000" + networks: + - shopflow-network + + user-service: + build: ./user-service + networks: + - shopflow-network + + catalog-service: + build: ./catalog-service + networks: + - shopflow-network + + order-service: + build: ./order-service + networks: + - shopflow-network + +networks: + shopflow-network: + driver: bridge \ No newline at end of file diff --git a/Semaine_08/shopflow/main.py b/Semaine_08/shopflow/main.py new file mode 100644 index 0000000..63faa7b --- /dev/null +++ b/Semaine_08/shopflow/main.py @@ -0,0 +1,6 @@ +def main(): + print("Hello from shopflow!") + + +if __name__ == "__main__": + main() diff --git a/Semaine_08/shopflow/order-service/.dockerignore b/Semaine_08/shopflow/order-service/.dockerignore new file mode 100644 index 0000000..b2f97bf --- /dev/null +++ b/Semaine_08/shopflow/order-service/.dockerignore @@ -0,0 +1,3 @@ +Dockerfile +__pycache__ +*.pyc \ No newline at end of file diff --git a/Semaine_08/shopflow/order-service/Dockerfile b/Semaine_08/shopflow/order-service/Dockerfile new file mode 100644 index 0000000..5bfa4a4 --- /dev/null +++ b/Semaine_08/shopflow/order-service/Dockerfile @@ -0,0 +1,9 @@ +FROM python:3.12-slim + +WORKDIR /app + +RUN pip install fastapi uvicorn httpx + +COPY . . + +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"] \ No newline at end of file diff --git a/Semaine_08/shopflow/order-service/circuit_breaker.py b/Semaine_08/shopflow/order-service/circuit_breaker.py new file mode 100644 index 0000000..0b3b99e --- /dev/null +++ b/Semaine_08/shopflow/order-service/circuit_breaker.py @@ -0,0 +1,34 @@ +import time + +class CircuitBreaker: + def __init__(self, failure_threshold: int = 3, recovery_timeout: int = 10) -> None: + self.failure_threshold = failure_threshold + self.recovery_timeout = recovery_timeout + self.failure_count = 0 + self.last_failure_time = None + self.state = "CLOSED" # OPEN, CLOSED, HALF-OPEN + + def call(self, function, *args, **kwargs): + if self.state == "OPEN" and self.last_failure_time is not None: + if time.time() - self.last_failure_time >= self.recovery_timeout: + self.state = "HALF-OPEN" + else: + raise Exception("Circuit is open") + + try: + result = function(*args, **kwargs) + self.on_success() + return result + except Exception as error: + self.on_failure() + raise error + + def on_success(self): + self.failure_count = 0 + self.state = "CLOSED" + + def on_failure(self): + self.failure_count += 1 + self.last_failure_time = time.time() + if self.failure_count >= self.failure_threshold: + self.state = "OPEN" diff --git a/Semaine_08/shopflow/order-service/main.py b/Semaine_08/shopflow/order-service/main.py new file mode 100644 index 0000000..99dc183 --- /dev/null +++ b/Semaine_08/shopflow/order-service/main.py @@ -0,0 +1,89 @@ +import httpx +from fastapi import FastAPI, HTTPException +from pydantic import BaseModel + +from circuit_breaker import CircuitBreaker + +app = FastAPI() + +USER_SERVICE_URL = "http://user-service:8000" +CATALOG_SERVICE_URL = "http://catalog-service:8000" + +orders_db = {} +next_id = 1 + +catalog_cb = CircuitBreaker(failure_threshold=3, recovery_timeout=10) + +class CreateOrderDTO(BaseModel): + user_id: int + product_id: int + quantity: int + +TIMEOUT = 5.0 + +def get_product(product_id: int): + return catalog_cb.call( + httpx.get, + f"{CATALOG_SERVICE_URL}/products/{product_id}", + timeout=TIMEOUT + ) + +@app.post("/orders", status_code=201) +async def create_order(payload: CreateOrderDTO): + global next_id + + user_response = httpx.get(f"{USER_SERVICE_URL}/users/{payload.user_id}") + try: + user_response = httpx.get(f"{USER_SERVICE_URL}/users/{payload.user_id}", timeout=TIMEOUT) + except httpx.TimeoutException: + raise HTTPException(status_code=503, detail="User service unavailable") + if user_response.status_code == 404: + raise HTTPException(status_code=404, detail="User not found") + + user = user_response.json() + + try: + product_response = get_product(payload.product_id) + except httpx.TimeoutException: + raise HTTPException(status_code=503, detail="Catalog service unavailable") + if product_response.status_code == 404: + raise HTTPException(status_code=404, detail="Product not found") + + product = product_response.json() + + try: + update_response = httpx.put(f"{CATALOG_SERVICE_URL}/products/{payload.product_id}/stock", json= {"quantity": payload.quantity}, timeout=TIMEOUT) + except httpx.TimeoutException: + raise HTTPException(status_code=503, detail="Catalog service unavailable") + if update_response.status_code == 400: + raise HTTPException(status_code= 400, detail= "Stock Insuffisant") + if update_response.status_code != 200: + raise HTTPException(status_code= 502, detail= "Erreur catalog-service") + + order_id = next_id + next_id += 1 + + new_order = { + "id": order_id, + "user_id": user["id"], + "user_name": user["name"], + "product_id": product["id"], + "product_name": product["name"], + "unit_price": product["price"], + "quantity": payload.quantity, + "total_price": product["price"] * payload.quantity + } + + orders_db[order_id] = new_order + return new_order + +@app.get("/orders/{order_id}") +async def get_order(order_id: int): + order = orders_db.get(order_id) + if not order: + raise HTTPException(status_code=404, detail="Order not found") + return order + +@app.get("/health") +def health(): + return {"status": "ok", "service": "order-service"} \ No newline at end of file diff --git a/Semaine_08/shopflow/pyproject.toml b/Semaine_08/shopflow/pyproject.toml new file mode 100644 index 0000000..baa60f9 --- /dev/null +++ b/Semaine_08/shopflow/pyproject.toml @@ -0,0 +1,11 @@ +[project] +name = "shopflow" +version = "0.1.0" +description = "Add your description here" +readme = "README.md" +requires-python = ">=3.12" +dependencies = [ + "fastapi>=0.135.3", + "httpx>=0.28.1", + "uvicorn>=0.44.0", +] diff --git a/Semaine_08/shopflow/requests.http b/Semaine_08/shopflow/requests.http new file mode 100644 index 0000000..3aded19 --- /dev/null +++ b/Semaine_08/shopflow/requests.http @@ -0,0 +1,149 @@ +# ============================================================ +# USERS +# ⚠ Les IDs sont en mémoire vive : ils repartent à 1 après +# chaque redémarrage des conteneurs. Exécuter dans l'ordre +# depuis un démarrage propre (docker compose up). +# ============================================================ + +### 1. Créer l'utilisateur Alice → reçoit id=1 +# @name createAlice +POST http://localhost:8000/users +Content-Type: application/json + +{"name": "Alice", "email": "alice@example.com"} + +### + +### 2. Créer l'utilisateur Bob → reçoit id=2 +# @name createBob +POST http://localhost:8000/users +Content-Type: application/json + +{"name": "Bob", "email": "bob@example.com"} + +### + +### 3. Récupérer Alice (id=1) +GET http://localhost:8000/users/1 + +### + +### 4. Récupérer Bob (id=2) +GET http://localhost:8000/users/2 + +### + +### Récupérer un utilisateur inexistant → 404 +GET http://localhost:8000/users/99 + +### + +# ============================================================ +# PRODUCTS +# ============================================================ + +### Consulter le Laptop (id=1, stock initial=10) +GET http://localhost:8000/products/1 + +### + +### Consulter le Smartphone (id=2, stock initial=20) +GET http://localhost:8000/products/2 + +### + +### Consulter les Headphones (id=3, stock initial=15) +GET http://localhost:8000/products/3 + +### + +### Soustraire 3 Laptops du stock +PUT http://localhost:8000/products/1/stock +Content-Type: application/json + +{"quantity": 3} + +### + +### Vérifier le stock du Laptop après soustraction (attendu: 7) +GET http://localhost:8000/products/1 + +### + +### Soustraire plus que le stock disponible → 400 Insufficient stock +PUT http://localhost:8000/products/1/stock +Content-Type: application/json + +{"quantity": 999} + +### + +### Consulter un produit inexistant → 404 +GET http://localhost:8000/products/99 + +### + +# ============================================================ +# ORDERS +# ============================================================ + +### Créer une commande: Alice achète 2 Smartphones +POST http://localhost:8000/orders +Content-Type: application/json + +{"user_id": 1, "product_id": 2, "quantity": 2} + +### + +### Vérifier le stock du Smartphone après commande (attendu: 18) +GET http://localhost:8000/products/2 + +### + +### Récupérer la commande (id=1) +GET http://localhost:8000/orders/1 + +### + +### Créer une commande: Bob achète 1 Laptop +POST http://localhost:8000/orders +Content-Type: application/json + +{"user_id": 2, "product_id": 1, "quantity": 1} + +### + +### Récupérer la commande de Bob (id=2) +GET http://localhost:8000/orders/2 + +### + +### Commande avec utilisateur inexistant → 404 +POST http://localhost:8000/orders +Content-Type: application/json + +{"user_id": 99, "product_id": 1, "quantity": 1} + +### + +### Commande avec produit inexistant → 404 +POST http://localhost:8000/orders +Content-Type: application/json + +{"user_id": 1, "product_id": 99, "quantity": 1} + +### + +### Récupérer une commande inexistante → 404 +GET http://localhost:8000/orders/99 + +### + +# ============================================================ +# HEALTH CHECKS +# ============================================================ + +### Health check api-gateway +GET http://localhost:8000/health + +### \ No newline at end of file diff --git a/Semaine_08/shopflow/test.py b/Semaine_08/shopflow/test.py new file mode 100644 index 0000000..63d43e2 --- /dev/null +++ b/Semaine_08/shopflow/test.py @@ -0,0 +1,21 @@ +product = { + "id": 42, + "name": "Test Product", + "price": 9.99, + "stock": 100, + "category": "Test Category" +} + +order_item = { + "product_id": 42, + "product_name": "Test Product", + "unit_price": 9.99, + "quantity": 2 +} + +""" +GET user-service OK +GET catalog-service OK stock= 5 +PUT catalog-service #décrémente le stock + +""" \ No newline at end of file diff --git a/Semaine_08/shopflow/user-service/Dockerfile b/Semaine_08/shopflow/user-service/Dockerfile new file mode 100644 index 0000000..e0ef785 --- /dev/null +++ b/Semaine_08/shopflow/user-service/Dockerfile @@ -0,0 +1,9 @@ +FROM python:3.12-slim + +WORKDIR /app + +RUN pip install fastapi uvicorn httpx + +COPY main.py . + +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"] \ No newline at end of file diff --git a/Semaine_08/shopflow/user-service/main.py b/Semaine_08/shopflow/user-service/main.py new file mode 100644 index 0000000..1de17f4 --- /dev/null +++ b/Semaine_08/shopflow/user-service/main.py @@ -0,0 +1,35 @@ +from fastapi import FastAPI, HTTPException +from pydantic import BaseModel + +app = FastAPI() + +users_db = {} +next_id = 1 + +# DTO : Data Transfer Object +class CreateUserDTO(BaseModel): + name: str + email: str + +@app.post("/users") +async def create_user(json: CreateUserDTO): + global next_id + user_id = next_id + next_id += 1 + users_db[user_id] = { + "id": user_id, + "name": json.name, + "email": json.email + } + return users_db[user_id] + +@app.get("/users/{user_id}") +async def get_user(user_id: int): + user = users_db.get(user_id) + if not user: + raise HTTPException(status_code=404, detail="User not found") + return user + +@app.get("/health") +def health(): + return {"status": "ok", "service": "user-service"} \ No newline at end of file diff --git a/Semaine_08/shopflow/uv.lock b/Semaine_08/shopflow/uv.lock new file mode 100644 index 0000000..81d1381 --- /dev/null +++ b/Semaine_08/shopflow/uv.lock @@ -0,0 +1,280 @@ +version = 1 +revision = 3 +requires-python = ">=3.12" + +[[package]] +name = "annotated-doc" +version = "0.0.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/57/ba/046ceea27344560984e26a590f90bc7f4a75b06701f653222458922b558c/annotated_doc-0.0.4.tar.gz", hash = "sha256:fbcda96e87e9c92ad167c2e53839e57503ecfda18804ea28102353485033faa4", size = 7288, upload-time = "2025-11-10T22:07:42.062Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/d3/26bf1008eb3d2daa8ef4cacc7f3bfdc11818d111f7e2d0201bc6e3b49d45/annotated_doc-0.0.4-py3-none-any.whl", hash = "sha256:571ac1dc6991c450b25a9c2d84a3705e2ae7a53467b5d111c24fa8baabbed320", size = 5303, upload-time = "2025-11-10T22:07:40.673Z" }, +] + +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload-time = "2024-05-20T21:33:25.928Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" }, +] + +[[package]] +name = "anyio" +version = "4.13.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/14/2c5dd9f512b66549ae92767a9c7b330ae88e1932ca57876909410251fe13/anyio-4.13.0.tar.gz", hash = "sha256:334b70e641fd2221c1505b3890c69882fe4a2df910cba14d97019b90b24439dc", size = 231622, upload-time = "2026-03-24T12:59:09.671Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/da/42/e921fccf5015463e32a3cf6ee7f980a6ed0f395ceeaa45060b61d86486c2/anyio-4.13.0-py3-none-any.whl", hash = "sha256:08b310f9e24a9594186fd75b4f73f4a4152069e3853f1ed8bfbf58369f4ad708", size = 114353, upload-time = "2026-03-24T12:59:08.246Z" }, +] + +[[package]] +name = "certifi" +version = "2026.2.25" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/af/2d/7bf41579a8986e348fa033a31cdd0e4121114f6bce2457e8876010b092dd/certifi-2026.2.25.tar.gz", hash = "sha256:e887ab5cee78ea814d3472169153c2d12cd43b14bd03329a39a9c6e2e80bfba7", size = 155029, upload-time = "2026-02-25T02:54:17.342Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl", hash = "sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa", size = 153684, upload-time = "2026-02-25T02:54:15.766Z" }, +] + +[[package]] +name = "click" +version = "8.3.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/57/75/31212c6bf2503fdf920d87fee5d7a86a2e3bcf444984126f13d8e4016804/click-8.3.2.tar.gz", hash = "sha256:14162b8b3b3550a7d479eafa77dfd3c38d9dc8951f6f69c78913a8f9a7540fd5", size = 302856, upload-time = "2026-04-03T19:14:45.118Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e4/20/71885d8b97d4f3dde17b1fdb92dbd4908b00541c5a3379787137285f602e/click-8.3.2-py3-none-any.whl", hash = "sha256:1924d2c27c5653561cd2cae4548d1406039cb79b858b747cfea24924bbc1616d", size = 108379, upload-time = "2026-04-03T19:14:43.505Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "fastapi" +version = "0.135.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-doc" }, + { name = "pydantic" }, + { name = "starlette" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/e6/7adb4c5fa231e82c35b8f5741a9f2d055f520c29af5546fd70d3e8e1cd2e/fastapi-0.135.3.tar.gz", hash = "sha256:bd6d7caf1a2bdd8d676843cdcd2287729572a1ef524fc4d65c17ae002a1be654", size = 396524, upload-time = "2026-04-01T16:23:58.188Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/a4/5caa2de7f917a04ada20018eccf60d6cc6145b0199d55ca3711b0fc08312/fastapi-0.135.3-py3-none-any.whl", hash = "sha256:9b0f590c813acd13d0ab43dd8494138eb58e484bfac405db1f3187cfc5810d98", size = 117734, upload-time = "2026-04-01T16:23:59.328Z" }, +] + +[[package]] +name = "h11" +version = "0.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload-time = "2025-04-24T03:35:25.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, +] + +[[package]] +name = "httpcore" +version = "1.0.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484, upload-time = "2025-04-24T22:06:22.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784, upload-time = "2025-04-24T22:06:20.566Z" }, +] + +[[package]] +name = "httpx" +version = "0.28.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "certifi" }, + { name = "httpcore" }, + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406, upload-time = "2024-12-06T15:37:23.222Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload-time = "2024-12-06T15:37:21.509Z" }, +] + +[[package]] +name = "idna" +version = "3.11" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582, upload-time = "2025-10-12T14:55:20.501Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload-time = "2025-10-12T14:55:18.883Z" }, +] + +[[package]] +name = "pydantic" +version = "2.13.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/84/6b/69fd5c7194b21ebde0f8637e2a4ddc766ada29d472bfa6a5ca533d79549a/pydantic-2.13.0.tar.gz", hash = "sha256:b89b575b6e670ebf6e7448c01b41b244f471edd276cd0b6fe02e7e7aca320070", size = 843468, upload-time = "2026-04-13T10:51:35.571Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/01/d7/c3a52c61f5b7be648e919005820fbac33028c6149994cd64453f49951c17/pydantic-2.13.0-py3-none-any.whl", hash = "sha256:ab0078b90da5f3e2fd2e71e3d9b457ddcb35d0350854fbda93b451e28d56baaf", size = 471872, upload-time = "2026-04-13T10:51:33.343Z" }, +] + +[[package]] +name = "pydantic-core" +version = "2.46.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6f/0a/9414cddf82eda3976b14048cc0fa8f5b5d1aecb0b22e1dcd2dbfe0e139b1/pydantic_core-2.46.0.tar.gz", hash = "sha256:82d2498c96be47b47e903e1378d1d0f770097ec56ea953322f39936a7cf34977", size = 471441, upload-time = "2026-04-13T09:06:33.813Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/d2/206c72ad47071559142a35f71efc29eb16448a4a5ae9487230ab8e4e292b/pydantic_core-2.46.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:66ccedb02c934622612448489824955838a221b3a35875458970521ef17b2f9c", size = 2117060, upload-time = "2026-04-13T09:04:47.443Z" }, + { url = "https://files.pythonhosted.org/packages/17/2c/7a53b33f91c8b77e696b1a6aa3bed609bf9374bdc0f8dcda681bc7d922b8/pydantic_core-2.46.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a44f27f4d2788ef9876ec47a43739b118c5904d74f418f53398f6ced3bbcacf2", size = 1951802, upload-time = "2026-04-13T09:05:34.591Z" }, + { url = "https://files.pythonhosted.org/packages/fc/20/90e548c1f6d38800ef11c915881525770ce270d8e5e887563ff046a08674/pydantic_core-2.46.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f26a1032bcce6ca4b4670eb3f7d8195bd0a8b8f255f1307823e217ca3cfa7c27", size = 1976621, upload-time = "2026-04-13T09:04:03.909Z" }, + { url = "https://files.pythonhosted.org/packages/20/3c/9c5810ca70b60c623488cdd80f7e9ee1a0812df81e97098b64788719860f/pydantic_core-2.46.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1b8d1412f725060527e56675904b17a2d421dddcf861eecf7c75b9dda47921a4", size = 2056721, upload-time = "2026-04-13T09:04:40.992Z" }, + { url = "https://files.pythonhosted.org/packages/1a/a3/d6e5f4cdec84278431c75540f90838c9d0a4dfe9402a8f3902073660ff28/pydantic_core-2.46.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dc3d1569edd859cabaa476cabce9eecd05049a7966af7b4a33b541bfd4ca1104", size = 2239634, upload-time = "2026-04-13T09:03:52.478Z" }, + { url = "https://files.pythonhosted.org/packages/46/42/ef58aacf330d8de6e309d62469aa1f80e945eaf665929b4037ac1bfcebc1/pydantic_core-2.46.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:38108976f2d8afaa8f5067fd1390a8c9f5cc580175407cda636e76bc76e88054", size = 2315739, upload-time = "2026-04-13T09:05:04.971Z" }, + { url = "https://files.pythonhosted.org/packages/8b/86/c63b12fafa2d86a515bfd1840b39c23a49302f02b653161bf9c3a0566c50/pydantic_core-2.46.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a5a06d8ed01dad5575056b5187e5959b336793c6047920a3441ee5b03533836", size = 2098169, upload-time = "2026-04-13T09:07:27.151Z" }, + { url = "https://files.pythonhosted.org/packages/76/19/b5b33a2f6be4755b21a20434293c4364be255f4c1a108f125d101d4cc4ee/pydantic_core-2.46.0-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:04017ace142da9ce27cafd423a480872571b5c7e80382aec22f7d715ca8eb870", size = 2170830, upload-time = "2026-04-13T09:04:39.448Z" }, + { url = "https://files.pythonhosted.org/packages/99/ae/7559f99a29b7d440012ddb4da897359304988a881efaca912fd2f655652e/pydantic_core-2.46.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2629ad992ed1b1c012e6067f5ffafd3336fcb9b54569449fabb85621f1444ed3", size = 2203901, upload-time = "2026-04-13T09:04:01.048Z" }, + { url = "https://files.pythonhosted.org/packages/dd/0e/b0ef945a39aeb4ac58da316813e1106b7fbdfbf20ac141c1c27904355ac5/pydantic_core-2.46.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3068b1e7bd986aebc88f6859f8353e72072538dcf92a7fb9cf511a0f61c5e729", size = 2191789, upload-time = "2026-04-13T09:06:39.915Z" }, + { url = "https://files.pythonhosted.org/packages/90/f4/830484e07188c1236b013995818888ab93bab8fd88aa9689b1d8fd22220d/pydantic_core-2.46.0-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:1e366916ff69ff700aa9326601634e688581bc24c5b6b4f8738d809ec7d72611", size = 2344423, upload-time = "2026-04-13T09:05:12.252Z" }, + { url = "https://files.pythonhosted.org/packages/fd/ba/e455c18cbdc333177af754e740be4fe9d1de173d65bbe534daf88da02ac0/pydantic_core-2.46.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:485a23e8f4618a1b8e23ac744180acde283fffe617f96923d25507d5cade62ec", size = 2384037, upload-time = "2026-04-13T09:06:24.503Z" }, + { url = "https://files.pythonhosted.org/packages/78/1f/b35d20d73144a41e78de0ae398e60fdd8bed91667daa1a5a92ab958551ba/pydantic_core-2.46.0-cp312-cp312-win32.whl", hash = "sha256:520940e1b702fe3b33525d0351777f25e9924f1818ca7956447dabacf2d339fd", size = 1967068, upload-time = "2026-04-13T09:05:23.374Z" }, + { url = "https://files.pythonhosted.org/packages/d1/84/4b6252e9606e8295647b848233cc4137ee0a04ebba8f0f9fb2977655b38c/pydantic_core-2.46.0-cp312-cp312-win_amd64.whl", hash = "sha256:90d2048e0339fa365e5a66aefe760ddd3b3d0a45501e088bc5bc7f4ed9ff9571", size = 2071008, upload-time = "2026-04-13T09:05:21.392Z" }, + { url = "https://files.pythonhosted.org/packages/39/95/d08eb508d4d5560ccbd226ee5971e5ef9b749aba9b413c0c4ed6e406d4f6/pydantic_core-2.46.0-cp312-cp312-win_arm64.whl", hash = "sha256:a70247649b7dffe36648e8f34be5ce8c5fa0a27ff07b071ea780c20a738c05ce", size = 2036634, upload-time = "2026-04-13T09:05:48.299Z" }, + { url = "https://files.pythonhosted.org/packages/df/05/ab3b0742bad1d51822f1af0c4232208408902bdcfc47601f3b812e09e6c2/pydantic_core-2.46.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:a05900c37264c070c683c650cbca8f83d7cbb549719e645fcd81a24592eac788", size = 2116814, upload-time = "2026-04-13T09:04:12.41Z" }, + { url = "https://files.pythonhosted.org/packages/98/08/30b43d9569d69094a0899a199711c43aa58fce6ce80f6a8f7693673eb995/pydantic_core-2.46.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8de8e482fd4f1e3f36c50c6aac46d044462615d8f12cfafc6bebeaa0909eea22", size = 1951867, upload-time = "2026-04-13T09:04:02.364Z" }, + { url = "https://files.pythonhosted.org/packages/db/a0/bf9a1ba34537c2ed3872a48195291138fdec8fe26c4009776f00d63cf0c8/pydantic_core-2.46.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c525ecf8a4cdf198327b65030a7d081867ad8e60acb01a7214fff95cf9832d47", size = 1977040, upload-time = "2026-04-13T09:06:16.088Z" }, + { url = "https://files.pythonhosted.org/packages/71/70/0ba03c20e1e118219fc18c5417b008b7e880f0e3fb38560ec4465984d471/pydantic_core-2.46.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f14581aeb12e61542ce73b9bfef2bca5439d65d9ab3efe1a4d8e346b61838f9b", size = 2055284, upload-time = "2026-04-13T09:05:25.125Z" }, + { url = "https://files.pythonhosted.org/packages/58/cf/1e320acefbde7fb7158a9e5def55e0adf9a4634636098ce28dc6b978e0d3/pydantic_core-2.46.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c108067f2f7e190d0dbd81247d789ec41f9ea50ccd9265a3a46710796ac60530", size = 2238896, upload-time = "2026-04-13T09:05:01.345Z" }, + { url = "https://files.pythonhosted.org/packages/df/f5/ea8ba209756abe9eba891bb0ef3772b4c59a894eb9ad86cd5bd0dd4e3e52/pydantic_core-2.46.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1ac10967e9a7bb1b96697374513f9a1a90a59e2fb41566b5e00ee45392beac59", size = 2314353, upload-time = "2026-04-13T09:06:07.942Z" }, + { url = "https://files.pythonhosted.org/packages/e8/f8/5885350203b72e96438eee7f94de0d8f0442f4627237ca8ef75de34db1cd/pydantic_core-2.46.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7897078fe8a13b73623c0955dfb2b3d2c9acb7177aac25144758c9e5a5265aaa", size = 2098522, upload-time = "2026-04-13T09:04:23.239Z" }, + { url = "https://files.pythonhosted.org/packages/bf/88/5930b0e828e371db5a556dd3189565417ddc3d8316bb001058168aadcf5f/pydantic_core-2.46.0-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:e69ce405510a419a082a78faed65bb4249cfb51232293cc675645c12f7379bf7", size = 2168757, upload-time = "2026-04-13T09:07:12.46Z" }, + { url = "https://files.pythonhosted.org/packages/da/75/63d563d3035a0548e721c38b5b69fd5626fdd51da0f09ff4467503915b82/pydantic_core-2.46.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fd28d13eea0d8cf351dc1fe274b5070cc8e1cca2644381dee5f99de629e77cf3", size = 2202518, upload-time = "2026-04-13T09:05:44.418Z" }, + { url = "https://files.pythonhosted.org/packages/a7/53/1958eacbfddc41aadf5ae86dd85041bf054b675f34a2fa76385935f96070/pydantic_core-2.46.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:ee1547a6b8243e73dd10f585555e5a263395e55ce6dea618a078570a1e889aef", size = 2190148, upload-time = "2026-04-13T09:06:56.151Z" }, + { url = "https://files.pythonhosted.org/packages/c7/17/098cc6d3595e4623186f2bc6604a6195eb182e126702a90517236391e9ce/pydantic_core-2.46.0-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:c3dc68dcf62db22a18ddfc3ad4960038f72b75908edc48ae014d7ac8b391d57a", size = 2342925, upload-time = "2026-04-13T09:04:17.286Z" }, + { url = "https://files.pythonhosted.org/packages/71/a7/abdb924620b1ac535c690b36ad5b8871f376104090f8842c08625cecf1d3/pydantic_core-2.46.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:004a2081c881abfcc6854a4623da6a09090a0d7c1398a6ae7133ca1256cee70b", size = 2383167, upload-time = "2026-04-13T09:04:52.643Z" }, + { url = "https://files.pythonhosted.org/packages/d7/c9/2ddd10f50e4b7350d2574629a0f53d8d4eb6573f9c19a6b43e6b1487a31d/pydantic_core-2.46.0-cp313-cp313-win32.whl", hash = "sha256:59d24ec8d5eaabad93097525a69d0f00f2667cb353eb6cda578b1cfff203ceef", size = 1965660, upload-time = "2026-04-13T09:06:05.877Z" }, + { url = "https://files.pythonhosted.org/packages/b5/e7/1efc38ed6f2680c032bcefa0e3ebd496a8c77e92dfdb86b07d0f2fc632b1/pydantic_core-2.46.0-cp313-cp313-win_amd64.whl", hash = "sha256:71186dad5ac325c64d68fe0e654e15fd79802e7cc42bc6f0ff822d5ad8b1ab25", size = 2069563, upload-time = "2026-04-13T09:07:14.738Z" }, + { url = "https://files.pythonhosted.org/packages/c3/1e/a325b4989e742bf7e72ed35fa124bc611fd76539c9f8cd2a9a7854473533/pydantic_core-2.46.0-cp313-cp313-win_arm64.whl", hash = "sha256:8e4503f3213f723842c9a3b53955c88a9cfbd0b288cbd1c1ae933aebeec4a1b4", size = 2034966, upload-time = "2026-04-13T09:04:21.629Z" }, + { url = "https://files.pythonhosted.org/packages/36/3b/914891d384cdbf9a6f464eb13713baa22ea1e453d4da80fb7da522079370/pydantic_core-2.46.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:4fc801c290342350ffc82d77872054a934b2e24163727263362170c1db5416ca", size = 2113349, upload-time = "2026-04-13T09:04:59.407Z" }, + { url = "https://files.pythonhosted.org/packages/35/95/3a0c6f65e231709fb3463e32943c69d10285cb50203a2130a4732053a06d/pydantic_core-2.46.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0a36f2cc88170cc177930afcc633a8c15907ea68b59ac16bd180c2999d714940", size = 1949170, upload-time = "2026-04-13T09:06:09.935Z" }, + { url = "https://files.pythonhosted.org/packages/d1/63/d845c36a608469fe7bee226edeff0984c33dbfe7aecd755b0e7ab5a275c4/pydantic_core-2.46.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2a3912e0c568a1f99d4d6d3e41def40179d61424c0ca1c8c87c4877d7f6fd7fb", size = 1977914, upload-time = "2026-04-13T09:04:56.16Z" }, + { url = "https://files.pythonhosted.org/packages/08/6f/f2e7a7f85931fb31671f5378d1c7fc70606e4b36d59b1b48e1bd1ef5d916/pydantic_core-2.46.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3534c3415ed1a19ab23096b628916a827f7858ec8db49ad5d7d1e44dc13c0d7b", size = 2050538, upload-time = "2026-04-13T09:05:06.789Z" }, + { url = "https://files.pythonhosted.org/packages/8c/97/f4aa7181dd9a16dd9059a99fc48fdab0c2aab68307283a5c04cf56de68c4/pydantic_core-2.46.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:21067396fc285609323a4db2f63a87570044abe0acddfcca8b135fc7948e3db7", size = 2236294, upload-time = "2026-04-13T09:07:03.2Z" }, + { url = "https://files.pythonhosted.org/packages/24/c1/6a5042fc32765c87101b500f394702890af04239c318b6002cfd627b710d/pydantic_core-2.46.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2afd85b7be186e2fe7cdbb09a3d964bcc2042f65bbcc64ad800b3c7915032655", size = 2312954, upload-time = "2026-04-13T09:06:11.919Z" }, + { url = "https://files.pythonhosted.org/packages/cb/e4/566101a561492ce8454f0844ca29c3b675a6b3a7b3ff577db85ed05c8c50/pydantic_core-2.46.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:67e2c2e171b78db8154da602de72ffdc473c6ee51de8a9d80c0f1cd4051abfc7", size = 2102533, upload-time = "2026-04-13T09:06:58.664Z" }, + { url = "https://files.pythonhosted.org/packages/3e/ac/adc11ee1646a5c4dd9abb09a00e7909e6dc25beddc0b1310ca734bb9b48e/pydantic_core-2.46.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:c16ae1f3170267b1a37e16dba5c297bdf60c8b5657b147909ca8774ce7366644", size = 2169447, upload-time = "2026-04-13T09:04:11.143Z" }, + { url = "https://files.pythonhosted.org/packages/26/73/408e686b45b82d28ac19e8229e07282254dbee6a5d24c5c7cf3cf3716613/pydantic_core-2.46.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:133b69e1c1ba34d3702eed73f19f7f966928f9aa16663b55c2ebce0893cca42e", size = 2200672, upload-time = "2026-04-13T09:03:54.056Z" }, + { url = "https://files.pythonhosted.org/packages/0a/3b/807d5b035ec891b57b9079ce881f48263936c37bd0d154a056e7fd152afb/pydantic_core-2.46.0-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:15ed8e5bde505133d96b41702f31f06829c46b05488211a5b1c7877e11de5eb5", size = 2188293, upload-time = "2026-04-13T09:07:07.614Z" }, + { url = "https://files.pythonhosted.org/packages/f1/ed/719b307516285099d1196c52769fdbe676fd677da007b9c349ae70b7226d/pydantic_core-2.46.0-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:8cfc29a1c66a7f0fcb36262e92f353dd0b9c4061d558fceb022e698a801cb8ae", size = 2335023, upload-time = "2026-04-13T09:04:05.176Z" }, + { url = "https://files.pythonhosted.org/packages/8d/90/8718e4ae98c4e8a7325afdc079be82be1e131d7a47cb6c098844a9531ffe/pydantic_core-2.46.0-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:e1155708540f13845bf68d5ac511a55c76cfe2e057ed12b4bf3adac1581fc5c2", size = 2377155, upload-time = "2026-04-13T09:06:18.081Z" }, + { url = "https://files.pythonhosted.org/packages/dd/dc/7172789283b963f81da2fc92b186e22de55687019079f71c4d570822502b/pydantic_core-2.46.0-cp314-cp314-win32.whl", hash = "sha256:de5635a48df6b2eef161d10ea1bc2626153197333662ba4cd700ee7ec1aba7f5", size = 1963078, upload-time = "2026-04-13T09:05:30.615Z" }, + { url = "https://files.pythonhosted.org/packages/e0/69/03a7ea4b6264def3a44eabf577528bcec2f49468c5698b2044dea54dc07e/pydantic_core-2.46.0-cp314-cp314-win_amd64.whl", hash = "sha256:f07a5af60c5e7cf53dd1ff734228bd72d0dc9938e64a75b5bb308ca350d9681e", size = 2068439, upload-time = "2026-04-13T09:04:57.729Z" }, + { url = "https://files.pythonhosted.org/packages/f5/eb/1c3afcfdee2ab6634b802ab0a0f1966df4c8b630028ec56a1cb0a710dc58/pydantic_core-2.46.0-cp314-cp314-win_arm64.whl", hash = "sha256:e7a77eca3c7d5108ff509db20aae6f80d47c7ed7516d8b96c387aacc42f3ce0f", size = 2026470, upload-time = "2026-04-13T09:05:08.654Z" }, + { url = "https://files.pythonhosted.org/packages/5c/30/1177dde61b200785c4739665e3aa03a9d4b2c25d2d0408b07d585e633965/pydantic_core-2.46.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:5e7cdd4398bee1aaeafe049ac366b0f887451d9ae418fd8785219c13fea2f928", size = 2107447, upload-time = "2026-04-13T09:05:46.314Z" }, + { url = "https://files.pythonhosted.org/packages/b1/60/4e0f61f99bdabbbc309d364a2791e1ba31e778a4935bc43391a7bdec0744/pydantic_core-2.46.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5c2c92d82808e27cef3f7ab3ed63d657d0c755e0dbe5b8a58342e37bdf09bd2e", size = 1926927, upload-time = "2026-04-13T09:06:20.371Z" }, + { url = "https://files.pythonhosted.org/packages/1d/d0/67f89a8269152c1d6eaa81f04e75a507372ebd8ca7382855a065222caa80/pydantic_core-2.46.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bab80af91cd7014b45d1089303b5f844a9d91d7da60eabf3d5f9694b32a6655", size = 1966613, upload-time = "2026-04-13T09:07:05.389Z" }, + { url = "https://files.pythonhosted.org/packages/cd/07/8dfdc3edc78f29a80fb31f366c50203ec904cff6a4c923599bf50ac0d0ff/pydantic_core-2.46.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1e49ffdb714bc990f00b39d1ad1d683033875b5af15582f60c1f34ad3eeccfaa", size = 2032902, upload-time = "2026-04-13T09:06:42.47Z" }, + { url = "https://files.pythonhosted.org/packages/b0/2a/111c5e8fe24f99c46bcad7d3a82a8f6dbc738066e2c72c04c71f827d8c78/pydantic_core-2.46.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ca877240e8dbdeef3a66f751dc41e5a74893767d510c22a22fc5c0199844f0ce", size = 2244456, upload-time = "2026-04-13T09:05:36.484Z" }, + { url = "https://files.pythonhosted.org/packages/6b/7c/cfc5d11c15a63ece26e148572c77cfbb2c7f08d315a7b63ef0fe0711d753/pydantic_core-2.46.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87e6843f89ecd2f596d7294e33196c61343186255b9880c4f1b725fde8b0e20d", size = 2294535, upload-time = "2026-04-13T09:06:01.689Z" }, + { url = "https://files.pythonhosted.org/packages/c4/2c/f0d744e3dab7bd026a3f4670a97a295157cff923a2666d30a15a70a7e3d0/pydantic_core-2.46.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e20bc5add1dd9bc3b9a3600d40632e679376569098345500799a6ad7c5d46c72", size = 2104621, upload-time = "2026-04-13T09:04:34.388Z" }, + { url = "https://files.pythonhosted.org/packages/a7/64/e7cc4698dc024264d214b51d5a47a2404221b12060dd537d76f831b2120a/pydantic_core-2.46.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:ee6ff79a5f0289d64a9d6696a3ce1f98f925b803dd538335a118231e26d6d827", size = 2130718, upload-time = "2026-04-13T09:04:26.23Z" }, + { url = "https://files.pythonhosted.org/packages/0b/a8/224e655fec21f7d4441438ad2ecaccb33b5a3876ce7bb2098c74a49efc14/pydantic_core-2.46.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:52d35cfb58c26323101c7065508d7bb69bb56338cda9ea47a7b32be581af055d", size = 2180738, upload-time = "2026-04-13T09:05:50.253Z" }, + { url = "https://files.pythonhosted.org/packages/32/7b/b3025618ed4c4e4cbaa9882731c19625db6669896b621760ea95bc1125ef/pydantic_core-2.46.0-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:d14cc5a6f260fa78e124061eebc5769af6534fc837e9a62a47f09a2c341fa4ea", size = 2171222, upload-time = "2026-04-13T09:07:29.929Z" }, + { url = "https://files.pythonhosted.org/packages/7b/e3/68170aa1d891920af09c1f2f34df61dc5ff3a746400027155523e3400e89/pydantic_core-2.46.0-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:4f7ff859d663b6635f6307a10803d07f0d09487e16c3d36b1744af51dbf948b2", size = 2320040, upload-time = "2026-04-13T09:06:35.732Z" }, + { url = "https://files.pythonhosted.org/packages/67/1b/5e65807001b84972476300c1f49aea2b4971b7e9fffb5c2654877dadd274/pydantic_core-2.46.0-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:8ef749be6ed0d69dba31902aaa8255a9bb269ae50c93888c4df242d8bb7acd9e", size = 2377062, upload-time = "2026-04-13T09:07:39.945Z" }, + { url = "https://files.pythonhosted.org/packages/75/03/48caa9dd5f28f7662bd52bff454d9a451f6b7e5e4af95e289e5e170749c9/pydantic_core-2.46.0-cp314-cp314t-win32.whl", hash = "sha256:d93ca72870133f86360e4bb0c78cd4e6ba2a0f9f3738a6486909ffc031463b32", size = 1951028, upload-time = "2026-04-13T09:04:20.224Z" }, + { url = "https://files.pythonhosted.org/packages/87/ed/e97ff55fe28c0e6e3cba641d622b15e071370b70e5f07c496b07b65db7c9/pydantic_core-2.46.0-cp314-cp314t-win_amd64.whl", hash = "sha256:6ebb2668afd657e2127cb40f2ceb627dd78e74e9dfde14d9bf6cdd532a29ff59", size = 2048519, upload-time = "2026-04-13T09:05:10.464Z" }, + { url = "https://files.pythonhosted.org/packages/b6/51/e0db8267a287994546925f252e329eeae4121b1e77e76353418da5a3adf0/pydantic_core-2.46.0-cp314-cp314t-win_arm64.whl", hash = "sha256:4864f5bbb7993845baf9209bae1669a8a76769296a018cb569ebda9dcb4241f5", size = 2026791, upload-time = "2026-04-13T09:04:37.724Z" }, + { url = "https://files.pythonhosted.org/packages/74/0c/106ed5cc50393d90523f09adcc50d05e42e748eb107dc06aea971137f02d/pydantic_core-2.46.0-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:bc0e2fefe384152d7da85b5c2fe8ce2bf24752f68a58e3f3ea42e28a29dfdeb2", size = 2104968, upload-time = "2026-04-13T09:06:26.967Z" }, + { url = "https://files.pythonhosted.org/packages/f5/71/b494cef3165e3413ee9bbbb5a9eedc9af0ea7b88d8638beef6c2061b110e/pydantic_core-2.46.0-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:a2ab0e785548be1b4362a62c4004f9217598b7ee465f1f420fc2123e2a5b5b02", size = 1940442, upload-time = "2026-04-13T09:06:29.332Z" }, + { url = "https://files.pythonhosted.org/packages/7e/3e/a4d578c8216c443e26a1124f8c1e07c0654264ce5651143d3883d85ff140/pydantic_core-2.46.0-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:16d45aecb18b8cba1c68eeb17c2bb2d38627ceed04c5b30b882fc9134e01f187", size = 1999672, upload-time = "2026-04-13T09:04:42.798Z" }, + { url = "https://files.pythonhosted.org/packages/cd/c1/9114560468685525a21770138382fd0cb849aaf351ff2c7b97f760d121e0/pydantic_core-2.46.0-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5078f6c377b002428e984259ac327ef8902aacae6c14b7de740dd4869a491501", size = 2154533, upload-time = "2026-04-13T09:04:50.868Z" }, +] + +[[package]] +name = "shopflow" +version = "0.1.0" +source = { virtual = "." } +dependencies = [ + { name = "fastapi" }, + { name = "httpx" }, + { name = "uvicorn" }, +] + +[package.metadata] +requires-dist = [ + { name = "fastapi", specifier = ">=0.135.3" }, + { name = "httpx", specifier = ">=0.28.1" }, + { name = "uvicorn", specifier = ">=0.44.0" }, +] + +[[package]] +name = "starlette" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/81/69/17425771797c36cded50b7fe44e850315d039f28b15901ab44839e70b593/starlette-1.0.0.tar.gz", hash = "sha256:6a4beaf1f81bb472fd19ea9b918b50dc3a77a6f2e190a12954b25e6ed5eea149", size = 2655289, upload-time = "2026-03-22T18:29:46.779Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl", hash = "sha256:d3ec55e0bb321692d275455ddfd3df75fff145d009685eb40dc91fc66b03d38b", size = 72651, upload-time = "2026-03-22T18:29:45.111Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, +] + +[[package]] +name = "typing-inspection" +version = "0.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949, upload-time = "2025-10-01T02:14:41.687Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload-time = "2025-10-01T02:14:40.154Z" }, +] + +[[package]] +name = "uvicorn" +version = "0.44.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5e/da/6eee1ff8b6cbeed47eeb5229749168e81eb4b7b999a1a15a7176e51410c9/uvicorn-0.44.0.tar.gz", hash = "sha256:6c942071b68f07e178264b9152f1f16dfac5da85880c4ce06366a96d70d4f31e", size = 86947, upload-time = "2026-04-06T09:23:22.826Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/23/a5bbd9600dd607411fa644c06ff4951bec3a4d82c4b852374024359c19c0/uvicorn-0.44.0-py3-none-any.whl", hash = "sha256:ce937c99a2cc70279556967274414c087888e8cec9f9c94644dfca11bd3ced89", size = 69425, upload-time = "2026-04-06T09:23:21.524Z" }, +] diff --git a/Semaine_08/test.py b/Semaine_08/test.py new file mode 100644 index 0000000..e69de29

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