pyrekordbox 0.2.2__py3-none-any.whl → 0.3.0__py3-none-any.whl

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyrekordbox
3
- Version: 0.2.2
3
+ Version: 0.3.0
4
4
  Summary: Inofficial Python package for interacting with the library of Pioneers Rekordbox DJ software.
5
5
  Author-email: Dylan Jones <dylanljones94@gmail.com>
6
6
  License: MIT License
@@ -38,13 +38,13 @@ Classifier: Operating System :: MacOS
38
38
  Classifier: Operating System :: Microsoft :: Windows
39
39
  Classifier: Programming Language :: Python :: 3
40
40
  Classifier: Programming Language :: Python :: 3 :: Only
41
- Classifier: Programming Language :: Python :: 3.7
42
41
  Classifier: Programming Language :: Python :: 3.8
43
42
  Classifier: Programming Language :: Python :: 3.9
44
43
  Classifier: Programming Language :: Python :: 3.10
45
44
  Classifier: Programming Language :: Python :: 3.11
45
+ Classifier: Programming Language :: Python :: 3.12
46
46
  Classifier: Topic :: Multimedia :: Sound/Audio
47
- Requires-Python: >=3.7
47
+ Requires-Python: >=3.8
48
48
  Description-Content-Type: text/markdown
49
49
  License-File: LICENSE
50
50
  Requires-Dist: bidict >=0.21.0
@@ -70,7 +70,7 @@ Requires-Dist: pytest-cov ; extra == 'test'
70
70
  [![Python][python-badge+]][pypi-link]
71
71
  [![Platform][platform-badge]][pypi-link]
72
72
  [![license: MIT][license-badge]][license-link]
73
- [![style: black][black-badge]][black-link]
73
+ [![style: ruff][ruff-badge]][ruff-link]
74
74
 
75
75
  > **Disclaimer**: This project is **not** affiliated with Pioneer Corp. or its related companies
76
76
  in any way and has been written independently! Pyrekordbox is licensed under the
@@ -86,8 +86,8 @@ Pioneers Rekordbox DJ Software. It currently supports
86
86
  Tested Rekordbox versions: ``5.8.6 | 6.5.3 | 6.7.7``
87
87
 
88
88
 
89
- |⚠️| This project is still under development and might contain bugs or have breaking API changes in the future. |
90
- |----|:-------------------------------------------------------------------------------------------------------------|
89
+ |⚠️| This project is still under development and might contain bugs or have breaking API changes in the future. Check the [changelog][CHANGELOG] for recent changes! |
90
+ |----|:----------------------------------------------------------------------------------------------------------------------------------------------------------------|
91
91
 
92
92
 
93
93
  ## 🔧 Installation
@@ -113,7 +113,7 @@ platform-dependent and can not be installed via ``pip``.
113
113
  #### Windows
114
114
 
115
115
  SQLCipher can be used by building the libary against an amalgamation with [sqlcipher3].
116
- For a detailed instruction, see [INSTALLATION].
116
+ For a detailed instruction, see the [installation guide][installation].
117
117
 
118
118
  #### MacOS
119
119
 
@@ -129,7 +129,8 @@ SQLCIPHER_PATH=$(brew info sqlcipher | awk 'NR==4 {print $1; exit}'); C_INCLUDE_
129
129
  SQLCIPHER_PATH=$(brew info sqlcipher | awk 'NR==4 {print $1; exit}'); C_INCLUDE_PATH="$SQLCIPHER_PATH"/include LIBRARY_PATH="$SQLCIPHER_PATH"/lib python setup.py install
