meerschaum 2.4.7__py3-none-any.whl → 2.4.9__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.
@@ -82,7 +82,10 @@ DB_TO_PD_DTYPES: Dict[str, Union[str, Dict[str, str]]] = {
82
82
  'TIMESTAMPTZ': 'datetime64[ns, UTC]',
83
83
  'DATE': 'datetime64[ns]',
84
84
  'DATETIME': 'datetime64[ns]',
85
+ 'DATETIME2': 'datetime64[ns]',
86
+ 'DATETIMEOFFSET': 'datetime64[ns, UTC]',
85
87
  'TEXT': 'string[pyarrow]',
88
+ 'VARCHAR': 'string[pyarrow]',
86
89
  'CLOB': 'string[pyarrow]',
87
90
  'BOOL': 'bool[pyarrow]',
88
91
  'BOOLEAN': 'bool[pyarrow]',
@@ -156,7 +159,7 @@ PD_TO_DB_DTYPES_FLAVORS: Dict[str, Dict[str, str]] = {
156
159
  'postgresql': 'TIMESTAMP',
157
160
  'mariadb': 'DATETIME',
158
161
  'mysql': 'DATETIME',
159
- 'mssql': 'DATETIME',
162
+ 'mssql': 'DATETIME2',
160
163
  'oracle': 'DATE',
161
164
  'sqlite': 'DATETIME',
162
165
  'duckdb': 'TIMESTAMP',
@@ -169,7 +172,7 @@ PD_TO_DB_DTYPES_FLAVORS: Dict[str, Dict[str, str]] = {
169
172
  'postgresql': 'TIMESTAMP',
170
173
  'mariadb': 'TIMESTAMP',
171
174
  'mysql': 'TIMESTAMP',
172
- 'mssql': 'TIMESTAMP',
175
+ 'mssql': 'DATETIMEOFFSET',
173
176
  'oracle': 'TIMESTAMP',
174
177
  'sqlite': 'TIMESTAMP',
175
178
  'duckdb': 'TIMESTAMP',
@@ -245,13 +248,13 @@ PD_TO_DB_DTYPES_FLAVORS: Dict[str, Dict[str, str]] = {
245
248
  'uuid': {
246
249
  'timescaledb': 'UUID',
247
250
  'postgresql': 'UUID',
248
- 'mariadb': 'CHAR(32)',
249
- 'mysql': 'CHAR(32)',
251
+ 'mariadb': 'CHAR(36)',
252
+ 'mysql': 'CHAR(36)',
250
253
  'mssql': 'UNIQUEIDENTIFIER',
251
254
  ### I know this is too much space, but erring on the side of caution.
252
255
  'oracle': 'NVARCHAR(2000)',
253
256
  'sqlite': 'TEXT',
254
- 'duckdb': 'UUID',
257
+ 'duckdb': 'VARCHAR',
255
258
  'citus': 'UUID',
256
259
  'cockroachdb': 'UUID',
257
260
  'default': 'TEXT',
@@ -289,7 +292,7 @@ PD_TO_SQLALCHEMY_DTYPES_FLAVORS: Dict[str, Dict[str, str]] = {
289
292
  'postgresql': 'DateTime',
290
293
  'mariadb': 'DateTime',
291
294
  'mysql': 'DateTime',
292
- 'mssql': 'DateTime',
295
+ 'mssql': 'sqlalchemy.dialects.mssql.DATETIME2',
293
296
  'oracle': 'DateTime',
294
297
  'sqlite': 'DateTime',
295
298
  'duckdb': 'DateTime',
@@ -302,7 +305,7 @@ PD_TO_SQLALCHEMY_DTYPES_FLAVORS: Dict[str, Dict[str, str]] = {
302
305
  'postgresql': 'DateTime',
303
306
  'mariadb': 'DateTime',
304
307
  'mysql': 'DateTime',
305
- 'mssql': 'DateTime',
308
+ 'mssql': 'sqlalchemy.dialects.mssql.DATETIMEOFFSET',
306
309
  'oracle': 'DateTime',
307
310
  'sqlite': 'DateTime',
308
311
  'duckdb': 'DateTime',
@@ -350,16 +353,16 @@ PD_TO_SQLALCHEMY_DTYPES_FLAVORS: Dict[str, Dict[str, str]] = {
350
353
  'default': 'UnicodeText',
351
354
  },
352
355
  'json': {
353
- 'timescaledb': 'JSONB',
354
- 'postgresql': 'JSONB',
356
+ 'timescaledb': 'sqlalchemy.dialects.postgresql.JSONB',
357
+ 'postgresql': 'sqlalchemy.dialects.postgresql.JSONB',
355
358
  'mariadb': 'UnicodeText',
356
359
  'mysql': 'UnicodeText',
357
360
  'mssql': 'UnicodeText',
358
361
  'oracle': 'UnicodeText',
359
362
  'sqlite': 'UnicodeText',
360
363
  'duckdb': 'TEXT',
361
- 'citus': 'JSONB',
362
- 'cockroachdb': 'JSONB',
364
+ 'citus': 'sqlalchemy.dialects.postgresql.JSONB',
365
+ 'cockroachdb': 'sqlalchemy.dialects.postgresql.JSONB',
363
366
  'default': 'UnicodeText',
364
367
  },
365
368
  'numeric': {
@@ -378,12 +381,12 @@ PD_TO_SQLALCHEMY_DTYPES_FLAVORS: Dict[str, Dict[str, str]] = {
378
381
  'uuid': {
379
382
  'timescaledb': 'Uuid',
380
383
  'postgresql': 'Uuid',
381
- 'mariadb': 'Uuid',
382
- 'mysql': 'Uuid',
384
+ 'mariadb': 'sqlalchemy.dialects.mysql.CHAR(36)',
385
+ 'mysql': 'sqlalchemy.dialects.mysql.CHAR(36)',
383
386
  'mssql': 'Uuid',
384
387
  'oracle': 'UnicodeText',
385
- 'sqlite': 'Uuid',
386
- 'duckdb': 'Uuid',
388
+ 'sqlite': 'UnicodeText',
389
+ 'duckdb': 'UnicodeText',
387
390
  'citus': 'Uuid',
388
391
  'cockroachdb': 'Uuid',
389
392
  'default': 'Uuid',
@@ -453,6 +456,7 @@ def get_db_type_from_pd_type(
453
456
  The database data type for the incoming Pandas data type.
454
457
  If nothing can be found, a warning will be thrown and 'TEXT' will be returned.
455
458
  """
459
+ import ast
456
460
  from meerschaum.utils.warnings import warn
457
461
  from meerschaum.utils.packages import attempt_import
458
462
  from meerschaum.utils.dtypes import are_dtypes_equal
@@ -505,9 +509,19 @@ def get_db_type_from_pd_type(
505
509
  db_type = flavor_types.get(flavor, default_flavor_type)
506
510
  if not as_sqlalchemy:
507
511
  return db_type
508
- if db_type == 'JSONB':
509
- sqlalchemy_dialects_postgresql = attempt_import('sqlalchemy.dialects.postgresql')
510
- return sqlalchemy_dialects_postgresql.JSONB
512
+
513
+ if db_type.startswith('sqlalchemy.dialects'):
514
+ dialect, typ_class_name = db_type.replace('sqlalchemy.dialects.', '').split('.', maxsplit=2)
515
+ arg = None
516
+ if '(' in typ_class_name:
517
+ typ_class_name, arg_str = typ_class_name.split('(', maxsplit=1)
518
+ arg = ast.literal_eval(arg_str.rstrip(')'))
519
+ sqlalchemy_dialects_flavor_module = attempt_import(f'sqlalchemy.dialects.{dialect}')
520
+ cls = getattr(sqlalchemy_dialects_flavor_module, typ_class_name)
521
+ if arg is None:
522
+ return cls
523
+ return cls(arg)
524
+
511
525
  if 'numeric' in db_type.lower():
512
526
  numeric_type_str = PD_TO_DB_DTYPES_FLAVORS['numeric'].get(flavor, 'NUMERIC')
513
527
  if flavor not in NUMERIC_PRECISION_FLAVORS:
@@ -276,10 +276,10 @@ def pprint_pipe_columns(
276
276
 
277
277
 
278
278
  def pipe_repr(
279
- pipe: mrsm.Pipe,
280
- as_rich_text: bool = False,
281
- ansi: Optional[bool] = None,
282
- ) -> Union[str, 'rich.text.Text']:
279
+ pipe: mrsm.Pipe,
280
+ as_rich_text: bool = False,
281
+ ansi: Optional[bool] = None,
282
+ ) -> Union[str, 'rich.text.Text']:
283
283
  """
284
284
  Return a formatted string for representing a `meerschaum.Pipe`.
285
285
  """
meerschaum/utils/misc.py CHANGED
@@ -390,10 +390,10 @@ def flatten_pipes_dict(pipes_dict: PipesDict) -> List[Pipe]:
390
390
 
391
391
 
392
392
  def round_time(
393
- dt: Optional[datetime] = None,
394
- date_delta: Optional[timedelta] = None,
395
- to: 'str' = 'down'
396
- ) -> datetime:
393
+ dt: Optional[datetime] = None,
394
+ date_delta: Optional[timedelta] = None,
395
+ to: 'str' = 'down'
396
+ ) -> datetime:
397
397
  """
398
398
  Round a datetime object to a multiple of a timedelta.
399
399
  http://stackoverflow.com/questions/3463930/how-to-round-the-minute-of-a-datetime-object-python
@@ -128,7 +128,8 @@ packages['sql'] = {
128
128
  'numpy' : 'numpy>=1.18.5',
129
129
  'pandas' : 'pandas[parquet]>=2.0.1',
130
130
  'pyarrow' : 'pyarrow>=16.1.0',
131
- 'dask' : 'dask[dataframe]>=2024.5.1',
131
+ 'dask' : 'dask[complete]>=2024.5.1',
132
+ 'partd' : 'partd>=1.4.2',
132
133
  'pytz' : 'pytz',
133
134
  'joblib' : 'joblib>=0.17.0',
134
135
  'sqlalchemy' : 'SQLAlchemy>=2.0.5',
meerschaum/utils/sql.py CHANGED
@@ -38,6 +38,9 @@ version_queries = {
38
38
  'oracle': "SELECT version from PRODUCT_COMPONENT_VERSION WHERE rownum = 1",
39
39
  }
40
40
  SKIP_IF_EXISTS_FLAVORS = {'mssql', 'oracle'}
41
+ DROP_IF_EXISTS_FLAVORS = {
42
+ 'timescaledb', 'postgresql', 'citus', 'mssql', 'mysql', 'mariadb', 'sqlite',
43
+ }
41
44
  COALESCE_UNIQUE_INDEX_FLAVORS = {'timescaledb', 'postgresql', 'citus'}
42
45
  update_queries = {
43
46
  'default': """
@@ -1284,11 +1287,11 @@ def get_db_version(conn: 'SQLConnector', debug: bool = False) -> Union[str, None
1284
1287
 
1285
1288
 
1286
1289
  def get_rename_table_queries(
1287
- old_table: str,
1288
- new_table: str,
1289
- flavor: str,
1290
- schema: Optional[str] = None,
1291
- ) -> List[str]:
1290
+ old_table: str,
1291
+ new_table: str,
1292
+ flavor: str,
1293
+ schema: Optional[str] = None,
1294
+ ) -> List[str]:
1292
1295
  """
1293
1296
  Return queries to alter a table's name.
1294
1297
 
@@ -1317,12 +1320,13 @@ def get_rename_table_queries(
1317
1320
  if flavor == 'mssql':
1318
1321
  return [f"EXEC sp_rename '{old_table}', '{new_table}'"]
1319
1322
 
1323
+ if_exists_str = "IF EXISTS" if flavor in DROP_IF_EXISTS_FLAVORS else ""
1320
1324
  if flavor == 'duckdb':
1321
1325
  return [
1322
1326
  get_create_table_query(f"SELECT * FROM {old_table_name}", tmp_table, 'duckdb', schema),
1323
1327
  get_create_table_query(f"SELECT * FROM {tmp_table_name}", new_table, 'duckdb', schema),
1324
- f"DROP TABLE {tmp_table_name}",
1325
- f"DROP TABLE {old_table_name}",
1328
+ f"DROP TABLE {if_exists_str} {tmp_table_name}",
1329
+ f"DROP TABLE {if_exists_str} {old_table_name}",
1326
1330
  ]
1327
1331
 
1328
1332
  return [f"ALTER TABLE {old_table_name} RENAME TO {new_table_name}"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: meerschaum
3
- Version: 2.4.7
3
+ Version: 2.4.9
4
4
  Summary: Sync Time-Series Pipes with Meerschaum
5
5
  Home-page: https://meerschaum.io
6
6
  Author: Bennett Meares
@@ -44,7 +44,8 @@ Requires-Dist: valkey >=6.0.0 ; extra == 'api'
44
44
  Requires-Dist: numpy >=1.18.5 ; extra == 'api'
45
45
  Requires-Dist: pandas[parquet] >=2.0.1 ; extra == 'api'
46
46
  Requires-Dist: pyarrow >=16.1.0 ; extra == 'api'
47
- Requires-Dist: dask[dataframe] >=2024.5.1 ; extra == 'api'
47
+ Requires-Dist: dask[complete] >=2024.5.1 ; extra == 'api'
48
+ Requires-Dist: partd >=1.4.2 ; extra == 'api'
48
49
  Requires-Dist: pytz ; extra == 'api'
49
50
  Requires-Dist: joblib >=0.17.0 ; extra == 'api'
50
51
  Requires-Dist: SQLAlchemy >=2.0.5 ; extra == 'api'
@@ -237,7 +238,8 @@ Requires-Dist: pycparser >=2.21.0 ; extra == 'full'
237
238
  Requires-Dist: numpy >=1.18.5 ; extra == 'full'
238
239
  Requires-Dist: pandas[parquet] >=2.0.1 ; extra == 'full'
239
240
  Requires-Dist: pyarrow >=16.1.0 ; extra == 'full'
240
- Requires-Dist: dask[dataframe] >=2024.5.1 ; extra == 'full'
241
+ Requires-Dist: dask[complete] >=2024.5.1 ; extra == 'full'
242
+ Requires-Dist: partd >=1.4.2 ; extra == 'full'
241
243
  Requires-Dist: pytz ; extra == 'full'
242
244
  Requires-Dist: joblib >=0.17.0 ; extra == 'full'
243
245
  Requires-Dist: SQLAlchemy >=2.0.5 ; extra == 'full'
@@ -277,7 +279,8 @@ Provides-Extra: sql
277
279
  Requires-Dist: numpy >=1.18.5 ; extra == 'sql'
278
280
  Requires-Dist: pandas[parquet] >=2.0.1 ; extra == 'sql'
279
281
  Requires-Dist: pyarrow >=16.1.0 ; extra == 'sql'
280
- Requires-Dist: dask[dataframe] >=2024.5.1 ; extra == 'sql'
282
+ Requires-Dist: dask[complete] >=2024.5.1 ; extra == 'sql'
283
+ Requires-Dist: partd >=1.4.2 ; extra == 'sql'
281
284
  Requires-Dist: pytz ; extra == 'sql'
282
285
  Requires-Dist: joblib >=0.17.0 ; extra == 'sql'
283
286
  Requires-Dist: SQLAlchemy >=2.0.5 ; extra == 'sql'
@@ -4,7 +4,7 @@ meerschaum/_internal/__init__.py,sha256=ilC7utfKtin7GAvuN34fKyUQYfPyqH0Mm3MJF5iy
4
4
  meerschaum/_internal/entry.py,sha256=5vBZxQbtN0l9lia9HcvvLVWDCpSeThg-505dGhKiOBo,12234
5
5
  meerschaum/_internal/arguments/__init__.py,sha256=_nSKKVLXNsJeSv-buxEZsx8_c0BAbkhRyE4nT6Bv6q0,541
6
6
  meerschaum/_internal/arguments/_parse_arguments.py,sha256=602U0rQrKKGfJQYY_c13GcCD0avjOa44c5GoqIAD_iE,15805
7
- meerschaum/_internal/arguments/_parser.py,sha256=LfiVDTr1akj5D31qpJAAXKxMcnLQiD3jRpZtvvHWrAo,14917
7
+ meerschaum/_internal/arguments/_parser.py,sha256=l2RYIn-1MEpjyUz2yczkeeuwg2liYaO2MNvEZ4Amk1o,16364
8
8
  meerschaum/_internal/docs/__init__.py,sha256=ZQYHWo6n0kfLLkyG36YXqTYvv2Pc7it5HZHMylT6cBA,126
9
9
  meerschaum/_internal/docs/index.py,sha256=IBVotNZ6f9KTSefXq5cCikcZ7mnjDy98JOeb-KPLkyg,24514
10
10
  meerschaum/_internal/gui/__init__.py,sha256=KF6Opae0aBOjIndMZ2txoPs7ozCXRlR-lcTsicLO7fc,1313
@@ -41,8 +41,8 @@ meerschaum/actions/reload.py,sha256=gMXeFBGVfyQ7uhKhYf6bLaDMD0fLPcA9BrLBSiuvWIc,
41
41
  meerschaum/actions/restart.py,sha256=6ffp3-X9eTEgunVSdD41HnOwqp71yjuSAmXJ5j39ONI,3038
42
42
  meerschaum/actions/setup.py,sha256=KkAGWcgwzl_L6A19fTmTX1KtBjW2FwD8QenLjPy0mQQ,3205
43
43
  meerschaum/actions/sh.py,sha256=fLfTJaacKu4sjLTRqEzzYlT2WbbdZBEczsKb6F-qAek,2026
44
- meerschaum/actions/show.py,sha256=uNXOfh1Z44i6YpmAcE_uM_6s9r3lNh8CnstpvS6tTjE,28179
45
- meerschaum/actions/sql.py,sha256=g64Qr1uDlyqXmOOOY4-2pvIGQ_V5VNk1_fUC5wO7h9M,4262
44
+ meerschaum/actions/show.py,sha256=T8Ol1o-762cI9rlUzd-8svvwgT4slYXYfOPQETh9Koo,28446
45
+ meerschaum/actions/sql.py,sha256=8BSvlnccfEqLrscLq67Toa5D4FJ7I598IdxEe_yzmV8,4263
46
46
  meerschaum/actions/stack.py,sha256=ZwrCTGJ0x3jjZkRieWcvqasQHYCqNtB1HYvTX-r3Z3g,5996
47
47
  meerschaum/actions/start.py,sha256=7B6zLHh-DNWnJta1h_RV9ccGJ4EnbEDu3k-GdwAsU8M,19208
48
48
  meerschaum/actions/stop.py,sha256=5fdUw70YN-yuUWrC-NhA88cxr9FZ5NbssbQ8xXO8nFU,4632
@@ -123,7 +123,7 @@ meerschaum/api/routes/_index.py,sha256=QI6CBo6pI2Zi0a6fJHDjZfiLa9f4okb0BGe3A_JD0
123
123
  meerschaum/api/routes/_jobs.py,sha256=vO6CJYUme7bHIOy9gAv6VyEM1M8EKdJmtfw2nSnZ24Q,11639
124
124
  meerschaum/api/routes/_login.py,sha256=ti2onNOemOGLHLoPubAQOYtD7eq7FA1jOlbOSVSjXVo,2466
125
125
  meerschaum/api/routes/_misc.py,sha256=05--9ZVFeaCgZrHER2kA3SYdK4TyfkEXOCjLvPbum-w,2469
126
- meerschaum/api/routes/_pipes.py,sha256=1l5BB9MqGfYI4UtWHm8T1nGy3JKEtZrFLpsQOgqIw2E,21509
126
+ meerschaum/api/routes/_pipes.py,sha256=g88AU_NUM6tlX3bFl4EOGiQWZYqvDxDFlaLIYbYn1c4,21397
127
127
  meerschaum/api/routes/_plugins.py,sha256=vR6-uTJraY1YEJMuRvds1-xFLB2mexxnp2dJwN_0rVo,6216
128
128
  meerschaum/api/routes/_users.py,sha256=SfAkZFKrKnGjpzj8SFIKzPemzQJOH3oB72h19EaUvcQ,7204
129
129
  meerschaum/api/routes/_version.py,sha256=2t-nw_9IxCVZCNEar0LOwmut2zsClRVHjiOOUx16cu0,825
@@ -142,7 +142,7 @@ meerschaum/config/_preprocess.py,sha256=-AEA8m_--KivZwTQ1sWN6LTn5sio_fUr2XZ51BO6
142
142
  meerschaum/config/_read_config.py,sha256=oxnLjuhy6JBBld886FkBX07wUdkpzEzTItYMUa9qw1Q,14688
143
143
  meerschaum/config/_shell.py,sha256=46_m49Txc5q1rGfCgO49ca48BODx45DQJi8D0zz1R18,4245
144
144
  meerschaum/config/_sync.py,sha256=jHcWRkxd82_BgX8Xo8agsWvf7BSbv3qHLWmYl6ehp_0,4242
145
- meerschaum/config/_version.py,sha256=I_aoflRLDtNWUKaI2yojmN_vGeUIecat83x1jZQwx3E,71
145
+ meerschaum/config/_version.py,sha256=htHEYhloxhFm_vcPba-bk08zxppyNo-i76pJPh7DqqI,71
146
146
  meerschaum/config/paths.py,sha256=JjibeGN3YAdSNceRwsd42aNmeUrIgM6ndzC8qZAmNI0,621
147
147
  meerschaum/config/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
148
148
  meerschaum/config/stack/__init__.py,sha256=gGVxXgNnGb9u25iF__IiNPlZt1BLUVmHmFJ0jvnJg3Q,10548
@@ -162,22 +162,22 @@ meerschaum/connectors/api/_fetch.py,sha256=Khq9AFr1nk8Dsmcedb77aWhAuHw0JGgVeahDG
162
162
  meerschaum/connectors/api/_jobs.py,sha256=N5lpHFGG10jlVgaJeWAOTuLBQw3AdgjXsEPpp1YwZQE,11270
163
163
  meerschaum/connectors/api/_login.py,sha256=5GsD-B214vr5EYfM3XrTUs1sTFApxZA-9dNxq8oNSyg,2050
164
164
  meerschaum/connectors/api/_misc.py,sha256=OZRZBYOokKIEjmQaR8jUYgu6ZRn9VzXBChzR8CfDv_w,1092
165
- meerschaum/connectors/api/_pipes.py,sha256=8Y_UaBCW_fPjaLrz73M12rjM6i6D_ZiEHK-vauhUifs,20540
165
+ meerschaum/connectors/api/_pipes.py,sha256=njBUzhX88EzZ0YJNBNepnTGcv1huXzAnnT0EwaABaBA,20549
166
166
  meerschaum/connectors/api/_plugins.py,sha256=z04tPjfZZWwa7T60mogZH3X3wDmeLdnoN5Oh8m_YsU8,5217
167
167
  meerschaum/connectors/api/_request.py,sha256=Wc4Y70t0VxEj3_ch5fAeeoSAeFMuRnyNLOV-aUFInjY,6996
168
168
  meerschaum/connectors/api/_uri.py,sha256=HWxqGx4R1cHZ3ywy9Ro9ePbFxxusw4RLaC3hpGt9Z6I,1469
169
169
  meerschaum/connectors/api/_users.py,sha256=kzb7ENgXwQ19OJYKOuuWzx2rwVuUZCly9dTnyvVuT2Q,5275
170
170
  meerschaum/connectors/plugin/PluginConnector.py,sha256=aQ1QaB7MordCFimZqoGLb0R12PfDUN_nWks2J5mzeAs,2084
171
171
  meerschaum/connectors/plugin/__init__.py,sha256=pwF7TGY4WNz2_HaVdmK4rPQ9ZwTOEuPHgzOqsGcoXJw,198
172
- meerschaum/connectors/sql/_SQLConnector.py,sha256=Q1M6byhApNxQcyDJoC9tmYk1KXF431zyblf7KKa-A08,11817
172
+ meerschaum/connectors/sql/_SQLConnector.py,sha256=QlC2Af7AM7bIlPHjUO57mTyzot3zU7o83jegADMxnBE,11829
173
173
  meerschaum/connectors/sql/__init__.py,sha256=3cqYiDkVasn7zWdtOTAZbT4bo95AuvGOmDD2TkaAxtw,205
174
174
  meerschaum/connectors/sql/_cli.py,sha256=1SgnWeMIAihoxp4FzbNrcq1npXf0dSOQnCntpU9hUXA,4405
175
175
  meerschaum/connectors/sql/_create_engine.py,sha256=pZPjy-ne8DtVfu-wqMJopIGkgm8vul-y3E9d4tUyTgM,10215
176
176
  meerschaum/connectors/sql/_fetch.py,sha256=NYYWDoEd-aGIS337KwH-D9_3KVWVCZOHAspGLfdEuUE,13086
177
- meerschaum/connectors/sql/_instance.py,sha256=r_S96vzSuKnBVGROSKQAPl-DnFnOOEPUkz1KFDFPHFQ,6509
178
- meerschaum/connectors/sql/_pipes.py,sha256=3pAIKh4W0w74iON9N6hoiEgKSc8y2nGhiWlUraa-4TU,99874
177
+ meerschaum/connectors/sql/_instance.py,sha256=zXPZnEqvOAeOUPMeh6CcfkB1pOjjwJxdUOwXccRbuwk,6465
178
+ meerschaum/connectors/sql/_pipes.py,sha256=0XQo4RF2DjpPp6-KvdSjkMpKknWd68QnnhgjfrREBvE,100637
179
179
  meerschaum/connectors/sql/_plugins.py,sha256=wbxcNxqTtjfDsxPvdVGTllasYf6NHHzODaQ72hEUSBQ,8135
180
- meerschaum/connectors/sql/_sql.py,sha256=k3VkzqWCtM-DGnspyt1e9SNr6RnP_v7qSbn6bF5AUm0,36252
180
+ meerschaum/connectors/sql/_sql.py,sha256=zEh6fbOLJhfLOF-4x9OTQ5Fi3NMSVES3oixmnGYcNG8,36381
181
181
  meerschaum/connectors/sql/_uri.py,sha256=0BrhQtqQdzg9mR04gWBZINs_BbPFtSlTECXT_TCUwik,3460
182
182
  meerschaum/connectors/sql/_users.py,sha256=FJjYeJGhr-TDHziNc6p_5mupGRtGjezKPIYgHFEVSnY,9956
183
183
  meerschaum/connectors/sql/tools.py,sha256=jz8huOaRCwGlYdtGfAqAh7SoK8uydYBrasKQba9FT38,187
@@ -195,7 +195,7 @@ meerschaum/core/Pipe/_attributes.py,sha256=yAHYvizRSkqqkIRcaGAYvUjE2qe5H4xNKBmxU
195
195
  meerschaum/core/Pipe/_bootstrap.py,sha256=evyi07kkzAVMj66HfZkbYdcWk_oHUDsl6f13EnSPMYs,7723
196
196
  meerschaum/core/Pipe/_clear.py,sha256=yFAYQnDmL3m6DzyAutgnBDXSOL9gjIrLvlQXd86YFV0,2193
197
197
  meerschaum/core/Pipe/_copy.py,sha256=PcOeNUb0B4-HehTAAnBpjyT4uLLTR6VQOarY0SFA9wk,2912
198
- meerschaum/core/Pipe/_data.py,sha256=WduKc7hrO8wAnFQr5nA5o-BpF6G6_v0E7gJSRCgKv2I,22709
198
+ meerschaum/core/Pipe/_data.py,sha256=Z4-B03-RP-PZtA9MnYe3-7oQSiNWTLRBwZsblvuXml4,22684
199
199
  meerschaum/core/Pipe/_deduplicate.py,sha256=ZiuYZBb6d8tUkgHp6Nj8Xle20u4sjxqW45Rk2N-up54,10191
200
200
  meerschaum/core/Pipe/_delete.py,sha256=1geNp9BgrocXP1gt76dMbnlJWKYFMuSNqPFA4K4-hXE,2118
201
201
  meerschaum/core/Pipe/_drop.py,sha256=gIKdHWm0RsIgC2nu768MtFnPbCXyiJjNxaiT1obyuIo,1036
@@ -204,7 +204,7 @@ meerschaum/core/Pipe/_edit.py,sha256=HrKWe9vhqKaNOjOcJzW5BNbaUBPIbgNAhJEK8OMsy7c
204
204
  meerschaum/core/Pipe/_fetch.py,sha256=LtYqZSN2kwc5Tl2gQ5kSmGN7Ombv86k1zDNTP3SUF1k,5417
205
205
  meerschaum/core/Pipe/_register.py,sha256=Sd5xaAW8H7uLTIoommcKb-6kHPRuHJLWNSbPnt2UbvA,2240
206
206
  meerschaum/core/Pipe/_show.py,sha256=nG50y8eBT9TVuKkRgAKtNDNIxysJvMNxfu__lkL1F9k,1352
207
- meerschaum/core/Pipe/_sync.py,sha256=MkiFz6ULfT1qHQl4xbOEx4Bi8EYnMDgUZyBnjjwNG1M,33050
207
+ meerschaum/core/Pipe/_sync.py,sha256=rEP6Ijs3PG_cTtffqijqxabyyhZFqJicQCNj5Ea3NHw,33042
208
208
  meerschaum/core/Pipe/_verify.py,sha256=sPtY1DgUJ2E5FJp0hJ_IzrQQe1DmfAqJFWS24e2wr3w,14202
209
209
  meerschaum/core/Plugin/__init__.py,sha256=UXg64EvJPgI1PCxkY_KM02-ZmBm4FZpLPIQR_uSJJDc,137
210
210
  meerschaum/core/User/_User.py,sha256=JZ9Y1tsjZe-cgD24m9YfZ6ZwSOKn_sHc4rbQ7KblBz8,6592
@@ -218,16 +218,16 @@ meerschaum/plugins/__init__.py,sha256=trMQ53qgP7ikJhhV_uXzqJw6X1NDz2rPOGXFk40bb1
218
218
  meerschaum/plugins/bootstrap.py,sha256=qg9MQ1YAU8ShwGqWDl38WjiXLIxDPl95pSIGDLN9rOw,11423
219
219
  meerschaum/utils/__init__.py,sha256=QrK1K9hIbPCRCM5k2nZGFqGnrqhA0Eh-iSmCU7FG6Cs,612
220
220
  meerschaum/utils/_get_pipes.py,sha256=tu4xKPoDn79Dz2kWM13cXTP4DSCkn-3G9M8KiLftopw,11073
221
- meerschaum/utils/dataframe.py,sha256=fRQB-Y1XNAcjP0YsAIzV9kcYR1bzIVZJTyp3bV3B9NI,41502
221
+ meerschaum/utils/dataframe.py,sha256=qV_6ecpxMIZOoiUb0pIk8u5ZPBn-h6O1yS_DtdLFX_U,41937
222
222
  meerschaum/utils/debug.py,sha256=GyIzJmunkoPnOcZNYVQdT4Sgd-aOb5MI2VbIgATOjIQ,3695
223
223
  meerschaum/utils/interactive.py,sha256=t-6jWozXSqL7lYGDHuwiOjTgr-UKhdcg61q_eR5mikI,3196
224
- meerschaum/utils/misc.py,sha256=ws-8v7gvD2uwmdIDDSRSUVL10XV7YZGUCEFBllC-xbY,46365
224
+ meerschaum/utils/misc.py,sha256=OijhS1TMjlqkDvahbxhqfUdo0Myeor-kTKrvqqG8wN0,46349
225
225
  meerschaum/utils/networking.py,sha256=Sr_eYUGW8_UV9-k9LqRFf7xLtbUcsDucODyLCRsFRUc,1006
226
226
  meerschaum/utils/pool.py,sha256=vkE42af4fjrTEJTxf6Ek3xGucm1MtEkpsSEiaVzNKHs,2655
227
227
  meerschaum/utils/process.py,sha256=o7UtTQX87YGkg2dItPhlvN7gNQPkElXTYSzKf5Ro8Uc,7474
228
228
  meerschaum/utils/prompt.py,sha256=0asF_ndumQIN7p5kEOzK-ldsdE4m8FFapcT3-4wgPi8,19010
229
229
  meerschaum/utils/schedule.py,sha256=6I2TFGa1aPRU9wTdd3YFrJq-DCPpnl-sTWeFEnrINYA,10886
230
- meerschaum/utils/sql.py,sha256=eTo-t6k5fI6FCNJggQEU6OiB_o30raYp6B3j1VH7Utw,47795
230
+ meerschaum/utils/sql.py,sha256=vZx6HyvaFKrvWDMZYSzHZaSQWMMWQOUmK-LLW5Kx7Lg,47993
231
231
  meerschaum/utils/threading.py,sha256=3N8JXPAnwqJiSjuQcbbJg3Rv9-CCUMJpeQRfKFR7MaA,2489
232
232
  meerschaum/utils/typing.py,sha256=U3MC347sh1umpa3Xr1k71eADyDmk4LB6TnVCpq8dVzI,2830
233
233
  meerschaum/utils/warnings.py,sha256=IDiwYspsfjIi1gtk3V9cSo9vNLckB9bCsHhRClpPJTc,6639
@@ -239,22 +239,22 @@ meerschaum/utils/daemon/StdinFile.py,sha256=J6tyUReM8NEp3bBQAxMfe8mjJG5mWi6CzHN4
239
239
  meerschaum/utils/daemon/__init__.py,sha256=o9jWb4lRTIyny4EPt7fPXFgV_vIf1mUofsTwoE1ZecA,8751
240
240
  meerschaum/utils/daemon/_names.py,sha256=d2ZwTxBoTAqXZkCfZ5LuX2XrkQmLNUq1OTlUqfoH5dA,4515
241
241
  meerschaum/utils/dtypes/__init__.py,sha256=LawV4XrCLZRhyGquUen3i0HvK2IRHG-Ud4MYi3L4phA,7391
242
- meerschaum/utils/dtypes/sql.py,sha256=wk_r-EEjZca1CoaesxetXSIe5sIjtSwwoJmITy7AJXY,15466
242
+ meerschaum/utils/dtypes/sql.py,sha256=K0pginy3U5UvgtM9af-HRoiqdvFlwiAmKNQBPGChIUA,16267
243
243
  meerschaum/utils/formatting/__init__.py,sha256=GLx3fvTQi7EnC9fo31WggpMRpmR7yTWIuZmHdZgqvuM,15370
244
244
  meerschaum/utils/formatting/_jobs.py,sha256=izsqPJhTtUkXUUtWnbXtReYsUYwulXtci3pBj72Ne64,6637
245
- meerschaum/utils/formatting/_pipes.py,sha256=wy0iWJFsFl3X2VloaiA_gp9Yx9w6tD3FQZvAQAqef4A,19492
245
+ meerschaum/utils/formatting/_pipes.py,sha256=qud_zaGKP3gh-Z5BMYadwEKWSwzUyR44Jg1RGCzAsXI,19476
246
246
  meerschaum/utils/formatting/_pprint.py,sha256=tgrT3FyGyu5CWJYysqK3kX1xdZYorlbOk9fcU_vt9Qg,3096
247
247
  meerschaum/utils/formatting/_shell.py,sha256=OMFh3cSZNr83z8m265irkS_JtEWHwjkEY2ybnMIOllY,3774
248
248
  meerschaum/utils/packages/__init__.py,sha256=m3HLTkKJxXco1g-h75q2l5skBwKXWaJtNmfQOsijchI,63965
249
- meerschaum/utils/packages/_packages.py,sha256=kwXoGePzmaNVRB5YQP6JJOWQqnPiUpM-TPtb38DrPXg,8265
249
+ meerschaum/utils/packages/_packages.py,sha256=8Ox9fiQTVmmKAmlxZBV-7Wtq_jhPnnf3AMXvktGE-KY,8319
250
250
  meerschaum/utils/packages/lazy_loader.py,sha256=VHnph3VozH29R4JnSSBfwtA5WKZYZQFT_GeQSShCnuc,2540
251
251
  meerschaum/utils/venv/_Venv.py,sha256=sBnlmxHdAh2bx8btfVoD79-H9-cYsv5lP02IIXkyECs,3553
252
252
  meerschaum/utils/venv/__init__.py,sha256=G3KXL4ByWNqVxBRLs_RaJbO3h3tOKXkazkAYuoUW568,24420
253
- meerschaum-2.4.7.dist-info/LICENSE,sha256=jG2zQEdRNt88EgHUWPpXVWmOrOduUQRx7MnYV9YIPaw,11359
254
- meerschaum-2.4.7.dist-info/METADATA,sha256=Qy8mE0KQp-XlyINH997P2nEK9d3s96SXvi4srA96mqw,24683
255
- meerschaum-2.4.7.dist-info/NOTICE,sha256=OTA9Fcthjf5BRvWDDIcBC_xfLpeDV-RPZh3M-HQBRtQ,114
256
- meerschaum-2.4.7.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
257
- meerschaum-2.4.7.dist-info/entry_points.txt,sha256=5YBVzibw-0rNA_1VjB16z5GABsOGf-CDhW4yqH8C7Gc,88
258
- meerschaum-2.4.7.dist-info/top_level.txt,sha256=bNoSiDj0El6buocix-FRoAtJOeq1qOF5rRm2u9i7Q6A,11
259
- meerschaum-2.4.7.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
260
- meerschaum-2.4.7.dist-info/RECORD,,
253
+ meerschaum-2.4.9.dist-info/LICENSE,sha256=jG2zQEdRNt88EgHUWPpXVWmOrOduUQRx7MnYV9YIPaw,11359
254
+ meerschaum-2.4.9.dist-info/METADATA,sha256=Gb8bbSaia30M8sGjWj52E0DDAdgyELhNUA4yNlw8Mw0,24819
255
+ meerschaum-2.4.9.dist-info/NOTICE,sha256=OTA9Fcthjf5BRvWDDIcBC_xfLpeDV-RPZh3M-HQBRtQ,114
256
+ meerschaum-2.4.9.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
257
+ meerschaum-2.4.9.dist-info/entry_points.txt,sha256=5YBVzibw-0rNA_1VjB16z5GABsOGf-CDhW4yqH8C7Gc,88
258
+ meerschaum-2.4.9.dist-info/top_level.txt,sha256=bNoSiDj0El6buocix-FRoAtJOeq1qOF5rRm2u9i7Q6A,11
259
+ meerschaum-2.4.9.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
260
+ meerschaum-2.4.9.dist-info/RECORD,,