meerschaum 2.7.5__py3-none-any.whl → 2.7.7__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 (50) hide show
  1. meerschaum/_internal/shell/Shell.py +4 -6
  2. meerschaum/_internal/shell/ShellCompleter.py +6 -5
  3. meerschaum/actions/clear.py +6 -3
  4. meerschaum/actions/copy.py +33 -27
  5. meerschaum/actions/drop.py +100 -22
  6. meerschaum/actions/index.py +71 -0
  7. meerschaum/actions/register.py +8 -12
  8. meerschaum/actions/sql.py +1 -1
  9. meerschaum/actions/sync.py +22 -18
  10. meerschaum/api/dash/pipes.py +2 -3
  11. meerschaum/api/routes/_pipes.py +18 -0
  12. meerschaum/api/routes/_plugins.py +1 -1
  13. meerschaum/api/routes/_users.py +62 -61
  14. meerschaum/config/_default.py +5 -0
  15. meerschaum/config/_version.py +1 -1
  16. meerschaum/connectors/api/_misc.py +3 -2
  17. meerschaum/connectors/api/_pipes.py +28 -9
  18. meerschaum/connectors/sql/_SQLConnector.py +7 -3
  19. meerschaum/connectors/sql/_create_engine.py +1 -1
  20. meerschaum/connectors/sql/_fetch.py +4 -9
  21. meerschaum/connectors/sql/_instance.py +3 -3
  22. meerschaum/connectors/sql/_pipes.py +292 -76
  23. meerschaum/connectors/sql/_plugins.py +11 -16
  24. meerschaum/connectors/sql/_sql.py +13 -9
  25. meerschaum/connectors/sql/_uri.py +9 -9
  26. meerschaum/connectors/sql/_users.py +10 -12
  27. meerschaum/connectors/sql/tables/__init__.py +13 -14
  28. meerschaum/core/Pipe/__init__.py +12 -2
  29. meerschaum/core/Pipe/_attributes.py +32 -38
  30. meerschaum/core/Pipe/_drop.py +73 -2
  31. meerschaum/core/Pipe/_index.py +68 -0
  32. meerschaum/jobs/_Job.py +1 -0
  33. meerschaum/plugins/__init__.py +7 -3
  34. meerschaum/utils/daemon/Daemon.py +5 -1
  35. meerschaum/utils/daemon/__init__.py +2 -2
  36. meerschaum/utils/dtypes/sql.py +2 -2
  37. meerschaum/utils/misc.py +7 -6
  38. meerschaum/utils/packages/__init__.py +31 -27
  39. meerschaum/utils/packages/_packages.py +1 -1
  40. meerschaum/utils/prompt.py +54 -36
  41. meerschaum/utils/sql.py +80 -34
  42. meerschaum/utils/venv/__init__.py +12 -3
  43. {meerschaum-2.7.5.dist-info → meerschaum-2.7.7.dist-info}/METADATA +17 -5
  44. {meerschaum-2.7.5.dist-info → meerschaum-2.7.7.dist-info}/RECORD +50 -48
  45. {meerschaum-2.7.5.dist-info → meerschaum-2.7.7.dist-info}/WHEEL +1 -1
  46. {meerschaum-2.7.5.dist-info → meerschaum-2.7.7.dist-info}/LICENSE +0 -0
  47. {meerschaum-2.7.5.dist-info → meerschaum-2.7.7.dist-info}/NOTICE +0 -0
  48. {meerschaum-2.7.5.dist-info → meerschaum-2.7.7.dist-info}/entry_points.txt +0 -0
  49. {meerschaum-2.7.5.dist-info → meerschaum-2.7.7.dist-info}/top_level.txt +0 -0
  50. {meerschaum-2.7.5.dist-info → meerschaum-2.7.7.dist-info}/zip-safe +0 -0
meerschaum/utils/sql.py CHANGED
@@ -43,6 +43,9 @@ SKIP_IF_EXISTS_FLAVORS = {'mssql', 'oracle'}
43
43
  DROP_IF_EXISTS_FLAVORS = {
44
44
  'timescaledb', 'postgresql', 'citus', 'mssql', 'mysql', 'mariadb', 'sqlite',
45
45
  }
46
+ DROP_INDEX_IF_EXISTS_FLAVORS = {
47
+ 'mssql', 'timescaledb', 'postgresql', 'sqlite', 'citus',
48
+ }
46
49
  SKIP_AUTO_INCREMENT_FLAVORS = {'citus', 'duckdb'}
47
50
  COALESCE_UNIQUE_INDEX_FLAVORS = {'timescaledb', 'postgresql', 'citus'}