130
130
  ```
131
131
  Make sure the `C_INCLUDE` and `LIBRARY_PATH` point to the installed SQLCipher path. It may differ on your machine.
132
- If you are having issues installing [sqlcipher3] on M1 Macs please refer to [INSTALLATION].
132
+ If you are having issues installing [sqlcipher3] on M1 Macs please refer to the
133
+ [installation guide][installation].
133
134
 
134
135
 
135
136
  ## 🚀 Quick-Start
@@ -224,7 +225,7 @@ between two databases.
224
225
  Pyrekordbox can read and write Rekordbox XML databases.
225
226
 
226
227
  ````python
227
- from pyrekordbox.xml import RekordboxXml
228
+ from pyrekordbox.rbxml import RekordboxXml
228
229
 
229
230
  xml = RekordboxXml("database.xml")
230
231
 
@@ -347,17 +348,20 @@ the CI setup since it requires a working Rekordbox installation.
347
348
  [tests-badge]: https://img.shields.io/github/actions/workflow/status/dylanljones/pyrekordbox/tests.yml?branch=master&label=tests&logo=github&style=flat
348
349
  [docs-badge]: https://img.shields.io/readthedocs/pyrekordbox/stable?style=flat
349
350
  [python-badge]: https://img.shields.io/pypi/pyversions/pyrekordbox?style=flat
350
- [python-badge+]: https://img.shields.io/badge/python-3.7+-blue.svg
351
+ [python-badge+]: https://img.shields.io/badge/python-3.8+-blue.svg
351
352
  [platform-badge]: https://img.shields.io/badge/platform-win%20%7C%20osx-blue?style=flat
352
353
  [pypi-badge]: https://img.shields.io/pypi/v/pyrekordbox?style=flat
353
354
  [license-badge]: https://img.shields.io/pypi/l/pyrekordbox?color=lightgrey
354
355
  [black-badge]: https://img.shields.io/badge/code%20style-black-000000?style=flat
356
+ [ruff-badge]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json
355
357
  [codecov-badge]: https://codecov.io/gh/dylanljones/pyrekordbox/branch/master/graph/badge.svg?token=5Z2KVGL7N3
356
358
 
359
+
357
360
  [pypi-link]: https://pypi.org/project/pyrekordbox/
358
361
  [license-link]: https://github.com/dylanljones/pyrekordbox/blob/master/LICENSE
359
362
  [tests-link]: https://github.com/dylanljones/pyrekordbox/actions/workflows/tests.yml
360
363
  [black-link]: https://github.com/psf/black
364
+ [ruff-link]: https://github.com/astral-sh/ruff
361
365
  [lgtm-link]: https://lgtm.com/projects/g/dylanljones/pyrekordbox/context:python
362
366
  [codecov-link]: https://app.codecov.io/gh/dylanljones/pyrekordbox/tree/master
363
367
  [codecov-dev-link]: https://app.codecov.io/gh/dylanljones/pyrekordbox/tree/dev
@@ -377,7 +381,7 @@ the CI setup since it requires a working Rekordbox installation.
377
381
  [discussions]: https://github.com/dylanljones/pyrekordbox/discussions
378
382
  [CONTRIBUTING]: https://github.com/dylanljones/pyrekordbox/blob/master/CONTRIBUTING.md
379
383
  [CHANGELOG]: https://github.com/dylanljones/pyrekordbox/blob/master/CHANGELOG.md
380
- [INSTALLATION]: https://github.com/dylanljones/pyrekordbox/blob/master/INSTALLATION.md
384
+ [installation]: https://pyrekordbox.readthedocs.io/en/latest/installation.html
381
385
 
382
386
  [repo]: https://github.com/dylanljones/pyrekordbox
383
387
  [sqlcipher]: https://www.zetetic.net/sqlcipher/open-source/
@@ -2,9 +2,10 @@ docs/Makefile,sha256=4zv3TVkTACm6JBaKgTES3ZI9cETXgM6ULbZkXZP1as8,638
2
2
  docs/make.bat,sha256=s8EuuVXNRnn4xmWLWTpk3Z01aqJSJT8ymrmK6ux0zbc,769
3
3
  docs/source/api.md,sha256=IKKMeQ2wFSS_ippOWJ63ELtMjfkNe27KjWcFFEdUXnE,276
4
4
  docs/source/conf.py,sha256=lPfAJtd0VY7uEDmHrEfHvQzNJg6WN_1seM9pCFc2e6E,6244
5
- docs/source/index.md,sha256=_73xtwAH2OF0btxHt2Kre4k1cP3N-OhsyDL-Oc7NKCI,2823
6
- docs/source/installation.md,sha256=RoCHv74LONL5QyBBVKXPOOqRmAN2GUzcvInwnlztM6M,40
7
- docs/source/quickstart.md,sha256=-v7FE_08KDSUAdbmvrY-7QImKLpR8vA3W6mTFE-uWPs,6299
5
+ docs/source/index.md,sha256=c67TMpDCaiqFe44n0pXWL__utlLAz7xqfDVjyWbxx3M,2660
6
+ docs/source/installation.md,sha256=WmX6gjuPimA6uXhS7wZzKKG1AQCHpfB0nPm3g8_ur6A,9234
7
+ docs/source/key.md,sha256=TmuJRr1Z7hUTwNhQgIZQIkywU7eRIwCAMLA9Vj-7dqI,4096
8
+ docs/source/quickstart.md,sha256=kKau0nQHc0RByrVq0pgaDKWTUX_l4290ruqY08mXTCg,6301
8
9
  docs/source/requirements.txt,sha256=7YYc-tO0BQcBVUa4GvM1r1G5Ma9gkwGZpNbAKlJL97s,117
9
10
  docs/source/_static/images/anlz_beat.svg,sha256=cVooi17HFw3mOT39cFNB05tr-cZwbK_Hjmho6eBJNX8,2924
10
11
  docs/source/_static/images/anlz_file.svg,sha256=E74hjyTFJRy6tCxyTPfsYoM0GmOKoY1To_eHatpPEjs,12320
@@ -28,6 +29,7 @@ docs/source/_static/images/anlz_pwv6.svg,sha256=J2KvE_bI-NTFSpFp7QsKSsgbWGCyuUAu
28
29
  docs/source/_static/images/anlz_pwv7.svg,sha256=n5NsTErvfsCw-otWdVXn12lM0tHyh-zQDZsZtQOJf0U,8173
29
30
  docs/source/_static/images/anlz_pwvc.svg,sha256=wO_tsxRDVnAbptbSZYK1z7YOH-0vNUqXDB9Udj4ungA,7128
30
31
  docs/source/_static/images/anlz_tag.svg,sha256=owPTtrTRDYCkaSg32_UJ-MTZp3K6WlkRQdJHTzdtxqs,6188
32
+ docs/source/_static/images/x64dbg_rb_key.png,sha256=gtwUA6lbuFRbLQQACnBQ-aO8p5Ex-7E41dS0cW6XyAU,280011
31
33
  docs/source/_static/logos/dark/logo_primary.svg,sha256=pH4Q28u9JaCA4dVrKB-NDy00PNw2EhDwz7fIYUzezvk,3079
32
34
  docs/source/_static/logos/light/logo_primary.svg,sha256=MUbYjowOcWdtoHVnK7pyV9xcTRdm7gS4whw94pVMGSI,3080
33
35
  docs/source/_static/logos/mid/logo_primary.svg,sha256=utCWWbXXW5auRRposMMaMO9t_AflsN13rZGo3_Pg2WE,3078
@@ -48,21 +50,22 @@ docs/source/tutorial/db6.md,sha256=wzfHAxSQ5rmYSDs6S0WheDwjkdFYsY3JxM0jGmXJcVU,6
48
50
  docs/source/tutorial/index.md,sha256=zjx5uXESYzHIyeqtL4XjhZUDPOpNiutZ3gkUOeG8R9w,318
49
51
  docs/source/tutorial/mysetting.md,sha256=su-WMvEd3DrFF32RDfQBm3TlAUgK5PRPT1n_77BYnvY,3659
50
52
  docs/source/tutorial/xml.md,sha256=x_rFvsVzZtUV0upEkPWkgrmr3B-FYjZKWvBuJBLFAu0,6414
51
- pyrekordbox/__init__.py,sha256=jNxA9t2zA1P6zuOaQ9T_Nc5QW-G_KpUWymLNKOkPf7s,645
52
- pyrekordbox/__main__.py,sha256=dm9QQMM5xPXzvFsF1ghwBor8ThUvZuC73As8c6kMZrA,6040
53
- pyrekordbox/_version.py,sha256=RrHB9KG1O3GPm--rbTedqmZbdDrbgeRLXBmT4OBUqqI,411
54
- pyrekordbox/config.py,sha256=eifT5Wejkk9zbQQ6190h-rF5WiF9foc55SNCHaYJKZk,21848
53
+ pyrekordbox/__init__.py,sha256=ODYrBuSF14PNKNAxsbi5_VR-ja2P3ySK0WwM8l7MFCk,647
54
+ pyrekordbox/__main__.py,sha256=R1lus_-hBG4Uf6SRuzXXFwaE-dT9Uma_lzMOGgsdDLs,5975
55
+ pyrekordbox/_version.py,sha256=Jk2iAU7m-7Vx9XV1TtdD9ZoJraIncDq_4_Wd-qtUotg,411
56
+ pyrekordbox/config.py,sha256=4FBzpdGtKFChzP0bmuuhukFGzi88cCRN_vGgJe60KUk,21865
55
57
  pyrekordbox/logger.py,sha256=qCY_3L_3WIMAvNmVKvh7oshGlWrd0T5aIW1bNCIu3Lo,521
58
+ pyrekordbox/rbxml.py,sha256=0qsKc8SQa54URwWGt6oHTOHBiAQU2S8MbSxDbzKUB7A,38369
56
59
  pyrekordbox/utils.py,sha256=sT1xt-rM94Dir-S0OSSqKbquf9kdFbzZvBu3-7q0QDM,4361
57
- pyrekordbox/xml.py,sha256=0qsKc8SQa54URwWGt6oHTOHBiAQU2S8MbSxDbzKUB7A,38369
60
+ pyrekordbox/xml.py,sha256=7wFkMyWL4AQLINvxVxkQxlruG9c7R-gkxdP7xXFOkWU,241
58
61
  pyrekordbox/anlz/__init__.py,sha256=OSpyl3pmmnt3mG905J9qvNnYchsgrIfathw0QXoOhjo,3156
59
- pyrekordbox/anlz/file.py,sha256=i6Cnz-XpT47ClGhC3ZCCrgKhlk685NTM0hWyOuATNaE,6949
62
+ pyrekordbox/anlz/file.py,sha256=r2FppO6efPzKfCfz6foX9G2aBu8gkKXMrjIm9fua3_M,6949
60
63
  pyrekordbox/anlz/structs.py,sha256=Lt4fkb3SAE8w146eWeWGnpgRoP6jhLMWrSMoMwPjG04,7925
61
64
  pyrekordbox/anlz/tags.py,sha256=uqneBP9CstYy7a4IpeEC9A5tfI59DQm0ik7yFXk_dNo,14094
62
65
  pyrekordbox/db6/__init__.py,sha256=5XbfEIZuribNXIHMn9M4qw91cKHouH82PPJbmODhdgo,849
63
66
  pyrekordbox/db6/aux_files.py,sha256=t0SfMCXBHjlCSfgRfpw1RTj0cmV0QY07xSLepjQqMnY,7591
64
- pyrekordbox/db6/database.py,sha256=FlLeJgTp3-kt63_q5uod9Hzb5u83Z34Vhb9qI_qnYVM,74218
65
- pyrekordbox/db6/registry.py,sha256=9GwMDKMqtm3-4nZ7mdzbL6XezPcVJUVqjHXGHKG_Jn4,9556
67
+ pyrekordbox/db6/database.py,sha256=COscVnKJZN47kDdwNz35M93fb9v_T58rpbTwr6YWtpI,75416
68
+ pyrekordbox/db6/registry.py,sha256=L4X49HqKtvyD_c4Ad3HR7aM5bj468MgD3Yj6WUE0ri8,9724
66
69
  pyrekordbox/db6/tables.py,sha256=5ijJyO0OERbj1Usc__2QLRc7lPZ6FYluOXbajaEqzqk,65949
67
70
  pyrekordbox/mysettings/__init__.py,sha256=rMS6Kknf1-X3PXF_TUxm8xui0H1Ap3R7G_9mqlnQUAM,705
68
71
  pyrekordbox/mysettings/file.py,sha256=dQEsdBivpverXCssyVNUeQyUXIooNrOGIIiPLwi_6T4,12669
@@ -72,9 +75,9 @@ tests/test_anlz.py,sha256=hZAW5GFEJpU8UmmHYLuU5OZlApGrWZyPAR79KtaR0cw,5782
72
75
  tests/test_config.py,sha256=wYp4wHRhIk2grhGXhk4z9umrhOWhVvTOm2mHydzLEs8,6157
73
76
  tests/test_db6.py,sha256=6GUH_B1UAYfnJtjTK20cdCjP6hz_kDRR4KklvsnuAXg,37488
74
77
  tests/test_mysetting.py,sha256=te6B_BErGc6ThgBpAl45n0Nd0hWJcm-X9WTw14bR6MA,5781
75
- tests/test_xml.py,sha256=CbdzWgVjLwmxdaUqLo58QN4iRRaUdiJe_ni8y37BVfQ,16852
76
- pyrekordbox-0.2.2.dist-info/LICENSE,sha256=Au8sngdQ79q5JsZXZJVU13j46VDxFbPwC4x6sSz8Jes,1074
77
- pyrekordbox-0.2.2.dist-info/METADATA,sha256=jihtF6wZM3UKWuzrGLAxL-oOv4HjGyp-mwMbxdXmSB8,16672
78
- pyrekordbox-0.2.2.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
79
- pyrekordbox-0.2.2.dist-info/top_level.txt,sha256=Cv8QDfcJ7y8fYUm0Q8D5GoiGxaqb7qt8Z5ntVbj1cLk,23
80
- pyrekordbox-0.2.2.dist-info/RECORD,,
78
+ tests/test_xml.py,sha256=SMRML85D24AMpgqBASK1rd-5UdacTlyUVWZGpOoRp40,16854
79
+ pyrekordbox-0.3.0.dist-info/LICENSE,sha256=Au8sngdQ79q5JsZXZJVU13j46VDxFbPwC4x6sSz8Jes,1074
80
+ pyrekordbox-0.3.0.dist-info/METADATA,sha256=emVZMIftUCg7I2-3xbgaNRrNMAbsXkKTltSASbypYGg,16987
81
+ pyrekordbox-0.3.0.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
82
+ pyrekordbox-0.3.0.dist-info/top_level.txt,sha256=Cv8QDfcJ7y8fYUm0Q8D5GoiGxaqb7qt8Z5ntVbj1cLk,23
83
+ pyrekordbox-0.3.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.41.2)
2
+ Generator: bdist_wheel (0.42.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
tests/test_xml.py CHANGED
@@ -5,7 +5,7 @@
5
5
  import os
6
6
  import pytest
7
7
  from pyrekordbox import RekordboxXml
8
- from pyrekordbox.xml import Tempo, PositionMark, XmlDuplicateError
8
+ from pyrekordbox.rbxml import Tempo, PositionMark, XmlDuplicateError
9
9
 
10
10
  TEST_ROOT = os.path.join(os.path.dirname(os.path.dirname(__file__)), ".testdata")
11
11
  XML5 = os.path.join(TEST_ROOT, "rekordbox 5", "database.xml")