fixtureqa 0.1.1__tar.gz → 0.1.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fixtureqa-0.1.1/fixtureqa.egg-info → fixtureqa-0.1.2}/PKG-INFO +1 -1
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/api/connection_manager.py +8 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2/fixtureqa.egg-info}/PKG-INFO +1 -1
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/pyproject.toml +1 -1
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/LICENSE +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/README.md +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/__init__.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/__main__.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/api/__init__.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/api/app.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/api/deps.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/api/routers/__init__.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/api/routers/admin.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/api/routers/auth.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/api/routers/branding.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/api/routers/fix_spec.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/api/routers/messages.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/api/routers/scenarios.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/api/routers/sessions.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/api/routers/setup.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/api/routers/templates.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/api/routers/ws.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/api/schemas.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/config/__init__.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/core/__init__.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/core/auth.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/core/config_store.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/core/events.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/core/fix_application.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/core/fix_parser.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/core/fix_spec_parser.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/core/fix_tags.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/core/housekeeping.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/core/message_log.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/core/message_store.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/core/models.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/core/scenario_runner.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/core/scenario_store.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/core/session.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/core/session_manager.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/core/template_store.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/core/user_store.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/core/venue_responses.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/fix_specs/FIX42.xml +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/fix_specs/FIX44.xml +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/server.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/static/assets/ag-grid-_QKprVdm.js +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/static/assets/index-B31-1dt-.css +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/static/assets/index-CTsKxGdI.js +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/static/assets/react-vendor-2eF0YfZT.js +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/static/favicon.svg +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/static/index.html +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixture/ui/__init__.py +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixtureqa.egg-info/SOURCES.txt +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixtureqa.egg-info/dependency_links.txt +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixtureqa.egg-info/entry_points.txt +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixtureqa.egg-info/requires.txt +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/fixtureqa.egg-info/top_level.txt +0 -0
- {fixtureqa-0.1.1 → fixtureqa-0.1.2}/setup.cfg +0 -0
|
@@ -5,8 +5,11 @@ fixcore callbacks fire on the asyncio event loop — no thread-crossing needed.
|
|
|
5
5
|
"""
|
|
6
6
|
|
|
7
7
|
import asyncio
|
|
8
|
+
import logging
|
|
8
9
|
from datetime import datetime, timezone
|
|
9
10
|
|
|
11
|
+
logger = logging.getLogger(__name__)
|
|
12
|
+
|
|
10
13
|
from fastapi import WebSocket
|
|
11
14
|
from starlette.websockets import WebSocketState
|
|
12
15
|
|
|
@@ -105,6 +108,9 @@ class ConnectionManager:
|
|
|
105
108
|
specific = dict(self._clients.get(session_id, {}))
|
|
106
109
|
wildcard = dict(self._clients.get("*", {}))
|
|
107
110
|
|
|
111
|
+
logger.debug("_broadcast: type=%s session=%s owner=%r clients_specific=%d wildcard=%d",
|
|
112
|
+
payload.get("type"), session_id, owner_uid, len(specific), len(wildcard))
|
|
113
|
+
|
|
108
114
|
# Build target set: connections that may receive this event
|
|
109
115
|
# A connection receives the event if:
|
|
110
116
|
# - it is an admin, OR
|
|
@@ -114,6 +120,8 @@ class ConnectionManager:
|
|
|
114
120
|
if info.is_admin or info.uid == owner_uid:
|
|
115
121
|
targets[ws] = info
|
|
116
122
|
|
|
123
|
+
logger.debug("_broadcast: %d target(s) for owner=%r", len(targets), owner_uid)
|
|
124
|
+
|
|
117
125
|
dead: list[tuple[WebSocket, str]] = []
|
|
118
126
|
for ws in targets:
|
|
119
127
|
try:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|