opex-manifest-generator 1.3.4__tar.gz → 1.3.6__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.
Files changed (58) hide show
  1. opex_manifest_generator-1.3.6/.github/workflows/build-portable.yml +241 -0
  2. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/.github/workflows/codeql.yml +35 -6
  3. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/.github/workflows/pypi-publish.yml +18 -1
  4. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/.github/workflows/python-tests.yml +17 -6
  5. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/.gitignore +2 -1
  6. opex_manifest_generator-1.3.6/.pre-commit-config.yaml +12 -0
  7. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/LICENSE.md +1 -1
  8. opex_manifest_generator-1.3.6/PKG-INFO +619 -0
  9. opex_manifest_generator-1.3.6/README.md +595 -0
  10. opex_manifest_generator-1.3.6/assets/File Opex Input Sample.png +0 -0
  11. opex_manifest_generator-1.3.6/assets/Folder Opex Input Sample.png +0 -0
  12. opex_manifest_generator-1.3.6/assets/Opex File Manifest.png +0 -0
  13. opex_manifest_generator-1.3.6/assets/Opex Files.png +0 -0
  14. opex_manifest_generator-1.3.6/assets/Opex Folder.png +0 -0
  15. opex_manifest_generator-1.3.6/assets/Opex Manifest with files.png +0 -0
  16. opex_manifest_generator-1.3.6/assets/Opex Manifest.png +0 -0
  17. opex_manifest_generator-1.3.6/assets/Spreadsheet Input Sample.png +0 -0
  18. opex_manifest_generator-1.3.6/installer/README.txt +55 -0
  19. opex_manifest_generator-1.3.6/installer/install.cmd +101 -0
  20. opex_manifest_generator-1.3.6/installer/opex_generate.cmd +14 -0
  21. opex_manifest_generator-1.3.6/installer/uninstall.cmd +66 -0
  22. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/opex_manifest_generator/__init__.py +3 -3
  23. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/opex_manifest_generator/cli.py +204 -123
  24. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/opex_manifest_generator/common.py +9 -8
  25. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/opex_manifest_generator/hash.py +4 -4
  26. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/opex_manifest_generator/metadata/EAD Template.xml +1 -1
  27. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/opex_manifest_generator/metadata/GDPR Template.xml +1 -1
  28. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/opex_manifest_generator/metadata/MODS Template.xml +1 -1
  29. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/opex_manifest_generator/opex_manifest.py +61 -61
  30. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/opex_manifest_generator/options/options.properties +1 -1
  31. opex_manifest_generator-1.3.6/opex_manifest_generator.egg-info/PKG-INFO +619 -0
  32. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/opex_manifest_generator.egg-info/SOURCES.txt +14 -0
  33. opex_manifest_generator-1.3.6/opex_manifest_generator.egg-info/entry_points.txt +2 -0
  34. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/pyproject.toml +3 -3
  35. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/pytest.ini +1 -1
  36. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/tests/test_opex_manifest.py +1 -1
  37. opex_manifest_generator-1.3.4/PKG-INFO +0 -557
  38. opex_manifest_generator-1.3.4/README.md +0 -533
  39. opex_manifest_generator-1.3.4/opex_manifest_generator.egg-info/PKG-INFO +0 -557
  40. opex_manifest_generator-1.3.4/opex_manifest_generator.egg-info/entry_points.txt +0 -2
  41. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/assets/Column Headers.png +0 -0
  42. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/assets/FullName Column.png +0 -0
  43. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/assets/Hash Headers.png +0 -0
  44. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/assets/Identifiers Headers.png +0 -0
  45. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/assets/XML Headers.png +0 -0
  46. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/opex_manifest_generator/metadata/DublinCore Template.xml +0 -0
  47. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/opex_manifest_generator.egg-info/dependency_links.txt +0 -0
  48. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/opex_manifest_generator.egg-info/requires.txt +0 -0
  49. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/opex_manifest_generator.egg-info/top_level.txt +0 -0
  50. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/samples/Sample File 1.jpg.opex +0 -0
  51. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/samples/Sample File 2.gif.opex +0 -0
  52. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/samples/Sample Folder Manifest.opex +0 -0
  53. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/samples/opex_manifest_generator_AutoClass.xlsx +0 -0
  54. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/samples/spreads/dctemplate.xlsx +0 -0
  55. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/samples/spreads/eadtemplate.xlsx +0 -0
  56. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/samples/spreads/gdprtemplate.xlsx +0 -0
  57. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/samples/spreads/modstemplate.xlsx +0 -0
  58. {opex_manifest_generator-1.3.4 → opex_manifest_generator-1.3.6}/setup.cfg +0 -0
