iOpenPod 2.0.4__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 (1858) hide show
  1. iopenpod-2.0.4/.editorconfig +21 -0
  2. iopenpod-2.0.4/.gitattributes +19 -0
  3. iopenpod-2.0.4/.github/FUNDING.yml +2 -0
  4. iopenpod-2.0.4/.github/ISSUE_TEMPLATE/bug_report.md +35 -0
  5. iopenpod-2.0.4/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  6. iopenpod-2.0.4/.github/workflows/flatpak.yml +45 -0
  7. iopenpod-2.0.4/.github/workflows/health.yml +60 -0
  8. iopenpod-2.0.4/.github/workflows/pages.yml +61 -0
  9. iopenpod-2.0.4/.github/workflows/release.yml +277 -0
  10. iopenpod-2.0.4/.github/workflows/update-feed.yml +54 -0
  11. iopenpod-2.0.4/.gitignore +192 -0
  12. iopenpod-2.0.4/.hallmark/log.json +159 -0
  13. iopenpod-2.0.4/.hallmark/preflight-web.json +26 -0
  14. iopenpod-2.0.4/.hallmark/preflight.json +19 -0
  15. iopenpod-2.0.4/.python-version +1 -0
  16. iopenpod-2.0.4/.vscode/extensions.json +13 -0
  17. iopenpod-2.0.4/.vscode/settings.json +90 -0
  18. iopenpod-2.0.4/.vscode/tasks.json +174 -0
  19. iopenpod-2.0.4/ACKNOWLEDGEMENTS.md +44 -0
  20. iopenpod-2.0.4/AGENTS.md +161 -0
  21. iopenpod-2.0.4/CONTEXT.md +729 -0
  22. iopenpod-2.0.4/COPYING.md +47 -0
  23. iopenpod-2.0.4/GLOSSARY.md +258 -0
  24. iopenpod-2.0.4/LICENSE +675 -0
  25. iopenpod-2.0.4/PKG-INFO +327 -0
  26. iopenpod-2.0.4/README.md +280 -0
  27. iopenpod-2.0.4/TODO.md +25 -0
  28. iopenpod-2.0.4/docs/README.md +36 -0
  29. iopenpod-2.0.4/docs/adr/0001-use-python-3-12-and-uv.md +35 -0
  30. iopenpod-2.0.4/docs/adr/0002-separate-the-four-primary-subsystems.md +45 -0
  31. iopenpod-2.0.4/docs/adr/0003-share-quality-configuration-between-cli-and-vs-code.md +43 -0
  32. iopenpod-2.0.4/docs/adr/0004-use-original-iopenpod-as-the-compatibility-baseline.md +43 -0
  33. iopenpod-2.0.4/docs/adr/0005-use-one-active-ipod-and-user-directed-sync.md +46 -0
  34. iopenpod-2.0.4/docs/adr/0006-require-lossless-ipoddb-round-trips.md +41 -0
  35. iopenpod-2.0.4/docs/adr/0007-ship-one-application-with-branded-package-names.md +38 -0
  36. iopenpod-2.0.4/docs/adr/0008-require-one-definition-driven-ipoddb-path.md +62 -0
  37. iopenpod-2.0.4/docs/adr/0009-use-qt-logical-pixels-and-native-display-metrics.md +52 -0
  38. iopenpod-2.0.4/docs/adr/0010-resolve-ranked-device-evidence-in-the-device-registry.md +74 -0
  39. iopenpod-2.0.4/docs/adr/0011-bind-storage-access-to-connection-generations.md +91 -0
  40. iopenpod-2.0.4/docs/adr/0012-load-artwork-lazily-across-existing-boundaries.md +79 -0
  41. iopenpod-2.0.4/docs/adr/0013-reconcile-device-metadata-across-existing-boundaries.md +79 -0
  42. iopenpod-2.0.4/docs/adr/0014-persist-global-settings-through-storage.md +61 -0
  43. iopenpod-2.0.4/docs/adr/0015-isolate-iopenpod-2-settings-from-original-iopenpod.md +43 -0
  44. iopenpod-2.0.4/docs/adr/0016-qualify-device-candidates-and-correlate-macos-hardware.md +52 -0
  45. iopenpod-2.0.4/docs/adr/0017-stream-playback-through-a-replaceable-backend.md +65 -0
  46. iopenpod-2.0.4/docs/adr/0018-publish-playback-through-optional-system-media-sessions.md +90 -0
  47. iopenpod-2.0.4/docs/adr/0019-project-databases-through-a-common-library-contract.md +52 -0
  48. iopenpod-2.0.4/docs/adr/0020-project-playlists-and-isolate-session-edits.md +65 -0
  49. iopenpod-2.0.4/docs/adr/0021-prepare-library-drafts-over-retained-documents.md +104 -0
  50. iopenpod-2.0.4/docs/adr/0022-apply-and-save-playlist-drafts.md +87 -0
  51. iopenpod-2.0.4/docs/adr/0023-capture-write-requests-and-inspect-them-without-replay.md +59 -0
  52. iopenpod-2.0.4/docs/adr/0024-reconcile-and-verify-playlists-by-dataset.md +77 -0
  53. iopenpod-2.0.4/docs/adr/0025-resolve-library-edits-before-reconciliation.md +82 -0
  54. iopenpod-2.0.4/docs/adr/0026-share-one-library-workspace-for-metadata-and-playlists.md +68 -0
  55. iopenpod-2.0.4/docs/adr/0027-restore-the-previously-selected-ipod.md +41 -0
  56. iopenpod-2.0.4/docs/adr/0028-record-library-write-debug-diagnostics.md +20 -0
  57. iopenpod-2.0.4/docs/adr/0029-publish-file-transactions-with-retained-recovery.md +37 -0
  58. iopenpod-2.0.4/docs/adr/0030-bind-library-file-transactions-to-issued-reviews.md +45 -0
  59. iopenpod-2.0.4/docs/adr/0031-inspect-captured-host-media-before-planning-imports.md +57 -0
  60. iopenpod-2.0.4/docs/adr/0032-add-inspected-music-through-library-reviews.md +40 -0
  61. iopenpod-2.0.4/docs/adr/0033-create-artworkdb-from-catalog-capabilities.md +64 -0
  62. iopenpod-2.0.4/docs/adr/0034-bind-media-replacement-intent-to-library-drafts.md +40 -0
  63. iopenpod-2.0.4/docs/adr/0035-author-evidence-backed-smart-playlist-choices.md +48 -0
  64. iopenpod-2.0.4/docs/adr/0036-reclassify-retained-media-without-replacement.md +44 -0
  65. iopenpod-2.0.4/docs/adr/0037-persist-a-device-aware-podcast-catalog.md +81 -0
  66. iopenpod-2.0.4/docs/adr/0038-preserve-the-original-backup-archive-contract.md +30 -0
  67. iopenpod-2.0.4/docs/adr/0039-use-backup-format-v4-and-bounded-restore-recovery.md +90 -0
  68. iopenpod-2.0.4/docs/adr/0040-identify-backups-by-serial-with-a-best-effort-fallback.md +44 -0
  69. iopenpod-2.0.4/docs/adr/0041-allow-foreground-reads-during-backup-capture.md +58 -0
  70. iopenpod-2.0.4/docs/adr/0042-analyze-audio-into-ephemeral-world-scores.md +57 -0
  71. iopenpod-2.0.4/docs/adr/0043-render-synesthesia-as-one-continuous-world.md +75 -0
  72. iopenpod-2.0.4/docs/adr/0044-make-synesthesia-topology-and-biography-authoritative.md +93 -0
  73. iopenpod-2.0.4/docs/adr/0045-drive-synesthesia-through-one-coupled-field.md +136 -0
  74. iopenpod-2.0.4/docs/adr/0046-preserve-musical-context-in-synesthesia-evidence.md +64 -0
  75. iopenpod-2.0.4/docs/adr/0047-map-track-analysis-into-one-expressive-field.md +60 -0
  76. iopenpod-2.0.4/docs/adr/0048-direct-synesthesia-through-mood-selected-scenes.md +79 -0
  77. iopenpod-2.0.4/docs/adr/0049-choreograph-synesthesia-scenes-as-music-driven-journeys.md +65 -0
  78. iopenpod-2.0.4/docs/adr/0050-compose-synesthesia-camera-shots-inside-scenes.md +73 -0
  79. iopenpod-2.0.4/docs/adr/0051-make-player-transport-authoritative-for-synesthesia.md +79 -0
  80. iopenpod-2.0.4/docs/adr/0052-model-photosdb-as-a-distinct-artifact.md +51 -0
  81. iopenpod-2.0.4/docs/adr/0053-project-photos-into-library-drafts.md +55 -0
  82. iopenpod-2.0.4/docs/adr/0054-browse-photos-through-a-lazy-three-pane-ui.md +71 -0
  83. iopenpod-2.0.4/docs/adr/0055-export-photos-through-the-active-filesystem-session.md +65 -0
  84. iopenpod-2.0.4/docs/adr/0056-preview-retained-full-resolution-photos-safely.md +41 -0
  85. iopenpod-2.0.4/docs/adr/0057-manage-photo-album-membership-through-collection-cards.md +53 -0
  86. iopenpod-2.0.4/docs/adr/0058-create-empty-photo-albums-through-library-drafts.md +45 -0
  87. iopenpod-2.0.4/docs/adr/0059-delete-photos-through-library-drafts.md +55 -0
  88. iopenpod-2.0.4/docs/adr/0060-use-native-safe-removal-services.md +59 -0
  89. iopenpod-2.0.4/docs/adr/0061-support-late-ipod-library-artifact-sets.md +68 -0
  90. iopenpod-2.0.4/docs/adr/0062-assign-matched-original-backups-to-native-identities.md +55 -0
  91. iopenpod-2.0.4/docs/adr/0063-scan-host-media-into-common-library-snapshots.md +96 -0
  92. iopenpod-2.0.4/docs/adr/0064-browse-host-and-ipod-library-sources-independently.md +48 -0
  93. iopenpod-2.0.4/docs/adr/0065-index-ipod-media-for-sync-correlation.md +73 -0
  94. iopenpod-2.0.4/docs/adr/0066-prepare-sync-plans-from-correlated-media.md +74 -0
  95. iopenpod-2.0.4/docs/adr/0067-present-host-media-inside-the-sync-workspace.md +71 -0
  96. iopenpod-2.0.4/docs/adr/0068-render-synesthesia-before-track-analysis-completes.md +38 -0
  97. iopenpod-2.0.4/docs/adr/0069-refresh-devices-while-the-picker-is-open.md +34 -0
  98. iopenpod-2.0.4/docs/adr/0070-select-sync-actions-in-grouped-review.md +27 -0
  99. iopenpod-2.0.4/docs/adr/0071-restore-the-remembered-ipod-at-startup.md +28 -0
  100. iopenpod-2.0.4/docs/adr/0072-open-sync-collections-as-detail-pages.md +49 -0
  101. iopenpod-2.0.4/docs/adr/0073-apply-library-changes-automatically-by-default.md +26 -0
  102. iopenpod-2.0.4/docs/adr/0074-constrain-host-playlist-references-through-storage.md +75 -0
  103. iopenpod-2.0.4/docs/adr/0075-publish-lyrics-with-media-file-tags.md +28 -0
  104. iopenpod-2.0.4/docs/adr/0076-execute-reviewed-sync-through-storage.md +130 -0
  105. iopenpod-2.0.4/docs/adr/0077-hold-synesthesia-scenes-across-short-sections.md +41 -0
  106. iopenpod-2.0.4/docs/adr/0078-prepare-the-next-synesthesia-playback-entry.md +26 -0
  107. iopenpod-2.0.4/docs/adr/0079-prepare-native-packages-with-explicit-store-gates.md +45 -0
  108. iopenpod-2.0.4/docs/adr/0080-distribute-iopenpod-under-gplv3-or-later.md +22 -0
  109. iopenpod-2.0.4/docs/adr/0081-require-user-installed-media-tools.md +26 -0
  110. iopenpod-2.0.4/docs/adr/0082-tolerate-host-media-scan-source-churn.md +48 -0
  111. iopenpod-2.0.4/docs/adr/0083-tolerate-host-native-media-variants.md +41 -0
  112. iopenpod-2.0.4/docs/adr/0084-keep-optional-media-analysis-out-of-sync-gates.md +69 -0
  113. iopenpod-2.0.4/docs/adr/0085-preserve-positional-playback-sidecars-during-sync.md +53 -0
  114. iopenpod-2.0.4/docs/adr/0086-prepare-bounded-stills-for-oversized-photos.md +35 -0
  115. iopenpod-2.0.4/docs/adr/0087-report-concurrent-host-preparation-progress.md +42 -0
  116. iopenpod-2.0.4/docs/adr/0088-edit-track-classification-in-the-metadata-editor.md +54 -0
  117. iopenpod-2.0.4/docs/adr/0089-make-interrupted-sync-recovery-a-device-scoped-choice.md +61 -0
  118. iopenpod-2.0.4/docs/adr/0090-derive-volume-presentation-from-the-saved-ipod.md +49 -0
  119. iopenpod-2.0.4/docs/adr/0091-sync-podcasts-through-shared-media-publication.md +82 -0
  120. iopenpod-2.0.4/docs/adr/0092-enforce-podcast-and-video-playback-options.md +45 -0
  121. iopenpod-2.0.4/docs/adr/0093-complete-terminal-transaction-cleanup-automatically.md +45 -0
  122. iopenpod-2.0.4/docs/adr/0094-target-macos-12-3-with-platform-specific-native-dependencies.md +76 -0
  123. iopenpod-2.0.4/docs/adr/0095-convert-a-complete-album-to-one-chaptered-track.md +49 -0
  124. iopenpod-2.0.4/docs/adr/0096-publish-status-progress-and-actions-as-source-owned-data.md +27 -0
  125. iopenpod-2.0.4/docs/adr/0097-model-preferences-as-a-lossless-flat-document.md +36 -0
  126. iopenpod-2.0.4/docs/adr/0098-capture-device-time-context-for-library-dates.md +49 -0
  127. iopenpod-2.0.4/docs/adr/0099-share-native-host-tag-interpretation.md +31 -0
  128. iopenpod-2.0.4/docs/adr/0100-reconcile-firmware-playback-sidecars-on-device-selection.md +65 -0
  129. iopenpod-2.0.4/docs/adr/0101-retain-account-scoped-scrobble-delivery-on-the-host.md +71 -0
  130. iopenpod-2.0.4/docs/adr/0102-adjust-old-lastfm-submission-dates.md +35 -0
  131. iopenpod-2.0.4/docs/adr/0103-offer-native-media-tool-installation.md +44 -0
  132. iopenpod-2.0.4/docs/adr/0104-publish-validated-tagged-github-releases.md +38 -0
  133. iopenpod-2.0.4/docs/adr/0105-route-application-updates-by-install-channel.md +29 -0
  134. iopenpod-2.0.4/docs/adr/0106-run-health-only-on-explicit-dispatch.md +24 -0
  135. iopenpod-2.0.4/docs/adr/0107-publish-only-native-release-archives.md +24 -0
  136. iopenpod-2.0.4/docs/adr/0108-bundle-windows-as-one-executable.md +25 -0
  137. iopenpod-2.0.4/docs/adr/0109-authenticate-and-isolate-github-application-updates.md +94 -0
  138. iopenpod-2.0.4/docs/adr/0110-offer-macos-drag-to-applications-disk-images.md +27 -0
  139. iopenpod-2.0.4/docs/adr/0111-correct-evidenced-artwork-format-sizes-during-preparation.md +53 -0
  140. iopenpod-2.0.4/docs/adr/0112-publish-python-distributions-with-github-releases.md +29 -0
  141. iopenpod-2.0.4/docs/adr/0113-update-installed-python-packages-through-pypi.md +63 -0
  142. iopenpod-2.0.4/docs/adr/0114-distinguish-install-downloads-from-update-archives.md +23 -0
  143. iopenpod-2.0.4/docs/adr/README.md +189 -0
  144. iopenpod-2.0.4/docs/agents/domain.md +50 -0
  145. iopenpod-2.0.4/docs/agents/issue-tracker.md +24 -0
  146. iopenpod-2.0.4/docs/agents/triage-labels.md +14 -0
  147. iopenpod-2.0.4/docs/app-updates.md +306 -0
  148. iopenpod-2.0.4/docs/eta.md +110 -0
  149. iopenpod-2.0.4/docs/gui-design-language.md +445 -0
  150. iopenpod-2.0.4/docs/host-media-tags.md +83 -0
  151. iopenpod-2.0.4/docs/ipod-preferences.md +181 -0
  152. iopenpod-2.0.4/docs/ipod-time.md +63 -0
  153. iopenpod-2.0.4/docs/ipoddb-editing.md +134 -0
  154. iopenpod-2.0.4/docs/library-contract.md +178 -0
  155. iopenpod-2.0.4/docs/library-writing-audit-2026-09-11.md +540 -0
  156. iopenpod-2.0.4/docs/library-writing.md +737 -0
  157. iopenpod-2.0.4/docs/licensing.md +108 -0
  158. iopenpod-2.0.4/docs/media-tools.md +84 -0
  159. iopenpod-2.0.4/docs/packaging.md +536 -0
  160. iopenpod-2.0.4/docs/playback-sidecars.md +92 -0
  161. iopenpod-2.0.4/docs/research/artworkdb-format.md +198 -0
  162. iopenpod-2.0.4/docs/research/ipod-preferences.md +165 -0
  163. iopenpod-2.0.4/docs/research/ipod-time-reconciliation.md +189 -0
  164. iopenpod-2.0.4/docs/research/ithmb-uyvy-format.md +307 -0
  165. iopenpod-2.0.4/docs/research/itunescdb-and-sqlite-library.md +65 -0
  166. iopenpod-2.0.4/docs/research/itunesdb-lyrics.md +133 -0
  167. iopenpod-2.0.4/docs/research/itunesdb-sort-36.md +116 -0
  168. iopenpod-2.0.4/docs/research/macos-catalina-compatibility.md +350 -0
  169. iopenpod-2.0.4/docs/research/macos-compatibility.md +496 -0
  170. iopenpod-2.0.4/docs/research/photosdb-format.md +117 -0
  171. iopenpod-2.0.4/docs/research/safe-native-eject.md +123 -0
  172. iopenpod-2.0.4/docs/research/synesthesia-coupled-field.md +101 -0
  173. iopenpod-2.0.4/docs/research/synesthesia-world-architecture.md +980 -0
  174. iopenpod-2.0.4/docs/research/windows-store-requirements.md +130 -0
  175. iopenpod-2.0.4/docs/scrobbling.md +104 -0
  176. iopenpod-2.0.4/docs/source_architecture.md +2545 -0
  177. iopenpod-2.0.4/docs/sync-media-policy.md +108 -0
  178. iopenpod-2.0.4/docs/sync-validation.md +89 -0
  179. iopenpod-2.0.4/docs/sync-workflow-audit-2026-09-26.md +99 -0
  180. iopenpod-2.0.4/docs/synesthesia_backend.md +144 -0
  181. iopenpod-2.0.4/docs/synesthesia_visual_direction.md +221 -0
  182. iopenpod-2.0.4/docs/translations.md +117 -0
  183. iopenpod-2.0.4/docs/volume-presentation.md +82 -0
  184. iopenpod-2.0.4/main.py +16 -0
  185. iopenpod-2.0.4/packaging/github-release.md +44 -0
  186. iopenpod-2.0.4/packaging/hooks/hook-PySide6.QtGui.py +23 -0
  187. iopenpod-2.0.4/packaging/hooks/hook-sklearn.py +5 -0
  188. iopenpod-2.0.4/packaging/iOpenPod.spec +133 -0
  189. iopenpod-2.0.4/packaging/linux/flatpak.json +28 -0
  190. iopenpod-2.0.4/packaging/linux/io.github.therealsavi.iOpenPod.desktop +11 -0
  191. iopenpod-2.0.4/packaging/linux/io.github.therealsavi.iOpenPod.metainfo.xml +18 -0
  192. iopenpod-2.0.4/packaging/linux/snapcraft.yaml +40 -0
  193. iopenpod-2.0.4/packaging/macos/app-store.entitlements.plist +10 -0
  194. iopenpod-2.0.4/packaging/macos/dmg-background.png +0 -0
  195. iopenpod-2.0.4/packaging/macos/dmg-background.svg +24 -0
  196. iopenpod-2.0.4/packaging/macos/dmg-layout.applescript +36 -0
  197. iopenpod-2.0.4/packaging/macos/helper.entitlements.plist +6 -0
  198. iopenpod-2.0.4/packaging/macos/update_bridge.m +142 -0
  199. iopenpod-2.0.4/packaging/third-party/Microsoft-runtime-NOTICE.txt +26 -0
  200. iopenpod-2.0.4/packaging/third-party/Python-Windows-Binary-LICENSE.txt +502 -0
  201. iopenpod-2.0.4/packaging/third-party/README.md +116 -0
  202. iopenpod-2.0.4/packaging/third-party/libsndfile-no-version-resource.patch +11 -0
  203. iopenpod-2.0.4/packaging/third-party/native-build-tools.json +26 -0
  204. iopenpod-2.0.4/packaging/third-party/native-evidence.json +57 -0
  205. iopenpod-2.0.4/packaging/third-party/notices/audioread-3.1.0-NOTICES.txt +31 -0
  206. iopenpod-2.0.4/packaging/third-party/notices/bzip2-1.0.8-NOTICES.txt +54 -0
  207. iopenpod-2.0.4/packaging/third-party/notices/certifi-2026.7.22-NOTICES.txt +32 -0
  208. iopenpod-2.0.4/packaging/third-party/notices/cffi-2.1.1-NOTICES.txt +47 -0
  209. iopenpod-2.0.4/packaging/third-party/notices/charset-normalizer-3.5.1-NOTICES.txt +47 -0
  210. iopenpod-2.0.4/packaging/third-party/notices/cloudpickle-3.1.2-NOTICES.txt +44 -0
  211. iopenpod-2.0.4/packaging/third-party/notices/colorama-0.4.6-NOTICES.txt +39 -0
  212. iopenpod-2.0.4/packaging/third-party/notices/cpython-3.12-3.12.14-NOTICES.txt +1649 -0
  213. iopenpod-2.0.4/packaging/third-party/notices/decorator-5.3.1-NOTICES.txt +39 -0
  214. iopenpod-2.0.4/packaging/third-party/notices/expat-2.8.3-NOTICES.txt +48 -0
  215. iopenpod-2.0.4/packaging/third-party/notices/feedparser-6.0.14-NOTICES.txt +110 -0
  216. iopenpod-2.0.4/packaging/third-party/notices/feedparser-sgmllib-2.1.0-NOTICES.txt +298 -0
  217. iopenpod-2.0.4/packaging/third-party/notices/ffmpeg-7.1.5-NOTICES.txt +1841 -0
  218. iopenpod-2.0.4/packaging/third-party/notices/hashab-f80d46432204c6238cad7d8ca3b3dd52ea66836b-NOTICES.txt +36 -0
  219. iopenpod-2.0.4/packaging/third-party/notices/idna-3.19-NOTICES.txt +43 -0
  220. iopenpod-2.0.4/packaging/third-party/notices/importlib-resources-7.1.0-NOTICES.txt +85 -0
  221. iopenpod-2.0.4/packaging/third-party/notices/joblib-1.6.0-NOTICES.txt +41 -0
  222. iopenpod-2.0.4/packaging/third-party/notices/lazy-loader-0.5-NOTICES.txt +41 -0
  223. iopenpod-2.0.4/packaging/third-party/notices/libffi-3.4.8-NOTICES.txt +391 -0
  224. iopenpod-2.0.4/packaging/third-party/notices/librosa-0.11.0-NOTICES.txt +27 -0
  225. iopenpod-2.0.4/packaging/third-party/notices/libsndfile-1.2.2-NOTICES.txt +775 -0
  226. iopenpod-2.0.4/packaging/third-party/notices/llvm-llvmlite-22.1.0-NOTICES.txt +7571 -0
  227. iopenpod-2.0.4/packaging/third-party/notices/llvm-mesa-3.6.2-NOTICES.txt +289 -0
  228. iopenpod-2.0.4/packaging/third-party/notices/llvmlite-0.49.0-NOTICES.txt +266 -0
  229. iopenpod-2.0.4/packaging/third-party/notices/mesa-11.2.2-NOTICES.txt +623 -0
  230. iopenpod-2.0.4/packaging/third-party/notices/mpdecimal-4.0.0-NOTICES.txt +100 -0
  231. iopenpod-2.0.4/packaging/third-party/notices/msgpack-1.2.2-NOTICES.txt +25 -0
  232. iopenpod-2.0.4/packaging/third-party/notices/mutagen-1.48.1-NOTICES.txt +351 -0
  233. iopenpod-2.0.4/packaging/third-party/notices/narwhals-2.26.0-NOTICES.txt +33 -0
  234. iopenpod-2.0.4/packaging/third-party/notices/numba-0.67.0-NOTICES.txt +610 -0
  235. iopenpod-2.0.4/packaging/third-party/notices/numpy-2.5.3-NOTICES.txt +1695 -0
  236. iopenpod-2.0.4/packaging/third-party/notices/openblas-numpy-446c436e10450c348169808f1a6b3fae0925c9f7-NOTICES.txt +235 -0
  237. iopenpod-2.0.4/packaging/third-party/notices/openblas-numpy-build-v0.3.34.106.0-NOTICES.txt +2771 -0
  238. iopenpod-2.0.4/packaging/third-party/notices/openblas-scipy-5ffbf38b41a1fe494d038efcb09cf22f4d527c22-NOTICES.txt +235 -0
  239. iopenpod-2.0.4/packaging/third-party/notices/openblas-scipy-build-v0.3.31.22.0-NOTICES.txt +2771 -0
  240. iopenpod-2.0.4/packaging/third-party/notices/openssl-3.5-3.5.8-NOTICES.txt +620 -0
  241. iopenpod-2.0.4/packaging/third-party/notices/packaging-26.3-NOTICES.txt +248 -0
  242. iopenpod-2.0.4/packaging/third-party/notices/pillow-12.3.0-NOTICES.txt +227 -0
  243. iopenpod-2.0.4/packaging/third-party/notices/pillow-build-12.3.0-NOTICES.txt +1749 -0
  244. iopenpod-2.0.4/packaging/third-party/notices/platformdirs-4.11.8-NOTICES.txt +33 -0
  245. iopenpod-2.0.4/packaging/third-party/notices/pooch-1.9.0-NOTICES.txt +37 -0
  246. iopenpod-2.0.4/packaging/third-party/notices/provenance.json +10546 -0
  247. iopenpod-2.0.4/packaging/third-party/notices/pycparser-3.0-NOTICES.txt +39 -0
  248. iopenpod-2.0.4/packaging/third-party/notices/pycryptodome-3.23.0-NOTICES.txt +431 -0
  249. iopenpod-2.0.4/packaging/third-party/notices/pyinstaller-6.22.3-NOTICES.txt +746 -0
  250. iopenpod-2.0.4/packaging/third-party/notices/pyside-setup-6.11.2-NOTICES.txt +4339 -0
  251. iopenpod-2.0.4/packaging/third-party/notices/python-build-standalone-20260825-NOTICES.txt +3009 -0
  252. iopenpod-2.0.4/packaging/third-party/notices/pywinrt-3.2.1-NOTICES.txt +34 -0
  253. iopenpod-2.0.4/packaging/third-party/notices/qtbase-6.11.2-NOTICES.txt +10866 -0
  254. iopenpod-2.0.4/packaging/third-party/notices/qtdeclarative-6.11.2-NOTICES.txt +3148 -0
  255. iopenpod-2.0.4/packaging/third-party/notices/qtimageformats-6.11.2-NOTICES.txt +2011 -0
  256. iopenpod-2.0.4/packaging/third-party/notices/qtmultimedia-6.11.2-NOTICES.txt +4837 -0
  257. iopenpod-2.0.4/packaging/third-party/notices/qtshadertools-6.11.2-NOTICES.txt +3475 -0
  258. iopenpod-2.0.4/packaging/third-party/notices/qtsvg-6.11.2-NOTICES.txt +1888 -0
  259. iopenpod-2.0.4/packaging/third-party/notices/qttools-6.11.2-NOTICES.txt +4513 -0
  260. iopenpod-2.0.4/packaging/third-party/notices/qttranslations-6.11.2-NOTICES.txt +791 -0
  261. iopenpod-2.0.4/packaging/third-party/notices/requests-2.34.2-NOTICES.txt +194 -0
  262. iopenpod-2.0.4/packaging/third-party/notices/rust-addr2line-0.24.1-NOTICES.txt +243 -0
  263. iopenpod-2.0.4/packaging/third-party/notices/rust-addr2line-0.25.0-NOTICES.txt +243 -0
  264. iopenpod-2.0.4/packaging/third-party/notices/rust-adler2-2.0.0-NOTICES.txt +258 -0
  265. iopenpod-2.0.4/packaging/third-party/notices/rust-aes-0.8.4-NOTICES.txt +243 -0
  266. iopenpod-2.0.4/packaging/third-party/notices/rust-aho-corasick-1.0.2-NOTICES.txt +41 -0
  267. iopenpod-2.0.4/packaging/third-party/notices/rust-allocator-api2-0.2.20-NOTICES.txt +216 -0
  268. iopenpod-2.0.4/packaging/third-party/notices/rust-ambient-authority-0.0.2-NOTICES.txt +499 -0
  269. iopenpod-2.0.4/packaging/third-party/notices/rust-android_system_properties-0.1.5-NOTICES.txt +50 -0
  270. iopenpod-2.0.4/packaging/third-party/notices/rust-anes-0.1.6-NOTICES.txt +7 -0
  271. iopenpod-2.0.4/packaging/third-party/notices/rust-anstream-0.6.15-NOTICES.txt +237 -0
  272. iopenpod-2.0.4/packaging/third-party/notices/rust-anstyle-1.0.8-NOTICES.txt +237 -0
  273. iopenpod-2.0.4/packaging/third-party/notices/rust-anstyle-parse-0.2.1-NOTICES.txt +243 -0
  274. iopenpod-2.0.4/packaging/third-party/notices/rust-anstyle-query-1.1.2-NOTICES.txt +237 -0
  275. iopenpod-2.0.4/packaging/third-party/notices/rust-anstyle-wincon-3.0.4-NOTICES.txt +237 -0
  276. iopenpod-2.0.4/packaging/third-party/notices/rust-anyhow-1.0.93-NOTICES.txt +216 -0
  277. iopenpod-2.0.4/packaging/third-party/notices/rust-arbitrary-1.4.1-NOTICES.txt +245 -0
  278. iopenpod-2.0.4/packaging/third-party/notices/rust-arbtest-0.3.1-NOTICES.txt +241 -0
  279. iopenpod-2.0.4/packaging/third-party/notices/rust-arrayvec-0.7.6-NOTICES.txt +243 -0
  280. iopenpod-2.0.4/packaging/third-party/notices/rust-async-trait-0.1.71-NOTICES.txt +216 -0
  281. iopenpod-2.0.4/packaging/third-party/notices/rust-autocfg-1.1.0-NOTICES.txt +243 -0
  282. iopenpod-2.0.4/packaging/third-party/notices/rust-backtrace-0.3.75-NOTICES.txt +243 -0
  283. iopenpod-2.0.4/packaging/third-party/notices/rust-base64-0.22.1-NOTICES.txt +239 -0
  284. iopenpod-2.0.4/packaging/third-party/notices/rust-base64ct-1.6.0-NOTICES.txt +244 -0
  285. iopenpod-2.0.4/packaging/third-party/notices/rust-beef-0.5.2-NOTICES.txt +239 -0
  286. iopenpod-2.0.4/packaging/third-party/notices/rust-bindgen-0.71.1-NOTICES.txt +41 -0
  287. iopenpod-2.0.4/packaging/third-party/notices/rust-bit-set-0.5.2-NOTICES.txt +243 -0
  288. iopenpod-2.0.4/packaging/third-party/notices/rust-bit-vec-0.6.3-NOTICES.txt +243 -0
  289. iopenpod-2.0.4/packaging/third-party/notices/rust-bitflags-1.3.2-NOTICES.txt +243 -0
  290. iopenpod-2.0.4/packaging/third-party/notices/rust-bitflags-2.6.0-NOTICES.txt +243 -0
  291. iopenpod-2.0.4/packaging/third-party/notices/rust-bitmaps-2.1.0-NOTICES.txt +367 -0
  292. iopenpod-2.0.4/packaging/third-party/notices/rust-block-buffer-0.10.2-NOTICES.txt +243 -0
  293. iopenpod-2.0.4/packaging/third-party/notices/rust-bstr-1.6.0-NOTICES.txt +302 -0
  294. iopenpod-2.0.4/packaging/third-party/notices/rust-bumpalo-3.16.0-NOTICES.txt +243 -0
  295. iopenpod-2.0.4/packaging/third-party/notices/rust-byteorder-1.4.3-NOTICES.txt +41 -0
  296. iopenpod-2.0.4/packaging/third-party/notices/rust-bytes-1.5.0-NOTICES.txt +37 -0
  297. iopenpod-2.0.4/packaging/third-party/notices/rust-bytesize-2.0.1-NOTICES.txt +213 -0
  298. iopenpod-2.0.4/packaging/third-party/notices/rust-bzip2-0.4.4-NOTICES.txt +243 -0
  299. iopenpod-2.0.4/packaging/third-party/notices/rust-bzip2-sys-0.1.11+1.0.8-NOTICES.txt +290 -0
  300. iopenpod-2.0.4/packaging/third-party/notices/rust-camino-1.1.4-NOTICES.txt +241 -0
  301. iopenpod-2.0.4/packaging/third-party/notices/rust-cap-fs-ext-3.4.4-NOTICES.txt +499 -0
  302. iopenpod-2.0.4/packaging/third-party/notices/rust-cap-net-ext-3.4.4-NOTICES.txt +499 -0
  303. iopenpod-2.0.4/packaging/third-party/notices/rust-cap-primitives-3.4.4-NOTICES.txt +499 -0
  304. iopenpod-2.0.4/packaging/third-party/notices/rust-cap-rand-3.4.4-NOTICES.txt +499 -0
  305. iopenpod-2.0.4/packaging/third-party/notices/rust-cap-std-3.4.4-NOTICES.txt +499 -0
  306. iopenpod-2.0.4/packaging/third-party/notices/rust-cap-time-ext-3.4.4-NOTICES.txt +499 -0
  307. iopenpod-2.0.4/packaging/third-party/notices/rust-capstone-0.13.0-NOTICES.txt +33 -0
  308. iopenpod-2.0.4/packaging/third-party/notices/rust-capstone-sys-0.17.0-NOTICES.txt +216 -0
  309. iopenpod-2.0.4/packaging/third-party/notices/rust-cargo-platform-0.1.2-NOTICES.txt +241 -0
  310. iopenpod-2.0.4/packaging/third-party/notices/rust-cargo_metadata-0.19.2-NOTICES.txt +35 -0
  311. iopenpod-2.0.4/packaging/third-party/notices/rust-cast-0.3.0-NOTICES.txt +243 -0
  312. iopenpod-2.0.4/packaging/third-party/notices/rust-cc-1.2.22-NOTICES.txt +243 -0
  313. iopenpod-2.0.4/packaging/third-party/notices/rust-cexpr-0.6.0-NOTICES.txt +243 -0
  314. iopenpod-2.0.4/packaging/third-party/notices/rust-cfg-if-1.0.0-NOTICES.txt +243 -0
  315. iopenpod-2.0.4/packaging/third-party/notices/rust-ciborium-0.2.0-NOTICES.txt +213 -0
  316. iopenpod-2.0.4/packaging/third-party/notices/rust-ciborium-io-0.2.0-NOTICES.txt +7 -0
  317. iopenpod-2.0.4/packaging/third-party/notices/rust-ciborium-ll-0.2.0-NOTICES.txt +7 -0
  318. iopenpod-2.0.4/packaging/third-party/notices/rust-cipher-0.4.4-NOTICES.txt +243 -0
  319. iopenpod-2.0.4/packaging/third-party/notices/rust-clang-sys-1.8.1-NOTICES.txt +214 -0
  320. iopenpod-2.0.4/packaging/third-party/notices/rust-clap-4.5.36-NOTICES.txt +237 -0
  321. iopenpod-2.0.4/packaging/third-party/notices/rust-clap_builder-4.5.36-NOTICES.txt +239 -0
  322. iopenpod-2.0.4/packaging/third-party/notices/rust-clap_complete-4.5.28-NOTICES.txt +239 -0
  323. iopenpod-2.0.4/packaging/third-party/notices/rust-clap_derive-4.5.32-NOTICES.txt +239 -0
  324. iopenpod-2.0.4/packaging/third-party/notices/rust-clap_lex-0.7.4-NOTICES.txt +239 -0
  325. iopenpod-2.0.4/packaging/third-party/notices/rust-cobs-0.2.3-NOTICES.txt +237 -0
  326. iopenpod-2.0.4/packaging/third-party/notices/rust-codespan-reporting-0.11.1-NOTICES.txt +7 -0
  327. iopenpod-2.0.4/packaging/third-party/notices/rust-colorchoice-1.0.0-NOTICES.txt +237 -0
  328. iopenpod-2.0.4/packaging/third-party/notices/rust-console-0.15.8-NOTICES.txt +33 -0
  329. iopenpod-2.0.4/packaging/third-party/notices/rust-constant_time_eq-0.1.5-NOTICES.txt +133 -0
  330. iopenpod-2.0.4/packaging/third-party/notices/rust-core-foundation-0.9.4-NOTICES.txt +243 -0
  331. iopenpod-2.0.4/packaging/third-party/notices/rust-core-foundation-sys-0.8.6-NOTICES.txt +243 -0
  332. iopenpod-2.0.4/packaging/third-party/notices/rust-cpp_demangle-0.4.3-NOTICES.txt +243 -0
  333. iopenpod-2.0.4/packaging/third-party/notices/rust-cpufeatures-0.2.7-NOTICES.txt +243 -0
  334. iopenpod-2.0.4/packaging/third-party/notices/rust-crc32fast-1.3.2-NOTICES.txt +239 -0
  335. iopenpod-2.0.4/packaging/third-party/notices/rust-criterion-0.6.0-NOTICES.txt +243 -0
  336. iopenpod-2.0.4/packaging/third-party/notices/rust-criterion-plot-0.5.0-NOTICES.txt +243 -0
  337. iopenpod-2.0.4/packaging/third-party/notices/rust-crossbeam-deque-0.8.1-NOTICES.txt +245 -0
  338. iopenpod-2.0.4/packaging/third-party/notices/rust-crossbeam-epoch-0.9.18-NOTICES.txt +245 -0
  339. iopenpod-2.0.4/packaging/third-party/notices/rust-crossbeam-utils-0.8.20-NOTICES.txt +245 -0
  340. iopenpod-2.0.4/packaging/third-party/notices/rust-crunchy-0.2.2-NOTICES.txt +7 -0
  341. iopenpod-2.0.4/packaging/third-party/notices/rust-crypto-common-0.1.6-NOTICES.txt +243 -0
  342. iopenpod-2.0.4/packaging/third-party/notices/rust-cty-0.2.2-NOTICES.txt +243 -0
  343. iopenpod-2.0.4/packaging/third-party/notices/rust-debugid-0.8.0-NOTICES.txt +213 -0
  344. iopenpod-2.0.4/packaging/third-party/notices/rust-deranged-0.3.11-NOTICES.txt +238 -0
  345. iopenpod-2.0.4/packaging/third-party/notices/rust-derive_arbitrary-1.4.0-NOTICES.txt +245 -0
  346. iopenpod-2.0.4/packaging/third-party/notices/rust-digest-0.10.7-NOTICES.txt +243 -0
  347. iopenpod-2.0.4/packaging/third-party/notices/rust-directories-next-2.0.0-NOTICES.txt +210 -0
  348. iopenpod-2.0.4/packaging/third-party/notices/rust-dirs-sys-next-0.1.2-NOTICES.txt +210 -0
  349. iopenpod-2.0.4/packaging/third-party/notices/rust-displaydoc-0.2.5-NOTICES.txt +241 -0
  350. iopenpod-2.0.4/packaging/third-party/notices/rust-dlmalloc-0.2.4-NOTICES.txt +243 -0
  351. iopenpod-2.0.4/packaging/third-party/notices/rust-downcast-rs-2.0.1-NOTICES.txt +243 -0
  352. iopenpod-2.0.4/packaging/third-party/notices/rust-easy-smt-0.2.2-NOTICES.txt +243 -0
  353. iopenpod-2.0.4/packaging/third-party/notices/rust-egg-0.6.0-NOTICES.txt +32 -0
  354. iopenpod-2.0.4/packaging/third-party/notices/rust-either-1.13.0-NOTICES.txt +243 -0
  355. iopenpod-2.0.4/packaging/third-party/notices/rust-embedded-io-0.4.0-NOTICES.txt +243 -0
  356. iopenpod-2.0.4/packaging/third-party/notices/rust-encode_unicode-0.3.6-NOTICES.txt +236 -0
  357. iopenpod-2.0.4/packaging/third-party/notices/rust-encoding_rs-0.8.31-NOTICES.txt +297 -0
  358. iopenpod-2.0.4/packaging/third-party/notices/rust-env_filter-0.1.2-NOTICES.txt +237 -0
  359. iopenpod-2.0.4/packaging/third-party/notices/rust-env_logger-0.10.0-NOTICES.txt +241 -0
  360. iopenpod-2.0.4/packaging/third-party/notices/rust-env_logger-0.11.5-NOTICES.txt +237 -0
  361. iopenpod-2.0.4/packaging/third-party/notices/rust-equivalent-1.0.1-NOTICES.txt +243 -0
  362. iopenpod-2.0.4/packaging/third-party/notices/rust-errno-0.3.10-NOTICES.txt +243 -0
  363. iopenpod-2.0.4/packaging/third-party/notices/rust-escape8259-0.5.2-NOTICES.txt +33 -0
  364. iopenpod-2.0.4/packaging/third-party/notices/rust-fallible-iterator-0.3.0-NOTICES.txt +237 -0
  365. iopenpod-2.0.4/packaging/third-party/notices/rust-fastrand-2.3.0-NOTICES.txt +241 -0
  366. iopenpod-2.0.4/packaging/third-party/notices/rust-fd-lock-4.0.2-NOTICES.txt +228 -0
  367. iopenpod-2.0.4/packaging/third-party/notices/rust-file-per-thread-logger-0.2.0-NOTICES.txt +231 -0
  368. iopenpod-2.0.4/packaging/third-party/notices/rust-filecheck-0.5.0-NOTICES.txt +231 -0
  369. iopenpod-2.0.4/packaging/third-party/notices/rust-filetime-0.2.16-NOTICES.txt +243 -0
  370. iopenpod-2.0.4/packaging/third-party/notices/rust-fixedbitset-0.4.2-NOTICES.txt +243 -0
  371. iopenpod-2.0.4/packaging/third-party/notices/rust-flagset-0.4.3-NOTICES.txt +214 -0
  372. iopenpod-2.0.4/packaging/third-party/notices/rust-flate2-1.1.0-NOTICES.txt +243 -0
  373. iopenpod-2.0.4/packaging/third-party/notices/rust-fnv-1.0.7-NOTICES.txt +243 -0
  374. iopenpod-2.0.4/packaging/third-party/notices/rust-foldhash-0.1.3-NOTICES.txt +31 -0
  375. iopenpod-2.0.4/packaging/third-party/notices/rust-foreign-types-0.3.2-NOTICES.txt +237 -0
  376. iopenpod-2.0.4/packaging/third-party/notices/rust-foreign-types-shared-0.1.1-NOTICES.txt +237 -0
  377. iopenpod-2.0.4/packaging/third-party/notices/rust-form_urlencoded-1.2.1-NOTICES.txt +243 -0
  378. iopenpod-2.0.4/packaging/third-party/notices/rust-fs-set-times-0.20.1-NOTICES.txt +499 -0
  379. iopenpod-2.0.4/packaging/third-party/notices/rust-fslock-0.2.1-NOTICES.txt +33 -0
  380. iopenpod-2.0.4/packaging/third-party/notices/rust-futures-0.3.31-NOTICES.txt +245 -0
  381. iopenpod-2.0.4/packaging/third-party/notices/rust-futures-channel-0.3.31-NOTICES.txt +245 -0
  382. iopenpod-2.0.4/packaging/third-party/notices/rust-futures-core-0.3.31-NOTICES.txt +245 -0
  383. iopenpod-2.0.4/packaging/third-party/notices/rust-futures-executor-0.3.31-NOTICES.txt +245 -0
  384. iopenpod-2.0.4/packaging/third-party/notices/rust-futures-io-0.3.31-NOTICES.txt +245 -0
  385. iopenpod-2.0.4/packaging/third-party/notices/rust-futures-macro-0.3.31-NOTICES.txt +245 -0
  386. iopenpod-2.0.4/packaging/third-party/notices/rust-futures-sink-0.3.31-NOTICES.txt +245 -0
  387. iopenpod-2.0.4/packaging/third-party/notices/rust-futures-task-0.3.31-NOTICES.txt +245 -0
  388. iopenpod-2.0.4/packaging/third-party/notices/rust-futures-util-0.3.31-NOTICES.txt +245 -0
  389. iopenpod-2.0.4/packaging/third-party/notices/rust-fxprof-processed-profile-0.8.1-NOTICES.txt +7 -0
  390. iopenpod-2.0.4/packaging/third-party/notices/rust-generic-array-0.14.5-NOTICES.txt +33 -0
  391. iopenpod-2.0.4/packaging/third-party/notices/rust-getrandom-0.2.15-NOTICES.txt +244 -0
  392. iopenpod-2.0.4/packaging/third-party/notices/rust-getrandom-0.3.1-NOTICES.txt +244 -0
  393. iopenpod-2.0.4/packaging/third-party/notices/rust-gimli-0.31.1-NOTICES.txt +243 -0
  394. iopenpod-2.0.4/packaging/third-party/notices/rust-gimli-0.32.0-NOTICES.txt +243 -0
  395. iopenpod-2.0.4/packaging/third-party/notices/rust-glob-0.3.1-NOTICES.txt +243 -0
  396. iopenpod-2.0.4/packaging/third-party/notices/rust-gzip-header-1.0.0-NOTICES.txt +244 -0
  397. iopenpod-2.0.4/packaging/third-party/notices/rust-h2-0.4.4-NOTICES.txt +37 -0
  398. iopenpod-2.0.4/packaging/third-party/notices/rust-half-1.8.2-NOTICES.txt +105 -0
  399. iopenpod-2.0.4/packaging/third-party/notices/rust-half-2.4.1-NOTICES.txt +105 -0
  400. iopenpod-2.0.4/packaging/third-party/notices/rust-hashbrown-0.12.3-NOTICES.txt +243 -0
  401. iopenpod-2.0.4/packaging/third-party/notices/rust-hashbrown-0.15.2-NOTICES.txt +243 -0
  402. iopenpod-2.0.4/packaging/third-party/notices/rust-heck-0.4.1-NOTICES.txt +243 -0
  403. iopenpod-2.0.4/packaging/third-party/notices/rust-heck-0.5.0-NOTICES.txt +243 -0
  404. iopenpod-2.0.4/packaging/third-party/notices/rust-hermit-abi-0.3.9-NOTICES.txt +241 -0
  405. iopenpod-2.0.4/packaging/third-party/notices/rust-hmac-0.12.1-NOTICES.txt +243 -0
  406. iopenpod-2.0.4/packaging/third-party/notices/rust-home-0.5.9-NOTICES.txt +241 -0
  407. iopenpod-2.0.4/packaging/third-party/notices/rust-http-1.0.0-NOTICES.txt +243 -0
  408. iopenpod-2.0.4/packaging/third-party/notices/rust-http-body-1.0.0-NOTICES.txt +7 -0
  409. iopenpod-2.0.4/packaging/third-party/notices/rust-http-body-util-0.1.0-NOTICES.txt +7 -0
  410. iopenpod-2.0.4/packaging/third-party/notices/rust-httparse-1.8.0-NOTICES.txt +237 -0
  411. iopenpod-2.0.4/packaging/third-party/notices/rust-httpdate-1.0.2-NOTICES.txt +237 -0
  412. iopenpod-2.0.4/packaging/third-party/notices/rust-humantime-2.1.0-NOTICES.txt +244 -0
  413. iopenpod-2.0.4/packaging/third-party/notices/rust-hyper-1.0.1-NOTICES.txt +31 -0
  414. iopenpod-2.0.4/packaging/third-party/notices/rust-iana-time-zone-0.1.61-NOTICES.txt +243 -0
  415. iopenpod-2.0.4/packaging/third-party/notices/rust-iana-time-zone-haiku-0.1.2-NOTICES.txt +243 -0
  416. iopenpod-2.0.4/packaging/third-party/notices/rust-icu_collections-1.5.0-NOTICES.txt +58 -0
  417. iopenpod-2.0.4/packaging/third-party/notices/rust-icu_locid-1.5.0-NOTICES.txt +58 -0
  418. iopenpod-2.0.4/packaging/third-party/notices/rust-icu_locid_transform-1.5.0-NOTICES.txt +58 -0
  419. iopenpod-2.0.4/packaging/third-party/notices/rust-icu_locid_transform_data-1.5.0-NOTICES.txt +58 -0
  420. iopenpod-2.0.4/packaging/third-party/notices/rust-icu_normalizer-1.5.0-NOTICES.txt +58 -0
  421. iopenpod-2.0.4/packaging/third-party/notices/rust-icu_normalizer_data-1.5.0-NOTICES.txt +58 -0
  422. iopenpod-2.0.4/packaging/third-party/notices/rust-icu_properties-1.5.1-NOTICES.txt +58 -0
  423. iopenpod-2.0.4/packaging/third-party/notices/rust-icu_properties_data-1.5.0-NOTICES.txt +58 -0
  424. iopenpod-2.0.4/packaging/third-party/notices/rust-icu_provider-1.5.0-NOTICES.txt +58 -0
  425. iopenpod-2.0.4/packaging/third-party/notices/rust-icu_provider_macros-1.5.0-NOTICES.txt +58 -0
  426. iopenpod-2.0.4/packaging/third-party/notices/rust-id-arena-2.2.1-NOTICES.txt +243 -0
  427. iopenpod-2.0.4/packaging/third-party/notices/rust-idna-1.0.3-NOTICES.txt +243 -0
  428. iopenpod-2.0.4/packaging/third-party/notices/rust-idna_adapter-1.2.0-NOTICES.txt +243 -0
  429. iopenpod-2.0.4/packaging/third-party/notices/rust-im-rc-15.1.0-NOTICES.txt +367 -0
  430. iopenpod-2.0.4/packaging/third-party/notices/rust-indexmap-1.9.1-NOTICES.txt +243 -0
  431. iopenpod-2.0.4/packaging/third-party/notices/rust-indexmap-2.7.0-NOTICES.txt +243 -0
  432. iopenpod-2.0.4/packaging/third-party/notices/rust-indicatif-0.13.0-NOTICES.txt +33 -0
  433. iopenpod-2.0.4/packaging/third-party/notices/rust-inout-0.1.3-NOTICES.txt +244 -0
  434. iopenpod-2.0.4/packaging/third-party/notices/rust-instant-0.1.12-NOTICES.txt +46 -0
  435. iopenpod-2.0.4/packaging/third-party/notices/rust-io-extras-0.18.3-NOTICES.txt +499 -0
  436. iopenpod-2.0.4/packaging/third-party/notices/rust-io-lifetimes-2.0.3-NOTICES.txt +499 -0
  437. iopenpod-2.0.4/packaging/third-party/notices/rust-ipnet-2.5.0-NOTICES.txt +225 -0
  438. iopenpod-2.0.4/packaging/third-party/notices/rust-is-terminal-0.4.10-NOTICES.txt +63 -0
  439. iopenpod-2.0.4/packaging/third-party/notices/rust-is_terminal_polyfill-1.70.1-NOTICES.txt +237 -0
  440. iopenpod-2.0.4/packaging/third-party/notices/rust-itertools-0.10.5-NOTICES.txt +243 -0
  441. iopenpod-2.0.4/packaging/third-party/notices/rust-itertools-0.13.0-NOTICES.txt +243 -0
  442. iopenpod-2.0.4/packaging/third-party/notices/rust-itertools-0.14.0-NOTICES.txt +243 -0
  443. iopenpod-2.0.4/packaging/third-party/notices/rust-itoa-1.0.14-NOTICES.txt +216 -0
  444. iopenpod-2.0.4/packaging/third-party/notices/rust-ittapi-0.4.0-NOTICES.txt +7 -0
  445. iopenpod-2.0.4/packaging/third-party/notices/rust-ittapi-sys-0.4.0-NOTICES.txt +249 -0
  446. iopenpod-2.0.4/packaging/third-party/notices/rust-jobserver-0.1.32-NOTICES.txt +243 -0
  447. iopenpod-2.0.4/packaging/third-party/notices/rust-js-sys-0.3.74-NOTICES.txt +243 -0
  448. iopenpod-2.0.4/packaging/third-party/notices/rust-json-from-wast-0.239.0-NOTICES.txt +7 -0
  449. iopenpod-2.0.4/packaging/third-party/notices/rust-lazy_static-1.4.0-NOTICES.txt +243 -0
  450. iopenpod-2.0.4/packaging/third-party/notices/rust-leb128-0.2.5-NOTICES.txt +243 -0
  451. iopenpod-2.0.4/packaging/third-party/notices/rust-leb128fmt-0.1.0-NOTICES.txt +241 -0
  452. iopenpod-2.0.4/packaging/third-party/notices/rust-libc-0.2.171-NOTICES.txt +218 -0
  453. iopenpod-2.0.4/packaging/third-party/notices/rust-libfuzzer-sys-0.4.8-NOTICES.txt +243 -0
  454. iopenpod-2.0.4/packaging/third-party/notices/rust-libloading-0.8.6-NOTICES.txt +24 -0
  455. iopenpod-2.0.4/packaging/third-party/notices/rust-libm-0.2.11-NOTICES.txt +270 -0
  456. iopenpod-2.0.4/packaging/third-party/notices/rust-libtest-mimic-0.8.1-NOTICES.txt +243 -0
  457. iopenpod-2.0.4/packaging/third-party/notices/rust-linux-raw-sys-0.4.14-NOTICES.txt +499 -0
  458. iopenpod-2.0.4/packaging/third-party/notices/rust-linux-raw-sys-0.9.3-NOTICES.txt +499 -0
  459. iopenpod-2.0.4/packaging/third-party/notices/rust-listenfd-1.0.0-NOTICES.txt +213 -0
  460. iopenpod-2.0.4/packaging/third-party/notices/rust-litemap-0.7.4-NOTICES.txt +58 -0
  461. iopenpod-2.0.4/packaging/third-party/notices/rust-log-0.4.27-NOTICES.txt +243 -0
  462. iopenpod-2.0.4/packaging/third-party/notices/rust-logos-0.14.2-NOTICES.txt +239 -0
  463. iopenpod-2.0.4/packaging/third-party/notices/rust-logos-codegen-0.14.2-NOTICES.txt +239 -0
  464. iopenpod-2.0.4/packaging/third-party/notices/rust-logos-derive-0.14.2-NOTICES.txt +239 -0
  465. iopenpod-2.0.4/packaging/third-party/notices/rust-mach2-0.4.2-NOTICES.txt +246 -0
  466. iopenpod-2.0.4/packaging/third-party/notices/rust-matchers-0.1.0-NOTICES.txt +31 -0
  467. iopenpod-2.0.4/packaging/third-party/notices/rust-matrixmultiply-0.3.9-NOTICES.txt +245 -0
  468. iopenpod-2.0.4/packaging/third-party/notices/rust-maybe-owned-0.3.4-NOTICES.txt +243 -0
  469. iopenpod-2.0.4/packaging/third-party/notices/rust-memchr-2.5.0-NOTICES.txt +41 -0
  470. iopenpod-2.0.4/packaging/third-party/notices/rust-memfd-0.6.4-NOTICES.txt +234 -0
  471. iopenpod-2.0.4/packaging/third-party/notices/rust-memmap2-0.2.3-NOTICES.txt +244 -0
  472. iopenpod-2.0.4/packaging/third-party/notices/rust-minimal-lexical-0.2.1-NOTICES.txt +283 -0
  473. iopenpod-2.0.4/packaging/third-party/notices/rust-miniz_oxide-0.8.9-NOTICES.txt +267 -0
  474. iopenpod-2.0.4/packaging/third-party/notices/rust-mio-1.0.3-NOTICES.txt +31 -0
  475. iopenpod-2.0.4/packaging/third-party/notices/rust-multi-stash-0.2.0-NOTICES.txt +243 -0
  476. iopenpod-2.0.4/packaging/third-party/notices/rust-mutatis-0.3.2-NOTICES.txt +245 -0
  477. iopenpod-2.0.4/packaging/third-party/notices/rust-native-tls-0.2.14-NOTICES.txt +237 -0
  478. iopenpod-2.0.4/packaging/third-party/notices/rust-ndarray-0.15.6-NOTICES.txt +245 -0
  479. iopenpod-2.0.4/packaging/third-party/notices/rust-nom-7.1.3-NOTICES.txt +32 -0
  480. iopenpod-2.0.4/packaging/third-party/notices/rust-nu-ansi-term-0.46.0-NOTICES.txt +34 -0
  481. iopenpod-2.0.4/packaging/third-party/notices/rust-num-complex-0.4.6-NOTICES.txt +243 -0
  482. iopenpod-2.0.4/packaging/third-party/notices/rust-num-conv-0.1.0-NOTICES.txt +238 -0
  483. iopenpod-2.0.4/packaging/third-party/notices/rust-num-integer-0.1.46-NOTICES.txt +243 -0
  484. iopenpod-2.0.4/packaging/third-party/notices/rust-num-traits-0.2.19-NOTICES.txt +243 -0
  485. iopenpod-2.0.4/packaging/third-party/notices/rust-num_cpus-1.16.0-NOTICES.txt +237 -0
  486. iopenpod-2.0.4/packaging/third-party/notices/rust-number_prefix-0.3.0-NOTICES.txt +33 -0
  487. iopenpod-2.0.4/packaging/third-party/notices/rust-object-0.36.5-NOTICES.txt +243 -0
  488. iopenpod-2.0.4/packaging/third-party/notices/rust-object-0.37.3-NOTICES.txt +243 -0
  489. iopenpod-2.0.4/packaging/third-party/notices/rust-ocaml-boxroot-sys-0.2.0-NOTICES.txt +7 -0
  490. iopenpod-2.0.4/packaging/third-party/notices/rust-ocaml-interop-0.8.8-NOTICES.txt +37 -0
  491. iopenpod-2.0.4/packaging/third-party/notices/rust-ocaml-sys-0.22.3-NOTICES.txt +7 -0
  492. iopenpod-2.0.4/packaging/third-party/notices/rust-once_cell-1.19.0-NOTICES.txt +241 -0
  493. iopenpod-2.0.4/packaging/third-party/notices/rust-oorandom-11.1.3-NOTICES.txt +33 -0
  494. iopenpod-2.0.4/packaging/third-party/notices/rust-openssl-0.10.73-NOTICES.txt +233 -0
  495. iopenpod-2.0.4/packaging/third-party/notices/rust-openssl-macros-0.1.1-NOTICES.txt +237 -0
  496. iopenpod-2.0.4/packaging/third-party/notices/rust-openssl-probe-0.1.6-NOTICES.txt +243 -0
  497. iopenpod-2.0.4/packaging/third-party/notices/rust-openssl-sys-0.9.109-NOTICES.txt +37 -0
  498. iopenpod-2.0.4/packaging/third-party/notices/rust-openvino-0.9.0-NOTICES.txt +7 -0
  499. iopenpod-2.0.4/packaging/third-party/notices/rust-openvino-finder-0.9.0-NOTICES.txt +7 -0
  500. iopenpod-2.0.4/packaging/third-party/notices/rust-openvino-sys-0.9.0-NOTICES.txt +7 -0
  501. iopenpod-2.0.4/packaging/third-party/notices/rust-ort-2.0.0-rc.2-NOTICES.txt +241 -0
  502. iopenpod-2.0.4/packaging/third-party/notices/rust-ort-sys-2.0.0-rc.2-NOTICES.txt +241 -0
  503. iopenpod-2.0.4/packaging/third-party/notices/rust-overload-0.1.1-NOTICES.txt +33 -0
  504. iopenpod-2.0.4/packaging/third-party/notices/rust-password-hash-0.4.2-NOTICES.txt +243 -0
  505. iopenpod-2.0.4/packaging/third-party/notices/rust-paste-1.0.7-NOTICES.txt +243 -0
  506. iopenpod-2.0.4/packaging/third-party/notices/rust-pbkdf2-0.11.0-NOTICES.txt +244 -0
  507. iopenpod-2.0.4/packaging/third-party/notices/rust-percent-encoding-2.3.1-NOTICES.txt +243 -0
  508. iopenpod-2.0.4/packaging/third-party/notices/rust-petgraph-0.6.5-NOTICES.txt +255 -0
  509. iopenpod-2.0.4/packaging/third-party/notices/rust-pin-project-lite-0.2.14-NOTICES.txt +217 -0
  510. iopenpod-2.0.4/packaging/third-party/notices/rust-pin-utils-0.1.0-NOTICES.txt +243 -0
  511. iopenpod-2.0.4/packaging/third-party/notices/rust-pkg-config-0.3.29-NOTICES.txt +243 -0
  512. iopenpod-2.0.4/packaging/third-party/notices/rust-postcard-1.0.8-NOTICES.txt +675 -0
  513. iopenpod-2.0.4/packaging/third-party/notices/rust-powerfmt-0.2.0-NOTICES.txt +238 -0
  514. iopenpod-2.0.4/packaging/third-party/notices/rust-ppv-lite86-0.2.16-NOTICES.txt +243 -0
  515. iopenpod-2.0.4/packaging/third-party/notices/rust-prettyplease-0.2.31-NOTICES.txt +216 -0
  516. iopenpod-2.0.4/packaging/third-party/notices/rust-proc-macro2-1.0.92-NOTICES.txt +216 -0
  517. iopenpod-2.0.4/packaging/third-party/notices/rust-proptest-1.0.0-NOTICES.txt +243 -0
  518. iopenpod-2.0.4/packaging/third-party/notices/rust-quick-error-1.2.3-NOTICES.txt +237 -0
  519. iopenpod-2.0.4/packaging/third-party/notices/rust-quick-error-2.0.1-NOTICES.txt +237 -0
  520. iopenpod-2.0.4/packaging/third-party/notices/rust-quote-1.0.36-NOTICES.txt +216 -0
  521. iopenpod-2.0.4/packaging/third-party/notices/rust-rand-0.8.5-NOTICES.txt +236 -0
  522. iopenpod-2.0.4/packaging/third-party/notices/rust-rand-0.9.2-NOTICES.txt +236 -0
  523. iopenpod-2.0.4/packaging/third-party/notices/rust-rand_chacha-0.3.1-NOTICES.txt +261 -0
  524. iopenpod-2.0.4/packaging/third-party/notices/rust-rand_chacha-0.9.0-NOTICES.txt +236 -0
  525. iopenpod-2.0.4/packaging/third-party/notices/rust-rand_core-0.6.3-NOTICES.txt +261 -0
  526. iopenpod-2.0.4/packaging/third-party/notices/rust-rand_core-0.9.3-NOTICES.txt +247 -0
  527. iopenpod-2.0.4/packaging/third-party/notices/rust-rand_xorshift-0.3.0-NOTICES.txt +261 -0
  528. iopenpod-2.0.4/packaging/third-party/notices/rust-rand_xoshiro-0.6.0-NOTICES.txt +260 -0
  529. iopenpod-2.0.4/packaging/third-party/notices/rust-raw-cpuid-11.5.0-NOTICES.txt +62 -0
  530. iopenpod-2.0.4/packaging/third-party/notices/rust-rawpointer-0.2.1-NOTICES.txt +243 -0
  531. iopenpod-2.0.4/packaging/third-party/notices/rust-rayon-1.5.3-NOTICES.txt +243 -0
  532. iopenpod-2.0.4/packaging/third-party/notices/rust-rayon-core-1.12.0-NOTICES.txt +243 -0
  533. iopenpod-2.0.4/packaging/third-party/notices/rust-redox_syscall-0.2.13-NOTICES.txt +34 -0
  534. iopenpod-2.0.4/packaging/third-party/notices/rust-redox_users-0.4.3-NOTICES.txt +33 -0
  535. iopenpod-2.0.4/packaging/third-party/notices/rust-regalloc2-0.13.2-NOTICES.txt +231 -0
  536. iopenpod-2.0.4/packaging/third-party/notices/rust-regex-1.9.1-NOTICES.txt +243 -0
  537. iopenpod-2.0.4/packaging/third-party/notices/rust-regex-automata-0.1.10-NOTICES.txt +89 -0
  538. iopenpod-2.0.4/packaging/third-party/notices/rust-regex-automata-0.3.3-NOTICES.txt +243 -0
  539. iopenpod-2.0.4/packaging/third-party/notices/rust-regex-syntax-0.6.25-NOTICES.txt +305 -0
  540. iopenpod-2.0.4/packaging/third-party/notices/rust-regex-syntax-0.7.4-NOTICES.txt +305 -0
  541. iopenpod-2.0.4/packaging/third-party/notices/rust-regex-syntax-0.8.5-NOTICES.txt +305 -0
  542. iopenpod-2.0.4/packaging/third-party/notices/rust-region-3.0.2-NOTICES.txt +37 -0
  543. iopenpod-2.0.4/packaging/third-party/notices/rust-ring-0.17.14-NOTICES.txt +570 -0
  544. iopenpod-2.0.4/packaging/third-party/notices/rust-rustc-demangle-0.1.24-NOTICES.txt +243 -0
  545. iopenpod-2.0.4/packaging/third-party/notices/rust-rustc-hash-2.1.1-NOTICES.txt +216 -0
  546. iopenpod-2.0.4/packaging/third-party/notices/rust-rustix-0.38.43-NOTICES.txt +499 -0
  547. iopenpod-2.0.4/packaging/third-party/notices/rust-rustix-1.0.3-NOTICES.txt +499 -0
  548. iopenpod-2.0.4/packaging/third-party/notices/rust-rustix-linux-procfs-0.1.1-NOTICES.txt +499 -0
  549. iopenpod-2.0.4/packaging/third-party/notices/rust-rustls-0.22.4-NOTICES.txt +263 -0
  550. iopenpod-2.0.4/packaging/third-party/notices/rust-rustls-0.23.7-NOTICES.txt +263 -0
  551. iopenpod-2.0.4/packaging/third-party/notices/rust-rustls-pki-types-1.3.1-NOTICES.txt +243 -0
  552. iopenpod-2.0.4/packaging/third-party/notices/rust-rustls-webpki-0.102.2-NOTICES.txt +31 -0
  553. iopenpod-2.0.4/packaging/third-party/notices/rust-rustversion-1.0.14-NOTICES.txt +216 -0
  554. iopenpod-2.0.4/packaging/third-party/notices/rust-rusty-fork-0.3.0-NOTICES.txt +243 -0
  555. iopenpod-2.0.4/packaging/third-party/notices/rust-ryu-1.0.9-NOTICES.txt +241 -0
  556. iopenpod-2.0.4/packaging/third-party/notices/rust-safetensors-0.3.3-NOTICES.txt +7 -0
  557. iopenpod-2.0.4/packaging/third-party/notices/rust-same-file-1.0.6-NOTICES.txt +41 -0
  558. iopenpod-2.0.4/packaging/third-party/notices/rust-schannel-0.1.27-NOTICES.txt +19 -0
  559. iopenpod-2.0.4/packaging/third-party/notices/rust-security-framework-2.11.1-NOTICES.txt +238 -0
  560. iopenpod-2.0.4/packaging/third-party/notices/rust-security-framework-sys-2.14.0-NOTICES.txt +238 -0
  561. iopenpod-2.0.4/packaging/third-party/notices/rust-semver-1.0.17-NOTICES.txt +216 -0
  562. iopenpod-2.0.4/packaging/third-party/notices/rust-serde-1.0.215-NOTICES.txt +216 -0
  563. iopenpod-2.0.4/packaging/third-party/notices/rust-serde_derive-1.0.215-NOTICES.txt +216 -0
  564. iopenpod-2.0.4/packaging/third-party/notices/rust-serde_json-1.0.140-NOTICES.txt +216 -0
  565. iopenpod-2.0.4/packaging/third-party/notices/rust-serde_spanned-0.6.5-NOTICES.txt +237 -0
  566. iopenpod-2.0.4/packaging/third-party/notices/rust-serde_yaml-0.9.34+deprecated-NOTICES.txt +216 -0
  567. iopenpod-2.0.4/packaging/third-party/notices/rust-sha1-0.10.6-NOTICES.txt +245 -0
  568. iopenpod-2.0.4/packaging/third-party/notices/rust-sha2-0.10.2-NOTICES.txt +245 -0
  569. iopenpod-2.0.4/packaging/third-party/notices/rust-sharded-slab-0.1.4-NOTICES.txt +31 -0
  570. iopenpod-2.0.4/packaging/third-party/notices/rust-shlex-1.3.0-NOTICES.txt +51 -0
  571. iopenpod-2.0.4/packaging/third-party/notices/rust-shuffling-allocator-1.1.2-NOTICES.txt +385 -0
  572. iopenpod-2.0.4/packaging/third-party/notices/rust-signal-hook-registry-1.4.1-NOTICES.txt +243 -0
  573. iopenpod-2.0.4/packaging/third-party/notices/rust-similar-2.2.0-NOTICES.txt +213 -0
  574. iopenpod-2.0.4/packaging/third-party/notices/rust-sized-chunks-0.6.5-NOTICES.txt +367 -0
  575. iopenpod-2.0.4/packaging/third-party/notices/rust-slab-0.4.7-NOTICES.txt +37 -0
  576. iopenpod-2.0.4/packaging/third-party/notices/rust-smallvec-1.13.2-NOTICES.txt +243 -0
  577. iopenpod-2.0.4/packaging/third-party/notices/rust-socket2-0.5.7-NOTICES.txt +243 -0
  578. iopenpod-2.0.4/packaging/third-party/notices/rust-souper-ir-2.1.0-NOTICES.txt +7 -0
  579. iopenpod-2.0.4/packaging/third-party/notices/rust-spin-0.9.8-NOTICES.txt +33 -0
  580. iopenpod-2.0.4/packaging/third-party/notices/rust-stable_deref_trait-1.2.0-NOTICES.txt +243 -0
  581. iopenpod-2.0.4/packaging/third-party/notices/rust-static_assertions-1.1.0-NOTICES.txt +240 -0
  582. iopenpod-2.0.4/packaging/third-party/notices/rust-string-interner-0.19.0-NOTICES.txt +53 -0
  583. iopenpod-2.0.4/packaging/third-party/notices/rust-strsim-0.11.1-NOTICES.txt +35 -0
  584. iopenpod-2.0.4/packaging/third-party/notices/rust-strum-0.24.1-NOTICES.txt +33 -0
  585. iopenpod-2.0.4/packaging/third-party/notices/rust-strum_macros-0.24.3-NOTICES.txt +33 -0
  586. iopenpod-2.0.4/packaging/third-party/notices/rust-subtle-2.5.0-NOTICES.txt +40 -0
  587. iopenpod-2.0.4/packaging/third-party/notices/rust-symbolic_expressions-5.0.3-NOTICES.txt +234 -0
  588. iopenpod-2.0.4/packaging/third-party/notices/rust-syn-1.0.92-NOTICES.txt +241 -0
  589. iopenpod-2.0.4/packaging/third-party/notices/rust-syn-2.0.100-NOTICES.txt +216 -0
  590. iopenpod-2.0.4/packaging/third-party/notices/rust-synstructure-0.13.1-NOTICES.txt +19 -0
  591. iopenpod-2.0.4/packaging/third-party/notices/rust-system-interface-0.27.1-NOTICES.txt +499 -0
  592. iopenpod-2.0.4/packaging/third-party/notices/rust-tar-0.4.41-NOTICES.txt +243 -0
  593. iopenpod-2.0.4/packaging/third-party/notices/rust-target-lexicon-0.13.0-NOTICES.txt +231 -0
  594. iopenpod-2.0.4/packaging/third-party/notices/rust-tch-0.17.0-NOTICES.txt +316 -0
  595. iopenpod-2.0.4/packaging/third-party/notices/rust-tempfile-3.21.0-NOTICES.txt +243 -0
  596. iopenpod-2.0.4/packaging/third-party/notices/rust-termcolor-1.4.1-NOTICES.txt +41 -0
  597. iopenpod-2.0.4/packaging/third-party/notices/rust-terminal_size-0.4.2-NOTICES.txt +237 -0
  598. iopenpod-2.0.4/packaging/third-party/notices/rust-test-log-0.2.11-NOTICES.txt +239 -0
  599. iopenpod-2.0.4/packaging/third-party/notices/rust-thiserror-1.0.65-NOTICES.txt +216 -0
  600. iopenpod-2.0.4/packaging/third-party/notices/rust-thiserror-2.0.12-NOTICES.txt +216 -0
  601. iopenpod-2.0.4/packaging/third-party/notices/rust-thiserror-impl-1.0.65-NOTICES.txt +216 -0
  602. iopenpod-2.0.4/packaging/third-party/notices/rust-thiserror-impl-2.0.12-NOTICES.txt +216 -0
  603. iopenpod-2.0.4/packaging/third-party/notices/rust-thread_local-1.1.4-NOTICES.txt +243 -0
  604. iopenpod-2.0.4/packaging/third-party/notices/rust-time-0.3.36-NOTICES.txt +238 -0
  605. iopenpod-2.0.4/packaging/third-party/notices/rust-time-core-0.1.2-NOTICES.txt +238 -0
  606. iopenpod-2.0.4/packaging/third-party/notices/rust-tinystr-0.7.6-NOTICES.txt +58 -0
  607. iopenpod-2.0.4/packaging/third-party/notices/rust-tinytemplate-1.2.1-NOTICES.txt +243 -0
  608. iopenpod-2.0.4/packaging/third-party/notices/rust-tokio-1.44.2-NOTICES.txt +33 -0
  609. iopenpod-2.0.4/packaging/third-party/notices/rust-tokio-macros-2.5.0-NOTICES.txt +34 -0
  610. iopenpod-2.0.4/packaging/third-party/notices/rust-tokio-native-tls-0.3.1-NOTICES.txt +37 -0
  611. iopenpod-2.0.4/packaging/third-party/notices/rust-tokio-rustls-0.25.0-NOTICES.txt +243 -0
  612. iopenpod-2.0.4/packaging/third-party/notices/rust-tokio-util-0.7.4-NOTICES.txt +37 -0
  613. iopenpod-2.0.4/packaging/third-party/notices/rust-toml-0.8.10-NOTICES.txt +237 -0
  614. iopenpod-2.0.4/packaging/third-party/notices/rust-toml_datetime-0.6.5-NOTICES.txt +237 -0
  615. iopenpod-2.0.4/packaging/third-party/notices/rust-toml_edit-0.22.4-NOTICES.txt +237 -0
  616. iopenpod-2.0.4/packaging/third-party/notices/rust-torch-sys-0.17.0-NOTICES.txt +7 -0
  617. iopenpod-2.0.4/packaging/third-party/notices/rust-tracing-0.1.37-NOTICES.txt +37 -0
  618. iopenpod-2.0.4/packaging/third-party/notices/rust-tracing-attributes-0.1.26-NOTICES.txt +37 -0
  619. iopenpod-2.0.4/packaging/third-party/notices/rust-tracing-core-0.1.31-NOTICES.txt +63 -0
  620. iopenpod-2.0.4/packaging/third-party/notices/rust-tracing-log-0.1.3-NOTICES.txt +37 -0
  621. iopenpod-2.0.4/packaging/third-party/notices/rust-tracing-subscriber-0.3.17-NOTICES.txt +37 -0
  622. iopenpod-2.0.4/packaging/third-party/notices/rust-try-lock-0.2.4-NOTICES.txt +32 -0
  623. iopenpod-2.0.4/packaging/third-party/notices/rust-typenum-1.15.0-NOTICES.txt +245 -0
  624. iopenpod-2.0.4/packaging/third-party/notices/rust-unicode-ident-1.0.8-NOTICES.txt +267 -0
  625. iopenpod-2.0.4/packaging/third-party/notices/rust-unicode-segmentation-1.11.0-NOTICES.txt +255 -0
  626. iopenpod-2.0.4/packaging/third-party/notices/rust-unicode-width-0.1.9-NOTICES.txt +255 -0
  627. iopenpod-2.0.4/packaging/third-party/notices/rust-unicode-width-0.2.0-NOTICES.txt +255 -0
  628. iopenpod-2.0.4/packaging/third-party/notices/rust-unicode-xid-0.2.3-NOTICES.txt +255 -0
  629. iopenpod-2.0.4/packaging/third-party/notices/rust-unsafe-libyaml-0.2.11-NOTICES.txt +35 -0
  630. iopenpod-2.0.4/packaging/third-party/notices/rust-untrusted-0.9.0-NOTICES.txt +25 -0
  631. iopenpod-2.0.4/packaging/third-party/notices/rust-ureq-2.10.0-NOTICES.txt +472 -0
  632. iopenpod-2.0.4/packaging/third-party/notices/rust-url-2.5.4-NOTICES.txt +243 -0
  633. iopenpod-2.0.4/packaging/third-party/notices/rust-utf16_iter-1.0.5-NOTICES.txt +291 -0
  634. iopenpod-2.0.4/packaging/third-party/notices/rust-utf8_iter-1.0.4-NOTICES.txt +291 -0
  635. iopenpod-2.0.4/packaging/third-party/notices/rust-utf8parse-0.2.1-NOTICES.txt +218 -0
  636. iopenpod-2.0.4/packaging/third-party/notices/rust-uuid-1.0.0-NOTICES.txt +257 -0
  637. iopenpod-2.0.4/packaging/third-party/notices/rust-v8-137.2.0-NOTICES.txt +63 -0
  638. iopenpod-2.0.4/packaging/third-party/notices/rust-valuable-0.1.0-NOTICES.txt +7 -0
  639. iopenpod-2.0.4/packaging/third-party/notices/rust-vcpkg-0.2.15-NOTICES.txt +243 -0
  640. iopenpod-2.0.4/packaging/third-party/notices/rust-version_check-0.9.4-NOTICES.txt +237 -0
  641. iopenpod-2.0.4/packaging/third-party/notices/rust-wait-timeout-0.2.0-NOTICES.txt +243 -0
  642. iopenpod-2.0.4/packaging/third-party/notices/rust-walkdir-2.3.3-NOTICES.txt +41 -0
  643. iopenpod-2.0.4/packaging/third-party/notices/rust-want-0.3.0-NOTICES.txt +31 -0
  644. iopenpod-2.0.4/packaging/third-party/notices/rust-wasi-0.11.0+wasi-snapshot-preview1-NOTICES.txt +465 -0
  645. iopenpod-2.0.4/packaging/third-party/notices/rust-wasi-0.13.3+wasi-0.2.2-NOTICES.txt +465 -0
  646. iopenpod-2.0.4/packaging/third-party/notices/rust-wasi-nn-0.6.0-NOTICES.txt +7 -0
  647. iopenpod-2.0.4/packaging/third-party/notices/rust-wasip1-1.0.0-NOTICES.txt +7 -0
  648. iopenpod-2.0.4/packaging/third-party/notices/rust-wasip2-1.0.0+wasi-0.2.4-NOTICES.txt +7 -0
  649. iopenpod-2.0.4/packaging/third-party/notices/rust-wasm-bindgen-0.2.97-NOTICES.txt +243 -0
  650. iopenpod-2.0.4/packaging/third-party/notices/rust-wasm-bindgen-backend-0.2.97-NOTICES.txt +243 -0
  651. iopenpod-2.0.4/packaging/third-party/notices/rust-wasm-bindgen-macro-0.2.97-NOTICES.txt +243 -0
  652. iopenpod-2.0.4/packaging/third-party/notices/rust-wasm-bindgen-macro-support-0.2.97-NOTICES.txt +243 -0
  653. iopenpod-2.0.4/packaging/third-party/notices/rust-wasm-bindgen-shared-0.2.97-NOTICES.txt +243 -0
  654. iopenpod-2.0.4/packaging/third-party/notices/rust-wasm-compose-0.239.0-NOTICES.txt +7 -0
  655. iopenpod-2.0.4/packaging/third-party/notices/rust-wasm-encoder-0.239.0-NOTICES.txt +7 -0
  656. iopenpod-2.0.4/packaging/third-party/notices/rust-wasm-metadata-0.239.0-NOTICES.txt +134 -0
  657. iopenpod-2.0.4/packaging/third-party/notices/rust-wasm-mutate-0.239.0-NOTICES.txt +7 -0
  658. iopenpod-2.0.4/packaging/third-party/notices/rust-wasm-smith-0.239.0-NOTICES.txt +7 -0
  659. iopenpod-2.0.4/packaging/third-party/notices/rust-wasm-wave-0.239.0-NOTICES.txt +7 -0
  660. iopenpod-2.0.4/packaging/third-party/notices/rust-wasmi-0.43.1-NOTICES.txt +7 -0
  661. iopenpod-2.0.4/packaging/third-party/notices/rust-wasmi_collections-0.43.1-NOTICES.txt +7 -0
  662. iopenpod-2.0.4/packaging/third-party/notices/rust-wasmi_core-0.43.1-NOTICES.txt +7 -0
  663. iopenpod-2.0.4/packaging/third-party/notices/rust-wasmi_ir-0.43.1-NOTICES.txt +7 -0
  664. iopenpod-2.0.4/packaging/third-party/notices/rust-wasmparser-0.227.1-NOTICES.txt +7 -0
  665. iopenpod-2.0.4/packaging/third-party/notices/rust-wasmparser-0.239.0-NOTICES.txt +7 -0
  666. iopenpod-2.0.4/packaging/third-party/notices/rust-wasmprinter-0.239.0-NOTICES.txt +7 -0
  667. iopenpod-2.0.4/packaging/third-party/notices/rust-wast-239.0.0-NOTICES.txt +7 -0
  668. iopenpod-2.0.4/packaging/third-party/notices/rust-wast-35.0.2-NOTICES.txt +7 -0
  669. iopenpod-2.0.4/packaging/third-party/notices/rust-wat-1.239.0-NOTICES.txt +7 -0
  670. iopenpod-2.0.4/packaging/third-party/notices/rust-web-sys-0.3.57-NOTICES.txt +243 -0
  671. iopenpod-2.0.4/packaging/third-party/notices/rust-webpki-roots-0.26.1-NOTICES.txt +33 -0
  672. iopenpod-2.0.4/packaging/third-party/notices/rust-which-6.0.3-NOTICES.txt +31 -0
  673. iopenpod-2.0.4/packaging/third-party/notices/rust-winapi-0.3.9-NOTICES.txt +237 -0
  674. iopenpod-2.0.4/packaging/third-party/notices/rust-winapi-i686-pc-windows-gnu-0.4.0-NOTICES.txt +7 -0
  675. iopenpod-2.0.4/packaging/third-party/notices/rust-winapi-util-0.1.5-NOTICES.txt +41 -0
  676. iopenpod-2.0.4/packaging/third-party/notices/rust-winapi-x86_64-pc-windows-gnu-0.4.0-NOTICES.txt +7 -0
  677. iopenpod-2.0.4/packaging/third-party/notices/rust-windows-0.52.0-NOTICES.txt +239 -0
  678. iopenpod-2.0.4/packaging/third-party/notices/rust-windows-core-0.52.0-NOTICES.txt +239 -0
  679. iopenpod-2.0.4/packaging/third-party/notices/rust-windows-implement-0.52.0-NOTICES.txt +239 -0
  680. iopenpod-2.0.4/packaging/third-party/notices/rust-windows-interface-0.52.0-NOTICES.txt +239 -0
  681. iopenpod-2.0.4/packaging/third-party/notices/rust-windows-sys-0.52.0-NOTICES.txt +239 -0
  682. iopenpod-2.0.4/packaging/third-party/notices/rust-windows-sys-0.59.0-NOTICES.txt +239 -0
  683. iopenpod-2.0.4/packaging/third-party/notices/rust-windows-sys-0.60.2-NOTICES.txt +239 -0
  684. iopenpod-2.0.4/packaging/third-party/notices/rust-windows-targets-0.52.6-NOTICES.txt +239 -0
  685. iopenpod-2.0.4/packaging/third-party/notices/rust-windows-targets-0.53.2-NOTICES.txt +239 -0
  686. iopenpod-2.0.4/packaging/third-party/notices/rust-windows_aarch64_gnullvm-0.52.6-NOTICES.txt +239 -0
  687. iopenpod-2.0.4/packaging/third-party/notices/rust-windows_aarch64_gnullvm-0.53.0-NOTICES.txt +239 -0
  688. iopenpod-2.0.4/packaging/third-party/notices/rust-windows_aarch64_msvc-0.52.6-NOTICES.txt +239 -0
  689. iopenpod-2.0.4/packaging/third-party/notices/rust-windows_aarch64_msvc-0.53.0-NOTICES.txt +239 -0
  690. iopenpod-2.0.4/packaging/third-party/notices/rust-windows_i686_gnu-0.52.6-NOTICES.txt +239 -0
  691. iopenpod-2.0.4/packaging/third-party/notices/rust-windows_i686_gnu-0.53.0-NOTICES.txt +239 -0
  692. iopenpod-2.0.4/packaging/third-party/notices/rust-windows_i686_gnullvm-0.52.6-NOTICES.txt +239 -0
  693. iopenpod-2.0.4/packaging/third-party/notices/rust-windows_i686_gnullvm-0.53.0-NOTICES.txt +239 -0
  694. iopenpod-2.0.4/packaging/third-party/notices/rust-windows_i686_msvc-0.52.6-NOTICES.txt +239 -0
  695. iopenpod-2.0.4/packaging/third-party/notices/rust-windows_i686_msvc-0.53.0-NOTICES.txt +239 -0
  696. iopenpod-2.0.4/packaging/third-party/notices/rust-windows_x86_64_gnu-0.52.6-NOTICES.txt +239 -0
  697. iopenpod-2.0.4/packaging/third-party/notices/rust-windows_x86_64_gnu-0.53.0-NOTICES.txt +239 -0
  698. iopenpod-2.0.4/packaging/third-party/notices/rust-windows_x86_64_gnullvm-0.52.6-NOTICES.txt +239 -0
  699. iopenpod-2.0.4/packaging/third-party/notices/rust-windows_x86_64_gnullvm-0.53.0-NOTICES.txt +239 -0
  700. iopenpod-2.0.4/packaging/third-party/notices/rust-windows_x86_64_msvc-0.52.6-NOTICES.txt +239 -0
  701. iopenpod-2.0.4/packaging/third-party/notices/rust-windows_x86_64_msvc-0.53.0-NOTICES.txt +239 -0
  702. iopenpod-2.0.4/packaging/third-party/notices/rust-winnow-0.5.39-NOTICES.txt +30 -0
  703. iopenpod-2.0.4/packaging/third-party/notices/rust-winsafe-0.0.19-NOTICES.txt +31 -0
  704. iopenpod-2.0.4/packaging/third-party/notices/rust-winx-0.36.3-NOTICES.txt +231 -0
  705. iopenpod-2.0.4/packaging/third-party/notices/rust-wit-bindgen-0.45.1-NOTICES.txt +465 -0
  706. iopenpod-2.0.4/packaging/third-party/notices/rust-wit-bindgen-0.46.0-NOTICES.txt +465 -0
  707. iopenpod-2.0.4/packaging/third-party/notices/rust-wit-bindgen-core-0.46.0-NOTICES.txt +465 -0
  708. iopenpod-2.0.4/packaging/third-party/notices/rust-wit-bindgen-rt-0.33.0-NOTICES.txt +7 -0
  709. iopenpod-2.0.4/packaging/third-party/notices/rust-wit-bindgen-rust-0.46.0-NOTICES.txt +465 -0
  710. iopenpod-2.0.4/packaging/third-party/notices/rust-wit-bindgen-rust-macro-0.46.0-NOTICES.txt +465 -0
  711. iopenpod-2.0.4/packaging/third-party/notices/rust-wit-component-0.239.0-NOTICES.txt +7 -0
  712. iopenpod-2.0.4/packaging/third-party/notices/rust-wit-parser-0.239.0-NOTICES.txt +7 -0
  713. iopenpod-2.0.4/packaging/third-party/notices/rust-witx-0.9.1-NOTICES.txt +25 -0
  714. iopenpod-2.0.4/packaging/third-party/notices/rust-write16-1.0.0-NOTICES.txt +269 -0
  715. iopenpod-2.0.4/packaging/third-party/notices/rust-writeable-0.5.5-NOTICES.txt +58 -0
  716. iopenpod-2.0.4/packaging/third-party/notices/rust-xattr-1.3.1-NOTICES.txt +243 -0
  717. iopenpod-2.0.4/packaging/third-party/notices/rust-yoke-0.7.5-NOTICES.txt +58 -0
  718. iopenpod-2.0.4/packaging/third-party/notices/rust-yoke-derive-0.7.5-NOTICES.txt +58 -0
  719. iopenpod-2.0.4/packaging/third-party/notices/rust-zerofrom-0.1.5-NOTICES.txt +58 -0
  720. iopenpod-2.0.4/packaging/third-party/notices/rust-zerofrom-derive-0.1.5-NOTICES.txt +58 -0
  721. iopenpod-2.0.4/packaging/third-party/notices/rust-zeroize-1.7.0-NOTICES.txt +240 -0
  722. iopenpod-2.0.4/packaging/third-party/notices/rust-zerovec-0.10.4-NOTICES.txt +58 -0
  723. iopenpod-2.0.4/packaging/third-party/notices/rust-zerovec-derive-0.10.3-NOTICES.txt +58 -0
  724. iopenpod-2.0.4/packaging/third-party/notices/rust-zip-0.6.6-NOTICES.txt +33 -0
  725. iopenpod-2.0.4/packaging/third-party/notices/rust-zstd-0.11.2+zstd.1.5.2-NOTICES.txt +20 -0
  726. iopenpod-2.0.4/packaging/third-party/notices/rust-zstd-0.13.0-NOTICES.txt +20 -0
  727. iopenpod-2.0.4/packaging/third-party/notices/rust-zstd-safe-5.0.2+zstd.1.5.2-NOTICES.txt +208 -0
  728. iopenpod-2.0.4/packaging/third-party/notices/rust-zstd-safe-7.0.0-NOTICES.txt +208 -0
  729. iopenpod-2.0.4/packaging/third-party/notices/rust-zstd-sys-2.0.9+zstd.1.5.5-NOTICES.txt +624 -0
  730. iopenpod-2.0.4/packaging/third-party/notices/scikit-learn-1.9.1-NOTICES.txt +129 -0
  731. iopenpod-2.0.4/packaging/third-party/notices/scipy-1.18.1-NOTICES.txt +1885 -0
  732. iopenpod-2.0.4/packaging/third-party/notices/soundfile-0.14.0-NOTICES.txt +41 -0
  733. iopenpod-2.0.4/packaging/third-party/notices/soxr-1.1.0-NOTICES.txt +1477 -0
  734. iopenpod-2.0.4/packaging/third-party/notices/sparkle-2.10.0-NOTICES.txt +167 -0
  735. iopenpod-2.0.4/packaging/third-party/notices/sqlite-3530100-NOTICES.txt +58 -0
  736. iopenpod-2.0.4/packaging/third-party/notices/threadpoolctl-3.6.0-NOTICES.txt +36 -0
  737. iopenpod-2.0.4/packaging/third-party/notices/tqdm-4.70.0-NOTICES.txt +61 -0
  738. iopenpod-2.0.4/packaging/third-party/notices/typing-extensions-4.16.0-NOTICES.txt +291 -0
  739. iopenpod-2.0.4/packaging/third-party/notices/urllib3-2.7.0-NOTICES.txt +33 -0
  740. iopenpod-2.0.4/packaging/third-party/notices/wasmtime-38.0.0-NOTICES.txt +231 -0
  741. iopenpod-2.0.4/packaging/third-party/notices/wasmtime-native-38.0.1-NOTICES.txt +8295 -0
  742. iopenpod-2.0.4/packaging/third-party/notices/winrt-runtime-3.2.1-NOTICES.txt +7 -0
  743. iopenpod-2.0.4/packaging/third-party/notices/winrt-windows-foundation-3.2.1-NOTICES.txt +7 -0
  744. iopenpod-2.0.4/packaging/third-party/notices/winrt-windows-foundation-collections-3.2.1-NOTICES.txt +7 -0
  745. iopenpod-2.0.4/packaging/third-party/notices/winrt-windows-media-3.2.1-NOTICES.txt +7 -0
  746. iopenpod-2.0.4/packaging/third-party/notices/winrt-windows-media-interop-3.2.1-NOTICES.txt +7 -0
  747. iopenpod-2.0.4/packaging/third-party/notices/winrt-windows-storage-streams-3.2.1-NOTICES.txt +7 -0
  748. iopenpod-2.0.4/packaging/third-party/notices/xz-5.8.3-NOTICES.txt +1687 -0
  749. iopenpod-2.0.4/packaging/third-party/notices/zig-runtime-0.14.1-NOTICES.txt +2336 -0
  750. iopenpod-2.0.4/packaging/third-party/notices/zlib-1.3.2-NOTICES.txt +125 -0
  751. iopenpod-2.0.4/packaging/third-party/notices/zlib-ffmpeg-1.3.1-NOTICES.txt +62 -0
  752. iopenpod-2.0.4/packaging/third-party/sources.json +4916 -0
  753. iopenpod-2.0.4/packaging/update-helper.spec +18 -0
  754. iopenpod-2.0.4/packaging/update-keys.json +5 -0
  755. iopenpod-2.0.4/packaging/windows/ActivatePackage.cs +98 -0
  756. iopenpod-2.0.4/packaging/windows/AppxManifest.xml.in +24 -0
  757. iopenpod-2.0.4/packaging/windows/iOpenPod.manifest.xml +22 -0
  758. iopenpod-2.0.4/packaging/windows/store/assets/store-logo-300.png +0 -0
  759. iopenpod-2.0.4/packaging/windows/store/certification-notes.md +46 -0
  760. iopenpod-2.0.4/packaging/windows/store/license.html +17 -0
  761. iopenpod-2.0.4/packaging/windows/store/license.md +53 -0
  762. iopenpod-2.0.4/packaging/windows/store/listing.md +208 -0
  763. iopenpod-2.0.4/packaging/windows/store/privacy.html +32 -0
  764. iopenpod-2.0.4/packaging/windows/store/privacy.md +147 -0
  765. iopenpod-2.0.4/packaging/windows/store/screenshots/01-album-library.png +0 -0
  766. iopenpod-2.0.4/packaging/windows/store/screenshots/02-album-details.png +0 -0
  767. iopenpod-2.0.4/packaging/windows/store/screenshots/03-playlists.png +0 -0
  768. iopenpod-2.0.4/packaging/windows/store/screenshots/04-photo-library.png +0 -0
  769. iopenpod-2.0.4/packaging/windows/store/screenshots/05-sync-review.png +0 -0
  770. iopenpod-2.0.4/packaging/windows/store/screenshots/06-about-and-credits.png +0 -0
  771. iopenpod-2.0.4/packaging/windows/store/screenshots/manifest.json +54 -0
  772. iopenpod-2.0.4/packaging/windows/store/screenshots.md +79 -0
  773. iopenpod-2.0.4/packaging/windows/store/submission-fields.json +163 -0
  774. iopenpod-2.0.4/packaging/windows/store/support.html +29 -0
  775. iopenpod-2.0.4/packaging/windows/store/support.md +110 -0
  776. iopenpod-2.0.4/packaging/windows/store-identity.toml +8 -0
  777. iopenpod-2.0.4/packaging/windows/test-installed-package.ps1 +251 -0
  778. iopenpod-2.0.4/pyproject.toml +216 -0
  779. iopenpod-2.0.4/scripts/assemble_github_release.py +258 -0
  780. iopenpod-2.0.4/scripts/build_windows_sndfile.py +154 -0
  781. iopenpod-2.0.4/scripts/capture_store_screenshots.py +553 -0
  782. iopenpod-2.0.4/scripts/check_macos_bundle.py +240 -0
  783. iopenpod-2.0.4/scripts/check_macos_dmg.py +72 -0
  784. iopenpod-2.0.4/scripts/check_wheel.py +64 -0
  785. iopenpod-2.0.4/scripts/check_windows_bundle.py +67 -0
  786. iopenpod-2.0.4/scripts/compile_synesthesia_shaders.py +64 -0
  787. iopenpod-2.0.4/scripts/generate_fake_music_library.py +1193 -0
  788. iopenpod-2.0.4/scripts/generate_media_fixtures.py +205 -0
  789. iopenpod-2.0.4/scripts/package_app.py +519 -0
  790. iopenpod-2.0.4/scripts/package_updates.py +205 -0
  791. iopenpod-2.0.4/scripts/prepare_release.py +82 -0
  792. iopenpod-2.0.4/scripts/prepare_release_sources.py +205 -0
  793. iopenpod-2.0.4/scripts/prepare_store_kit.py +579 -0
  794. iopenpod-2.0.4/scripts/publish_update_feed.py +153 -0
  795. iopenpod-2.0.4/scripts/sync_macos_build.py +59 -0
  796. iopenpod-2.0.4/scripts/update_feed.py +324 -0
  797. iopenpod-2.0.4/scripts/update_translations.py +225 -0
  798. iopenpod-2.0.4/src/device_registry/__init__.py +68 -0
  799. iopenpod-2.0.4/src/device_registry/authority.py +671 -0
  800. iopenpod-2.0.4/src/device_registry/data/__init__.py +1 -0
  801. iopenpod-2.0.4/src/device_registry/data/catalog.py +1115 -0
  802. iopenpod-2.0.4/src/device_registry/identifiers.py +44 -0
  803. iopenpod-2.0.4/src/device_registry/metadata.py +352 -0
  804. iopenpod-2.0.4/src/device_registry/models.py +403 -0
  805. iopenpod-2.0.4/src/device_registry/py.typed +1 -0
  806. iopenpod-2.0.4/src/device_registry/registry.py +389 -0
  807. iopenpod-2.0.4/src/iOpenPod/GUI/PROTOTYPE.md +218 -0
  808. iopenpod-2.0.4/src/iOpenPod/GUI/delegates/album_card_delegate.py +155 -0
  809. iopenpod-2.0.4/src/iOpenPod/GUI/delegates/collection_card_delegate.py +124 -0
  810. iopenpod-2.0.4/src/iOpenPod/GUI/delegates/collection_list_delegate.py +172 -0
  811. iopenpod-2.0.4/src/iOpenPod/GUI/delegates/photo_album_membership_delegate.py +168 -0
  812. iopenpod-2.0.4/src/iOpenPod/GUI/delegates/photo_card_delegate.py +142 -0
  813. iopenpod-2.0.4/src/iOpenPod/GUI/delegates/podcast_delegates.py +726 -0
  814. iopenpod-2.0.4/src/iOpenPod/GUI/delegates/selection_group_delegate.py +326 -0
  815. iopenpod-2.0.4/src/iOpenPod/GUI/delegates/track_artwork_delegate.py +92 -0
  816. iopenpod-2.0.4/src/iOpenPod/GUI/dialogs/artwork_editor.py +816 -0
  817. iopenpod-2.0.4/src/iOpenPod/GUI/dialogs/device_picker.py +396 -0
  818. iopenpod-2.0.4/src/iOpenPod/GUI/dialogs/external_playlist_files.py +286 -0
  819. iopenpod-2.0.4/src/iOpenPod/GUI/dialogs/library_review.py +379 -0
  820. iopenpod-2.0.4/src/iOpenPod/GUI/dialogs/linux_identity_setup.py +182 -0
  821. iopenpod-2.0.4/src/iOpenPod/GUI/dialogs/media_folders.py +440 -0
  822. iopenpod-2.0.4/src/iOpenPod/GUI/dialogs/media_tools_setup.py +175 -0
  823. iopenpod-2.0.4/src/iOpenPod/GUI/dialogs/metadata_editor.py +819 -0
  824. iopenpod-2.0.4/src/iOpenPod/GUI/dialogs/photo_album_editor.py +122 -0
  825. iopenpod-2.0.4/src/iOpenPod/GUI/dialogs/photo_album_manager.py +143 -0
  826. iopenpod-2.0.4/src/iOpenPod/GUI/dialogs/photo_metadata_editor.py +365 -0
  827. iopenpod-2.0.4/src/iOpenPod/GUI/dialogs/playlist_editor.py +1064 -0
  828. iopenpod-2.0.4/src/iOpenPod/GUI/dialogs/playlist_export.py +148 -0
  829. iopenpod-2.0.4/src/iOpenPod/GUI/dialogs/podcast_search.py +326 -0
  830. iopenpod-2.0.4/src/iOpenPod/GUI/dialogs/podcast_sync_settings.py +224 -0
  831. iopenpod-2.0.4/src/iOpenPod/GUI/dialogs/scrobble_report.py +68 -0
  832. iopenpod-2.0.4/src/iOpenPod/GUI/dialogs/tag_normalizer.py +489 -0
  833. iopenpod-2.0.4/src/iOpenPod/GUI/host_library_browser.py +312 -0
  834. iopenpod-2.0.4/src/iOpenPod/GUI/main_window.py +2069 -0
  835. iopenpod-2.0.4/src/iOpenPod/GUI/navigation.py +113 -0
  836. iopenpod-2.0.4/src/iOpenPod/GUI/pages/backup_page.py +1254 -0
  837. iopenpod-2.0.4/src/iOpenPod/GUI/pages/collection_page.py +504 -0
  838. iopenpod-2.0.4/src/iOpenPod/GUI/pages/library_page.py +227 -0
  839. iopenpod-2.0.4/src/iOpenPod/GUI/pages/photo_page.py +753 -0
  840. iopenpod-2.0.4/src/iOpenPod/GUI/pages/placeholder_page.py +75 -0
  841. iopenpod-2.0.4/src/iOpenPod/GUI/pages/playlist_page.py +486 -0
  842. iopenpod-2.0.4/src/iOpenPod/GUI/pages/podcast_page.py +1049 -0
  843. iopenpod-2.0.4/src/iOpenPod/GUI/pages/settings_page.py +950 -0
  844. iopenpod-2.0.4/src/iOpenPod/GUI/pages/sync_execution_page.py +589 -0
  845. iopenpod-2.0.4/src/iOpenPod/GUI/pages/sync_plan_page.py +401 -0
  846. iopenpod-2.0.4/src/iOpenPod/GUI/pages/synesthesia_page.py +175 -0
  847. iopenpod-2.0.4/src/iOpenPod/GUI/pages/track_page.py +90 -0
  848. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/application_icon.py +13 -0
  849. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/artwork.py +128 -0
  850. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/artwork_provider.py +317 -0
  851. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/backup_messages.py +480 -0
  852. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/collection_text.py +27 -0
  853. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/device_images.py +81 -0
  854. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/display.py +20 -0
  855. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/eta.py +61 -0
  856. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/i18n/manager.py +146 -0
  857. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/i18n/text.py +155 -0
  858. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/i18n/translations/iopenpod_de.qm +0 -0
  859. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/i18n/translations/iopenpod_de.ts +10060 -0
  860. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/i18n/translations/iopenpod_es.qm +0 -0
  861. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/i18n/translations/iopenpod_es.ts +10060 -0
  862. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/i18n/workflow.py +24 -0
  863. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/icons.py +51 -0
  864. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/image_color.py +136 -0
  865. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/library_card.py +252 -0
  866. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/middle_mouse_scrolling.py +208 -0
  867. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/photo.py +47 -0
  868. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/photo_provider.py +182 -0
  869. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/podcast_artwork_provider.py +83 -0
  870. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/podcast_collection_artwork.py +91 -0
  871. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/selection_checkbox.py +148 -0
  872. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/theme/backup_styles.py +84 -0
  873. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/theme/checkbox_style.py +173 -0
  874. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/theme/dynamic.py +187 -0
  875. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/theme/manager.py +235 -0
  876. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/theme/podcast_styles.py +163 -0
  877. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/theme/stylesheet.py +2322 -0
  878. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/theme/tokens.py +631 -0
  879. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/track_drag_preview.py +229 -0
  880. iopenpod-2.0.4/src/iOpenPod/GUI/sync_workspace.py +795 -0
  881. iopenpod-2.0.4/src/iOpenPod/GUI/synesthesia/__init__.py +36 -0
  882. iopenpod-2.0.4/src/iOpenPod/GUI/synesthesia/conductor.py +677 -0
  883. iopenpod-2.0.4/src/iOpenPod/GUI/synesthesia/motion_phases.py +81 -0
  884. iopenpod-2.0.4/src/iOpenPod/GUI/synesthesia/persistent_world.py +751 -0
  885. iopenpod-2.0.4/src/iOpenPod/GUI/synesthesia/preview.py +76 -0
  886. iopenpod-2.0.4/src/iOpenPod/GUI/synesthesia/render_resolution.py +104 -0
  887. iopenpod-2.0.4/src/iOpenPod/GUI/synesthesia/renderer.py +1653 -0
  888. iopenpod-2.0.4/src/iOpenPod/GUI/synesthesia/scene_director.py +1632 -0
  889. iopenpod-2.0.4/src/iOpenPod/GUI/synesthesia/shader_sources/comets.frag +21 -0
  890. iopenpod-2.0.4/src/iOpenPod/GUI/synesthesia/shader_sources/comets.frag.qsb +0 -0
  891. iopenpod-2.0.4/src/iOpenPod/GUI/synesthesia/shader_sources/comets.vert +98 -0
  892. iopenpod-2.0.4/src/iOpenPod/GUI/synesthesia/shader_sources/comets.vert.qsb +0 -0
  893. iopenpod-2.0.4/src/iOpenPod/GUI/synesthesia/shader_sources/events.frag +166 -0
  894. iopenpod-2.0.4/src/iOpenPod/GUI/synesthesia/shader_sources/events.frag.qsb +0 -0
  895. iopenpod-2.0.4/src/iOpenPod/GUI/synesthesia/shader_sources/feedback.frag +144 -0
  896. iopenpod-2.0.4/src/iOpenPod/GUI/synesthesia/shader_sources/feedback.frag.qsb +0 -0
  897. iopenpod-2.0.4/src/iOpenPod/GUI/synesthesia/shader_sources/field_sim.comp +200 -0
  898. iopenpod-2.0.4/src/iOpenPod/GUI/synesthesia/shader_sources/field_sim.comp.qsb +0 -0
  899. iopenpod-2.0.4/src/iOpenPod/GUI/synesthesia/shader_sources/filaments.frag +21 -0
  900. iopenpod-2.0.4/src/iOpenPod/GUI/synesthesia/shader_sources/filaments.frag.qsb +0 -0
  901. iopenpod-2.0.4/src/iOpenPod/GUI/synesthesia/shader_sources/filaments.vert +95 -0
  902. iopenpod-2.0.4/src/iOpenPod/GUI/synesthesia/shader_sources/filaments.vert.qsb +0 -0
  903. iopenpod-2.0.4/src/iOpenPod/GUI/synesthesia/shader_sources/fullscreen.vert +13 -0
  904. iopenpod-2.0.4/src/iOpenPod/GUI/synesthesia/shader_sources/fullscreen.vert.qsb +0 -0
  905. iopenpod-2.0.4/src/iOpenPod/GUI/synesthesia/shader_sources/particles.frag +25 -0
  906. iopenpod-2.0.4/src/iOpenPod/GUI/synesthesia/shader_sources/particles.frag.qsb +0 -0
  907. iopenpod-2.0.4/src/iOpenPod/GUI/synesthesia/shader_sources/particles.vert +113 -0
  908. iopenpod-2.0.4/src/iOpenPod/GUI/synesthesia/shader_sources/particles.vert.qsb +0 -0
  909. iopenpod-2.0.4/src/iOpenPod/GUI/synesthesia/shader_sources/present.frag +95 -0
  910. iopenpod-2.0.4/src/iOpenPod/GUI/synesthesia/shader_sources/present.frag.qsb +0 -0
  911. iopenpod-2.0.4/src/iOpenPod/GUI/synesthesia/shader_sources/scenes.frag +758 -0
  912. iopenpod-2.0.4/src/iOpenPod/GUI/synesthesia/shader_sources/scenes.frag.qsb +0 -0
  913. iopenpod-2.0.4/src/iOpenPod/GUI/synesthesia/visual_style.py +129 -0
  914. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/album_grid.py +86 -0
  915. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/app_combo_box.py +158 -0
  916. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/artwork_view.py +124 -0
  917. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/browser_chrome.py +147 -0
  918. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/collection_detail.py +321 -0
  919. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/collection_grid.py +87 -0
  920. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/elided_label.py +171 -0
  921. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/equalized_grid.py +160 -0
  922. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/eta_label.py +61 -0
  923. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/host_media_drop.py +144 -0
  924. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/ipod_preferences.py +96 -0
  925. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/library_content.py +193 -0
  926. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/library_drag_grid.py +102 -0
  927. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/library_toolbar.py +257 -0
  928. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/media_tools_settings.py +145 -0
  929. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/metadata_field_editor.py +416 -0
  930. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/photo_album_membership_grid.py +70 -0
  931. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/photo_grid.py +131 -0
  932. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/photo_inspector.py +612 -0
  933. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/playback_pane.py +881 -0
  934. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/player_bar.py +1087 -0
  935. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/playlist_artwork_banner.py +203 -0
  936. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/playlist_tree.py +790 -0
  937. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/podcast_artwork.py +153 -0
  938. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/scrobbling_settings.py +210 -0
  939. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/search_field.py +99 -0
  940. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/selection_grid.py +55 -0
  941. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/selection_group_transition.py +298 -0
  942. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/setting_group.py +75 -0
  943. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/sidebar.py +695 -0
  944. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/status_controls.py +94 -0
  945. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/status_list.py +386 -0
  946. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/sync_preparation_progress.py +130 -0
  947. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/sync_review_group.py +285 -0
  948. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/sync_selection_actions.py +101 -0
  949. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/sync_settings.py +510 -0
  950. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/sync_storage_bar.py +241 -0
  951. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/themed_buttons.py +351 -0
  952. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/track_actions.py +861 -0
  953. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/track_list_header.py +214 -0
  954. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/track_table.py +483 -0
  955. iopenpod-2.0.4/src/iOpenPod/__main__.py +6 -0
  956. iopenpod-2.0.4/src/iOpenPod/app/app.py +195 -0
  957. iopenpod-2.0.4/src/iOpenPod/app/artwork_controller.py +254 -0
  958. iopenpod-2.0.4/src/iOpenPod/app/artwork_import.py +195 -0
  959. iopenpod-2.0.4/src/iOpenPod/app/backup_controller.py +591 -0
  960. iopenpod-2.0.4/src/iOpenPod/app/backups/__init__.py +77 -0
  961. iopenpod-2.0.4/src/iOpenPod/app/backups/_json.py +60 -0
  962. iopenpod-2.0.4/src/iOpenPod/app/backups/archive.py +500 -0
  963. iopenpod-2.0.4/src/iOpenPod/app/backups/models.py +628 -0
  964. iopenpod-2.0.4/src/iOpenPod/app/backups/original_archive.py +249 -0
  965. iopenpod-2.0.4/src/iOpenPod/app/backups/outcomes.py +419 -0
  966. iopenpod-2.0.4/src/iOpenPod/app/backups/recovery.py +183 -0
  967. iopenpod-2.0.4/src/iOpenPod/app/backups/repository.py +2139 -0
  968. iopenpod-2.0.4/src/iOpenPod/app/backups/scope.py +57 -0
  969. iopenpod-2.0.4/src/iOpenPod/app/backups/service.py +1281 -0
  970. iopenpod-2.0.4/src/iOpenPod/app/chaptered_conversion.py +258 -0
  971. iopenpod-2.0.4/src/iOpenPod/app/chaptered_conversion_controller.py +228 -0
  972. iopenpod-2.0.4/src/iOpenPod/app/context.py +236 -0
  973. iopenpod-2.0.4/src/iOpenPod/app/core/certifi_ssl.py +9 -0
  974. iopenpod-2.0.4/src/iOpenPod/app/core/eta.py +340 -0
  975. iopenpod-2.0.4/src/iOpenPod/app/core/logging.py +63 -0
  976. iopenpod-2.0.4/src/iOpenPod/app/core/runtime.py +52 -0
  977. iopenpod-2.0.4/src/iOpenPod/app/core/settings/definitions.py +299 -0
  978. iopenpod-2.0.4/src/iOpenPod/app/core/settings/paths.py +43 -0
  979. iopenpod-2.0.4/src/iOpenPod/app/core/settings/service.py +134 -0
  980. iopenpod-2.0.4/src/iOpenPod/app/core/settings/stores.py +250 -0
  981. iopenpod-2.0.4/src/iOpenPod/app/core/settings/transcoding.py +152 -0
  982. iopenpod-2.0.4/src/iOpenPod/app/core/status.py +205 -0
  983. iopenpod-2.0.4/src/iOpenPod/app/core/version.py +14 -0
  984. iopenpod-2.0.4/src/iOpenPod/app/device_controller.py +562 -0
  985. iopenpod-2.0.4/src/iOpenPod/app/display_text.py +58 -0
  986. iopenpod-2.0.4/src/iOpenPod/app/export_tagging.py +301 -0
  987. iopenpod-2.0.4/src/iOpenPod/app/host_media_controller.py +250 -0
  988. iopenpod-2.0.4/src/iOpenPod/app/host_media_fingerprint.py +206 -0
  989. iopenpod-2.0.4/src/iOpenPod/app/host_media_folders.py +162 -0
  990. iopenpod-2.0.4/src/iOpenPod/app/host_media_library.py +2396 -0
  991. iopenpod-2.0.4/src/iOpenPod/app/host_playlists.py +232 -0
  992. iopenpod-2.0.4/src/iOpenPod/app/ipod_media_controller.py +146 -0
  993. iopenpod-2.0.4/src/iOpenPod/app/library_export.py +714 -0
  994. iopenpod-2.0.4/src/iOpenPod/app/library_export_controller.py +271 -0
  995. iopenpod-2.0.4/src/iOpenPod/app/library_sync_helper.py +1108 -0
  996. iopenpod-2.0.4/src/iOpenPod/app/library_workspace.py +1294 -0
  997. iopenpod-2.0.4/src/iOpenPod/app/library_write.py +130 -0
  998. iopenpod-2.0.4/src/iOpenPod/app/library_write_controller.py +608 -0
  999. iopenpod-2.0.4/src/iOpenPod/app/library_write_inspection.py +424 -0
  1000. iopenpod-2.0.4/src/iOpenPod/app/lyrics_controller.py +161 -0
  1001. iopenpod-2.0.4/src/iOpenPod/app/media/__init__.py +20 -0
  1002. iopenpod-2.0.4/src/iOpenPod/app/media/content_type.py +42 -0
  1003. iopenpod-2.0.4/src/iOpenPod/app/media/importing.py +252 -0
  1004. iopenpod-2.0.4/src/iOpenPod/app/media/inspection.py +368 -0
  1005. iopenpod-2.0.4/src/iOpenPod/app/media/lyrics.py +143 -0
  1006. iopenpod-2.0.4/src/iOpenPod/app/media/lyrics_reader.py +96 -0
  1007. iopenpod-2.0.4/src/iOpenPod/app/media/models.py +95 -0
  1008. iopenpod-2.0.4/src/iOpenPod/app/media/music_paths.py +95 -0
  1009. iopenpod-2.0.4/src/iOpenPod/app/media/photo_sync.py +266 -0
  1010. iopenpod-2.0.4/src/iOpenPod/app/media/progress.py +23 -0
  1011. iopenpod-2.0.4/src/iOpenPod/app/media/sync_artwork.py +58 -0
  1012. iopenpod-2.0.4/src/iOpenPod/app/media/tags.py +429 -0
  1013. iopenpod-2.0.4/src/iOpenPod/app/media/transcoding.py +1031 -0
  1014. iopenpod-2.0.4/src/iOpenPod/app/media_tools_controller.py +235 -0
  1015. iopenpod-2.0.4/src/iOpenPod/app/metadata_fields.py +212 -0
  1016. iopenpod-2.0.4/src/iOpenPod/app/models/album_list_model.py +285 -0
  1017. iopenpod-2.0.4/src/iOpenPod/app/models/artwork.py +49 -0
  1018. iopenpod-2.0.4/src/iOpenPod/app/models/artwork_seed.py +13 -0
  1019. iopenpod-2.0.4/src/iOpenPod/app/models/collection_list_model.py +332 -0
  1020. iopenpod-2.0.4/src/iOpenPod/app/models/device.py +138 -0
  1021. iopenpod-2.0.4/src/iOpenPod/app/models/filter_compat.py +22 -0
  1022. iopenpod-2.0.4/src/iOpenPod/app/models/ipod_preferences.py +27 -0
  1023. iopenpod-2.0.4/src/iOpenPod/app/models/keyed_projection.py +101 -0
  1024. iopenpod-2.0.4/src/iOpenPod/app/models/library_drag.py +141 -0
  1025. iopenpod-2.0.4/src/iOpenPod/app/models/library_filter_models.py +425 -0
  1026. iopenpod-2.0.4/src/iOpenPod/app/models/photo_album_membership_model.py +189 -0
  1027. iopenpod-2.0.4/src/iOpenPod/app/models/photo_list_model.py +554 -0
  1028. iopenpod-2.0.4/src/iOpenPod/app/models/photos.py +62 -0
  1029. iopenpod-2.0.4/src/iOpenPod/app/models/playback_models.py +525 -0
  1030. iopenpod-2.0.4/src/iOpenPod/app/models/playlist_tree_model.py +295 -0
  1031. iopenpod-2.0.4/src/iOpenPod/app/models/podcast_list_models.py +355 -0
  1032. iopenpod-2.0.4/src/iOpenPod/app/models/selection_grouping.py +323 -0
  1033. iopenpod-2.0.4/src/iOpenPod/app/models/sync_plan_table_model.py +383 -0
  1034. iopenpod-2.0.4/src/iOpenPod/app/models/sync_selection.py +274 -0
  1035. iopenpod-2.0.4/src/iOpenPod/app/models/track_columns.py +982 -0
  1036. iopenpod-2.0.4/src/iOpenPod/app/models/track_order.py +19 -0
  1037. iopenpod-2.0.4/src/iOpenPod/app/models/track_table_model.py +330 -0
  1038. iopenpod-2.0.4/src/iOpenPod/app/music_import_controller.py +205 -0
  1039. iopenpod-2.0.4/src/iOpenPod/app/photo_controller.py +350 -0
  1040. iopenpod-2.0.4/src/iOpenPod/app/playback/__init__.py +21 -0
  1041. iopenpod-2.0.4/src/iOpenPod/app/playback/_qt_io.py +54 -0
  1042. iopenpod-2.0.4/src/iOpenPod/app/playback/_qt_logging.py +101 -0
  1043. iopenpod-2.0.4/src/iOpenPod/app/playback/backend.py +92 -0
  1044. iopenpod-2.0.4/src/iOpenPod/app/playback/qt_backend.py +224 -0
  1045. iopenpod-2.0.4/src/iOpenPod/app/playback/runtime_check.py +82 -0
  1046. iopenpod-2.0.4/src/iOpenPod/app/playback/system_media/__init__.py +25 -0
  1047. iopenpod-2.0.4/src/iOpenPod/app/playback/system_media/bridge.py +284 -0
  1048. iopenpod-2.0.4/src/iOpenPod/app/playback/system_media/factory.py +66 -0
  1049. iopenpod-2.0.4/src/iOpenPod/app/playback/system_media/linux.py +699 -0
  1050. iopenpod-2.0.4/src/iOpenPod/app/playback/system_media/macos.py +430 -0
  1051. iopenpod-2.0.4/src/iOpenPod/app/playback/system_media/session.py +145 -0
  1052. iopenpod-2.0.4/src/iOpenPod/app/playback/system_media/windows.py +554 -0
  1053. iopenpod-2.0.4/src/iOpenPod/app/playback_controller.py +352 -0
  1054. iopenpod-2.0.4/src/iOpenPod/app/podcasts/__init__.py +59 -0
  1055. iopenpod-2.0.4/src/iOpenPod/app/podcasts/artwork_controller.py +215 -0
  1056. iopenpod-2.0.4/src/iOpenPod/app/podcasts/catalog.py +630 -0
  1057. iopenpod-2.0.4/src/iOpenPod/app/podcasts/controller.py +610 -0
  1058. iopenpod-2.0.4/src/iOpenPod/app/podcasts/documents.py +292 -0
  1059. iopenpod-2.0.4/src/iOpenPod/app/podcasts/feed_client.py +460 -0
  1060. iopenpod-2.0.4/src/iOpenPod/app/podcasts/identity.py +115 -0
  1061. iopenpod-2.0.4/src/iOpenPod/app/podcasts/media.py +151 -0
  1062. iopenpod-2.0.4/src/iOpenPod/app/podcasts/models.py +294 -0
  1063. iopenpod-2.0.4/src/iOpenPod/app/podcasts/store.py +236 -0
  1064. iopenpod-2.0.4/src/iOpenPod/app/podcasts/sync.py +459 -0
  1065. iopenpod-2.0.4/src/iOpenPod/app/podcasts/sync_artwork.py +98 -0
  1066. iopenpod-2.0.4/src/iOpenPod/app/podcasts/sync_preparation.py +172 -0
  1067. iopenpod-2.0.4/src/iOpenPod/app/scrobbling/__init__.py +1 -0
  1068. iopenpod-2.0.4/src/iOpenPod/app/scrobbling/_json.py +25 -0
  1069. iopenpod-2.0.4/src/iOpenPod/app/scrobbling/clients.py +373 -0
  1070. iopenpod-2.0.4/src/iOpenPod/app/scrobbling/controller.py +304 -0
  1071. iopenpod-2.0.4/src/iOpenPod/app/scrobbling/credentials.py +98 -0
  1072. iopenpod-2.0.4/src/iOpenPod/app/scrobbling/models.py +80 -0
  1073. iopenpod-2.0.4/src/iOpenPod/app/scrobbling/queue.py +219 -0
  1074. iopenpod-2.0.4/src/iOpenPod/app/scrobbling/reporting.py +132 -0
  1075. iopenpod-2.0.4/src/iOpenPod/app/scrobbling/service.py +191 -0
  1076. iopenpod-2.0.4/src/iOpenPod/app/scrobbling/settings.py +22 -0
  1077. iopenpod-2.0.4/src/iOpenPod/app/scrobbling/timestamps.py +56 -0
  1078. iopenpod-2.0.4/src/iOpenPod/app/services/device_coordinator.py +4175 -0
  1079. iopenpod-2.0.4/src/iOpenPod/app/services/device_time.py +42 -0
  1080. iopenpod-2.0.4/src/iOpenPod/app/services/ipod_preferences.py +359 -0
  1081. iopenpod-2.0.4/src/iOpenPod/app/services/library_resources.py +677 -0
  1082. iopenpod-2.0.4/src/iOpenPod/app/services/linux_identity.py +259 -0
  1083. iopenpod-2.0.4/src/iOpenPod/app/services/media_tools.py +273 -0
  1084. iopenpod-2.0.4/src/iOpenPod/app/services/volume_presentation.py +206 -0
  1085. iopenpod-2.0.4/src/iOpenPod/app/smart_playlist_preview.py +264 -0
  1086. iopenpod-2.0.4/src/iOpenPod/app/sync_controller.py +677 -0
  1087. iopenpod-2.0.4/src/iOpenPod/app/sync_execution.py +2319 -0
  1088. iopenpod-2.0.4/src/iOpenPod/app/sync_plan.py +680 -0
  1089. iopenpod-2.0.4/src/iOpenPod/app/sync_storage.py +131 -0
  1090. iopenpod-2.0.4/src/iOpenPod/app/synesthesia/__init__.py +143 -0
  1091. iopenpod-2.0.4/src/iOpenPod/app/synesthesia/_rhythm.py +167 -0
  1092. iopenpod-2.0.4/src/iOpenPod/app/synesthesia/_signals.py +226 -0
  1093. iopenpod-2.0.4/src/iOpenPod/app/synesthesia/_structure.py +229 -0
  1094. iopenpod-2.0.4/src/iOpenPod/app/synesthesia/audio.py +227 -0
  1095. iopenpod-2.0.4/src/iOpenPod/app/synesthesia/backend.py +202 -0
  1096. iopenpod-2.0.4/src/iOpenPod/app/synesthesia/controller.py +356 -0
  1097. iopenpod-2.0.4/src/iOpenPod/app/synesthesia/dsp.py +882 -0
  1098. iopenpod-2.0.4/src/iOpenPod/app/synesthesia/enrichment.py +407 -0
  1099. iopenpod-2.0.4/src/iOpenPod/app/synesthesia/models.py +796 -0
  1100. iopenpod-2.0.4/src/iOpenPod/app/tag_normalization_controller.py +197 -0
  1101. iopenpod-2.0.4/src/iOpenPod/app/tag_normalizer.py +314 -0
  1102. iopenpod-2.0.4/src/iOpenPod/app/track_conversion.py +110 -0
  1103. iopenpod-2.0.4/src/iOpenPod/app/track_playback_policy.py +60 -0
  1104. iopenpod-2.0.4/src/iOpenPod/app/updates/__init__.py +1 -0
  1105. iopenpod-2.0.4/src/iOpenPod/app/updates/backend.py +97 -0
  1106. iopenpod-2.0.4/src/iOpenPod/app/updates/bootstrap.py +116 -0
  1107. iopenpod-2.0.4/src/iOpenPod/app/updates/controller.py +386 -0
  1108. iopenpod-2.0.4/src/iOpenPod/app/updates/github.py +222 -0
  1109. iopenpod-2.0.4/src/iOpenPod/app/updates/helper.py +228 -0
  1110. iopenpod-2.0.4/src/iOpenPod/app/updates/installation.py +94 -0
  1111. iopenpod-2.0.4/src/iOpenPod/app/updates/platform.py +156 -0
  1112. iopenpod-2.0.4/src/iOpenPod/app/updates/portable.py +430 -0
  1113. iopenpod-2.0.4/src/iOpenPod/app/updates/processes.py +127 -0
  1114. iopenpod-2.0.4/src/iOpenPod/app/updates/processes_windows.py +229 -0
  1115. iopenpod-2.0.4/src/iOpenPod/app/updates/pypi.py +288 -0
  1116. iopenpod-2.0.4/src/iOpenPod/app/updates/python_helper.py +352 -0
  1117. iopenpod-2.0.4/src/iOpenPod/app/updates/python_installation.py +420 -0
  1118. iopenpod-2.0.4/src/iOpenPod/app/updates/releases.py +276 -0
  1119. iopenpod-2.0.4/src/iOpenPod/app/updates/sparkle.py +111 -0
  1120. iopenpod-2.0.4/src/iOpenPod/app/updates/transport.py +183 -0
  1121. iopenpod-2.0.4/src/iOpenPod/app/updates/windows.py +252 -0
  1122. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/README.md +6 -0
  1123. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/album.svg +19 -0
  1124. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/alert.svg +3 -0
  1125. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/bell.svg +4 -0
  1126. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/book.svg +4 -0
  1127. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/box.svg +3 -0
  1128. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/broadcast.svg +8 -0
  1129. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/check-circle.svg +4 -0
  1130. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/chevron-left.svg +1 -0
  1131. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/eject.svg +3 -0
  1132. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/film.svg +4 -0
  1133. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/folder.svg +3 -0
  1134. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/grid.svg +6 -0
  1135. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/list.svg +4 -0
  1136. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/minus.svg +3 -0
  1137. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/monitor.svg +4 -0
  1138. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/music.svg +5 -0
  1139. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/pause.svg +4 -0
  1140. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/photo.svg +3 -0
  1141. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/play-last.svg +6 -0
  1142. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/play-next.svg +6 -0
  1143. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/play.svg +3 -0
  1144. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/playlist.svg +7 -0
  1145. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/plus.svg +3 -0
  1146. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/refresh.svg +3 -0
  1147. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/search.svg +3 -0
  1148. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/settings-sliders.svg +5 -0
  1149. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/skip-back.svg +4 -0
  1150. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/skip-forward.svg +4 -0
  1151. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/smart-playlist.svg +5 -0
  1152. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/synesthesia.svg +8 -0
  1153. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/user.svg +4 -0
  1154. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/video.svg +4 -0
  1155. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/volume.svg +3 -0
  1156. iopenpod-2.0.4/src/iOpenPod/assets/glyphs/x.svg +3 -0
  1157. iopenpod-2.0.4/src/iOpenPod/assets/icons/DJShott-icon.txt +21 -0
  1158. iopenpod-2.0.4/src/iOpenPod/assets/icons/README.md +13 -0
  1159. iopenpod-2.0.4/src/iOpenPod/assets/icons/icon-128.png +0 -0
  1160. iopenpod-2.0.4/src/iOpenPod/assets/icons/icon-16.png +0 -0
  1161. iopenpod-2.0.4/src/iOpenPod/assets/icons/icon-24.png +0 -0
  1162. iopenpod-2.0.4/src/iOpenPod/assets/icons/icon-256.png +0 -0
  1163. iopenpod-2.0.4/src/iOpenPod/assets/icons/icon-32.png +0 -0
  1164. iopenpod-2.0.4/src/iOpenPod/assets/icons/icon-48.png +0 -0
  1165. iopenpod-2.0.4/src/iOpenPod/assets/icons/icon-64.png +0 -0
  1166. iopenpod-2.0.4/src/iOpenPod/assets/icons/icon.ico +0 -0
  1167. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod1.png +0 -0
  1168. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod11-Black.png +0 -0
  1169. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod11-Silver.png +0 -0
  1170. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod11B-Black.png +0 -0
  1171. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod12-Black.png +0 -0
  1172. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod12-Blue.png +0 -0
  1173. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod12-Green.png +0 -0
  1174. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod12-Pink.png +0 -0
  1175. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod12-Red.png +0 -0
  1176. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod12-Silver.png +0 -0
  1177. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod15-Black.png +0 -0
  1178. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod15-Blue.png +0 -0
  1179. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod15-Green.png +0 -0
  1180. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod15-Orange.png +0 -0
  1181. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod15-Pink.png +0 -0
  1182. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod15-Purple.png +0 -0
  1183. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod15-Red.png +0 -0
  1184. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod15-Silver.png +0 -0
  1185. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod15-Yellow.png +0 -0
  1186. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod16-Black.png +0 -0
  1187. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod16-Blue.png +0 -0
  1188. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod16-Green.png +0 -0
  1189. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod16-Orange.png +0 -0
  1190. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod16-Pink.png +0 -0
  1191. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod16-Purple.png +0 -0
  1192. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod16-Red.png +0 -0
  1193. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod16-Silver.png +0 -0
  1194. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod16-Yellow.png +0 -0
  1195. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod17-Blue.png +0 -0
  1196. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod17-DarkGray.png +0 -0
  1197. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod17-Green.png +0 -0
  1198. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod17-Orange.png +0 -0
  1199. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod17-Pink.png +0 -0
  1200. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod17-Red.png +0 -0
  1201. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod17-Silver.png +0 -0
  1202. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod18-Blue.png +0 -0
  1203. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod18-DarkGray.png +0 -0
  1204. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod18-Green.png +0 -0
  1205. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod18-Pink.png +0 -0
  1206. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod18-Purple.png +0 -0
  1207. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod18-Red.png +0 -0
  1208. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod18-Silver.png +0 -0
  1209. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod18-SpaceGray.png +0 -0
  1210. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod18-Yellow.png +0 -0
  1211. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod18A-Blue.png +0 -0
  1212. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod18A-Gold.png +0 -0
  1213. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod18A-Pink.png +0 -0
  1214. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod18A-Red.png +0 -0
  1215. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod18A-Silver.png +0 -0
  1216. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod18A-SpaceGray.png +0 -0
  1217. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod2.png +0 -0
  1218. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod3-Blue.png +0 -0
  1219. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod3-Gold.png +0 -0
  1220. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod3-Green.png +0 -0
  1221. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod3-Pink.png +0 -0
  1222. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod3-Silver.png +0 -0
  1223. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod3B-Blue.png +0 -0
  1224. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod3B-Green.png +0 -0
  1225. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod3B-Pink.png +0 -0
  1226. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod4-BlackRed.png +0 -0
  1227. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod4-White.png +0 -0
  1228. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod5-BlackRed.png +0 -0
  1229. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod5-White.png +0 -0
  1230. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod6-Black.png +0 -0
  1231. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod6-BlackRed.png +0 -0
  1232. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod6-White.png +0 -0
  1233. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod7-Black.png +0 -0
  1234. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod7-White.png +0 -0
  1235. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod9-Black.png +0 -0
  1236. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod9-Blue.png +0 -0
  1237. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod9-Green.png +0 -0
  1238. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod9-Pink.png +0 -0
  1239. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod9-Red.png +0 -0
  1240. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPod9-Silver.png +0 -0
  1241. iopenpod-2.0.4/src/iOpenPod/assets/ipod_images/iPodGeneric.png +0 -0
  1242. iopenpod-2.0.4/src/iOpenPod/assets/linux/61-iopenpod.rules +24 -0
  1243. iopenpod-2.0.4/src/iPodDB/ArtworkDB/builder/build_ArtworkDB.py +180 -0
  1244. iopenpod-2.0.4/src/iPodDB/ArtworkDB/ithmb.py +453 -0
  1245. iopenpod-2.0.4/src/iPodDB/ArtworkDB/ithmb_writer.py +170 -0
  1246. iopenpod-2.0.4/src/iPodDB/ArtworkDB/parser/mhod_parsers/container_mhod.py +38 -0
  1247. iopenpod-2.0.4/src/iPodDB/ArtworkDB/parser/mhod_parsers/opaque_mhod.py +12 -0
  1248. iopenpod-2.0.4/src/iPodDB/ArtworkDB/parser/mhod_parsers/string_mhod.py +33 -0
  1249. iopenpod-2.0.4/src/iPodDB/ArtworkDB/parser/mhod_payload_spec_registry.py +75 -0
  1250. iopenpod-2.0.4/src/iPodDB/ArtworkDB/parser/parse_ArtworkDB.py +14 -0
  1251. iopenpod-2.0.4/src/iPodDB/ArtworkDB/parser/parser_definition.py +31 -0
  1252. iopenpod-2.0.4/src/iPodDB/ArtworkDB/shared/artwork_index.py +163 -0
  1253. iopenpod-2.0.4/src/iPodDB/ArtworkDB/shared/chunk_defs/mhaf.py +23 -0
  1254. iopenpod-2.0.4/src/iPodDB/ArtworkDB/shared/chunk_defs/mhba.py +44 -0
  1255. iopenpod-2.0.4/src/iPodDB/ArtworkDB/shared/chunk_defs/mhfd.py +36 -0
  1256. iopenpod-2.0.4/src/iPodDB/ArtworkDB/shared/chunk_defs/mhia.py +24 -0
  1257. iopenpod-2.0.4/src/iPodDB/ArtworkDB/shared/chunk_defs/mhif.py +27 -0
  1258. iopenpod-2.0.4/src/iPodDB/ArtworkDB/shared/chunk_defs/mhii.py +34 -0
  1259. iopenpod-2.0.4/src/iPodDB/ArtworkDB/shared/chunk_defs/mhla.py +16 -0
  1260. iopenpod-2.0.4/src/iPodDB/ArtworkDB/shared/chunk_defs/mhlf.py +16 -0
  1261. iopenpod-2.0.4/src/iPodDB/ArtworkDB/shared/chunk_defs/mhli.py +16 -0
  1262. iopenpod-2.0.4/src/iPodDB/ArtworkDB/shared/chunk_defs/mhni.py +34 -0
  1263. iopenpod-2.0.4/src/iPodDB/ArtworkDB/shared/chunk_defs/mhod.py +27 -0
  1264. iopenpod-2.0.4/src/iPodDB/ArtworkDB/shared/chunk_defs/mhod_payloads/container_mhod.py +12 -0
  1265. iopenpod-2.0.4/src/iPodDB/ArtworkDB/shared/chunk_defs/mhod_payloads/opaque_mhod.py +14 -0
  1266. iopenpod-2.0.4/src/iPodDB/ArtworkDB/shared/chunk_defs/mhod_payloads/string_mhod.py +43 -0
  1267. iopenpod-2.0.4/src/iPodDB/ArtworkDB/shared/chunk_defs/mhsd.py +51 -0
  1268. iopenpod-2.0.4/src/iPodDB/ArtworkDB/shared/constants.py +24 -0
  1269. iopenpod-2.0.4/src/iPodDB/ArtworkDB/shared/database_definition.py +36 -0
  1270. iopenpod-2.0.4/src/iPodDB/ArtworkDB/shared/mhod_payload_spec_registry.py +88 -0
  1271. iopenpod-2.0.4/src/iPodDB/ArtworkDB/writer/mhod_encoder.py +172 -0
  1272. iopenpod-2.0.4/src/iPodDB/ArtworkDB/writer/mhod_serializer.py +72 -0
  1273. iopenpod-2.0.4/src/iPodDB/ArtworkDB/writer/write_ArtworkDB.py +24 -0
  1274. iopenpod-2.0.4/src/iPodDB/PhotosDB/builder/build_PhotosDB.py +181 -0
  1275. iopenpod-2.0.4/src/iPodDB/PhotosDB/parser/mhod_parsers/container_mhod.py +38 -0
  1276. iopenpod-2.0.4/src/iPodDB/PhotosDB/parser/mhod_parsers/opaque_mhod.py +12 -0
  1277. iopenpod-2.0.4/src/iPodDB/PhotosDB/parser/mhod_parsers/string_mhod.py +33 -0
  1278. iopenpod-2.0.4/src/iPodDB/PhotosDB/parser/mhod_payload_spec_registry.py +75 -0
  1279. iopenpod-2.0.4/src/iPodDB/PhotosDB/parser/parse_PhotosDB.py +14 -0
  1280. iopenpod-2.0.4/src/iPodDB/PhotosDB/parser/parser_definition.py +29 -0
  1281. iopenpod-2.0.4/src/iPodDB/PhotosDB/shared/chunk_defs/mhaf.py +17 -0
  1282. iopenpod-2.0.4/src/iPodDB/PhotosDB/shared/chunk_defs/mhba.py +22 -0
  1283. iopenpod-2.0.4/src/iPodDB/PhotosDB/shared/chunk_defs/mhfd.py +38 -0
  1284. iopenpod-2.0.4/src/iPodDB/PhotosDB/shared/chunk_defs/mhia.py +17 -0
  1285. iopenpod-2.0.4/src/iPodDB/PhotosDB/shared/chunk_defs/mhif.py +18 -0
  1286. iopenpod-2.0.4/src/iPodDB/PhotosDB/shared/chunk_defs/mhii.py +19 -0
  1287. iopenpod-2.0.4/src/iPodDB/PhotosDB/shared/chunk_defs/mhla.py +16 -0
  1288. iopenpod-2.0.4/src/iPodDB/PhotosDB/shared/chunk_defs/mhlf.py +16 -0
  1289. iopenpod-2.0.4/src/iPodDB/PhotosDB/shared/chunk_defs/mhli.py +16 -0
  1290. iopenpod-2.0.4/src/iPodDB/PhotosDB/shared/chunk_defs/mhni.py +18 -0
  1291. iopenpod-2.0.4/src/iPodDB/PhotosDB/shared/chunk_defs/mhod.py +17 -0
  1292. iopenpod-2.0.4/src/iPodDB/PhotosDB/shared/chunk_defs/mhod_payloads/container_mhod.py +7 -0
  1293. iopenpod-2.0.4/src/iPodDB/PhotosDB/shared/chunk_defs/mhod_payloads/opaque_mhod.py +8 -0
  1294. iopenpod-2.0.4/src/iPodDB/PhotosDB/shared/chunk_defs/mhod_payloads/string_mhod.py +36 -0
  1295. iopenpod-2.0.4/src/iPodDB/PhotosDB/shared/chunk_defs/mhsd.py +43 -0
  1296. iopenpod-2.0.4/src/iPodDB/PhotosDB/shared/constants.py +31 -0
  1297. iopenpod-2.0.4/src/iPodDB/PhotosDB/shared/database_definition.py +36 -0
  1298. iopenpod-2.0.4/src/iPodDB/PhotosDB/shared/mhod_payload_spec_registry.py +21 -0
  1299. iopenpod-2.0.4/src/iPodDB/PhotosDB/writer/write_PhotosDB.py +22 -0
  1300. iopenpod-2.0.4/src/iPodDB/SQLiteDB/artifacts.py +27 -0
  1301. iopenpod-2.0.4/src/iPodDB/SQLiteDB/checksum.py +68 -0
  1302. iopenpod-2.0.4/src/iPodDB/SQLiteDB/database.py +1089 -0
  1303. iopenpod-2.0.4/src/iPodDB/device_time.py +143 -0
  1304. iopenpod-2.0.4/src/iPodDB/iTunesDB/builder/build_iTunesDB.py +94 -0
  1305. iopenpod-2.0.4/src/iPodDB/iTunesDB/cdb.py +136 -0
  1306. iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/chapter_data_mhod.py +327 -0
  1307. iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/contextual_100_mhod.py +17 -0
  1308. iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/library_index_mhod.py +31 -0
  1309. iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/library_jump_table_mhod.py +36 -0
  1310. iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/opaque_mhod.py +14 -0
  1311. iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/plist_mhod.py +52 -0
  1312. iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/settings_mhod.py +28 -0
  1313. iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/smart_prefs_mhod.py +17 -0
  1314. iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/smart_rules_mhod.py +180 -0
  1315. iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/string_mhod.py +40 -0
  1316. iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/url_mhod.py +18 -0
  1317. iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/video_details_mhod.py +16 -0
  1318. iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_payload_spec_registry.py +128 -0
  1319. iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/parse_iTunesDB.py +23 -0
  1320. iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/parser_definition.py +29 -0
  1321. iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/chunk_defs/mhbd.py +47 -0
  1322. iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/chunk_defs/mhia.py +33 -0
  1323. iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/chunk_defs/mhii.py +28 -0
  1324. iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/chunk_defs/mhip.py +34 -0
  1325. iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/chunk_defs/mhit.py +131 -0
  1326. iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/chunk_defs/mhla.py +16 -0
  1327. iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/chunk_defs/mhli.py +16 -0
  1328. iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/chunk_defs/mhlp.py +16 -0
  1329. iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/chunk_defs/mhlt.py +16 -0
  1330. iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/chunk_defs/mhod.py +26 -0
  1331. iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/chapter_data_mhod.py +93 -0
  1332. iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/contextual_100_mhod.py +28 -0
  1333. iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/library_index_mhod.py +19 -0
  1334. iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/library_jump_table_mhod.py +27 -0
  1335. iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/opaque_mhod.py +10 -0
  1336. iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/plist_mhod.py +52 -0
  1337. iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/settings_mhod.py +18 -0
  1338. iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/smart_prefs_mhod.py +28 -0
  1339. iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/smart_rules_mhod.py +173 -0
  1340. iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/string_mhod.py +19 -0
  1341. iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/url_mhod.py +10 -0
  1342. iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/video_details_mhod.py +13 -0
  1343. iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/chunk_defs/mhsd.py +44 -0
  1344. iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/chunk_defs/mhyp.py +50 -0
  1345. iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/constants.py +205 -0
  1346. iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/database_definition.py +36 -0
  1347. iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/device_time.py +39 -0
  1348. iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/field_converters.py +22 -0
  1349. iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/mhod_payload_spec_registry.py +165 -0
  1350. iopenpod-2.0.4/src/iPodDB/iTunesDB/writer/calcHashAB.NOTICE +20 -0
  1351. iopenpod-2.0.4/src/iPodDB/iTunesDB/writer/calcHashAB.wasm.b64 +150 -0
  1352. iopenpod-2.0.4/src/iPodDB/iTunesDB/writer/mhod_encoder.py +607 -0
  1353. iopenpod-2.0.4/src/iPodDB/iTunesDB/writer/signature.py +291 -0
  1354. iopenpod-2.0.4/src/iPodDB/iTunesDB/writer/write_iTunesDB.py +67 -0
  1355. iopenpod-2.0.4/src/iPodDB/library/__init__.py +218 -0
  1356. iopenpod-2.0.4/src/iPodDB/library/_album_index.py +375 -0
  1357. iopenpod-2.0.4/src/iPodDB/library/_artwork_verification.py +171 -0
  1358. iopenpod-2.0.4/src/iPodDB/library/_artwork_writing.py +652 -0
  1359. iopenpod-2.0.4/src/iPodDB/library/_browse_groups.py +68 -0
  1360. iopenpod-2.0.4/src/iPodDB/library/_browse_index.py +103 -0
  1361. iopenpod-2.0.4/src/iPodDB/library/_document_edit.py +23 -0
  1362. iopenpod-2.0.4/src/iPodDB/library/_field_policy.py +387 -0
  1363. iopenpod-2.0.4/src/iPodDB/library/_folder_validation.py +78 -0
  1364. iopenpod-2.0.4/src/iPodDB/library/_folder_writing.py +163 -0
  1365. iopenpod-2.0.4/src/iPodDB/library/_group_verification.py +305 -0
  1366. iopenpod-2.0.4/src/iPodDB/library/_hidden_writing.py +461 -0
  1367. iopenpod-2.0.4/src/iPodDB/library/_hierarchy.py +36 -0
  1368. iopenpod-2.0.4/src/iPodDB/library/_identities.py +40 -0
  1369. iopenpod-2.0.4/src/iPodDB/library/_index_verification.py +126 -0
  1370. iopenpod-2.0.4/src/iPodDB/library/_lyrics_resources.py +71 -0
  1371. iopenpod-2.0.4/src/iPodDB/library/_native_values.py +72 -0
  1372. iopenpod-2.0.4/src/iPodDB/library/_photo_analysis.py +575 -0
  1373. iopenpod-2.0.4/src/iPodDB/library/_photo_projection.py +178 -0
  1374. iopenpod-2.0.4/src/iPodDB/library/_photo_resources.py +238 -0
  1375. iopenpod-2.0.4/src/iPodDB/library/_photo_writing.py +376 -0
  1376. iopenpod-2.0.4/src/iPodDB/library/_playlist_datasets.py +263 -0
  1377. iopenpod-2.0.4/src/iPodDB/library/_playlist_projection.py +207 -0
  1378. iopenpod-2.0.4/src/iPodDB/library/_playlist_verification.py +622 -0
  1379. iopenpod-2.0.4/src/iPodDB/library/_playlist_writing.py +244 -0
  1380. iopenpod-2.0.4/src/iPodDB/library/_podcast_writing.py +272 -0
  1381. iopenpod-2.0.4/src/iPodDB/library/_projection.py +422 -0
  1382. iopenpod-2.0.4/src/iPodDB/library/_reconcile.py +597 -0
  1383. iopenpod-2.0.4/src/iPodDB/library/_resolve_write.py +360 -0
  1384. iopenpod-2.0.4/src/iPodDB/library/_resolved_write.py +36 -0
  1385. iopenpod-2.0.4/src/iPodDB/library/_sidecar_projection.py +168 -0
  1386. iopenpod-2.0.4/src/iPodDB/library/_smart_projection.py +332 -0
  1387. iopenpod-2.0.4/src/iPodDB/library/_smart_writing.py +321 -0
  1388. iopenpod-2.0.4/src/iPodDB/library/_source_warnings.py +87 -0
  1389. iopenpod-2.0.4/src/iPodDB/library/_time_warnings.py +83 -0
  1390. iopenpod-2.0.4/src/iPodDB/library/_track_header_verification.py +168 -0
  1391. iopenpod-2.0.4/src/iPodDB/library/_track_verification.py +206 -0
  1392. iopenpod-2.0.4/src/iPodDB/library/_track_writing.py +467 -0
  1393. iopenpod-2.0.4/src/iPodDB/library/_write_analysis.py +415 -0
  1394. iopenpod-2.0.4/src/iPodDB/library/_write_effects.py +363 -0
  1395. iopenpod-2.0.4/src/iPodDB/library/_write_logging.py +201 -0
  1396. iopenpod-2.0.4/src/iPodDB/library/_write_preparation.py +1052 -0
  1397. iopenpod-2.0.4/src/iPodDB/library/_write_verification.py +147 -0
  1398. iopenpod-2.0.4/src/iPodDB/library/artwork.py +112 -0
  1399. iopenpod-2.0.4/src/iPodDB/library/database.py +414 -0
  1400. iopenpod-2.0.4/src/iPodDB/library/editing.py +114 -0
  1401. iopenpod-2.0.4/src/iPodDB/library/media.py +48 -0
  1402. iopenpod-2.0.4/src/iPodDB/library/models.py +254 -0
  1403. iopenpod-2.0.4/src/iPodDB/library/photos.py +285 -0
  1404. iopenpod-2.0.4/src/iPodDB/library/playlists.py +437 -0
  1405. iopenpod-2.0.4/src/iPodDB/library/signing.py +64 -0
  1406. iopenpod-2.0.4/src/iPodDB/library/smart_rules.py +236 -0
  1407. iopenpod-2.0.4/src/iPodDB/library/sqlite.py +5 -0
  1408. iopenpod-2.0.4/src/iPodDB/library/writing.py +305 -0
  1409. iopenpod-2.0.4/src/iPodDB/preferences/__init__.py +58 -0
  1410. iopenpod-2.0.4/src/iPodDB/preferences/_source.py +9 -0
  1411. iopenpod-2.0.4/src/iPodDB/preferences/codec.py +175 -0
  1412. iopenpod-2.0.4/src/iPodDB/preferences/definitions.py +104 -0
  1413. iopenpod-2.0.4/src/iPodDB/preferences/itunes.py +145 -0
  1414. iopenpod-2.0.4/src/iPodDB/preferences/itunes_definitions.py +93 -0
  1415. iopenpod-2.0.4/src/iPodDB/preferences/models.py +81 -0
  1416. iopenpod-2.0.4/src/iPodDB/preferences/timezones.py +220 -0
  1417. iopenpod-2.0.4/src/iPodDB/py.typed +0 -0
  1418. iopenpod-2.0.4/src/iPodDB/shared/binary_struct.py +271 -0
  1419. iopenpod-2.0.4/src/iPodDB/shared/chunk.py +408 -0
  1420. iopenpod-2.0.4/src/iPodDB/shared/chunk_builder.py +46 -0
  1421. iopenpod-2.0.4/src/iPodDB/shared/chunk_field.py +178 -0
  1422. iopenpod-2.0.4/src/iPodDB/shared/chunk_reader.py +433 -0
  1423. iopenpod-2.0.4/src/iPodDB/shared/chunk_writer.py +325 -0
  1424. iopenpod-2.0.4/src/iPodDB/shared/errors.py +42 -0
  1425. iopenpod-2.0.4/src/iPodDB/shared/measure_memory.py +107 -0
  1426. iopenpod-2.0.4/src/iPodDB/shared/to_json.py +91 -0
  1427. iopenpod-2.0.4/src/iPodDB/shared/types.py +377 -0
  1428. iopenpod-2.0.4/src/iPodDB/sidecars/__init__.py +41 -0
  1429. iopenpod-2.0.4/src/iPodDB/sidecars/codec.py +225 -0
  1430. iopenpod-2.0.4/src/iPodDB/sidecars/models.py +63 -0
  1431. iopenpod-2.0.4/src/iPodDB/sidecars/remapping.py +64 -0
  1432. iopenpod-2.0.4/src/iPodDB/tools/chunk_browser.py +1051 -0
  1433. iopenpod-2.0.4/src/iopenpod_launcher.py +283 -0
  1434. iopenpod-2.0.4/src/iopenpod_update_helper.py +43 -0
  1435. iopenpod-2.0.4/src/storage/__init__.py +177 -0
  1436. iopenpod-2.0.4/src/storage/_filesystem.py +238 -0
  1437. iopenpod-2.0.4/src/storage/_transaction_journal.py +242 -0
  1438. iopenpod-2.0.4/src/storage/_transactions.py +1426 -0
  1439. iopenpod-2.0.4/src/storage/_writer_lock.py +189 -0
  1440. iopenpod-2.0.4/src/storage/device_capture.py +39 -0
  1441. iopenpod-2.0.4/src/storage/errors.py +111 -0
  1442. iopenpod-2.0.4/src/storage/host_capture.py +139 -0
  1443. iopenpod-2.0.4/src/storage/host_directory.py +242 -0
  1444. iopenpod-2.0.4/src/storage/host_files.py +221 -0
  1445. iopenpod-2.0.4/src/storage/host_input.py +417 -0
  1446. iopenpod-2.0.4/src/storage/host_installation.py +147 -0
  1447. iopenpod-2.0.4/src/storage/host_tools.py +124 -0
  1448. iopenpod-2.0.4/src/storage/host_usage.py +119 -0
  1449. iopenpod-2.0.4/src/storage/media_probe.py +161 -0
  1450. iopenpod-2.0.4/src/storage/media_processing.py +527 -0
  1451. iopenpod-2.0.4/src/storage/models.py +364 -0
  1452. iopenpod-2.0.4/src/storage/paths.py +97 -0
  1453. iopenpod-2.0.4/src/storage/platform/__init__.py +1 -0
  1454. iopenpod-2.0.4/src/storage/platform/base.py +58 -0
  1455. iopenpod-2.0.4/src/storage/platform/common.py +88 -0
  1456. iopenpod-2.0.4/src/storage/platform/host_install_windows.py +201 -0
  1457. iopenpod-2.0.4/src/storage/platform/linux.py +619 -0
  1458. iopenpod-2.0.4/src/storage/platform/linux_eject.py +392 -0
  1459. iopenpod-2.0.4/src/storage/platform/macos.py +974 -0
  1460. iopenpod-2.0.4/src/storage/platform/macos_eject.py +90 -0
  1461. iopenpod-2.0.4/src/storage/platform/macos_volume_metadata.py +116 -0
  1462. iopenpod-2.0.4/src/storage/platform/macos_vpd.py +546 -0
  1463. iopenpod-2.0.4/src/storage/platform/native.py +29 -0
  1464. iopenpod-2.0.4/src/storage/platform/windows.py +667 -0
  1465. iopenpod-2.0.4/src/storage/platform/windows_eject.py +386 -0
  1466. iopenpod-2.0.4/src/storage/portal.py +403 -0
  1467. iopenpod-2.0.4/src/storage/py.typed +1 -0
  1468. iopenpod-2.0.4/src/storage/scsi_vpd.py +127 -0
  1469. iopenpod-2.0.4/src/storage/session.py +1626 -0
  1470. iopenpod-2.0.4/src/storage/testing.py +282 -0
  1471. iopenpod-2.0.4/src/storage/transactions.py +209 -0
  1472. iopenpod-2.0.4/src/storage/volume_metadata.py +40 -0
  1473. iopenpod-2.0.4/tests/README.md +5 -0
  1474. iopenpod-2.0.4/tests/__init__.py +1 -0
  1475. iopenpod-2.0.4/tests/conftest.py +9 -0
  1476. iopenpod-2.0.4/tests/device_registry/test_artwork_profiles.py +68 -0
  1477. iopenpod-2.0.4/tests/device_registry/test_authority.py +252 -0
  1478. iopenpod-2.0.4/tests/device_registry/test_metadata.py +118 -0
  1479. iopenpod-2.0.4/tests/device_registry/test_registry.py +391 -0
  1480. iopenpod-2.0.4/tests/fixtures/ArtworkDB/README.md +18 -0
  1481. iopenpod-2.0.4/tests/fixtures/ArtworkDB/original-empty.b64 +1 -0
  1482. iopenpod-2.0.4/tests/fixtures/ArtworkDB/original-with-unknown-data.b64 +1 -0
  1483. iopenpod-2.0.4/tests/fixtures/PhotosDB/README.md +13 -0
  1484. iopenpod-2.0.4/tests/fixtures/PhotosDB/original-photo-library.b64 +1 -0
  1485. iopenpod-2.0.4/tests/fixtures/SQLiteDB/README.md +8 -0
  1486. iopenpod-2.0.4/tests/fixtures/iTunesDB/README.md +34 -0
  1487. iopenpod-2.0.4/tests/fixtures/iTunesDB/original-empty.b64 +1 -0
  1488. iopenpod-2.0.4/tests/fixtures/media/README.md +27 -0
  1489. iopenpod-2.0.4/tests/fixtures/media/chapters-cover.m4a.b64 +53 -0
  1490. iopenpod-2.0.4/tests/fixtures/media/generator.json +4 -0
  1491. iopenpod-2.0.4/tests/fixtures/media/lossless.m4a.b64 +91 -0
  1492. iopenpod-2.0.4/tests/fixtures/media/multi-track.m4v.b64 +111 -0
  1493. iopenpod-2.0.4/tests/fixtures/media/multi-track.mov.b64 +117 -0
  1494. iopenpod-2.0.4/tests/fixtures/media/silent.mp4.b64 +33 -0
  1495. iopenpod-2.0.4/tests/fixtures/media/source.mkv.b64 +42 -0
  1496. iopenpod-2.0.4/tests/fixtures/media/surround.flac.b64 +160 -0
  1497. iopenpod-2.0.4/tests/fixtures/media/tone-vbr.mp3.b64 +44 -0
  1498. iopenpod-2.0.4/tests/fixtures/media/tone.aiff.b64 +775 -0
  1499. iopenpod-2.0.4/tests/fixtures/media/tone.m4a.b64 +40 -0
  1500. iopenpod-2.0.4/tests/fixtures/media/tone.mp3.b64 +89 -0
  1501. iopenpod-2.0.4/tests/fixtures/media/tone.wav.b64 +776 -0
  1502. iopenpod-2.0.4/tests/fixtures/normalization/original-cases.json +512 -0
  1503. iopenpod-2.0.4/tests/fixtures/writing/README.md +27 -0
  1504. iopenpod-2.0.4/tests/fixtures/writing/hash58-original.json +22 -0
  1505. iopenpod-2.0.4/tests/fixtures/writing/original_smart_rules.json +6 -0
  1506. iopenpod-2.0.4/tests/fixtures/writing/playlists-original.json +11 -0
  1507. iopenpod-2.0.4/tests/iOpenPod/GUI/application_shell_test_support.py +179 -0
  1508. iopenpod-2.0.4/tests/iOpenPod/GUI/conftest.py +22 -0
  1509. iopenpod-2.0.4/tests/iOpenPod/GUI/presentation/test_artwork_provider.py +121 -0
  1510. iopenpod-2.0.4/tests/iOpenPod/GUI/presentation/test_collection_text.py +42 -0
  1511. iopenpod-2.0.4/tests/iOpenPod/GUI/presentation/test_device_images.py +298 -0
  1512. iopenpod-2.0.4/tests/iOpenPod/GUI/presentation/test_display.py +119 -0
  1513. iopenpod-2.0.4/tests/iOpenPod/GUI/presentation/test_german_catalog.py +189 -0
  1514. iopenpod-2.0.4/tests/iOpenPod/GUI/presentation/test_i18n_manager.py +91 -0
  1515. iopenpod-2.0.4/tests/iOpenPod/GUI/presentation/test_icons.py +31 -0
  1516. iopenpod-2.0.4/tests/iOpenPod/GUI/presentation/test_image_color.py +98 -0
  1517. iopenpod-2.0.4/tests/iOpenPod/GUI/presentation/test_library_card.py +136 -0
  1518. iopenpod-2.0.4/tests/iOpenPod/GUI/presentation/test_middle_mouse_scrolling.py +203 -0
  1519. iopenpod-2.0.4/tests/iOpenPod/GUI/presentation/test_model_translations.py +223 -0
  1520. iopenpod-2.0.4/tests/iOpenPod/GUI/presentation/test_photo_provider.py +270 -0
  1521. iopenpod-2.0.4/tests/iOpenPod/GUI/presentation/test_round_header_colors.py +56 -0
  1522. iopenpod-2.0.4/tests/iOpenPod/GUI/presentation/test_spanish_catalog.py +176 -0
  1523. iopenpod-2.0.4/tests/iOpenPod/GUI/presentation/test_theme_manager.py +1036 -0
  1524. iopenpod-2.0.4/tests/iOpenPod/GUI/presentation/test_translation_catalog.py +215 -0
  1525. iopenpod-2.0.4/tests/iOpenPod/GUI/synesthesia/test_motion_phases.py +67 -0
  1526. iopenpod-2.0.4/tests/iOpenPod/GUI/synesthesia/test_page.py +260 -0
  1527. iopenpod-2.0.4/tests/iOpenPod/GUI/synesthesia/test_page_integration.py +357 -0
  1528. iopenpod-2.0.4/tests/iOpenPod/GUI/synesthesia/test_persistent_world.py +285 -0
  1529. iopenpod-2.0.4/tests/iOpenPod/GUI/synesthesia/test_render_resolution.py +121 -0
  1530. iopenpod-2.0.4/tests/iOpenPod/GUI/synesthesia/test_renderer_assets.py +320 -0
  1531. iopenpod-2.0.4/tests/iOpenPod/GUI/synesthesia/test_renderer_pixels.py +528 -0
  1532. iopenpod-2.0.4/tests/iOpenPod/GUI/synesthesia/test_renderer_timing.py +271 -0
  1533. iopenpod-2.0.4/tests/iOpenPod/GUI/synesthesia/test_scene_director.py +616 -0
  1534. iopenpod-2.0.4/tests/iOpenPod/GUI/synesthesia/test_shader_smoothing.py +118 -0
  1535. iopenpod-2.0.4/tests/iOpenPod/GUI/test_app_updates.py +202 -0
  1536. iopenpod-2.0.4/tests/iOpenPod/GUI/test_application_shell.py +1820 -0
  1537. iopenpod-2.0.4/tests/iOpenPod/GUI/test_artwork_editor.py +199 -0
  1538. iopenpod-2.0.4/tests/iOpenPod/GUI/test_backup_messages.py +322 -0
  1539. iopenpod-2.0.4/tests/iOpenPod/GUI/test_backup_page.py +847 -0
  1540. iopenpod-2.0.4/tests/iOpenPod/GUI/test_browser_chrome.py +51 -0
  1541. iopenpod-2.0.4/tests/iOpenPod/GUI/test_device_auto_refresh.py +145 -0
  1542. iopenpod-2.0.4/tests/iOpenPod/GUI/test_eject_messages.py +79 -0
  1543. iopenpod-2.0.4/tests/iOpenPod/GUI/test_eta_label.py +154 -0
  1544. iopenpod-2.0.4/tests/iOpenPod/GUI/test_external_playlist_files_dialog.py +139 -0
  1545. iopenpod-2.0.4/tests/iOpenPod/GUI/test_history_track_interactions.py +218 -0
  1546. iopenpod-2.0.4/tests/iOpenPod/GUI/test_host_library_browser.py +179 -0
  1547. iopenpod-2.0.4/tests/iOpenPod/GUI/test_host_media_drop.py +302 -0
  1548. iopenpod-2.0.4/tests/iOpenPod/GUI/test_ipod_library_view_mode.py +276 -0
  1549. iopenpod-2.0.4/tests/iOpenPod/GUI/test_ipod_preferences_tab.py +98 -0
  1550. iopenpod-2.0.4/tests/iOpenPod/GUI/test_library_double_click.py +315 -0
  1551. iopenpod-2.0.4/tests/iOpenPod/GUI/test_library_grid_drag.py +287 -0
  1552. iopenpod-2.0.4/tests/iOpenPod/GUI/test_library_review_translations.py +165 -0
  1553. iopenpod-2.0.4/tests/iOpenPod/GUI/test_library_track_order.py +190 -0
  1554. iopenpod-2.0.4/tests/iOpenPod/GUI/test_media_folders_dialog.py +372 -0
  1555. iopenpod-2.0.4/tests/iOpenPod/GUI/test_media_tools_dialog.py +238 -0
  1556. iopenpod-2.0.4/tests/iOpenPod/GUI/test_media_tools_settings.py +163 -0
  1557. iopenpod-2.0.4/tests/iOpenPod/GUI/test_metadata_actions.py +1156 -0
  1558. iopenpod-2.0.4/tests/iOpenPod/GUI/test_page_count_translations.py +100 -0
  1559. iopenpod-2.0.4/tests/iOpenPod/GUI/test_photo_grid.py +338 -0
  1560. iopenpod-2.0.4/tests/iOpenPod/GUI/test_photo_page.py +1168 -0
  1561. iopenpod-2.0.4/tests/iOpenPod/GUI/test_playback_lyrics.py +126 -0
  1562. iopenpod-2.0.4/tests/iOpenPod/GUI/test_playback_ui.py +1285 -0
  1563. iopenpod-2.0.4/tests/iOpenPod/GUI/test_playlist_page.py +1101 -0
  1564. iopenpod-2.0.4/tests/iOpenPod/GUI/test_playlist_tree.py +464 -0
  1565. iopenpod-2.0.4/tests/iOpenPod/GUI/test_podcast_page.py +1014 -0
  1566. iopenpod-2.0.4/tests/iOpenPod/GUI/test_podcast_translations.py +140 -0
  1567. iopenpod-2.0.4/tests/iOpenPod/GUI/test_queue_actions.py +229 -0
  1568. iopenpod-2.0.4/tests/iOpenPod/GUI/test_scrobbling_ui.py +164 -0
  1569. iopenpod-2.0.4/tests/iOpenPod/GUI/test_selection_grid_gestures.py +220 -0
  1570. iopenpod-2.0.4/tests/iOpenPod/GUI/test_selection_group_grid.py +374 -0
  1571. iopenpod-2.0.4/tests/iOpenPod/GUI/test_selection_group_transition.py +256 -0
  1572. iopenpod-2.0.4/tests/iOpenPod/GUI/test_settings_tabs.py +274 -0
  1573. iopenpod-2.0.4/tests/iOpenPod/GUI/test_status_list.py +339 -0
  1574. iopenpod-2.0.4/tests/iOpenPod/GUI/test_sync_collection_detail.py +568 -0
  1575. iopenpod-2.0.4/tests/iOpenPod/GUI/test_sync_execution_page.py +562 -0
  1576. iopenpod-2.0.4/tests/iOpenPod/GUI/test_sync_plan_page.py +676 -0
  1577. iopenpod-2.0.4/tests/iOpenPod/GUI/test_sync_playlist_review.py +179 -0
  1578. iopenpod-2.0.4/tests/iOpenPod/GUI/test_sync_recovery_choice.py +61 -0
  1579. iopenpod-2.0.4/tests/iOpenPod/GUI/test_sync_scan_i18n.py +39 -0
  1580. iopenpod-2.0.4/tests/iOpenPod/GUI/test_sync_selection_actions.py +464 -0
  1581. iopenpod-2.0.4/tests/iOpenPod/GUI/test_sync_settings.py +100 -0
  1582. iopenpod-2.0.4/tests/iOpenPod/GUI/test_sync_storage_bar.py +87 -0
  1583. iopenpod-2.0.4/tests/iOpenPod/GUI/test_tag_normalizer.py +223 -0
  1584. iopenpod-2.0.4/tests/iOpenPod/GUI/test_track_table.py +585 -0
  1585. iopenpod-2.0.4/tests/iOpenPod/GUI/test_track_title_bar.py +196 -0
  1586. iopenpod-2.0.4/tests/iOpenPod/GUI/test_widget_translations.py +549 -0
  1587. iopenpod-2.0.4/tests/iOpenPod/GUI/test_workflow_failure_translations.py +76 -0
  1588. iopenpod-2.0.4/tests/iOpenPod/__init__.py +1 -0
  1589. iopenpod-2.0.4/tests/iOpenPod/app/backups/test_backup_service.py +707 -0
  1590. iopenpod-2.0.4/tests/iOpenPod/app/backups/test_json.py +16 -0
  1591. iopenpod-2.0.4/tests/iOpenPod/app/backups/test_original_import.py +420 -0
  1592. iopenpod-2.0.4/tests/iOpenPod/app/backups/test_outcomes.py +407 -0
  1593. iopenpod-2.0.4/tests/iOpenPod/app/backups/test_repository.py +725 -0
  1594. iopenpod-2.0.4/tests/iOpenPod/app/backups/test_restore_recovery.py +256 -0
  1595. iopenpod-2.0.4/tests/iOpenPod/app/core/settings/test_service.py +316 -0
  1596. iopenpod-2.0.4/tests/iOpenPod/app/core/settings/test_transcoding_settings.py +123 -0
  1597. iopenpod-2.0.4/tests/iOpenPod/app/core/test_eta.py +271 -0
  1598. iopenpod-2.0.4/tests/iOpenPod/app/core/test_logging.py +54 -0
  1599. iopenpod-2.0.4/tests/iOpenPod/app/core/test_status.py +208 -0
  1600. iopenpod-2.0.4/tests/iOpenPod/app/media/test_music_paths.py +116 -0
  1601. iopenpod-2.0.4/tests/iOpenPod/app/media/test_photo_sync.py +454 -0
  1602. iopenpod-2.0.4/tests/iOpenPod/app/models/test_library_models.py +536 -0
  1603. iopenpod-2.0.4/tests/iOpenPod/app/models/test_library_search_order.py +104 -0
  1604. iopenpod-2.0.4/tests/iOpenPod/app/models/test_photo_album_drops.py +168 -0
  1605. iopenpod-2.0.4/tests/iOpenPod/app/models/test_photo_models.py +308 -0
  1606. iopenpod-2.0.4/tests/iOpenPod/app/models/test_playback_models.py +270 -0
  1607. iopenpod-2.0.4/tests/iOpenPod/app/models/test_playlist_tree_model.py +244 -0
  1608. iopenpod-2.0.4/tests/iOpenPod/app/models/test_podcast_list_models.py +100 -0
  1609. iopenpod-2.0.4/tests/iOpenPod/app/models/test_selection_grouping.py +84 -0
  1610. iopenpod-2.0.4/tests/iOpenPod/app/podcasts/podcast_test_support.py +64 -0
  1611. iopenpod-2.0.4/tests/iOpenPod/app/podcasts/test_catalog.py +582 -0
  1612. iopenpod-2.0.4/tests/iOpenPod/app/podcasts/test_controller.py +459 -0
  1613. iopenpod-2.0.4/tests/iOpenPod/app/podcasts/test_documents.py +234 -0
  1614. iopenpod-2.0.4/tests/iOpenPod/app/podcasts/test_feed_client.py +279 -0
  1615. iopenpod-2.0.4/tests/iOpenPod/app/podcasts/test_podcast_artwork_controller.py +51 -0
  1616. iopenpod-2.0.4/tests/iOpenPod/app/podcasts/test_podcast_sync_artwork.py +93 -0
  1617. iopenpod-2.0.4/tests/iOpenPod/app/podcasts/test_store.py +107 -0
  1618. iopenpod-2.0.4/tests/iOpenPod/app/podcasts/test_sync.py +746 -0
  1619. iopenpod-2.0.4/tests/iOpenPod/app/podcasts/test_sync_preparation.py +201 -0
  1620. iopenpod-2.0.4/tests/iOpenPod/app/services/test_artwork_format_repair_save.py +57 -0
  1621. iopenpod-2.0.4/tests/iOpenPod/app/services/test_device_coordinator.py +2158 -0
  1622. iopenpod-2.0.4/tests/iOpenPod/app/services/test_device_time_integration.py +154 -0
  1623. iopenpod-2.0.4/tests/iOpenPod/app/services/test_first_artwork_save.py +155 -0
  1624. iopenpod-2.0.4/tests/iOpenPod/app/services/test_ipod_preferences_inspection.py +153 -0
  1625. iopenpod-2.0.4/tests/iOpenPod/app/services/test_library_lyrics.py +203 -0
  1626. iopenpod-2.0.4/tests/iOpenPod/app/services/test_library_resources.py +610 -0
  1627. iopenpod-2.0.4/tests/iOpenPod/app/services/test_linux_identity.py +161 -0
  1628. iopenpod-2.0.4/tests/iOpenPod/app/services/test_sidecar_reconciliation.py +377 -0
  1629. iopenpod-2.0.4/tests/iOpenPod/app/services/test_sync_recovery.py +66 -0
  1630. iopenpod-2.0.4/tests/iOpenPod/app/services/test_volume_presentation.py +487 -0
  1631. iopenpod-2.0.4/tests/iOpenPod/app/sync_test_support.py +107 -0
  1632. iopenpod-2.0.4/tests/iOpenPod/app/synesthesia/conftest.py +61 -0
  1633. iopenpod-2.0.4/tests/iOpenPod/app/synesthesia/test_analysis_core.py +157 -0
  1634. iopenpod-2.0.4/tests/iOpenPod/app/synesthesia/test_audio.py +78 -0
  1635. iopenpod-2.0.4/tests/iOpenPod/app/synesthesia/test_backend.py +218 -0
  1636. iopenpod-2.0.4/tests/iOpenPod/app/synesthesia/test_conductor_mapping.py +559 -0
  1637. iopenpod-2.0.4/tests/iOpenPod/app/synesthesia/test_conductor_reliability.py +69 -0
  1638. iopenpod-2.0.4/tests/iOpenPod/app/synesthesia/test_scene_calibration.py +302 -0
  1639. iopenpod-2.0.4/tests/iOpenPod/app/synesthesia/test_synesthesia_controller.py +526 -0
  1640. iopenpod-2.0.4/tests/iOpenPod/app/test_app.py +41 -0
  1641. iopenpod-2.0.4/tests/iOpenPod/app/test_artwork_controller.py +109 -0
  1642. iopenpod-2.0.4/tests/iOpenPod/app/test_artwork_import.py +52 -0
  1643. iopenpod-2.0.4/tests/iOpenPod/app/test_backup_controller.py +649 -0
  1644. iopenpod-2.0.4/tests/iOpenPod/app/test_chaptered_conversion.py +294 -0
  1645. iopenpod-2.0.4/tests/iOpenPod/app/test_device_controller.py +703 -0
  1646. iopenpod-2.0.4/tests/iOpenPod/app/test_display_text.py +55 -0
  1647. iopenpod-2.0.4/tests/iOpenPod/app/test_export_tagging.py +140 -0
  1648. iopenpod-2.0.4/tests/iOpenPod/app/test_github_updates.py +216 -0
  1649. iopenpod-2.0.4/tests/iOpenPod/app/test_host_media_fingerprint.py +218 -0
  1650. iopenpod-2.0.4/tests/iOpenPod/app/test_host_media_folders.py +81 -0
  1651. iopenpod-2.0.4/tests/iOpenPod/app/test_host_media_library.py +1209 -0
  1652. iopenpod-2.0.4/tests/iOpenPod/app/test_host_metadata_tags.py +627 -0
  1653. iopenpod-2.0.4/tests/iOpenPod/app/test_host_playlists.py +173 -0
  1654. iopenpod-2.0.4/tests/iOpenPod/app/test_install_channel.py +102 -0
  1655. iopenpod-2.0.4/tests/iOpenPod/app/test_library_export.py +409 -0
  1656. iopenpod-2.0.4/tests/iOpenPod/app/test_library_export_controller.py +69 -0
  1657. iopenpod-2.0.4/tests/iOpenPod/app/test_library_sync_helper.py +676 -0
  1658. iopenpod-2.0.4/tests/iOpenPod/app/test_library_write_controller.py +1552 -0
  1659. iopenpod-2.0.4/tests/iOpenPod/app/test_linux_system_media.py +433 -0
  1660. iopenpod-2.0.4/tests/iOpenPod/app/test_lyrics_controller.py +131 -0
  1661. iopenpod-2.0.4/tests/iOpenPod/app/test_lyrics_reader.py +63 -0
  1662. iopenpod-2.0.4/tests/iOpenPod/app/test_macos_system_media.py +247 -0
  1663. iopenpod-2.0.4/tests/iOpenPod/app/test_media_inspection.py +461 -0
  1664. iopenpod-2.0.4/tests/iOpenPod/app/test_media_lyrics.py +193 -0
  1665. iopenpod-2.0.4/tests/iOpenPod/app/test_media_tools_setup.py +281 -0
  1666. iopenpod-2.0.4/tests/iOpenPod/app/test_metadata_editing.py +317 -0
  1667. iopenpod-2.0.4/tests/iOpenPod/app/test_music_import.py +347 -0
  1668. iopenpod-2.0.4/tests/iOpenPod/app/test_music_import_controller.py +243 -0
  1669. iopenpod-2.0.4/tests/iOpenPod/app/test_photo_controller.py +319 -0
  1670. iopenpod-2.0.4/tests/iOpenPod/app/test_photo_workspace.py +314 -0
  1671. iopenpod-2.0.4/tests/iOpenPod/app/test_playback_controller.py +478 -0
  1672. iopenpod-2.0.4/tests/iOpenPod/app/test_playback_runtime.py +65 -0
  1673. iopenpod-2.0.4/tests/iOpenPod/app/test_playlist_workspace.py +636 -0
  1674. iopenpod-2.0.4/tests/iOpenPod/app/test_podcast_now_playing.py +141 -0
  1675. iopenpod-2.0.4/tests/iOpenPod/app/test_podcast_sync_execution.py +866 -0
  1676. iopenpod-2.0.4/tests/iOpenPod/app/test_podcast_sync_fingerprints.py +276 -0
  1677. iopenpod-2.0.4/tests/iOpenPod/app/test_podcast_sync_lifecycle.py +119 -0
  1678. iopenpod-2.0.4/tests/iOpenPod/app/test_portable_updates.py +381 -0
  1679. iopenpod-2.0.4/tests/iOpenPod/app/test_pypi_updates.py +273 -0
  1680. iopenpod-2.0.4/tests/iOpenPod/app/test_python_installation.py +328 -0
  1681. iopenpod-2.0.4/tests/iOpenPod/app/test_python_update_helper.py +484 -0
  1682. iopenpod-2.0.4/tests/iOpenPod/app/test_qt_playback_backend.py +159 -0
  1683. iopenpod-2.0.4/tests/iOpenPod/app/test_release_metadata.py +172 -0
  1684. iopenpod-2.0.4/tests/iOpenPod/app/test_scrobbling.py +598 -0
  1685. iopenpod-2.0.4/tests/iOpenPod/app/test_scrobbling_clients.py +328 -0
  1686. iopenpod-2.0.4/tests/iOpenPod/app/test_scrobbling_credentials.py +85 -0
  1687. iopenpod-2.0.4/tests/iOpenPod/app/test_scrobbling_sync.py +169 -0
  1688. iopenpod-2.0.4/tests/iOpenPod/app/test_scrobbling_timestamps.py +188 -0
  1689. iopenpod-2.0.4/tests/iOpenPod/app/test_smart_playlist_preview.py +347 -0
  1690. iopenpod-2.0.4/tests/iOpenPod/app/test_startup_imports.py +39 -0
  1691. iopenpod-2.0.4/tests/iOpenPod/app/test_sync_artwork.py +70 -0
  1692. iopenpod-2.0.4/tests/iOpenPod/app/test_sync_controller.py +548 -0
  1693. iopenpod-2.0.4/tests/iOpenPod/app/test_sync_execution.py +1915 -0
  1694. iopenpod-2.0.4/tests/iOpenPod/app/test_sync_plan.py +518 -0
  1695. iopenpod-2.0.4/tests/iOpenPod/app/test_sync_playback_policy.py +155 -0
  1696. iopenpod-2.0.4/tests/iOpenPod/app/test_sync_recovery_choices.py +363 -0
  1697. iopenpod-2.0.4/tests/iOpenPod/app/test_sync_recovery_detection.py +285 -0
  1698. iopenpod-2.0.4/tests/iOpenPod/app/test_sync_storage.py +178 -0
  1699. iopenpod-2.0.4/tests/iOpenPod/app/test_system_media_bridge.py +269 -0
  1700. iopenpod-2.0.4/tests/iOpenPod/app/test_tag_normalization_controller.py +206 -0
  1701. iopenpod-2.0.4/tests/iOpenPod/app/test_terminal_cleanup_selection.py +286 -0
  1702. iopenpod-2.0.4/tests/iOpenPod/app/test_track_conversion.py +143 -0
  1703. iopenpod-2.0.4/tests/iOpenPod/app/test_track_playback_policy.py +159 -0
  1704. iopenpod-2.0.4/tests/iOpenPod/app/test_transcoding.py +551 -0
  1705. iopenpod-2.0.4/tests/iOpenPod/app/test_update_bootstrap.py +88 -0
  1706. iopenpod-2.0.4/tests/iOpenPod/app/test_update_processes.py +56 -0
  1707. iopenpod-2.0.4/tests/iOpenPod/app/test_update_transport.py +70 -0
  1708. iopenpod-2.0.4/tests/iOpenPod/app/test_updates.py +546 -0
  1709. iopenpod-2.0.4/tests/iOpenPod/app/test_windows_system_media.py +428 -0
  1710. iopenpod-2.0.4/tests/iOpenPod/lyrics_test_support.py +54 -0
  1711. iopenpod-2.0.4/tests/iOpenPod/playback_test_support.py +126 -0
  1712. iopenpod-2.0.4/tests/iOpenPod/test_host_scan_storage_boundary.py +276 -0
  1713. iopenpod-2.0.4/tests/iOpenPod/test_library_boundary.py +30 -0
  1714. iopenpod-2.0.4/tests/iPodDB/ArtworkDB/test_artwork_index.py +101 -0
  1715. iopenpod-2.0.4/tests/iPodDB/ArtworkDB/test_auxiliary_mhod.py +51 -0
  1716. iopenpod-2.0.4/tests/iPodDB/ArtworkDB/test_ithmb.py +305 -0
  1717. iopenpod-2.0.4/tests/iPodDB/ArtworkDB/test_ithmb_writer.py +140 -0
  1718. iopenpod-2.0.4/tests/iPodDB/ArtworkDB/test_parser.py +1146 -0
  1719. iopenpod-2.0.4/tests/iPodDB/PhotosDB/test_photosdb.py +268 -0
  1720. iopenpod-2.0.4/tests/iPodDB/SQLiteDB/test_database.py +563 -0
  1721. iopenpod-2.0.4/tests/iPodDB/iTunesDB/test_cdb.py +58 -0
  1722. iopenpod-2.0.4/tests/iPodDB/iTunesDB/test_definition_driven_parser.py +339 -0
  1723. iopenpod-2.0.4/tests/iPodDB/iTunesDB/test_device_time.py +15 -0
  1724. iopenpod-2.0.4/tests/iPodDB/iTunesDB/test_remaining_mhod_parsers.py +734 -0
  1725. iopenpod-2.0.4/tests/iPodDB/iTunesDB/test_signatures.py +91 -0
  1726. iopenpod-2.0.4/tests/iPodDB/library/test_album_index.py +255 -0
  1727. iopenpod-2.0.4/tests/iPodDB/library/test_album_write_regressions.py +243 -0
  1728. iopenpod-2.0.4/tests/iPodDB/library/test_artwork_creation.py +317 -0
  1729. iopenpod-2.0.4/tests/iPodDB/library/test_artwork_format_repair.py +315 -0
  1730. iopenpod-2.0.4/tests/iPodDB/library/test_artwork_native_verification.py +145 -0
  1731. iopenpod-2.0.4/tests/iPodDB/library/test_browse_relationships.py +455 -0
  1732. iopenpod-2.0.4/tests/iPodDB/library/test_device_time_context.py +285 -0
  1733. iopenpod-2.0.4/tests/iPodDB/library/test_library.py +534 -0
  1734. iopenpod-2.0.4/tests/iPodDB/library/test_lyrics_writing.py +145 -0
  1735. iopenpod-2.0.4/tests/iPodDB/library/test_media_content.py +256 -0
  1736. iopenpod-2.0.4/tests/iPodDB/library/test_media_lifecycle.py +194 -0
  1737. iopenpod-2.0.4/tests/iPodDB/library/test_media_replacement.py +449 -0
  1738. iopenpod-2.0.4/tests/iPodDB/library/test_models.py +28 -0
  1739. iopenpod-2.0.4/tests/iPodDB/library/test_occurrence_drafts.py +116 -0
  1740. iopenpod-2.0.4/tests/iPodDB/library/test_photos.py +520 -0
  1741. iopenpod-2.0.4/tests/iPodDB/library/test_playlist_datasets.py +703 -0
  1742. iopenpod-2.0.4/tests/iPodDB/library/test_playlists.py +555 -0
  1743. iopenpod-2.0.4/tests/iPodDB/library/test_resource_validation.py +214 -0
  1744. iopenpod-2.0.4/tests/iPodDB/library/test_sidecar_projection.py +192 -0
  1745. iopenpod-2.0.4/tests/iPodDB/library/test_signing.py +34 -0
  1746. iopenpod-2.0.4/tests/iPodDB/library/test_smart_writing.py +266 -0
  1747. iopenpod-2.0.4/tests/iPodDB/library/test_track_native_verification.py +401 -0
  1748. iopenpod-2.0.4/tests/iPodDB/library/test_video_flags.py +260 -0
  1749. iopenpod-2.0.4/tests/iPodDB/library/test_write_artwork.py +364 -0
  1750. iopenpod-2.0.4/tests/iPodDB/library/test_write_preservation.py +406 -0
  1751. iopenpod-2.0.4/tests/iPodDB/library/test_write_progress.py +131 -0
  1752. iopenpod-2.0.4/tests/iPodDB/library/test_write_relationships.py +309 -0
  1753. iopenpod-2.0.4/tests/iPodDB/library/test_write_resolution.py +382 -0
  1754. iopenpod-2.0.4/tests/iPodDB/library/test_writing.py +517 -0
  1755. iopenpod-2.0.4/tests/iPodDB/sidecars/test_playback_sidecars.py +59 -0
  1756. iopenpod-2.0.4/tests/iPodDB/sidecars/test_sidecar_boundary.py +23 -0
  1757. iopenpod-2.0.4/tests/iPodDB/sidecars/test_sidecar_readers.py +201 -0
  1758. iopenpod-2.0.4/tests/iPodDB/test_binary_struct_definitions.py +118 -0
  1759. iopenpod-2.0.4/tests/iPodDB/test_chunk_browser.py +50 -0
  1760. iopenpod-2.0.4/tests/iPodDB/test_error_contracts.py +98 -0
  1761. iopenpod-2.0.4/tests/iPodDB/test_itunes_preferences.py +232 -0
  1762. iopenpod-2.0.4/tests/iPodDB/test_preferences.py +375 -0
  1763. iopenpod-2.0.4/tests/iPodDB/test_type_contracts.py +139 -0
  1764. iopenpod-2.0.4/tests/storage/test_device_capture.py +53 -0
  1765. iopenpod-2.0.4/tests/storage/test_host_capture.py +132 -0
  1766. iopenpod-2.0.4/tests/storage/test_host_directory.py +235 -0
  1767. iopenpod-2.0.4/tests/storage/test_host_files.py +182 -0
  1768. iopenpod-2.0.4/tests/storage/test_host_input.py +304 -0
  1769. iopenpod-2.0.4/tests/storage/test_host_installation.py +76 -0
  1770. iopenpod-2.0.4/tests/storage/test_host_tools.py +121 -0
  1771. iopenpod-2.0.4/tests/storage/test_macos_kernel.py +556 -0
  1772. iopenpod-2.0.4/tests/storage/test_media_processing.py +450 -0
  1773. iopenpod-2.0.4/tests/storage/test_media_tool_environment.py +93 -0
  1774. iopenpod-2.0.4/tests/storage/test_paths.py +88 -0
  1775. iopenpod-2.0.4/tests/storage/test_platform_eject.py +209 -0
  1776. iopenpod-2.0.4/tests/storage/test_platform_facts.py +366 -0
  1777. iopenpod-2.0.4/tests/storage/test_platform_volume_metadata.py +163 -0
  1778. iopenpod-2.0.4/tests/storage/test_portal.py +323 -0
  1779. iopenpod-2.0.4/tests/storage/test_private_temp_paths.py +84 -0
  1780. iopenpod-2.0.4/tests/storage/test_recovery.py +148 -0
  1781. iopenpod-2.0.4/tests/storage/test_scsi_vpd.py +41 -0
  1782. iopenpod-2.0.4/tests/storage/test_session.py +447 -0
  1783. iopenpod-2.0.4/tests/storage/test_transaction_state.py +184 -0
  1784. iopenpod-2.0.4/tests/storage/test_transactions.py +1197 -0
  1785. iopenpod-2.0.4/tests/storage/test_volume_metadata.py +69 -0
  1786. iopenpod-2.0.4/tests/storage/test_windows_volume_identity.py +122 -0
  1787. iopenpod-2.0.4/tests/storage/test_writer_lock.py +33 -0
  1788. iopenpod-2.0.4/tests/test_github_release.py +338 -0
  1789. iopenpod-2.0.4/tests/test_main.py +58 -0
  1790. iopenpod-2.0.4/tests/test_native_packaging_collection.py +125 -0
  1791. iopenpod-2.0.4/tests/test_packaging.py +573 -0
  1792. iopenpod-2.0.4/tests/test_prepare_release.py +129 -0
  1793. iopenpod-2.0.4/tests/test_release_sources.py +78 -0
  1794. iopenpod-2.0.4/tests/test_startup_logging.py +88 -0
  1795. iopenpod-2.0.4/tests/test_store_kit.py +362 -0
  1796. iopenpod-2.0.4/tests/test_update_publication.py +371 -0
  1797. iopenpod-2.0.4/tests/website/check_seo.py +79 -0
  1798. iopenpod-2.0.4/tests/website/navigation.cjs +63 -0
  1799. iopenpod-2.0.4/tests/website/screenshot-viewer.cjs +118 -0
  1800. iopenpod-2.0.4/uv.lock +2228 -0
  1801. iopenpod-2.0.4/website/MacOS_Install_IMGS/macOS_Step1.webp +0 -0
  1802. iopenpod-2.0.4/website/MacOS_Install_IMGS/macOS_Step2.webp +0 -0
  1803. iopenpod-2.0.4/website/MacOS_Install_IMGS/macOS_Step3.webp +0 -0
  1804. iopenpod-2.0.4/website/MacOS_Install_IMGS/macOS_Step4.webp +0 -0
  1805. iopenpod-2.0.4/website/MacOS_Install_IMGS/macOS_Step5.webp +0 -0
  1806. iopenpod-2.0.4/website/README.md +208 -0
  1807. iopenpod-2.0.4/website/THEMES.md +121 -0
  1808. iopenpod-2.0.4/website/_config.yml +41 -0
  1809. iopenpod-2.0.4/website/_data/distribution.json +40 -0
  1810. iopenpod-2.0.4/website/_data/faq.json +87 -0
  1811. iopenpod-2.0.4/website/_includes/download-channel.html +12 -0
  1812. iopenpod-2.0.4/website/_includes/platform-icon.html +17 -0
  1813. iopenpod-2.0.4/website/_includes/product-footer.html +16 -0
  1814. iopenpod-2.0.4/website/_includes/product-nav.html +15 -0
  1815. iopenpod-2.0.4/website/_includes/product-shot.html +10 -0
  1816. iopenpod-2.0.4/website/_includes/screenshot-viewer.html +14 -0
  1817. iopenpod-2.0.4/website/_layouts/default.html +126 -0
  1818. iopenpod-2.0.4/website/apple-touch-icon.png +0 -0
  1819. iopenpod-2.0.4/website/favicon-16x16.png +0 -0
  1820. iopenpod-2.0.4/website/favicon-32x32.png +0 -0
  1821. iopenpod-2.0.4/website/favicon.ico +0 -0
  1822. iopenpod-2.0.4/website/google9044a61ef03e1fae.html +1 -0
  1823. iopenpod-2.0.4/website/index.html +215 -0
  1824. iopenpod-2.0.4/website/install-help-redirect.html +18 -0
  1825. iopenpod-2.0.4/website/install-help.html +125 -0
  1826. iopenpod-2.0.4/website/iop2.css +882 -0
  1827. iopenpod-2.0.4/website/iopenpod-icon-256.png +0 -0
  1828. iopenpod-2.0.4/website/robots.txt +4 -0
  1829. iopenpod-2.0.4/website/screenshot-viewer.js +63 -0
  1830. iopenpod-2.0.4/website/screenshots/backups.webp +0 -0
  1831. iopenpod-2.0.4/website/screenshots/hero.webp +0 -0
  1832. iopenpod-2.0.4/website/screenshots/iop2/album-library.webp +0 -0
  1833. iopenpod-2.0.4/website/screenshots/iop2/audio-transcoding-settings.webp +0 -0
  1834. iopenpod-2.0.4/website/screenshots/iop2/backups.webp +0 -0
  1835. iopenpod-2.0.4/website/screenshots/iop2/manifest.json +107 -0
  1836. iopenpod-2.0.4/website/screenshots/iop2/media-folders.webp +0 -0
  1837. iopenpod-2.0.4/website/screenshots/iop2/photo-albums.webp +0 -0
  1838. iopenpod-2.0.4/website/screenshots/iop2/smart-playlist.webp +0 -0
  1839. iopenpod-2.0.4/website/screenshots/iop2/sync-change-review.webp +0 -0
  1840. iopenpod-2.0.4/website/screenshots/iop2/sync-media-selection.webp +0 -0
  1841. iopenpod-2.0.4/website/screenshots/iop2/track-artwork.webp +0 -0
  1842. iopenpod-2.0.4/website/screenshots/iop2/track-metadata.webp +0 -0
  1843. iopenpod-2.0.4/website/screenshots/podcasts.webp +0 -0
  1844. iopenpod-2.0.4/website/screenshots/settings.webp +0 -0
  1845. iopenpod-2.0.4/website/screenshots/smartplaylists.webp +0 -0
  1846. iopenpod-2.0.4/website/screenshots/syncmedia.webp +0 -0
  1847. iopenpod-2.0.4/website/screenshots/syncreview.webp +0 -0
  1848. iopenpod-2.0.4/website/screenshots/syncreview2.webp +0 -0
  1849. iopenpod-2.0.4/website/screenshots/trackedits.webp +0 -0
  1850. iopenpod-2.0.4/website/screenshots/trackedits2.webp +0 -0
  1851. iopenpod-2.0.4/website/site.css +2027 -0
  1852. iopenpod-2.0.4/website/site.min.css +1 -0
  1853. iopenpod-2.0.4/website/site.min.js +1 -0
  1854. iopenpod-2.0.4/website/theme.css +73 -0
  1855. iopenpod-2.0.4/website/theme.js +96 -0
  1856. iopenpod-2.0.4/website/theme.min.css +1 -0
  1857. iopenpod-2.0.4/website/theme.min.js +1 -0
  1858. iopenpod-2.0.4/website/tokens.css +82 -0
