syncmodels 0.1.348__py2.py3-none-any.whl → 0.1.350__py2.py3-none-any.whl

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.
syncmodels/__init__.py CHANGED
@@ -2,4 +2,4 @@
2
2
 
3
3
  __author__ = """Asterio Gonzalez"""
4
4
  __email__ = "asterio.gonzalez@gmail.com"
5
- __version__ = "0.1.348"
5
+ __version__ = "0.1.350"
@@ -1,7 +1,7 @@
1
1
  import os
2
2
  import re
3
3
  from typing import Dict, Any
4
- from datetime import datetime
4
+ from datetime import datetime, date
5
5
  import pandas as pd
6
6
 
7
7
 
@@ -23,7 +23,7 @@ class JSONVerter:
23
23
 
24
24
  @classmethod
25
25
  def _to_json(cls, value: Any) -> Any:
26
- if isinstance(value, datetime):
26
+ if isinstance(value, (datetime, date)):
27
27
  value = value.strftime("%FT%T.%f%Z")
28
28
  return value
29
29
 
syncmodels/session/sql.py CHANGED
@@ -96,14 +96,16 @@ class iSQLSession(iSession):
96
96
  data = data or await self.get_samples(uri, N, **kw)
97
97
  if data:
98
98
  struct = self._map_result_structure(data, rows=N)
99
-
100
- names, types, d_fields, monotonic_since_key = self.guess_schema(
101
- data[struct["names"]], data[struct["data"]]
102
- )
103
- schema = StructShema(names, types, d_fields, monotonic_since_key, struct)
104
- else:
105
- schema = await super()._inspect_schema(uri, data, **kw)
106
-
99
+ if struct.get("data"):
100
+ names, types, d_fields, monotonic_since_key = self.guess_schema(
101
+ data[struct["names"]], data[struct["data"]]
102
+ )
103
+ schema = StructShema(
104
+ names, types, d_fields, monotonic_since_key, struct
105
+ )
106
+ return schema
107
+
108
+ schema = await super()._inspect_schema(uri, data, **kw)
107
109
  return schema
108
110
 
109
111
  async def update_params(self, url: URI, params: JSON, context: JSON):
@@ -153,19 +155,19 @@ class iSQLSession(iSession):
153
155
  # schema = self._schema(self.context)
154
156
  struct = schema.struct
155
157
 
156
- data_key = struct["data"]
157
- rows = stream.pop(data_key)
158
-
159
- # map the remaing info into meta
160
- for key, value in struct.items():
161
- if value in stream:
162
- meta[key] = stream[value]
163
- cols = meta["names"]
164
-
165
158
  _stream = []
166
- for row in rows:
167
- item = {cols[i]: value for i, value in enumerate(row)}
168
- _stream.append(item)
159
+ if data_key := struct.get("data"):
160
+ rows = stream.pop(data_key)
161
+
162
+ # map the remaing info into meta
163
+ for key, value in struct.items():
164
+ if value in stream:
165
+ meta[key] = stream[value]
166
+ cols = meta["names"]
167
+
168
+ for row in rows:
169
+ item = {cols[i]: value for i, value in enumerate(row)}
170
+ _stream.append(item)
169
171
 
170
172
  meta["count"] = len(_stream)
171
173
  return _stream, meta
syncmodels/storage.py CHANGED
@@ -1459,7 +1459,10 @@ class WaveStorage(iWaves, iStorage):
1459
1459
  # so gobal search must loop over all/wanted namespaces
1460
1460
  _uri = parse_duri(tube)
1461
1461
  _uri["path"] = f"/{TUBE_META}"
1462
- _uri["id"] = _uri.pop("_path")
1462
+ id = _uri.pop("_path")
1463
+ if isinstance(id, str):
1464
+ id = id.replace("/", "_")
1465
+ _uri["id"] = id
1463
1466
  holder = build_uri(**_uri)
1464
1467
 
1465
1468
  # query = f"{holder}?{ORG_KEY}={tube}"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: syncmodels
3
- Version: 0.1.348
3
+ Version: 0.1.350
4
4
  Summary: Synchronizable Models
