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.
Files changed (384) hide show
  1. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/CHANGELOG.md +14 -3
  2. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/PKG-INFO +1 -1
  3. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/pyproject.toml +1 -1
  4. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/api/_field_handlers.py +4 -5
  5. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/display.py +18 -6
  6. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/utils.py +3 -11
  7. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/api/test_field_handlers.py +5 -3
  8. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/test_edit_fields.py +2 -2
  9. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/test_display.py +46 -1
  10. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/test_utils.py +0 -8
  11. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/uv.lock +1 -1
  12. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.agent-style/RULES.md +0 -0
  13. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.agent-style/claude-code.md +0 -0
  14. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.github/actions/build-release-notes/action.yml +0 -0
  15. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.github/actions/build-release-notes/build_release_notes.py +0 -0
  16. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.github/actions/commit-check/action.yml +0 -0
  17. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.github/actions/commitizen-bump/action.yml +0 -0
  18. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.github/actions/commitizen-bump/commitizen-bump.sh +0 -0
  19. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.github/actions/e2e/action.yml +0 -0
  20. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.github/actions/install/action.yml +0 -0
  21. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.github/actions/lint/action.yml +0 -0
  22. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.github/actions/test/action.yml +0 -0
  23. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.github/workflows/cd.yml +0 -0
  24. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.github/workflows/ci.yml +0 -0
  25. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.github/workflows/publish.yml +0 -0
  26. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.github/workflows/release.yml +0 -0
  27. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.gitignore +0 -0
  28. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.pre-commit-config.yaml +0 -0
  29. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.python-version +0 -0
  30. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/.readthedocs.yaml +0 -0
  31. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/AGENTS.md +0 -0
  32. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/CLAUDE.md +0 -0
  33. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/CONTRIBUTING.md +0 -0
  34. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/LICENSE +0 -0
  35. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/Makefile +0 -0
  36. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/README.md +0 -0
  37. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/codecov.yml +0 -0
  38. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/docker-compose.yml +0 -0
  39. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/docs/api.md +0 -0
  40. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/docs/commands/convert.md +0 -0
  41. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/docs/commands/edit.md +0 -0
  42. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/docs/commands/import.md +0 -0
  43. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/docs/commands/remove.md +0 -0
  44. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/docs/commands/search.md +0 -0
  45. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/docs/faqs.md +0 -0
  46. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/docs/filtering.md +0 -0
  47. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/docs/index.md +0 -0
  48. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/docs/stylesheets/extra.css +0 -0
  49. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/mkdocs.yml +0 -0
  50. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/__init__.py +0 -0
  51. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/_tag_fields.py +0 -0
  52. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/api/__init__.py +0 -0
  53. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/api/_anlz.py +0 -0
  54. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/api/_convert.py +0 -0
  55. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/api/_edit.py +0 -0
  56. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/api/_import.py +0 -0
  57. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/api/_relations.py +0 -0
  58. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/api/_remove.py +0 -0
  59. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/api/_search.py +0 -0
  60. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/api/_utils.py +0 -0
  61. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/cli/__init__.py +0 -0
  62. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/cli/_click.py +0 -0
  63. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/cli/_progress.py +0 -0
  64. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/cli/_utils.py +0 -0
  65. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/cli/convert.py +0 -0
  66. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/cli/edit.py +0 -0
  67. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/cli/import_.py +0 -0
  68. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/cli/main.py +0 -0
  69. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/cli/remove.py +0 -0
  70. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/cli/search.py +0 -0
  71. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/errors.py +0 -0
  72. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/locking.py +0 -0
  73. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/logger.py +0 -0
  74. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/models.py +0 -0
  75. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/query.py +0 -0
  76. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/rekordbox_edit/tags.py +0 -0
  77. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/renovate.json5 +0 -0
  78. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/README.md +0 -0
  79. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/beets-plugin-integration/beets-plugin-integration.md +0 -0
  80. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/beets-plugin-integration/decisions/converted-original-disposition.md +0 -0
  81. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/beets-plugin-integration/evidence/convert-repoint.txt +0 -0
  82. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/beets-plugin-integration/evidence/event-order.txt +0 -0
  83. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/beets-plugin-integration/evidence/file-level-encode.txt +0 -0
  84. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/beets-plugin-integration/evidence/id-stability.txt +0 -0
  85. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/beets-plugin-integration/evidence/media-field-roundtrip.txt +0 -0
  86. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/beets-plugin-integration/scripts/convert_repoint.py +0 -0
  87. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/beets-plugin-integration/scripts/event_probe.py +0 -0
  88. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/beets-plugin-integration/scripts/file_level_encode.py +0 -0
  89. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/beets-plugin-integration/scripts/id_stability.py +0 -0
  90. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/beets-plugin-integration/scripts/media_field_roundtrip.py +0 -0
  91. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/convert-export-impact-test-plan.md +0 -0
  92. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/convert-export-impact.md +0 -0
  93. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/export-r1-00-baseline.json +0 -0
  94. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/export-r1-10-postconvert.json +0 -0
  95. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/export-r1-20-postexport.json +0 -0
  96. {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
  97. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/export-r2-00-baseline.json +0 -0
  98. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/export-r2b-00-baseline.json +0 -0
  99. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/export-r2b-10-deviceedit.json +0 -0
  100. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/export-r2b-30-postsync.json +0 -0
  101. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/export-r3-00-baseline.json +0 -0
  102. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/export-r3-10-deviceedit.json +0 -0
  103. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/evidence/export-r3-40-resync.json +0 -0
  104. {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
  105. {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
  106. {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
  107. {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
  108. {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
  109. {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
  110. {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
  111. {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
  112. {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
  113. {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
  114. {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
  115. {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
  116. {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
  117. {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
  118. {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
  119. {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
  120. {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
  121. {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
  122. {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
  123. {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
  124. {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
  125. {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
  126. {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
  127. {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
  128. {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
  129. {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
  130. {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
  131. {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
  132. {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
  133. {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
  134. {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
  135. {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
  136. {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
  137. {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
  138. {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
  139. {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
  140. {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
  141. {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
  142. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/scripts/export_diff.py +0 -0
  143. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-export-impact/scripts/export_snapshot.py +0 -0
  144. {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
  145. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/convert-anlz-cue-impact-experiment2.md +0 -0
  146. {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
  147. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/convert-anlz-cue-impact-verification.md +0 -0
  148. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/convert-anlz-cue-impact.md +0 -0
  149. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/decisions/convert-and-reanalysis-impact.md +0 -0
  150. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/decisions/convert-helper-structure.md +0 -0
  151. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/01-inventory.txt +0 -0
  152. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/02-cue-schema.txt +0 -0
  153. {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
  154. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/04-anlz-deep.txt +0 -0
  155. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/05-census.txt +0 -0
  156. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/06-content-columns.txt +0 -0
  157. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/07-analysis-flags.txt +0 -0
  158. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/exp2-00-pvb2-origin.txt +0 -0
  159. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-00-zero.json +0 -0
  160. {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
  161. {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
  162. {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
  163. {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
  164. {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
  165. {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
  166. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-high-01.json +0 -0
  167. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-high-02.json +0 -0
  168. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-high-03.json +0 -0
  169. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-high-04.json +0 -0
  170. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-high-05.json +0 -0
  171. {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
  172. {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
  173. {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
  174. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-normal-01.json +0 -0
  175. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-normal-02.json +0 -0
  176. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-normal-03.json +0 -0
  177. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-normal-04.json +0 -0
  178. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-normal-05.json +0 -0
  179. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-174954387-normal-06.json +0 -0
  180. {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
  181. {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
  182. {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
  183. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-205157376-00-baseline.json +0 -0
  184. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-205157376-aiff-postanalyze.json +0 -0
  185. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-205157376-aiff-postconv.json +0 -0
  186. {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
  187. {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
  188. {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
  189. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-205795680-00-baseline.json +0 -0
  190. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-205795680-aiff-postanalyze.json +0 -0
  191. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-205795680-aiff-postconv.json +0 -0
  192. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-205795680-aiff-postopen.json +0 -0
  193. {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
  194. {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
  195. {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
  196. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-205795680-flac-postconv.json +0 -0
  197. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-205795680-mp3-postanalyze.json +0 -0
  198. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-205795680-mp3-postconv.json +0 -0
  199. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-230928195-00-baseline.json +0 -0
  200. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-230928195-mp3-locked.json +0 -0
  201. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-230928195-mp3-postconv.json +0 -0
  202. {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
  203. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-230928195-postlock.json +0 -0
  204. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-230928195-prelock.json +0 -0
  205. {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
  206. {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
  207. {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
  208. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-00-zero.json +0 -0
  209. {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
  210. {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
  211. {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
  212. {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
  213. {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
  214. {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
  215. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-high-01.json +0 -0
  216. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-high-02.json +0 -0
  217. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-high-03.json +0 -0
  218. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-high-04.json +0 -0
  219. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-high-05.json +0 -0
  220. {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
  221. {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
  222. {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
  223. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-normal-01.json +0 -0
  224. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-normal-02.json +0 -0
  225. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-normal-03.json +0 -0
  226. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-normal-04.json +0 -0
  227. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-normal-05.json +0 -0
  228. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-normal-06.json +0 -0
  229. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-27790898-normal-locked.json +0 -0
  230. {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
  231. {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
  232. {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
  233. {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
  234. {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
  235. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-7691309-pvb2-baseline.json +0 -0
  236. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-7691309-pvb2-postanalyze.json +0 -0
  237. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/evidence/subject-7691309-pvb2-postconv.json +0 -0
  238. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/scripts/README.md +0 -0
  239. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/scripts/analysis_flags.py +0 -0
  240. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/scripts/anlz_census.py +0 -0
  241. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/scripts/anlz_deep.py +0 -0
  242. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/scripts/content_columns.py +0 -0
  243. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/scripts/cue_fields_by_format.py +0 -0
  244. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/scripts/cue_schema.py +0 -0
  245. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/scripts/grid_drift.py +0 -0
  246. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/scripts/inventory.py +0 -0
  247. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/scripts/pvb2_origin.py +0 -0
  248. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/scripts/reset_fresh_to_zero.py +0 -0
  249. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/scripts/restore_fixtures.sh +0 -0
  250. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-reanalysis-impact/scripts/row_snapshot.py +0 -0
  251. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-thread-scaling/convert-thread-scaling.md +0 -0
  252. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-thread-scaling/evidence/thread-scaling.txt +0 -0
  253. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-thread-scaling/scripts/_sources.py +0 -0
  254. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-thread-scaling/scripts/format_scaling.py +0 -0
  255. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-thread-scaling/scripts/shipped_path_scaling.py +0 -0
  256. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/convert-thread-scaling/scripts/write_cost.py +0 -0
  257. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/database-concurrency/database-concurrency.md +0 -0
  258. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/database-concurrency/evidence/plan-apply-probes.txt +0 -0
  259. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/database-concurrency/evidence/usn-spikes.txt +0 -0
  260. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/database-concurrency/plan-apply-window.md +0 -0
  261. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/database-concurrency/scripts/block_reservation.py +0 -0
  262. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/database-concurrency/scripts/concurrent_increment.py +0 -0
  263. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/database-concurrency/scripts/identity_probe.py +0 -0
  264. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/database-concurrency/scripts/membership_probe.py +0 -0
  265. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/database-concurrency/scripts/snapshot_probe.py +0 -0
  266. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/database-concurrency/scripts/wal_snapshot.py +0 -0
  267. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/database-concurrency/usn-maintenance.md +0 -0
  268. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/edit-relational-fields/decisions/edit-field-handlers.md +0 -0
  269. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/edit-relational-fields/edit-relational-fields-test-plan.md +0 -0
  270. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/edit-relational-fields/edit-relational-fields.md +0 -0
  271. {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
  272. {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
  273. {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
  274. {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
  275. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/edit-relational-fields/evidence/rel-145166719-e0-census.json +0 -0
  276. {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
  277. {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
  278. {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
  279. {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
  280. {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
  281. {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
  282. {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
  283. {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
  284. {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
  285. {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
  286. {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
  287. {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
  288. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/edit-relational-fields/scripts/relational_diff.py +0 -0
  289. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/edit-relational-fields/scripts/relational_snapshot.py +0 -0
  290. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/file-types/README.md +0 -0
  291. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/file-types/decisions/unknown-file-types.md +0 -0
  292. {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
  293. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/import-track-row-shape/evidence/column-coverage-gig.json +0 -0
  294. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/import-track-row-shape/evidence/datecreated-source-gig.json +0 -0
  295. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/import-track-row-shape/evidence/filetype-searchstr-gig.json +0 -0
  296. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/import-track-row-shape/evidence/filetype-searchstr-local.json +0 -0
  297. {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
  298. {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
  299. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/import-track-row-shape/import-track-row-shape.md +0 -0
  300. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/import-track-row-shape/scripts/column_coverage.py +0 -0
  301. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/import-track-row-shape/scripts/datecreated_source.py +0 -0
  302. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/import-track-row-shape/scripts/filetype_and_searchstr.py +0 -0
  303. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/import-track-row-shape/scripts/import_row_shape.py +0 -0
  304. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/import-track-row-shape/scripts/tag_key_mapping.py +0 -0
  305. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/remove-track-impact/decisions/remove-command-behavior.md +0 -0
  306. {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
  307. {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
  308. {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
  309. {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
  310. {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
  311. {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
  312. {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
  313. {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
  314. {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
  315. {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
  316. {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
  317. {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
  318. {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
  319. {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
  320. {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
  321. {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
  322. {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
  323. {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
  324. {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
  325. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/remove-track-impact/remove-track-impact-test-plan.md +0 -0
  326. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/remove-track-impact/remove-track-impact.md +0 -0
  327. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/remove-track-impact/scripts/build_fixtures.py +0 -0
  328. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/remove-track-impact/scripts/removal_diff.py +0 -0
  329. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/remove-track-impact/scripts/removal_snapshot.py +0 -0
  330. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/remove-track-impact/scripts/restore.sh +0 -0
  331. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/shared/scripts/subject_diff.py +0 -0
  332. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/research/shared/scripts/subject_snapshot.py +0 -0
  333. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/ruff.toml +0 -0
  334. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/__init__.py +0 -0
  335. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/anlz_helpers.py +0 -0
  336. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/api/__init__.py +0 -0
  337. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/api/conftest.py +0 -0
  338. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/api/test_anlz.py +0 -0
  339. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/api/test_convert.py +0 -0
  340. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/api/test_edit.py +0 -0
  341. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/api/test_import.py +0 -0
  342. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/api/test_package.py +0 -0
  343. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/api/test_relations.py +0 -0
  344. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/api/test_remove.py +0 -0
  345. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/api/test_search.py +0 -0
  346. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/api/test_utils.py +0 -0
  347. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/cli/__init__.py +0 -0
  348. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/cli/test_convert.py +0 -0
  349. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/cli/test_edit.py +0 -0
  350. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/cli/test_import.py +0 -0
  351. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/cli/test_locking.py +0 -0
  352. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/cli/test_main.py +0 -0
  353. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/cli/test_progress.py +0 -0
  354. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/cli/test_remove.py +0 -0
  355. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/cli/test_search.py +0 -0
  356. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/cli/test_utils.py +0 -0
  357. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/conftest.py +0 -0
  358. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/Dockerfile +0 -0
  359. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/__init__.py +0 -0
  360. {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
  361. {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
  362. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/__snapshots__/test_journey.ambr +0 -0
  363. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/conftest.py +0 -0
  364. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/fixtures/audio/01-flac-44_1k-16b.flac +0 -0
  365. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/fixtures/audio/02-flac-96k-24b.flac +0 -0
  366. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/fixtures/audio/03-alac-44_1k-16b.m4a +0 -0
  367. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/fixtures/audio/04-alac-48k-24b.m4a +0 -0
  368. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/fixtures/audio/05-aiff-44_1k-16b.aiff +0 -0
  369. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/fixtures/audio/06-wav-96k-24b.wav +0 -0
  370. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/fixtures/audio/07-mp3-44_1k-320cbr.mp3 +0 -0
  371. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/fixtures/audio/08-mp3-44_1k-v0vbr.mp3 +0 -0
  372. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/fixtures/audio/09-aac-44_1k-256kbps.m4a +0 -0
  373. {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
  374. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/fixtures/macos/master.6.8.6.db +0 -0
  375. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/fixtures/windows/master.6.8.6.db +0 -0
  376. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/test_import.py +0 -0
  377. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/test_journey.py +0 -0
  378. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/e2e/test_remove.py +0 -0
  379. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/test_locking.py +0 -0
  380. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/test_logger.py +0 -0
  381. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/test_models.py +0 -0
  382. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/test_query.py +0 -0
  383. {rekordbox_edit-0.13.1.dev2 → rekordbox_edit-0.13.1.dev4}/tests/test_tag_fields.py +0 -0
  384. {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.dev2 (2026-09-08)
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.dev2
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.dev2"
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"
@@ -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 stars * 51. `--match` does not apply."""
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(stored_to_star_rating(stored))
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 = star_rating_to_stored(int(new_value))
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, stored_to_star_rating
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(stored_to_star_rating(track.Rating))
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 is
207
- struck through and the new value is appended.
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], no_wrap=True, overflow="ellipsis", **cfg
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(f"[strike]{old}[/strike] [bold]{new_values[i - 1]}[/bold]")
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 = 153
110
+ content.Rating = 3
111
111
  assert FIELD_HANDLERS["Rating"].current_value(content) == "3"
112
112
 
113
- def test_compute_and_apply_star_to_stored(self, make_djmd_content_item):
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 == 204
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 test_rating_written_as_stored_value(fresh_db):
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 == 204
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 = 204
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
@@ -1274,7 +1274,7 @@ wheels = [
1274
1274
 
1275
1275
  [[package]]
1276
1276
  name = "rekordbox-edit"
1277
- version = "0.13.1.dev2"
1277
+ version = "0.13.1.dev4"
1278
1278
  source = { editable = "." }
1279
1279
  dependencies = [
1280
1280
  { name = "click" },