meerschaum 3.0.2__py3-none-any.whl → 3.0.4__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.
@@ -160,7 +160,8 @@ def update_page_layout_div(
160
160
  else:
161
161
  session_store_to_return = dash.no_update
162
162
 
163
- base_path = '/'.join(pathname.split('/')[:2])
163
+ dashless_pathname = pathname[len('/dash'):] if pathname.startswith('/dash') else pathname
164
+ base_path = ('/dash/' + dashless_pathname.lstrip('/').split('/', maxsplit=1)[0]).rstrip('/')
164
165
  complete_path = (
165
166
  pathname.rstrip('/') + '/'
166
167
  ).rstrip('/')
@@ -10,7 +10,6 @@ from typing import List, Optional, Dict, Any
10
10
 
11
11
  import dash
12
12
  from dash.dependencies import Input, Output, State
13
- from dash import no_update
14
13
  from dash.exceptions import PreventUpdate
15
14
  import dash_bootstrap_components as dbc
16
15
 
@@ -172,8 +171,9 @@ def render_pipe_page_from_url(
172
171
  Input('pipes-metric-keys-dropdown', 'value'),
173
172
  Input('pipes-location-keys-dropdown', 'value'),
174
173
  Input('pipes-tags-dropdown', 'value'),
175
- Input('instance-select', 'value'),
174
+ Input('pipes-instance-select', 'value'),
176
175
  Input('pipes-clear-all-button', 'n_clicks'),
176
+ prevent_initial_call=True,
177
177
  )
178
178
  def update_location_on_pipes_filter_change(
179
179
  connector_keys: Optional[List[str]],
@@ -107,7 +107,7 @@ instance_select = dbc.Select(
107
107
  {'label': (i[:32] + '…') if len(i) > 32 else i, 'value': i}
108
108
  for i in get_connector_labels(*instance_types)
109
109
  ],
110
- class_name='dbc_dark custom-select custom-select-sm',
110
+ class_name='dbc_dark custom-select custom-select-sm instance-select',
111
111
  )
112
112
 
113
113
  sign_out_button = dbc.Button(
@@ -575,7 +575,7 @@ def accordion_items_from_pipe(
575
575
 
576
576
  if 'parameters' in active_items:
577
577
  parameters_editor = dash_ace.DashAceEditor(
578
- value=yaml.dump(pipe.parameters),
578
+ value=yaml.dump(pipe.get_parameters(apply_symlinks=False, refresh=True, debug=debug)),
579
579
  mode='norm',
580
580
  tabSize=4,
581
581
  theme='twilight',
@@ -1029,14 +1029,14 @@ def build_pipes_navbar(instance_keys: Optional[str] = None, with_instance_select
1029
1029
  Build the navbar from the selected instance keys.
1030
1030
  """
1031
1031
  instance_select = dbc.Select(
1032
- id='instance-select',
1032
+ id='pipes-instance-select',
1033
1033
  size='sm',
1034
1034
  value=instance_keys or str(get_api_connector()),
1035
1035
  options=[
1036
1036
  {'label': (i[:32] + '…') if len(i) > 32 else i, 'value': i}
1037
1037
  for i in get_connector_labels(*instance_types)
1038
1038
  ],
1039
- class_name='dbc_dark custom-select custom-select-sm',
1039
+ class_name='dbc_dark custom-select custom-select-sm instance-select',
1040
1040
  )
1041
1041
  instance_select_div_style = {} if with_instance_select else {'visibility': 'hidden'}
1042
1042
  instance_select_div = html.Div(instance_select, style=instance_select_div_style)
@@ -65,7 +65,7 @@ a {
65
65
  #get-items-menu {
66
66
  width: 100%;
67
67
  }
68
- #instance-select {
68
+ .instance-select {
69
69
  background-color : var(--bs-secondary) !important;
70
70
  color: white;
71
71
  margin-top: 5px;
@@ -151,6 +151,8 @@ default_system_config = {
151
151
  'debug',
152
152
  'bootstrap',
153
153
  'daemon',
154
+ 'sql',
155
+ 'register plugin',
154
156
  ],
155
157
  },
156
158
  'experimental': {
@@ -2,4 +2,4 @@
2
2
  Specify the Meerschaum release version.
3
3
  """
4
4
 
5
- __version__ = "3.0.2"
5
+ __version__ = "3.0.4"
@@ -6,6 +6,7 @@
6
6
  Interact with Pipes metadata via SQLConnector.
7
7
  """
8
8
  from __future__ import annotations
9
+ import traceback
9
10
  from datetime import datetime, date, timedelta
10
11
 
11
12
  import meerschaum as mrsm
@@ -3102,7 +3103,6 @@ def get_pipe_columns_types(
3102
3103
  for col in pipe_table.columns:
3103
3104
  table_columns[str(col.name)] = str(col.type)
3104
3105
  except Exception as e:
3105
- import traceback
3106
3106
  traceback.print_exc()
3107
3107
  warn(e)
3108
3108
  table_columns = {}
@@ -23,9 +23,9 @@ def _get_in_memory_key(cache_key: str) -> str:
23
23
  Return the in-memory version of a cache key.
24
24
  """
25
25
  return (
26
- ('_' + cache_key)
27
- if not cache_key.startswith('_')
28
- else cache_key
26
+ f"_{cache_key}"
27
+ if not str(cache_key).startswith('_')
28
+ else str(cache_key)
29
29
  )
30
30
 
31
31
 
@@ -33,7 +33,10 @@ def _get_cache_conn_cache_key(pipe: mrsm.Pipe, cache_key: str) -> str:
33
33
  """
34
34
  Return the cache key to use in the cache connector.
35
35
  """
36
- return f'.cache:pipes:{pipe.connector_keys}:{pipe.metric_key}:{pipe.location_key}:{cache_key}'
36
+ ck = pipe.connector_keys.replace(':', '_')
37
+ mk = pipe.metric_key
38
+ lk = str(pipe.location_key)
39
+ return f'.cache:pipes:{ck}:{mk}:{lk}:{cache_key}'
37
40
 
38
41
 
39
42
  def _get_cache_connector(self) -> 'Union[None, ValkeyConnector]':
@@ -485,7 +488,10 @@ def _get_cache_conn_keys(self, debug: bool = False) -> List[str]:
485
488
  keys_prefix = _get_cache_conn_cache_key(self, '')
486
489
 
487
490
  try:
488
- return cache_connector.client.keys(keys_prefix + '*')
491
+ return [
492
+ key.decode('utf-8').split(':')[-1]
493
+ for key in cache_connector.client.keys(keys_prefix + '*')
494
+ ]
489
495
  except Exception as e:
490
496
  warn(f"Failed to get cache keys for {self} from '{cache_connector}':\n{e}")
491
497
  return []
@@ -375,7 +375,9 @@ def filter_unseen_df(
375
375
  if json_col not in delta_df.columns:
376
376
  continue
377
377
  try:
378
- delta_df[json_col] = delta_df[json_col].apply(json.loads)
378
+ delta_df[json_col] = delta_df[json_col].apply(
379
+ lambda x: (json.loads(x) if isinstance(x, str) else x)
380
+ )
379
381
  except Exception:
380
382
  warn(f"Unable to deserialize JSON column '{json_col}':\n{traceback.format_exc()}")
381
383
 
@@ -1924,6 +1924,11 @@ def is_uv_enabled() -> bool:
1924
1924
  if is_android():
1925
1925
  return False
1926
1926
 
1927
+ from meerschaum.utils.venv import inside_venv
1928
+
1929
+ if inside_venv():
1930
+ return False
1931
+
1927
1932
  try:
1928
1933
  import yaml
1929
1934
  except ImportError:
meerschaum/utils/pipes.py CHANGED
@@ -210,4 +210,7 @@ def is_pipe_registered(
210
210
  if debug:
211
211
  dprint(f'{ck}, {mk}, {lk}')
212
212
  dprint(f'{pipe}, {pipes}')
213
- return ck in pipes and mk in pipes[ck] and lk in pipes[ck][mk]
213
+ try:
214
+ return ck in pipes and mk in pipes[ck] and lk in pipes[ck][mk]
215
+ except Exception:
216
+ return False
@@ -755,7 +755,8 @@ def venv_target_path(
755
755
 
756
756
  venv_root_path = (
757
757
  (VIRTENV_RESOURCES_PATH / venv)
758
- if venv is not None else pathlib.Path(sys.prefix)
758
+ if venv is not None
759
+ else pathlib.Path(sys.prefix)
759
760
  )
760
761
  target_path = venv_root_path
761
762
 
@@ -773,12 +774,14 @@ def venv_target_path(
773
774
  python_folder = 'python' + str(sys.version_info.major) + '.' + str(sys.version_info.minor)
774
775
  if target_path.exists():
775
776
  target_path = (
776
- (target_path / python_folder) if python_folder in os.listdir(target_path)
777
+ (target_path / python_folder)
778
+ if python_folder in os.listdir(target_path)
777
779
  else target_path
778
780
  )
779
781
  else:
780
782
  target_path = (
781
- (target_path / python_folder) if platform.system() != 'Windows'
783
+ (target_path / python_folder)
784
+ if platform.system() != 'Windows'
782
785
  else target_path
783
786
  )
784
787
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meerschaum
3
- Version: 3.0.2
3
+ Version: 3.0.4
4
4
  Summary: Sync Time-Series Pipes with Meerschaum
5
5
  Author-email: Bennett Meares <bennett.meares@gmail.com>
6
6
  Maintainer-email: Bennett Meares <bennett.meares@gmail.com>
@@ -61,12 +61,12 @@ meerschaum/api/_oauth2.py,sha256=agWeuG5LzxLHZTjt3psdemhF_yoVJtdnfDdxSBVQMnY,704
61
61
  meerschaum/api/_tokens.py,sha256=t9K0TFzyJ4dOg04_QKOWCINO66rSJkH2Ct03lyXIjEs,3070
62
62
  meerschaum/api/_websockets.py,sha256=EMT9wB3yELu_WyCMqn9ZpgMDh23spUUchouRLCCLVuw,1509
63
63
  meerschaum/api/dash/__init__.py,sha256=-RpTps4ntFNlgSW0mW50ZHAgUd5tN1Ua3F5I3XsLY_0,1914
64
- meerschaum/api/dash/components.py,sha256=PMMLCcRHd0ADa8DjeH1xB2NXnIyl92HKW4LOCtmq55Y,10782
64
+ meerschaum/api/dash/components.py,sha256=dkXCHJfTLZxgyKwzAQtuSEnjop5T2aZP2zEDd-LV_18,10798
65
65
  meerschaum/api/dash/connectors.py,sha256=-Wd40ieYJI2nOASXi4V1C4bvLekjnN_tj6zp7HgZDl0,791
66
66
  meerschaum/api/dash/graphs.py,sha256=wJUDWzcLN8-C3xko6rj0F2v7Rt8YDkSXoVkkXJjYGIk,2046
67
67
  meerschaum/api/dash/jobs.py,sha256=p0mC30jO7aYS0vUbfn540d66-s19_c-GgjyfNmVXgrs,7682
68
68
  meerschaum/api/dash/keys.py,sha256=pGIbKxp5RsIelzAU4WZMcYGDN835tF4mGhoktydc42M,8561
69
- meerschaum/api/dash/pipes.py,sha256=EWCsLg2A58FcgxDbsyqwgdod6uRVFNBZNxZ77P7phaE,37363
69
+ meerschaum/api/dash/pipes.py,sha256=mFssfAkA8tW1PB2WHpXE22r-XlGN67GY37QPrmVbFUQ,37438
70
70
  meerschaum/api/dash/plugins.py,sha256=KdfG04f6SsUpBg-nm7MUJegFGuElOj-GAkxDX98hi60,3768
71
71
  meerschaum/api/dash/sessions.py,sha256=jUM0a9CXNZC3j7SF3QkZim-8ZAbDom-V1iXklvMyBZE,5382
72
72
  meerschaum/api/dash/sync.py,sha256=9lt7IRdG-fe9gf_ZO_viPiGlerX7ic6r_VFocv3I51A,504
@@ -82,10 +82,10 @@ meerschaum/api/dash/assets/logo_48x48.png,sha256=hTR5BHUHEN4yP2xiqAcDciuigoII9T3
82
82
  meerschaum/api/dash/assets/logo_500x500.png,sha256=9EUtf6wQcEZTXHKfQ2kjNXod6Rn_4DTB_BkTgxggq00,67702
83
83
  meerschaum/api/dash/callbacks/__init__.py,sha256=flHWiTSjrdgVNLgFutSnaqYogVUgnqRFWy3K0-n0wFo,651
84
84
  meerschaum/api/dash/callbacks/custom.py,sha256=e9wU2gZ8hutYNe7T4mKjJPFwpR32-dcbEXWyOOJKCEk,1884
85
- meerschaum/api/dash/callbacks/dashboard.py,sha256=BSL5GKopDx45b-BaL4NdsOvY-e169TzGJzvG1HgsUCg,38735
85
+ meerschaum/api/dash/callbacks/dashboard.py,sha256=Wrwx91D6srkkpL1ScGE0R-yKjdxhwgcxWEGwxRQjUKI,38876
86
86
  meerschaum/api/dash/callbacks/jobs.py,sha256=mwYYjxZxHte1g4uCtv6T8nGXR2-JPoWrAgZZdBlvDyQ,8817
87
87
  meerschaum/api/dash/callbacks/login.py,sha256=Eygp71kdWRO_fFrkuUN3hIT-nG9HKYOgebf8ACeuyPs,3175
88
- meerschaum/api/dash/callbacks/pipes.py,sha256=mK9d2A789fsMkT8BF6FIrxWpzPDzfa9VgAgeTZv05G8,7801
88
+ meerschaum/api/dash/callbacks/pipes.py,sha256=t46Mu6-1Pq9FTlE57QzXmEVjt6deZUEdf13hxtDEKeE,7811
89
89
  meerschaum/api/dash/callbacks/plugins.py,sha256=GhhA8GZBCNcz65pBE8hn8BNBEiHjXfcTiqvBNeox4XQ,2759
90
90
  meerschaum/api/dash/callbacks/register.py,sha256=nrl_u0ujIrnjgOsCM_rSphY539shX0TRC2stZqJJIU0,3908
91
91
  meerschaum/api/dash/callbacks/tokens.py,sha256=zkmqDenGjCrzQjNA5HyTOjcKDk2wYG4qE3xhjRDlTaE,11723
@@ -110,7 +110,7 @@ meerschaum/api/resources/__init__.py,sha256=LshFiqh0sL55QtC_15fz6A6r-1_H9sQWtlif
110
110
  meerschaum/api/resources/static/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
111
111
  meerschaum/api/resources/static/css/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
112
112
  meerschaum/api/resources/static/css/bootstrap.min.css,sha256=W8ArKu4Q_NnxCNqO3doJB2hqrNOIHNLFroAxpyxnYL8,180286
113
- meerschaum/api/resources/static/css/dash.css,sha256=UVpQh1LaiYqwmPz9Q0Sqjnl8kiCRj6KLpxZiOx04KvY,2241
113
+ meerschaum/api/resources/static/css/dash.css,sha256=CkPRqTF0R1kc2PDspTzF1hoeMnf9HzLOnMkb3LJHZUQ,2241
114
114
  meerschaum/api/resources/static/css/dbc_dark.css,sha256=2pka1ymFAjlWLv-mJaxGkPeL-gTEMD2g4Ba6LMuhHV4,6087
115
115
  meerschaum/api/resources/static/css/styles.css,sha256=dHcCtRUzs8kJhpG6d4gusROLSe9AFkUitybvgFmEDvI,81
116
116
  meerschaum/api/resources/static/css/xterm.css,sha256=gy8_LGA7Q61DUf8ElwFQzHqHMBQnbbEmpgZcbdgeSHI,5383
@@ -144,7 +144,7 @@ meerschaum/api/routes/_webterm.py,sha256=TviHMz0_pLnby7dZW76y3mt-40Cq3VGFItSVcBi
144
144
  meerschaum/api/tables/__init__.py,sha256=e2aNC0CdlWICTUMx1i9RauF8Pm426J0RZJbsJWv4SWo,482
145
145
  meerschaum/config/__init__.py,sha256=IZLzkI7jBycfmHSR6R_WG3eBe0Uv53c-CI_QqNf4lnw,12966
146
146
  meerschaum/config/_dash.py,sha256=BJHl4xMrQB-YHUEU7ldEW8q_nOPoIRSOqLrfGElc6Dw,187
147
- meerschaum/config/_default.py,sha256=V3aV0KeZrFg2rKfZtc-lHhqVWfKgLhxu9_EZFL6H0QU,8122
147
+ meerschaum/config/_default.py,sha256=kon77hqv6Iw0i_FovooR62iZOD589EqAMSeG5Z-gOkI,8172
148
148
  meerschaum/config/_edit.py,sha256=WCdt7BSspPytH-NiPS1kpCZxXDDG7VbOu0H1AnMtwlw,9177
149
149
  meerschaum/config/_formatting.py,sha256=SXUU0QFAlO_eIZjyodXQGSrjg-mVkL2qXuQwxqqdJps,6746
150
150
  meerschaum/config/_jobs.py,sha256=gS_4mMGdmVP7WB4V5Sz8kYP0HmhWcMY2jSWGR7jX6cw,1279
@@ -154,7 +154,7 @@ meerschaum/config/_preprocess.py,sha256=-AEA8m_--KivZwTQ1sWN6LTn5sio_fUr2XZ51BO6
154
154
  meerschaum/config/_read_config.py,sha256=Y4O-eozH94FsucqLWXb5hS57RLPMHsLUQe7a24doi0o,16231
155
155
  meerschaum/config/_shell.py,sha256=46_m49Txc5q1rGfCgO49ca48BODx45DQJi8D0zz1R18,4245
156
156
  meerschaum/config/_sync.py,sha256=nN5bLCHU8sFDdlPi7pQXuRVFcX457rZjOiALTvqRS_E,4332
157
- meerschaum/config/_version.py,sha256=yLMxZ0Wd2WlFk-MKJq82SsxiEbYoRPN98PxoXFoWg78,71
157
+ meerschaum/config/_version.py,sha256=XePMeRwPxnziKgqCJG_d7nZQVMdmL3oHJQnL0Z3047s,71
158
158
  meerschaum/config/environment.py,sha256=hTyjPLrGp3R4sytg_Jqv4TnCVI1WdmbX2YoRBCWSNt8,8277
159
159
  meerschaum/config/paths.py,sha256=JjibeGN3YAdSNceRwsd42aNmeUrIgM6ndzC8qZAmNI0,621
160
160
  meerschaum/config/static.py,sha256=92fSGxoHFDOK9GEsN8NVbAEh9W7-eZ1BS6thyEqcjeI,359
@@ -195,7 +195,7 @@ meerschaum/connectors/sql/_cli.py,sha256=D4c_S-xTmhLRxl2dMhNSF0bMb1fDrMwWP2SVRBm
195
195
  meerschaum/connectors/sql/_create_engine.py,sha256=M_uP6HlMIJvwKn_K-GXPBO9oVlGA2ULrWTR3fuEDfPY,7678
196
196
  meerschaum/connectors/sql/_fetch.py,sha256=eJIqVAc4qI0xrbkZedO85sfB1-Hd3_Jkk12D6-OuzRU,12208
197
197
  meerschaum/connectors/sql/_instance.py,sha256=xCc8M0xWMzF5Tu_1uWIFivAoHey5N1ccFhN_Z7u04zk,6304
198
- meerschaum/connectors/sql/_pipes.py,sha256=QdvLrq_r5MUHcGQB0B21Lm9UyxGYCvs0C1S9wfymg9U,130242
198
+ meerschaum/connectors/sql/_pipes.py,sha256=hts5BUQTD8p9oLireNWw0Dio-ilQ1Aimw6uMrZaOHxo,130234
199
199
  meerschaum/connectors/sql/_plugins.py,sha256=SubR5HUJaetoUCv83YNEMwhv4wTTBCMcxSOEUgyMML4,8747
200
200
  meerschaum/connectors/sql/_sql.py,sha256=7x54ED3WYNASBBb50JKX37-d-LLQsp2fqR59S7qK6HQ,44490
201
201
  meerschaum/connectors/sql/_uri.py,sha256=BFzu5pjlbL3kxLH13vHWlpKGYTPfg8wuA2j58O9NsCM,3440
@@ -213,7 +213,7 @@ meerschaum/core/__init__.py,sha256=Qx0s4KANuYCjTCHEaE70cfgCPxiYPPkr9DnmCTw33Z0,2
213
213
  meerschaum/core/Pipe/__init__.py,sha256=5ibU7Cnz3vLsKtfVINkmR4maNE_jOdX6bA4ZpyIm_Pc,19979
214
214
  meerschaum/core/Pipe/_attributes.py,sha256=ww6P90OYt-hFGRxznSfx-uy1ecor1YgwvbIBvtu-5fg,32457
215
215
  meerschaum/core/Pipe/_bootstrap.py,sha256=4RLDD25BvqyukHhejTIJFaECOvCgZk6tjtNQfS9qgA8,8150
216
- meerschaum/core/Pipe/_cache.py,sha256=sagCMxwLd33mZROpIRRhWS5zB7z0ecdYJWbnIZZxCks,15582
216
+ meerschaum/core/Pipe/_cache.py,sha256=p8ckGqqVmm1g9OKDR6OhzpgBCuP7gbYHopmIS9qQR3A,15731
217
217
  meerschaum/core/Pipe/_clear.py,sha256=vCv4imPcMVdJXWwArOcnNlxEOk5HPOHSDZ9omrexzGc,1972
218
218
  meerschaum/core/Pipe/_copy.py,sha256=YDclAapf_spm9phpFr4-CALyYyw7nUsyKyiaLM1cnm4,2965
219
219
  meerschaum/core/Pipe/_data.py,sha256=HPNY5QTZstEd8Mq7pF9i_obl8ir9mTICtHyjY0ecRT4,27732
@@ -246,12 +246,12 @@ meerschaum/plugins/__init__.py,sha256=3ButbAcVQVdOlgai7kEvid7TYMNdDW-zqRbEL0Ka2C
246
246
  meerschaum/plugins/bootstrap.py,sha256=sSvdh2g78AYwTTNMTdHw62Nj2v95pmbd77HFznuErUE,27728
247
247
  meerschaum/utils/__init__.py,sha256=QrK1K9hIbPCRCM5k2nZGFqGnrqhA0Eh-iSmCU7FG6Cs,612
248
248
  meerschaum/utils/_get_pipes.py,sha256=TbV77VjQ9qqCLOy06-hlnfQI_hS6PTcXkbO7aQ2csdM,13275
249
- meerschaum/utils/dataframe.py,sha256=JDf8Gus9ZrCKdOrcHcefsPxudbKinuadD9rH9LocLEg,67612
249
+ meerschaum/utils/dataframe.py,sha256=bxcf04SRlt0tI7vNQXYvoTLHM35e5QMVm4IJYT82mMo,67686
250
250
  meerschaum/utils/debug.py,sha256=zBYxcLJ5Ymzz1J5BVv7DXAZ7CWd6vYN9uFFdWKmny9U,4334
251
251
  meerschaum/utils/interactive.py,sha256=t-6jWozXSqL7lYGDHuwiOjTgr-UKhdcg61q_eR5mikI,3196
252
252
  meerschaum/utils/misc.py,sha256=792Ejz6FYrCoqTiyeWnC4n8t3-wcGXfJv5InSQIKGlM,50451
253
253
  meerschaum/utils/networking.py,sha256=Sr_eYUGW8_UV9-k9LqRFf7xLtbUcsDucODyLCRsFRUc,1006
254
- meerschaum/utils/pipes.py,sha256=ZJzUBd93a33aKOtQN6Jc1rDfdEaKPJB4-0hOcipG5RQ,6284
254
+ meerschaum/utils/pipes.py,sha256=5HgHmZdt0UxcAF5VATF9BXJEqOOhn1CoBbDjB2XBltI,6340
255
255
  meerschaum/utils/pool.py,sha256=vkE42af4fjrTEJTxf6Ek3xGucm1MtEkpsSEiaVzNKHs,2655
256
256
  meerschaum/utils/process.py,sha256=Y7yk7b-OEADd28E40ffvIGLS3shi4-e604YWX5aFUDo,8214
257
257
  meerschaum/utils/prompt.py,sha256=NmbSRJyrapH7UKMV1Ry_LIjj2POVTpNCLS2QeIogge0,19740
@@ -274,16 +274,16 @@ meerschaum/utils/formatting/_jobs.py,sha256=c2Kp51vRJkDs2OeYLiePjSJCYhWj5az4b8uG
274
274
  meerschaum/utils/formatting/_pipes.py,sha256=CbCgUQadFR7i9gKogTPQ7vCgFguy9BW_hIT_aIwPhCw,19565
275
275
  meerschaum/utils/formatting/_pprint.py,sha256=DCwopIQUu2xsCETsmbfSYVupG6Uz95gyZ63pa_nDMPo,3097
276
276
  meerschaum/utils/formatting/_shell.py,sha256=e1SPZIUGRF6TkiKn4tULPGCE6ZbaxFdOTqosJA5rWX4,4378
277
- meerschaum/utils/packages/__init__.py,sha256=qr_PDnKhL_X0tC8dCUJ8wE5-X3k9EmkPkTUjMXIChGU,63791
277
+ meerschaum/utils/packages/__init__.py,sha256=bgMYbbFanPLgqGchwxYiUoB-45XvjoMFdJdeqXX_MSo,63886
278
278
  meerschaum/utils/packages/_packages.py,sha256=KWVfxsm-6ZdffpskIjHPki6wSQvf0LK9MWZgllS3dMo,9432
279
279
  meerschaum/utils/packages/lazy_loader.py,sha256=VHnph3VozH29R4JnSSBfwtA5WKZYZQFT_GeQSShCnuc,2540
280
280
  meerschaum/utils/venv/_Venv.py,sha256=dF-FqP7Boq-g-anj2Ps-UkTOL2qJtxY3bdz0HWF2zT8,3726
281
- meerschaum/utils/venv/__init__.py,sha256=_mabNYZwj5_XQCsdo8sED4HY-1q5s-3em6Bml7bc4BE,27301
282
- meerschaum-3.0.2.dist-info/licenses/LICENSE,sha256=jG2zQEdRNt88EgHUWPpXVWmOrOduUQRx7MnYV9YIPaw,11359
283
- meerschaum-3.0.2.dist-info/licenses/NOTICE,sha256=OTA9Fcthjf5BRvWDDIcBC_xfLpeDV-RPZh3M-HQBRtQ,114
284
- meerschaum-3.0.2.dist-info/METADATA,sha256=ZWCAgShvSeO_E6fEygHYgprOKBgnxVpo1c4AWwUDLbc,25325
285
- meerschaum-3.0.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
286
- meerschaum-3.0.2.dist-info/entry_points.txt,sha256=5YBVzibw-0rNA_1VjB16z5GABsOGf-CDhW4yqH8C7Gc,88
287
- meerschaum-3.0.2.dist-info/top_level.txt,sha256=bNoSiDj0El6buocix-FRoAtJOeq1qOF5rRm2u9i7Q6A,11
288
- meerschaum-3.0.2.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
289
- meerschaum-3.0.2.dist-info/RECORD,,
281
+ meerschaum/utils/venv/__init__.py,sha256=tMxoGCrUZ_1OEzeZAM8KQyfYMBR0L0V7huBJ2dZNx7k,27333
282
+ meerschaum-3.0.4.dist-info/licenses/LICENSE,sha256=jG2zQEdRNt88EgHUWPpXVWmOrOduUQRx7MnYV9YIPaw,11359
283
+ meerschaum-3.0.4.dist-info/licenses/NOTICE,sha256=OTA9Fcthjf5BRvWDDIcBC_xfLpeDV-RPZh3M-HQBRtQ,114
284
+ meerschaum-3.0.4.dist-info/METADATA,sha256=85H_Xm43ujqNqu3nNxBZWyrAxjME5uV-vJOfYPnDtUI,25325
285
+ meerschaum-3.0.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
286
+ meerschaum-3.0.4.dist-info/entry_points.txt,sha256=5YBVzibw-0rNA_1VjB16z5GABsOGf-CDhW4yqH8C7Gc,88
287
+ meerschaum-3.0.4.dist-info/top_level.txt,sha256=bNoSiDj0El6buocix-FRoAtJOeq1qOF5rRm2u9i7Q6A,11
288
+ meerschaum-3.0.4.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
289
+ meerschaum-3.0.4.dist-info/RECORD,,