5
5
  Home-page: https://github.com/asterio.gonzalez/syncmodels
6
6
  Author: Asterio Gonzalez
@@ -18,7 +18,7 @@ Classifier: Programming Language :: Python :: 3.11
18
18
  Requires-Python: >=3.6
19
19
  License-File: LICENSE
20
20
  License-File: AUTHORS.rst
21
- Requires-Dist: agptools>=0.1.348
21
+ Requires-Dist: agptools>=0.1.350
22
22
  Requires-Dist: aiocache
23
23
  Requires-Dist: aiohttp
24
24
  Requires-Dist: Click
@@ -1,4 +1,4 @@
1
- syncmodels/__init__.py,sha256=zRskcOy0OBfyNpVc1dXZ89VD42tDgHQ5s_KX02h-_OU,146
1
+ syncmodels/__init__.py,sha256=p2V7tYwfkSvIWAMSh134lELbuLHaXp8HZfqmScZPN6Y,146
2
2
  syncmodels/context.py,sha256=k1Gs_ip9BfyRFpyRnzqYvRDKo0sYBqJsh6z9sWln9oE,451
3
3
  syncmodels/crawler.py,sha256=lx0IU586JD0qcdozWiv0y7970CkUEg3SzFB6gOYDS6I,94540
4
4
  syncmodels/crud.py,sha256=oZIcwEKR2i-lesEF_059Y4yThohd9m7gs6R6xYgLH-I,15351
@@ -11,7 +11,7 @@ syncmodels/registry.py,sha256=YaQtgbSwa0je1MpCcVHALI3_b85vrddyOlhsnrUcKZs,8224
11
11
  syncmodels/requests.py,sha256=wWoC5hPDm1iBM_zrlyKRauzhXgdKR3pT5RqyC-5UZhQ,538
12
12
  syncmodels/runner.py,sha256=Tb5KTu_XFxCphrtfcnmIqTItG91el7P-9B5WaDTMp18,5928
13
13
  syncmodels/schema.py,sha256=HMr0LcB40se5sqHF4WYQIdzXUphLa2fhf0KFFUMzpDM,2726
14
- syncmodels/storage.py,sha256=x01TmpETMrHvQvliL3TXfUp18RKr6Huz6DmrRZWD1DU,76418
14
+ syncmodels/storage.py,sha256=Egc9TynxjqfGHcdOW8bv-uiU6iTymHoIlj8XpD_mk6U,76504
15
15
  syncmodels/syncmodels.py,sha256=jcUxVbv1hrx5hI81VCO1onIM6WyORTqJVPwIqlPocOc,10596
16
16
  syncmodels/timequeue.py,sha256=YRd3ULRaIhoszaBsYhfr0epMqAbL6-NwVEtScjUYttM,595
17
17
  syncmodels/wave.py,sha256=Gra22BLiA9z2nF-6diXpjAc4GZv9nebmyvHxdAfXec4,7764
@@ -29,7 +29,7 @@ syncmodels/helpers/explorer.py,sha256=-Dol3z1pALCMI9OPSvVbROaTzLjbUpS0suJ82Z6Rmb
29
29
  syncmodels/helpers/faker.py,sha256=tPtibNh28KoHb9kcwE9WaPdPrSrN6xMbCv5HhNFEVG0,1222
30
30
  syncmodels/helpers/general.py,sha256=UAcSfrvsaT15iJuxsR3WMk51UjpLLGDf14xmpBojndg,6160
31
31
  syncmodels/helpers/geojson.py,sha256=9VZjdEw19fLS_Q9topapUOPGxRg2D4GOqm2tlx11W7M,7370
32
- syncmodels/helpers/importers.py,sha256=KImR9pQu4ir6EI6Ipta0q3RWloFT_VTJi67kM0lZsKQ,3919
32
+ syncmodels/helpers/importers.py,sha256=PWkORD2Qb0Ej2i8g34AODgBP7-oQlVB__9-_DlX2RmM,3933
33
33
  syncmodels/helpers/loaders.py,sha256=aus0aRcbU1vVa_zWo42aX6uV3B0fQ0aQpkTWlR9xGLA,4325
