meerschaum 3.0.1__py3-none-any.whl → 3.0.2__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.
@@ -140,6 +140,7 @@ def entry_with_daemon(
140
140
  'patch_args': _patch_args,
141
141
  'env': env,
142
142
  'config': config,
143
+ 'cwd': os.getcwd(),
143
144
  })
144
145
 
145
146
  accepted = False
@@ -319,6 +319,9 @@ class ActionWorker:
319
319
  action_id = input_data.get('action_id', None)
320
320
  patch_args = input_data.get('patch_args', None)
321
321
  env = input_data.get('env', {})
322
+ old_cwd = os.getcwd()
323
+ cwd = input_data.get('cwd', os.getcwd())
324
+ os.chdir(cwd)
322
325
  config = input_data.get('config', {})
323
326
  self.write_output_data({
324
327
  'state': 'accepted',
@@ -335,6 +338,8 @@ class ActionWorker:
335
338
  )
336
339
  print(STOP_TOKEN, flush=True, end='\n')
337
340
 
341
+ os.chdir(old_cwd)
342
+
338
343
  self.write_output_data({
339
344
  'state': 'completed',
340
345
  'session_id': session_id,
@@ -74,14 +74,10 @@ def _install_plugins(
74
74
  - install plugins noaa --repo mrsm (mrsm is the default instance)
75
75
  - install plugins noaa --repo mycustominstance
76
76
  """
77
- from meerschaum.utils.debug import dprint
78
77
  from meerschaum.utils.warnings import info
79
- from meerschaum.plugins import reload_plugins
80
78
  from meerschaum.connectors.parse import parse_repo_keys
81
- import meerschaum.actions
79
+ from meerschaum.actions import actions
82
80
  from meerschaum.utils.formatting import print_tuple
83
- from meerschaum.core import Plugin
84
- from meerschaum.connectors.api import APIConnector
85
81
 
86
82
  if not action:
87
83
  return False, "No plugins to install."
@@ -98,8 +94,7 @@ def _install_plugins(
98
94
  )
99
95
  print_tuple((success, msg))
100
96
 
101
- reload_plugins(debug=debug)
102
- return True, "Success"
97
+ return actions['reload'](debug=debug)
103
98
 
104
99
 
105
100
  def _complete_install_plugins(
@@ -132,8 +127,9 @@ def _complete_install_plugins(
132
127
  from meerschaum.connectors.parse import parse_repo_keys
133
128
  try:
134
129
  repo_connector = parse_repo_keys(repository)
135
- except Exception as e:
130
+ except Exception:
136
131
  return []
132
+
137
133
  results = repo_connector.get_plugins(search_term=search_term)
138
134
  if len(results) == 1 and results[0] == search_term:
139
135
  return []
@@ -156,10 +152,11 @@ def _install_packages(
156
152
  `install packages pandas numpy`
157
153
  """
158
154
  if not action:
159
- return False, f"No packages to install."
160
- from meerschaum.utils.warnings import info
155
+ return False, "No packages to install."
156
+
161
157
  from meerschaum.utils.packages import pip_install
162
158
  from meerschaum.utils.misc import items_str
159
+ from meerschaum.actions import actions
163
160
  if venv is NoVenv:
164
161
  venv = 'mrsm'
165
162
 
@@ -169,11 +166,16 @@ def _install_packages(
169
166
  venv = venv,
170
167
  debug = debug,
171
168
  ):
169
+ reload_success, reload_msg = actions['reload'](debug=debug)
170
+ if not reload_success:
171
+ return reload_success, reload_msg
172
+
172
173
  return True, (
173
174
  "Successfully installed package" + ("s" if len(action) != 1 else '')
174
175
  + f" {items_str(action)}"
175
176
  + f" into the virtual environment '{venv}'."
176
177
  )
178
+
177
179
  return False, (
178
180
  "Failed to install package" + ("s" if len(action) != 1 else '') + f" {items_str(action)}."
179
181
  )
@@ -201,6 +203,7 @@ def _install_required(
201
203
  from meerschaum.utils.warnings import warn, info
202
204
  from meerschaum.connectors.parse import parse_repo_keys
203
205
  from meerschaum.plugins import get_plugins_names
206
+ from meerschaum.actions import actions
204
207
  repo_connector = parse_repo_keys(repository)
205
208
 
206
209
  plugins_names = action or get_plugins_names()
@@ -221,6 +224,10 @@ def _install_required(
221
224
  else:
222
225
  success_count += 1
223
226
 
227
+ reload_success, reload_msg = actions['reload'](debug=debug)
228
+ if not reload_success:
229
+ return reload_success, reload_msg
230
+
224
231
  success = fail_count == 0
225
232
  msg = (
226
233
  f"Installed packages for {success_count + fail_count} plugins\n "
@@ -234,15 +241,6 @@ def _complete_install_required(*args, **kw) -> List[str]:
234
241
  return _complete_uninstall_plugins(*args, **kw)
235
242
 
236
243
 
237
- def _install_systemd(
238
- action: Optional[List[str]] = None,
239
- **kwargs: Any
240
- ) -> SuccessTuple:
241
- """
242
- Install the Meerschaum job monitor as a systemd service.
243
- """
244
- import sys
245
-
246
244
 
247
245
  ### NOTE: This must be the final statement of the module.
248
246
  ### Any subactions added below these lines will not
@@ -51,19 +51,16 @@ def _upgrade_meerschaum(
51
51
  - `upgrade meerschaum full`
52
52
 
53
53
  """
54
- import subprocess
55
- import json
56
54
  from meerschaum.utils.debug import dprint
57
55
  from meerschaum.utils.warnings import info
58
56
  from meerschaum.actions import actions
59
57
  from meerschaum.utils.prompt import yes_no
60
- from meerschaum.utils.packages import pip_install, attempt_import
58
+ from meerschaum.utils.packages import pip_install
61
59
  from meerschaum.utils.misc import is_docker_available
62
60
 
63
61
  if action is None:
64
62
  action = []
65
63
 
66
- is_stack_running = False
67
64
  try:
68
65
  success, msg = actions['stack'](
69
66
  ['ps', '-q'], _capture_output=True, debug=debug
@@ -71,7 +68,7 @@ def _upgrade_meerschaum(
71
68
  if msg.endswith('\n'):
72
69
  msg = msg[:-1]
73
70
  containers = msg.split('\n')
74
- except Exception as e:
71
+ except Exception:
75
72
  containers = []
76
73
 
77
74
  if containers:
@@ -103,7 +100,7 @@ def _upgrade_meerschaum(
103
100
  if is_docker_available():
104
101
  actions['stack'](['pull'], debug=debug)
105
102
 
106
- return True, "Success"
103
+ return actions['reload'](debug=debug)
107
104
 
108
105
 
109
106
  class NoVenv:
@@ -128,10 +125,10 @@ def _upgrade_packages(
128
125
  upgrade packages full
129
126
  """
130
127
  from meerschaum.utils.packages import packages, pip_install, get_prerelease_dependencies
131
- from meerschaum.utils.warnings import info, warn
128
+ from meerschaum.utils.warnings import warn
132
129
  from meerschaum.utils.prompt import yes_no
133
130
  from meerschaum.utils.formatting import make_header, pprint
134
- from meerschaum.utils.misc import print_options
131
+ from meerschaum.actions import actions
135
132
  if action is None:
136
133
  action = []
137
134
  if venv is NoVenv:
@@ -164,7 +161,7 @@ def _upgrade_packages(
164
161
  if (install_name not in prereleases_to_install) or group == '_internal'
165
162
  ]
166
163
 
167
- success, msg = False, f"Nothing installed."
164
+ success, msg = False, "Nothing installed."
168
165
  if force or yes_no(question, noask=noask, yes=yes):
169
166
  success = pip_install(*to_install, debug=debug)
170
167
  if success and prereleases_to_install:
@@ -173,6 +170,14 @@ def _upgrade_packages(
173
170
  f"Successfully installed {len(packages[group])} packages." if success
174
171
  else f"Failed to install packages in dependency group '{group}'."
175
172
  )
173
+
174
+ if not success:
175
+ return success, msg
176
+
177
+ reload_success, reload_msg = actions['reload'](debug=debug)
178
+ if not reload_success:
179
+ return reload_success, reload_msg
180
+
176
181
  return success, msg
177
182
 
178
183
 
@@ -205,11 +210,20 @@ def _upgrade_plugins(
205
210
  to_install = get_plugins_names() if len(action) == 0 else action
206
211
  if len(to_install) == 0:
207
212
  return False, "No plugins to upgrade."
213
+
208
214
  print_options(to_install, header="Plugins to Upgrade:")
209
215
  if force or yes_no(f"Upgrade {len(to_install)} plugins?", yes=yes, noask=noask):
210
- return actions['install'](
211
- action=['plugins'] + to_install, debug=debug, force=force, noask=noask, yes=yes, **kw
216
+ install_success, install_msg = actions['install'](
217
+ action=['plugins'] + to_install,
218
+ debug=debug,
219
+ force=force,
220
+ noask=noask,
221
+ yes=yes,
222
+ **kw
212
223
  )
224
+
225
+ return install_success, install_msg
226
+
213
227
  return False, "No plugins upgraded."
214
228
 
215
229
  ### NOTE: This must be the final statement of the module.
@@ -134,6 +134,8 @@ default_system_config = {
134
134
  'stop daemon',
135
135
  'show daemon',
136
136
  'restart daemon',
137
+ 'install',
138
+ 'upgrade',
137
139
  'reload',
138
140
  'start worker',
139
141
  'show log',
@@ -185,7 +185,6 @@ def read_config(
185
185
  import traceback
186
186
  traceback.print_exc()
187
187
  _config_key = {}
188
- substitute = False
189
188
  _single_key_config = (
190
189
  search_and_substitute_config({key: _config_key}) if substitute
191
190
  else {key: _config_key}
@@ -2,4 +2,4 @@
2
2
  Specify the Meerschaum release version.
3
3
  """
4
4
 
5
- __version__ = "3.0.1"
5
+ __version__ = "3.0.2"
@@ -326,23 +326,22 @@ def sync_plugins_symlinks(debug: bool = False, warn: bool = True) -> None:
326
326
  """
327
327
  Update the plugins' internal symlinks.
328
328
  """
329
+ from meerschaum.utils.warnings import error, warn as _warn, dprint
329
330
  global _synced_symlinks
330
331
  with _locks['_synced_symlinks']:
331
332
  if _synced_symlinks:
333
+ if debug:
334
+ dprint("Skip syncing symlinks...")
332
335
  return
333
336
 
334
337
  import os
335
338
  import pathlib
336
339
  import time
337
340
  from collections import defaultdict
338
- import importlib.util
339
341
  from meerschaum.utils.misc import flatten_list, make_symlink, is_symlink
340
- from meerschaum.utils.warnings import error, warn as _warn
341
342
  from meerschaum._internal.static import STATIC_CONFIG
342
- from meerschaum.utils.venv import Venv, activate_venv, deactivate_venv, is_venv_active
343
343
  from meerschaum.config._paths import (
344
344
  PLUGINS_RESOURCES_PATH,
345
- PLUGINS_ARCHIVES_RESOURCES_PATH,
346
345
  PLUGINS_INIT_PATH,
347
346
  PLUGINS_DIR_PATHS,
348
347
  PLUGINS_INTERNAL_LOCK_PATH,
@@ -700,7 +699,11 @@ def load_plugins(
700
699
  Import Meerschaum plugins and update the actions dictionary.
701
700
  """
702
701
  global _loaded_plugins
702
+ from meerschaum.utils.warnings import dprint
703
+
703
704
  if skip_if_loaded and _loaded_plugins:
705
+ if debug:
706
+ dprint("Skip loading plugins...")
704
707
  return
705
708
 
706
709
  from inspect import isfunction, getmembers
@@ -714,6 +717,7 @@ def load_plugins(
714
717
  recursive = True,
715
718
  modules_venvs = True
716
719
  )
720
+
717
721
  ### I'm appending here to keep from redefining the modules list.
718
722
  new_modules = (
719
723
  [
@@ -784,7 +788,7 @@ def unload_plugins(
784
788
  """
785
789
  Unload the specified plugins from memory.
786
790
  """
787
- global _loaded_plugins
791
+ global _loaded_plugins, _synced_symlinks
788
792
  import sys
789
793
  from meerschaum.config.paths import PLUGINS_RESOURCES_PATH, PLUGINS_INJECTED_RESOURCES_PATH
790
794
  from meerschaum.connectors import unload_plugin_connectors
@@ -792,6 +796,7 @@ def unload_plugins(
792
796
  from meerschaum.utils.warnings import dprint
793
797
 
794
798
  _loaded_plugins = False
799
+ _synced_symlinks = False
795
800
 
796
801
  plugins = plugins or get_plugins_names()
797
802
  if debug:
@@ -803,6 +808,7 @@ def unload_plugins(
803
808
  module_prefix = f"{PLUGINS_RESOURCES_PATH.stem}."
804
809
  loaded_modules = [mod_name for mod_name in sys.modules if mod_name.startswith(module_prefix)]
805
810
 
811
+ _ = sys.modules.pop(PLUGINS_RESOURCES_PATH.stem, None)
806
812
  for plugin_name in plugins:
807
813
  for mod_name in loaded_modules:
808
814
  if mod_name[len(PLUGINS_RESOURCES_PATH.stem):].startswith(plugin_name):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meerschaum
3
- Version: 3.0.1
3
+ Version: 3.0.2
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>
@@ -8,8 +8,8 @@ meerschaum/_internal/arguments/_parse_arguments.py,sha256=B7eXnz2fGrDb_lWy2wagWV
8
8
  meerschaum/_internal/arguments/_parser.py,sha256=v4dlR5ElJFmKGiw35UGCiDI1XiH8-ma8PJwoV3O--c4,18082
9
9
  meerschaum/_internal/cli/__init__.py,sha256=ZZ_N_24WUg7fA6opMtSkS3OdtA6zgAe1rLMnS4-W1Zs,114
10
10
  meerschaum/_internal/cli/daemons.py,sha256=-qx5y9YSyGzeDrBIRjuSaeHgmSNmSqrRiyOjXduNaBc,2586
11
- meerschaum/_internal/cli/entry.py,sha256=gxXX4hma_2xH0TSXacamFbOhbOYI0vGqV0QKqIQalBo,6786
12
- meerschaum/_internal/cli/workers.py,sha256=_HQCxa54_VPfw34BE754UfidoSzievN8eQlixSqrbNI,12920
11
+ meerschaum/_internal/cli/entry.py,sha256=O00pR369q7NYrSYrmESRsy6iaLsSEOmrultMZ5SVIpY,6814
12
+ meerschaum/_internal/cli/workers.py,sha256=D5peGIQ1kR5ZkNHj1bdu0-Oc0avFGf553JFCbpzkg3I,13064
13
13
  meerschaum/_internal/docs/__init__.py,sha256=ZQYHWo6n0kfLLkyG36YXqTYvv2Pc7it5HZHMylT6cBA,126
14
14
  meerschaum/_internal/docs/index.py,sha256=_ghUsrgjc2eo2c-CwvqY4gT2rgyXVONuT0oScyWkIz8,27401
15
15
  meerschaum/_internal/shell/Shell.py,sha256=-iF7EYZQcNS3GNvaUgo-T8tuIeQKUjlMoZeBI6GclI0,44491
@@ -32,7 +32,7 @@ meerschaum/actions/delete.py,sha256=9NhWrClsdsiJ6ih-Yxyi6gZ05MMI9ykTSnL6dpPC1Z0,
32
32
  meerschaum/actions/drop.py,sha256=xNgHWFPyvs4lm923BCRwYJULUqGYMbcVnRPb25Y-lzs,4433
33
33
  meerschaum/actions/edit.py,sha256=JTvXMkL_9v46mI6P0FhHXhgg9vQjIdz1ebXc2Ei2Dws,20471
34
34
  meerschaum/actions/index.py,sha256=byhcGi7P1S0TTcJPBxq3jGKmBF_gZ8t77oqtg0kGSdI,1826
35
- meerschaum/actions/install.py,sha256=P_M2dnn3sVC2mAn5hwvu4VHWkoh4r9TBUzNcU_Kukpc,7437
35
+ meerschaum/actions/install.py,sha256=6KNeLOPwdc_IFuzw6iQJAH52ZO6rPNx7PAiH_dspNR0,7367
36
36
  meerschaum/actions/login.py,sha256=DHYVIwrr6RpkrcW4NpGlURq2-ABL9-pXp2J-SXef10Y,4173
37
37
  meerschaum/actions/os.py,sha256=dtoppoBhLzW3rLNF0SFovEfNxA4WJWt_9WrOGlS5KbA,2251
38
38
  meerschaum/actions/pause.py,sha256=WI4dQFfjQ6ObWKUzwQ5FrtYPDyEcnxWwval8cSIzzJw,4221
@@ -50,7 +50,7 @@ meerschaum/actions/stop.py,sha256=GN1t7SpRzLpMKWyJmRkKdOEVov0TMaknJ3gKjAUZQkE,57
50
50
  meerschaum/actions/sync.py,sha256=jB3w_t4_Uj788jDJ4FGPCHS5EqU08b5gPcReAlGan74,17818
51
51
  meerschaum/actions/tag.py,sha256=JhWSq7X4wPrgt9tTft6qWOfs5nv-djGnqze4UQ8DPVA,3053
52
52
  meerschaum/actions/uninstall.py,sha256=tBXhdXggSieGEQe4EPGxpgMK0MZTJCweNvAJ9-59El0,5776
53
- meerschaum/actions/upgrade.py,sha256=AjuC93Te-I_GWwIfuNkFJ2q1zVHDQ2Oco34S4JgK2iA,6485
53
+ meerschaum/actions/upgrade.py,sha256=-N7S0ewA__azTg4Q-Woj0Ehv2SN-Siarr4_HGPlJREk,6711
54
54
  meerschaum/actions/verify.py,sha256=yKNqh2T38t3yxqErr2o8i-nNG4ZZuyQUkaImATRdl5M,4676
55
55
  meerschaum/api/__init__.py,sha256=r9h44c-l8Qx7QNoNWdvDe6ovJPbZC34PzqWnT-Odi3E,11214
56
56
  meerschaum/api/_chain.py,sha256=h8-WXUGXX6AqzdALfsBC5uv0FkAcLdHJXCGzqzuq89k,875
@@ -144,17 +144,17 @@ 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=HdwExsy1X3B37aq7AnXImits8vA3qLkG1Xi70TlM5Tk,8076
147
+ meerschaum/config/_default.py,sha256=V3aV0KeZrFg2rKfZtc-lHhqVWfKgLhxu9_EZFL6H0QU,8122
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
151
151
  meerschaum/config/_patch.py,sha256=qCv1LqZSDUI8mbaxcoKfmR-XI4Dmtz3Kzgsv1XFDhUo,1569
152
152
  meerschaum/config/_paths.py,sha256=QAJrcBQ05RJFZmPufezr_Grb1Wwr9y69pKFude0DJoE,13450
153
153
  meerschaum/config/_preprocess.py,sha256=-AEA8m_--KivZwTQ1sWN6LTn5sio_fUr2XZ51BO6wLs,1220
154
- meerschaum/config/_read_config.py,sha256=IsTVrk8xQXf0nxIjb_ASyecgjkktVqjDt_wJvVGP98Y,16266
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=GuCnsG09o5kT64ABqDd5ExeZsoe_yQEqta0q2cAVEVc,71
157
+ meerschaum/config/_version.py,sha256=yLMxZ0Wd2WlFk-MKJq82SsxiEbYoRPN98PxoXFoWg78,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
@@ -242,7 +242,7 @@ meerschaum/models/__init__.py,sha256=9OCElgSTRzgqAIpi_FSUzTAVJtUwOIi71BGFsqkn6PU
242
242
  meerschaum/models/pipes.py,sha256=vGSGm5UuyfwfPDqM9iq-PjFeiGrWYW52bJAKNZ4pcHs,7839
243
243
  meerschaum/models/tokens.py,sha256=57cFisjhx47EFbJLfsp8iHX8-qZiRY8ztFWahylWOJQ,1067
244
244
  meerschaum/models/users.py,sha256=E1ambl2g6f2tdnLkwAquyqjvflrb2AMiVhI9nXXHYR0,683
245
- meerschaum/plugins/__init__.py,sha256=qKWqbmk4Wi4Dhmrpw-r9wIOnaMfeQ7wvog1--GsQGBE,34956
245
+ meerschaum/plugins/__init__.py,sha256=3ButbAcVQVdOlgai7kEvid7TYMNdDW-zqRbEL0Ka2C8,35100
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
@@ -279,11 +279,11 @@ meerschaum/utils/packages/_packages.py,sha256=KWVfxsm-6ZdffpskIjHPki6wSQvf0LK9MW
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
281
  meerschaum/utils/venv/__init__.py,sha256=_mabNYZwj5_XQCsdo8sED4HY-1q5s-3em6Bml7bc4BE,27301
282
- meerschaum-3.0.1.dist-info/licenses/LICENSE,sha256=jG2zQEdRNt88EgHUWPpXVWmOrOduUQRx7MnYV9YIPaw,11359
283
- meerschaum-3.0.1.dist-info/licenses/NOTICE,sha256=OTA9Fcthjf5BRvWDDIcBC_xfLpeDV-RPZh3M-HQBRtQ,114
284
- meerschaum-3.0.1.dist-info/METADATA,sha256=gSbablebJKlk5CU0LEaXIWsygmSZpr0_-aSwmRiWKyQ,25325
285
- meerschaum-3.0.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
286
- meerschaum-3.0.1.dist-info/entry_points.txt,sha256=5YBVzibw-0rNA_1VjB16z5GABsOGf-CDhW4yqH8C7Gc,88
287
- meerschaum-3.0.1.dist-info/top_level.txt,sha256=bNoSiDj0El6buocix-FRoAtJOeq1qOF5rRm2u9i7Q6A,11
288
- meerschaum-3.0.1.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
289
- meerschaum-3.0.1.dist-info/RECORD,,
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,,