lockss-turtles 0.6.0.dev26__py3-none-any.whl → 0.6.0.post1__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.
@@ -6,7 +6,7 @@ registries.
6
6
  """
7
7
 
8
8
  #: This package's version.
9
- __version__ = '0.6.0-dev26'
9
+ __version__ = '0.6.0-post1'
10
10
 
11
11
  #: This package's copyright.
12
12
  __copyright__ = '''
@@ -293,7 +293,7 @@ class MavenPluginSetBuilder(BasePluginSetBuilder):
293
293
  :param keystore_alias: The alias to use in the plugin signing keystore.
294
294
  :type keystore_alias: str
295
295
  :param keystore_password: The plugin signing password.
296
- :type keystore_password:
296
+ :type keystore_password: Optional[Callable[[], str]]
297
297
  :raises subprocess.CalledProcessError: If a subprocess fails.
298
298
  """
299
299
  if not self._built:
@@ -302,7 +302,7 @@ class MavenPluginSetBuilder(BasePluginSetBuilder):
302
302
  f'-Dkeystore.file={keystore_path!s}',
303
303
  f'-Dkeystore.alias={keystore_alias}']
304
304
  if keystore_password:
305
- cmd.extend(f'-Dkeystore.password={keystore_password()}')
305
+ cmd.append(f'-Dkeystore.password={keystore_password()}')
306
306
  try:
307
307
  subprocess.run(cmd, cwd=self.get_root(), check=True, stdout=sys.stdout, stderr=sys.stderr)
308
308
  except subprocess.CalledProcessError as cpe:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lockss-turtles
3
- Version: 0.6.0.dev26
3
+ Version: 0.6.0.post1
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
  License-File: LICENSE
@@ -8,7 +8,7 @@ Author: Thib Guicherd-Callin
8
8
  Author-email: thib@cs.stanford.edu
9
9
  Maintainer: Thib Guicherd-Callin
10
10
  Maintainer-email: thib@cs.stanford.edu
11
- Requires-Python: >=3.9,<4.0
11
+ Requires-Python: >=3.9,<3.14
12
12
  Classifier: Development Status :: 5 - Production/Stable
13
13
  Classifier: Environment :: Console
14
14
  Classifier: Framework :: Pydantic :: 2
@@ -35,8 +35,8 @@ Description-Content-Type: text/x-rst
35
35
  Turtles
36
36
  =======
37
37
 
38
- .. |RELEASE| replace:: 0.6.0-dev26 NOT YET RELEASED
39
- .. |RELEASE_DATE| replace:: NOT YET RELEASED
38
+ .. |RELEASE| replace:: 0.6.0-post1
39
+ .. |RELEASE_DATE| replace:: 2026-02-03
40
40
  .. |TURTLES| replace:: **Turtles**
41
41
 
42
42
  .. image:: https://assets.lockss.org/images/logos/turtles/turtles_128x128.png
@@ -56,6 +56,9 @@ Turtles
56
56
 
57
57
  Quick Start::
58
58
 
59
+ # Requires Python 3.9-3.13
60
+ python --version
61
+
59
62
  # Install with pipx
60
63
  pipx install lockss-turtles
61
64
 
@@ -1,18 +1,18 @@
1
- lockss/turtles/__init__.py,sha256=DFU1_qgdgSb_zxc9Lw6YgvadqEQQ4qAwx_0x1hX-cQU,1827
1
+ lockss/turtles/__init__.py,sha256=34uAU1UM8dMK9Nl1U3_IGdi6O3h_IsJV1FF2iViAe9U,1827
2
2
  lockss/turtles/__main__.py,sha256=BqRTG3dejCgLh87UJ1Os9DD9unxnQkOdUQM6eqWS3Sg,1680
3
3
  lockss/turtles/app.py,sha256=XnBF91r-D3YGSfgIP0v9C064fH8Rc6y4I5y1arEweCQ,30520
4
4
  lockss/turtles/cli.py,sha256=x4Ciba5fcDSNeYAhhauOeCP1FcMy5ptOts32CWG3la4,30546
