vortexpy 4.1.5__tar.gz → 4.1.6__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.
- {vortexpy-4.1.5 → vortexpy-4.1.6}/PKG-INFO +1 -1
- {vortexpy-4.1.5 → vortexpy-4.1.6}/pyproject.toml +1 -1
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/__init__.py +1 -1
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/rpc/RPC.py +14 -2
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortexpy.egg-info/PKG-INFO +1 -1
- {vortexpy-4.1.5 → vortexpy-4.1.6}/README.md +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/setup.cfg +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/DataWrapTuple.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/DeferUtil.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/Jsonable.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/Payload.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/PayloadEndpoint.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/PayloadEndpointTest.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/PayloadEnvelope.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/PayloadFilterKeys.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/PayloadIO.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/PayloadPriority.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/PayloadResponse.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/PayloadResponseTest.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/PayloadTest.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/PerformTestActionTuple.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/SerialiseUtil.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/SerialiseUtil_test.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/TestTuple.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/Tuple.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/TupleAction.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/TupleDataForTest.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/TuplePerfTest.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/TuplePolymorphicTupleTypeFieldArgTest.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/TupleRestful.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/TupleRestfulTest.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/TupleSelector.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/TupleTest.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/VortexABC.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/VortexAccessControlContextABC.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/VortexAuthenticatorABC.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/VortexClientHttp.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/VortexClientHttpTest.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/VortexClientTcp.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/VortexClientWebsocketFactory.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/VortexConnectionABC.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/VortexEndpointPermission.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/VortexFactory.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/VortexPayloadProtocol.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/VortexPermission.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/VortexPermissionError.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/VortexServer.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/VortexServerConnection.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/VortexServerHttpResource.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/VortexServerTcp.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/VortexServerWebsocket.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/VortexSession.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/VortexTcpMemoryLeakPayloadTest.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/VortexTcpMemoryLeakRawTest.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/VortexTest.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/VortexUtil.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/VortexWritePushProducer.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/data_loader/TupleDataLiveLockManager.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/data_loader/TupleDataLoader.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/data_loader/TupleDataLoaderDelegate.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/data_loader/TupleDataLoaderTupleABC.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/data_loader/TupleDataLoaderTuples.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/data_loader/__init__.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/event_bus/TupleChangeEventABC.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/event_bus/TupleChangeEventBus.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/event_bus/TupleChangeEventBusObserverABC.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/event_bus/__init__.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/handler/TupleActionProcessor.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/handler/TupleActionProcessorProxy.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/handler/TupleActionProcessorTestHandler.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/handler/TupleDataAccessGranterABC.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/handler/TupleDataActionClient.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/handler/TupleDataObservableCache.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/handler/TupleDataObservableHandler.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/handler/TupleDataObservableProxyHandler.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/handler/TupleDataObservableTestHandler.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/handler/TupleDataObserverClient.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/handler/TupleDataProviderABC.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/handler/VortexJSTupleLoaderTestHandler.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/handler/__init__.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/mypy_plugin.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/py.typed +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/restful/GzippedDataHttpClient.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/restful/GzippedDataHttpClientTest.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/restful/GzippedPayloadHttpClient.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/restful/RestfulHttpClient.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/restful/RestfulHttpClientTest.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/restful/RestfulResource.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/restful/RestfulResourceTest.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/restful/__init__.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/rpc/RPCTest.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/rpc/__init__.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/sqla_orm/OrmCrudHandler.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/sqla_orm/TupleProviderForDb.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/sqla_orm/VortexTupleJson.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/sqla_orm/__init__.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/storage/TupleStorageSqlite.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/storage/__init__.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/tuple_json_schema/__init__.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/tuple_json_schema/constants.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/tuple_json_schema/json_schema_node_tuple.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/tuple_json_schema/tuple_json_schema_builder.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/tuple_json_schema/tuple_json_schema_test.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortex/tuple_json_schema/tuple_json_schema_test_tuples.py +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortexpy.egg-info/SOURCES.txt +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortexpy.egg-info/dependency_links.txt +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortexpy.egg-info/entry_points.txt +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortexpy.egg-info/requires.txt +0 -0
- {vortexpy-4.1.5 → vortexpy-4.1.6}/vortexpy.egg-info/top_level.txt +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "vortexpy"
|
|
7
|
-
version = "4.1.
|
|
7
|
+
version = "4.1.6"
|
|
8
8
|
license = {text = "MIT"}
|
|
9
9
|
authors = [{name = "Flying Ion Pty Ltd", email = "contact@flyingion.com"}]
|
|
10
10
|
description = "Flying Ion's observable, routable, data serialisation and transport code."
|
|
@@ -103,6 +103,7 @@ class _VortexRPC:
|
|
|
103
103
|
deferToThread: bool,
|
|
104
104
|
inlineCallbacks: bool,
|
|
105
105
|
requiredPermissions: Optional[PermissionsType] = None,
|
|
106
|
+
logTimeoutError: bool = False,
|
|
106
107
|
) -> None:
|
|
107
108
|
"""
|
|
108
109
|
|
|
@@ -124,6 +125,10 @@ class _VortexRPC:
|
|
|
124
125
|
:param inlineCallbacks: Should the function be wrapped in the twisted
|
|
125
126
|
@inlinecallbacks decorator before it's called?.
|
|
126
127
|
|
|
128
|
+
:param logTimeoutError: When False, RPC timeouts do not log at ERROR in
|
|
129
|
+
PayloadResponse or the response errback. Callers that expect
|
|
130
|
+
timeouts (e.g. backend readiness probes) should leave this False.
|
|
131
|
+
|
|
127
132
|
"""
|
|
128
133
|
|
|
129
134
|
self.__func = func
|
|
@@ -138,6 +143,7 @@ class _VortexRPC:
|
|
|
138
143
|
self.__requiredPermissions: Optional[PermissionsType] = (
|
|
139
144
|
requiredPermissions
|
|
140
145
|
)
|
|
146
|
+
self.__logTimeoutError = logTimeoutError
|
|
141
147
|
|
|
142
148
|
self.__funcAcceptsAccessControlContext = (
|
|
143
149
|
checkAccessControlContextSignature(func)
|
|
@@ -315,7 +321,7 @@ class _VortexRPC:
|
|
|
315
321
|
payloadEnvelope,
|
|
316
322
|
timeout=self.__timeoutSeconds,
|
|
317
323
|
resultCheck=False,
|
|
318
|
-
logTimeoutError=
|
|
324
|
+
logTimeoutError=self.__logTimeoutError,
|
|
319
325
|
destVortexName=vortexName,
|
|
320
326
|
destVortexUuid=vortexUuid,
|
|
321
327
|
)
|
|
@@ -366,7 +372,8 @@ class _VortexRPC:
|
|
|
366
372
|
"""
|
|
367
373
|
|
|
368
374
|
if failure.check(TimeoutError):
|
|
369
|
-
|
|
375
|
+
if self.__logTimeoutError:
|
|
376
|
+
logger.error("Received RPC timeout for %s", self.__funcName)
|
|
370
377
|
|
|
371
378
|
return Failure(
|
|
372
379
|
Exception(
|
|
@@ -423,6 +430,7 @@ def vortexRPC(
|
|
|
423
430
|
deferToThread: bool = False,
|
|
424
431
|
inlineCallbacks: bool = False,
|
|
425
432
|
requiredPermissions: Optional[PermissionsType] = None,
|
|
433
|
+
logTimeoutError: bool = False,
|
|
426
434
|
):
|
|
427
435
|
"""Vortex RPC Decorator
|
|
428
436
|
|
|
@@ -444,6 +452,9 @@ def vortexRPC(
|
|
|
444
452
|
:param inlineCallbacks: Should the function be wrapped in the twisted
|
|
445
453
|
@inlinecallbacks decorator before it's called?.
|
|
446
454
|
|
|
455
|
+
:param logTimeoutError: When False, RPC timeouts do not log at ERROR.
|
|
456
|
+
Defaults to False so callers can handle expected timeouts locally.
|
|
457
|
+
|
|
447
458
|
:return A wrapped function, that will now work as an RPC call.
|
|
448
459
|
|
|
449
460
|
|
|
@@ -485,6 +496,7 @@ def vortexRPC(
|
|
|
485
496
|
deferToThread,
|
|
486
497
|
inlineCallbacks,
|
|
487
498
|
requiredPermissions=requiredPermissions,
|
|
499
|
+
logTimeoutError=logTimeoutError,
|
|
488
500
|
)
|
|
489
501
|
|
|
490
502
|
return decorator
|
|
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
|
|
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
|