vortexpy 4.0.16__tar.gz → 4.0.19__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.0.16 → vortexpy-4.0.19}/PKG-INFO +1 -1
- {vortexpy-4.0.16 → vortexpy-4.0.19}/pyproject.toml +1 -1
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/SerialiseUtil.py +13 -3
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/__init__.py +1 -1
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortexpy.egg-info/PKG-INFO +1 -1
- {vortexpy-4.0.16 → vortexpy-4.0.19}/LICENSE +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/README.md +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/setup.cfg +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/DataWrapTuple.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/DeferUtil.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/Jsonable.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/Payload.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/PayloadEndpoint.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/PayloadEndpointTest.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/PayloadEnvelope.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/PayloadFilterKeys.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/PayloadIO.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/PayloadPriority.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/PayloadResponse.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/PayloadResponseTest.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/PayloadTest.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/PerformTestActionTuple.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/TestTuple.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/Tuple.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/TupleAction.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/TupleActionVortex.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/TupleDataForTest.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/TuplePerfTest.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/TuplePolymorphicTupleTypeFieldArgTest.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/TupleRestfulTest.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/TupleSelector.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/TupleTest.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/VortexABC.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/VortexClientHttp.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/VortexClientHttpTest.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/VortexClientTcp.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/VortexClientWebsocketFactory.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/VortexConnectionABC.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/VortexFactory.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/VortexPayloadProtocol.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/VortexServer.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/VortexServerConnection.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/VortexServerHttpResource.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/VortexServerTcp.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/VortexServerWebsocket.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/VortexTcpMemoryLeakPayloadTest.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/VortexTcpMemoryLeakRawTest.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/VortexTest.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/VortexUtil.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/VortexWritePushProducer.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/data_loader/TupleDataLiveLockManager.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/data_loader/TupleDataLoader.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/data_loader/TupleDataLoaderDelegate.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/data_loader/TupleDataLoaderTupleABC.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/data_loader/TupleDataLoaderTuples.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/data_loader/__init__.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/event_bus/TupleChangeEventABC.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/event_bus/TupleChangeEventBus.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/event_bus/TupleChangeEventBusObserverABC.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/event_bus/__init__.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/handler/TupleActionProcessor.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/handler/TupleActionProcessorProxy.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/handler/TupleActionProcessorTestHandler.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/handler/TupleDataActionClient.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/handler/TupleDataObservableCache.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/handler/TupleDataObservableHandler.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/handler/TupleDataObservableProxyHandler.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/handler/TupleDataObservableTestHandler.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/handler/TupleDataObserverClient.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/handler/VortexJSTupleLoaderTestHandler.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/handler/__init__.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/restful/GzippedDataHttpClient.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/restful/GzippedDataHttpClientTest.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/restful/GzippedPayloadHttpClient.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/restful/RestfulHttpClient.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/restful/RestfulHttpClientTest.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/restful/RestfulResource.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/restful/RestfulResourceTest.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/restful/__init__.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/rpc/RPC.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/rpc/RPCTest.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/rpc/__init__.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/sqla_orm/OrmCrudHandler.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/sqla_orm/TupleProviderForDb.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/sqla_orm/VortexTupleJson.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/sqla_orm/__init__.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/storage/TupleStorageSqlite.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortex/storage/__init__.py +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortexpy.egg-info/SOURCES.txt +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortexpy.egg-info/dependency_links.txt +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/vortexpy.egg-info/requires.txt +0 -0
- {vortexpy-4.0.16 → vortexpy-4.0.19}/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.0.
|
|
7
|
+
version = "4.0.19"
|
|
8
8
|
authors = [{name = "Synerty", email = "contact@synerty.com"}]
|
|
9
9
|
description = "Synertys observable, routable, data serialisation and transport code."
|
|
10
10
|
keywords = [
|
|
@@ -6,12 +6,14 @@
|
|
|
6
6
|
* Website : http://www.synerty.com
|
|
7
7
|
* Support : support@synerty.com
|
|
8
8
|
"""
|
|
9
|
+
|
|
9
10
|
import decimal
|
|
10
11
|
import logging
|
|
11
12
|
from base64 import b64encode, b64decode
|
|
12
13
|
from collections import defaultdict
|
|
13
14
|
from datetime import datetime, date
|
|
14
15
|
|
|
16
|
+
import pytz
|
|
15
17
|
from sqlalchemy.orm.collections import InstrumentedList
|
|
16
18
|
|
|
17
19
|
logger = logging.getLogger(__name__)
|
|
@@ -59,6 +61,9 @@ V_TRUE = "1"
|
|
|
59
61
|
V_FALSE = "0"
|
|
60
62
|
|
|
61
63
|
ISO8601_ORA = "YYYY-MM-DD HH24:MI:SS.FF6"
|
|
64
|
+
|
|
65
|
+
# This will print a date using TO_CHAR(), in the format fromStr() below expects
|
|
66
|
+
ISO8601_ORA_WITH_TZ = "YYYY-MM-DD HH24:MI:SS.FF6TZHTZM"
|
|
62
67
|
ISO8601 = "%Y-%m-%d %H:%M:%S.%f%z"
|
|
63
68
|
ISO8601_JS_REGEXP = r"^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}[Z]{1}"
|
|
64
69
|
ISO8601_JS_FORMAT = "%Y-%m-%dT%H:%M:%S.%fZ"
|
|
@@ -210,11 +215,16 @@ def fromStr(val: str, typeName: str):
|
|
|
210
215
|
if typeName == T_DATETIME:
|
|
211
216
|
# TODO: Check with ISO8601_JS_REGEXP
|
|
212
217
|
if len(val) == len("2017-06-06T09:40:37.097Z"):
|
|
213
|
-
return datetime.strptime(val, ISO8601_JS_FORMAT)
|
|
218
|
+
return datetime.strptime(val, ISO8601_JS_FORMAT).replace(
|
|
219
|
+
tzinfo=pytz.UTC
|
|
220
|
+
)
|
|
214
221
|
|
|
215
222
|
if len(val) <= len("2017-06-06 09:40:37.097068"):
|
|
216
|
-
logger.warning(
|
|
217
|
-
|
|
223
|
+
logger.warning(
|
|
224
|
+
"Parsing date time with no timezone: %s Setting TZ to UTC",
|
|
225
|
+
val,
|
|
226
|
+
)
|
|
227
|
+
return datetime.strptime(val, ISO8601_NOTZ).replace(tzinfo=pytz.UTC)
|
|
218
228
|
|
|
219
229
|
return datetime.strptime(val, ISO8601)
|
|
220
230
|
|
|
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
|