opex-manifest-generator 1.3.3__tar.gz → 1.3.5__tar.gz
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.
- opex_manifest_generator-1.3.5/.github/workflows/build portable.yml +217 -0
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/.github/workflows/codeql.yml +35 -6
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/.github/workflows/pypi-publish.yml +8 -1
- opex_manifest_generator-1.3.5/.github/workflows/python-tests.yml +42 -0
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/PKG-INFO +3 -1
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/opex_manifest_generator/cli.py +134 -43
- opex_manifest_generator-1.3.5/opex_manifest_generator/common.py +91 -0
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/opex_manifest_generator/hash.py +30 -14
- opex_manifest_generator-1.3.5/opex_manifest_generator/opex_manifest.py +1004 -0
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/opex_manifest_generator.egg-info/PKG-INFO +3 -1
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/opex_manifest_generator.egg-info/SOURCES.txt +5 -1
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/opex_manifest_generator.egg-info/requires.txt +3 -0
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/pyproject.toml +8 -2
- opex_manifest_generator-1.3.5/pytest.ini +19 -0
- opex_manifest_generator-1.3.5/tests/test_opex_manifest.py +316 -0
- opex_manifest_generator-1.3.3/opex_manifest_generator/common.py +0 -79
- opex_manifest_generator-1.3.3/opex_manifest_generator/opex_manifest.py +0 -782
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/.gitignore +0 -0
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/LICENSE.md +0 -0
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/README.md +0 -0
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/assets/Column Headers.png +0 -0
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/assets/FullName Column.png +0 -0
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/assets/Hash Headers.png +0 -0
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/assets/Identifiers Headers.png +0 -0
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/assets/XML Headers.png +0 -0
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/opex_manifest_generator/__init__.py +0 -0
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/opex_manifest_generator/metadata/DublinCore Template.xml +0 -0
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/opex_manifest_generator/metadata/EAD Template.xml +0 -0
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/opex_manifest_generator/metadata/GDPR Template.xml +0 -0
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/opex_manifest_generator/metadata/MODS Template.xml +0 -0
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/opex_manifest_generator/options/options.properties +0 -0
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/opex_manifest_generator.egg-info/dependency_links.txt +0 -0
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/opex_manifest_generator.egg-info/entry_points.txt +0 -0
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/opex_manifest_generator.egg-info/top_level.txt +0 -0
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/samples/Sample File 1.jpg.opex +0 -0
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/samples/Sample File 2.gif.opex +0 -0
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/samples/Sample Folder Manifest.opex +0 -0
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/samples/opex_manifest_generator_AutoClass.xlsx +0 -0
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/samples/spreads/dctemplate.xlsx +0 -0
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/samples/spreads/eadtemplate.xlsx +0 -0
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/samples/spreads/gdprtemplate.xlsx +0 -0
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/samples/spreads/modstemplate.xlsx +0 -0
- {opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/setup.cfg +0 -0
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
name: Build Portable Executables with Nuitka
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- 'v*'
|
|
7
|
+
- 'test-*'
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: write
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
build-windows:
|
|
14
|
+
name: Build Windows Portable
|
|
15
|
+
runs-on: windows-latest
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v4
|
|
18
|
+
|
|
19
|
+
- name: Set up Python
|
|
20
|
+
uses: actions/setup-python@v4
|
|
21
|
+
with:
|
|
22
|
+
python-version: '3.11'
|
|
23
|
+
|
|
24
|
+
- name: Install dependencies
|
|
25
|
+
run: |
|
|
26
|
+
choco install llvm -y
|
|
27
|
+
python -m pip install --upgrade pip
|
|
28
|
+
pip install nuitka ordered-set zstandard odf
|
|
29
|
+
pip install -e .
|
|
30
|
+
|
|
31
|
+
- name: Build Windows executable with Nuitka
|
|
32
|
+
env:
|
|
33
|
+
NUITKA_CACHE_DIR: ${{ runner.temp }}/nuitka_cache
|
|
34
|
+
run: |
|
|
35
|
+
$tag = "${{ github.ref_name }}"
|
|
36
|
+
$version = [regex]::Match($tag, '\d+\.\d+\.\d+').Value
|
|
37
|
+
if ($version -eq "") { $version = "1.0.0" }
|
|
38
|
+
python -m nuitka `
|
|
39
|
+
--onefile `
|
|
40
|
+
-o opex_generate `
|
|
41
|
+
--output-dir=build `
|
|
42
|
+
--include-package=odf `
|
|
43
|
+
--include-package=pandas `
|
|
44
|
+
--include-package=opex_manifest_generator `
|
|
45
|
+
--include-data-dir=opex_manifest_generator/options=options `
|
|
46
|
+
--windows-console-mode=attach `
|
|
47
|
+
--company-name="Opex Manifest Generator" `
|
|
48
|
+
--product-name="Opex Manifest Generator" `
|
|
49
|
+
--file-version="$version" `
|
|
50
|
+
--product-version="$version" `
|
|
51
|
+
--copyright="Copyright $(Get-Date -Format yyyy)" `
|
|
52
|
+
--assume-yes-for-downloads `
|
|
53
|
+
--quiet `
|
|
54
|
+
--clang `
|
|
55
|
+
--mingw64 `
|
|
56
|
+
opex_manifest_generator/cli.py
|
|
57
|
+
|
|
58
|
+
- name: Create Windows artifact archive
|
|
59
|
+
run: |
|
|
60
|
+
$version = "${{ github.ref_name }}" -replace "^v", ""
|
|
61
|
+
Compress-Archive -Path build/opex_generate.exe -DestinationPath "opex_generate_windows_$version.zip"
|
|
62
|
+
|
|
63
|
+
- name: Upload Windows artifact
|
|
64
|
+
uses: actions/upload-artifact@v4
|
|
65
|
+
with:
|
|
66
|
+
name: opex_generate-windows
|
|
67
|
+
path: opex_generate_windows_*.zip
|
|
68
|
+
|
|
69
|
+
- name: Upload to release
|
|
70
|
+
uses: softprops/action-gh-release@v1
|
|
71
|
+
with:
|
|
72
|
+
draft: true
|
|
73
|
+
files: opex_generate_windows_*.zip
|
|
74
|
+
env:
|
|
75
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
76
|
+
|
|
77
|
+
build-linux:
|
|
78
|
+
name: Build Linux Portable
|
|
79
|
+
runs-on: ubuntu-latest
|
|
80
|
+
steps:
|
|
81
|
+
- uses: actions/checkout@v4
|
|
82
|
+
|
|
83
|
+
- name: Set up Python
|
|
84
|
+
uses: actions/setup-python@v4
|
|
85
|
+
with:
|
|
86
|
+
python-version: '3.11'
|
|
87
|
+
|
|
88
|
+
- name: Install system dependencies
|
|
89
|
+
run: |
|
|
90
|
+
sudo apt-get update
|
|
91
|
+
sudo apt-get install -y patchelf clang
|
|
92
|
+
|
|
93
|
+
- name: Install Python dependencies
|
|
94
|
+
run: |
|
|
95
|
+
python -m pip install --upgrade pip
|
|
96
|
+
pip install nuitka ordered-set zstandard odf
|
|
97
|
+
pip install -e .
|
|
98
|
+
|
|
99
|
+
- name: Build Linux executable with Nuitka
|
|
100
|
+
run: |
|
|
101
|
+
python -m nuitka \
|
|
102
|
+
--onefile \
|
|
103
|
+
-o opex_generate \
|
|
104
|
+
--output-dir=build \
|
|
105
|
+
--include-package=odf \
|
|
106
|
+
--include-package=pandas \
|
|
107
|
+
--include-package=opex_manifest_generator \
|
|
108
|
+
--include-data-dir=opex_manifest_generator/options=options \
|
|
109
|
+
--assume-yes-for-downloads \
|
|
110
|
+
--quiet \
|
|
111
|
+
--clang \
|
|
112
|
+
opex_manifest_generator/cli.py
|
|
113
|
+
|
|
114
|
+
- name: Create Linux artifact archive
|
|
115
|
+
run: |
|
|
116
|
+
version="${{ github.ref_name }}"
|
|
117
|
+
version="${version#v}"
|
|
118
|
+
version="${version#test-}"
|
|
119
|
+
if [ -z "$version" ] || [ "$version" = "master" ]; then
|
|
120
|
+
version="1.0.0"
|
|
121
|
+
fi
|
|
122
|
+
tar -czf "opex_generate_linux_${version}.tar.gz" -C build opex_generate
|
|
123
|
+
|
|
124
|
+
- name: Upload Linux artifact
|
|
125
|
+
uses: actions/upload-artifact@v4
|
|
126
|
+
with:
|
|
127
|
+
name: opex_generate-linux
|
|
128
|
+
path: opex_generate_linux_*.tar.gz
|
|
129
|
+
|
|
130
|
+
- name: Upload to release
|
|
131
|
+
uses: softprops/action-gh-release@v1
|
|
132
|
+
with:
|
|
133
|
+
draft: true
|
|
134
|
+
files: opex_generate_linux_*.tar.gz
|
|
135
|
+
env:
|
|
136
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
137
|
+
|
|
138
|
+
build-macos:
|
|
139
|
+
name: Build macOS Portable
|
|
140
|
+
runs-on: macos-latest
|
|
141
|
+
steps:
|
|
142
|
+
- uses: actions/checkout@v4
|
|
143
|
+
|
|
144
|
+
- name: Set up Python
|
|
145
|
+
uses: actions/setup-python@v4
|
|
146
|
+
with:
|
|
147
|
+
python-version: '3.11'
|
|
148
|
+
|
|
149
|
+
- name: Install Python dependencies
|
|
150
|
+
run: |
|
|
151
|
+
python -m pip install --upgrade pip
|
|
152
|
+
pip install nuitka ordered-set zstandard odf
|
|
153
|
+
pip install -e .
|
|
154
|
+
|
|
155
|
+
- name: Build macOS executable with Nuitka
|
|
156
|
+
run: |
|
|
157
|
+
python -m nuitka \
|
|
158
|
+
--onefile \
|
|
159
|
+
-o opex_generate \
|
|
160
|
+
--output-dir=build \
|
|
161
|
+
--include-package=odf \
|
|
162
|
+
--include-package=pandas \
|
|
163
|
+
--include-package=opex_manifest_generator \
|
|
164
|
+
--include-data-dir=opex_manifest_generator/options=options \
|
|
165
|
+
--macos-create-app-bundle \
|
|
166
|
+
--assume-yes-for-downloads \
|
|
167
|
+
--quiet \
|
|
168
|
+
--clang \
|
|
169
|
+
opex_manifest_generator/cli.py
|
|
170
|
+
|
|
171
|
+
- name: Create macOS artifact archive
|
|
172
|
+
run: |
|
|
173
|
+
version="${{ github.ref_name }}"
|
|
174
|
+
version="${version#v}"
|
|
175
|
+
version="${version#test-}"
|
|
176
|
+
if [ -z "$version" ] || [ "$version" = "master" ]; then
|
|
177
|
+
version="1.0.0"
|
|
178
|
+
fi
|
|
179
|
+
tar -czf "opex_generate_macos_${version}.tar.gz" -C build opex_generate
|
|
180
|
+
|
|
181
|
+
- name: Upload macOS artifact
|
|
182
|
+
uses: actions/upload-artifact@v4
|
|
183
|
+
with:
|
|
184
|
+
name: opex_generate-macos
|
|
185
|
+
path: opex_generate_macos_*.tar.gz
|
|
186
|
+
|
|
187
|
+
- name: Upload to release
|
|
188
|
+
uses: softprops/action-gh-release@v1
|
|
189
|
+
with:
|
|
190
|
+
draft: true
|
|
191
|
+
files: opex_generate_macos_*.tar.gz
|
|
192
|
+
env:
|
|
193
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
194
|
+
|
|
195
|
+
create-release-notes:
|
|
196
|
+
name: Create Release Notes
|
|
197
|
+
runs-on: ubuntu-latest
|
|
198
|
+
needs: [build-windows, build-linux, build-macos]
|
|
199
|
+
if: startsWith(github.ref, 'refs/tags/')
|
|
200
|
+
steps:
|
|
201
|
+
- uses: actions/checkout@v4
|
|
202
|
+
|
|
203
|
+
- name: Generate Release Notes
|
|
204
|
+
run: |
|
|
205
|
+
echo "## Portable Executables" > release_notes.md
|
|
206
|
+
echo "" >> release_notes.md
|
|
207
|
+
echo "### Downloads" >> release_notes.md
|
|
208
|
+
echo "- **Windows**: \`opex_generate_windows_\`" >> release_notes.md
|
|
209
|
+
echo "- **Linux**: \`opex_generate_linux_\`" >> release_notes.md
|
|
210
|
+
echo "- **macOS**: \`opex_generate_macos_\`" >> release_notes.md
|
|
211
|
+
echo "" >> release_notes.md
|
|
212
|
+
echo "These are standalone executables that do not require Python to be installed." >> release_notes.md
|
|
213
|
+
echo "" >> release_notes.md
|
|
214
|
+
echo "### Usage" >> release_notes.md
|
|
215
|
+
echo "\`\`\`bash" >> release_notes.md
|
|
216
|
+
echo "./opex_generate /path/to/root -p PREFIX -o /path/to/output" >> release_notes.md
|
|
217
|
+
echo "\`\`\`" >> release_notes.md
|
{opex_manifest_generator-1.3.3 → opex_manifest_generator-1.3.5}/.github/workflows/codeql.yml
RENAMED
|
@@ -13,10 +13,25 @@ name: "CodeQL"
|
|
|
13
13
|
|
|
14
14
|
on:
|
|
15
15
|
push:
|
|
16
|
-
|
|
16
|
+
tags:
|
|
17
|
+
- 'v*'
|
|
18
|
+
# avoid running on doc-only / asset-only changes
|
|
19
|
+
paths-ignore:
|
|
20
|
+
- 'README.md'
|
|
21
|
+
- 'docs/**'
|
|
22
|
+
- 'assets/**'
|
|
23
|
+
- '.github/**'
|
|
17
24
|
pull_request:
|
|
18
25
|
# The branches below must be a subset of the branches above
|
|
19
|
-
branches: [ master
|
|
26
|
+
branches: [ master]
|
|
27
|
+
# avoid running on doc-only / asset-only changes
|
|
28
|
+
paths-ignore:
|
|
29
|
+
- 'README.md'
|
|
30
|
+
- 'docs/**'
|
|
31
|
+
- 'assets/**'
|
|
32
|
+
- '.github/**'
|
|
33
|
+
# allow manual runs
|
|
34
|
+
workflow_dispatch: {}
|
|
20
35
|
schedule:
|
|
21
36
|
- cron: '20 10 * * 6'
|
|
22
37
|
|
|
@@ -24,6 +39,9 @@ jobs:
|
|
|
24
39
|
analyze:
|
|
25
40
|
name: Analyze
|
|
26
41
|
runs-on: ubuntu-latest
|
|
42
|
+
concurrency:
|
|
43
|
+
group: codeql-scan-${{ github.ref }}
|
|
44
|
+
cancel-in-progress: true
|
|
27
45
|
permissions:
|
|
28
46
|
actions: read
|
|
29
47
|
contents: read
|
|
@@ -39,11 +57,22 @@ jobs:
|
|
|
39
57
|
|
|
40
58
|
steps:
|
|
41
59
|
- name: Checkout repository
|
|
42
|
-
uses: actions/checkout@
|
|
60
|
+
uses: actions/checkout@v4
|
|
61
|
+
|
|
62
|
+
- name: Set up Python (improves CodeQL context for Python projects)
|
|
63
|
+
uses: actions/setup-python@v4
|
|
64
|
+
with:
|
|
65
|
+
python-version: '3.x'
|
|
66
|
+
cache: 'pip'
|
|
67
|
+
|
|
68
|
+
- name: Install dev dependencies (optional)
|
|
69
|
+
run: |
|
|
70
|
+
python -m pip install --upgrade pip
|
|
71
|
+
if [ -f pyproject.toml ]; then pip install -e '.[dev]' || true; fi
|
|
43
72
|
|
|
44
73
|
# Initializes the CodeQL tools for scanning.
|
|
45
74
|
- name: Initialize CodeQL
|
|
46
|
-
uses: github/codeql-action/init@
|
|
75
|
+
uses: github/codeql-action/init@v4
|
|
47
76
|
with:
|
|
48
77
|
languages: ${{ matrix.language }}
|
|
49
78
|
# If you wish to specify custom queries, you can do so here or in a config file.
|
|
@@ -54,7 +83,7 @@ jobs:
|
|
|
54
83
|
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
|
55
84
|
# If this step fails, then you should remove it and run the build manually (see below)
|
|
56
85
|
- name: Autobuild
|
|
57
|
-
uses: github/codeql-action/autobuild@
|
|
86
|
+
uses: github/codeql-action/autobuild@v4
|
|
58
87
|
|
|
59
88
|
# ℹ️ Command-line programs to run using the OS shell.
|
|
60
89
|
# 📚 https://git.io/JvXDl
|
|
@@ -68,4 +97,4 @@ jobs:
|
|
|
68
97
|
# make release
|
|
69
98
|
|
|
70
99
|
- name: Perform CodeQL Analysis
|
|
71
|
-
uses: github/codeql-action/analyze@
|
|
100
|
+
uses: github/codeql-action/analyze@v4
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
name: Run Tests
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- 'v*'
|
|
7
|
+
- 'test-*'
|
|
8
|
+
paths-ignore:
|
|
9
|
+
- 'README.md'
|
|
10
|
+
- 'docs/**'
|
|
11
|
+
- 'assets/**'
|
|
12
|
+
- '.github/**'
|
|
13
|
+
pull_request:
|
|
14
|
+
branches: [ master]
|
|
15
|
+
paths-ignore:
|
|
16
|
+
- 'README.md'
|
|
17
|
+
- 'docs/**'
|
|
18
|
+
- 'assets/**'
|
|
19
|
+
- '.github/**'
|
|
20
|
+
jobs:
|
|
21
|
+
build:
|
|
22
|
+
runs-on: ubuntu-latest
|
|
23
|
+
strategy:
|
|
24
|
+
matrix:
|
|
25
|
+
python-version: ['3.10', '3.11', '3.12', '3.13']
|
|
26
|
+
|
|
27
|
+
steps:
|
|
28
|
+
- uses: actions/checkout@v4
|
|
29
|
+
|
|
30
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
31
|
+
uses: actions/setup-python@v4
|
|
32
|
+
with:
|
|
33
|
+
python-version: ${{ matrix.python-version }}
|
|
34
|
+
|
|
35
|
+
- name: Install dependencies
|
|
36
|
+
run: |
|
|
37
|
+
python -m pip install --upgrade pip
|
|
38
|
+
python -m pip install -e ".[dev,addex]"
|
|
39
|
+
|
|
40
|
+
- name: Run tests
|
|
41
|
+
run: |
|
|
42
|
+
python -m pytest -v
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: opex_manifest_generator
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.5
|
|
4
4
|
Summary: An Opex Manifest Generator tool for use with OPEX Files, as designed by Preservica
|
|
5
5
|
Author-email: Christopher Prince <c.pj.prince@gmail.com>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -18,6 +18,8 @@ Requires-Dist: openpyxl
|
|
|
18
18
|
Requires-Dist: lxml
|
|
19
19
|
Provides-Extra: addex
|
|
20
20
|
Requires-Dist: odfpy; extra == "addex"
|
|
21
|
+
Provides-Extra: dev
|
|
22
|
+
Requires-Dist: pytest>=7.0; extra == "dev"
|
|
21
23
|
Dynamic: license-file
|
|
22
24
|
|
|
23
25
|
# Opex Manifest Generator Tool
|