rekordbox-edit 0.4.0.dev46__tar.gz → 0.5.0.dev1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. rekordbox_edit-0.5.0.dev1/.github/actions/build-release-notes/action.yml +88 -0
  2. rekordbox_edit-0.5.0.dev1/.github/workflows/cd.yml +113 -0
  3. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/.github/workflows/ci.yml +2 -2
  4. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/.github/workflows/publish.yml +3 -3
  5. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/.github/workflows/release.yml +16 -8
  6. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/.pre-commit-config.yaml +1 -1
  7. rekordbox_edit-0.5.0.dev1/.python-version +1 -0
  8. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/CHANGELOG.md +42 -3
  9. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/PKG-INFO +2 -2
  10. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/pyproject.toml +3 -3
  11. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/rekordbox_edit/__init__.py +4 -0
  12. rekordbox_edit-0.5.0.dev1/rekordbox_edit/api/__init__.py +11 -0
  13. rekordbox_edit-0.5.0.dev1/rekordbox_edit/api/_utils.py +18 -0
  14. rekordbox_edit-0.5.0.dev1/rekordbox_edit/api/convert.py +368 -0
  15. rekordbox_edit-0.5.0.dev1/rekordbox_edit/api/edit.py +88 -0
  16. rekordbox_edit-0.5.0.dev1/rekordbox_edit/api/search.py +10 -0
  17. rekordbox_edit-0.5.0.dev1/rekordbox_edit/cli/__init__.py +1 -0
  18. rekordbox_edit-0.5.0.dev1/rekordbox_edit/cli/_utils.py +102 -0
  19. rekordbox_edit-0.5.0.dev1/rekordbox_edit/cli/convert.py +110 -0
  20. rekordbox_edit-0.5.0.dev1/rekordbox_edit/cli/edit.py +78 -0
  21. rekordbox_edit-0.4.0.dev46/rekordbox_edit/cli.py → rekordbox_edit-0.5.0.dev1/rekordbox_edit/cli/main.py +6 -9
  22. rekordbox_edit-0.5.0.dev1/rekordbox_edit/cli/search.py +41 -0
  23. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/rekordbox_edit/display.py +14 -12
  24. rekordbox_edit-0.4.0.dev46/rekordbox_edit/args.py → rekordbox_edit-0.5.0.dev1/rekordbox_edit/models.py +44 -33
  25. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/rekordbox_edit/query.py +1 -1
  26. rekordbox_edit-0.5.0.dev1/tests/api/__init__.py +0 -0
  27. rekordbox_edit-0.5.0.dev1/tests/api/test_convert.py +755 -0
  28. rekordbox_edit-0.5.0.dev1/tests/api/test_edit.py +98 -0
  29. rekordbox_edit-0.5.0.dev1/tests/api/test_search.py +40 -0
  30. rekordbox_edit-0.5.0.dev1/tests/api/test_utils.py +23 -0
  31. rekordbox_edit-0.5.0.dev1/tests/cli/__init__.py +0 -0
  32. rekordbox_edit-0.5.0.dev1/tests/cli/test_convert.py +172 -0
  33. rekordbox_edit-0.5.0.dev1/tests/cli/test_edit.py +111 -0
  34. rekordbox_edit-0.5.0.dev1/tests/cli/test_main.py +38 -0
  35. rekordbox_edit-0.5.0.dev1/tests/cli/test_search.py +86 -0
  36. rekordbox_edit-0.5.0.dev1/tests/cli/test_utils.py +218 -0
  37. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/tests/conftest.py +26 -0
  38. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/tests/test_display.py +19 -21
  39. rekordbox_edit-0.5.0.dev1/tests/test_models.py +149 -0
  40. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/tests/test_query.py +1 -1
  41. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/uv.lock +3 -203
  42. rekordbox_edit-0.4.0.dev46/.github/workflows/cd.yml +0 -83
  43. rekordbox_edit-0.4.0.dev46/rekordbox_edit/commands/__init__.py +0 -1
  44. rekordbox_edit-0.4.0.dev46/rekordbox_edit/commands/convert.py +0 -526
  45. rekordbox_edit-0.4.0.dev46/rekordbox_edit/commands/edit.py +0 -153
  46. rekordbox_edit-0.4.0.dev46/rekordbox_edit/commands/search.py +0 -57
  47. rekordbox_edit-0.4.0.dev46/tests/commands/__init__.py +0 -1
  48. rekordbox_edit-0.4.0.dev46/tests/commands/test_convert.py +0 -2158
  49. rekordbox_edit-0.4.0.dev46/tests/commands/test_edit.py +0 -564
  50. rekordbox_edit-0.4.0.dev46/tests/commands/test_search.py +0 -249
  51. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/.agent-style/RULES.md +0 -0
  52. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/.agent-style/claude-code.md +0 -0
  53. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/.github/actions/commitizen-bump/action.yml +0 -0
  54. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/.github/actions/commitizen-bump/commitizen-bump.sh +0 -0
  55. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/.github/actions/install/action.yml +0 -0
  56. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/.github/actions/lint/action.yml +0 -0
  57. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/.github/actions/test/action.yml +0 -0
  58. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/.gitignore +0 -0
  59. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/AGENTS.md +0 -0
  60. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/CLAUDE.md +0 -0
  61. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/CONTRIBUTING.md +0 -0
  62. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/LICENSE +0 -0
  63. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/Makefile +0 -0
  64. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/README.md +0 -0
  65. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/codecov.yml +0 -0
  66. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/rekordbox_edit/_click.py +0 -0
  67. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/rekordbox_edit/logger.py +0 -0
  68. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/rekordbox_edit/utils.py +0 -0
  69. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/renovate.json5 +0 -0
  70. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/ruff.toml +0 -0
  71. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/tests/__init__.py +0 -0
  72. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/tests/test_logger.py +0 -0
  73. {rekordbox_edit-0.4.0.dev46 → rekordbox_edit-0.5.0.dev1}/tests/test_utils.py +0 -0
