lockss-turtles 0.4.0.dev4__py3-none-any.whl → 0.5.0__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.
- CHANGELOG.rst +11 -1
- lockss/turtles/__init__.py +3 -3
- lockss/turtles/__main__.py +1 -1
- lockss/turtles/app.py +1 -1
- lockss/turtles/cli.py +1 -1
- lockss/turtles/plugin.py +10 -1
- lockss/turtles/plugin_registry.py +1 -1
- lockss/turtles/plugin_set.py +11 -5
- lockss/turtles/resources/__init__.py +1 -1
- lockss/turtles/util.py +1 -1
- {lockss_turtles-0.4.0.dev4.dist-info → lockss_turtles-0.5.0.dist-info}/LICENSE +1 -1
- {lockss_turtles-0.4.0.dev4.dist-info → lockss_turtles-0.5.0.dist-info}/METADATA +16 -12
- lockss_turtles-0.5.0.dist-info/RECORD +20 -0
- {lockss_turtles-0.4.0.dev4.dist-info → lockss_turtles-0.5.0.dist-info}/WHEEL +1 -1
- lockss_turtles-0.4.0.dev4.dist-info/RECORD +0 -20
- {lockss_turtles-0.4.0.dev4.dist-info → lockss_turtles-0.5.0.dist-info}/entry_points.txt +0 -0
CHANGELOG.rst
CHANGED
|
@@ -2,11 +2,21 @@
|
|
|
2
2
|
Release Notes
|
|
3
3
|
=============
|
|
4
4
|
|
|
5
|
+
-----
|
|
6
|
+
0.5.0
|
|
7
|
+
-----
|
|
8
|
+
|
|
9
|
+
Released: 2024-09-04
|
|
10
|
+
|
|
11
|
+
* **Features**
|
|
12
|
+
|
|
13
|
+
* ``AntPluginSet``: also include plugin auxiliary packages (``plugin_aux_packages``).
|
|
14
|
+
|
|
5
15
|
-----
|
|
6
16
|
0.4.0
|
|
7
17
|
-----
|
|
8
18
|
|
|
9
|
-
Released:
|
|
19
|
+
Released: 2023-05-17
|
|
10
20
|
|
|
11
21
|
* **Features**
|
|
12
22
|
|
lockss/turtles/__init__.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
|
|
3
|
-
# Copyright (c) 2000-
|
|
3
|
+
# Copyright (c) 2000-2024, Board of Trustees of Leland Stanford Jr. University
|
|
4
4
|
#
|
|
5
5
|
# Redistribution and use in source and binary forms, with or without
|
|
6
6
|
# modification, are permitted provided that the following conditions are met:
|
|
@@ -28,10 +28,10 @@
|
|
|
28
28
|
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
29
29
|
# POSSIBILITY OF SUCH DAMAGE.
|
|
30
30
|
|
|
31
|
-
__version__ = '0.
|
|
31
|
+
__version__ = '0.5.0'
|
|
32
32
|
|
|
33
33
|
__copyright__ = '''
|
|
34
|
-
Copyright (c) 2000-
|
|
34
|
+
Copyright (c) 2000-2024, Board of Trustees of Leland Stanford Jr. University
|
|
35
35
|
'''.strip()
|
|
36
36
|
|
|
37
37
|
__license__ = __copyright__ + '\n\n' + '''
|
lockss/turtles/__main__.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
|
|
3
|
-
# Copyright (c) 2000-
|
|
3
|
+
# Copyright (c) 2000-2024, Board of Trustees of Leland Stanford Jr. University
|
|
4
4
|
#
|
|
5
5
|
# Redistribution and use in source and binary forms, with or without
|
|
6
6
|
# modification, are permitted provided that the following conditions are met:
|
lockss/turtles/app.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
|
|
3
|
-
# Copyright (c) 2000-
|
|
3
|
+
# Copyright (c) 2000-2024, Board of Trustees of Leland Stanford Jr. University
|
|
4
4
|
#
|
|
5
5
|
# Redistribution and use in source and binary forms, with or without
|
|
6
6
|
# modification, are permitted provided that the following conditions are met:
|
lockss/turtles/cli.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
|
|
3
|
-
# Copyright (c) 2000-
|
|
3
|
+
# Copyright (c) 2000-2024, Board of Trustees of Leland Stanford Jr. University
|
|
4
4
|
#
|
|
5
5
|
# Redistribution and use in source and binary forms, with or without
|
|
6
6
|
# modification, are permitted provided that the following conditions are met:
|
lockss/turtles/plugin.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
|
|
3
|
-
# Copyright (c) 2000-
|
|
3
|
+
# Copyright (c) 2000-2024, Board of Trustees of Leland Stanford Jr. University
|
|
4
4
|
#
|
|
5
5
|
# Redistribution and use in source and binary forms, with or without
|
|
6
6
|
# modification, are permitted provided that the following conditions are met:
|
|
@@ -87,6 +87,15 @@ class Plugin(object):
|
|
|
87
87
|
if tag != 'map':
|
|
88
88
|
raise RuntimeError(f'{plugin_path!s}: invalid root element: {tag}')
|
|
89
89
|
|
|
90
|
+
def get_aux_packages(self):
|
|
91
|
+
key = 'plugin_aux_packages'
|
|
92
|
+
lst = [x[1] for x in self._parsed.findall('entry') if x[0].tag == 'string' and x[0].text == key]
|
|
93
|
+
if lst is None or len(lst) < 1:
|
|
94
|
+
return []
|
|
95
|
+
if len(lst) > 1:
|
|
96
|
+
raise ValueError(f'plugin declares {len(lst)} entries for {key}')
|
|
97
|
+
return [x.text for x in lst[0].findall('string')]
|
|
98
|
+
|
|
90
99
|
def get_identifier(self):
|
|
91
100
|
return self._only_one('plugin_identifier')
|
|
92
101
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
|
|
3
|
-
# Copyright (c) 2000-
|
|
3
|
+
# Copyright (c) 2000-2024, Board of Trustees of Leland Stanford Jr. University
|
|
4
4
|
#
|
|
5
5
|
# Redistribution and use in source and binary forms, with or without
|
|
6
6
|
# modification, are permitted provided that the following conditions are met:
|
lockss/turtles/plugin_set.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
|
|
3
|
-
# Copyright (c) 2000-
|
|
3
|
+
# Copyright (c) 2000-2024, Board of Trustees of Leland Stanford Jr. University
|
|
4
4
|
#
|
|
5
5
|
# Redistribution and use in source and binary forms, with or without
|
|
6
6
|
# modification, are permitted provided that the following conditions are met:
|
|
@@ -160,15 +160,21 @@ class AntPluginSet(PluginSet):
|
|
|
160
160
|
|
|
161
161
|
# Returns (jar_path, plugin)
|
|
162
162
|
def _little_build(self, plugin_id, keystore_path, keystore_alias, keystore_password=None):
|
|
163
|
-
|
|
163
|
+
orig_plugin = None
|
|
164
|
+
cur_id = plugin_id
|
|
164
165
|
# Get all directories for jarplugin -d
|
|
165
166
|
dirs = list()
|
|
166
|
-
cur_id = plugin_id
|
|
167
167
|
while cur_id is not None:
|
|
168
|
+
cur_plugin = self.make_plugin(cur_id)
|
|
169
|
+
orig_plugin = orig_plugin or cur_plugin
|
|
168
170
|
cur_dir = Plugin.id_to_dir(cur_id)
|
|
169
171
|
if cur_dir not in dirs:
|
|
170
172
|
dirs.append(cur_dir)
|
|
171
|
-
|
|
173
|
+
for aux_package in cur_plugin.get_aux_packages():
|
|
174
|
+
aux_dir = Plugin.id_to_dir(f'{aux_package}.FAKEPlugin')
|
|
175
|
+
if aux_dir not in dirs:
|
|
176
|
+
dirs.append(aux_dir)
|
|
177
|
+
cur_id = cur_plugin.get_parent_identifier()
|
|
172
178
|
# Invoke jarplugin
|
|
173
179
|
jar_fstr = Plugin.id_to_file(plugin_id)
|
|
174
180
|
jar_path = self.get_root_path().joinpath('plugins/jars', f'{plugin_id}.jar')
|
|
@@ -192,7 +198,7 @@ class AntPluginSet(PluginSet):
|
|
|
192
198
|
raise self._sanitize(cpe)
|
|
193
199
|
if not jar_path.is_file():
|
|
194
200
|
raise FileNotFoundError(str(jar_path))
|
|
195
|
-
return (jar_path,
|
|
201
|
+
return (jar_path, orig_plugin)
|
|
196
202
|
|
|
197
203
|
def _plugin_path(self, plugin_id):
|
|
198
204
|
return Path(self.get_main_path()).joinpath(Plugin.id_to_file(plugin_id))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
|
|
3
|
-
# Copyright (c) 2000-
|
|
3
|
+
# Copyright (c) 2000-2024, Board of Trustees of Leland Stanford Jr. University
|
|
4
4
|
#
|
|
5
5
|
# Redistribution and use in source and binary forms, with or without
|
|
6
6
|
# modification, are permitted provided that the following conditions are met:
|
lockss/turtles/util.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
|
|
3
|
-
# Copyright (c) 2000-
|
|
3
|
+
# Copyright (c) 2000-2024, Board of Trustees of Leland Stanford Jr. University
|
|
4
4
|
#
|
|
5
5
|
# Redistribution and use in source and binary forms, with or without
|
|
6
6
|
# modification, are permitted provided that the following conditions are met:
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Copyright (c) 2000-
|
|
1
|
+
Copyright (c) 2000-2024, Board of Trustees of Leland Stanford Jr. University
|
|
2
2
|
|
|
3
3
|
Redistribution and use in source and binary forms, with or without
|
|
4
4
|
modification, are permitted provided that the following conditions are met:
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: lockss-turtles
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.0
|
|
4
4
|
Summary: Tool to manage LOCKSS plugin sets and LOCKSS plugin registries
|
|
5
5
|
Home-page: https://www.lockss.org/
|
|
6
6
|
License: BSD-3-Clause
|
|
7
7
|
Author: Thib Guicherd-Callin
|
|
8
8
|
Author-email: thib@cs.stanford.edu
|
|
9
|
-
Requires-Python: >=3.
|
|
9
|
+
Requires-Python: >=3.8,<4.0
|
|
10
10
|
Classifier: Development Status :: 5 - Production/Stable
|
|
11
11
|
Classifier: Environment :: Console
|
|
12
12
|
Classifier: Intended Audience :: Developers
|
|
@@ -14,16 +14,16 @@ Classifier: Intended Audience :: System Administrators
|
|
|
14
14
|
Classifier: License :: OSI Approved :: BSD License
|
|
15
15
|
Classifier: Operating System :: POSIX :: Linux
|
|
16
16
|
Classifier: Programming Language :: Python :: 3
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.7
|
|
18
17
|
Classifier: Programming Language :: Python :: 3.8
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.9
|
|
20
19
|
Classifier: Programming Language :: Python :: 3.10
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
22
|
Classifier: Topic :: Utilities
|
|
23
23
|
Requires-Dist: java-manifest (>=1.1.0,<2.0.0)
|
|
24
|
-
Requires-Dist: jsonschema (>=4.
|
|
25
|
-
Requires-Dist: pyyaml (>=6.0,<7.0)
|
|
26
|
-
Requires-Dist: rich-argparse (>=1.
|
|
24
|
+
Requires-Dist: jsonschema (>=4.23.0,<5.0.0)
|
|
25
|
+
Requires-Dist: pyyaml (>=6.0.2,<7.0.0)
|
|
26
|
+
Requires-Dist: rich-argparse (>=1.5.2,<2.0.0)
|
|
27
27
|
Requires-Dist: tabulate (>=0.9.0,<0.10.0)
|
|
28
28
|
Requires-Dist: xdg (>=6.0.0,<7.0.0)
|
|
29
29
|
Project-URL: Repository, https://github.com/lockss/lockss-turtles
|
|
@@ -33,8 +33,8 @@ Description-Content-Type: text/x-rst
|
|
|
33
33
|
Turtles
|
|
34
34
|
=======
|
|
35
35
|
|
|
36
|
-
.. |RELEASE| replace:: 0.
|
|
37
|
-
.. |RELEASE_DATE| replace::
|
|
36
|
+
.. |RELEASE| replace:: 0.5.0
|
|
37
|
+
.. |RELEASE_DATE| replace:: 2024-09-04
|
|
38
38
|
|
|
39
39
|
.. |HELP| replace:: ``--help/-h``
|
|
40
40
|
.. |IDENTIFIER| replace:: ``--identifier/-i``
|
|
@@ -49,6 +49,10 @@ Turtles
|
|
|
49
49
|
.. |PRODUCTION| replace:: ``--production/-p``
|
|
50
50
|
.. |TESTING| replace:: ``--testing/-t``
|
|
51
51
|
|
|
52
|
+
.. image:: https://assets.lockss.org/images/logos/turtles/turtles_128x128.png
|
|
53
|
+
:alt: Turtles logo
|
|
54
|
+
:align: right
|
|
55
|
+
|
|
52
56
|
Turtles is a tool to manage LOCKSS plugin sets and LOCKSS plugin registries.
|
|
53
57
|
|
|
54
58
|
**Latest release:** |RELEASE| (|RELEASE_DATE|)
|
|
@@ -830,7 +834,7 @@ The command needs:
|
|
|
830
834
|
|
|
831
835
|
* A `Plugin Registry Catalog`_, either from the |PLUGIN_REGISTRY_CATALOG| option or from ``plugin-signing-credentials.yaml`` in the `Configuration Files`_.
|
|
832
836
|
|
|
833
|
-
* One or more plugin registry layer IDs, from the `Plugin Registry Layer Options`_ (|
|
|
837
|
+
* One or more plugin registry layer IDs, from the `Plugin Registry Layer Options`_ (|LAYER| options, |LAYERS| options, and alternatively, |TESTING| options, |PRODUCTION| option).
|
|
834
838
|
|
|
835
839
|
* One or more JAR paths. The list of JAR paths to process is derived from:
|
|
836
840
|
|
|
@@ -880,7 +884,7 @@ The ``license`` command displays the license terms for Turtles and exits.
|
|
|
880
884
|
``release-plugin`` (``rp``)
|
|
881
885
|
---------------------------
|
|
882
886
|
|
|
883
|
-
The ``release-plugin`` command is used for `Building Plugins`_ and `Deploying Plugins
|
|
887
|
+
The ``release-plugin`` command is used for `Building Plugins`_ and `Deploying Plugins`_, being essentially `build-plugin`_ followed by `deploy-plugin`_. It has its own |HELP| option::
|
|
884
888
|
|
|
885
889
|
usage: turtles release-plugin [-h] [--output-format FMT] [--password PASS]
|
|
886
890
|
[--plugin-registry-catalog FILE]
|
|
@@ -1020,9 +1024,9 @@ Plugin Registry Layer Options
|
|
|
1020
1024
|
|
|
1021
1025
|
Commands that are `Deploying Plugins`_ expect one or more plugin registry layer IDs. The list of plugin registry layer IDs to target is derived from:
|
|
1022
1026
|
|
|
1023
|
-
* The plugin registry layer IDs listed as |
|
|
1027
|
+
* The plugin registry layer IDs listed as |LAYER| options.
|
|
1024
1028
|
|
|
1025
|
-
* The plugin registry layer IDs found in the files listed as |
|
|
1029
|
+
* The plugin registry layer IDs found in the files listed as |LAYERS| options.
|
|
1026
1030
|
|
|
1027
1031
|
As a convenience, the following synonyms also exist:
|
|
1028
1032
|
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
CHANGELOG.rst,sha256=7nWZAeg0Ooyve3gLiI1lQ42GcnYuTSZcc3G-11nQxPU,3316
|
|
2
|
+
lockss/turtles/__init__.py,sha256=imcQSoXnByEwC0TXwaFQ59Vns2ykHea9ZVERCPquI_g,3196
|
|
3
|
+
lockss/turtles/__main__.py,sha256=JgPPcV-BFhP8oR9FM3VyfHhlhNvBPM3Udzy7AJ_3-bQ,1633
|
|
4
|
+
lockss/turtles/app.py,sha256=RUdFtivrEUl7atjOTE8NHJKk4VwFZ7-ZWmrFshdtWCI,9074
|
|
5
|
+
lockss/turtles/cli.py,sha256=XAt7fqmOLlkX6aFulHiDjPrRKRnkL0quThc9KEPDhPc,22476
|
|
6
|
+
lockss/turtles/plugin.py,sha256=W929mPGcFIb2X2VoV3C5bRZOf2JMIs25of0MO80rCSk,4709
|
|
7
|
+
lockss/turtles/plugin_registry.py,sha256=naTX2O1lV_107gdG7fFQd7G_UWz0aKNB56nX80paFHY,9441
|
|
8
|
+
lockss/turtles/plugin_set.py,sha256=ZwMAJFx8xFdeki6XIp31u8fEa1vzBa9e6fRQSSENYX8,10776
|
|
9
|
+
lockss/turtles/resources/__init__.py,sha256=uEuqtibBLM9fuwA_xFvzUmLRJsSoVrW-2YM8iyBiLuE,1579
|
|
10
|
+
lockss/turtles/resources/plugin-registry-catalog-schema.json,sha256=etH0ytEXTw1QFFRaxJySCNX9fWP63BXo8n91Snv5Yjc,685
|
|
11
|
+
lockss/turtles/resources/plugin-registry-schema.json,sha256=dvNSxkU0McAe-fYIYBMJ9ezBvRSAW3kvhCcfESq5BrY,2766
|
|
12
|
+
lockss/turtles/resources/plugin-set-catalog-schema.json,sha256=UbB0BCd9jdROGyXf2pZg4GV4lxToM9uBgN5WVyndK4w,650
|
|
13
|
+
lockss/turtles/resources/plugin-set-schema.json,sha256=EeptOiipJdWwfLIxUHXap59Hbq32UXzT2MpI2eADM1U,2338
|
|
14
|
+
lockss/turtles/resources/plugin-signing-credentials-schema.json,sha256=VLld14jOMG8V_ru0jtQD5GunNDNLp2MoRGMSZg9xVn8,753
|
|
15
|
+
lockss/turtles/util.py,sha256=F7t7MH4XRbgybe1x2N0beVNl3M_oGP0hOHFy65I06KQ,2430
|
|
16
|
+
lockss_turtles-0.5.0.dist-info/LICENSE,sha256=JX4FmVNVAGpW35lQahPhK_o2W1mwRa1TmA3yrSOyNWg,1506
|
|
17
|
+
lockss_turtles-0.5.0.dist-info/METADATA,sha256=51rjDbXSGqwftgb4p-2k2LmOp5I0rN9jDWX9iWuzQTk,39523
|
|
18
|
+
lockss_turtles-0.5.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
|
19
|
+
lockss_turtles-0.5.0.dist-info/entry_points.txt,sha256=25BAVFSBRKWAWiXIGZgcr1ypt2mV7nj31Jl8WcNZZOk,51
|
|
20
|
+
lockss_turtles-0.5.0.dist-info/RECORD,,
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
CHANGELOG.rst,sha256=Lv-bS9-c4dtclJrtlNr8HymmhR283_WgqERmG-Qqg8A,3158
|
|
2
|
-
lockss/turtles/__init__.py,sha256=HAsIzJRsUX8X882RVGjPsPcQhq9bDokO6GJU2-Dw5e4,3201
|
|
3
|
-
lockss/turtles/__main__.py,sha256=57NMiI-NAibLExMX0Y6QApQhaDUblHTQqCDSiWBVt6k,1633
|
|
4
|
-
lockss/turtles/app.py,sha256=X6AoOPPJEKrhcT9kwNXp7J7XO3KLoXdLdozgKf49Ajw,9074
|
|
5
|
-
lockss/turtles/cli.py,sha256=yZqmRrGSY_4aMAv6nvx-ax6Lab_ckoNg1BVsOuoGm1U,22476
|
|
6
|
-
lockss/turtles/plugin.py,sha256=ewDT3d_QPKnQqO_zuiD2XQaDcJSzoVDPylmFPe_OELU,4312
|
|
7
|
-
lockss/turtles/plugin_registry.py,sha256=cgsGSlhNnAuJUOnPeHxRMkJdI_Wmha79Z2cG_Lpq_lw,9441
|
|
8
|
-
lockss/turtles/plugin_set.py,sha256=jB8fGMwsYdXcZab_GRcvTahVCnjW94AkyWeHlgg7qLc,10486
|
|
9
|
-
lockss/turtles/resources/__init__.py,sha256=qHJYdSSUBYvd4Ib_RPqN0P5G2nHFYrf9UqLsHaN0J8U,1579
|
|
10
|
-
lockss/turtles/resources/plugin-registry-catalog-schema.json,sha256=etH0ytEXTw1QFFRaxJySCNX9fWP63BXo8n91Snv5Yjc,685
|
|
11
|
-
lockss/turtles/resources/plugin-registry-schema.json,sha256=dvNSxkU0McAe-fYIYBMJ9ezBvRSAW3kvhCcfESq5BrY,2766
|
|
12
|
-
lockss/turtles/resources/plugin-set-catalog-schema.json,sha256=UbB0BCd9jdROGyXf2pZg4GV4lxToM9uBgN5WVyndK4w,650
|
|
13
|
-
lockss/turtles/resources/plugin-set-schema.json,sha256=EeptOiipJdWwfLIxUHXap59Hbq32UXzT2MpI2eADM1U,2338
|
|
14
|
-
lockss/turtles/resources/plugin-signing-credentials-schema.json,sha256=VLld14jOMG8V_ru0jtQD5GunNDNLp2MoRGMSZg9xVn8,753
|
|
15
|
-
lockss/turtles/util.py,sha256=g3pGADgnmaQce3pNrpA1VjuSlNUJUAITyPyM6pNdVOA,2430
|
|
16
|
-
lockss_turtles-0.4.0.dev4.dist-info/LICENSE,sha256=ArAnVWK-WhSxCVQWDF_PWBETwjSZ35HfugnUJPqPXyg,1506
|
|
17
|
-
lockss_turtles-0.4.0.dev4.dist-info/METADATA,sha256=n4mSaXLXMA64gx4Ig88A7DJokrqJWwd1oJjHP9U1pXs,39406
|
|
18
|
-
lockss_turtles-0.4.0.dev4.dist-info/WHEEL,sha256=7Z8_27uaHI_UZAc4Uox4PpBhQ9Y5_modZXWMxtUi4NU,88
|
|
19
|
-
lockss_turtles-0.4.0.dev4.dist-info/entry_points.txt,sha256=25BAVFSBRKWAWiXIGZgcr1ypt2mV7nj31Jl8WcNZZOk,51
|
|
20
|
-
lockss_turtles-0.4.0.dev4.dist-info/RECORD,,
|
|
File without changes
|