opex-manifest-generator 1.2.1__py3-none-any.whl → 1.2.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.
@@ -20,7 +20,34 @@ import configparser
20
20
 
21
21
  class OpexManifestGenerator():
22
22
  """
23
- A Tool for Generating Opexes
23
+ A tool for recusrively generating Opex files for files / directories for use in uploading to Preservica and other OPEX conformin systems.
24
+
25
+ :param root: the directory to generate opexes for
26
+ :param output_path: set the output path for geerated metadata (not opexes)
27
+ :param meta_dir_flag: set whether to generate a 'meta' directory
28
+ :param metadata_flag: set whether to incorporate metadata into opex
29
+ :param metadata_dir: set the metadata directory to pull xml data from
30
+ :param autoclass_flag: set whether to generate an auto classification reference using auto_class. Has a number of 'modes' {catalog, accession, both, generic}
31
+ :param prefix: set a prefix to append to generated references
32
+ :param accession_mode: if using accession in autoclass_flag set the mode to count {file, folder, both}
33
+ :param acc_prefix: set an accession prefix
34
+ :param startref: set to set the starting reference number
35
+ :param algorithm: set whether to generate fixities and the algorithm to use {MD5, SHA-1, SHA-256, SHA-512}
36
+ :param empty_flag: set whether to delete and log empty directories
37
+ :param remove_flag: set whether to enable removals; data must also contain removals column and cell be set to True
38
+ :param clear_opex_flag: set whether clear existing opexes
39
+ :param export_flag: set whether to export the spreadsheet when using autoclass
40
+ :param output_format: set output format when using autoclass {xlsx, csv}
41
+ :param input: set whether to use an AutoClass spreadsheet / dataframe to establish data.
42
+ :param zip_flag: set whether to zip files and opexes together
43
+ :param hidden_flag: set to include hidden files/directories
44
+ :param print_xmls_flag: set to print all
45
+ :param options_file: set to specify options file
46
+ :param keywords: set to replace numbers in reference with alphabetical characters, specified in list or all if unset
47
+ :param keywords_mode: set to specify keywords mode [intialise, firstletters]
48
+ :param keywords_retain_order: set to continue counting reference, if keyword is used, skips numbers if not
49
+ :param sort_key: set the sort key, can be any valid function for sorted
50
+ :param keywords_abbreviation: set int for number of characters to abbreviate to for keywords mode
24
51
  """