@@ -0,0 +1,241 @@
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 odfpy
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
+ --follow-imports `
41
+ -o opex_generate `
42
+ --windows-console-mode=force `
43
+ --output-dir=build `
44
+ --nofollow-import-to=pandas.tests `
45
+ --nofollow-import-to=pandas.conftest `
46
+ --include-package=odf `
47
+ --include-package=pandas `
48
+ --include-package=opex_manifest_generator `
49
+ --include-data-dir=opex_manifest_generator/options=options `
50
+ --company-name="Opex Manifest Generator" `
51
+ --product-name="Opex Manifest Generator" `
52
+ --file-version="$version" `
53
+ --product-version="$version" `
54
+ --copyright="Copyright $(Get-Date -Format yyyy)" `
55
+ --assume-yes-for-downloads `
56
+ --quiet `
57
+ --clang `
58
+ opex_manifest_generator/cli.py
59
+
60
+ - name: Create Windows package
61
+ run: |
62
+ $version = "${{ github.ref_name }}" -replace "^v", ""
63
+ if ($version -eq "") { $version = "1.0.0" }
64
+
65
+ # Create folder structure
66
+ New-Item -ItemType Directory -Force -Path "opex_generate/bin" | Out-Null
67
+
68
+ # Copy executable and wrapper
69
+ Copy-Item -Path "build/opex_generate.exe" -Destination "opex_generate/bin/"
70
+ Copy-Item -Path "installer/opex_generate.cmd" -Destination "opex_generate/bin/"
71
+
72
+ # Copy documentation and scripts
73
+ Copy-Item -Path "installer/README.txt" -Destination "opex_generate/"
74
+ Copy-Item -Path "installer/install.cmd" -Destination "opex_generate/"
75
+ Copy-Item -Path "installer/uninstall.cmd" -Destination "opex_generate/"
76
+ Copy-Item -Path "LICENSE.md" -Destination "opex_generate/" -ErrorAction SilentlyContinue
77
+
78
+ # Create portable ZIP
79
+ Compress-Archive -Path "opex_generate" -DestinationPath "opex_generate_windows_$version.zip"
80
+
81
+ - name: Upload Windows artifact
82
+ uses: actions/upload-artifact@v4
83
+ with:
84
+ name: opex_generate-windows
85
+ path: opex_generate_windows_*.zip
86
+
87
+ - name: Upload to release
88
+ uses: softprops/action-gh-release@v1
89
+ with:
90
+ draft: true
91
+ files: opex_generate_windows_*.zip
92
+ env:
93
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
94
+
95
+ build-linux:
96
+ name: Build Linux Portable
97
+ runs-on: ubuntu-latest
98
+ steps:
99
+ - uses: actions/checkout@v4
100
+
101
+ - name: Set up Python
102
+ uses: actions/setup-python@v4
103
+ with:
104
+ python-version: '3.11'
105
+
106
+ - name: Install system dependencies
107
+ run: |
108
+ sudo apt-get update
109
+ sudo apt-get install -y patchelf clang
110
+
111
+ - name: Install Python dependencies
112
+ run: |
113
+ python -m pip install --upgrade pip
114
+ pip install nuitka ordered-set zstandard odfpy
115
+ pip install -e .
116
+
117
+ - name: Build Linux executable with Nuitka
118
+ run: |
119
+ python -m nuitka \
120
+ --onefile \
121
+ --follow-imports \
122
+ -o opex_generate \
123
+ --output-dir=build \
124
+ --include-package=odf \
125
+ --include-package=pandas \
126
+ --nofollow-import-to=pandas.tests \
127
+ --nofollow-import-to=pandas.conftest \
128
+ --include-package=opex_manifest_generator \
129
+ --include-data-dir=opex_manifest_generator/options=options \
130
+ --assume-yes-for-downloads \
131
+ --quiet \
132
+ --clang \
133
+ opex_manifest_generator/cli.py
134
+
135
+ - name: Create Linux artifact archive
136
+ run: |
137
+ version="${{ github.ref_name }}"
138
+ version="${version#v}"
139
+ version="${version#test-}"
140
+ if [ -z "$version" ] || [ "$version" = "master" ]; then
141
+ version="1.0.0"
142
+ fi
143
+ tar -czf "opex_generate_linux_${version}.tar.gz" -C build opex_generate
144
+
145
+ - name: Upload Linux artifact
146
+ uses: actions/upload-artifact@v4
147
+ with:
148
+ name: opex_generate-linux
149
+ path: opex_generate_linux_*.tar.gz
150
+
151
+ - name: Upload to release
152
+ uses: softprops/action-gh-release@v1
153
+ with:
154
+ draft: true
155
+ files: opex_generate_linux_*.tar.gz
156
+ env:
157
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
158
+
159
+ build-macos:
160
+ name: Build macOS Portable
161
+ runs-on: macos-latest
162
+ steps:
163
+ - uses: actions/checkout@v4
164
+
165
+ - name: Set up Python
166
+ uses: actions/setup-python@v4
167
+ with:
168
+ python-version: '3.11'
169
+
170
+ - name: Install Python dependencies
171
+ run: |
172
+ python -m pip install --upgrade pip
173
+ pip install nuitka ordered-set zstandard odfpy
174
+ pip install -e .
175
+
176
+ - name: Build macOS executable with Nuitka
177
+ run: |
178
+ python -m nuitka \
179
+ --onefile \
180
+ --follow-imports \
181
+ -o opex_generate \
182
+ --output-dir=build \
183
+ --nofollow-import-to=pandas.tests \
184
+ --nofollow-import-to=pandas.conftest \
185
+ --include-package=odf \
186
+ --include-package=pandas \
187
+ --include-package=opex_manifest_generator \
188
+ --include-data-dir=opex_manifest_generator/options=options \
189
+ --macos-create-app-bundle \
190
+ --assume-yes-for-downloads \
191
+ --quiet \
192
+ --clang \
193
+ opex_manifest_generator/cli.py
194
+
195
+ - name: Create macOS artifact archive
196
+ run: |
197
+ version="${{ github.ref_name }}"
198
+ version="${version#v}"
199
+ version="${version#test-}"
200
+ if [ -z "$version" ] || [ "$version" = "master" ]; then
201
+ version="1.0.0"
202
+ fi
203
+ tar -czf "opex_generate_macos_${version}.tar.gz" -C build opex_generate
204
+
205
+ - name: Upload macOS artifact
206
+ uses: actions/upload-artifact@v4
207
+ with:
208
+ name: opex_generate-macos
209
+ path: opex_generate_macos_*.tar.gz
210
+
211
+ - name: Upload to release
212
+ uses: softprops/action-gh-release@v1
213
+ with:
214
+ draft: true
215
+ files: opex_generate_macos_*.tar.gz
216
+ env:
217
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
218
+
219
+ create-release-notes:
220
+ name: Create Release Notes
221
+ runs-on: ubuntu-latest
222
+ needs: [build-windows, build-linux, build-macos]
223
+ if: startsWith(github.ref, 'refs/tags/')
224
+ steps:
225
+ - uses: actions/checkout@v4
226
+
227
+ - name: Generate Release Notes
228
+ run: |
229
+ echo "## Portable Executables" > release_notes.md
230
+ echo "" >> release_notes.md
231
+ echo "### Downloads" >> release_notes.md
232
+ echo "- **Windows**: \`opex_generate_windows_\`" >> release_notes.md
233
+ echo "- **Linux**: \`opex_generate_linux_\`" >> release_notes.md
234
+ echo "- **macOS**: \`opex_generate_macos_\`" >> release_notes.md
235
+ echo "" >> release_notes.md
236
+ echo "These are standalone executables that do not require Python to be installed." >> release_notes.md
237
+ echo "" >> release_notes.md
238
+ echo "### Usage" >> release_notes.md
239
+ echo "\`\`\`bash" >> release_notes.md
240
+ echo "./opex_generate /path/to/root -p PREFIX -o /path/to/output" >> release_notes.md
241
+ echo "\`\`\`" >> release_notes.md
@@ -13,10 +13,25 @@ name: "CodeQL"
13
13
 