34
34
  syncmodels/helpers/models.py,sha256=c_ATzmiw5mVY1IGnwmyhjIuu5d2idHU-XeRigZSMkOQ,719
35
35
  syncmodels/helpers/orion.py,sha256=RY3hEVusUJDuSBN8YBy--RWnZ4TtP0jOUtNuHC1ySjg,30685
@@ -300,13 +300,13 @@ syncmodels/model/schema_org/xpathtype.py,sha256=D8gKiCrGSSuUVYw7BIWmOIUbKATfv2Ip
300
300
  syncmodels/session/__init__.py,sha256=89o6oeJsUaaiZENZDYJ2lP2PQBWX6OZPIzQacWjNh2k,15606
301
301
  syncmodels/session/http.py,sha256=tf7z0ccAEYoCOZT4Ukv3NBXz9hUO3vs2s9bm491pCj8,1480
302
302
  syncmodels/session/postgresql.py,sha256=ZMIu1Rv93pKfvFlovFBmWArzlrT2xaQWNYGZT_LW61k,175
303
- syncmodels/session/sql.py,sha256=auZ_3RZTSWViED4UrExYaes42Y2bTZKixEsfOpa_zaU,7036
303
+ syncmodels/session/sql.py,sha256=Ia-Yrs_hOhAIZ4IcoVB5i8mQZVCULfnV9-TQz49knZU,7181
304
304
  syncmodels/session/sqlite.py,sha256=nCDjopLiBpX1F10qkKoARM7JrVdIpJ1WdGOduFVxaiA,2080
305
305
  syncmodels/source/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
306
- syncmodels-0.1.348.dist-info/AUTHORS.rst,sha256=3ZPoqg8Aav8DSYKd0fwcwn4_5HwSiMLart0E5Un00-U,168
307
- syncmodels-0.1.348.dist-info/LICENSE,sha256=uzMOYtIiUsnsD0xHJR7aJWJ4v_bvan0kTnvufy5eNoA,1075
308
- syncmodels-0.1.348.dist-info/METADATA,sha256=Eag9GhrcYqHzx4X8iRknn0m6mLU1nEurWlD7DI_iv-I,2700
309
- syncmodels-0.1.348.dist-info/WHEEL,sha256=SrDKpSbFN1G94qcmBqS9nyHcDMp9cUS9OC06hC0G3G0,109
310
- syncmodels-0.1.348.dist-info/entry_points.txt,sha256=dMnigjZsHMxTwXiiZyBZdBbMYE0-hY3L5cG15EcDAzw,51
311
- syncmodels-0.1.348.dist-info/top_level.txt,sha256=2DfQ9NuAhKMjY3BvQGVBA7GfqTm7EoHNbaehSUiqiHQ,11
312
- syncmodels-0.1.348.dist-info/RECORD,,
306
+ syncmodels-0.1.350.dist-info/AUTHORS.rst,sha256=3ZPoqg8Aav8DSYKd0fwcwn4_5HwSiMLart0E5Un00-U,168
307
+ syncmodels-0.1.350.dist-info/LICENSE,sha256=uzMOYtIiUsnsD0xHJR7aJWJ4v_bvan0kTnvufy5eNoA,1075
308
+ syncmodels-0.1.350.dist-info/METADATA,sha256=-SG4dI92gerssOAkJjppwB-bHc2CDk4ymVGhkd9DOYg,2700
309
+ syncmodels-0.1.350.dist-info/WHEEL,sha256=SrDKpSbFN1G94qcmBqS9nyHcDMp9cUS9OC06hC0G3G0,109
310
+ syncmodels-0.1.350.dist-info/entry_points.txt,sha256=dMnigjZsHMxTwXiiZyBZdBbMYE0-hY3L5cG15EcDAzw,51
311
+ syncmodels-0.1.350.dist-info/top_level.txt,sha256=2DfQ9NuAhKMjY3BvQGVBA7GfqTm7EoHNbaehSUiqiHQ,11
312
+ syncmodels-0.1.350.dist-info/RECORD,,