@@ -0,0 +1,88 @@
1
+ name: "Build Release Notes"
2
+ description: "Generate categorized release notes from conventional commits between two tags"
3
+ inputs:
4
+ from_tag:
5
+ description: "Tag to start the changelog range from (exclusive)"
6
+ required: true
7
+ to_tag:
8
+ description: "Tag to end the changelog range at (inclusive)"
9
+ required: true
10
+ github_token:
11
+ description: "GitHub token for API access"
12
+ required: true
13
+ runs:
14
+ using: "composite"
15
+ steps:
16
+ - uses: mikepenz/release-changelog-builder-action@348e88fab4c37338b1e803ceb2d4a7a5db6c0833 # v6.2.2
17
+ with:
18
+ outputFile: release-notes.md
19
+ configurationJson: |
20
+ {
21
+ "categories": [
22
+ {
23
+ "title": "## Breaking Changes",
24
+ "labels": [],
25
+ "rules": [
26
+ {
27
+ "pattern": "^(\\w+)?(\\(.*\\))?!:",
28
+ "on_property": "title"
29
+ }
30
+ ]
31
+ },
32
+ {
33
+ "title": "## Features",
34
+ "labels": [],
35
+ "rules": [
36
+ {
37
+ "pattern": "^feat(\\(.*\\))?:",
38
+ "on_property": "title"
39
+ }
40
+ ]
41
+ },
42
+ {
43
+ "title": "## Fixes",
44
+ "labels": [],
45
+ "rules": [
46
+ {
47
+ "pattern": "^fix(?!\\(deps\\))(\\(.*\\))?:",
48
+ "on_property": "title"
49
+ }
50
+ ]
51
+ },
52
+ {
53
+ "title": "## Chores",
54
+ "labels": [],
55
+ "rules": [
56
+ {
57
+ "pattern": "^(chore(?!\\(deps\\))|refactor|ci|docs|style|perf|test|build)(\\(.*\\))?:",
58
+ "on_property": "title"
59
+ }
60
+ ]
61
+ },
62
+ {
63
+ "title": "## Dependency Updates",
64
+ "labels": [],
65
+ "rules": [
66
+ {
67
+ "pattern": "^(chore|fix)\\(deps\\):",
68
+ "on_property": "title"
69
+ }
70
+ ]
71
+ }
72
+ ],
73
+ "exhaustive": true,
74
+ "sort": {
75
+ "order": "ASC",
76
+ "on_property": "title"
77
+ },
78
+ "template": "#{{CHANGELOG}}\n\n## Uncategorized\n#{{UNCATEGORIZED}}",
79
+ "pr_template": "- #{{TITLE}} (##{{NUMBER}} by @#{{AUTHOR}})",
80
+ "empty_template": "- No changes",
81
+ "tag_resolver": {
82
+ "method": "sort"
83
+ }
84
+ }
85
+ fromTag: ${{ inputs.from_tag }}
86
+ toTag: ${{ inputs.to_tag }}
87
+ env:
88
+ GITHUB_TOKEN: ${{ inputs.github_token }}
@@ -0,0 +1,113 @@
1
+ name: Canary Continuous Deployment
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ paths-ignore:
7
+ - "docs/**"
8
+ - ".github/**"
9
+ - ".resources/**"
10
+ - ".agent-style"
11
+ - "logos/**"
12
+ - "**/*.md"
13
+ - ".pre-commit-config.yaml"
14
+ - ".readthedocs.yaml"
15
+ - "renovate.json5"
16
+ workflow_dispatch:
17
+
18
+ jobs:
19
+ pre_job:
20
+ runs-on: ubuntu-latest
21
+ permissions:
22
+ actions: write
23
+ outputs:
24
+ should_skip: ${{ steps.skip_check.outputs.should_skip }}
25
+ steps:
26
+ - id: skip_check
27
+ uses: fkirc/skip-duplicate-actions@v5
28
+ with:
29
+ concurrent_skipping: "same_content_newer"
30
+ cancel_others: "true"
31
+
32
+ ci:
33
+ needs: pre_job
34
+ if: needs.pre_job.outputs.should_skip != 'true'
35
+ uses: ./.github/workflows/ci.yml
36
+ secrets: inherit
37
+
38
+ canary-release:
39
+ name: 📦 Canary Release
40
+ needs: [pre_job, ci]
41
+ if: "needs.pre_job.outputs.should_skip != 'true' && !startsWith(github.event.head_commit.message, 'bump:')"
42
+ runs-on: ubuntu-latest
43
+ environment: canary-publish
44
+ permissions:
45
+ contents: write
46
+ id-token: write
47
+ env:
48
+ PYTHON: "3.14"
49
+
50
+ steps:
51
+ - name: Check out
52
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
53
+ with:
54
+ fetch-depth: 0
55
+
56
+ - name: Setup UV
57
+ uses: ./.github/actions/install
58
+
59
+ - name: Find last stable release
60
+ id: last_stable
61
+ run: |
62
+ echo "tag=$(gh release list --exclude-pre-releases --limit 1 --json tagName -q '.[0].tagName')" >> $GITHUB_OUTPUT
63
+ env:
64
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
65
+
66
+ - name: Compute canary increment
67
+ id: canary_increment
68
+ run: |
69
+ count=$(git tag -l "canary-${{ steps.last_stable.outputs.tag }}-dev*" | wc -l | tr -d '[:space:]')
70
+ echo "increment=$((count + 1))" >> $GITHUB_OUTPUT
71
+
72
+ - name: Bump to dev version
73
+ id: bump
74
+ uses: ./.github/actions/commitizen-bump
75
+ with:
76
+ devrelease: ${{ steps.canary_increment.outputs.increment }}
77
+ commit: false
78
+ push: false
79
+ changelog: false
80
+
81
+ - name: Get version
82
+ id: version
83
+ run: echo "version=$(python -c "import tomllib; print(tomllib.load(open('pyproject.toml','rb'))['project']['version'])")" >> $GITHUB_OUTPUT
84
+
85
+ - name: Build distribution
86
+ run: |
87
+ uv build
88
+
89
+ - name: Create and push tag
90
+ run: |
91
+ git tag canary-${{ steps.last_stable.outputs.tag }}-dev${{ steps.canary_increment.outputs.increment }}
92
+ git push origin canary-${{ steps.last_stable.outputs.tag }}-dev${{ steps.canary_increment.outputs.increment }}
93
+
94
+ - name: Publish to PyPI
95
+ uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # release/v1
96
+ with:
97
+ skip-existing: true
98
+
99
+ - name: Build release notes
100
+ uses: ./.github/actions/build-release-notes
101
+ with:
102
+ from_tag: ${{ steps.last_stable.outputs.tag }}
103
+ to_tag: canary-${{ steps.last_stable.outputs.tag }}-dev${{ steps.canary_increment.outputs.increment }}
104
+ github_token: ${{ secrets.GITHUB_TOKEN }}
105
+
106
+ - name: Create GitHub Pre-Release
107
+ uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda # v3
108
+ with:
109
+ token: ${{ secrets.GITHUB_TOKEN }}
110
+ tag_name: canary-${{ steps.last_stable.outputs.tag }}-dev${{ steps.canary_increment.outputs.increment }}
111
+ name: v${{ steps.version.outputs.version }}
112
+ prerelease: true
113
+ body_path: release-notes.md
@@ -37,7 +37,7 @@ jobs:
37
37
  needs: code-change