48
51
  UPDATE_QUERIES = {
@@ -376,7 +379,7 @@ columns_indices_queries = {
376
379
  WHERE
377
380
  t.name IN ('{table}', '{table_trunc}')
378
381
  AND s.name = '{schema}'
379
- AND i.type IN (1, 2) -- 1 = CLUSTERED, 2 = NONCLUSTERED
382
+ AND i.type IN (1, 2)
380
383
  """,
381
384
  'oracle': """
382
385
  SELECT
@@ -590,7 +593,14 @@ def dateadd_str(
590
593
  from meerschaum.utils.dtypes.sql import get_db_type_from_pd_type, get_pd_type_from_db_type
591
594
  dateutil_parser = attempt_import('dateutil.parser')
592
595
  if 'int' in str(type(begin)).lower():
593
- return str(begin)
596
+ num_str = str(begin)
597
+ if number is not None and number != 0:
598
+ num_str += (
599
+ f' + {number}'
600
+ if number > 0
601
+ else f" - {number * -1}"
602
+ )
603
+ return num_str
594
604
  if not begin:
595
605
  return ''
596
606
 
@@ -797,7 +807,7 @@ def sql_item_name(item: str, flavor: str, schema: Optional[str] = None) -> str:
797
807
  """
798
808
  truncated_item = truncate_item_name(str(item), flavor)
799
809
  if flavor == 'oracle':
800
- truncated_item = pg_capital(truncated_item)
810
+ truncated_item = pg_capital(truncated_item, quote_capitals=True)
801
811
  ### NOTE: System-reserved words must be quoted.
802
812
  if truncated_item.lower() in (
803
813
  'float', 'varchar', 'nvarchar', 'clob',
@@ -824,14 +834,17 @@ def sql_item_name(item: str, flavor: str, schema: Optional[str] = None) -> str:
824
834
  return schema_prefix + wrappers[0] + truncated_item + wrappers[1]
825
835
 
826
836
 
827
- def pg_capital(s: str) -> str:
837
+ def pg_capital(s: str, quote_capitals: bool = True) -> str:
828
838
  """
829
839
  If string contains a capital letter, wrap it in double quotes.
830
840
 
831
841
  Parameters
832
842
  ----------
833
- s: str :
834
- The string to be escaped.
843
+ s: str
844
+ The string to be escaped.
845
+
846
+ quote_capitals: bool, default True
847
+ If `False`, do not quote strings with contain only a mix of capital and lower-case letters.
835
848
 
836
849
  Returns
837
850
  -------
@@ -845,16 +858,24 @@ def pg_capital(s: str) -> str:
845
858
  'my_table'
846
859
 
847
860
  """
848
- if '"' in s:
861
+ if s.startswith('"') and s.endswith('"'):
849
862
  return s
863
+
864
+ s = s.replace('"', '')
865
+
850
866
  needs_quotes = s.startswith('_')
851
- for c in str(s):
852
- if ord(c) < ord('a') or ord(c) > ord('z'):
853
- if not c.isdigit() and c != '_':
867
+ if not needs_quotes:
868
+ for c in s:
869
+ if c == '_':
870
+ continue
871
+
872
+ if not c.isalnum() or (quote_capitals and c.isupper()):
854
873
  needs_quotes = True
855
874
  break
875
+
856
876
  if needs_quotes:
857
877
  return '"' + s + '"'
878
+
858
879
  return s
859
880
 
860
881
 
@@ -1048,7 +1069,7 @@ def table_exists(
1048
1069
  -------
1049
1070
  A `bool` indicating whether or not the table exists on the database.
1050
1071
  """
1051
- sqlalchemy = mrsm.attempt_import('sqlalchemy')
1072
+ sqlalchemy = mrsm.attempt_import('sqlalchemy', lazy=False)
1052
1073
  schema = schema or connector.schema
1053
1074
  insp = sqlalchemy.inspect(connector.engine)
1054
1075
  truncated_table_name = truncate_item_name(str(table), connector.flavor)
@@ -1101,7 +1122,7 @@ def get_sqlalchemy_table(
1101
1122
  if refresh:
1102
1123
  connector.metadata.clear()
1103
1124
  tables = get_tables(mrsm_instance=connector, debug=debug, create=False)
1104
- sqlalchemy = attempt_import('sqlalchemy')
1125
+ sqlalchemy = attempt_import('sqlalchemy', lazy=False)
1105
1126
  truncated_table_name = truncate_item_name(str(table), connector.flavor)
1106
1127
  table_kwargs = {
1107
1128
  'autoload_with': connector.engine,
@@ -1171,7 +1192,7 @@ def get_table_cols_types(
1171
1192
  """
1172
1193
  import textwrap
1173
1194
  from meerschaum.connectors import SQLConnector
1174
- sqlalchemy = mrsm.attempt_import('sqlalchemy')
1195
+ sqlalchemy = mrsm.attempt_import('sqlalchemy', lazy=False)
1175
1196
  flavor = flavor or getattr(connectable, 'flavor', None)
1176
1197
  if not flavor:
1177
1198
  raise ValueError("Please provide a database flavor.")
@@ -1323,7 +1344,7 @@ def get_table_cols_indices(
1323
1344
  import textwrap
1324
1345
  from collections import defaultdict
1325
1346
  from meerschaum.connectors import SQLConnector
1326
- sqlalchemy = mrsm.attempt_import('sqlalchemy')
1347
+ sqlalchemy = mrsm.attempt_import('sqlalchemy', lazy=False)
1327
1348
  flavor = flavor or getattr(connectable, 'flavor', None)
1328
1349
  if not flavor:
1329
1350
  raise ValueError("Please provide a database flavor.")
@@ -1448,6 +1469,7 @@ def get_update_queries(
1448
1469
  schema: Optional[str] = None,
1449
1470
  patch_schema: Optional[str] = None,
1450
1471
  identity_insert: bool = False,
1472
+ null_indices: bool = True,
1451
1473
  debug: bool = False,
1452
1474
  ) -> List[str]:
1453
1475
  """
@@ -1489,6 +1511,9 @@ def get_update_queries(
1489
1511
  If `True`, include `SET IDENTITY_INSERT` queries before and after the update queries.
1490
1512
  Only applies for MSSQL upserts.
1491
1513
 
1514
+ null_indices: bool, default True
1515
+ If `False`, do not coalesce index columns before joining.
1516
+
1492
1517
  debug: bool, default False
1493
1518
  Verbosity toggle.
1494
1519
 
@@ -1579,11 +1604,17 @@ def get_update_queries(
1579
1604
 
1580
1605
  coalesce_join_cols_str = ', '.join(
1581
1606
  [
1582
- 'COALESCE('
1583
- + sql_item_name(c_name, flavor)
1584
- + ', '
1585
- + get_null_replacement(c_type, flavor)
1586
- + ')'
1607
+ (
1608
+ (
1609
+ 'COALESCE('
1610
+ + sql_item_name(c_name, flavor)
1611
+ + ', '
1612
+ + get_null_replacement(c_type, flavor)
1613
+ + ')'
1614
+ )
1615
+ if null_indices
1616
+ else sql_item_name(c_name, flavor)
1617
+ )
1587
1618
  for c_name, c_type in join_cols_types
1588
1619
  ]
1589
1620
  )
@@ -1633,19 +1664,29 @@ def get_update_queries(
1633
1664
  def and_subquery(l_prefix: str, r_prefix: str):
1634
1665
  return '\n AND\n '.join([
1635
1666
  (
1636
- "COALESCE("
1637
- + l_prefix
1638
- + sql_item_name(c_name, flavor, None)
1639
- + ", "
1640
- + get_null_replacement(c_type, flavor)
1641
- + ")"
1642
- + '\n =\n '
1643
- + "COALESCE("
1644
- + r_prefix
1645
- + sql_item_name(c_name, flavor, None)
1646
- + ", "
1647
- + get_null_replacement(c_type, flavor)
1648
- + ")"
1667
+ (
1668
+ "COALESCE("
1669
+ + l_prefix
1670
+ + sql_item_name(c_name, flavor, None)
1671
+ + ", "
1672
+ + get_null_replacement(c_type, flavor)
1673
+ + ")"
1674
+ + '\n =\n '
1675
+ + "COALESCE("
1676
+ + r_prefix
1677
+ + sql_item_name(c_name, flavor, None)
1678
+ + ", "
1679
+ + get_null_replacement(c_type, flavor)
1680
+ + ")"
1681
+ )
1682
+ if null_indices
1683
+ else (
1684
+ l_prefix
1685
+ + sql_item_name(c_name, flavor, None)
1686
+ + ' = '
1687
+ + r_prefix
1688
+ + sql_item_name(c_name, flavor, None)
1689
+ )
1649
1690
  ) for c_name, c_type in join_cols_types
1650
1691
  ])
1651
1692
 
@@ -1973,7 +2014,12 @@ def _get_create_table_query_from_dtypes(
1973
2014
  autoincrement = False
1974
2015
 
1975
2016
  cols_types = (
1976
- [(primary_key, get_db_type_from_pd_type(dtypes.get(primary_key, 'int'), flavor=flavor))]
2017
+ [
2018
+ (
2019
+ primary_key,
2020
+ get_db_type_from_pd_type(dtypes.get(primary_key, 'int') or 'int', flavor=flavor)
2021
+ )
2022
+ ]
1977
2023
  if primary_key
1978
2024
  else []
1979
2025
  ) + [
@@ -2329,7 +2375,7 @@ def session_execute(
2329
2375
  A `SuccessTuple` indicating the queries were successfully executed.
2330
2376
  If `with_results`, return the `SuccessTuple` and a list of results.
2331
2377
  """
2332
- sqlalchemy = mrsm.attempt_import('sqlalchemy')
2378
+ sqlalchemy = mrsm.attempt_import('sqlalchemy', lazy=False)
2333
2379
  if not isinstance(queries, list):
2334
2380
  queries = [queries]
2335
2381
  successes, msgs, results = [], [], []
@@ -410,7 +410,7 @@ def init_venv(
410
410
  pass
411
411
 
412
412
  def wait_for_lock():
413
- max_lock_seconds = 1.0
413
+ max_lock_seconds = 2.0
414
414
  step_sleep_seconds = 0.1
415
415
  init_venv_check_start = time.perf_counter()
416
416
  while ((time.perf_counter() - init_venv_check_start) < max_lock_seconds):
@@ -450,13 +450,22 @@ def init_venv(
450
450
  temp_vtp = VENVS_CACHE_RESOURCES_PATH / str(venv)
451
451
  rename_vtp = vtp.exists() and not temp_vtp.exists()
452
452
 
453
+ wait_for_lock()
454
+ update_lock(True)
455
+
453
456
  if rename_vtp:
454
457
  if debug:
455
458
  print(f"Moving '{vtp}' to '{temp_vtp}'...")
456
459
  shutil.move(vtp, temp_vtp)
457
460
 
458
- wait_for_lock()
459
- update_lock(True)
461
+ if venv_path.exists():
462
+ if debug:
463
+ print(f"Removing '{venv_path}'...")
464
+ try:
465
+ shutil.rmtree(venv_path)
466
+ except Exception as e:
467
+ if debug:
468
+ print(f"Failed to remove '{venv_path}' ({e}). Continuing...")
460
469
 
461
470
  if uv is not None:
462
471
  _venv_success = run_python_package(
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: meerschaum
3
- Version: 2.7.5
3
+ Version: 2.7.7
4
4
  Summary: Sync Time-Series Pipes with Meerschaum
5
5
  Home-page: https://meerschaum.io
6
6
  Author: Bennett Meares
@@ -127,7 +127,7 @@ Provides-Extra: sql
127
127
  Requires-Dist: numpy>=1.18.5; extra == "sql"
128
128
  Requires-Dist: pandas[parquet]>=2.0.1; extra == "sql"
129
129
  Requires-Dist: pyarrow>=16.1.0; extra == "sql"
130
- Requires-Dist: dask[complete]>=2024.5.1; extra == "sql"
130
+ Requires-Dist: dask[complete]>=2024.12.1; extra == "sql"
131
131
  Requires-Dist: partd>=1.4.2; extra == "sql"
132
132
  Requires-Dist: pytz; extra == "sql"
133
133
  Requires-Dist: joblib>=0.17.0; extra == "sql"
@@ -187,7 +187,7 @@ Requires-Dist: valkey>=6.0.0; extra == "api"
187
187
  Requires-Dist: numpy>=1.18.5; extra == "api"
188
188
  Requires-Dist: pandas[parquet]>=2.0.1; extra == "api"
189
189
  Requires-Dist: pyarrow>=16.1.0; extra == "api"
190
- Requires-Dist: dask[complete]>=2024.5.1; extra == "api"
190
+ Requires-Dist: dask[complete]>=2024.12.1; extra == "api"
191
191
  Requires-Dist: partd>=1.4.2; extra == "api"
192
192
  Requires-Dist: pytz; extra == "api"
193
193
  Requires-Dist: joblib>=0.17.0; extra == "api"
@@ -292,7 +292,7 @@ Requires-Dist: pycparser>=2.21.0; extra == "full"
292
292
  Requires-Dist: numpy>=1.18.5; extra == "full"
293
293
  Requires-Dist: pandas[parquet]>=2.0.1; extra == "full"
294
294
  Requires-Dist: pyarrow>=16.1.0; extra == "full"
295
- Requires-Dist: dask[complete]>=2024.5.1; extra == "full"
295
+ Requires-Dist: dask[complete]>=2024.12.1; extra == "full"
296
296
  Requires-Dist: partd>=1.4.2; extra == "full"
297
297
  Requires-Dist: pytz; extra == "full"
298
298
  Requires-Dist: joblib>=0.17.0; extra == "full"
@@ -318,6 +318,18 @@ Requires-Dist: python-multipart>=0.0.9; extra == "full"
318
318
  Requires-Dist: httpx>=0.27.2; extra == "full"
319
319
  Requires-Dist: httpcore>=1.0.6; extra == "full"
320
320
  Requires-Dist: valkey>=6.0.0; extra == "full"
321
+ Dynamic: author
322
+ Dynamic: author-email
323
+ Dynamic: classifier
324
+ Dynamic: description
325
+ Dynamic: description-content-type
326
+ Dynamic: home-page
327
+ Dynamic: license
328
+ Dynamic: maintainer-email
329
+ Dynamic: project-url
330
+ Dynamic: provides-extra
331
+ Dynamic: requires-python
332
+ Dynamic: summary
321
333
 
322
334
  <img src="https://meerschaum.io/assets/banner_1920x320.png" alt="Meerschaum banner" style="width: 100%"/>
323
335
 
@@ -12,8 +12,8 @@ meerschaum/_internal/gui/app/__init__.py,sha256=rKUa8hHk6Fai-PDF61tQcpT1myxKcfmv
12
12
  meerschaum/_internal/gui/app/_windows.py,sha256=-VHdjTzA3V596fVqnbmTxemONSp_80-sTNJ0CTB8FwU,2632
13
13
  meerschaum/_internal/gui/app/actions.py,sha256=rx37qXf3uoa7Ou0n1cISqNFZNL0nr4wO7vSUmWO8f2E,935
14
14
  meerschaum/_internal/gui/app/pipes.py,sha256=4nAQ0rrHb_2bNgDF0Ru2YlbPaCDDzAl5beOGU4Af-4A,1596
15
- meerschaum/_internal/shell/Shell.py,sha256=-dw1k9NbG0VGX0Sve1c8gQ1_XsMYcmYl0VwSO98ERVk,40099
16
- meerschaum/_internal/shell/ShellCompleter.py,sha256=uWo-SYBXDGEeKExsjVWi-u7yfnc5XWWCy4Nl4eSO8j4,3340
15
+ meerschaum/_internal/shell/Shell.py,sha256=R6xW-D9gVuxJxQzf4Bf6E9V8exE40aCdrDJ_snUpoxA,39982
16
+ meerschaum/_internal/shell/ShellCompleter.py,sha256=Ex6mPv83RUNdC3ufRJCcaoOmQ8q8z6tCHDVzXQmWIpY,3293
17
17
  meerschaum/_internal/shell/ValidAutoSuggest.py,sha256=bARjOWMidz0dvMelLUe6yRPto5l3gcEHYHqFDjoh22I,1280
18
18
  meerschaum/_internal/shell/__init__.py,sha256=vXQoQPEVlYiUYai1b5AwQAlTnja6A2cSABnqXhzlS7I,281
19
19
  meerschaum/_internal/shell/updates.py,sha256=FmKu1NsIE7AI1zq8zNeKneZzORv6BeURQeX0lRR81Ag,5040
@@ -25,28 +25,29 @@ meerschaum/actions/__init__.py,sha256=MHPs8aRBhbZQXnqd_6tVtisTrNCgPAPgnNcXYbn0zP
25
25
  meerschaum/actions/api.py,sha256=41r3fBh3vAPyNaOrvbh2oh6WUJTR2I-zaOEZN60A66E,12538
26
26
  meerschaum/actions/attach.py,sha256=UV19d9W_2WYcrf7BRz7k3mriDoX1V4rA4AKvbLdor0o,3106
27
27
  meerschaum/actions/bootstrap.py,sha256=08o3PchrJ_Rv8IP30ZBH1Ovk-b8qFBGPedCjF7jRzSo,18084
28
- meerschaum/actions/clear.py,sha256=iTSdJpFIGLirFgBrOFb2GH1ShI2LZ1NIGLeGYOboZYQ,4916
29
- meerschaum/actions/copy.py,sha256=NHoC9cHJGgoox8L8B0afbu8lAxEh_MKa_pNeVunZsl0,6824
28
+ meerschaum/actions/clear.py,sha256=v_xHn7-Pu7iwFNJ07q9eJt2hqPV7OwNZHUYa9dvixs4,4976
29
+ meerschaum/actions/copy.py,sha256=z_51zEQCKDXnAGfICIGKS3klZ2OTPdiZPJACvpuheDY,6861
30
30
  meerschaum/actions/deduplicate.py,sha256=puYyxeFYEUy1Sd2IOcZB2e6MrNxAZl2bTLmNzFDkCiw,1167
31
31
  meerschaum/actions/delete.py,sha256=H5oP0nE7qIWnFvkuFhZQZQYBVC0IbUevpaQ_2YQKXRA,18559
32
- meerschaum/actions/drop.py,sha256=Hd5h4rrWd7qL2rTqglsTonUsEoH7qQlsfqNFSHGeqr0,2453
32
+ meerschaum/actions/drop.py,sha256=UZg16dPx1o9f-hBrbIiZ6-F2QOTaTAdmFqLaSQla0t8,4434
33
33
  meerschaum/actions/edit.py,sha256=VpP6bJ-i7GR3tRzs_PILcDKcFCBeTUaeXpZDwxJ4fFk,16224
34
+ meerschaum/actions/index.py,sha256=JukgmLYhVkbV4eDgw_WbJwOGadNXQCVJfsGvND8HaEs,1800
34
35
  meerschaum/actions/install.py,sha256=P_M2dnn3sVC2mAn5hwvu4VHWkoh4r9TBUzNcU_Kukpc,7437
35
36
  meerschaum/actions/login.py,sha256=fNgsgkrFCn9wBQJY50SQhz2PwsN_TvEYYHnXK3JG4ig,4206
36
37
  meerschaum/actions/os.py,sha256=dtoppoBhLzW3rLNF0SFovEfNxA4WJWt_9WrOGlS5KbA,2251
37
38
  meerschaum/actions/pause.py,sha256=WI4dQFfjQ6ObWKUzwQ5FrtYPDyEcnxWwval8cSIzzJw,4221
38
39
  meerschaum/actions/python.py,sha256=k3Oo64RhyPd49W8bSjYvm6DOXuqY17NpR6BmfZb3-os,4737
39
- meerschaum/actions/register.py,sha256=By4eCJn-nvrWKs8dPG5GqMClUMm9y_yvIwU_FwRqJXw,14441
40
+ meerschaum/actions/register.py,sha256=GR9Q8ml0S_bKPQDFlXarmzNkx4vMn9Un6UKS5qQN38c,14172
40
41
  meerschaum/actions/reload.py,sha256=gMXeFBGVfyQ7uhKhYf6bLaDMD0fLPcA9BrLBSiuvWIc,508
41
42
  meerschaum/actions/restart.py,sha256=6ffp3-X9eTEgunVSdD41HnOwqp71yjuSAmXJ5j39ONI,3038
42
43
  meerschaum/actions/setup.py,sha256=KkAGWcgwzl_L6A19fTmTX1KtBjW2FwD8QenLjPy0mQQ,3205
43
44
  meerschaum/actions/sh.py,sha256=hSkGNTVqP5dNjhJ64zy3V3VCFPTKnDlH3PxdKdxtkGQ,1990
44
45
  meerschaum/actions/show.py,sha256=T8Ol1o-762cI9rlUzd-8svvwgT4slYXYfOPQETh9Koo,28446
45
- meerschaum/actions/sql.py,sha256=zG-KydYR654RHaF-O4Id3ACCDWeogk2B1R-OFLwFbG0,4515
46
+ meerschaum/actions/sql.py,sha256=PhbBMBq20LL8Yh3q-yqGMe7f8ffmyjbD8q_G8Q0WxZc,4527
46
47
  meerschaum/actions/stack.py,sha256=ZwrCTGJ0x3jjZkRieWcvqasQHYCqNtB1HYvTX-r3Z3g,5996
47
48
  meerschaum/actions/start.py,sha256=NtdVzeB00PQBnDSUSu8ypHmMrZT8_Idmw5BfVZ--Zic,21296
48
49
  meerschaum/actions/stop.py,sha256=5fdUw70YN-yuUWrC-NhA88cxr9FZ5NbssbQ8xXO8nFU,4632
49
- meerschaum/actions/sync.py,sha256=QGhf0ZyrNaplPL6TkwHO9VQLEu_Gemmid93vdaovXoo,17153
50
+ meerschaum/actions/sync.py,sha256=br87b8uqpv7GW18f_O7Zg7QioPh0t377J082yfmuSak,17223
50
51
  meerschaum/actions/tag.py,sha256=SJf5qFW0ccLXjqlTdkK_0MCcrCMdg6xhYrhKdco0hdA,3053
51
52
  meerschaum/actions/uninstall.py,sha256=tBXhdXggSieGEQe4EPGxpgMK0MZTJCweNvAJ9-59El0,5776
52
53
  meerschaum/actions/upgrade.py,sha256=AjuC93Te-I_GWwIfuNkFJ2q1zVHDQ2Oco34S4JgK2iA,6485
@@ -62,7 +63,7 @@ meerschaum/api/dash/connectors.py,sha256=-Wd40ieYJI2nOASXi4V1C4bvLekjnN_tj6zp7Hg
62
63
  meerschaum/api/dash/graphs.py,sha256=wJUDWzcLN8-C3xko6rj0F2v7Rt8YDkSXoVkkXJjYGIk,2046
63
64
  meerschaum/api/dash/jobs.py,sha256=mj9STE6AaQY4fwkjD1JcYRG0iW3VEcP04bO1SlKgiXw,7681
64
65
  meerschaum/api/dash/keys.py,sha256=hzEVeN60SAfVTVSO5lajGaykxRIKGhj9Ph00HRJnNoE,12598
65
- meerschaum/api/dash/pipes.py,sha256=39Ler1YIxaDmbZu9zKuJclA-j9psbrPRwZfBnh4KuxA,26264
66
+ meerschaum/api/dash/pipes.py,sha256=Zm2UKovwz6K8Mt6dTCY2LgDyUyFhEZ5D8nWw4ecPUXI,26210
66
67
  meerschaum/api/dash/plugins.py,sha256=KdfG04f6SsUpBg-nm7MUJegFGuElOj-GAkxDX98hi60,3768
67
68
  meerschaum/api/dash/sessions.py,sha256=-y5p4MYKh1eFzppkBfMsd6T7-rJs1nYS2-4fbVRAeRA,5029
68
69
  meerschaum/api/dash/sync.py,sha256=9lt7IRdG-fe9gf_ZO_viPiGlerX7ic6r_VFocv3I51A,504
@@ -124,15 +125,15 @@ meerschaum/api/routes/_index.py,sha256=QI6CBo6pI2Zi0a6fJHDjZfiLa9f4okb0BGe3A_JD0
124
125
  meerschaum/api/routes/_jobs.py,sha256=sEt-UtVd5pN-hJgikTvj1oTKJQ2hhNe8XhjkclwOXOE,12568
125
126
  meerschaum/api/routes/_login.py,sha256=tygEp50EVOMgvTG6CEASlShflbtEK8viJ9O07o0lnnE,2434
126
127
  meerschaum/api/routes/_misc.py,sha256=05--9ZVFeaCgZrHER2kA3SYdK4TyfkEXOCjLvPbum-w,2469
127
- meerschaum/api/routes/_pipes.py,sha256=Ix4N46qZ2YIEv7bd8SA9fy1k67n8zFlmPznSeK8micw,21535
128
- meerschaum/api/routes/_plugins.py,sha256=vR6-uTJraY1YEJMuRvds1-xFLB2mexxnp2dJwN_0rVo,6216
129
- meerschaum/api/routes/_users.py,sha256=SfAkZFKrKnGjpzj8SFIKzPemzQJOH3oB72h19EaUvcQ,7204
128
+ meerschaum/api/routes/_pipes.py,sha256=kykrEP6A75WBjn2wP28BLiPVRpwtfd8sVhfOhzjHaBY,22013
129
+ meerschaum/api/routes/_plugins.py,sha256=zzUyCiylJGeoLoa3dNjeRMSspvKfywTVXBpB-ghJ7ls,6228
130
+ meerschaum/api/routes/_users.py,sha256=Gts7gltQc5uxgjfL5pQS_R-cAhkHJZJWBCKGPRS1gmQ,6809
130
131
  meerschaum/api/routes/_version.py,sha256=2t-nw_9IxCVZCNEar0LOwmut2zsClRVHjiOOUx16cu0,825
131
132
  meerschaum/api/routes/_webterm.py,sha256=MenDvWXnZ8CWEmryB46pKohMf0PN6o1xJGZ3LFjxTOc,3909
132
133
  meerschaum/api/tables/__init__.py,sha256=e2aNC0CdlWICTUMx1i9RauF8Pm426J0RZJbsJWv4SWo,482
133
134
  meerschaum/config/__init__.py,sha256=5ZBq71P9t3nb74r5CGvMfNuauPscfegBX-nkaAUi5C4,11541
134
135
  meerschaum/config/_dash.py,sha256=BJHl4xMrQB-YHUEU7ldEW8q_nOPoIRSOqLrfGElc6Dw,187
135
- meerschaum/config/_default.py,sha256=IDRo8nLWija_cawiqeS6cPwZ9deDF9179m_rwGntNLA,5831
136
+ meerschaum/config/_default.py,sha256=6SC7MOkU_2oJ7RtFXQCz9w1Qqg2_8w5UdOaR_HL3lzI,6009
136
137
  meerschaum/config/_edit.py,sha256=M9yX_SDD24gV5kWITZpy7p9AWTizJsIAGWAs3WZx-Ws,9087
137
138
  meerschaum/config/_environment.py,sha256=Vv4DLDfc2vKLbCLsMvkQDj77K4kEvHKEBmUBo-wCrgo,4419
138
139
  meerschaum/config/_formatting.py,sha256=OMuqS1EWOsj_34wSs2tOqGIWci3bTMIZ5l-uelZgsIM,6672
@@ -143,7 +144,7 @@ meerschaum/config/_preprocess.py,sha256=-AEA8m_--KivZwTQ1sWN6LTn5sio_fUr2XZ51BO6
143
144
  meerschaum/config/_read_config.py,sha256=RLC3HHi_1ndj7ITVDKLD9_uULY3caGRwSz3ATYE-ixA,15014
144
145
  meerschaum/config/_shell.py,sha256=46_m49Txc5q1rGfCgO49ca48BODx45DQJi8D0zz1R18,4245
145
146
  meerschaum/config/_sync.py,sha256=jHcWRkxd82_BgX8Xo8agsWvf7BSbv3qHLWmYl6ehp_0,4242
146
- meerschaum/config/_version.py,sha256=FtGr91JvNFrz0tCWU-8xhZY04Aon0uXjcSuAPXv1SUI,71
147
+ meerschaum/config/_version.py,sha256=zI3Zi2dLLwmP_AO5KiSMWcMgpQo8y2osXT-ZmhrXGXU,71
147
148
  meerschaum/config/paths.py,sha256=JjibeGN3YAdSNceRwsd42aNmeUrIgM6ndzC8qZAmNI0,621
148
149
  meerschaum/config/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
149
150
  meerschaum/config/stack/__init__.py,sha256=2UukC0Lmk-aVL1o1qXzumqmuIrw3vu9fD7iCuz4XD4I,10544
@@ -162,27 +163,27 @@ meerschaum/connectors/api/_actions.py,sha256=gd3F8i5BvN8XRvMcPvPVR8sc1DeLzgoBHdD
162
163
  meerschaum/connectors/api/_fetch.py,sha256=Khq9AFr1nk8Dsmcedb77aWhAuHw0JGgVeahDG95Q5MQ,2072
163
164
  meerschaum/connectors/api/_jobs.py,sha256=N5lpHFGG10jlVgaJeWAOTuLBQw3AdgjXsEPpp1YwZQE,11270
164
165
  meerschaum/connectors/api/_login.py,sha256=5GsD-B214vr5EYfM3XrTUs1sTFApxZA-9dNxq8oNSyg,2050
165
- meerschaum/connectors/api/_misc.py,sha256=OZRZBYOokKIEjmQaR8jUYgu6ZRn9VzXBChzR8CfDv_w,1092
166
- meerschaum/connectors/api/_pipes.py,sha256=dGs5rS7qoX4-qw-KTw-_a9b9EtLmLCC-ZKm03ZGts6Q,21263
166
+ meerschaum/connectors/api/_misc.py,sha256=XK0LLexNUEKZjAAqoJ-9oOgwLlMdwxSOvcpqO5NuOas,1083
167
+ meerschaum/connectors/api/_pipes.py,sha256=9i3KZ0S9960AaVYMlecxEEMKq8nTvT_Y3jNaFkoRU7E,21739
167
168
  meerschaum/connectors/api/_plugins.py,sha256=z04tPjfZZWwa7T60mogZH3X3wDmeLdnoN5Oh8m_YsU8,5217
168
169
  meerschaum/connectors/api/_request.py,sha256=Wc4Y70t0VxEj3_ch5fAeeoSAeFMuRnyNLOV-aUFInjY,6996
169
170
  meerschaum/connectors/api/_uri.py,sha256=HWxqGx4R1cHZ3ywy9Ro9ePbFxxusw4RLaC3hpGt9Z6I,1469
170
171
  meerschaum/connectors/api/_users.py,sha256=kzb7ENgXwQ19OJYKOuuWzx2rwVuUZCly9dTnyvVuT2Q,5275
171
172
  meerschaum/connectors/plugin/PluginConnector.py,sha256=aQ1QaB7MordCFimZqoGLb0R12PfDUN_nWks2J5mzeAs,2084
172
173
  meerschaum/connectors/plugin/__init__.py,sha256=pwF7TGY4WNz2_HaVdmK4rPQ9ZwTOEuPHgzOqsGcoXJw,198
173
- meerschaum/connectors/sql/_SQLConnector.py,sha256=g9SFK30CZp7CTJI-SdpOanL1NQUBFQeUng7FSGacJA4,11985
174
+ meerschaum/connectors/sql/_SQLConnector.py,sha256=fAYXt2BrW6PmCJyEGRGfKjY0IffLT-5wrxCT31H4vdE,12137
174
175
  meerschaum/connectors/sql/__init__.py,sha256=3cqYiDkVasn7zWdtOTAZbT4bo95AuvGOmDD2TkaAxtw,205
175
176
  meerschaum/connectors/sql/_cli.py,sha256=VqAHkdXC0HVXuHaZik2q-cTVmIsuS4DWMcPMJPP_g-Q,4514
176
- meerschaum/connectors/sql/_create_engine.py,sha256=RzJz4Qc43P4JS6tkgVvAhbdjEejIepWbxymIfVZ44Nk,10555
177
- meerschaum/connectors/sql/_fetch.py,sha256=GOU1JnPOBgaI3dDr0JdAmfTMPLIMM0EFHrsqDgDIO74,14070
178
- meerschaum/connectors/sql/_instance.py,sha256=mmZnodccuCqmZN-UnznnFZ7JodxtT47kwjDDaDKgwUg,6274
179
- meerschaum/connectors/sql/_pipes.py,sha256=n0tHoVnBmno08qqO5qaFuSlfIW96_VVm8T1k5ZRdPQw,121592
180
- meerschaum/connectors/sql/_plugins.py,sha256=wbxcNxqTtjfDsxPvdVGTllasYf6NHHzODaQ72hEUSBQ,8135
181
- meerschaum/connectors/sql/_sql.py,sha256=Q4MKuUlqrgXuYCbpCtoQlvqOvASDQ7BkkLLSYPLh_JE,41052
182
- meerschaum/connectors/sql/_uri.py,sha256=0BrhQtqQdzg9mR04gWBZINs_BbPFtSlTECXT_TCUwik,3460
183
- meerschaum/connectors/sql/_users.py,sha256=FJjYeJGhr-TDHziNc6p_5mupGRtGjezKPIYgHFEVSnY,9956
177
+ meerschaum/connectors/sql/_create_engine.py,sha256=VfGtqF2hDNbgl2g-ZPcz28gKkfL6UOk4rKxUB4tKHdU,10567
178
+ meerschaum/connectors/sql/_fetch.py,sha256=5zkyzTrH0atsXmUduPw9sY1CPoX_l8_rUo-lzgBS49U,13907
179
+ meerschaum/connectors/sql/_instance.py,sha256=KUTDrWWD9uf8G94_n_VM_J0HdggXQofJbekZ4errypw,6310
180
+ meerschaum/connectors/sql/_pipes.py,sha256=gMRHe8WrdO60YzTV2j0pgyr8U4CPC1Mujn8NaohpTe0,127996
181
+ meerschaum/connectors/sql/_plugins.py,sha256=OVEdZ_UHTi-x5sF-5lu2TmR9ONxddp6SwDOmFo5TpU8,8051
182
+ meerschaum/connectors/sql/_sql.py,sha256=R57E2-QVeCEzvz4j85b_tmYvkXTUSvCDB40LuocrAiw,41247
183
+ meerschaum/connectors/sql/_uri.py,sha256=BFzu5pjlbL3kxLH13vHWlpKGYTPfg8wuA2j58O9NsCM,3440
184
+ meerschaum/connectors/sql/_users.py,sha256=Dbe79FV07ms5QVHwp68cruDzkGeKR4cE1-xc9Gza8Hs,9932
184
185
  meerschaum/connectors/sql/tools.py,sha256=jz8huOaRCwGlYdtGfAqAh7SoK8uydYBrasKQba9FT38,187
185
- meerschaum/connectors/sql/tables/__init__.py,sha256=e2dALTtThqbrq0soMNQ9QwgccyfTAjOrFkEClstLp3A,9001
186
+ meerschaum/connectors/sql/tables/__init__.py,sha256=53EeJsvmGjj68SpSShdt6kyLuk5Md5O8DnvWC1ra3u8,8876
186
187
  meerschaum/connectors/sql/tables/types.py,sha256=Jc_MTHIBM-KHpQt__Lckp39CeOo7tGOiAk5faDx-znY,1573
187
188
  meerschaum/connectors/valkey/_ValkeyConnector.py,sha256=xHld4OCnt0SXmAWH8Yintb3931F-MEgXfWerhTthsXc,15849
188
189
  meerschaum/connectors/valkey/__init__.py,sha256=jkVutsygQCvGPLN17cP6wHAjHajxVycnQJbm2eVMuY0,187
@@ -191,18 +192,19 @@ meerschaum/connectors/valkey/_pipes.py,sha256=sjjO1vehNCkN_2bsqQKy81WWWrOg8a8Elu
191
192
  meerschaum/connectors/valkey/_plugins.py,sha256=ZqiEW4XZCOpw4G8DUK2IKY6Qrph4mYfTjgXWimgakYY,6267
192
193
  meerschaum/connectors/valkey/_users.py,sha256=AS1vLarrkDA9yPK644GWwRiQiTZVa9x3nlLpyntq40g,7730
193
194
  meerschaum/core/__init__.py,sha256=tjASW10n9uLV6bYhcwP4rggh-ESXSJzgxpSBbVsuISs,251
194
- meerschaum/core/Pipe/__init__.py,sha256=NqytRbY1QQM_xDcBDqhcpcVPuEdDRWi26Ou3KuoAseM,18902
195
- meerschaum/core/Pipe/_attributes.py,sha256=ionfZkDOJmcbcHT44cnzbSKcjoBV4_IHj6fdrAi6Jnc,22450
195
+ meerschaum/core/Pipe/__init__.py,sha256=OG2oKBfNmwGbdCI-m8wgdmFKflFbMkziP-YzAiTLww8,19304
196
+ meerschaum/core/Pipe/_attributes.py,sha256=ZUfgN7Vk8liu_lbF4nORtCjFlJB7LBNhrgZdgmEqTpU,22215
196
197
  meerschaum/core/Pipe/_bootstrap.py,sha256=gTNGh5e2LmTMrgIpHqrVaL60uPKWCphhsuz8j-lJ2HI,7348
197
198
  meerschaum/core/Pipe/_clear.py,sha256=LghXabgyyc1tD7FNQrh9ExT71ipcg2poM9FDA3k9e4M,2230
198
199
  meerschaum/core/Pipe/_copy.py,sha256=YDclAapf_spm9phpFr4-CALyYyw7nUsyKyiaLM1cnm4,2965
199
200
  meerschaum/core/Pipe/_data.py,sha256=HOvKlpD9NiBg599mSH1lzUQ_2g8-PsnMbGzMTOJx81E,24047
200
201
  meerschaum/core/Pipe/_deduplicate.py,sha256=xthUdsDxGO2t3m0XGDm9K3F6dpaZoemtjNi8gyKm0e0,10177
201
202
  meerschaum/core/Pipe/_delete.py,sha256=1geNp9BgrocXP1gt76dMbnlJWKYFMuSNqPFA4K4-hXE,2118
202
- meerschaum/core/Pipe/_drop.py,sha256=qj5L0obDh2_dKAg7LD3WLI3_L0Q5YECTfTmPc8zZUxI,1135
203
+ meerschaum/core/Pipe/_drop.py,sha256=KDfJVz2aGjHUE1Jkmj7Ej4ICPR5xPiuhyhgRO7Lu9d4,3299
203
204
  meerschaum/core/Pipe/_dtypes.py,sha256=-D3Dr64rSX7twuGNieZOYJOIdEKTknhBFHPmwj_QSQw,4274
204
205
  meerschaum/core/Pipe/_edit.py,sha256=HrKWe9vhqKaNOjOcJzW5BNbaUBPIbgNAhJEK8OMsy7c,8416
205
206
  meerschaum/core/Pipe/_fetch.py,sha256=dI2WFqaXVSi-xhgRcpp8Dh1g_ALgm5w6umvOj1cyCFk,5368
207
+ meerschaum/core/Pipe/_index.py,sha256=cYgaVwBVfAYxJBZ6j6MXDqOxnOrD_QnYi33_kIwy_FQ,1944
206
208
  meerschaum/core/Pipe/_register.py,sha256=Sd5xaAW8H7uLTIoommcKb-6kHPRuHJLWNSbPnt2UbvA,2240
207
209
  meerschaum/core/Pipe/_show.py,sha256=nG50y8eBT9TVuKkRgAKtNDNIxysJvMNxfu__lkL1F9k,1352
208
210
  meerschaum/core/Pipe/_sync.py,sha256=Bl-DJTuo-iZvPFlSeTbSjje36NeyUTW0yVcJZLEQMtA,36258
@@ -211,51 +213,51 @@ meerschaum/core/Plugin/__init__.py,sha256=UXg64EvJPgI1PCxkY_KM02-ZmBm4FZpLPIQR_u
211
213
  meerschaum/core/User/_User.py,sha256=qbI0GIkr3G0PI4d9S49uatbJQ2kH_-z5-GoVJ0fuEtA,6624
212
214
  meerschaum/core/User/__init__.py,sha256=9qNy-Gobui4x6GiaE8U7-WOggsdniOM3_wegLN3SVKs,988
213
215
  meerschaum/jobs/_Executor.py,sha256=qM62BhFTM4tyJ7p90KOM0y3qyeRY9k3ZV_aTDJMHnO8,1682
214
- meerschaum/jobs/_Job.py,sha256=wRsmrQ1bm898BxXELbHTltKYBj0bK0GmegE8zeL0FG8,32161
216
+ meerschaum/jobs/_Job.py,sha256=m_OzHG1zdV3jBS1CS6idT-sc5XBx-sMz4CJZbWKeKqI,32217
215
217
  meerschaum/jobs/__init__.py,sha256=YjwB6t8HCT593ckrOlImgk0kLX-1NgAYzNXVwS-uvyY,12173
216
218
  meerschaum/jobs/systemd.py,sha256=Rq-tsDPslG17ZhpKMrVJ5r8Z0IPr6DEc9APObfIoXCg,24614
217
219
  meerschaum/plugins/_Plugin.py,sha256=bIo4HX8TTWIcwIHROwMt4VK6OoEUhY_3Qc8q-2dp-ZA,33895
218
- meerschaum/plugins/__init__.py,sha256=6krcqaMKyzuVqesXMqEL0XEy2SJQ4xfNt2-oI_fJ6v0,26278
220
+ meerschaum/plugins/__init__.py,sha256=Kl7Dz0CwUUxyjRC5RWnYo6WMLsOvdX2eQ38Rh3BjdzY,26465
219
221
  meerschaum/plugins/bootstrap.py,sha256=VwjpZAuYdqPJW0YoVgAoM_taHkdQHqP902-8T7OWWCI,11339
220
222
  meerschaum/utils/__init__.py,sha256=QrK1K9hIbPCRCM5k2nZGFqGnrqhA0Eh-iSmCU7FG6Cs,612
221
223
  meerschaum/utils/_get_pipes.py,sha256=tu4xKPoDn79Dz2kWM13cXTP4DSCkn-3G9M8KiLftopw,11073
222
224
  meerschaum/utils/dataframe.py,sha256=fM8_DxnMTMhXDUqWIVXR-bOOwzBGO-cRcjarOIN3jdQ,47990
223
225
  meerschaum/utils/debug.py,sha256=GyIzJmunkoPnOcZNYVQdT4Sgd-aOb5MI2VbIgATOjIQ,3695
224
226
  meerschaum/utils/interactive.py,sha256=t-6jWozXSqL7lYGDHuwiOjTgr-UKhdcg61q_eR5mikI,3196
225
- meerschaum/utils/misc.py,sha256=RW_WmNtAieP828OtJhr4dHKTQI2nxc4kTwn-Q5N3YBw,47055
227
+ meerschaum/utils/misc.py,sha256=Ut__DxYXuu-WtF9Mg2Z1CrnQMBmhPuqGsjOgiZMhAww,47079
226
228
  meerschaum/utils/networking.py,sha256=Sr_eYUGW8_UV9-k9LqRFf7xLtbUcsDucODyLCRsFRUc,1006
227
229
  meerschaum/utils/pool.py,sha256=vkE42af4fjrTEJTxf6Ek3xGucm1MtEkpsSEiaVzNKHs,2655
228
230
  meerschaum/utils/process.py,sha256=9O8PPPJjY9Q5W2f39I3B3lFU6TlSiRiI3bgrzdOOyOw,7843
229
- meerschaum/utils/prompt.py,sha256=SOpAvHcVFuk7-J4cqK_LkahWo6oJmLobeHg5fwM_9aY,18949
231
+ meerschaum/utils/prompt.py,sha256=qbS8l0DfD6eRB9_RRbfkKLPs3m-Hw2zXSeQCf0TDJgU,19370
230
232
  meerschaum/utils/schedule.py,sha256=bUsaCO9CGn2vJO5UvoISScHDDGIiMdCPHxpTFmu7vwE,11531
231
- meerschaum/utils/sql.py,sha256=JqOfWCHWAlm1fr7mtZMquoGCOnPyIlX5LDshcRFDgdo,77993
233
+ meerschaum/utils/sql.py,sha256=3UAC4KnH2tl4bojvFCwIV2uQqdV9RKxwXZRsmfjBfWM,79390
232
234
  meerschaum/utils/threading.py,sha256=awjbVL_QR6G-o_9Qk85utac9cSdqkiC8tQSdERCdrG8,2814
233
235
  meerschaum/utils/typing.py,sha256=U3MC347sh1umpa3Xr1k71eADyDmk4LB6TnVCpq8dVzI,2830
234
236
  meerschaum/utils/warnings.py,sha256=n-phr3BftNNgyPnvnXC_VMSjtCvjiCZ-ewmVfcROhkc,6611
235
237
  meerschaum/utils/yaml.py,sha256=PoC1du0pn2hLwTHwL-zuOf_EBWZSbCGOz-P-AZ4BWN0,3901
236
- meerschaum/utils/daemon/Daemon.py,sha256=zxU15r7XJCTU5r5IWdiH9GQEenUFSnV439f0Vq1EzgY,42760
238
+ meerschaum/utils/daemon/Daemon.py,sha256=jNhzpkcR-kXgIQKBqr--cFx6ZhAb0a0sdjnCOUkLEL0,42885
237
239
  meerschaum/utils/daemon/FileDescriptorInterceptor.py,sha256=MJKMO0Syf3d8yWUs6xXcQzg8Ptsuvh2aCRRoglOjusA,5257
238
240
  meerschaum/utils/daemon/RotatingFile.py,sha256=ePm_svjwyFDWh6V1k-bp1RHXCSWlyxDtlFu4SU4XvPU,24369
239
241
  meerschaum/utils/daemon/StdinFile.py,sha256=qdZ8E_RSOkURypwnS50mWeyWyRig1bAY9tKWMTVKajc,3307
240
- meerschaum/utils/daemon/__init__.py,sha256=o9jWb4lRTIyny4EPt7fPXFgV_vIf1mUofsTwoE1ZecA,8751
242
+ meerschaum/utils/daemon/__init__.py,sha256=ziRPyu_IM3l7Xd58y3Uvt0fZLoirJ9nuboFIxxult6c,8741
241
243
  meerschaum/utils/daemon/_names.py,sha256=d2ZwTxBoTAqXZkCfZ5LuX2XrkQmLNUq1OTlUqfoH5dA,4515
242
244
  meerschaum/utils/dtypes/__init__.py,sha256=c6DoYyCbWvMdRapBRKP5UJYLRUWtkTIlC_8HRzXFh2s,12166
243
- meerschaum/utils/dtypes/sql.py,sha256=Ew-ULDAJipzWpq_W-3fGGgTORhtoIqRZzZcS7k0L4B4,19582
245
+ meerschaum/utils/dtypes/sql.py,sha256=4rd33hXyyzdY51oCMch97z2DPFz_UUd2eoyiFr89VOc,19608
244
246
  meerschaum/utils/formatting/__init__.py,sha256=6MAIpkLG7inFvPGRZqV8EpVRmMB3BGQsgAh5KBP4tsg,15528
245
247
  meerschaum/utils/formatting/_jobs.py,sha256=izsqPJhTtUkXUUtWnbXtReYsUYwulXtci3pBj72Ne64,6637
246
248
  meerschaum/utils/formatting/_pipes.py,sha256=OISJmmFiilaDbZxkiXck_g39MnnTfk_fJJyJ-YInvXA,19559
247
249
  meerschaum/utils/formatting/_pprint.py,sha256=tgrT3FyGyu5CWJYysqK3kX1xdZYorlbOk9fcU_vt9Qg,3096
248
250
  meerschaum/utils/formatting/_shell.py,sha256=XH7VFLteNv7NGtWhJl7FdIGt80sKeTiDoJokGSDAwBM,3761
249
- meerschaum/utils/packages/__init__.py,sha256=vg1C9dpj1MLOWgvNGrKkqLRe4Z9hUnNdQDOCvReCBh4,64392
250
- meerschaum/utils/packages/_packages.py,sha256=ykannoLv2Fm4iwZwiIlNAGZvt654cMJhjXr1VJPoEDo,8867
251
+ meerschaum/utils/packages/__init__.py,sha256=TdKaj2tmN4bFwzusOfMv24P5ET7Zv73vyoOf9GOIr5E,64427
252
+ meerschaum/utils/packages/_packages.py,sha256=_xODMSz1FAcx3XHrn9RXUhGJ1zg-QKsVu9zYZV2UJeY,8868
251
253
  meerschaum/utils/packages/lazy_loader.py,sha256=VHnph3VozH29R4JnSSBfwtA5WKZYZQFT_GeQSShCnuc,2540
252
254
  meerschaum/utils/venv/_Venv.py,sha256=gc1TCeAj-kTZbQFAT9xl1bi4HXFV5ApT0dPOJfxwr78,3748
253
- meerschaum/utils/venv/__init__.py,sha256=wqjp0ocIkp6nsHYLUObXIhfYY5CjX-JnS6psm783ga0,26755
254
- meerschaum-2.7.5.dist-info/LICENSE,sha256=jG2zQEdRNt88EgHUWPpXVWmOrOduUQRx7MnYV9YIPaw,11359
255
- meerschaum-2.7.5.dist-info/METADATA,sha256=kQOkmZPuhuo-Ee1b_2JlzUnmfGYOZOBBUWs3pHZ_g1M,24224
256
- meerschaum-2.7.5.dist-info/NOTICE,sha256=OTA9Fcthjf5BRvWDDIcBC_xfLpeDV-RPZh3M-HQBRtQ,114
257
- meerschaum-2.7.5.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
258
- meerschaum-2.7.5.dist-info/entry_points.txt,sha256=5YBVzibw-0rNA_1VjB16z5GABsOGf-CDhW4yqH8C7Gc,88
259
- meerschaum-2.7.5.dist-info/top_level.txt,sha256=bNoSiDj0El6buocix-FRoAtJOeq1qOF5rRm2u9i7Q6A,11
260
- meerschaum-2.7.5.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
261
- meerschaum-2.7.5.dist-info/RECORD,,
255
+ meerschaum/utils/venv/__init__.py,sha256=vVU9vj7t-HTiRU--ReQZ9kRLesVqcHnSJDbmcfC-Dzg,27030
256
+ meerschaum-2.7.7.dist-info/LICENSE,sha256=jG2zQEdRNt88EgHUWPpXVWmOrOduUQRx7MnYV9YIPaw,11359
257
+ meerschaum-2.7.7.dist-info/METADATA,sha256=8zR70RhmNHVVh2Lt91DYBmEJ6OVR_kNb4EFok9wpEeU,24489
258
+ meerschaum-2.7.7.dist-info/NOTICE,sha256=OTA9Fcthjf5BRvWDDIcBC_xfLpeDV-RPZh3M-HQBRtQ,114
259
+ meerschaum-2.7.7.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
260
+ meerschaum-2.7.7.dist-info/entry_points.txt,sha256=5YBVzibw-0rNA_1VjB16z5GABsOGf-CDhW4yqH8C7Gc,88
261
+ meerschaum-2.7.7.dist-info/top_level.txt,sha256=bNoSiDj0El6buocix-FRoAtJOeq1qOF5rRm2u9i7Q6A,11
262
+ meerschaum-2.7.7.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
263
+ meerschaum-2.7.7.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.6.0)
2
+ Generator: setuptools (75.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5