5
5
  lockss/turtles/plugin.py,sha256=fxIAaSL06uv9sjYCz2wTQjn_92qPK3EvGNnbkpeSZcA,10972
6
6
  lockss/turtles/plugin_registry.py,sha256=8BR6CrqY8hh4zpy13B8gZ9qpCMASlOxvX6g8VmpWeMc,26864
7
- lockss/turtles/plugin_set.py,sha256=4fUmpp_GF_WY06gyhm9tVofYINoTXYUqAvKik3Z4bE4,24640
7
+ lockss/turtles/plugin_set.py,sha256=QCUWh56NV5YMQmZIz3-9DYHZI42BC3Aain5mxax7x9o,24668
8
8
  lockss/turtles/plugin_signing_credentials.py,sha256=EekUJeXvbfRcrVHCsvvbGBO07bSBzEgVL1Ck4TUbe8k,3415
9
9
  lockss/turtles/util.py,sha256=sBvB96BBED_yVZOybcf-sIwldNm9wstgWssnhugpww0,3536
10
10
  unittest/lockss/turtles/__init__.py,sha256=ude-nT_uHF0lCD9qKrzedm8QvwqTiNjogpyz8SJudOQ,5598
11
- unittest/lockss/turtles/test_plugin_registry.py,sha256=PIBeAKoDudInJOGhwTSug_b4AugGtK5yFmapUtQYTNw,18372
11
+ unittest/lockss/turtles/test_plugin_registry.py,sha256=NXQyvvV3u1Pk3h5e-W7F93NIL6rYrv3bN_N4TFuZ0_U,18644
12
12
  unittest/lockss/turtles/test_plugin_set.py,sha256=SJ2IO3sVOkm1zRr4a9SbyMhKpyKZAzoDV1oVfya3eEU,10949
13
13
  unittest/lockss/turtles/test_plugin_signing_credentials.py,sha256=oxAKxeIEATNu3dIajcAFy-gEChMDCHSSDjZotuAB49o,5269
14
- lockss_turtles-0.6.0.dev26.dist-info/METADATA,sha256=PqR_im9Se6s6-2gDrojNn07LUi2CKESgngN4UTmX8YM,2362
15
- lockss_turtles-0.6.0.dev26.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
16
- lockss_turtles-0.6.0.dev26.dist-info/entry_points.txt,sha256=25BAVFSBRKWAWiXIGZgcr1ypt2mV7nj31Jl8WcNZZOk,51
17
- lockss_turtles-0.6.0.dev26.dist-info/licenses/LICENSE,sha256=O9ONND4uDxY_jucI4jZDf2liAk05ScEJaYu-Al7EOdQ,1506
18
- lockss_turtles-0.6.0.dev26.dist-info/RECORD,,
14
+ lockss_turtles-0.6.0.post1.dist-info/METADATA,sha256=CJlHLha0_t2PjoQDkViHdxuYdh7dy_CpP0XcK_TwvmA,2391
15
+ lockss_turtles-0.6.0.post1.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
16
+ lockss_turtles-0.6.0.post1.dist-info/entry_points.txt,sha256=25BAVFSBRKWAWiXIGZgcr1ypt2mV7nj31Jl8WcNZZOk,51
17
+ lockss_turtles-0.6.0.post1.dist-info/licenses/LICENSE,sha256=O9ONND4uDxY_jucI4jZDf2liAk05ScEJaYu-Al7EOdQ,1506
18
+ lockss_turtles-0.6.0.post1.dist-info/RECORD,,
@@ -259,6 +259,12 @@ class TestPluginRegistryLayer(PydanticTestCase):
259
259
  for valid in self.valid:
260
260
  self.assertEqual(valid.get_plugin_registry(), self.fake_plugin_registry)
261
261
 
262
+ def test_path_dot_works(self) -> None:
263
+ prl = PluginRegistryLayer(id='mylayer',
264
+ name='My Layer',
265
+ path='.').initialize(self.fake_plugin_registry)
266
+ self.assertEqual(prl.get_path(), ROOT)
267
+
262
268
 
263
269
  class TestPluginRegistry(PydanticTestCase):
264
270