25
52
  def __init__(self,
26
53
  root: str,
@@ -479,7 +506,6 @@ class OpexDir(OpexManifestGenerator):
479
506
  self.removal = self.OMG.remove_df_lookup(self.folder_path, self.OMG.remove_list, index)
480
507
  if self.removal:
481
508
  return
482
- print(self.removal)
483
509
  self.xmlroot = ET.Element(f"{{{self.opexns}}}OPEXMetadata", nsmap={"opex":self.opexns})
484
510
  self.transfer = ET.SubElement(self.xmlroot, f"{{{self.opexns}}}Transfer")
485
511
  self.manifest = ET.SubElement(self.transfer, f"{{{self.opexns}}}Manifest")
@@ -0,0 +1,400 @@
1
+ Metadata-Version: 2.1
2
+ Name: opex_manifest_generator
3
+ Version: 1.2.2
4
+ Summary: Opex Manifest Generator Tool for use with Opex / Preservica
5
+ Author-email: Christopher Prince <c.pj.prince@gmail.com>
6
+ Project-URL: Homepage, https://github.com/CPJPRINCE/opex_manifest_generator
7
+ Project-URL: Issues, https://github.com/CPJPRINCE/opex_manifest_generator/issues
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: License :: OSI Approved :: Apache Software License
10
+ Classifier: Operating System :: OS Independent
11
+ Classifier: Topic :: System :: Archiving
12
+ Description-Content-Type: text/markdown
13
+ License-File: LICENSE.md
14
+ Requires-Dist: auto_classification_generator
15
+ Requires-Dist: pandas
16
+ Requires-Dist: openpyxl
17
+ Requires-Dist: lxml
18
+
19
+ # Opex Manifest Generator Tool
20
+
21
+ The Opex Manifest Generator is a Python programme for generating OPEX files for use with Preservica and system's compatible with the OPEX standard. It will recursively go through a 'root' directory and generate an OPEX files for each folder or, depending on specified options, files.
22
+
23
+ ## Why use this tool?
24
+
25
+ This tool was primarily intended to allow users, to undertake larger uploads safely utilising bulk ingests, utilising the Opex Ingest Workflow, with Folder Manifest's checked to ensure safe transfer. However, it has been tested as functioning with:
26
+ - Bulk / Opex Ingest Workflow
27
+ - PUT Tool / Auto Ingest Workflows
28
+ - Manual Ingest
29
+ - Starter/UX2 Ingest uploads (Both File and Folder)
30
+
31
+ ## Features
32
+
33
+ There are a number of features including:
34
+ - Generating Fixities for files, with SHA1, MD5, SHA256, SHA512 (Default is SHA1)
35
+ - OPEX's can also be cleared, for repeated / ease of use.
36
+ - OPEX's can be zipped with the file, for imports use with Starter/UX2/Manual ingest methods
37
+
38
+ The Program also makes use of the Auto Classification Generator, allowing for:
39
+ - Reference's can be automatically generated and embedded into the Opex, with assignable prefixes.
40
+ - This can utilise either the Catalog or Accession mode, or both!
41
+ - Clear and log empty folders.
42
+
43
+ A key feature of the program, is that the Auto Class spreadsheet can also act as an input, meaning you can utilise the generated spreadsheet to assign metadata to your files and folders. Currently this allows:
44
+ - Assignment of title, description, and security status fields.
45
+ - Assignment of standard and custom xml metadata templates. \**Custom XML's require a small bit of setup*
46
+ - These fields are all 'drop-in', so only the fields as they are required need to be added.
47
+
48
+ All these features can be combined to create extensive and robust Opex files for transfer.
49
+
50
+ ## Prerequisites
51
+
52
+ Python Version 3.8+ is recommended; the program is OS independent and works on Windows, MacOS and Linux.
53
+
54
+ The following modules are utilised and installed with the package:
55
+ - auto_classification_generator
56
+ - pandas
57
+ - openpyxl
58
+ - lxml
59
+
60
+ ## Installation
61
+
62
+ To install the package, simply run: `pip install -U opex_manifest_generator`
63
+
64
+ ## Usage
65
+
66
+ ### Folder Manifest Generation
67
+
68
+ The basic version of the program will generate only folder manifests, this acts recursively, so every folder within that folder will have an Opex generated.
69
+
70
+ To run open up a terminal and run the command:
71
+
72
+ `opex_generate "{path/to/your/folder}"`
73
+
74
+ Replacing `{path/to/your/folder}` with your folder path in quotations; for instance, on Windows this looks like:
75
+
76
+ `opex_generate "C:\Users\Christopher\Downloads"`
77
+
78
+ ### Fixity Generation
79
+
80
+ To generate a fixity for each file within a given folder and add it to the Opex, you can use the `-fx` option.
81
+
82
+ `opex_generate "C:\Users\Christopher\Downloads\" -fx`
83
+
84
+ By default this will run with the SHA-1 algorithm. To utilise a different algorithm, specify it like so:
85
+
86
+ `opex_generate "C:\Users\Christopher\Downloads\" -fx SHA-256`
87
+
88
+ You can utilise MD5, SHA-1, SHA-256, SHA-512 algorithms.
89
+
90
+ ### Zipping
91
+
92
+ You can also utilise the zip option to bundle the opex and content into a zip file. For use with manual ingests or for Starter / UX2 users.
93
+
94
+ `opex_generate "C:\Users\Christopher\Downloads\" -fx SHA-1 -z`
95
+
96
+ Currently, no files will be removed after the zipping. Be aware that running this command multiple times in row will break existing Opex's.
97
+
98
+ ### Clearing Opex's
99
+
100
+ Mistakes happen! The clear option will remove all existing Opex's in a directory.
101
+
102
+ `opex_generate "C:\Users\Christopher\Downloads\" -clr`
103
+
104
+ Running this command with no additional options will end the program after clearing the Opex's; if other options are enabled it will proceed with the generation of those Opex's.
105
+
106
+ ### Removing Empty Directories
107
+
108
+ You can also clear any empty directories from the by using `--remove-empty` option. This will remove any empty directories and generate a simple text document with a list of all the directories that were removed. This process is not reversible and you will be asked to confirm your choice.
109
+
110
+ ## Filtering
111
+
112
+ Currently 2 filters are applied to certain files / folders:
113
+
114
+ 1) Hidden directories / files, either by Flag in Windows or starting with '.' in MacOS / Linux, are not included.
115
+ 2) Folder's titled 'meta' are not included.
116
+
117
+ Hidden files and directories can be included by utilising the `--hidden` option.
118
+
119
+ meta folders will always be generated automatically when used with the Fixity and Clearing Empty Directories options; meta directories are also created when using the Auto Classification Generator. You can redirect the path using the `-o` option:
120
+
121
+ `-o {/path/to/meta/output}`
122
+
123
+ ## Use with the Auto Classification Generator
124
+
125
+ The Opex Manifest generator becomes much more powerful when utilised with another tool: the Auto Classification Generator, see [here](https://github.com/CPJPRINCE/auto_classification_generator) for further details.
126
+
127
+ This is built-in to the Opex Manifest Generator and can be utilised to embed identifiers and metadata directly to an Opex or through the use of an Excel spreadsheet or CSV file.
128
+
129
+ The Opex Manifest Generator makes use of the auto_class_generator as a module, therefore it's behaviour differs somewhat when compared to utilising the standalone command `auto_class.exe`.
130
+
131
+ ### Auto Classification - Code Generation
132
+
133
+ To generate an auto classification code, call on `-c` option with `catalog` choice. You can also assign a prefix using `-p "ARCH"`:
134
+
135
+ `opex_generate -c catalog -p "ARCH" C:\Users\Christopher\Downloads`
136
+
137
+ This will generate Opex's with an identifier `code` for each of the files / folders. As described in the Auto Class module, the reference codes will take the hierarchy of the directories. You can also use the `-s` option to set a starting reference.
138
+
139
+ You can alternatively utilise the "Accession" / running number mode of generating a code using `-c accession` with the prefix "2024". *Accession is currently hard-coded to use the "File" mode*:
140
+
141
+ `opex_generate -c accession -p "2024" C:\Users\Christopher\Downloads`
142
+
143
+ Alternatively you can do both Catalogue / Accession at the same time:
144
+
145
+ `opex_generate -c both -p "ARCH" "2024" C:\Users\Christopher\Downloads`
146
+
147
+ To note: when using the `catalog` option, the key `code` is always used by default. When using `accession` the default key is `accref`. This is currently not adjustable, see [here](#XIP-Metadata---Identifiers) for utilising other keys.
148
+
149
+ It's possible to also create a `generic` set of metadata which will take the XIP metadata for the Title and Description fields, from the basename of the folder/file. It will also set the Security Status to "open".
150
+
151
+ `opex_generate -c generic C:\Users\Christopher\Downloads`
152
+
153
+ You can combine the generic options with `catalog, accession, both` to generate an identifier alongside generic data.
154
+
155
+ ## Auto Classification - Spreadsheet as an Input Override
156
+
157
+ This program also supports utilising an Auto Class spreadsheet as an input override, utilising the data added into said spreadsheet, instead of generating them ad hoc.
158
+
159
+ In this way, metadata can be set on XIP Metadata fields, including:
160
+ - Title
161
+ - Description
162
+ - Security Status
163
+ - Identifiers
164
+ - SourceID
165
+
166
+ As well as XML metadata templates, including the default templates and custom templates.
167
+
168
+ ### XIP metadata - Title, Description and Security Status
169
+
170
+ To use an input override, we need to first create a spreadsheet with the path of. You can utilise the `auto_class` tool installed alongside the Opex Generator.
171
+
172
+ `auto_class -p "ARCH" "C:\Users\Christopher\Downloads"`
173
+
174
+ In the resultant spreadsheet, add in "Title", "Description", and "Security" as new columns. The column headers have to match exactly, and are case-sensitive; these fields would then be filled in with the relevant data.
175
+
176
+ ![ScreenshotXIPColumns](assets/Column%20Headers.png)
177
+
178
+ Once the cells are filled in with data; to initialise the generation run: `opex_generate -i "{/path/to/your/spreadsheet.xlsx}" "{/path/to/root/directory}"`
179
+
180
+ Ensure that the root directory matches the original directory of the export. In the above case this would be: `opex_generate -i "C:\Users\Christopher\Downloads\meta\Downloads_AutoClass.xlsx" "C:\Users\Christopher\Downloads"`
181
+
182
+ The column headers are drop-in, drop-out, meaning you can the columns as and when you need them. You can also leave blank data,the cell you leave blank will simply not these will not be assigned.
183
+
184
+ When assigning the `Security` field, the tag must be a match to an existing tag in your system. This is case-sensitive, so "Closed" will NOT match to a tag called "closed".
185
+
186
+ ### Important Note
187
+
188
+ If there are any changes to the hierarchy data, such as a file/folder (not including a 'meta' folder) being removed or added after the export of the spreadsheet, the data may not be assigned correctly, or it may be assigned as "ERROR", or the program may simply fail.
189
+
190
+ ### XIP Metadata - Identifiers
191
+
192
+ Custom Identifiers can be added by adding the columns: `"Archive_Reference", "Accession_Reference", "Identifier", or "Identifer:Keyname"`.
193
+
194
+ ![Identifier Screenshot](assets/Identifiers%20Headers.png)
195
+
196
+ `Archive_Reference` or `Identifier` will default to the keyname `code`; `Accession_Reference` will default to `accref`. When using the Auto Classification Generator it will always generate a column called `Archive_Reference`, but you can simply rename or remove this column as neccessary.
197
+
198
+ To add a custom identifier import, do so like: `Identifier:MyCodeName`. As many identifier's as needed can be added.
199
+
200
+ No additional parameter's need to be set in the command line when using Identifier's, addition is enabled by default. Leaving a cell blank will use Preservica's defaults.
201
+
202
+ ### XIP Metadata - Hashes
203
+
204
+ If you utilise the Auto Classification's tool for generating Hashes; when utilising the `-fx` option in combination with `-i`, if the columns `Hash` and `Algorithm` are both present the program will read the hashes from the spreadsheet instead of generating them.
205
+
206
+ ![Hash Screenshot](assets/Hash%20Headers.png)
207
+
208
+ *Be aware that interruption / resuming is not currently supported with the Auto Class Tool.
209
+
210
+ ### XML Metadata - Basic Templates
211
+
212
+ DC, MODS, GPDR, and EAD templates are supported alongside installation of the package.
213
+
214
+ After exporting an Auto Class spreadsheet, add in additional columns to the spreadsheet; like the XIP data, all fields are optional, and can added on a 'drop-in' basis.
215
+
216
+ ![XML Headers](assets/XML%20Headers.png)
217
+
218
+ You can add in the column header in two ways: *'exactly'* or *'flatly'*. (There are probably better words to describe this behaviour)
219
+
220
+ An Exactly match requires that the full path from the XML document is added to the column, with parent to child separated by a `/`; 'flatly' requires only the matching end tag.
221
+
222
+ To give an example, the below will match to the same `recordIdentifer` field in the mods template:
223
+
224
+ ```
225
+ Exactly:
226
+ mods:recordInfo/mods:recordIdentifier
227
+
228
+ Flatly:
229
+ mods:recordIdentifier
230
+ ```
231
+
232
+ In both cases, the header has to match both the namespace and tag. This is also case sensitive.
233
+
234
+ While using the flat method is easier, be aware that if there's non-unique tags, such as `mods:note`, the flat method will only import to the first match, which might not be it's intended destination.
235
+
236
+ When using the 'exactly' and you have non-unique tags, again such as `mods:note`, you will need add an index in square brackets `[0]` to indicate which tag to assign the data to, like: `mods:note[1] mods:notes[2] ...` The number of field will simply be the order they appear in the XML.
237
+
238
+ This is all probably easier done, than said :\). For convenience I've also included full templates for DC, MODS, GDPR and EAD, with their explicit names in the headers [here](opex_manifest_generator/samples/spreads).
239
+
240
+ Once you have added in your headers and the necessary data to create the OPEX's simply add `-m` with the chosen method of import `flat|exact`, so:
241
+ `opex_generate -i "{/path/to/your/spreadsheet.xlsx}" "{/path/to/root/directory}" -m flat` or
242
+ `opex_generate -i "{/path/to/your/spreadsheet.xlsx}" "{/path/to/root/directory}" -m exact`
243
+
244
+ Be aware that when you add an XML Metadata column to the spreadsheet, it will always add the entire metadata template to the OPEX - even if all the cells are left blank. As this is a useful function (adding blank templates to your import), I will leave this for now, but may adjust this in the future.
245
+
246
+ ### XML Metadata Templates - Custom Templates
247
+
248
+ Any custom XML template can be added to the 'metadata' folder in the installation directory. As long as the XML template is functioning in Preservica, it will work 'out of the box'. All XML's in the directory are checked when enabling the `-m` option.
249
+
250
+ The location of this will depend on the install path utilising by Python; typically it will be under `/path/to/ptyhoninstall/Lib/site-packages/opex_manifest_generator/metadata`
251
+
252
+ *In the future I will likely allow the destination of this directory to be set by an option or adjustable, for ease of use.*
253
+
254
+ Then in the spreadsheet you simply need to add matching column headers - you can utilise either flat or exact methods as described above.
255
+
256
+ ### Custom Spreadsheets - Quick Note
257
+
258
+ You technically don't have to utilise the AutoClass tool at all. Any old spreadsheet will do!
259
+
260
+ The only requirement to use the input override, is the presence of the `FullName` column. With an accurate list of paths.
261
+
262
+ ![FullName Column](assets/FullName%20Column.png)
263
+
264
+ Other columns can be added or removed as needed.
265
+
266
+ #### Additional Information
267
+
268
+ A SourceID can also be set by adding a `SourceID` header. The behaviour of this is not fully tested yet.
269
+
270
+ Ignoring Files can also be set by adding an `Ignore` header. When this is set to `TRUE` this will skip the generation of an Opex for the specified File or Folder; when done for folder's, the folder Opex will still include any ignored file's in its manifest.
271
+
272
+ Removing Files or Folders is also possible, by adding a `Removals` header. When this is set to `TRUE`, the specified File or Folder will be removed from the system. As a safeguard this must be enabled by adding the parameter `-rm, --remove`, and confirming. *Currently this process is failing...*
273
+
274
+ To note when importing a column for an XML Metadata template that needs to be a boolean IE `TRUE/FALSE`. Please ensure that no cells are left blank, otherwise these may be imported inaccurately as `1.0` or `0.0`. This is a pandas issue, that I'm not sure how to fix... :/
275
+
276
+ ## Options
277
+
278
+ The following options are currently available to run the program with, and can be utilised in various combinations with each other, although some combinations will clash:
279
+
280
+ ```
281
+ Options:
282
+ -h, --help Show Help dialog
283
+
284
+ -v, --version Display version information [boolean]
285
+
286
+ Opex Options:
287
+
288
+ -fx, --fixity Generate a Fixity Check for files. [boolean]
289
+
290
+ -alg --algorithm Set to specify which algorithm to use {SHA-1,MD5,SHA-256,SHA-512}
291
+ for fixity. Defaults to SHA-1.
292
+
293
+ -clr, --clear-opex Will remove all existing Opex folders, [boolean]
294
+ When utilised with no other options, will end
295
+ the program.
296
+
297
+ -z, --zip Will zip the Opex's with the file itself to create [boolean]
298
+ a zip file. Existing file's are currently not removed.
299
+ ***Use with caution, repeating the command multiple
300
+ times in a row, will break the Opex's.
301
+
302
+ --hidden Will generate Opex's for hidden files and directories [boolean]
303
+
304
+ -rm, --remove Will enable removals from a spreadsheet import [boolean]
305
+ *Currently Failing do not use*
306
+
307
+ Auto Classification Options:
308
+
309
+ -c, --autoclass This will utilise the AutoClassification {catalog, accession, both, generic,
310
+ module to generate an Auto Class spreadsheet. catalog-generic, accesison-generic,
311
+ both-generic}
312
+ There are several options, {catalog} will generate
313
+ a Archival Reference following; {accession}
314
+ will create a running number of files
315
+ (Currently this is not configurable).
316
+ {both} will do Both!
317
+ {generic} will populate the Title and
318
+ Description fields with the folder/file's name,
319
+ if used in conjunction with one of the above options:
320
+ {generic-catalog,generic-accession, generic-both}
321
+ it will do both simultaneously.
322
+ For more details on these see [here](https://github.com/CPJPRINCE/auto_classification_generator).
323
+
324
+ -p, --prefix Assign a prefix to the Auto Classification, [string]
325
+ when utilising {both} fill in like:
326
+ "catalog-prefix","accession-prefix".
327
+
328
+ -rme, --remove- Remove and log empty directories in a structure [boolean]
329
+ empty Log will bee exported to 'meta' / output folder
330
+
331
+ -o, --output Set's the output of the 'meta' folder when [string]
332
+ utilising AutoClass.
333
+
334
+ -s, --start-ref Sets the starting Reference in the Auto Class [int]
335
+ process.
336
+
337
+ -i --input Set whether to use an Auto Class spreadsheet as an [string]
338
+ input. The input needs to be the (relative or
339
+ absolute) path of the spreadsheet.
340
+
341
+ This allows for use of the Auto Class spreadsheet
342
+ to customise the XIP metadata (and custom xml
343
+ metadata).
344
+
345
+ The following fields have to be added to the
346
+ spreadsheet and titled exactly as:
347
+ Title, Description, Security.
348
+
349
+ -m --metadata Toggles use of the metadata import method. {none,flat,exact}
350
+ There are two methods utilised by this:
351
+ {none,exact,flat}. None ignores metadata import
352
+
353
+ Exact requires that the column names in the spread
354
+ sheet match exactly to the XML:
355
+ {example:path/example:to/example:thing}
356
+ Flat only requires the final tag match.
357
+ IE {example:thing}. However, for more complex sets
358
+ of metadata, Flat will not function correctly.
359
+ Enabled -m without specification will use exact,
360
+ method.
361
+
362
+ Use of metadata requires, an XML document to
363
+ be added to the metadata folder, see docs for
364
+ details (currently in site-packages *may change).
365
+
366
+ -dmd, --disable- Will, disable the creation of the meta. [boolean]
367
+ meta-dir Can also be enabled with output.
368
+
369
+ -ex --export Set whether to export the Auto Class, default [boolean]
370
+ behaviour will not create a new spreadsheet.
371
+
372
+ -fmt, --format Set whether to export as a CSV or XLSX file. {csv,xlsx}
373
+ Otherwise defaults to xlsx.
374
+
375
+ ```
376
+
377
+ ## Future Developments
378
+
379
+ - Customisable Filtering
380
+ - Adjust Accession so the different modes can utilised from Opex.
381
+ - Add SourceID as option for use with Auto Class Spreadsheets. *Added!*
382
+ - Allow for multiple Identifier's to be added with Auto Class Spreadsheets. Currently only 1 or 2 identifiers can be added at a time, under "Archive_Reference" or "Accesion_Refernce". These are also tied to be either "code" or "accref". An Option needs to be added to allow custom setting of identifier... *Added!*
383
+ - Zipping to conform to PAX
384
+ - Add an option / make it a default for Metadata XML's to be located in a specified directory rather than in the package.
385
+ - In theory, this tool should be compatible with any system that makes use of the OPEX standard. But in theory Communism works, in theory.
386
+
387
+ ## Developers
388
+
389
+ You should also be able to embed the program directly in Python. Though be warned I haven't tested this functionally much!
390
+
391
+ ```
392
+ from opex_manifest_generator import OpexManifestGenerator as OMG
393
+
394
+ OMG(root="/my/directory/path", algorithm = "SHA-256").main()
395
+
396
+ ```
397
+
398
+ ## Contributing
399
+
400
+ I welcome further contributions and feedback.
@@ -2,7 +2,7 @@ opex_manifest_generator/__init__.py,sha256=fsN-dLjNMn-AfjeG2jkryzIa69bY09B5xLTqW
2
2
  opex_manifest_generator/cli.py,sha256=Y8oo1CZzx_AXfXmjtBbhGgn3j53t2KgeBlB-5Pc_ZZI,12030
3
3
  opex_manifest_generator/common.py,sha256=vVDNlERDoI2WxEhpDYqnJC7oC9N1xQC2yxHjwuNus4Y,1895
4
4
  opex_manifest_generator/hash.py,sha256=mpLP-BqqDC7BuQQ5TEc4jaIBGabW-qVr128JaZq54mY,992
5
- opex_manifest_generator/opex_manifest.py,sha256=LcNp_4nqBBC-xiG6otDHufodCwTYmfxwhREa3WoBmVI,31734
5
+ opex_manifest_generator/opex_manifest.py,sha256=PnfdKSkmsNyM4JDwhd6187Xk-03ayEmEyN_wLpaiwT0,33971
6
6
  opex_manifest_generator/options.properties,sha256=UKERpUH6M6SWXbXN2XitbPd1FvT4LlCbLfoHbdWuDAQ,286
7
7
  opex_manifest_generator/metadata/DublinCore Template.xml,sha256=csNGXzSH27Whs4BQNuwMZl8nLSdDq7Y_OblTfzeBqWQ,775
8
8
  opex_manifest_generator/metadata/EAD Template.xml,sha256=OsWjUfKiLAsc1zqm56auyFSDYMuZpu6a49AFgqZNzlU,2167
@@ -14,9 +14,9 @@ opex_manifest_generator/samples/spreads/dctemplate.xlsx,sha256=R33CNcBK3s-KFYEhm
14
14
  opex_manifest_generator/samples/spreads/eadtemplate.xlsx,sha256=4lrP0LLZXwv73fl3fvqr7yqpdDJuRj2D4ZADQ4OS6Ps,19299
15
15
  opex_manifest_generator/samples/spreads/gdprtemplate.xlsx,sha256=3k6FpN6n83yF5wYd64Yy8Rxv2b1Z497icIB8UBGDW-M,18662
16
16
  opex_manifest_generator/samples/spreads/modstemplate.xlsx,sha256=5kNpp4Cju_POvnTrgFk34OJVe5yc6o3R4ZNX2TT8zAc,19509
17
- opex_manifest_generator-1.2.1.dist-info/LICENSE.md,sha256=WNHhf_5RCaeuKWyq_K39vmp9F28LxKsB4SpomwSZ2L0,11357
18
- opex_manifest_generator-1.2.1.dist-info/METADATA,sha256=aF1tEDBhWzVq3MpGiOJWJdwlhRlc8sEIv0r1wv07yZA,685
19
- opex_manifest_generator-1.2.1.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
20
- opex_manifest_generator-1.2.1.dist-info/entry_points.txt,sha256=WGMc3hWlqOsQ8DcTuy8-DyBbJKkWNImT4J1FasVDHts,70
21
- opex_manifest_generator-1.2.1.dist-info/top_level.txt,sha256=K48eGnaDLVO6YDJdAZLqbeoZvJHBGX25cvYT-i8gWt0,24
22
- opex_manifest_generator-1.2.1.dist-info/RECORD,,
17
+ opex_manifest_generator-1.2.2.dist-info/LICENSE.md,sha256=WNHhf_5RCaeuKWyq_K39vmp9F28LxKsB4SpomwSZ2L0,11357
18
+ opex_manifest_generator-1.2.2.dist-info/METADATA,sha256=Qbcdlen0RapZ70jjdAgxGFibfPGTj8LeXs9p4uS-K_s,21917
19
+ opex_manifest_generator-1.2.2.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
20
+ opex_manifest_generator-1.2.2.dist-info/entry_points.txt,sha256=WGMc3hWlqOsQ8DcTuy8-DyBbJKkWNImT4J1FasVDHts,70
21
+ opex_manifest_generator-1.2.2.dist-info/top_level.txt,sha256=K48eGnaDLVO6YDJdAZLqbeoZvJHBGX25cvYT-i8gWt0,24
22
+ opex_manifest_generator-1.2.2.dist-info/RECORD,,
@@ -1,16 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: opex_manifest_generator
3
- Version: 1.2.1
4
- Summary: Opex Manifest Generator Tool for use with Opex / Preservica
5
- Author-email: Christopher Prince <c.pj.prince@gmail.com>
6
- Project-URL: Homepage, https://github.com/CPJPRINCE/opex_manifest_generator
7
- Project-URL: Issues, https://github.com/CPJPRINCE/opex_manifest_generator/issues
8
- Classifier: Programming Language :: Python :: 3
9
- Classifier: License :: OSI Approved :: Apache Software License
10
- Classifier: Operating System :: OS Independent
11
- Classifier: Topic :: System :: Archiving
12
- License-File: LICENSE.md
13
- Requires-Dist: auto_classification_generator
14
- Requires-Dist: pandas
15
- Requires-Dist: openpyxl
16
- Requires-Dist: lxml