meerschaum 2.8.4__py3-none-any.whl → 2.9.0__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.
Files changed (57) hide show
  1. meerschaum/api/_chunks.py +67 -0
  2. meerschaum/api/dash/callbacks/__init__.py +5 -2
  3. meerschaum/api/dash/callbacks/custom.py +21 -8
  4. meerschaum/api/dash/callbacks/dashboard.py +26 -4
  5. meerschaum/api/dash/callbacks/settings/__init__.py +8 -0
  6. meerschaum/api/dash/callbacks/settings/password_reset.py +76 -0
  7. meerschaum/api/dash/components.py +136 -25
  8. meerschaum/api/dash/pages/__init__.py +1 -0
  9. meerschaum/api/dash/pages/dashboard.py +11 -9
  10. meerschaum/api/dash/pages/plugins.py +31 -27
  11. meerschaum/api/dash/pages/settings/__init__.py +8 -0
  12. meerschaum/api/dash/pages/settings/password_reset.py +63 -0
  13. meerschaum/api/dash/webterm.py +6 -3
  14. meerschaum/api/resources/static/css/dash.css +8 -1
  15. meerschaum/api/resources/templates/termpage.html +4 -0
  16. meerschaum/api/routes/_pipes.py +232 -79
  17. meerschaum/config/_default.py +4 -0
  18. meerschaum/config/_version.py +1 -1
  19. meerschaum/connectors/__init__.py +1 -0
  20. meerschaum/connectors/api/_APIConnector.py +12 -1
  21. meerschaum/connectors/api/_pipes.py +106 -45
  22. meerschaum/connectors/api/_plugins.py +51 -45
  23. meerschaum/connectors/api/_request.py +1 -1
  24. meerschaum/connectors/parse.py +1 -2
  25. meerschaum/connectors/sql/_SQLConnector.py +3 -0
  26. meerschaum/connectors/sql/_cli.py +1 -0
  27. meerschaum/connectors/sql/_create_engine.py +51 -4
  28. meerschaum/connectors/sql/_pipes.py +38 -6
  29. meerschaum/connectors/sql/_sql.py +35 -4
  30. meerschaum/connectors/valkey/_ValkeyConnector.py +2 -0
  31. meerschaum/connectors/valkey/_pipes.py +51 -39
  32. meerschaum/core/Pipe/__init__.py +1 -0
  33. meerschaum/core/Pipe/_data.py +1 -2
  34. meerschaum/core/Pipe/_sync.py +64 -4
  35. meerschaum/plugins/_Plugin.py +21 -5
  36. meerschaum/plugins/__init__.py +32 -8
  37. meerschaum/utils/dataframe.py +139 -2
  38. meerschaum/utils/dtypes/__init__.py +211 -1
  39. meerschaum/utils/dtypes/sql.py +296 -5
  40. meerschaum/utils/formatting/_shell.py +1 -4
  41. meerschaum/utils/misc.py +1 -1
  42. meerschaum/utils/packages/_packages.py +7 -1
  43. meerschaum/utils/sql.py +139 -11
  44. meerschaum/utils/venv/__init__.py +6 -1
  45. {meerschaum-2.8.4.dist-info → meerschaum-2.9.0.dist-info}/METADATA +17 -3
  46. {meerschaum-2.8.4.dist-info → meerschaum-2.9.0.dist-info}/RECORD +52 -52
  47. {meerschaum-2.8.4.dist-info → meerschaum-2.9.0.dist-info}/WHEEL +1 -1
  48. meerschaum/_internal/gui/__init__.py +0 -43
  49. meerschaum/_internal/gui/app/__init__.py +0 -50
  50. meerschaum/_internal/gui/app/_windows.py +0 -74
  51. meerschaum/_internal/gui/app/actions.py +0 -30
  52. meerschaum/_internal/gui/app/pipes.py +0 -47
  53. {meerschaum-2.8.4.dist-info → meerschaum-2.9.0.dist-info}/LICENSE +0 -0
  54. {meerschaum-2.8.4.dist-info → meerschaum-2.9.0.dist-info}/NOTICE +0 -0
  55. {meerschaum-2.8.4.dist-info → meerschaum-2.9.0.dist-info}/entry_points.txt +0 -0
  56. {meerschaum-2.8.4.dist-info → meerschaum-2.9.0.dist-info}/top_level.txt +0 -0
  57. {meerschaum-2.8.4.dist-info → meerschaum-2.9.0.dist-info}/zip-safe +0 -0
meerschaum/utils/sql.py CHANGED
@@ -41,13 +41,13 @@ version_queries = {
41
41
  }
42
42
  SKIP_IF_EXISTS_FLAVORS = {'mssql', 'oracle'}
43
43
  DROP_IF_EXISTS_FLAVORS = {
44
- 'timescaledb', 'postgresql', 'citus', 'mssql', 'mysql', 'mariadb', 'sqlite',
44
+ 'timescaledb', 'postgresql', 'postgis', 'citus', 'mssql', 'mysql', 'mariadb', 'sqlite',
45
45
  }
46
46
  DROP_INDEX_IF_EXISTS_FLAVORS = {
47
- 'mssql', 'timescaledb', 'postgresql', 'sqlite', 'citus',
47
+ 'mssql', 'timescaledb', 'postgresql', 'postgis', 'sqlite', 'citus',
48
48
  }
49
49
  SKIP_AUTO_INCREMENT_FLAVORS = {'citus', 'duckdb'}