14
14
  on:
15
15
  push:
16
- branches: [ master ]
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@v2
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@v2
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@v2
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@v2
100
+ uses: github/codeql-action/analyze@v4
@@ -1,6 +1,23 @@
1
1
  name: Publish Python distribution to PyPI
2
2
 
3
- on: push
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*'
7
+ paths-ignore:
8
+ - 'README.md'
9
+ - 'docs/**'
10
+ - 'assets/**'
11
+ - '.github/**'
12
+ pull_request:
13
+ # The branches below must be a subset of the branches above
14
+ branches: [ master]
15
+ paths-ignore:
16
+ - 'README.md'
17
+ - 'docs/**'
18
+ - 'assets/**'
19
+ - '.github/**'
20
+
4
21
 
5
22
  jobs:
6
23
  build:
@@ -1,13 +1,24 @@
1
- name: Tests
1
+ name: Run Tests
2
2
 
3
3
  on:
4
4
  push:
5
- branches: [ master ]
5
+ tags:
6
+ - 'v*'
7
+ - 'test-*'
8
+ paths-ignore:
9
+ - 'README.md'
10
+ - 'docs/**'
11
+ - 'assets/**'
12
+ - '.github/**'
6
13
  pull_request:
7
- branches: [ master ]
8
-
14
+ branches: [ master]
15
+ paths-ignore:
16
+ - 'README.md'
17
+ - 'docs/**'
18
+ - 'assets/**'
19
+ - '.github/**'
9
20
  jobs:
10
- test:
21
+ build:
11
22
  runs-on: ubuntu-latest
12
23
  strategy:
13
24
  matrix:
@@ -28,4 +39,4 @@ jobs:
28
39
 
29
40
  - name: Run tests
30
41
  run: |
31
- python -m pytest -v
42
+ python -m pytest -v
@@ -3,4 +3,5 @@ dist/
3
3
  .vscode/
4
4
  .venv/
5
5
  opex_manifest_generator/opex_manifest_reference.py
6
- opex_manifest_generator.egg-info/
6
+ opex_manifest_generator.egg-info/
7
+ opex_manifest_generator.code-workspace
@@ -0,0 +1,12 @@
1
+ repos:
2
+ - repo: https://github.com/igrr/argparse_to_md.git
3
+ rev: v0.4.0
4
+ hooks:
5
+ - id: argparse_to_md
6
+ - repo: https://github.com/pre-commit/pre-commit-hooks
7
+ rev: v4.5.0
8
+ hooks:
9
+ - id: check-yaml
10
+ - id: end-of-file-fixer
11
+ - id: trailing-whitespace
12
+ exclude: ^README\.md$
@@ -199,4 +199,4 @@
199
199
  distributed under the License is distributed on an "AS IS" BASIS,
200
200
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201
201
  See the License for the specific language governing permissions and
202
- limitations under the License.
202
+ limitations under the License.