@@ -0,0 +1,21 @@
1
+ root = true
2
+
3
+ [*]
4
+ charset = utf-8
5
+ end_of_line = lf
6
+ insert_final_newline = true
7
+ indent_style = space
8
+ indent_size = 4
9
+ max_line_length = 88
10
+ trim_trailing_whitespace = true
11
+
12
+ [*.{css,html,js,json,jsonc,yaml,yml}]
13
+ indent_size = 2
14
+
15
+ [*.md]
16
+ indent_size = 2
17
+ max_line_length = off
18
+ trim_trailing_whitespace = false
19
+
20
+ [Makefile]
21
+ indent_style = tab
@@ -0,0 +1,19 @@
1
+ * text=auto
2
+
3
+ *.py text eol=lf
4
+ *.pyi text eol=lf
5
+ *.toml text eol=lf
6
+ *.json text eol=lf
7
+ *.jsonc text eol=lf
8
+ *.md text eol=lf
9
+ *.yaml text eol=lf
10
+ *.yml text eol=lf
11
+ *.html text eol=lf
12
+ *.css text eol=lf
13
+ *.js text eol=lf
14
+ *.ts text eol=lf
15
+
16
+ *.ico binary
17
+ *.png binary
18
+ *.webp binary
19
+ *.qm binary
@@ -0,0 +1,2 @@
1
+ github: therealsavi
2
+ ko_fi: johngibbons
@@ -0,0 +1,35 @@
1
+ ---
2
+ name: Bug Report
3
+ about: Report a bug with iOpenPod
4
+ title: "[Bug] "
5
+ labels: bug
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Describe the bug**
11
+ A clear description of what the bug is.
12
+
13
+ **iPod model**
14
+ e.g., iPod Classic 6th Gen (160GB), iPod Nano 3G
15
+
16
+ **To reproduce**
17
+ Steps to reproduce the behavior:
18
+
19
+ 1. Go to '...'
20
+ 2. Click on '...'
21
+ 3. See error
22
+
23
+ **Expected behavior**
24
+ What you expected to happen.
25
+
26
+ **Screenshots / logs**
27
+ If applicable, add screenshots and attach `iopenpod.log`.
28
+
29
+ To find it in iOpenPod: open **Settings > Storage**, then click **Open** next to **Log Location**.
30
+
31
+ ## Environment
32
+
33
+ - OS: [e.g., Windows 11, Ubuntu 24.04, macOS 15]
34
+ - Python version: [e.g., 3.13.1]
35
+ - iOpenPod version/commit: [e.g., v1.0.0 or commit hash]
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: Feature Request
3
+ about: Suggest an idea for iOpenPod
4
+ title: "[Feature] "
5
+ labels: enhancement
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Is your feature request related to a problem?**
11
+ A clear description of the problem. e.g., "I'm frustrated when..."
12
+
13
+ **Describe the solution you'd like**
14
+ What you'd like to see happen.
15
+
16
+ **Describe alternatives you've considered**
17
+ Any alternative solutions or workarounds.
18
+
19
+ **Additional context**
20
+ Any other context, screenshots, or references.
@@ -0,0 +1,45 @@
1
+ name: Flatpak candidate
2
+
3
+ on:
4
+ workflow_dispatch:
5
+
6
+ permissions:
7
+ contents: read
8
+
9
+ jobs:
10
+ flatpak:
11
+ runs-on: ubuntu-24.04
12
+ timeout-minutes: 60
13
+ env:
14
+ QT_QPA_PLATFORM: offscreen
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+ - uses: astral-sh/setup-uv@v6
18
+ with:
19
+ version: "0.12.7"
20
+ - name: Install build and desktop tools
21
+ run: |
22
+ sudo apt-get update
23
+ sudo apt-get install -y flatpak flatpak-builder appstream desktop-file-utils libegl1 libgl1 libdbus-1-3 libxkbcommon0 libxkbcommon-x11-0 libxcb-cursor0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xkb1 libpulse0 libasound2t64
24
+ - run: uv sync --locked --managed-python --no-dev --group packaging
25
+ - run: uv run --no-sync python scripts/package_app.py freeze
26
+ - run: uv run --no-sync python scripts/package_app.py linux-stage
27
+ - name: Validate desktop metadata
28
+ run: |
29
+ desktop-file-validate packaging/linux/io.github.therealsavi.iOpenPod.desktop
30
+ appstreamcli validate --no-net packaging/linux/io.github.therealsavi.iOpenPod.metainfo.xml
31
+ - name: Install Flatpak SDK
32
+ run: |
33
+ flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
34
+ flatpak install --user --noninteractive flathub org.freedesktop.Sdk//25.08 org.freedesktop.Platform//25.08
35
+ - name: Build and check local Flatpak candidate
36
+ run: |
37
+ flatpak-builder --user --install --force-clean --repo=build/flatpak-repo build/flatpak packaging/linux/flatpak.json
38
+ flatpak run --env=QT_QPA_PLATFORM=offscreen io.github.therealsavi.iOpenPod --smoke-test
39
+ flatpak build-bundle build/flatpak-repo dist/iOpenPod-Linux-x86_64.flatpak io.github.therealsavi.iOpenPod
40
+ sha256sum dist/iOpenPod-Linux-x86_64.flatpak > dist/iOpenPod-Linux-x86_64.flatpak.sha256
41
+ - uses: actions/upload-artifact@v4
42
+ with:
43
+ name: flatpak-candidate
44
+ if-no-files-found: error
45
+ path: dist/*.flatpak*
@@ -0,0 +1,60 @@
1
+ name: Health
2
+
3
+ on:
4
+ workflow_dispatch:
5
+
6
+ permissions:
7
+ contents: read
8
+
9
+ jobs:
10
+ quality:
11
+ # Qt 6.9's macOS stubs have known errors (ADR-0094). Keep one authoritative
12
+ # type check with Windows bindings, and test both Mac architectures below.
13
+ runs-on: windows-2022
14
+ timeout-minutes: 20
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+ - uses: astral-sh/setup-uv@v6
18
+ with:
19
+ version: "0.12.7"
20
+ enable-cache: true
21
+ - run: uv sync --locked --managed-python
22
+ - run: uv lock --check
23
+ - run: uv run --no-sync ruff format --check .
24
+ - run: uv run --no-sync ruff check .
25
+ - run: uv run --no-sync rumdl check .
26
+ - run: uv run --no-sync mypy
27
+
28
+ health:
29
+ strategy:
30
+ fail-fast: false
31
+ matrix:
32
+ os: [windows-2022, macos-14, macos-15-intel, ubuntu-24.04]
33
+ runs-on: ${{ matrix.os }}
34
+ timeout-minutes: 45
35
+ env:
36
+ QT_QPA_PLATFORM: offscreen
37
+ steps:
38
+ - uses: actions/checkout@v4
39
+
40
+ - uses: astral-sh/setup-uv@v6
41
+ with:
42
+ version: "0.12.7"
43
+ enable-cache: true
44
+
45
+ - name: Install Linux system dependencies
46
+ if: runner.os == 'Linux'
47
+ run: |
48
+ sudo apt-get update
49
+ sudo apt-get install -y libegl1 libgl1 libdbus-1-3 libxkbcommon0 libxkbcommon-x11-0 libxcb-cursor0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xkb1 libpulse0 libasound2t64 udev
50
+
51
+ - name: Install project and dev dependencies
52
+ if: runner.os != 'macOS'
53
+ run: uv sync --locked --managed-python --group packaging
54
+
55
+ - name: Install macOS environment for the declared deployment target
56
+ if: runner.os == 'macOS'
57
+ run: uv run --no-project --managed-python --python 3.12 python scripts/sync_macos_build.py --with-checks
58
+
59
+ - name: Test, including 1x/1.5x/2x display probes
60
+ run: uv run --no-sync pytest
@@ -0,0 +1,61 @@
1
+ name: Build and deploy Pages
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ paths:
7
+ - "website/**"
8
+ - "tests/website/check_seo.py"
9
+ - ".github/workflows/pages.yml"
10
+ pull_request:
11
+ paths:
12
+ - "website/**"
13
+ - "tests/website/check_seo.py"
14
+ - ".github/workflows/pages.yml"
15
+ workflow_dispatch:
16
+
17
+ permissions:
18
+ contents: read
19
+
20
+ concurrency:
21
+ group: pages-${{ github.ref }}
22
+ cancel-in-progress: false
23
+
24
+ jobs:
25
+ build:
26
+ runs-on: ubuntu-24.04
27
+ timeout-minutes: 10
28
+ steps:
29
+ - uses: actions/checkout@v4
30
+ - name: Configure Pages
31
+ if: github.event_name != 'pull_request'
32
+ uses: actions/configure-pages@v5
33
+ - name: Build website with Jekyll
34
+ uses: actions/jekyll-build-pages@v1
35
+ with:
36
+ source: ./website
37
+ destination: ./_site
38
+ - uses: astral-sh/setup-uv@v6
39
+ with:
40
+ version: "0.12.7"
41
+ - name: Check rendered FAQ and structured data
42
+ run: uv run --no-project --managed-python --python 3.12 python tests/website/check_seo.py _site
43
+ - uses: actions/upload-pages-artifact@v4
44
+ with:
45
+ path: ./_site
46
+
47
+ deploy:
48
+ if: github.ref == 'refs/heads/main' && github.event_name != 'pull_request'
49
+ needs: build
50
+ runs-on: ubuntu-24.04
51
+ timeout-minutes: 10
52
+ permissions:
53
+ pages: write
54
+ id-token: write
55
+ environment:
56
+ name: github-pages
57
+ url: ${{ steps.deployment.outputs.page_url }}
58
+ steps:
59
+ - name: Deploy website
60
+ id: deployment
61
+ uses: actions/deploy-pages@v4
@@ -0,0 +1,277 @@
1
+ name: Build and release
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ publish:
7
+ description: "Publish to GitHub and PyPI (on main, creates v<pyproject version> after checks pass)"
8
+ type: boolean
9
+ default: false
10
+ push:
11
+ tags: ["v*"]
12
+ pull_request:
13
+ paths:
14
+ - "packaging/**"
15
+ - "scripts/package_app.py"
16
+ - "scripts/package_updates.py"
17
+ - "scripts/update_feed.py"
18
+ - "scripts/publish_update_feed.py"
19
+ - "src/iOpenPod/app/updates/**"
20
+ - "src/iopenpod_update_helper.py"
21
+ - "src/storage/host_installation.py"
22
+ - "src/storage/host_usage.py"
23
+ - "src/storage/platform/host_install_windows.py"
24
+ - ".github/workflows/update-feed.yml"
25
+ - "scripts/check_wheel.py"
26
+ - "scripts/check_windows_bundle.py"
27
+ - "scripts/check_macos_bundle.py"
28
+ - "scripts/sync_macos_build.py"
29
+ - "scripts/build_windows_sndfile.py"
30
+ - "scripts/prepare_release_sources.py"
31
+ - "scripts/assemble_github_release.py"
32
+ - "scripts/prepare_release.py"
33
+ - "tests/test_github_release.py"
34
+ - "tests/test_prepare_release.py"
35
+ - "src/iopenpod_launcher.py"
36
+ - "src/iOpenPod/__main__.py"
37
+ - "src/iOpenPod/assets/**"
38
+ - "pyproject.toml"
39
+ - "uv.lock"
40
+ - "LICENSE"
41
+ - "COPYING.md"
42
+ - "ACKNOWLEDGEMENTS.md"
43
+ - "LICENSES/**"
44
+ - ".github/workflows/release.yml"
45
+
46
+ permissions:
47
+ contents: read
48
+
49
+ concurrency:
50
+ group: release-${{ github.ref }}
51
+ cancel-in-progress: false
52
+
53
+ jobs:
54
+ prepare:
55
+ runs-on: ubuntu-24.04
56
+ outputs:
57
+ tag: ${{ steps.release.outputs.tag }}
58
+ publish: ${{ steps.release.outputs.publish }}
59
+ create_tag: ${{ steps.release.outputs.create_tag }}
60
+ signed_updates: ${{ steps.updates.outputs.enabled }}
61
+ version: ${{ steps.updates.outputs.version }}
62
+ steps:
63
+ - uses: actions/checkout@v4
64
+ with:
65
+ fetch-depth: 0
66
+ - uses: astral-sh/setup-uv@v6
67
+ with:
68
+ version: "0.12.7"
69
+ - name: Validate release request and tag identity
70
+ id: release
71
+ env:
72
+ PUBLISH_RELEASE: ${{ inputs.publish || false }}
73
+ run: uv run --no-project --managed-python --python 3.12 python scripts/prepare_release.py
74
+ - name: Read committed update trust configuration
75
+ id: updates
76
+ run: |
77
+ uv run --no-project --managed-python --python 3.12 python -c 'import json,os,tomllib; from pathlib import Path; keys=json.loads(Path("packaging/update-keys.json").read_text())["public_keys"]; version=tomllib.loads(Path("pyproject.toml").read_text())["project"]["version"]; Path(os.environ["GITHUB_OUTPUT"]).write_text("enabled="+str(bool(keys)).lower()+"\nversion="+version+"\n")'
78
+
79
+ native:
80
+ needs: prepare
81
+ strategy:
82
+ fail-fast: false
83
+ matrix:
84
+ os: [windows-2022, macos-14, macos-15-intel, ubuntu-24.04]
85
+ runs-on: ${{ matrix.os }}
86
+ timeout-minutes: 60
87
+ env:
88
+ QT_QPA_PLATFORM: offscreen
89
+ steps:
90
+ - uses: actions/checkout@v4
91
+ - uses: astral-sh/setup-uv@v6
92
+ with:
93
+ version: "0.12.7"
94
+ enable-cache: true
95
+ - name: Install Linux desktop libraries
96
+ if: runner.os == 'Linux'
97
+ run: |
98
+ sudo apt-get update
99
+ sudo apt-get install -y libegl1 libgl1 libdbus-1-3 libxkbcommon0 libxkbcommon-x11-0 libxcb-cursor0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xkb1 libpulse0 libasound2t64
100
+ - name: Install locked build environment
101
+ if: runner.os != 'macOS'
102
+ run: uv sync --locked --managed-python --no-dev --group packaging
103
+ - name: Install macOS environment for the declared deployment target
104
+ if: runner.os == 'macOS'
105
+ run: uv run --no-project --managed-python --python 3.12 python scripts/sync_macos_build.py
106
+ - name: Validate release tag before building
107
+ if: startsWith(github.ref, 'refs/tags/')
108
+ env:
109
+ RELEASE_TAG: ${{ github.ref_name }}
110
+ shell: bash
111
+ run: uv run --no-sync python scripts/package_app.py check-version "$RELEASE_TAG"
112
+ - name: Build Python distributions
113
+ run: uv build --no-build-isolation
114
+ - name: Check wheel payload and launcher
115
+ run: uv run --no-sync python scripts/check_wheel.py
116
+ - name: Build source-audited Windows audio library
117
+ if: runner.os == 'Windows'
118
+ run: uv run --no-sync python -m scripts.build_windows_sndfile
119
+ - name: Build unsigned native candidate
120
+ run: uv run --no-sync python scripts/package_app.py freeze
121
+ - name: Check the independent update helper
122
+ if: runner.os != 'macOS'
123
+ run: uv run --no-sync python -c "import subprocess,sys; from pathlib import Path; helper=Path('dist/iOpenPod-update'+('.exe' if sys.platform=='win32' else '')).resolve(); subprocess.run([str(helper),'--smoke-test'],check=True,timeout=120)"
124
+ - name: Check Windows executable manifest and payload
125
+ if: runner.os == 'Windows'
126
+ run: uv run --no-sync python scripts/check_windows_bundle.py
127
+ - name: Check every macOS native slice against the deployment target
128
+ if: runner.os == 'macOS'
129
+ run: uv run --no-sync python scripts/check_macos_bundle.py
130
+ - name: Check Windows bundle outside the checkout
131
+ if: runner.os == 'Windows'
132
+ shell: pwsh
133
+ run: |
134
+ $executable = (Resolve-Path dist/iOpenPod.exe).Path
135
+ $report = Join-Path $env:RUNNER_TEMP 'frozen-runtime.txt'
136
+ $arguments = '--smoke-test --smoke-test-report "' + $report + '"'
137
+ $process = Start-Process -FilePath $executable -ArgumentList $arguments -WorkingDirectory $env:RUNNER_TEMP -Wait -PassThru -WindowStyle Hidden
138
+ if (-not (Test-Path -LiteralPath $report)) { throw 'Frozen runtime check did not produce its report' }
139
+ Get-Content -LiteralPath $report
140
+ if ($process.ExitCode -ne 0) { throw "Frozen runtime check failed: $($process.ExitCode)" }
141
+ - name: Check macOS bundle outside the checkout
142
+ if: runner.os == 'macOS'
143
+ run: |
144
+ executable="$PWD/dist/iOpenPod.app/Contents/MacOS/iOpenPod"
145
+ cd "$RUNNER_TEMP"
146
+ "$executable" --smoke-test
147
+ - name: Check Linux bundle outside the checkout
148
+ if: runner.os == 'Linux'
149
+ run: |
150
+ executable="$PWD/dist/iOpenPod/iOpenPod"
151
+ cd "$RUNNER_TEMP"
152
+ "$executable" --smoke-test
153
+ - name: Archive candidate with SHA-256
154
+ run: uv run --no-sync python scripts/package_app.py archive
155
+ - name: Check macOS drag-to-Applications disk image
156
+ if: runner.os == 'macOS'
157
+ shell: bash
158
+ run: |
159
+ set -euo pipefail
160
+ shopt -s nullglob
161
+ images=(dist/iOpenPod-*-macOS-*.dmg)
162
+ test "${#images[@]}" -eq 1
163
+ mountpoint="$(mktemp -d "$RUNNER_TEMP/iopenpod-dmg.XXXXXX")"
164
+ cleanup() {
165
+ hdiutil detach "$mountpoint" >/dev/null 2>&1 || true
166
+ rmdir "$mountpoint" 2>/dev/null || true
167
+ }
168
+ trap cleanup EXIT
169
+ hdiutil attach -readonly -nobrowse -mountpoint "$mountpoint" "${images[0]}"
170
+ test -d "$mountpoint/iOpenPod.app"
171
+ test -L "$mountpoint/Applications"
172
+ test "$(readlink "$mountpoint/Applications")" = /Applications
173
+ test -s "$mountpoint/.DS_Store"
174
+ test -s "$mountpoint/.background/background.png"
175
+ cmp "$mountpoint/iOpenPod.app/Contents/MacOS/iOpenPod" dist/iOpenPod.app/Contents/MacOS/iOpenPod
176
+ codesign --verify --deep --strict "$mountpoint/iOpenPod.app"
177
+ - uses: actions/upload-artifact@v4
178
+ with:
179
+ name: candidate-${{ matrix.os }}
180
+ compression-level: 0
181
+ if-no-files-found: error
182
+ path: |
183
+ dist/*.zip
184
+ dist/*.dmg
185
+ dist/*.tar.gz
186
+ dist/*.whl
187
+ dist/*.sha256
188
+ build/packaging/licenses/inventory.json
189
+ build/packaging/macos-compatibility.json
190
+
191
+ publish:
192
+ if: needs.prepare.outputs.publish == 'true'
193
+ needs: [prepare, native]
194
+ runs-on: ubuntu-24.04
195
+ timeout-minutes: 60
196
+ permissions:
197
+ contents: write
198
+ env:
199
+ GH_TOKEN: ${{ github.token }}
200
+ RELEASE_TAG: ${{ needs.prepare.outputs.tag }}
201
+ steps:
202
+ - uses: actions/checkout@v4
203
+ - uses: astral-sh/setup-uv@v6
204
+ with:
205
+ version: "0.12.7"
206
+ - uses: actions/download-artifact@v4
207
+ with:
208
+ pattern: candidate-*
209
+ path: build/candidates
210
+ - name: Fetch and verify pinned upstream sources
211
+ run: uv run --no-project --managed-python --python 3.12 python scripts/prepare_release_sources.py --download
212
+ - name: Assemble and verify the complete release
213
+ run: uv run --no-project --managed-python --python 3.12 python -m scripts.assemble_github_release --tag "$RELEASE_TAG" --commit "$GITHUB_SHA"
214
+ - name: Retain checked Python distributions for PyPI
215
+ uses: actions/upload-artifact@v4
216
+ with:
217
+ name: pypi-distributions
218
+ if-no-files-found: error
219
+ path: |
220
+ release-assets/iopenpod-${{ needs.prepare.outputs.version }}-py3-none-any.whl
221
+ release-assets/iopenpod-${{ needs.prepare.outputs.version }}.tar.gz
222
+ - name: Retain supporting files as an Actions artifact
223
+ uses: actions/upload-artifact@v4
224
+ with:
225
+ name: release-supporting-files
226
+ compression-level: 0
227
+ if-no-files-found: error
228
+ path: |
229
+ release-assets/*
230
+ !release-assets/iOpenPod-*.zip
231
+ !release-assets/iOpenPod-*.dmg
232
+ !release-assets/iOpenPod-*-Linux-*.tar.gz
233
+ # GITHUB_TOKEN tag pushes do not trigger another workflow. Publish here,
234
+ # using the artifacts built and checked for this exact dispatch commit.
235
+ - name: Create the requested version tag after successful validation
236
+ if: needs.prepare.outputs.create_tag == 'true'
237
+ run: gh api --method POST "repos/$GITHUB_REPOSITORY/git/refs" -f "ref=refs/tags/$RELEASE_TAG" -f "sha=$GITHUB_SHA"
238
+ - name: Upload native archives before making the release public
239
+ run: |
240
+ test "$(gh api "repos/$GITHUB_REPOSITORY/commits/$RELEASE_TAG" --jq .sha)" = "$GITHUB_SHA"
241
+ gh release create "$RELEASE_TAG" --verify-tag --target "$GITHUB_SHA" --draft --title "iOpenPod $RELEASE_TAG" --generate-notes --notes-file packaging/github-release.md release-assets/iOpenPod-*.zip release-assets/iOpenPod-*.dmg release-assets/iOpenPod-*-Linux-*.tar.gz
242
+ gh release edit "$RELEASE_TAG" --draft=false --latest
243
+
244
+ publish-pypi:
245
+ needs: [prepare, publish]
246
+ if: needs.prepare.outputs.publish == 'true'
247
+ runs-on: ubuntu-24.04
248
+ timeout-minutes: 10
249
+ environment:
250
+ name: pypi
251
+ url: https://pypi.org/project/iOpenPod/
252
+ permissions:
253
+ id-token: write
254
+ steps:
255
+ - uses: astral-sh/setup-uv@v6
256
+ with:
257
+ version: "0.12.7"
258
+ enable-cache: false
259
+ - uses: actions/download-artifact@v4
260
+ with:
261
+ name: pypi-distributions
262
+ path: dist
263
+ # Reuse the assembled distributions; never rebuild under publish credentials.
264
+ # UV accepts already-published files only when their contents match exactly.
265
+ - name: Publish checked distributions to PyPI
266
+ run: uv publish --trusted-publishing always dist/*.whl dist/*.tar.gz
267
+
268
+ update-feed:
269
+ needs: [prepare, publish]
270
+ if: needs.prepare.outputs.signed_updates == 'true'
271
+ permissions:
272
+ contents: write
273
+ uses: ./.github/workflows/update-feed.yml
274
+ with:
275
+ version: ${{ needs.prepare.outputs.version }}
276
+ # The same-repository signing workflow declares its required key.
277
+ secrets: inherit
@@ -0,0 +1,54 @@
1
+ name: Publish signed update feed
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ version:
7
+ description: "Published stable version, without v (also renews expiry)"
8
+ required: true
9
+ type: string
10
+ workflow_call:
11
+ inputs:
12
+ version:
13
+ required: true
14
+ type: string
15
+ secrets:
16
+ IOPENPOD_UPDATE_PRIVATE_KEY:
17
+ required: true
18
+
19
+ permissions:
20
+ contents: write
21
+
22
+ concurrency:
23
+ group: signed-update-feed
24
+ cancel-in-progress: false
25
+
26
+ jobs:
27
+ publish:
28
+ if: github.event_name != 'pull_request'
29
+ runs-on: macos-14
30
+ timeout-minutes: 30
31
+ steps:
32
+ - uses: actions/checkout@v4
33
+ - uses: astral-sh/setup-uv@v6
34
+ with:
35
+ version: "0.12.7"
36
+ - name: Install the locked release-signing environment
37
+ run: uv sync --locked --no-dev --group packaging
38
+ - name: Validate the requested version
39
+ env:
40
+ UPDATE_VERSION: ${{ inputs.version }}
41
+ run: uv run --no-sync python -c 'import os; from iOpenPod.app.updates.releases import version_tuple; version_tuple(os.environ["UPDATE_VERSION"])'
42
+ - name: Download the public native release assets
43
+ env:
44
+ GH_TOKEN: ${{ github.token }}
45
+ UPDATE_VERSION: ${{ inputs.version }}
46
+ run: |
47
+ gh release download "v$UPDATE_VERSION" --repo "$GITHUB_REPOSITORY" --dir build/update-archives --pattern "iOpenPod-$UPDATE_VERSION-*.zip"
48
+ gh release download "v$UPDATE_VERSION" --repo "$GITHUB_REPOSITORY" --dir build/update-archives --pattern "iOpenPod-$UPDATE_VERSION-*.tar.gz"
49
+ - name: Authenticate, sign, and publish the feeds atomically
50
+ env:
51
+ GH_TOKEN: ${{ github.token }}
52
+ UPDATE_VERSION: ${{ inputs.version }}
53
+ IOPENPOD_UPDATE_PRIVATE_KEY: ${{ secrets.IOPENPOD_UPDATE_PRIVATE_KEY }}
54
+ run: uv run --no-sync python -m scripts.publish_update_feed "$UPDATE_VERSION" build/update-archives build/signed-feed