lockss-turtles 0.6.0.dev3__py3-none-any.whl → 0.6.0.dev5__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.
@@ -5,7 +5,7 @@ Library and command line tool to manage LOCKSS plugin sets and LOCKSS plugin
5
5
  registries.
6
6
  """
7
7
 
8
- __version__ = '0.6.0-dev3'
8
+ __version__ = '0.6.0-dev5'
9
9
 
10
10
  __copyright__ = '''
11
11
  Copyright (c) 2000-2025, Board of Trustees of Leland Stanford Jr. University
lockss/turtles/cli.py CHANGED
@@ -43,7 +43,6 @@ from pydantic.v1.class_validators import validator
43
43
  import tabulate
44
44
  from typing import Optional
45
45
 
46
- from lockss.turtles.plugin_registry import PluginRegistryLayer
47
46
  from . import __copyright__, __license__, __version__
48
47
  from .app import TurtlesApp
49
48
  from .plugin_registry import PluginRegistryLayerIdentifier
@@ -54,7 +54,7 @@ class PluginRegistryCatalog(BaseModelWithRoot):
54
54
  plugin_registry_files: list[str] = Field(min_length=1, description="A non-empty list of plugin registry files", title='Plugin Registry Files', alias='plugin-registry-files')
55
55
 
56
56
  def get_plugin_registry_files(self) -> list[Path]:
57
- return [self._get_root().joinpath(pstr) for pstr in self.plugin_registry_files]
57
+ return [self.get_root().joinpath(pstr) for pstr in self.plugin_registry_files]
58
58
 
59
59
 
60
60
  PluginRegistryLayoutType = Literal['directory', 'rcs']
@@ -54,7 +54,7 @@ class PluginSetCatalog(BaseModelWithRoot):
54
54
  plugin_set_files: list[str] = Field(min_length=1, description="A non-empty list of plugin set files", title='Plugin Set Files', alias='plugin-set-files')
55
55
 
56
56
  def get_plugin_set_files(self) -> list[Path]:
57
- return [self._get_root().joinpath(p) for p in self.plugin_set_files]
57
+ return [self.get_root().joinpath(p) for p in self.plugin_set_files]
58
58
 
59
59
 
60
60
  PluginSetBuilderType = Literal['ant', 'maven']
@@ -70,10 +70,10 @@ class BasePluginSetBuilder(BaseModelWithRoot, ABC):
70
70
  pass
71
71
 
72
72
  def get_main(self) -> Path:
73
- return self._get_root().joinpath(self._get_main())
73
+ return self.get_root().joinpath(self._get_main())
74
74
 
75
75
  def get_test(self) -> Path:
76
- return self._get_root().joinpath(self._get_test())
76
+ return self.get_root().joinpath(self._get_test())
77
77
 
78
78
  def get_type(self) -> PluginSetBuilderType:
79
79
  return getattr(self, 'type')
@@ -121,7 +121,7 @@ class AntPluginSetBuilder(BasePluginSetBuilder):
121
121
  if not self._built:
122
122
  # Do build
123
123
  subprocess.run('ant load-plugins',
124
- shell=True, cwd=self._get_root(), check=True, stdout=sys.stdout, stderr=sys.stderr)
124
+ shell=True, cwd=self.get_root(), check=True, stdout=sys.stdout, stderr=sys.stderr)
125
125
  self._built = True
126
126
 
127
127
  def _little_build(self, plugin_id: PluginIdentifier, keystore_path: Path, keystore_alias: str, keystore_password: str=None) -> tuple[Path, Plugin]:
@@ -142,14 +142,14 @@ class AntPluginSetBuilder(BasePluginSetBuilder):
142
142
  cur_id = cur_plugin.get_parent_identifier()
143
143
  # Invoke jarplugin
144
144
  jar_fstr = Plugin.id_to_file(plugin_id)
145
- jar_path = self._get_root().joinpath('plugins/jars', f'{plugin_id}.jar')
145
+ jar_path = self.get_root().joinpath('plugins/jars', f'{plugin_id}.jar')
146
146
  jar_path.parent.mkdir(parents=True, exist_ok=True)
147
147
  cmd = ['test/scripts/jarplugin',
148
148
  '-j', str(jar_path),
149
149
  '-p', str(jar_fstr)]
150
150
  for d in dirs:
151
151
  cmd.extend(['-d', d])
152
- subprocess.run(cmd, cwd=self._get_root(), check=True, stdout=sys.stdout, stderr=sys.stderr)
152
+ subprocess.run(cmd, cwd=self.get_root(), check=True, stdout=sys.stdout, stderr=sys.stderr)
153
153
  # Invoke signplugin
154
154
  cmd = ['test/scripts/signplugin',
155
155
  '--jar', str(jar_path),
@@ -158,7 +158,7 @@ class AntPluginSetBuilder(BasePluginSetBuilder):
158
158
  if keystore_password is not None:
159
159
  cmd.extend(['--password', keystore_password])
160
160
  try:
161
- subprocess.run(cmd, cwd=self._get_root(), check=True, stdout=sys.stdout, stderr=sys.stderr)
161
+ subprocess.run(cmd, cwd=self.get_root(), check=True, stdout=sys.stdout, stderr=sys.stderr)
162
162
  except subprocess.CalledProcessError as cpe:
163
163
  raise self._sanitize(cpe)
164
164
  if not jar_path.is_file():
@@ -203,13 +203,13 @@ class MavenPluginSetBuilder(BasePluginSetBuilder):
203
203
  f'-Dkeystore.alias={keystore_alias}',
204
204
  f'-Dkeystore.password={keystore_password}']
205
205
  try:
206
- subprocess.run(cmd, cwd=self._get_root(), check=True, stdout=sys.stdout, stderr=sys.stderr)
206
+ subprocess.run(cmd, cwd=self.get_root(), check=True, stdout=sys.stdout, stderr=sys.stderr)
207
207
  except subprocess.CalledProcessError as cpe:
208
208
  raise self._sanitize(cpe)
209
209
  self._built = True
210
210
 
211
211
  def _little_build(self, plugin_id: PluginIdentifier) -> tuple[Path, Plugin]:
212
- jar_path = self._get_root().joinpath('target', 'pluginjars', f'{plugin_id}.jar')
212
+ jar_path = self.get_root().joinpath('target', 'pluginjars', f'{plugin_id}.jar')
213
213
  if not jar_path.is_file():
214
214
  raise Exception(f'{plugin_id}: built JAR not found: {jar_path!s}')
215
215
  return jar_path, Plugin.from_jar(jar_path)
@@ -253,9 +253,9 @@ class PluginSet(BaseModel):
253
253
  def has_plugin(self, plugin_id: PluginIdentifier) -> bool:
254
254
  return self.get_builder().has_plugin(plugin_id)
255
255
 
256
+ def initialize(self, root: Path) -> PluginSet:
257
+ self.get_builder().initialize(root)
258
+ return self
259
+
256
260
  def make_plugin(self, plugin_id: PluginIdentifier) -> Plugin:
257
261
  return self.get_builder().make_plugin(plugin_id)
258
-
259
- def _initialize(self, root: Path) -> PluginSet:
260
- self.get_builder()._initialize(root)
261
- return self
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: lockss-turtles
3
- Version: 0.6.0.dev3
3
+ Version: 0.6.0.dev5
4
4
  Summary: Library and command line tool to manage LOCKSS plugin sets and LOCKSS plugin registries
5
5
  License: BSD-3-Clause
6
6
  Author: Thib Guicherd-Callin
@@ -0,0 +1,15 @@
1
+ lockss/turtles/__init__.py,sha256=dBhiD405_62kpn_SOOAzVuRkhN12vIkuBf79vfVyyoc,1743
2
+ lockss/turtles/__main__.py,sha256=825geLIwXS0LKRqxifJXlLaAZrY8nllXfHzw5ch5ysM,1624
3
+ lockss/turtles/app.py,sha256=aMWuYsY88FV1YTjcnXDhKHoAYh47i819y9qa9nJMrFE,13312
4
+ lockss/turtles/cli.py,sha256=pLZAG1hmYarCp0R4vHSJcTs3G1umk2esvaLhM5JX7rg,18435
5
+ lockss/turtles/plugin.py,sha256=re44YVlzXVU8azDshxn7oHw1GdTQLLQgYwkvZlur-60,5384
6
+ lockss/turtles/plugin_registry.py,sha256=pIQOzrastTxeJsny3CV2GhhYO0iQflPdJAxSIdxAiYY,11095
7
+ lockss/turtles/plugin_set.py,sha256=PqfFwENtwyYeuGgiKkQuZcYr3r4jmwsVldoon_S2WA0,11297
8
+ lockss/turtles/util.py,sha256=wGCrw_YySvyqaCzT0PItzXpkLHOCMMC_DQHhGU7zudI,2500
9
+ unittest/lockss/turtles/__init__.py,sha256=hrgWx4GaP-hhPBuRlbLndJnOQmZicKCLaP-dQTCu1sQ,3162
10
+ unittest/lockss/turtles/test_plugin_set.py,sha256=i-VM8mvrPuW2KqUlh2HPVRtgh3-F7RhmRAwcvhwpoDA,3354
11
+ lockss_turtles-0.6.0.dev5.dist-info/LICENSE,sha256=O9ONND4uDxY_jucI4jZDf2liAk05ScEJaYu-Al7EOdQ,1506
12
+ lockss_turtles-0.6.0.dev5.dist-info/METADATA,sha256=xb6BV0IKas0UER1SS8suFEFsfpVq1YN8F2ySlQxpLyo,39610
13
+ lockss_turtles-0.6.0.dev5.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
14
+ lockss_turtles-0.6.0.dev5.dist-info/entry_points.txt,sha256=25BAVFSBRKWAWiXIGZgcr1ypt2mV7nj31Jl8WcNZZOk,51
15
+ lockss_turtles-0.6.0.dev5.dist-info/RECORD,,
@@ -31,7 +31,7 @@
31
31
  from collections.abc import Callable
32
32
  from pydantic import ValidationError
33
33
  from pydantic_core import ErrorDetails
34
- from typing import Any, Dict, Optional, Tuple, Union
34
+ from typing import Any, Optional, Tuple, Union
35
35
  from unittest import TestCase
36
36
 
37
37
 
@@ -1,15 +0,0 @@
1
- lockss/turtles/__init__.py,sha256=G0_ly0qQJFS58h2l9AdA9g65rn0HHfd3uxID81G1a1o,1743
2
- lockss/turtles/__main__.py,sha256=825geLIwXS0LKRqxifJXlLaAZrY8nllXfHzw5ch5ysM,1624
3
- lockss/turtles/app.py,sha256=aMWuYsY88FV1YTjcnXDhKHoAYh47i819y9qa9nJMrFE,13312
4
- lockss/turtles/cli.py,sha256=EG2M4Sfi60M6ODaAcYtf6y0C_uwkwinJMtBZ6XkhR74,18498
5
- lockss/turtles/plugin.py,sha256=re44YVlzXVU8azDshxn7oHw1GdTQLLQgYwkvZlur-60,5384
6
- lockss/turtles/plugin_registry.py,sha256=Vps4Nz6P9tG00amYHhSrHSOJMWvRxhfSU99VoI-fCNw,11096
7
- lockss/turtles/plugin_set.py,sha256=gATNQ3XGHZBsqS_ppZLq93wFR--Bbz6mzdMRjSOTiSY,11308
8
- lockss/turtles/util.py,sha256=wGCrw_YySvyqaCzT0PItzXpkLHOCMMC_DQHhGU7zudI,2500
9
- unittest/lockss/turtles/__init__.py,sha256=TEV2QoSOLkf5qqfOPROURqefI-_qRPozW96SX6QB8xw,3168
10
- unittest/lockss/turtles/test_plugin_set.py,sha256=i-VM8mvrPuW2KqUlh2HPVRtgh3-F7RhmRAwcvhwpoDA,3354
11
- lockss_turtles-0.6.0.dev3.dist-info/LICENSE,sha256=O9ONND4uDxY_jucI4jZDf2liAk05ScEJaYu-Al7EOdQ,1506
12
- lockss_turtles-0.6.0.dev3.dist-info/METADATA,sha256=ONd4_KOw-3v85fJqs-VHsH1G0LaYbO4Gm0v9_-Dfpfg,39610
13
- lockss_turtles-0.6.0.dev3.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
14
- lockss_turtles-0.6.0.dev3.dist-info/entry_points.txt,sha256=25BAVFSBRKWAWiXIGZgcr1ypt2mV7nj31Jl8WcNZZOk,51
15
- lockss_turtles-0.6.0.dev3.dist-info/RECORD,,