38
38
  if: ${{ needs.code-change.outputs.should_skip != 'true' && !fromJSON(needs.code-change.outputs.paths_result || '{}').code.should_skip }}
39
39
  env:
40
- PYTHON: "3.13"
40
+ PYTHON: "3.14"
41
41
  steps:
42
42
  - name: Checkout code
43
43
  uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
@@ -53,7 +53,7 @@ jobs:
53
53
  fail-fast: false
54
54
  matrix:
55
55
  os: ["ubuntu-latest", "windows-latest", "macos-latest"]
56
- python-version: ["3.10", "3.14"] # oldest and latest
56
+ python-version: ["3.11", "3.14"] # oldest and latest
57
57
  runs-on: ${{ matrix.os }}
58
58
  env:
59
59
  OS: ${{ matrix.os }}
@@ -21,7 +21,7 @@ jobs:
21
21
  - name: Build distribution
22
22
  run: |
23
23
  uv build
24
- - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
24
+ - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
25
25
  with:
26
26
  name: dist
27
27
  path: dist/
@@ -34,7 +34,7 @@ jobs:
34
34
  permissions:
35
35
  id-token: write
36
36
  steps:
37
- - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
37
+ - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
38
38
  with:
39
39
  name: dist
40
40
  path: dist/
@@ -51,7 +51,7 @@ jobs:
51
51
  permissions:
52
52
  id-token: write
53
53
  steps:
54
- - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
54
+ - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
55
55
  with:
56
56
  pattern: dist
57
57
  path: dist
@@ -1,4 +1,4 @@
1
- name: Verion Bump and Create a Release
1
+ name: Version Bump and Create a Release
2
2
 
3
3
  on:
4
4
  workflow_dispatch:
@@ -23,7 +23,7 @@ jobs:
23
23
  fetch-depth: 0
24
24
 
25
25
  - name: Import GPG key
26
- uses: crazy-max/ghaction-import-gpg@e89d40939c28e39f97cf32126055eeae86ba74ec # v6
26
+ uses: crazy-max/ghaction-import-gpg@2dc316deee8e90f13e1a351ab510b4d5bc0c82cd # v7
27
27
  with:
28
28
  gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
29
29
  passphrase: ${{ secrets.GPG_PASSPHRASE }}
@@ -32,17 +32,25 @@ jobs:
32
32
  git_tag_gpgsign: true
33
33
  git_push_gpgsign: false
34
34
 
35
+ - name: Remove canary dev tags
36
+ run: git tag -l '*dev*' | xargs --no-run-if-empty git tag -d
37
+
35
38
  - name: Create bump and changelog
36
39
  uses: ./.github/actions/commitizen-bump
