rekordbox-edit 0.13.1.dev2__tar.gz → 0.13.1.dev4__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.1.dev2 → rekordbox_edit-0.13.1.dev4}/CHANGELOG.md +14 -3
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/PKG-INFO +1 -1
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/pyproject.toml +1 -1
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/api/_field_handlers.py +4 -5
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/display.py +18 -6
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/utils.py +3 -11
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/api/test_field_handlers.py +5 -3
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/test_edit_fields.py +2 -2
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/test_display.py +46 -1
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/test_utils.py +0 -8
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/uv.lock +1 -1
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.agent-style/RULES.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.agent-style/claude-code.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.github/actions/build-release-notes/action.yml +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.github/actions/build-release-notes/build_release_notes.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.github/actions/commit-check/action.yml +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.github/actions/commitizen-bump/action.yml +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.github/actions/commitizen-bump/commitizen-bump.sh +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.github/actions/e2e/action.yml +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.github/actions/install/action.yml +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.github/actions/lint/action.yml +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.github/actions/test/action.yml +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.github/workflows/cd.yml +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.github/workflows/ci.yml +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.github/workflows/publish.yml +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.github/workflows/release.yml +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.gitignore +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.pre-commit-config.yaml +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.python-version +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.readthedocs.yaml +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/AGENTS.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/CLAUDE.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/CONTRIBUTING.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/LICENSE +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/Makefile +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/README.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/codecov.yml +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/docker-compose.yml +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/docs/api.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/docs/commands/convert.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/docs/commands/edit.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/docs/commands/import.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/docs/commands/remove.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/docs/commands/search.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/docs/faqs.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/docs/filtering.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/docs/index.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/docs/stylesheets/extra.css +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/mkdocs.yml +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/__init__.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/_tag_fields.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/api/__init__.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/api/_anlz.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/api/_convert.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/api/_edit.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/api/_import.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/api/_relations.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/api/_remove.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/api/_search.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/api/_utils.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/cli/__init__.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/cli/_click.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/cli/_progress.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/cli/_utils.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/cli/convert.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/cli/edit.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/cli/import_.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/cli/main.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/cli/remove.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/cli/search.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/errors.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/locking.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/logger.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/models.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/query.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/tags.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/renovate.json5 +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/README.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/beets-plugin-integration/beets-plugin-integration.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/beets-plugin-integration/decisions/converted-original-disposition.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/beets-plugin-integration/evidence/convert-repoint.txt +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/beets-plugin-integration/evidence/event-order.txt +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/beets-plugin-integration/evidence/file-level-encode.txt +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/beets-plugin-integration/evidence/id-stability.txt +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/beets-plugin-integration/evidence/media-field-roundtrip.txt +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/beets-plugin-integration/scripts/convert_repoint.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/beets-plugin-integration/scripts/event_probe.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/beets-plugin-integration/scripts/file_level_encode.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/beets-plugin-integration/scripts/id_stability.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/beets-plugin-integration/scripts/media_field_roundtrip.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/convert-export-impact-test-plan.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/convert-export-impact.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/export-r1-00-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/export-r1-10-postconvert.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/export-r1-20-postexport.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/export-r1-21-postexport-full.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/export-r2-00-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/export-r2b-00-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/export-r2b-10-deviceedit.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/export-r2b-30-postsync.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/export-r3-00-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/export-r3-10-deviceedit.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/export-r3-40-resync.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/export-r3-41-reexport-full.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-11317782-r3-20-postconvert.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-11317782-r3-30-postsync.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-121715696-r1-00-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-121715696-r1-10-postconvert.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-121715696-r1-20-postexport.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-121715696-r2-00-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-121715696-r2b-00-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-121715696-r2b-00-lib.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-121715696-r2b-20-postconvert.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-121715696-r2b-30-postsync.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-140193439-r3-20-postconvert.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-140193439-r3-30-postsync.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-258421826-r1-00-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-258421826-r1-10-postconvert.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-258421826-r1-20-postexport.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-258421826-r2-00-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-258421826-r2b-00-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-258421826-r2b-00-lib.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-258421826-r2b-20-postconvert.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-258421826-r2b-30-postsync.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-268012584-r3-20-postconvert.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-268012584-r3-30-postsync.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-53013048-r1-00-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-53013048-r1-10-postconvert.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-53013048-r1-20-postexport.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-53013048-r2-00-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-53013048-r2b-00-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-53013048-r2b-00-lib.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-53013048-r2b-20-postconvert.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-53013048-r2b-30-postsync.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-54793376-r1-00-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-54793376-r1-10-postconvert.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-54793376-r1-20-postexport.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-54793376-r2-00-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-54793376-r2b-00-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-54793376-r2b-20-postconvert.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/subject-54793376-r2b-30-postsync.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/scripts/export_diff.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/scripts/export_snapshot.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/convert-anlz-cue-impact-experiment2-plan.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/convert-anlz-cue-impact-experiment2.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/convert-anlz-cue-impact-test-plan.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/convert-anlz-cue-impact-verification.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/convert-anlz-cue-impact.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/decisions/convert-and-reanalysis-impact.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/decisions/convert-helper-structure.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/01-inventory.txt +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/02-cue-schema.txt +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/03-cue-fields-by-format.txt +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/04-anlz-deep.txt +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/05-census.txt +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/06-content-columns.txt +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/07-analysis-flags.txt +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/exp2-00-pvb2-origin.txt +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-00-zero.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-dyn-high-01.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-dyn-high-02.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-dyn-high-03.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-dyn-normal-01.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-dyn-normal-02.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-dyn-normal-03.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-high-01.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-high-02.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-high-03.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-high-04.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-high-05.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-high-auto-01.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-high-auto-02.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-high-auto-03.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-normal-01.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-normal-02.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-normal-03.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-normal-04.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-normal-05.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-normal-06.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-normal-then-high.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-normal-unlocked-ref.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-nth-mid-normal.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-205157376-00-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-205157376-aiff-postanalyze.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-205157376-aiff-postconv.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-205157376-combined-ctrl-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-205157376-combined-ctrl-postanalyze.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-205157376-combined-ctrl-postanalyze2.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-205795680-00-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-205795680-aiff-postanalyze.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-205795680-aiff-postconv.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-205795680-aiff-postopen.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-205795680-flac-ctrl-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-205795680-flac-ctrl-postanalyze.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-205795680-flac-ctrl-postanalyze2.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-205795680-flac-postconv.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-205795680-mp3-postanalyze.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-205795680-mp3-postconv.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-230928195-00-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-230928195-mp3-locked.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-230928195-mp3-postconv.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-230928195-mp3-unlocked-reanalyze.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-230928195-postlock.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-230928195-prelock.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-231283665-iso-rate-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-231283665-iso-rate-postanalyze.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-231283665-iso-rate-postconv.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-00-zero.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-dyn-high-01.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-dyn-high-02.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-dyn-high-03.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-dyn-normal-01.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-dyn-normal-02.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-dyn-normal-03.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-high-01.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-high-02.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-high-03.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-high-04.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-high-05.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-high-auto-01.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-high-auto-02.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-high-auto-03.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-normal-01.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-normal-02.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-normal-03.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-normal-04.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-normal-05.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-normal-06.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-normal-locked.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-normal-then-high.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-nth-mid-normal.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-34178159-iso-depth-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-34178159-iso-depth-postanalyze.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-34178159-iso-depth-postconv.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-7691309-pvb2-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-7691309-pvb2-postanalyze.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-7691309-pvb2-postconv.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/scripts/README.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/scripts/analysis_flags.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/scripts/anlz_census.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/scripts/anlz_deep.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/scripts/content_columns.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/scripts/cue_fields_by_format.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/scripts/cue_schema.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/scripts/grid_drift.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/scripts/inventory.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/scripts/pvb2_origin.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/scripts/reset_fresh_to_zero.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/scripts/restore_fixtures.sh +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/scripts/row_snapshot.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-thread-scaling/convert-thread-scaling.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-thread-scaling/evidence/thread-scaling.txt +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-thread-scaling/scripts/_sources.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-thread-scaling/scripts/format_scaling.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-thread-scaling/scripts/shipped_path_scaling.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-thread-scaling/scripts/write_cost.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/database-concurrency/database-concurrency.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/database-concurrency/evidence/plan-apply-probes.txt +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/database-concurrency/evidence/usn-spikes.txt +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/database-concurrency/plan-apply-window.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/database-concurrency/scripts/block_reservation.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/database-concurrency/scripts/concurrent_increment.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/database-concurrency/scripts/identity_probe.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/database-concurrency/scripts/membership_probe.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/database-concurrency/scripts/snapshot_probe.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/database-concurrency/scripts/wal_snapshot.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/database-concurrency/usn-maintenance.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/edit-relational-fields/decisions/edit-field-handlers.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/edit-relational-fields/edit-relational-fields-test-plan.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/edit-relational-fields/edit-relational-fields.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/edit-relational-fields/evidence/rel-112264610-e2-00-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/edit-relational-fields/evidence/rel-112264610-e2-10-reuse.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/edit-relational-fields/evidence/rel-141833798-e3b-00-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/edit-relational-fields/evidence/rel-141833798-e3b-10-newalbum.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/edit-relational-fields/evidence/rel-145166719-e0-census.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/edit-relational-fields/evidence/rel-176388182-e1-00-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/edit-relational-fields/evidence/rel-176388182-e1-10-reuse.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/edit-relational-fields/evidence/rel-183309432-e4-00-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/edit-relational-fields/evidence/rel-183309432-e4-10-orphaned.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/edit-relational-fields/evidence/rel-47413782-v-00-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/edit-relational-fields/evidence/rel-47413782-v-10-reuse.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/edit-relational-fields/evidence/rel-50395296-v-00-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/edit-relational-fields/evidence/rel-50395296-v-10-reuse.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/edit-relational-fields/evidence/rel-57701453-e3-00-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/edit-relational-fields/evidence/rel-57701453-e3-10-diffartist.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/edit-relational-fields/evidence/rel-71974950-v-00-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/edit-relational-fields/evidence/rel-71974950-v-10-reuse.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/edit-relational-fields/scripts/relational_diff.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/edit-relational-fields/scripts/relational_snapshot.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/file-types/README.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/file-types/decisions/unknown-file-types.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/import-track-row-shape/decisions/commit-semantics-and-usn.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/import-track-row-shape/evidence/column-coverage-gig.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/import-track-row-shape/evidence/datecreated-source-gig.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/import-track-row-shape/evidence/filetype-searchstr-gig.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/import-track-row-shape/evidence/filetype-searchstr-local.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/import-track-row-shape/evidence/import-row-shape-gig.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/import-track-row-shape/evidence/tag-key-mapping-gig.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/import-track-row-shape/import-track-row-shape.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/import-track-row-shape/scripts/column_coverage.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/import-track-row-shape/scripts/datecreated_source.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/import-track-row-shape/scripts/filetype_and_searchstr.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/import-track-row-shape/scripts/import_row_shape.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/import-track-row-shape/scripts/tag_key_mapping.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/remove-track-impact/decisions/remove-command-behavior.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/remove-track-impact/evidence/rm-109570093-r8-00-imported.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/remove-track-impact/evidence/rm-109570093-r8-10-analyzed.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/remove-track-impact/evidence/rm-114745319-r1-00-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/remove-track-impact/evidence/rm-114745319-r1-10-removed.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/remove-track-impact/evidence/rm-120331280-f6-00-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/remove-track-impact/evidence/rm-120331280-f6-10-control.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/remove-track-impact/evidence/rm-137975518-f3-00-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/remove-track-impact/evidence/rm-137975518-f3-10-control.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/remove-track-impact/evidence/rm-139425629-r6-00-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/remove-track-impact/evidence/rm-139425629-r6-10-removed.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/remove-track-impact/evidence/rm-14241481-r5-00-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/remove-track-impact/evidence/rm-14241481-r5-10-removed.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/remove-track-impact/evidence/rm-143461275-r7-01-folder-art.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/remove-track-impact/evidence/rm-265892207-r3-00-baseline.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/remove-track-impact/evidence/rm-265892207-r3-10-removed.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/remove-track-impact/evidence/rm-265892207-r4-10-playlist-only.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/remove-track-impact/evidence/rm-36337051-r7-00-folder-art.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/remove-track-impact/evidence/rm-74039842-r8-00-imported.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/remove-track-impact/evidence/rm-74039842-r8-10-analyzed.json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/remove-track-impact/remove-track-impact-test-plan.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/remove-track-impact/remove-track-impact.md +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/remove-track-impact/scripts/build_fixtures.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/remove-track-impact/scripts/removal_diff.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/remove-track-impact/scripts/removal_snapshot.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/remove-track-impact/scripts/restore.sh +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/shared/scripts/subject_diff.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/shared/scripts/subject_snapshot.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/ruff.toml +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/__init__.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/anlz_helpers.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/api/__init__.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/api/conftest.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/api/test_anlz.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/api/test_convert.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/api/test_edit.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/api/test_import.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/api/test_package.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/api/test_relations.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/api/test_remove.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/api/test_search.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/api/test_utils.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/cli/__init__.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/cli/test_convert.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/cli/test_edit.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/cli/test_import.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/cli/test_locking.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/cli/test_main.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/cli/test_progress.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/cli/test_remove.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/cli/test_search.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/cli/test_utils.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/conftest.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/Dockerfile +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/__init__.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/__snapshots__/test_journey/test_search_full_json_snapshot[macos].json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/__snapshots__/test_journey/test_search_full_json_snapshot[windows].json +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/__snapshots__/test_journey.ambr +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/conftest.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/fixtures/audio/01-flac-44_1k-16b.flac +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/fixtures/audio/02-flac-96k-24b.flac +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/fixtures/audio/03-alac-44_1k-16b.m4a +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/fixtures/audio/04-alac-48k-24b.m4a +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/fixtures/audio/05-aiff-44_1k-16b.aiff +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/fixtures/audio/06-wav-96k-24b.wav +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/fixtures/audio/07-mp3-44_1k-320cbr.mp3 +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/fixtures/audio/08-mp3-44_1k-v0vbr.mp3 +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/fixtures/audio/09-aac-44_1k-256kbps.m4a +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/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.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/fixtures/macos/master.6.8.6.db +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/fixtures/windows/master.6.8.6.db +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/test_import.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/test_journey.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/test_remove.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/test_locking.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/test_logger.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/test_models.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/test_query.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/test_tag_fields.py +0 -0
- {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/test_tags.py +0 -0
|
@@ -1,6 +1,17 @@
|
|
|
1
|
-
## v0.13.1.
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
## v0.13.1.dev4 (2026-09-10)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
- fix(rating): use rekordbox's 0-5 scale, not the XML x51 encoding
|
|
5
|
+
- fix(display): keep the new value visible in a change preview
|
|
6
|
+
- The changed column rendered the old and new values into one cell that was
|
|
7
|
+
no-wrap with ellipsis overflow. For FolderPath the old value alone fills
|
|
8
|
+
the column at any ordinary terminal width, so the new value was truncated
|
|
9
|
+
away and --dry-run showed only what the row already held. A bulk repoint
|
|
10
|
+
was unverifiable from it; the new value first appeared around 600 columns.
|
|
11
|
+
- The column now wraps instead of ellipsising when it carries a preview, and
|
|
12
|
+
the new value renders beneath the struck-through old one.
|
|
13
|
+
- The existing test missed this by asserting against a 400-column console
|
|
14
|
+
with a single short column, which is not a width anyone runs.
|
|
4
15
|
- chore(deps): update dependency click to v8.5.0
|
|
5
16
|
- fix(edit): survive a row whose analysis directory is missing
|
|
6
17
|
- A row can carry an AnalysisDataPath naming a directory that was never
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: rekordbox-edit
|
|
3
|
-
Version: 0.13.1.
|
|
3
|
+
Version: 0.13.1.dev4
|
|
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.1.
|
|
7
|
+
version = "0.13.1.dev4"
|
|
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"
|
{rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/api/_field_handlers.py
RENAMED
|
@@ -27,8 +27,6 @@ from rekordbox_edit.utils import (
|
|
|
27
27
|
get_audio_info,
|
|
28
28
|
get_file_type_for_probe,
|
|
29
29
|
parse_star_rating,
|
|
30
|
-
star_rating_to_stored,
|
|
31
|
-
stored_to_star_rating,
|
|
32
30
|
)
|
|
33
31
|
|
|
34
32
|
_logger = logging.getLogger(__name__)
|
|
@@ -127,7 +125,8 @@ class StringField(FieldHandler):
|
|
|
127
125
|
|
|
128
126
|
|
|
129
127
|
class RatingField(FieldHandler):
|
|
130
|
-
"""A 0-5 star rating, stored as
|
|
128
|
+
"""A 0-5 star rating, stored as the star count itself. `--match` does not
|
|
129
|
+
apply."""
|
|
131
130
|
|
|
132
131
|
name = "Rating"
|
|
133
132
|
supports_match = False
|
|
@@ -141,13 +140,13 @@ class RatingField(FieldHandler):
|
|
|
141
140
|
|
|
142
141
|
def current_value(self, content):
|
|
143
142
|
stored = content.Rating
|
|
144
|
-
return None if stored is None else str(
|
|
143
|
+
return None if stored is None else str(stored)
|
|
145
144
|
|
|
146
145
|
def compute_new_value(self, current, args):
|
|
147
146
|
return str(parse_star_rating(args.replace_value))
|
|
148
147
|
|
|
149
148
|
def apply(self, db, content, new_value):
|
|
150
|
-
content.Rating =
|
|
149
|
+
content.Rating = int(new_value)
|
|
151
150
|
return NO_INCIDENTAL_ROWS
|
|
152
151
|
|
|
153
152
|
|
|
@@ -22,7 +22,7 @@ from rich.table import Table
|
|
|
22
22
|
from rich.theme import Theme
|
|
23
23
|
|
|
24
24
|
from rekordbox_edit.models import Track
|
|
25
|
-
from rekordbox_edit.utils import FILE_TYPES, get_file_type_name
|
|
25
|
+
from rekordbox_edit.utils import FILE_TYPES, get_file_type_name
|
|
26
26
|
|
|
27
27
|
_logger = logging.getLogger(__name__)
|
|
28
28
|
|
|
@@ -189,7 +189,7 @@ def _cell_value(track: Track, column: PrintableField) -> str:
|
|
|
189
189
|
if column is PrintableField.FolderPath:
|
|
190
190
|
return os.path.dirname(track.FolderPath or "")
|
|
191
191
|
if column is PrintableField.Rating:
|
|
192
|
-
return "" if track.Rating is None else str(
|
|
192
|
+
return "" if track.Rating is None else str(track.Rating)
|
|
193
193
|
value = getattr(track, column.value, None)
|
|
194
194
|
return "" if value is None else str(value)
|
|
195
195
|
|
|
@@ -203,8 +203,10 @@ def print_track_info(
|
|
|
203
203
|
"""Print formatted track information.
|
|
204
204
|
|
|
205
205
|
When ``changed_field`` and ``new_values`` are both provided, the matching
|
|
206
|
-
column renders each row as a before/after preview: the old value
|
|
207
|
-
|
|
206
|
+
column renders each row as a before/after preview: the old value struck
|
|
207
|
+
through, the new value beneath it. That column wraps rather than
|
|
208
|
+
ellipsising, since both values have to stay readable at ordinary terminal
|
|
209
|
+
widths.
|
|
208
210
|
"""
|
|
209
211
|
if (changed_field is None) != (new_values is None):
|
|
210
212
|
raise ValueError("changed_field and new_values must be provided together")
|
|
@@ -232,8 +234,16 @@ def print_track_info(
|
|
|
232
234
|
table.add_column("#", justify="right", min_width=1, no_wrap=True)
|
|
233
235
|
for column in print_columns:
|
|
234
236
|
cfg = _COLUMN_CONFIG.get(column, {"min_width": 5})
|
|
237
|
+
# The changed column carries both values, so it needs roughly twice the
|
|
238
|
+
# width of any other. Ellipsised at a real terminal width it shows the
|
|
239
|
+
# old value and truncates the new one away, which is the half nobody
|
|
240
|
+
# can check.
|
|
241
|
+
previewing = column is changed_field and new_values is not None
|
|
235
242
|
table.add_column(
|
|
236
|
-
PRINT_HEADERS[column],
|
|
243
|
+
PRINT_HEADERS[column],
|
|
244
|
+
no_wrap=not previewing,
|
|
245
|
+
overflow="fold" if previewing else "ellipsis",
|
|
246
|
+
**cfg,
|
|
237
247
|
)
|
|
238
248
|
|
|
239
249
|
for i, track in enumerate(content_list, 1):
|
|
@@ -241,7 +251,9 @@ def print_track_info(
|
|
|
241
251
|
for col in print_columns:
|
|
242
252
|
old = _cell_value(track, col)
|
|
243
253
|
if col is changed_field and new_values is not None:
|
|
244
|
-
cells.append(
|
|
254
|
+
cells.append(
|
|
255
|
+
f"[strike]{old}[/strike]\n[bold]{new_values[i - 1]}[/bold]"
|
|
256
|
+
)
|
|
245
257
|
else:
|
|
246
258
|
cells.append(old)
|
|
247
259
|
table.add_row(str(i), *cells)
|
|
@@ -331,8 +331,10 @@ def get_audio_info(file_path) -> AudioInfo:
|
|
|
331
331
|
raise e
|
|
332
332
|
|
|
333
333
|
|
|
334
|
+
#: DjmdContent.Rating holds the star count itself, 0-5. rekordbox's XML export
|
|
335
|
+
#: encodes the same rating as 0/51/102/153/204/255, which is a property of that
|
|
336
|
+
#: file format and not of this column.
|
|
334
337
|
_RATING_STARS_MAX = 5
|
|
335
|
-
_RATING_STEP = 51 # Rekordbox stores N stars as N * 51.
|
|
336
338
|
|
|
337
339
|
|
|
338
340
|
def parse_star_rating(value: "str | int") -> int:
|
|
@@ -348,13 +350,3 @@ def parse_star_rating(value: "str | int") -> int:
|
|
|
348
350
|
f"Rating must be between 0 and {_RATING_STARS_MAX}, got {stars}"
|
|
349
351
|
)
|
|
350
352
|
return stars
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
def star_rating_to_stored(stars: int) -> int:
|
|
354
|
-
"""Convert a 0-5 star rating to the value Rekordbox stores."""
|
|
355
|
-
return stars * _RATING_STEP
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
def stored_to_star_rating(stored: int) -> int:
|
|
359
|
-
"""Convert a stored rating back to a 0-5 star count."""
|
|
360
|
-
return round(stored / _RATING_STEP)
|
|
@@ -107,10 +107,12 @@ class TestRatingField:
|
|
|
107
107
|
|
|
108
108
|
def test_current_value_is_star_string(self, make_djmd_content_item):
|
|
109
109
|
content = make_djmd_content_item(ID="1")
|
|
110
|
-
content.Rating =
|
|
110
|
+
content.Rating = 3
|
|
111
111
|
assert FIELD_HANDLERS["Rating"].current_value(content) == "3"
|
|
112
112
|
|
|
113
|
-
def
|
|
113
|
+
def test_apply_writes_the_star_count_itself(self, make_djmd_content_item):
|
|
114
|
+
# DjmdContent.Rating holds 0-5. The 0/51/102/153/204/255 encoding
|
|
115
|
+
# belongs to rekordbox's XML export, not to this column.
|
|
114
116
|
content = make_djmd_content_item(ID="1")
|
|
115
117
|
content.Rating = 0
|
|
116
118
|
handler = FIELD_HANDLERS["Rating"]
|
|
@@ -118,7 +120,7 @@ class TestRatingField:
|
|
|
118
120
|
new_value = handler.compute_new_value(handler.current_value(content), args)
|
|
119
121
|
assert new_value == "4"
|
|
120
122
|
handler.apply(db=MagicMock(), content=content, new_value=new_value)
|
|
121
|
-
assert content.Rating ==
|
|
123
|
+
assert content.Rating == 4
|
|
122
124
|
|
|
123
125
|
|
|
124
126
|
#: Every relational field, as (edit field, foreign key column, relation kind).
|
|
@@ -110,14 +110,14 @@ def test_album_create_new_has_no_album_artist(fresh_db):
|
|
|
110
110
|
db.close()
|
|
111
111
|
|
|
112
112
|
|
|
113
|
-
def
|
|
113
|
+
def test_rating_written_as_the_star_count(fresh_db):
|
|
114
114
|
db = Rekordbox6Database(str(fresh_db))
|
|
115
115
|
assert db.session is not None
|
|
116
116
|
edit(
|
|
117
117
|
db, EditRequest(exact_title=["Apple Alpha"], field="Rating", replace_value="4")
|
|
118
118
|
)
|
|
119
119
|
moved = db.session.query(tb.DjmdContent).filter_by(Title="Apple Alpha").one()
|
|
120
|
-
assert moved.Rating ==
|
|
120
|
+
assert moved.Rating == 4
|
|
121
121
|
db.close()
|
|
122
122
|
|
|
123
123
|
|
|
@@ -86,6 +86,25 @@ def wide_console(monkeypatch):
|
|
|
86
86
|
)
|
|
87
87
|
|
|
88
88
|
|
|
89
|
+
@pytest.fixture
|
|
90
|
+
def terminal_console(monkeypatch):
|
|
91
|
+
"""Swap the module console for one the width of an ordinary terminal.
|
|
92
|
+
|
|
93
|
+
`wide_console` exists to keep substring assertions stable, but a preview
|
|
94
|
+
that only renders at 400 columns is not a preview anyone sees.
|
|
95
|
+
"""
|
|
96
|
+
monkeypatch.setattr(
|
|
97
|
+
display,
|
|
98
|
+
"console",
|
|
99
|
+
Console(
|
|
100
|
+
record=True,
|
|
101
|
+
width=100,
|
|
102
|
+
theme=display.RBE_THEME,
|
|
103
|
+
highlighter=display.RbeHighlighter(),
|
|
104
|
+
),
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
|
|
89
108
|
class TestPrintTrackInfo:
|
|
90
109
|
"""Test print_track_info function."""
|
|
91
110
|
|
|
@@ -165,6 +184,32 @@ class TestPrintTrackInfo:
|
|
|
165
184
|
assert "Old Name" in captured.out
|
|
166
185
|
assert "New Name" in captured.out
|
|
167
186
|
|
|
187
|
+
def test_change_preview_shows_the_new_path_at_terminal_width(
|
|
188
|
+
self, capsys, terminal_console, make_track
|
|
189
|
+
):
|
|
190
|
+
"""A path rewrite is the case this preview exists for, and paths are long.
|
|
191
|
+
|
|
192
|
+
Old and new share one no-wrap ellipsis cell, so the old value alone
|
|
193
|
+
fills the column and the new value is truncated away entirely. A bulk
|
|
194
|
+
repoint is then unverifiable from --dry-run.
|
|
195
|
+
"""
|
|
196
|
+
old = (
|
|
197
|
+
"A:/Music/Any Time, Any Place - Janet Jackson (1994) "
|
|
198
|
+
"{V25H-38435} [FLAC-CD]/03 Janet Jackson - Any Time, Any Place.flac"
|
|
199
|
+
)
|
|
200
|
+
new = old.replace("A:/Music/", "A:/rbe_migration_copy/Music/")
|
|
201
|
+
|
|
202
|
+
print_track_info(
|
|
203
|
+
[make_track(FolderPath=old)],
|
|
204
|
+
changed_field=PrintableField.FolderPath,
|
|
205
|
+
new_values=[new],
|
|
206
|
+
)
|
|
207
|
+
|
|
208
|
+
# The cell wraps, so the path is split across lines; join it back up.
|
|
209
|
+
rendered = "".join(capsys.readouterr().out.split())
|
|
210
|
+
assert "rbe_migration_copy/Music/" in rendered
|
|
211
|
+
assert "A:/Music/AnyTime" in rendered
|
|
212
|
+
|
|
168
213
|
def test_change_preview_requires_both_args(self, make_track):
|
|
169
214
|
"""Providing only one of changed_field/new_values raises ValueError."""
|
|
170
215
|
mock_content = make_track()
|
|
@@ -250,7 +295,7 @@ def test_comment_column_renders(capsys, wide_console, make_track):
|
|
|
250
295
|
|
|
251
296
|
def test_rating_renders_as_stars(capsys, wide_console, make_track):
|
|
252
297
|
track = make_track(ID="1")
|
|
253
|
-
track.Rating =
|
|
298
|
+
track.Rating = 4
|
|
254
299
|
print_track_info([track], print_columns=[PrintableField.Rating])
|
|
255
300
|
rendered = capsys.readouterr().out
|
|
256
301
|
assert "4" in rendered
|
|
@@ -14,8 +14,6 @@ from rekordbox_edit.utils import (
|
|
|
14
14
|
parse_star_rating,
|
|
15
15
|
get_file_type_for_probe,
|
|
16
16
|
probe_matches_file_type,
|
|
17
|
-
star_rating_to_stored,
|
|
18
|
-
stored_to_star_rating,
|
|
19
17
|
)
|
|
20
18
|
|
|
21
19
|
|
|
@@ -494,12 +492,6 @@ class TestGetFileTypeForProbe:
|
|
|
494
492
|
assert get_file_type_for_probe(codec, container) == expected
|
|
495
493
|
|
|
496
494
|
|
|
497
|
-
@pytest.mark.parametrize("stars,stored", [(0, 0), (1, 51), (3, 153), (5, 255)])
|
|
498
|
-
def test_star_stored_roundtrip(stars, stored):
|
|
499
|
-
assert star_rating_to_stored(stars) == stored
|
|
500
|
-
assert stored_to_star_rating(stored) == stars
|
|
501
|
-
|
|
502
|
-
|
|
503
495
|
@pytest.mark.parametrize("value,expected", [("0", 0), ("5", 5), (3, 3)])
|
|
504
496
|
def test_parse_star_rating_valid(value, expected):
|
|
505
497
|
assert parse_star_rating(value) == expected
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.github/actions/commit-check/action.yml
RENAMED
|
File without changes
|
{rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.github/actions/commitizen-bump/action.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.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
|
|
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
|