50
- COALESCE_UNIQUE_INDEX_FLAVORS = {'timescaledb', 'postgresql', 'citus'}
50
+ COALESCE_UNIQUE_INDEX_FLAVORS = {'timescaledb', 'postgresql', 'postgis', 'citus'}
51
51
  UPDATE_QUERIES = {
52
52
  'default': """
53
53
  UPDATE {target_table_name} AS f
@@ -73,6 +73,12 @@ UPDATE_QUERIES = {
73
73
  FROM {patch_table_name}
74
74
  ON CONFLICT ({join_cols_str}) DO {update_or_nothing} {sets_subquery_none_excluded}
75
75
  """,
76
+ 'postgis-upsert': """
77
+ INSERT INTO {target_table_name} ({patch_cols_str})
78
+ SELECT {patch_cols_str}
79
+ FROM {patch_table_name}
80
+ ON CONFLICT ({join_cols_str}) DO {update_or_nothing} {sets_subquery_none_excluded}
81
+ """,
76
82
  'citus-upsert': """
77
83
  INSERT INTO {target_table_name} ({patch_cols_str})
78
84
  SELECT {patch_cols_str}
@@ -482,6 +488,7 @@ table_wrappers = {
482
488
  'citus' : ('"', '"'),
483
489
  'duckdb' : ('"', '"'),
484
490
  'postgresql' : ('"', '"'),
491
+ 'postgis' : ('"', '"'),
485
492
  'sqlite' : ('"', '"'),
486
493
  'mysql' : ('`', '`'),
487
494
  'mariadb' : ('`', '`'),
@@ -494,6 +501,7 @@ max_name_lens = {
494
501
  'mssql' : 128,
495
502
  'oracle' : 30,
496
503
  'postgresql' : 64,
504
+ 'postgis' : 64,
497
505
  'timescaledb': 64,
498
506
  'citus' : 64,
499
507
  'cockroachdb': 64,
@@ -501,10 +509,11 @@ max_name_lens = {
501
509
  'mysql' : 64,
502
510
  'mariadb' : 64,
503
511
  }
504
- json_flavors = {'postgresql', 'timescaledb', 'citus', 'cockroachdb'}
512
+ json_flavors = {'postgresql', 'postgis', 'timescaledb', 'citus', 'cockroachdb'}
505
513
  NO_SCHEMA_FLAVORS = {'oracle', 'sqlite', 'mysql', 'mariadb', 'duckdb'}
506
514
  DEFAULT_SCHEMA_FLAVORS = {
507
515
  'postgresql': 'public',
516
+ 'postgis': 'public',
508
517
  'timescaledb': 'public',
509
518
  'citus': 'public',
510
519
  'cockroachdb': 'public',
@@ -519,7 +528,7 @@ NO_CTE_FLAVORS = {'mysql', 'mariadb'}
519
528
  NO_SELECT_INTO_FLAVORS = {'sqlite', 'oracle', 'mysql', 'mariadb', 'duckdb'}
520
529
 
521
530
 
522
- def clean(substring: str) -> str:
531
+ def clean(substring: str) -> None:
523
532
  """
524
533
  Ensure a substring is clean enough to be inserted into a SQL query.
525
534
  Raises an exception when banned words are used.
@@ -549,6 +558,7 @@ def dateadd_str(
549
558
  Currently supported flavors:
550
559
 
551
560
  - `'postgresql'`
561
+ - `'postgis'`
552
562
  - `'timescaledb'`
553
563
  - `'citus'`
554
564
  - `'cockroachdb'`
@@ -653,7 +663,7 @@ def dateadd_str(
653
663
  )
654
664
 
655
665
  da = ""
656
- if flavor in ('postgresql', 'timescaledb', 'cockroachdb', 'citus'):
666
+ if flavor in ('postgresql', 'postgis', 'timescaledb', 'cockroachdb', 'citus'):
657
667
  begin = (
658
668
  f"CAST({begin} AS {db_type})" if begin != 'now'
659
669
  else f"CAST(NOW() AT TIME ZONE 'utc' AS {db_type})"
@@ -922,6 +932,7 @@ def build_where(
922
932
  params: Dict[str, Any],
923
933
  connector: Optional[mrsm.connectors.sql.SQLConnector] = None,
924
934
  with_where: bool = True,
935
+ flavor: str = 'postgresql',
925
936
  ) -> str:
926
937
  """
927
938
  Build the `WHERE` clause based on the input criteria.
@@ -941,6 +952,9 @@ def build_where(
941
952
  with_where: bool, default True:
942
953
  If `True`, include the leading `'WHERE'` string.
943
954
 
955
+ flavor: str, default 'postgresql'
956
+ If `connector` is `None`, fall back to this flavor.
957
+
944
958
  Returns
945
959
  -------
946
960
  A `str` of the `WHERE` clause from the input `params` dictionary for the connector's flavor.
@@ -969,13 +983,11 @@ def build_where(
969
983
  warn(f"Aborting build_where() due to possible SQL injection.")
970
984
  return ''
971
985
 
972
- if connector is None:
973
- from meerschaum import get_connector
974
- connector = get_connector('sql')
986
+ query_flavor = getattr(connector, 'flavor', flavor) if connector is not None else flavor
975
987
  where = ""
976
988
  leading_and = "\n AND "
977
989
  for key, value in params.items():
978
- _key = sql_item_name(key, connector.flavor, None)
990
+ _key = sql_item_name(key, query_flavor, None)
979
991
  ### search across a list (i.e. IN syntax)
980
992
  if isinstance(value, Iterable) and not isinstance(value, (dict, str)):
981
993
  includes = [
@@ -1286,7 +1298,24 @@ def get_table_cols_types(
1286
1298
  if cols_types_docs and not cols_types_docs_filtered:
1287
1299
  cols_types_docs_filtered = cols_types_docs
1288
1300
 
1289
- return {
1301
+ ### NOTE: Check for PostGIS GEOMETRY columns.
1302
+ geometry_cols_types = {}
1303
+ user_defined_cols = [
1304
+ doc
1305
+ for doc in cols_types_docs_filtered
1306
+ if str(doc.get('type', None)).upper() == 'USER-DEFINED'
1307
+ ]
1308
+ if user_defined_cols:
1309
+ geometry_cols_types.update(
1310
+ get_postgis_geo_columns_types(
1311
+ connectable,
1312
+ table,
1313
+ schema=schema,
1314
+ debug=debug,
1315
+ )
1316
+ )
1317
+
1318
+ cols_types = {
1290
1319
  (
1291
1320
  doc['column']
1292
1321
  if flavor != 'oracle' else (
@@ -1307,6 +1336,8 @@ def get_table_cols_types(
1307
1336
  )
1308
1337
  for doc in cols_types_docs_filtered
1309
1338
  }
1339
+ cols_types.update(geometry_cols_types)
1340
+ return cols_types
1310
1341
  except Exception as e:
1311
1342
  warn(f"Failed to fetch columns for table '{table}':\n{e}")
1312
1343
  return {}
@@ -1809,6 +1840,8 @@ def get_null_replacement(typ: str, flavor: str) -> str:
1809
1840
  """
1810
1841
  from meerschaum.utils.dtypes import are_dtypes_equal
1811
1842
  from meerschaum.utils.dtypes.sql import DB_FLAVORS_CAST_DTYPES
1843
+ if 'geometry' in typ.lower():
1844
+ return '010100000000008058346FCDC100008058346FCDC1'
1812
1845
  if 'int' in typ.lower() or typ.lower() in ('numeric', 'number'):
1813
1846
  return '-987654321'
1814
1847
  if 'bool' in typ.lower() or typ.lower() == 'bit':
@@ -2493,3 +2526,98 @@ def get_reset_autoincrement_queries(
2493
2526
  )
2494
2527
  for query in reset_queries
2495
2528
  ]
2529
+
2530
+
2531
+ def get_postgis_geo_columns_types(
2532
+ connectable: Union[
2533
+ 'mrsm.connectors.sql.SQLConnector',
2534
+ 'sqlalchemy.orm.session.Session',
2535
+ 'sqlalchemy.engine.base.Engine'
2536
+ ],
2537
+ table: str,
2538
+ schema: Optional[str] = 'public',
2539
+ debug: bool = False,
2540
+ ) -> Dict[str, str]:
2541
+ """
2542
+ Return the
2543
+ """
2544
+ from meerschaum.utils.dtypes import get_geometry_type_srid
2545
+ default_type, default_srid = get_geometry_type_srid()
2546
+ default_type = default_type.upper()
2547
+
2548
+ clean(table)
2549
+ clean(str(schema))
2550
+ schema = schema or 'public'
2551
+ truncated_schema_name = truncate_item_name(schema, flavor='postgis')
2552
+ truncated_table_name = truncate_item_name(table, flavor='postgis')
2553
+ query = (
2554
+ "SELECT \"f_geometry_column\" AS \"column\", 'GEOMETRY' AS \"func\", \"type\", \"srid\"\n"
2555
+ "FROM \"geometry_columns\"\n"
2556
+ f"WHERE \"f_table_schema\" = '{truncated_schema_name}'\n"
2557
+ f" AND \"f_table_name\" = '{truncated_table_name}'\n"
2558
+ "UNION ALL\n"
2559
+ "SELECT \"f_geography_column\" AS \"column\", 'GEOGRAPHY' AS \"func\", \"type\", \"srid\"\n"
2560
+ "FROM \"geography_columns\"\n"
2561
+ f"WHERE \"f_table_schema\" = '{truncated_schema_name}'\n"
2562
+ f" AND \"f_table_name\" = '{truncated_table_name}'\n"
2563
+ )
2564
+ debug_kwargs = {'debug': debug} if isinstance(connectable, mrsm.connectors.SQLConnector) else {}
2565
+ result_rows = [
2566
+ row
2567
+ for row in connectable.execute(query, **debug_kwargs).fetchall()
2568
+ ]
2569
+ cols_type_tuples = {
2570
+ row[0]: (row[1], row[2], row[3])
2571
+ for row in result_rows
2572
+ }
2573
+
2574
+ geometry_cols_types = {
2575
+ col: (
2576
+ f"{func}({typ.upper()}, {srid})"
2577
+ if srid
2578
+ else (
2579
+ func
2580
+ + (
2581
+ f'({typ.upper()})'
2582
+ if typ.upper() not in ('GEOMETRY', 'GEOGRAPHY')
2583
+ else ''
2584
+ )
2585
+ )
2586
+ )
2587
+ for col, (func, typ, srid) in cols_type_tuples.items()
2588
+ }
2589
+ return geometry_cols_types
2590
+
2591
+
2592
+ def get_create_schema_if_not_exists_queries(
2593
+ schema: str,
2594
+ flavor: str,
2595
+ ) -> List[str]:
2596
+ """
2597
+ Return the queries to create a schema if it does not yet exist.
2598
+ For databases which do not support schemas, an empty list will be returned.
2599
+ """
2600
+ if not schema:
2601
+ return []
2602
+
2603
+ if flavor in NO_SCHEMA_FLAVORS:
2604
+ return []
2605
+
2606
+ clean(schema)
2607
+
2608
+ if flavor == 'mssql':
2609
+ return [
2610
+ (
2611
+ f"IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = '{schema}')\n"
2612
+ "BEGIN\n"
2613
+ f" EXEC('CREATE SCHEMA {sql_item_name(schema, flavor)}');\n"
2614
+ "END;"
2615
+ )
2616
+ ]
2617
+
2618
+ if flavor == 'oracle':
2619
+ return []
2620
+
2621
+ return [
2622
+ f"CREATE SCHEMA IF NOT EXISTS {sql_item_name(schema, flavor)};"
2623
+ ]
@@ -86,7 +86,10 @@ def activate_venv(
86
86
  target = target_path.as_posix()
87
87
 
88
88
  if venv in active_venvs_order:
89
- sys.path.remove(target)
89
+ try:
90
+ sys.path.remove(target)
91
+ except Exception:
92
+ pass
90
93
  try:
91
94
  active_venvs_order.remove(venv)
92
95
  except Exception:
@@ -410,6 +413,8 @@ def init_venv(
410
413
  pass
411
414
 
412
415
  def wait_for_lock():
416
+ if platform.system() == 'Windows':
417
+ return
413
418
  max_lock_seconds = 30.0
414
419
  sleep_message_seconds = 5.0
415
420
  step_sleep_seconds = 0.1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: meerschaum
3
- Version: 2.8.4
3
+ Version: 2.9.0
4
4
  Summary: Sync Time-Series Pipes with Meerschaum
5
5
  Home-page: https://meerschaum.io
6
6
  Author: Bennett Meares
@@ -87,6 +87,10 @@ Requires-Dist: mycli>=1.23.2; extra == "cli"
87
87
  Requires-Dist: litecli>=1.5.0; extra == "cli"
88
88
  Requires-Dist: mssql-cli>=1.0.0; extra == "cli"
89
89
  Requires-Dist: gadwall>=0.2.0; extra == "cli"
90
+ Provides-Extra: gis
91
+ Requires-Dist: pyproj>=3.7.1; extra == "gis"
92
+ Requires-Dist: geopandas>=1.0.1; extra == "gis"
93
+ Requires-Dist: shapely>=2.0.7; extra == "gis"
90
94
  Provides-Extra: stack
91
95
  Requires-Dist: docker-compose>=1.29.2; extra == "stack"
92
96
  Provides-Extra: build
@@ -114,7 +118,6 @@ Requires-Dist: mkdocs-linkcheck>=1.0.6; extra == "docs"
114
118
  Requires-Dist: mkdocs-redirects>=1.0.4; extra == "docs"
115
119
  Requires-Dist: jinja2==3.0.3; extra == "docs"
116
120
  Provides-Extra: gui
117
- Requires-Dist: toga>=0.3.0-dev29; extra == "gui"
118
121
  Requires-Dist: pywebview>=3.6.3; extra == "gui"
119
122
  Requires-Dist: pycparser>=2.21.0; extra == "gui"
120
123
  Provides-Extra: extras
@@ -132,6 +135,7 @@ Requires-Dist: partd>=1.4.2; extra == "sql"
132
135
  Requires-Dist: pytz; extra == "sql"
133
136
  Requires-Dist: joblib>=0.17.0; extra == "sql"
134
137
  Requires-Dist: SQLAlchemy>=2.0.5; extra == "sql"
138
+ Requires-Dist: GeoAlchemy2>=0.17.1; extra == "sql"
135
139
  Requires-Dist: databases>=0.4.0; extra == "sql"
136
140
  Requires-Dist: aiosqlite>=0.16.0; extra == "sql"
137
141
  Requires-Dist: asyncpg>=0.21.0; extra == "sql"
@@ -164,6 +168,9 @@ Requires-Dist: fasteners>=0.19.0; extra == "sql"
164
168
  Requires-Dist: virtualenv>=20.1.0; extra == "sql"
165
169
  Requires-Dist: attrs>=24.2.0; extra == "sql"
166
170
  Requires-Dist: uv>=0.2.11; extra == "sql"
171
+ Requires-Dist: pyproj>=3.7.1; extra == "sql"
172
+ Requires-Dist: geopandas>=1.0.1; extra == "sql"
173
+ Requires-Dist: shapely>=2.0.7; extra == "sql"
167
174
  Provides-Extra: dash
168
175
  Requires-Dist: Flask-Compress>=1.10.1; extra == "dash"
169
176
  Requires-Dist: dash>=2.6.2; extra == "dash"
@@ -192,6 +199,7 @@ Requires-Dist: partd>=1.4.2; extra == "api"
192
199
  Requires-Dist: pytz; extra == "api"
193
200
  Requires-Dist: joblib>=0.17.0; extra == "api"
194
201
  Requires-Dist: SQLAlchemy>=2.0.5; extra == "api"
202
+ Requires-Dist: GeoAlchemy2>=0.17.1; extra == "api"
195
203
  Requires-Dist: databases>=0.4.0; extra == "api"
196
204
  Requires-Dist: aiosqlite>=0.16.0; extra == "api"
197
205
  Requires-Dist: asyncpg>=0.21.0; extra == "api"
@@ -224,6 +232,9 @@ Requires-Dist: fasteners>=0.19.0; extra == "api"
224
232
  Requires-Dist: virtualenv>=20.1.0; extra == "api"
225
233
  Requires-Dist: attrs>=24.2.0; extra == "api"
226
234
  Requires-Dist: uv>=0.2.11; extra == "api"
235
+ Requires-Dist: pyproj>=3.7.1; extra == "api"
236
+ Requires-Dist: geopandas>=1.0.1; extra == "api"
237
+ Requires-Dist: shapely>=2.0.7; extra == "api"
227
238
  Requires-Dist: pprintpp>=0.4.0; extra == "api"
228
239
  Requires-Dist: asciitree>=0.3.3; extra == "api"
229
240
  Requires-Dist: typing-extensions>=4.7.1; extra == "api"
@@ -286,7 +297,9 @@ Requires-Dist: aiomysql>=0.0.21; extra == "full"
286
297
  Requires-Dist: sqlalchemy-cockroachdb>=2.0.0; extra == "full"
287
298
  Requires-Dist: duckdb>=1.0.0; extra == "full"
288
299
  Requires-Dist: duckdb-engine>=0.13.0; extra == "full"
289
- Requires-Dist: toga>=0.3.0-dev29; extra == "full"
300
+ Requires-Dist: pyproj>=3.7.1; extra == "full"
301
+ Requires-Dist: geopandas>=1.0.1; extra == "full"
302
+ Requires-Dist: shapely>=2.0.7; extra == "full"
290
303
  Requires-Dist: pywebview>=3.6.3; extra == "full"
291
304
  Requires-Dist: pycparser>=2.21.0; extra == "full"
292
305
  Requires-Dist: numpy>=1.18.5; extra == "full"
@@ -297,6 +310,7 @@ Requires-Dist: partd>=1.4.2; extra == "full"
297
310
  Requires-Dist: pytz; extra == "full"
298
311
  Requires-Dist: joblib>=0.17.0; extra == "full"
299
312
  Requires-Dist: SQLAlchemy>=2.0.5; extra == "full"
313
+ Requires-Dist: GeoAlchemy2>=0.17.1; extra == "full"
300
314
  Requires-Dist: databases>=0.4.0; extra == "full"
301
315
  Requires-Dist: aiosqlite>=0.16.0; extra == "full"
302
316
  Requires-Dist: asyncpg>=0.21.0; extra == "full"
@@ -7,11 +7,6 @@ meerschaum/_internal/arguments/_parse_arguments.py,sha256=TtHX7NvdHLD-nVVlMctc6S
7
7
  meerschaum/_internal/arguments/_parser.py,sha256=9AfOJ4Kc37y2gLeRabU3cDwF4RRnW-3nGKfN2l0P3rQ,17163
8
8
  meerschaum/_internal/docs/__init__.py,sha256=ZQYHWo6n0kfLLkyG36YXqTYvv2Pc7it5HZHMylT6cBA,126
9
9
  meerschaum/_internal/docs/index.py,sha256=ZkqXj-GhoLEpgMysy4ugvOlFhWVlnq7tFvzMhy43jUQ,24670
10
- meerschaum/_internal/gui/__init__.py,sha256=KF6Opae0aBOjIndMZ2txoPs7ozCXRlR-lcTsicLO7fc,1313
11
- meerschaum/_internal/gui/app/__init__.py,sha256=rKUa8hHk6Fai-PDF61tQcpT1myxKcfmvEMDHxThNp7o,1565
12
- meerschaum/_internal/gui/app/_windows.py,sha256=-VHdjTzA3V596fVqnbmTxemONSp_80-sTNJ0CTB8FwU,2632
13
- meerschaum/_internal/gui/app/actions.py,sha256=rx37qXf3uoa7Ou0n1cISqNFZNL0nr4wO7vSUmWO8f2E,935
14
- meerschaum/_internal/gui/app/pipes.py,sha256=4nAQ0rrHb_2bNgDF0Ru2YlbPaCDDzAl5beOGU4Af-4A,1596
15
10
  meerschaum/_internal/shell/Shell.py,sha256=R6xW-D9gVuxJxQzf4Bf6E9V8exE40aCdrDJ_snUpoxA,39982
16
11
  meerschaum/_internal/shell/ShellCompleter.py,sha256=Ex6mPv83RUNdC3ufRJCcaoOmQ8q8z6tCHDVzXQmWIpY,3293
17
12
  meerschaum/_internal/shell/ValidAutoSuggest.py,sha256=bARjOWMidz0dvMelLUe6yRPto5l3gcEHYHqFDjoh22I,1280
@@ -54,12 +49,13 @@ meerschaum/actions/upgrade.py,sha256=AjuC93Te-I_GWwIfuNkFJ2q1zVHDQ2Oco34S4JgK2iA
54
49
  meerschaum/actions/verify.py,sha256=81Km4sPkLVAzPG6pDbMfoBpEWsk8pxjVGXgu-k8seSs,5019
55
50
  meerschaum/api/__init__.py,sha256=UsAFx7oOTB9Z8m1u0DRfiQFdSxjoyqgVaICuwv7loDg,10414
56
51
  meerschaum/api/_chain.py,sha256=h8-WXUGXX6AqzdALfsBC5uv0FkAcLdHJXCGzqzuq89k,875
52
+ meerschaum/api/_chunks.py,sha256=rmhz8h4MZDnjkE02fDqDEwbYwwZbnU4gVwy3-QqB5y0,1898
57
53
  meerschaum/api/_events.py,sha256=f-98AXHU10IL9zRGX1FrZFANxxiMz5ryeJnfFWaU8R8,2232
58
54
  meerschaum/api/_exceptions.py,sha256=xfbWp8F8JYrMUdtDXesn8C8e39_jAXHz51IosIGjkVM,463
59
55
  meerschaum/api/_oauth2.py,sha256=dJTIVlPpX3sAVW-PcN6pXRNy2RR5QAalu2RHp3l14YU,1683
60
56
  meerschaum/api/_websockets.py,sha256=EMT9wB3yELu_WyCMqn9ZpgMDh23spUUchouRLCCLVuw,1509
61
57
  meerschaum/api/dash/__init__.py,sha256=SpM96oyOy_MUswZHtJkVzMn91PjdADPyCAkyTQjL7LA,2079
62
- meerschaum/api/dash/components.py,sha256=QRpBpUOhBZE5F_lELZ17xtubblRQVuANwWyIQk03Vkc,6573
58
+ meerschaum/api/dash/components.py,sha256=zeXzitZzXSLva12PJI51GeTmmFnmVc1Dl6Opm_yA5dQ,9850
63
59
  meerschaum/api/dash/connectors.py,sha256=-Wd40ieYJI2nOASXi4V1C4bvLekjnN_tj6zp7HgZDl0,791
64
60
  meerschaum/api/dash/graphs.py,sha256=wJUDWzcLN8-C3xko6rj0F2v7Rt8YDkSXoVkkXJjYGIk,2046
65
61
  meerschaum/api/dash/jobs.py,sha256=mj9STE6AaQY4fwkjD1JcYRG0iW3VEcP04bO1SlKgiXw,7681
@@ -70,29 +66,33 @@ meerschaum/api/dash/sessions.py,sha256=i8qFGZX1zlxskj13F5B9TYd-mXdVA71Q8d8nESbiJ
70
66
  meerschaum/api/dash/sync.py,sha256=9lt7IRdG-fe9gf_ZO_viPiGlerX7ic6r_VFocv3I51A,504
71
67
  meerschaum/api/dash/users.py,sha256=3wq3ZG51DxOjNeF-X5HdlXD1MYQ1nQ9oowYSvFEY7hs,1050
72
68
  meerschaum/api/dash/websockets.py,sha256=0iwRaI9k2okU1baYstOkehfZ6-qMi_S6qm4lPBjVlH8,924
73
- meerschaum/api/dash/webterm.py,sha256=Vm8mPOoOH-_puzMCGxWDEcqbUEItBGbXeMVqA_7JnsA,4273
69
+ meerschaum/api/dash/webterm.py,sha256=KyCe5yUZ2IXEDqJxoMcruenpvuwA1wWqRwXVnEOVMY0,4394
74
70
  meerschaum/api/dash/assets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
71
  meerschaum/api/dash/assets/ansi_up.js,sha256=in4bWSCayjzXbOgROw7eLRrFwCTIiLxh8nbFSJXtDl4,21923
76
72
  meerschaum/api/dash/assets/banner_1920x320.png,sha256=n2cNTSVEsGxO9XZg2keb85J3UOkux70nyIMNII5m4SA,338636
77
73
  meerschaum/api/dash/assets/favicon.ico,sha256=nDEekVxwS60wEDno1nbw5GF3TJOcDV26SETOHJEZKkY,9662
78
74
  meerschaum/api/dash/assets/logo_48x48.png,sha256=hTR5BHUHEN4yP2xiqAcDciuigoII9T3-80R-dzsxVmw,10218
79
75
  meerschaum/api/dash/assets/logo_500x500.png,sha256=9EUtf6wQcEZTXHKfQ2kjNXod6Rn_4DTB_BkTgxggq00,67702
80
- meerschaum/api/dash/callbacks/__init__.py,sha256=5nLDkziaWWWt5ivmuMNG3kVBMOfqB6KQNIAS8f16bmA,493
81
- meerschaum/api/dash/callbacks/custom.py,sha256=N9pVolAF8sIuJD3V6xBSgS7k8THJo_f8d1qAoh1Kg60,1161
82
- meerschaum/api/dash/callbacks/dashboard.py,sha256=bwLr0bzWyzf5oTNLxD_j1KMU5yXvJfODxc4iazF-DIg,35005
76
+ meerschaum/api/dash/callbacks/__init__.py,sha256=5dh8gsfcVaLlM4WcvGVE9Q1CtwaqJ2qwND0tdhvodng,607
77
+ meerschaum/api/dash/callbacks/custom.py,sha256=af7O0OMoNOcAJOuE0N2WXQZbmHiUVcQB9YBe_xgcr7I,1795
78
+ meerschaum/api/dash/callbacks/dashboard.py,sha256=BmFYp3yPkg0N4ywHcKhn2aevGc5BIYfjqtFy2YIj43w,35517
83
79
  meerschaum/api/dash/callbacks/jobs.py,sha256=JYTrDcUEte_MIT3EegLDmQDsmU_Mxqw8L60dvF71ho4,8418
84
80
  meerschaum/api/dash/callbacks/login.py,sha256=mEvMgV-f85H6DvqNdTvJPoiwHqTnhWY2nf_zLB26ipE,2876
85
81
  meerschaum/api/dash/callbacks/pipes.py,sha256=byphQn-wJOe8ft-fGU9wac0n5xsMjVHJzNvYYb9NsKU,1693
86
82
  meerschaum/api/dash/callbacks/plugins.py,sha256=znPgw_Uf3__QEjKxoIHADfjVNubTehCDaTJ02b16pQo,2760
87
83
  meerschaum/api/dash/callbacks/register.py,sha256=KfMFgXWiFkemz0YriSPaLQBVnFDG8q6_t9gHuempOS0,3666
88
- meerschaum/api/dash/pages/__init__.py,sha256=E3MI73_FR21R_-npTJ9HBNd7hdbOwQ75V-TMpq3ohz8,349
89
- meerschaum/api/dash/pages/dashboard.py,sha256=k6mmvPWXQD6NpAO4_y9Y9r8n-IU5Ql1IOuczOl7OWPs,3802
84
+ meerschaum/api/dash/callbacks/settings/__init__.py,sha256=pttbJMJGfd5I_oCWfbpbbVtXZp7pyerl9ESgY9xwUwI,157
85
+ meerschaum/api/dash/callbacks/settings/password_reset.py,sha256=LD4wS1k-MyGIJNwQL897Rg001U9Z53iHWK2Agzu6oyU,2468
86
+ meerschaum/api/dash/pages/__init__.py,sha256=U7PyReXPnB0PizArS6o556FXuDsUBCplI9zBLe3CU2s,391
87
+ meerschaum/api/dash/pages/dashboard.py,sha256=d6zPEycsbiFJyvufN6kt5JsOZbpW9zy-mNxPAJ_wOFo,3830
90
88
  meerschaum/api/dash/pages/error.py,sha256=-uCrASuIBrceHcc-leLeEoLos2ibSBWG0XMFQzFwtbw,595
91
89
  meerschaum/api/dash/pages/job.py,sha256=bAXXDB0fM3bSiqqJ2XlTwVdg2lohRaWdIGZp7ZtTZOw,544
92
90
  meerschaum/api/dash/pages/login.py,sha256=Qjc-kDL9wW4D1cN48x0MrmWCME4igHDt0VkX9JSipjY,4603
93
91
  meerschaum/api/dash/pages/pipes.py,sha256=Cd5XY_m4nBIsEk6TQadpcajuBRzxw1cyDaTtojwykcI,506
94
- meerschaum/api/dash/pages/plugins.py,sha256=9VpRqWW-3OhgZDUoo4J8PYswd231HaxlcSntxOOKsQA,1549
92
+ meerschaum/api/dash/pages/plugins.py,sha256=EX-M99bxvRSrI-9bIBocj-tmBpf6NgPQ813sJ_HSXS8,1731
95
93
  meerschaum/api/dash/pages/register.py,sha256=dqhsiu2OhrXhs4RL41_CpqipdrWo1-_roASvZIDBAq8,2364
94
+ meerschaum/api/dash/pages/settings/__init__.py,sha256=UjfD2Pyz504CcbieVQbXbljjU5Wnxx7Pe0aix1zqBOE,153
95
+ meerschaum/api/dash/pages/settings/password_reset.py,sha256=cVIesZfCSixEBPWPLAV0jQpwJPKq0vXTIZ_BDuKlU6g,1864
96
96
  meerschaum/api/models/__init__.py,sha256=WrSLChqDkw5y9uU_ma2xJFFLqqVAQvHoIjuYrZDxOcM,276
97
97
  meerschaum/api/models/_interfaces.py,sha256=XtqxzWvUhZ-_SDia45Ut9K_VNziSltGjmLlUt-tMcJY,263
98
98
  meerschaum/api/models/_locations.py,sha256=EF0aZDynLYyDApk_FcpoEK_5ictWnh6bwD73yP99rh8,304
@@ -102,7 +102,7 @@ meerschaum/api/resources/__init__.py,sha256=LshFiqh0sL55QtC_15fz6A6r-1_H9sQWtlif
102
102
  meerschaum/api/resources/static/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
103
103
  meerschaum/api/resources/static/css/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
104
104
  meerschaum/api/resources/static/css/bootstrap.min.css,sha256=W8ArKu4Q_NnxCNqO3doJB2hqrNOIHNLFroAxpyxnYL8,180286
105
- meerschaum/api/resources/static/css/dash.css,sha256=JHY29ivJFJ8FN7u3y0mQNhC5BjGay20M2RTX3kKpW-8,1714
105
+ meerschaum/api/resources/static/css/dash.css,sha256=nhHriUI9eos9bjMUofqNhqMQDK8W_f-vxfcWhbl1XBY,1886
106
106
  meerschaum/api/resources/static/css/dbc_dark.css,sha256=2pka1ymFAjlWLv-mJaxGkPeL-gTEMD2g4Ba6LMuhHV4,6087
107
107
  meerschaum/api/resources/static/css/styles.css,sha256=dHcCtRUzs8kJhpG6d4gusROLSe9AFkUitybvgFmEDvI,81
108
108
  meerschaum/api/resources/static/css/xterm.css,sha256=gy8_LGA7Q61DUf8ElwFQzHqHMBQnbbEmpgZcbdgeSHI,5383
@@ -118,7 +118,7 @@ meerschaum/api/resources/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQe
118
118
  meerschaum/api/resources/templates/index.html,sha256=Ck-S0U5abJgB-wTOKIGg0ispGzKlXXqvFUoNAAByzLA,1019
119
119
  meerschaum/api/resources/templates/old_index.html,sha256=BDeOlcXhSsBH3-NaRtuX4Z1sDuhOoCMa_Dq-6g5RMpc,1711
120
120
  meerschaum/api/resources/templates/secret.html,sha256=0QWkm4ZoN81Aw1pd2-62rGCvx3nXPHfFUoegj3Iy8Ls,141
121
- meerschaum/api/resources/templates/termpage.html,sha256=7PX04aV52yb56nOtSq69ApqYku8Uc-xNACjbE66SdQs,6084
121
+ meerschaum/api/resources/templates/termpage.html,sha256=xW1_a7Anbk2RM-P75EuAVKYPOo6_36fByT0OMxD-yos,6168
122
122
  meerschaum/api/routes/__init__.py,sha256=38k-iGm7LM30C1jfvkt7_tatRO3tfx-eOd8AnTgLkc0,611
123
123
  meerschaum/api/routes/_actions.py,sha256=VUasS1dpr4d3TXHcR1CXlRZPAqvGKKuHv_f9PsOkQ5c,1732
124
124
  meerschaum/api/routes/_connectors.py,sha256=E2Icawy42nBPM7peRlHBM9_v4vF0daWCf-_Ok14LbqI,1776
@@ -126,7 +126,7 @@ meerschaum/api/routes/_index.py,sha256=Z8kuyqm3vmJadw8iIYyswYI4-3IOJ7KXdkhDTv1oU
126
126
  meerschaum/api/routes/_jobs.py,sha256=sEt-UtVd5pN-hJgikTvj1oTKJQ2hhNe8XhjkclwOXOE,12568
127
127
  meerschaum/api/routes/_login.py,sha256=tygEp50EVOMgvTG6CEASlShflbtEK8viJ9O07o0lnnE,2434
128
128
  meerschaum/api/routes/_misc.py,sha256=XxfSvXNGAm8rdvXePXWxX8wc5tjeAdBOSZwYveL3oAM,2591
129
- meerschaum/api/routes/_pipes.py,sha256=4cHjGNXKnPQsF7_TZClpTv3QyILLFlgYPKQjxNYCqy8,25247
129
+ meerschaum/api/routes/_pipes.py,sha256=QEZgLbCPyQUXGq6MbNcSIPsMZ357s19CIlECjp-rPnc,29776
130
130
  meerschaum/api/routes/_plugins.py,sha256=okstNlv9Bhoiy6JvQWgwjxEi4kQ8adPUcir6k3Y7hH8,6329
131
131
  meerschaum/api/routes/_users.py,sha256=i55LuLTQ2cuzIyWz0PxkWji6aQQUIBPf_FEryKwXI50,7197
132
132
  meerschaum/api/routes/_version.py,sha256=-3A0i4Gk54netFOOwjI_x3YQik9vgHjtq7G_VYbzIJo,750
@@ -134,7 +134,7 @@ meerschaum/api/routes/_webterm.py,sha256=S7RXV8vvaTFbmVeehh4UhyXb4NCgcsyOQzoAG7j
134
134
  meerschaum/api/tables/__init__.py,sha256=e2aNC0CdlWICTUMx1i9RauF8Pm426J0RZJbsJWv4SWo,482
135
135
  meerschaum/config/__init__.py,sha256=5ZBq71P9t3nb74r5CGvMfNuauPscfegBX-nkaAUi5C4,11541
136
136
  meerschaum/config/_dash.py,sha256=BJHl4xMrQB-YHUEU7ldEW8q_nOPoIRSOqLrfGElc6Dw,187
137
- meerschaum/config/_default.py,sha256=F1xVug-lhVeIXTL1wvHrIPFmBsL2dGz4lHFakIleeZk,6473
137
+ meerschaum/config/_default.py,sha256=41onvi-NJK_agSkBnsZJwDz09accGLkH8AhkeCuIYZk,6582
138
138
  meerschaum/config/_edit.py,sha256=M9yX_SDD24gV5kWITZpy7p9AWTizJsIAGWAs3WZx-Ws,9087
139
139
  meerschaum/config/_environment.py,sha256=Vv4DLDfc2vKLbCLsMvkQDj77K4kEvHKEBmUBo-wCrgo,4419
140
140
  meerschaum/config/_formatting.py,sha256=OMuqS1EWOsj_34wSs2tOqGIWci3bTMIZ5l-uelZgsIM,6672
@@ -145,7 +145,7 @@ meerschaum/config/_preprocess.py,sha256=-AEA8m_--KivZwTQ1sWN6LTn5sio_fUr2XZ51BO6
145
145
  meerschaum/config/_read_config.py,sha256=RLC3HHi_1ndj7ITVDKLD9_uULY3caGRwSz3ATYE-ixA,15014
146
146
  meerschaum/config/_shell.py,sha256=46_m49Txc5q1rGfCgO49ca48BODx45DQJi8D0zz1R18,4245
147
147
  meerschaum/config/_sync.py,sha256=jHcWRkxd82_BgX8Xo8agsWvf7BSbv3qHLWmYl6ehp_0,4242
148
- meerschaum/config/_version.py,sha256=qo9eC8a6skjLulPkTYodkLffX9t1hvHTg8JGgbZo4Do,71
148
+ meerschaum/config/_version.py,sha256=CLmGepAmbIvVWFURHx1ucpD5NK7zjOTy1vsW-iMAsFw,71
149
149
  meerschaum/config/paths.py,sha256=JjibeGN3YAdSNceRwsd42aNmeUrIgM6ndzC8qZAmNI0,621
150
150
  meerschaum/config/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
151
151
  meerschaum/config/stack/__init__.py,sha256=2UukC0Lmk-aVL1o1qXzumqmuIrw3vu9fD7iCuz4XD4I,10544
@@ -155,50 +155,50 @@ meerschaum/config/stack/mosquitto/resources/__init__.py,sha256=47DEQpj8HBSa-_TIm
155
155
  meerschaum/config/stack/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
156
156
  meerschaum/config/static/__init__.py,sha256=ccm5oaYnLu0j5B85C9a8Y7jWsw4ReJq5RqyvLd-rW_s,5519
157
157
  meerschaum/connectors/_Connector.py,sha256=VaVNg0SlQCTXk4shl3c68QdkbymA2Y9ScUlUjckk8PY,6795
158
- meerschaum/connectors/__init__.py,sha256=bpWsnU0uvoowWyUkFTwfEkadK84pssZUJ4M7yReudOU,12703
159
- meerschaum/connectors/parse.py,sha256=tnqzkzt_suOXYzktn_XVUrprtfym9ThijUf8HXZZlhY,4194
158
+ meerschaum/connectors/__init__.py,sha256=Hx_T2E3fF6zYLC1pjAt0EbnuDbVk9UOI845WaQGw7lk,12716
159
+ meerschaum/connectors/parse.py,sha256=Dzu3fiZu-Vd5d0qje-HCwIIolfmWmUYEOpYRjc7vDqw,4188
160
160
  meerschaum/connectors/poll.py,sha256=23yRUeIqqyNVt8VoJErhirW543YZ6X0ocfBauMJnC_g,7465
161
- meerschaum/connectors/api/_APIConnector.py,sha256=h4keIKtMLLF7IO8yhP42KMfMICu-owgjDsoOxo_Dyt8,5260
161
+ meerschaum/connectors/api/_APIConnector.py,sha256=bcjvPVfxE7y7i_r3FTPL1phzjTMqWq4szJzeusaNqQg,5598
162
162
  meerschaum/connectors/api/__init__.py,sha256=rYHDMK7n-5X5HoxiRITt-sVLgePnPQbgwntkhzvJvOk,234
163
163
  meerschaum/connectors/api/_actions.py,sha256=gd3F8i5BvN8XRvMcPvPVR8sc1DeLzgoBHdDhc8PtACE,3966
164
164
  meerschaum/connectors/api/_fetch.py,sha256=Khq9AFr1nk8Dsmcedb77aWhAuHw0JGgVeahDG95Q5MQ,2072
165
165
  meerschaum/connectors/api/_jobs.py,sha256=N5lpHFGG10jlVgaJeWAOTuLBQw3AdgjXsEPpp1YwZQE,11270
166
166
  meerschaum/connectors/api/_login.py,sha256=cVVmiS-QT0y0QHdrG25eGB4f7j44om1E0YPxnMCNeas,2049
167
167
  meerschaum/connectors/api/_misc.py,sha256=XK0LLexNUEKZjAAqoJ-9oOgwLlMdwxSOvcpqO5NuOas,1083
168
- meerschaum/connectors/api/_pipes.py,sha256=WyFb5RUGqzJSounaotJXtyKKLBN5tVeRZkC2XMrnKKo,21804
169
- meerschaum/connectors/api/_plugins.py,sha256=z04tPjfZZWwa7T60mogZH3X3wDmeLdnoN5Oh8m_YsU8,5217
170
- meerschaum/connectors/api/_request.py,sha256=WTDBkvQUzbHv49kB_3E0SWuS_4r8Dhxmmqr8TTaowcU,6959
168
+ meerschaum/connectors/api/_pipes.py,sha256=6WVHx5chscrejIPcvBNKIH4FDaRCJ1cMzADrdtEpRes,23865
169
+ meerschaum/connectors/api/_plugins.py,sha256=hv0rqWaH8GrQMup8XMdfUbpv_qGcEAjnl3S8yYQGcsI,5072
170
+ meerschaum/connectors/api/_request.py,sha256=JtnDa14nkC5CDCuYhutUPztnbLxxzgjmGG_0k09B4mY,6957
171
171
  meerschaum/connectors/api/_uri.py,sha256=HWxqGx4R1cHZ3ywy9Ro9ePbFxxusw4RLaC3hpGt9Z6I,1469
172
172
  meerschaum/connectors/api/_users.py,sha256=kzb7ENgXwQ19OJYKOuuWzx2rwVuUZCly9dTnyvVuT2Q,5275
173
173
  meerschaum/connectors/plugin/PluginConnector.py,sha256=aQ1QaB7MordCFimZqoGLb0R12PfDUN_nWks2J5mzeAs,2084
174
174
  meerschaum/connectors/plugin/__init__.py,sha256=pwF7TGY4WNz2_HaVdmK4rPQ9ZwTOEuPHgzOqsGcoXJw,198
175
- meerschaum/connectors/sql/_SQLConnector.py,sha256=JVTK2LdUAtgK_fg0zgHOxgJHw7X7s0SHOunBZ9b-ai8,12084
175
+ meerschaum/connectors/sql/_SQLConnector.py,sha256=FmosRX4PKR7AAW-PgX69R_32AsA7E7preQXJf4xc3WI,12240
176
176
  meerschaum/connectors/sql/__init__.py,sha256=3cqYiDkVasn7zWdtOTAZbT4bo95AuvGOmDD2TkaAxtw,205
177
- meerschaum/connectors/sql/_cli.py,sha256=3wXRfPSr5mXlM6Wt8UqrBYfWvkLVZ4jTzKRUd04enCo,5116
178
- meerschaum/connectors/sql/_create_engine.py,sha256=h7c1nwdDWi33PBkRioPomHRT8h1DLc08EQ7INWyC_1Q,10717
177
+ meerschaum/connectors/sql/_cli.py,sha256=smwMBxq-euAeefbdZSXGTr83cm04GVGT1WIFEftMLa4,5142
178
+ meerschaum/connectors/sql/_create_engine.py,sha256=RRiTNNVNwE_sabeTRWrlZZoFB6jFXDfcEcXkENuo8Rc,12035
179
179
  meerschaum/connectors/sql/_fetch.py,sha256=mVe5zQo7SM9PSUU3Vjhacg4Bq1-Vttb7KkXL4p5YQdQ,12818
180
180
  meerschaum/connectors/sql/_instance.py,sha256=xCc8M0xWMzF5Tu_1uWIFivAoHey5N1ccFhN_Z7u04zk,6304
181
- meerschaum/connectors/sql/_pipes.py,sha256=8pp10lOYX8oVEqKHB9907Jny4nkT9fTgF8PrvhsdohI,128855
181
+ meerschaum/connectors/sql/_pipes.py,sha256=EMsOU-GgOJuQGEqBilq0jStii4kBwvEmFxvoMavGzxg,129726
182
182
  meerschaum/connectors/sql/_plugins.py,sha256=OVEdZ_UHTi-x5sF-5lu2TmR9ONxddp6SwDOmFo5TpU8,8051
183
- meerschaum/connectors/sql/_sql.py,sha256=3hrANOId2DAoXsl8nvePnxvoXo5rtB5UfQsJK_fCY9s,42696
183
+ meerschaum/connectors/sql/_sql.py,sha256=EziDFp9mLU-VPvFczG94ZUtGy-JmKxXB4wbLtCfkykk,43786
184
184
  meerschaum/connectors/sql/_uri.py,sha256=BFzu5pjlbL3kxLH13vHWlpKGYTPfg8wuA2j58O9NsCM,3440
185
185
  meerschaum/connectors/sql/_users.py,sha256=mRyjsUCfPV52nfTQUbpu9gMXfV_DHXNqEhw4N-lSS4Q,9954
186
186
  meerschaum/connectors/sql/tools.py,sha256=jz8huOaRCwGlYdtGfAqAh7SoK8uydYBrasKQba9FT38,187
187
187
  meerschaum/connectors/sql/tables/__init__.py,sha256=53EeJsvmGjj68SpSShdt6kyLuk5Md5O8DnvWC1ra3u8,8876
188
188
  meerschaum/connectors/sql/tables/types.py,sha256=Jc_MTHIBM-KHpQt__Lckp39CeOo7tGOiAk5faDx-znY,1573
189
- meerschaum/connectors/valkey/_ValkeyConnector.py,sha256=_KjJSgUcZhNJZuPfn0vhDBjnOzjtk_jZrjScfhio0Ww,15794
189
+ meerschaum/connectors/valkey/_ValkeyConnector.py,sha256=IJgFXHXH89J2uDP_WaejIzr1L8gSNQtSXGxjXeYm2gw,15854
190
190
  meerschaum/connectors/valkey/__init__.py,sha256=jkVutsygQCvGPLN17cP6wHAjHajxVycnQJbm2eVMuY0,187
191
191
  meerschaum/connectors/valkey/_fetch.py,sha256=MjeE0h3YI4M3LCzy7axQAc_fX_l82vUqX4WXcYoppxE,1920
192
- meerschaum/connectors/valkey/_pipes.py,sha256=sjjO1vehNCkN_2bsqQKy81WWWrOg8a8ElupqzCjZ_7c,24594
192
+ meerschaum/connectors/valkey/_pipes.py,sha256=3F24dzdCZ17fQU2tnk2x4n-Mr95fd5tP2-sKD0FiXPw,24673
193
193
  meerschaum/connectors/valkey/_plugins.py,sha256=ZqiEW4XZCOpw4G8DUK2IKY6Qrph4mYfTjgXWimgakYY,6267
194
194
  meerschaum/connectors/valkey/_users.py,sha256=AS1vLarrkDA9yPK644GWwRiQiTZVa9x3nlLpyntq40g,7730
195
195
  meerschaum/core/__init__.py,sha256=tjASW10n9uLV6bYhcwP4rggh-ESXSJzgxpSBbVsuISs,251
196
- meerschaum/core/Pipe/__init__.py,sha256=0HWR0SbBXRlnO7YEe6WCK3rWzZ7kqx86E6B8-cbenjI,19354
196
+ meerschaum/core/Pipe/__init__.py,sha256=rHlKky1AZI6kg9J_9_yOVCJHinMB9JN6hy0VMZBQmdk,19393
197
197
  meerschaum/core/Pipe/_attributes.py,sha256=wZQBGspZHmqmab_DNEUrvYsJSZtwaDsj0zeXDHoEBdQ,22419
198
198
  meerschaum/core/Pipe/_bootstrap.py,sha256=gTNGh5e2LmTMrgIpHqrVaL60uPKWCphhsuz8j-lJ2HI,7348
199
199
  meerschaum/core/Pipe/_clear.py,sha256=LghXabgyyc1tD7FNQrh9ExT71ipcg2poM9FDA3k9e4M,2230
200
200
  meerschaum/core/Pipe/_copy.py,sha256=YDclAapf_spm9phpFr4-CALyYyw7nUsyKyiaLM1cnm4,2965
201
- meerschaum/core/Pipe/_data.py,sha256=FOmMmS_TjcSaCehVbT6NFj7vO3fX2oZOiV0iZpQlC6Y,26819
201
+ meerschaum/core/Pipe/_data.py,sha256=5iHl-_Nsp1xizcNF60ZcEbDvtIYzmdLqpx0Q596Kz4Q,26792
202
202
  meerschaum/core/Pipe/_deduplicate.py,sha256=Wsa1cJk41LgaHwIsJC9OZfPZ_3GoMP26_y8MmJdTrO8,10137
203
203
  meerschaum/core/Pipe/_delete.py,sha256=1geNp9BgrocXP1gt76dMbnlJWKYFMuSNqPFA4K4-hXE,2118
204
204
  meerschaum/core/Pipe/_drop.py,sha256=KDfJVz2aGjHUE1Jkmj7Ej4ICPR5xPiuhyhgRO7Lu9d4,3299
@@ -208,7 +208,7 @@ meerschaum/core/Pipe/_fetch.py,sha256=IojFSA_EXBSm0I8BmlDgmUh3M85FFtXjmDJhdxZ8Ll
208
208
  meerschaum/core/Pipe/_index.py,sha256=cYgaVwBVfAYxJBZ6j6MXDqOxnOrD_QnYi33_kIwy_FQ,1944
209
209
  meerschaum/core/Pipe/_register.py,sha256=Sd5xaAW8H7uLTIoommcKb-6kHPRuHJLWNSbPnt2UbvA,2240
210
210
  meerschaum/core/Pipe/_show.py,sha256=nG50y8eBT9TVuKkRgAKtNDNIxysJvMNxfu__lkL1F9k,1352
211
- meerschaum/core/Pipe/_sync.py,sha256=NGiGhBI7M_nyIvVvyIA9_4jUKis1YpK4YL_pnceYGjg,38077
211
+ meerschaum/core/Pipe/_sync.py,sha256=YsNlWepIPHVxfoBsYtPkdl5jMdTIEEd0kHtMllUyAoI,39968
212
212
  meerschaum/core/Pipe/_verify.py,sha256=aXRpD6azrN9A9Z3AXkKQw6NJFqNWqZVpgidjh5BsfLE,22565
213
213
  meerschaum/core/Plugin/__init__.py,sha256=UXg64EvJPgI1PCxkY_KM02-ZmBm4FZpLPIQR_uSJJDc,137
214
214
  meerschaum/core/User/_User.py,sha256=qbI0GIkr3G0PI4d9S49uatbJQ2kH_-z5-GoVJ0fuEtA,6624
@@ -217,21 +217,21 @@ meerschaum/jobs/_Executor.py,sha256=qM62BhFTM4tyJ7p90KOM0y3qyeRY9k3ZV_aTDJMHnO8,
217
217
  meerschaum/jobs/_Job.py,sha256=D4TFrEQQ9EYqZrnepLBO7T3Sx2mOOdgBs2JnBdC1dNc,32257
218
218
  meerschaum/jobs/__init__.py,sha256=YmZr1ZU8MLUjlTSLQ61Y6eE-a-SYuSMSMhiIpJKao_Y,12829
219
219
  meerschaum/jobs/systemd.py,sha256=CZbBkm-2z8z7G3CNmP5yBRj2VtWuxmxXVIv97cGhZGc,24613
220
- meerschaum/plugins/_Plugin.py,sha256=bIo4HX8TTWIcwIHROwMt4VK6OoEUhY_3Qc8q-2dp-ZA,33895
221
- meerschaum/plugins/__init__.py,sha256=Kl7Dz0CwUUxyjRC5RWnYo6WMLsOvdX2eQ38Rh3BjdzY,26465
220
+ meerschaum/plugins/_Plugin.py,sha256=CyaWg0TImFui9NMJkTP3bYKnYHmRC5uVrPSPKoiB_Dc,34359
221
+ meerschaum/plugins/__init__.py,sha256=H0VwldqR_n5XaX3amBl58mDgugIo0Pnn-e1Xxyb103I,27312
222
222
  meerschaum/plugins/bootstrap.py,sha256=VwjpZAuYdqPJW0YoVgAoM_taHkdQHqP902-8T7OWWCI,11339
223
223
  meerschaum/utils/__init__.py,sha256=QrK1K9hIbPCRCM5k2nZGFqGnrqhA0Eh-iSmCU7FG6Cs,612
224
224
  meerschaum/utils/_get_pipes.py,sha256=tu4xKPoDn79Dz2kWM13cXTP4DSCkn-3G9M8KiLftopw,11073
225
- meerschaum/utils/dataframe.py,sha256=f9h3fmG_ePHHls2NQmGHNqUurUEZBBvpS1UR7tQgwjI,49341
225
+ meerschaum/utils/dataframe.py,sha256=Rc9B6oc8hQfhNKzHqemzf_l16Zb4xksPMf6XOut6Ozs,53790
226
226
  meerschaum/utils/debug.py,sha256=GyIzJmunkoPnOcZNYVQdT4Sgd-aOb5MI2VbIgATOjIQ,3695
227
227
  meerschaum/utils/interactive.py,sha256=t-6jWozXSqL7lYGDHuwiOjTgr-UKhdcg61q_eR5mikI,3196
228
- meerschaum/utils/misc.py,sha256=8TOQQlFyF_aYnc8tnx98lccXr9tFrdlS-ngXeOQjHHY,47407
228
+ meerschaum/utils/misc.py,sha256=by_cNQ2qzQoFZYDBLRIimFzsxXW3QLuHSsFUnSahk5E,47419
229
229
  meerschaum/utils/networking.py,sha256=Sr_eYUGW8_UV9-k9LqRFf7xLtbUcsDucODyLCRsFRUc,1006
230
230
  meerschaum/utils/pool.py,sha256=vkE42af4fjrTEJTxf6Ek3xGucm1MtEkpsSEiaVzNKHs,2655
231
231
  meerschaum/utils/process.py,sha256=as0-CjG4mqFP0TydVvmAmgki6er4thS5BqUopeiq98Q,8216
232
232
  meerschaum/utils/prompt.py,sha256=qj1As1tuiL0GZTku_YOC6I5DmOU6L5otDR7DW7LA5fM,19397
233
233
  meerschaum/utils/schedule.py,sha256=Vrcd2Qs-UPVn6xBayNUIgludf0Mlb6Wrgq6ATdyhV8c,11451
234
- meerschaum/utils/sql.py,sha256=2p8pa3kBCE5lM6tDle5HV4AamZCgOpnKmCB6mdkiLUA,80287
234
+ meerschaum/utils/sql.py,sha256=sVW1F7BMshmGPiG9yi2nSRVtU9mzQKH8SbqfNrl018Q,84369
235
235
  meerschaum/utils/threading.py,sha256=awjbVL_QR6G-o_9Qk85utac9cSdqkiC8tQSdERCdrG8,2814
236
236
  meerschaum/utils/typing.py,sha256=U3MC347sh1umpa3Xr1k71eADyDmk4LB6TnVCpq8dVzI,2830
237
237
  meerschaum/utils/warnings.py,sha256=n-phr3BftNNgyPnvnXC_VMSjtCvjiCZ-ewmVfcROhkc,6611
@@ -242,23 +242,23 @@ meerschaum/utils/daemon/RotatingFile.py,sha256=8_bXegBjjzNRlNEjFZ_EHU4pSaDfjXZTw
242
242
  meerschaum/utils/daemon/StdinFile.py,sha256=qdZ8E_RSOkURypwnS50mWeyWyRig1bAY9tKWMTVKajc,3307
243
243
  meerschaum/utils/daemon/__init__.py,sha256=ziRPyu_IM3l7Xd58y3Uvt0fZLoirJ9nuboFIxxult6c,8741
244
244
  meerschaum/utils/daemon/_names.py,sha256=d2ZwTxBoTAqXZkCfZ5LuX2XrkQmLNUq1OTlUqfoH5dA,4515
245
- meerschaum/utils/dtypes/__init__.py,sha256=O4EfRcv53NwvHYZpyP0kfJjS-I-9dUFdXUd78hoy0ZU,15492
246
- meerschaum/utils/dtypes/sql.py,sha256=c-3ib_NMklCAJBabGFa712o97VQnAyEyj8NRACKMo6s,22230
245
+ meerschaum/utils/dtypes/__init__.py,sha256=BCu-a66OdkEn6EwuBN182EDWjXrMIbRQYjuQrXMZ9jc,21491
246
+ meerschaum/utils/dtypes/sql.py,sha256=zhwGnz6MfsaJEH7Sibtd-GfVEImnBSkZh1I3srxgiKE,31428
247
247
  meerschaum/utils/formatting/__init__.py,sha256=bA8qwBeTNIVHVQOBK682bJsKSKik1yS6xYJAoi0RErk,15528
248
248
  meerschaum/utils/formatting/_jobs.py,sha256=izsqPJhTtUkXUUtWnbXtReYsUYwulXtci3pBj72Ne64,6637
249
249
  meerschaum/utils/formatting/_pipes.py,sha256=gwl8-xCN5GYqBZJ7SkY20BebcofY0nU5X8Y4Emf5dz8,19570
250
250
  meerschaum/utils/formatting/_pprint.py,sha256=wyTmjHFnsHbxfyuytjTWzH-D42Z65GuIisQ_W6UnRPg,3096
251
- meerschaum/utils/formatting/_shell.py,sha256=XH7VFLteNv7NGtWhJl7FdIGt80sKeTiDoJokGSDAwBM,3761
251
+ meerschaum/utils/formatting/_shell.py,sha256=2bFvtwNXapjl9jdlc0fg79PRWHbYVcllKiVcG5g36qI,3678
252
252
  meerschaum/utils/packages/__init__.py,sha256=TdKaj2tmN4bFwzusOfMv24P5ET7Zv73vyoOf9GOIr5E,64427
253
- meerschaum/utils/packages/_packages.py,sha256=yeeMIUWr7TkMknGmkzUj4_BJtidOoCadW7m0C389_UQ,8868
253
+ meerschaum/utils/packages/_packages.py,sha256=G3eMtqq4WJo_iTC4ctRAWkzKhN6ZQcdFRpKy5j6glMk,9131
254
254
  meerschaum/utils/packages/lazy_loader.py,sha256=VHnph3VozH29R4JnSSBfwtA5WKZYZQFT_GeQSShCnuc,2540
255
255
  meerschaum/utils/venv/_Venv.py,sha256=gc1TCeAj-kTZbQFAT9xl1bi4HXFV5ApT0dPOJfxwr78,3748
256
- meerschaum/utils/venv/__init__.py,sha256=AJH9BEO2Eadwn17E_uynca_picaJTlMPP_s4y5RHpJw,27187
257
- meerschaum-2.8.4.dist-info/LICENSE,sha256=jG2zQEdRNt88EgHUWPpXVWmOrOduUQRx7MnYV9YIPaw,11359
258
- meerschaum-2.8.4.dist-info/METADATA,sha256=ADfvDN1hru7HrOqr5MwrRFd0qLB9Y2ewvoa3H0nE9Ss,24489
259
- meerschaum-2.8.4.dist-info/NOTICE,sha256=OTA9Fcthjf5BRvWDDIcBC_xfLpeDV-RPZh3M-HQBRtQ,114
260
- meerschaum-2.8.4.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
261
- meerschaum-2.8.4.dist-info/entry_points.txt,sha256=5YBVzibw-0rNA_1VjB16z5GABsOGf-CDhW4yqH8C7Gc,88
262
- meerschaum-2.8.4.dist-info/top_level.txt,sha256=bNoSiDj0El6buocix-FRoAtJOeq1qOF5rRm2u9i7Q6A,11
263
- meerschaum-2.8.4.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
264
- meerschaum-2.8.4.dist-info/RECORD,,
256
+ meerschaum/utils/venv/__init__.py,sha256=RhWuDohBEROIu_9T6BNPgYCrGtuE14w7nXHR1E2qyh8,27321
257
+ meerschaum-2.9.0.dist-info/LICENSE,sha256=jG2zQEdRNt88EgHUWPpXVWmOrOduUQRx7MnYV9YIPaw,11359
258
+ meerschaum-2.9.0.dist-info/METADATA,sha256=6UP33dXta35YJLMkWzwc_Cp2k8RWy-P8rcS_9TZnIMM,25123
259
+ meerschaum-2.9.0.dist-info/NOTICE,sha256=OTA9Fcthjf5BRvWDDIcBC_xfLpeDV-RPZh3M-HQBRtQ,114
260
+ meerschaum-2.9.0.dist-info/WHEEL,sha256=beeZ86-EfXScwlR_HKu4SllMC9wUEj_8Z_4FJ3egI2w,91
261
+ meerschaum-2.9.0.dist-info/entry_points.txt,sha256=5YBVzibw-0rNA_1VjB16z5GABsOGf-CDhW4yqH8C7Gc,88
262
+ meerschaum-2.9.0.dist-info/top_level.txt,sha256=bNoSiDj0El6buocix-FRoAtJOeq1qOF5rRm2u9i7Q6A,11
263
+ meerschaum-2.9.0.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
264
+ meerschaum-2.9.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.8.0)
2
+ Generator: setuptools (76.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5