37
40
  with:
38
41
  github_token: ${{ secrets.WORKFLOW_TOKEN }}
39
- changelog_increment_filename: body.md
40
42
  gpg_sign: true
41
43
 
44
+ - name: Build release notes
45
+ uses: ./.github/actions/build-release-notes
46
+ with:
47
+ from_tag: "v${{ env.PREVIOUS_REVISION }}"
48
+ to_tag: "v${{ env.REVISION }}"
49
+ github_token: ${{ secrets.GITHUB_TOKEN }}
50
+
42
51
  - name: Release
43
- uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # v1
52
+ uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda # v3
44
53
  with:
45
- body_path: "body.md"
46
- tag_name: ${{ env.REVISION }}
47
- env:
48
- GITHUB_TOKEN: ${{ secrets.WORKFLOW_TOKEN }}
54
+ token: ${{ secrets.WORKFLOW_TOKEN }}
55
+ body_path: release-notes.md
56
+ tag_name: "v${{ env.REVISION }}"
@@ -28,7 +28,7 @@ repos:
28
28
  files: pyproject\.toml$
29
29
  pass_filenames: false
30
30
  - repo: https://github.com/astral-sh/ruff-pre-commit
31
- rev: v0.15.15
31
+ rev: v0.15.16
32
32
  hooks:
33
33
  - id: ruff-check
34
34
  args: [--fix]
@@ -0,0 +1 @@
1
+ 3.14
@@ -1,6 +1,45 @@
1
- ## v0.4.0.dev46 (2026-06-05)
2
-
3
-
1
+ ## v0.5.0.dev1 (2026-06-05)
2
+
3
+
4
+ - test: add tests to cover new modules
5
+ - test: add back convert tests that got dropped
6
+ - refactor: rename args.py to models.py
7
+ - feat: wire public API and delete legacy commands/
8
+ - - feat: expose public API from rekordbox_edit.__init__
9
+ - chore: remove tests/commands/ (replaced by tests/cli/)
10
+ - chore: remove commands/ and cli.py (replaced by api/ and cli/)
11
+ - fix: resolve typecheck and lint errors in api layer and tests
12
+ - feat: add api/ and cli/ packages
13
+ - - feat: add api/_utils.py with _track_from_content
14
+ - feat: update display.py to accept Track instead of DjmdContent
15
+ - refactor(display): remove redundant setup comments in tests
16
+ - feat: add api/search.py
17
+ - feat: add api/edit.py with plan_edit and edit
18
+ - feat: add api/convert.py with plan_convert and convert
19
+ - fix(convert): remove unused get_file_type_name import
20
+ - feat: add api/__init__.py re-exports
21
+ - feat: add cli/main.py and cli/__init__.py
22
+ - feat: add cli/_utils.py with shared confirmation helpers
23
+ - feat: add cli/search.py
24
+ - feat: add cli/edit.py
25
+ - feat: add cli/convert.py
26
+ - refactor: restructure args.py with Track model and API arg types
27
+ - - refactor: add Track model and EditPlanArgs/ConvertPlanArgs to args.py
28
+ - refactor: correct docstring layer count and strengthen test assertions
29
+ - feat!: drop support for python 3.10
30
+
31
+ ## v0.4.0 (2026-06-05)
32
+
33
+
34
+ - Revert "bump: version 0.3.1 → 0.4.0"
35
+ - This reverts commit c353b3ae6b24793c6911a153b021267a16473d87.
36
+ - ci: improve canary release naming and skip duplicates
37
+ - ci: use same changelog config in both release types
38
+ - ci: fix releases
39
+ - bump: version 0.3.1 → 0.4.0
40
+ - chore(deps): update crazy-max/ghaction-import-gpg action to v7
41
+ - chore(deps): update github artifact actions
42
+ - chore(deps): update softprops/action-gh-release action to v3
4
43
  - chore(deps): update testing
