rekordbox-edit 0.13.2.dev24__tar.gz → 0.13.3.dev1__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.
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/CHANGELOG.md +12 -1
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/PKG-INFO +1 -1
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/pyproject.toml +1 -1
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/rekordbox_edit/tags.py +39 -16
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/test_tags.py +33 -5
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/uv.lock +5 -5
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/.agent-style/RULES.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/.agent-style/claude-code.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/.github/actions/build-release-notes/action.yml +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/.github/actions/build-release-notes/build_release_notes.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/.github/actions/commit-check/action.yml +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/.github/actions/commitizen-bump/action.yml +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/.github/actions/commitizen-bump/commitizen-bump.sh +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/.github/actions/e2e/action.yml +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/.github/actions/install/action.yml +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/.github/actions/lint/action.yml +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/.github/actions/test/action.yml +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/.github/workflows/cd.yml +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/.github/workflows/ci.yml +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/.github/workflows/publish.yml +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/.github/workflows/release.yml +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/.gitignore +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/.pre-commit-config.yaml +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/.python-version +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/.readthedocs.yaml +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/AGENTS.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/CLAUDE.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/CONTRIBUTING.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/LICENSE +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/Makefile +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/README.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/codecov.yml +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/docker-compose.yml +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/docs/api.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/docs/commands/convert.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/docs/commands/edit.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/docs/commands/import.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/docs/commands/remove.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/docs/commands/search.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/docs/faqs.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/docs/filtering.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/docs/index.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/docs/stylesheets/extra.css +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/mkdocs.yml +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/rekordbox_edit/__init__.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/rekordbox_edit/_tag_fields.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/rekordbox_edit/api/__init__.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/rekordbox_edit/api/_anlz.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/rekordbox_edit/api/_convert.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/rekordbox_edit/api/_edit.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/rekordbox_edit/api/_field_handlers.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/rekordbox_edit/api/_import.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/rekordbox_edit/api/_relations.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/rekordbox_edit/api/_remove.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/rekordbox_edit/api/_search.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/rekordbox_edit/api/_utils.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/rekordbox_edit/cli/__init__.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/rekordbox_edit/cli/_click.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/rekordbox_edit/cli/_progress.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/rekordbox_edit/cli/_utils.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/rekordbox_edit/cli/convert.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/rekordbox_edit/cli/edit.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/rekordbox_edit/cli/import_.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/rekordbox_edit/cli/main.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/rekordbox_edit/cli/remove.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/rekordbox_edit/cli/search.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/rekordbox_edit/display.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/rekordbox_edit/errors.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/rekordbox_edit/locking.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/rekordbox_edit/logger.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/rekordbox_edit/models.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/rekordbox_edit/query.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/rekordbox_edit/utils.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/renovate.json5 +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/README.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/beets-plugin-integration/beets-plugin-integration.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/beets-plugin-integration/decisions/converted-original-disposition.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/beets-plugin-integration/evidence/convert-repoint.txt +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/beets-plugin-integration/evidence/event-order.txt +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/beets-plugin-integration/evidence/file-level-encode.txt +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/beets-plugin-integration/evidence/id-stability.txt +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/beets-plugin-integration/evidence/media-field-roundtrip.txt +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/beets-plugin-integration/scripts/convert_repoint.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/beets-plugin-integration/scripts/event_probe.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/beets-plugin-integration/scripts/file_level_encode.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/beets-plugin-integration/scripts/id_stability.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/beets-plugin-integration/scripts/media_field_roundtrip.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/convert-export-impact-test-plan.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/convert-export-impact.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/export-r1-00-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/export-r1-10-postconvert.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/export-r1-20-postexport.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/export-r1-21-postexport-full.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/export-r2-00-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/export-r2b-00-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/export-r2b-10-deviceedit.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/export-r2b-30-postsync.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/export-r3-00-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/export-r3-10-deviceedit.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/export-r3-40-resync.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/export-r3-41-reexport-full.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-11317782-r3-20-postconvert.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-11317782-r3-30-postsync.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-121715696-r1-00-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-121715696-r1-10-postconvert.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-121715696-r1-20-postexport.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-121715696-r2-00-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-121715696-r2b-00-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-121715696-r2b-00-lib.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-121715696-r2b-20-postconvert.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-121715696-r2b-30-postsync.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-140193439-r3-20-postconvert.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-140193439-r3-30-postsync.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-258421826-r1-00-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-258421826-r1-10-postconvert.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-258421826-r1-20-postexport.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-258421826-r2-00-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-258421826-r2b-00-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-258421826-r2b-00-lib.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-258421826-r2b-20-postconvert.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-258421826-r2b-30-postsync.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-268012584-r3-20-postconvert.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-268012584-r3-30-postsync.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-53013048-r1-00-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-53013048-r1-10-postconvert.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-53013048-r1-20-postexport.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-53013048-r2-00-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-53013048-r2b-00-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-53013048-r2b-00-lib.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-53013048-r2b-20-postconvert.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-53013048-r2b-30-postsync.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-54793376-r1-00-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-54793376-r1-10-postconvert.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-54793376-r1-20-postexport.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-54793376-r2-00-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-54793376-r2b-00-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-54793376-r2b-20-postconvert.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/evidence/subject-54793376-r2b-30-postsync.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/scripts/export_diff.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-export-impact/scripts/export_snapshot.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/convert-anlz-cue-impact-experiment2-plan.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/convert-anlz-cue-impact-experiment2.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/convert-anlz-cue-impact-test-plan.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/convert-anlz-cue-impact-verification.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/convert-anlz-cue-impact.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/decisions/convert-and-reanalysis-impact.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/decisions/convert-helper-structure.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/01-inventory.txt +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/02-cue-schema.txt +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/03-cue-fields-by-format.txt +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/04-anlz-deep.txt +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/05-census.txt +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/06-content-columns.txt +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/07-analysis-flags.txt +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/exp2-00-pvb2-origin.txt +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-174954387-00-zero.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-174954387-dyn-high-01.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-174954387-dyn-high-02.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-174954387-dyn-high-03.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-174954387-dyn-normal-01.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-174954387-dyn-normal-02.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-174954387-dyn-normal-03.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-174954387-high-01.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-174954387-high-02.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-174954387-high-03.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-174954387-high-04.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-174954387-high-05.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-174954387-high-auto-01.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-174954387-high-auto-02.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-174954387-high-auto-03.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-174954387-normal-01.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-174954387-normal-02.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-174954387-normal-03.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-174954387-normal-04.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-174954387-normal-05.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-174954387-normal-06.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-174954387-normal-then-high.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-174954387-normal-unlocked-ref.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-174954387-nth-mid-normal.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-205157376-00-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-205157376-aiff-postanalyze.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-205157376-aiff-postconv.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-205157376-combined-ctrl-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-205157376-combined-ctrl-postanalyze.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-205157376-combined-ctrl-postanalyze2.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-205795680-00-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-205795680-aiff-postanalyze.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-205795680-aiff-postconv.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-205795680-aiff-postopen.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-205795680-flac-ctrl-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-205795680-flac-ctrl-postanalyze.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-205795680-flac-ctrl-postanalyze2.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-205795680-flac-postconv.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-205795680-mp3-postanalyze.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-205795680-mp3-postconv.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-230928195-00-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-230928195-mp3-locked.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-230928195-mp3-postconv.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-230928195-mp3-unlocked-reanalyze.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-230928195-postlock.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-230928195-prelock.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-231283665-iso-rate-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-231283665-iso-rate-postanalyze.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-231283665-iso-rate-postconv.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-27790898-00-zero.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-27790898-dyn-high-01.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-27790898-dyn-high-02.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-27790898-dyn-high-03.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-27790898-dyn-normal-01.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-27790898-dyn-normal-02.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-27790898-dyn-normal-03.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-27790898-high-01.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-27790898-high-02.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-27790898-high-03.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-27790898-high-04.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-27790898-high-05.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-27790898-high-auto-01.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-27790898-high-auto-02.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-27790898-high-auto-03.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-27790898-normal-01.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-27790898-normal-02.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-27790898-normal-03.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-27790898-normal-04.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-27790898-normal-05.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-27790898-normal-06.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-27790898-normal-locked.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-27790898-normal-then-high.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-27790898-nth-mid-normal.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-34178159-iso-depth-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-34178159-iso-depth-postanalyze.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-34178159-iso-depth-postconv.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-7691309-pvb2-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-7691309-pvb2-postanalyze.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/evidence/subject-7691309-pvb2-postconv.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/scripts/README.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/scripts/analysis_flags.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/scripts/anlz_census.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/scripts/anlz_deep.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/scripts/content_columns.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/scripts/cue_fields_by_format.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/scripts/cue_schema.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/scripts/grid_drift.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/scripts/inventory.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/scripts/pvb2_origin.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/scripts/reset_fresh_to_zero.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/scripts/restore_fixtures.sh +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-reanalysis-impact/scripts/row_snapshot.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-thread-scaling/convert-thread-scaling.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-thread-scaling/evidence/thread-scaling.txt +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-thread-scaling/scripts/_sources.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-thread-scaling/scripts/format_scaling.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-thread-scaling/scripts/shipped_path_scaling.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/convert-thread-scaling/scripts/write_cost.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/database-concurrency/database-concurrency.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/database-concurrency/evidence/plan-apply-probes.txt +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/database-concurrency/evidence/usn-spikes.txt +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/database-concurrency/plan-apply-window.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/database-concurrency/scripts/block_reservation.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/database-concurrency/scripts/concurrent_increment.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/database-concurrency/scripts/identity_probe.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/database-concurrency/scripts/membership_probe.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/database-concurrency/scripts/snapshot_probe.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/database-concurrency/scripts/wal_snapshot.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/database-concurrency/usn-maintenance.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/edit-relational-fields/decisions/edit-field-handlers.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/edit-relational-fields/edit-relational-fields-test-plan.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/edit-relational-fields/edit-relational-fields.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/edit-relational-fields/evidence/rel-112264610-e2-00-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/edit-relational-fields/evidence/rel-112264610-e2-10-reuse.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/edit-relational-fields/evidence/rel-141833798-e3b-00-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/edit-relational-fields/evidence/rel-141833798-e3b-10-newalbum.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/edit-relational-fields/evidence/rel-145166719-e0-census.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/edit-relational-fields/evidence/rel-176388182-e1-00-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/edit-relational-fields/evidence/rel-176388182-e1-10-reuse.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/edit-relational-fields/evidence/rel-183309432-e4-00-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/edit-relational-fields/evidence/rel-183309432-e4-10-orphaned.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/edit-relational-fields/evidence/rel-47413782-v-00-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/edit-relational-fields/evidence/rel-47413782-v-10-reuse.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/edit-relational-fields/evidence/rel-50395296-v-00-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/edit-relational-fields/evidence/rel-50395296-v-10-reuse.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/edit-relational-fields/evidence/rel-57701453-e3-00-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/edit-relational-fields/evidence/rel-57701453-e3-10-diffartist.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/edit-relational-fields/evidence/rel-71974950-v-00-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/edit-relational-fields/evidence/rel-71974950-v-10-reuse.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/edit-relational-fields/scripts/relational_diff.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/edit-relational-fields/scripts/relational_snapshot.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/file-types/README.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/file-types/decisions/unknown-file-types.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/import-track-row-shape/decisions/commit-semantics-and-usn.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/import-track-row-shape/evidence/column-coverage-gig.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/import-track-row-shape/evidence/datecreated-source-gig.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/import-track-row-shape/evidence/filetype-searchstr-gig.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/import-track-row-shape/evidence/filetype-searchstr-local.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/import-track-row-shape/evidence/import-row-shape-gig.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/import-track-row-shape/evidence/tag-key-mapping-gig.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/import-track-row-shape/import-track-row-shape.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/import-track-row-shape/scripts/column_coverage.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/import-track-row-shape/scripts/datecreated_source.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/import-track-row-shape/scripts/filetype_and_searchstr.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/import-track-row-shape/scripts/import_row_shape.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/import-track-row-shape/scripts/tag_key_mapping.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/remove-track-impact/decisions/remove-command-behavior.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/remove-track-impact/evidence/rm-109570093-r8-00-imported.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/remove-track-impact/evidence/rm-109570093-r8-10-analyzed.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/remove-track-impact/evidence/rm-114745319-r1-00-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/remove-track-impact/evidence/rm-114745319-r1-10-removed.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/remove-track-impact/evidence/rm-120331280-f6-00-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/remove-track-impact/evidence/rm-120331280-f6-10-control.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/remove-track-impact/evidence/rm-137975518-f3-00-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/remove-track-impact/evidence/rm-137975518-f3-10-control.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/remove-track-impact/evidence/rm-139425629-r6-00-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/remove-track-impact/evidence/rm-139425629-r6-10-removed.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/remove-track-impact/evidence/rm-14241481-r5-00-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/remove-track-impact/evidence/rm-14241481-r5-10-removed.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/remove-track-impact/evidence/rm-143461275-r7-01-folder-art.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/remove-track-impact/evidence/rm-265892207-r3-00-baseline.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/remove-track-impact/evidence/rm-265892207-r3-10-removed.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/remove-track-impact/evidence/rm-265892207-r4-10-playlist-only.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/remove-track-impact/evidence/rm-36337051-r7-00-folder-art.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/remove-track-impact/evidence/rm-74039842-r8-00-imported.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/remove-track-impact/evidence/rm-74039842-r8-10-analyzed.json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/remove-track-impact/remove-track-impact-test-plan.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/remove-track-impact/remove-track-impact.md +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/remove-track-impact/scripts/build_fixtures.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/remove-track-impact/scripts/removal_diff.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/remove-track-impact/scripts/removal_snapshot.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/remove-track-impact/scripts/restore.sh +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/shared/scripts/subject_diff.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/research/shared/scripts/subject_snapshot.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/ruff.toml +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/__init__.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/anlz_helpers.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/api/__init__.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/api/conftest.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/api/test_anlz.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/api/test_convert.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/api/test_edit.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/api/test_field_handlers.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/api/test_import.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/api/test_package.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/api/test_relations.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/api/test_remove.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/api/test_search.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/api/test_utils.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/cli/__init__.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/cli/test_convert.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/cli/test_edit.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/cli/test_import.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/cli/test_locking.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/cli/test_main.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/cli/test_progress.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/cli/test_remove.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/cli/test_search.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/cli/test_utils.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/conftest.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/e2e/Dockerfile +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/e2e/__init__.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/e2e/__snapshots__/test_journey/test_search_full_json_snapshot[macos].json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/e2e/__snapshots__/test_journey/test_search_full_json_snapshot[windows].json +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/e2e/__snapshots__/test_journey.ambr +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/e2e/conftest.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/e2e/fixtures/audio/01-flac-44_1k-16b.flac +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/e2e/fixtures/audio/02-flac-96k-24b.flac +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/e2e/fixtures/audio/03-alac-44_1k-16b.m4a +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/e2e/fixtures/audio/04-alac-48k-24b.m4a +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/e2e/fixtures/audio/05-aiff-44_1k-16b.aiff +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/e2e/fixtures/audio/06-wav-96k-24b.wav +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/e2e/fixtures/audio/07-mp3-44_1k-320cbr.mp3 +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/e2e/fixtures/audio/08-mp3-44_1k-v0vbr.mp3 +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/e2e/fixtures/audio/09-aac-44_1k-256kbps.m4a +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/e2e/fixtures/audio/10-/303/274/303/261/303/256c/303/266d/303/251-flac-44_1k-16b.flac" +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/e2e/fixtures/macos/master.6.8.6.db +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/e2e/fixtures/windows/master.6.8.6.db +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/e2e/test_edit_fields.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/e2e/test_import.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/e2e/test_journey.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/e2e/test_remove.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/test_display.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/test_locking.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/test_logger.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/test_models.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/test_query.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/test_tag_fields.py +0 -0
- {rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/tests/test_utils.py +0 -0
|
@@ -1,4 +1,15 @@
|
|
|
1
|
-
## v0.13.
|
|
1
|
+
## v0.13.3.dev1 (2026-10-03)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
- chore(deps): update dependency platformdirs to v4.12.2 (#255)
|
|
5
|
+
- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
|
|
6
|
+
|
|
7
|
+
## v0.13.3 (2026-10-01)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
- fix(import): read and concatenate all tagged genres
|
|
11
|
+
|
|
12
|
+
## v0.13.2 (2026-09-29)
|
|
2
13
|
|
|
3
14
|
|
|
4
15
|
- fix(import): don't resolve mapped/symlinked drives to their UNC paths
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: rekordbox-edit
|
|
3
|
-
Version: 0.13.
|
|
3
|
+
Version: 0.13.3.dev1
|
|
4
4
|
Summary: Tools for managing and modifying a RekordBox library en-masse
|
|
5
5
|
Project-URL: Homepage, https://github.com/jviall/rekordbox-edit
|
|
6
6
|
Project-URL: Repository, https://github.com/jviall/rekordbox-edit
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "rekordbox-edit"
|
|
7
|
-
version = "0.13.
|
|
7
|
+
version = "0.13.3.dev1"
|
|
8
8
|
description = "Tools for managing and modifying a RekordBox library en-masse"
|
|
9
9
|
authors = [{ name = "James Viall", email= "jamesviall@pm.me"}]
|
|
10
10
|
license = "MIT"
|
|
@@ -42,6 +42,9 @@ class TrackTags(TypedDict):
|
|
|
42
42
|
bitrate: int | None
|
|
43
43
|
|
|
44
44
|
|
|
45
|
+
#: Joins the genres of a multi-genre file into the single name a track stores.
|
|
46
|
+
GENRE_SEPARATOR = "; "
|
|
47
|
+
|
|
45
48
|
# Rekordbox FileType by mutagen's file class. MP4 splits on the codec because
|
|
46
49
|
# .m4a holds either ALAC or AAC and the extension cannot tell them apart.
|
|
47
50
|
_MP4_ALAC, _MP4_AAC = 6, 4
|
|
@@ -91,8 +94,17 @@ _MP4_KEYS: dict[str, tuple[str, ...]] = {
|
|
|
91
94
|
}
|
|
92
95
|
|
|
93
96
|
|
|
94
|
-
def
|
|
95
|
-
"""
|
|
97
|
+
def _text(value) -> str:
|
|
98
|
+
"""One raw mutagen value as stripped text."""
|
|
99
|
+
if isinstance(value, tuple): # MP4 trkn/disk are (number, total)
|
|
100
|
+
value = value[0]
|
|
101
|
+
if isinstance(value, (bytes, bytearray)):
|
|
102
|
+
value = bytes(value).decode("utf-8", "replace")
|
|
103
|
+
return str(value).strip()
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
def _values(tags, keys) -> list[str]:
|
|
107
|
+
"""Every non-empty value under the first of `keys` the file carries.
|
|
96
108
|
|
|
97
109
|
A literal "COMM" key is a fallback marker: mutagen keys ID3 comment
|
|
98
110
|
frames as "COMM:<description>:<language>", and the description varies
|
|
@@ -109,20 +121,31 @@ def _first(tags, keys) -> str | None:
|
|
|
109
121
|
raw = tags[key]
|
|
110
122
|
except (KeyError, TypeError):
|
|
111
123
|
continue
|
|
112
|
-
if
|
|
113
|
-
|
|
114
|
-
elif
|
|
115
|
-
|
|
124
|
+
if hasattr(raw, "text"): # ID3 frame; .text holds its value(s)
|
|
125
|
+
items = list(raw.text)
|
|
126
|
+
elif isinstance(raw, list):
|
|
127
|
+
items = raw
|
|
116
128
|
else:
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
129
|
+
items = [raw]
|
|
130
|
+
values = [text for text in (_text(item) for item in items) if text]
|
|
131
|
+
if values:
|
|
132
|
+
return values
|
|
133
|
+
return []
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
def _first(tags, keys) -> str | None:
|
|
137
|
+
"""The first non-empty value among `keys`, as a string."""
|
|
138
|
+
values = _values(tags, keys)
|
|
139
|
+
return values[0] if values else None
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
def _genre(tags, keys) -> str | None:
|
|
143
|
+
"""Every genre the file lists, joined by GENRE_SEPARATOR.
|
|
144
|
+
|
|
145
|
+
A track holds one GenreID, so multiple genres collapse into one name
|
|
146
|
+
that Rekordbox shows, sorts, and searches as written.
|
|
147
|
+
"""
|
|
148
|
+
return GENRE_SEPARATOR.join(_values(tags, keys)) or None
|
|
126
149
|
|
|
127
150
|
|
|
128
151
|
def _leading_int(value: str | None) -> int | None:
|
|
@@ -199,7 +222,7 @@ def read_tags(path: str) -> TrackTags:
|
|
|
199
222
|
"title": read.get("title") or os.path.splitext(os.path.basename(path))[0],
|
|
200
223
|
"artist": read.get("artist"),
|
|
201
224
|
"album": read.get("album"),
|
|
202
|
-
"genre":
|
|
225
|
+
"genre": _genre(tags, keys["genre"]),
|
|
203
226
|
"composer": read.get("composer"),
|
|
204
227
|
"label": read.get("label"),
|
|
205
228
|
"isrc": isrc,
|
|
@@ -7,7 +7,7 @@ from mutagen.id3 import COMM, TCOM, TCON, TDRC, TKEY, TPOS, TPUB, TRCK, TSRC
|
|
|
7
7
|
from mutagen.mp3 import MP3
|
|
8
8
|
from mutagen.mp4 import MP4, MP4FreeForm
|
|
9
9
|
|
|
10
|
-
from rekordbox_edit.tags import UnreadableFile, _first, read_tags
|
|
10
|
+
from rekordbox_edit.tags import UnreadableFile, _first, _genre, read_tags
|
|
11
11
|
|
|
12
12
|
FIXTURES = Path(__file__).resolve().parent / "e2e/fixtures/audio"
|
|
13
13
|
|
|
@@ -163,6 +163,16 @@ class TestVorbisTags:
|
|
|
163
163
|
assert tags["track_no"] == 3
|
|
164
164
|
assert tags["disc_no"] == 1
|
|
165
165
|
|
|
166
|
+
def test_joins_repeated_genre_comments(self, tmp_path):
|
|
167
|
+
"""Vorbis stores a second genre as a second `genre` comment; all of
|
|
168
|
+
them reach the single genre a track stores."""
|
|
169
|
+
path = _copy(tmp_path, "01-flac-44_1k-16b.flac")
|
|
170
|
+
audio = FLAC(path)
|
|
171
|
+
audio["genre"] = ["Techno", "Electro", " "]
|
|
172
|
+
audio.save()
|
|
173
|
+
|
|
174
|
+
assert read_tags(path)["genre"] == "Techno; Electro"
|
|
175
|
+
|
|
166
176
|
|
|
167
177
|
class TestID3Tags:
|
|
168
178
|
"""genre through disc_no plus comment: none of these appear on the
|
|
@@ -211,9 +221,19 @@ class TestID3Tags:
|
|
|
211
221
|
assert read_tags(path)["comment"] == "legacy note"
|
|
212
222
|
|
|
213
223
|
def test_takes_the_first_value_of_a_multi_value_text_frame(self, tmp_path):
|
|
214
|
-
"""A text frame may legally carry multiple values
|
|
215
|
-
|
|
216
|
-
|
|
224
|
+
"""A text frame may legally carry multiple values. Stringifying the
|
|
225
|
+
whole frame joins them with a NUL byte; read_tags must take only the
|
|
226
|
+
first value instead, except for genre, which keeps all of them."""
|
|
227
|
+
path = _copy(tmp_path, "07-mp3-44_1k-320cbr.mp3")
|
|
228
|
+
|
|
229
|
+
audio = MP3(path)
|
|
230
|
+
assert audio.tags is not None
|
|
231
|
+
audio.tags.add(TCOM(encoding=3, text=["First Composer", "Second Composer"]))
|
|
232
|
+
audio.save()
|
|
233
|
+
|
|
234
|
+
assert read_tags(path)["composer"] == "First Composer"
|
|
235
|
+
|
|
236
|
+
def test_joins_the_genres_of_a_multi_value_tcon_frame(self, tmp_path):
|
|
217
237
|
path = _copy(tmp_path, "07-mp3-44_1k-320cbr.mp3")
|
|
218
238
|
|
|
219
239
|
audio = MP3(path)
|
|
@@ -221,7 +241,7 @@ class TestID3Tags:
|
|
|
221
241
|
audio.tags.add(TCON(encoding=3, text=["Trance", "Progressive House"]))
|
|
222
242
|
audio.save()
|
|
223
243
|
|
|
224
|
-
assert read_tags(path)["genre"] == "Trance"
|
|
244
|
+
assert read_tags(path)["genre"] == "Trance; Progressive House"
|
|
225
245
|
|
|
226
246
|
|
|
227
247
|
class TestFirst:
|
|
@@ -252,3 +272,11 @@ class TestFirst:
|
|
|
252
272
|
|
|
253
273
|
def test_returns_none_when_every_key_is_empty(self):
|
|
254
274
|
assert _first({"label": [""]}, ("label", "organization")) is None
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
class TestGenre:
|
|
278
|
+
def test_joins_every_value_of_the_first_populated_key(self):
|
|
279
|
+
assert _genre({"\xa9gen": ["House", "Disco"]}, ("\xa9gen",)) == "House; Disco"
|
|
280
|
+
|
|
281
|
+
def test_returns_none_when_no_key_holds_a_genre(self):
|
|
282
|
+
assert _genre({}, ("genre",)) is None
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
version = 1
|
|
2
|
-
revision =
|
|
2
|
+
revision = 5
|
|
3
3
|
requires-python = ">=3.11"
|
|
4
4
|
|
|
5
5
|
[options]
|
|
@@ -884,11 +884,11 @@ wheels = [
|
|
|
884
884
|
|
|
885
885
|
[[package]]
|
|
886
886
|
name = "platformdirs"
|
|
887
|
-
version = "4.
|
|
887
|
+
version = "4.12.2"
|
|
888
888
|
source = { registry = "https://pypi.org/simple" }
|
|
889
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
889
|
+
sdist = { url = "https://files.pythonhosted.org/packages/17/c8/721b3855fe457da514fe249247d404b9b39c5d16532278f70ebaa6acf18b/platformdirs-4.12.2.tar.gz", hash = "sha256:eab5f70271a490ef74618bb314fbb86e3c7e82fa3b9c922c2ea0e0a1a155d329", size = 59353, upload-time = "2026-09-29T18:27:56.009Z" }
|
|
890
890
|
wheels = [
|
|
891
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
891
|
+
{ url = "https://files.pythonhosted.org/packages/d0/89/446044f33aba0348d35e433f56d12206d010a5281a1df54054d4cfb82388/platformdirs-4.12.2-py3-none-any.whl", hash = "sha256:29dbf06d96c500bc6bdbce75fb0a14d63279c93b1842f97e72a135b33e856983", size = 32457, upload-time = "2026-09-29T18:27:54.43Z" },
|
|
892
892
|
]
|
|
893
893
|
|
|
894
894
|
[[package]]
|
|
@@ -1274,7 +1274,7 @@ wheels = [
|
|
|
1274
1274
|
|
|
1275
1275
|
[[package]]
|
|
1276
1276
|
name = "rekordbox-edit"
|
|
1277
|
-
version = "0.13.
|
|
1277
|
+
version = "0.13.3.dev1"
|
|
1278
1278
|
source = { editable = "." }
|
|
1279
1279
|
dependencies = [
|
|
1280
1280
|
{ name = "click" },
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/.github/actions/commit-check/action.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/.github/actions/install/action.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rekordbox_edit-0.13.2.dev24 → rekordbox_edit-0.13.3.dev1}/rekordbox_edit/api/_field_handlers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|