5
44
  - fix(deps): update dependency rich to v15
6
45
  - fix(display): Add min-width to print columns
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rekordbox-edit
3
- Version: 0.4.0.dev46
3
+ Version: 0.5.0.dev1
4
4
  Summary: Tools for managing and modifying a RekordBox library en-masse
5
5
  Project-URL: Homepage, https://github.com/jviall/rekordbox-edit
6
6
  Project-URL: Repository, https://github.com/jviall/rekordbox-edit
@@ -9,7 +9,7 @@ Author-email: James Viall <jamesviall@pm.me>
9
9
  License-Expression: MIT
10
10
  License-File: LICENSE
11
11
  Keywords: bulk,convert,database,dj,edit,music,rekordbox
12
- Requires-Python: >=3.10
12
+ Requires-Python: >=3.11
13
13
  Requires-Dist: click<=9.0.0,>=8.0.0
14
14
  Requires-Dist: ffmpeg-python>=0.2.0
15
15
  Requires-Dist: platformdirs<5.0.0,>=4.3.8
@@ -4,12 +4,12 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "rekordbox-edit"
7
- version = "0.4.0.dev46"
7
+ version = "0.5.0.dev1"
8
8
  description = "Tools for managing and modifying a RekordBox library en-masse"
9
9
  authors = [{ name = "James Viall", email= "jamesviall@pm.me"}]
10
10
  license = "MIT"
11
11
  readme = "README.md"
12
- requires-python = ">=3.10"
12
+ requires-python = ">=3.11"
13
13
  keywords = ["rekordbox", "dj", "music", "database", "bulk", "edit", "convert"]
14
14
  dependencies = [
15
15
  "pyrekordbox==0.4.4",
@@ -59,7 +59,7 @@ output = ".coverage/coverage.json"
59
59
  output = ".coverage/coverage.lcov"
60
60
 
61
61
  [tool.ty.environment]
62
- python-version = "3.10"
62
+ python-version = "3.11"
63
63
 
64
64
  [tool.ty.analysis]
65
65
  allowed-unresolved-imports = ["pyrekordbox", "ffmpeg"]
@@ -3,3 +3,7 @@
3
3
  __version__ = "0.1.0"
4
4
  __author__ = "James Viall"
5
5
  __email__ = "jamesviall@pm.me"
6
+
7
+ from rekordbox_edit.api import convert, edit, plan_convert, plan_edit, search
8
+
9
+ __all__ = ["search", "plan_edit", "edit", "plan_convert", "convert"]
@@ -0,0 +1,11 @@
1
+ """Public API for rekordbox-edit.
2
+
3
+ Usage:
4
+ from rekordbox_edit.api import search, plan_edit, edit, plan_convert, convert
5
+ """
6
+
7
+ from rekordbox_edit.api.convert import convert, plan_convert
8
+ from rekordbox_edit.api.edit import edit, plan_edit
9
+ from rekordbox_edit.api.search import search
10
+
11
+ __all__ = ["search", "plan_edit", "edit", "plan_convert", "convert"]
@@ -0,0 +1,18 @@
1
+ from pyrekordbox.db6 import DjmdContent
2
+
3
+ from rekordbox_edit.models import Track
4
+
5
+
6
+ def _track_from_content(content: DjmdContent) -> Track:
7
+ return Track(
8
+ ID=str(content.ID),
9
+ Title=content.Title,
10
+ ArtistName=content.ArtistName,
11
+ AlbumName=content.AlbumName,
12
+ FileNameL=content.FileNameL,
13
+ FolderPath=content.FolderPath,
14
+ FileType=content.FileType,
15
+ SampleRate=content.SampleRate,
16
+ BitDepth=content.BitDepth,
17
+ BitRate=content.BitRate,
18
+ )