TonieToolbox 0.4.2__py3-none-any.whl → 0.5.0a1__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.
- TonieToolbox/__init__.py +1 -1
- TonieToolbox/__main__.py +227 -324
- TonieToolbox/artwork.py +105 -0
- TonieToolbox/recursive_processor.py +14 -8
- TonieToolbox/tags.py +74 -0
- TonieToolbox/teddycloud.py +250 -593
- TonieToolbox/tonie_analysis.py +173 -13
- TonieToolbox/tonies_json.py +251 -174
- TonieToolbox/version_handler.py +26 -22
- {tonietoolbox-0.4.2.dist-info → tonietoolbox-0.5.0a1.dist-info}/METADATA +7 -2
- tonietoolbox-0.5.0a1.dist-info/RECORD +26 -0
- {tonietoolbox-0.4.2.dist-info → tonietoolbox-0.5.0a1.dist-info}/WHEEL +1 -1
- tonietoolbox-0.4.2.dist-info/RECORD +0 -24
- {tonietoolbox-0.4.2.dist-info → tonietoolbox-0.5.0a1.dist-info}/entry_points.txt +0 -0
- {tonietoolbox-0.4.2.dist-info → tonietoolbox-0.5.0a1.dist-info}/licenses/LICENSE.md +0 -0
- {tonietoolbox-0.4.2.dist-info → tonietoolbox-0.5.0a1.dist-info}/top_level.txt +0 -0
TonieToolbox/version_handler.py
CHANGED
@@ -3,9 +3,9 @@ Version handler to check if the latest version of TonieToolbox is being used.
|
|
3
3
|
"""
|
4
4
|
|
5
5
|
import json
|
6
|
-
import logging
|
7
6
|
import os
|
8
7
|
import time
|
8
|
+
from packaging import version
|
9
9
|
from urllib import request
|
10
10
|
from urllib.error import URLError
|
11
11
|
|
@@ -90,7 +90,7 @@ def get_pypi_version(force_refresh=False):
|
|
90
90
|
|
91
91
|
def compare_versions(v1, v2):
|
92
92
|
"""
|
93
|
-
Compare two version strings.
|
93
|
+
Compare two version strings according to PEP 440.
|
94
94
|
|
95
95
|
Args:
|
96
96
|
v1: First version string
|
@@ -102,31 +102,35 @@ def compare_versions(v1, v2):
|
|
102
102
|
logger = get_logger("version_handler")
|
103
103
|
logger.debug("Comparing versions: '%s' vs '%s'", v1, v2)
|
104
104
|
|
105
|
-
try:
|
106
|
-
|
107
|
-
|
105
|
+
try:
|
106
|
+
# Strip leading 'v' if present
|
107
|
+
v1_clean = v1[1:] if v1.startswith('v') else v1
|
108
|
+
v2_clean = v2[1:] if v2.startswith('v') else v2
|
108
109
|
|
109
|
-
|
110
|
+
parsed_v1 = version.parse(v1_clean)
|
111
|
+
parsed_v2 = version.parse(v2_clean)
|
110
112
|
|
111
|
-
|
112
|
-
v1_part = v1_parts[i] if i < len(v1_parts) else 0
|
113
|
-
v2_part = v2_parts[i] if i < len(v2_parts) else 0
|
114
|
-
|
115
|
-
logger.debug("Comparing part %d: %d vs %d", i, v1_part, v2_part)
|
116
|
-
|
117
|
-
if v1_part < v2_part:
|
118
|
-
logger.debug("Result: '%s' is OLDER than '%s'", v1, v2)
|
119
|
-
return -1
|
120
|
-
elif v1_part > v2_part:
|
121
|
-
logger.debug("Result: '%s' is NEWER than '%s'", v1, v2)
|
122
|
-
return 1
|
113
|
+
logger.debug("Parsed versions: %s vs %s", parsed_v1, parsed_v2)
|
123
114
|
|
124
|
-
|
125
|
-
|
115
|
+
if parsed_v1 < parsed_v2:
|
116
|
+
logger.debug("Result: '%s' is OLDER than '%s'", v1, v2)
|
117
|
+
return -1
|
118
|
+
elif parsed_v1 > parsed_v2:
|
119
|
+
logger.debug("Result: '%s' is NEWER than '%s'", v1, v2)
|
120
|
+
return 1
|
121
|
+
else:
|
122
|
+
logger.debug("Result: versions are EQUAL")
|
123
|
+
return 0
|
126
124
|
except Exception as e:
|
127
125
|
logger.debug("Error comparing versions '%s' and '%s': %s", v1, v2, e)
|
128
|
-
# On error,
|
129
|
-
|
126
|
+
# On error, fall back to simple string comparison to avoid crashes
|
127
|
+
logger.debug("Falling back to string comparison")
|
128
|
+
if v1 == v2:
|
129
|
+
return 0
|
130
|
+
elif v1 < v2:
|
131
|
+
return -1
|
132
|
+
else:
|
133
|
+
return 1
|
130
134
|
|
131
135
|
|
132
136
|
def check_for_updates(quiet=False, force_refresh=False):
|
@@ -1,7 +1,7 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: TonieToolbox
|
3
|
-
Version: 0.
|
4
|
-
Summary:
|
3
|
+
Version: 0.5.0a1
|
4
|
+
Summary: Create files for the Tonie box and interact with TeddyCloud servers
|
5
5
|
Home-page: https://github.com/Quentendo64/TonieToolbox
|
6
6
|
Author: Quentendo64
|
7
7
|
Author-email: Quentendo64 <quentin@wohlfeil.at>
|
@@ -20,7 +20,12 @@ Requires-Python: >=3.6
|
|
20
20
|
Description-Content-Type: text/markdown
|
21
21
|
License-File: LICENSE.md
|
22
22
|
Requires-Dist: protobuf<=3.19.0
|
23
|
+
Requires-Dist: requests>=2.32.3
|
23
24
|
Requires-Dist: mutagen>=1.47.0
|
25
|
+
Requires-Dist: packaging>=25.0
|
26
|
+
Provides-Extra: test
|
27
|
+
Requires-Dist: pytest>=8.3.5; extra == "test"
|
28
|
+
Requires-Dist: pytest-cov>=6.1.1; extra == "test"
|
24
29
|
Dynamic: author
|
25
30
|
Dynamic: home-page
|
26
31
|
Dynamic: license-file
|
@@ -0,0 +1,26 @@
|
|
1
|
+
TonieToolbox/__init__.py,sha256=lz0LClHOINLjhHw0cRVZfFszfira4Z3-Z4bnMt-re88,98
|
2
|
+
TonieToolbox/__main__.py,sha256=W9bxe32L5nd3bhjdyRySwmr1wG8q-vBGjdGSRmw9hGo,32085
|
3
|
+
TonieToolbox/artwork.py,sha256=Q1cwcJu-bmBiDLOzYTIcX1UAh-Bf6vgQY1PqW0KXZlw,4359
|
4
|
+
TonieToolbox/audio_conversion.py,sha256=nV87LTzuxeJQughu-esxTq2aZq-BvaTURj-pvBqygQs,13075
|
5
|
+
TonieToolbox/constants.py,sha256=BQ6eUNvT3eXgsz8KFYMrqpn5vRPXrp2d6folxP6H03E,4374
|
6
|
+
TonieToolbox/dependency_manager.py,sha256=EvVUO4T1CrhUXlrVk9HBgCRDER3b1BRNdgkZLSpCTho,27921
|
7
|
+
TonieToolbox/filename_generator.py,sha256=RqQHyGTKakuWR01yMSnFVMU_HfLw3rqFxKhXNIHdTlg,3441
|
8
|
+
TonieToolbox/logger.py,sha256=eZoQj4xICKEZ645GhIfZhAPAjgbgjnnfTXZ_soPjyDg,3017
|
9
|
+
TonieToolbox/media_tags.py,sha256=PnvdHh_1RV3Fi-Wkqz5DMDjSksLsmWPrApv-6BA82jE,23206
|
10
|
+
TonieToolbox/ogg_page.py,sha256=-ViaIRBgh5ayfwmyplL8QmmRr5P36X8W0DdHkSFUYUU,21948
|
11
|
+
TonieToolbox/opus_packet.py,sha256=OcHXEe3I_K4mWPUD55prpG42sZxJsEeAxqSbFxBmb0c,7895
|
12
|
+
TonieToolbox/recursive_processor.py,sha256=A6HS9xHX3gyLGUA39vcNZqS6qtwE6sLX4uMfdQONE4I,13619
|
13
|
+
TonieToolbox/tags.py,sha256=ji9N1b3zX5E3YqOayBqdUiJ99SA0HuR_RrXaRe-q1ok,2682
|
14
|
+
TonieToolbox/teddycloud.py,sha256=UwWIT6xVAb06g7vftzU_IxH5ZNtWmjgcHQDXhvuB6u8,13433
|
15
|
+
TonieToolbox/tonie_analysis.py,sha256=NdUXiZRVNW8T2C6EhqicgbohmPP9irX4q8hiQxBhc0E,30540
|
16
|
+
TonieToolbox/tonie_file.py,sha256=_LyIsUp2NmpkUVViiLY7EhXitrY4S27xKG5lvZdECJE,21031
|
17
|
+
TonieToolbox/tonie_header.proto,sha256=WaWfwO4VrwGtscK2ujfDRKtpeBpaVPoZhI8iMmR-C0U,202
|
18
|
+
TonieToolbox/tonie_header_pb2.py,sha256=s5bp4ULTEekgq6T61z9fDkRavyPM-3eREs20f_Pxxe8,3665
|
19
|
+
TonieToolbox/tonies_json.py,sha256=hHnvFMTg1wKkgYsWKY5bNzOFK9k-QnXm8siHhdDTHtQ,25671
|
20
|
+
TonieToolbox/version_handler.py,sha256=Uiob27NKvemJUR-SPPdhQLYp07o8eDyCik_KAY4KPDY,9869
|
21
|
+
tonietoolbox-0.5.0a1.dist-info/licenses/LICENSE.md,sha256=rGoga9ZAgNco9fBapVFpWf6ri7HOBp1KRnt1uIruXMk,35190
|
22
|
+
tonietoolbox-0.5.0a1.dist-info/METADATA,sha256=rNjSilTxeshGEwFmiQogGwy_0rqmh_08Bu3oWQBEEiY,24304
|
23
|
+
tonietoolbox-0.5.0a1.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
|
24
|
+
tonietoolbox-0.5.0a1.dist-info/entry_points.txt,sha256=oqpeyBxel7aScg35Xr4gZKnf486S5KW9okqeBwyJxxc,60
|
25
|
+
tonietoolbox-0.5.0a1.dist-info/top_level.txt,sha256=Wkkm-2p7I3ENfS7ZbYtYUB2g-xwHrXVlERHfonsOPuE,13
|
26
|
+
tonietoolbox-0.5.0a1.dist-info/RECORD,,
|
@@ -1,24 +0,0 @@
|
|
1
|
-
TonieToolbox/__init__.py,sha256=nXGCeCrBTSJ6dr2zymRDckNNp7HIqoxfdAdTozh7yFg,96
|
2
|
-
TonieToolbox/__main__.py,sha256=71HjJZFNfdflCbwuL28xHpKkwLIKAXW6sVpGX9TQRII,37202
|
3
|
-
TonieToolbox/audio_conversion.py,sha256=nV87LTzuxeJQughu-esxTq2aZq-BvaTURj-pvBqygQs,13075
|
4
|
-
TonieToolbox/constants.py,sha256=BQ6eUNvT3eXgsz8KFYMrqpn5vRPXrp2d6folxP6H03E,4374
|
5
|
-
TonieToolbox/dependency_manager.py,sha256=EvVUO4T1CrhUXlrVk9HBgCRDER3b1BRNdgkZLSpCTho,27921
|
6
|
-
TonieToolbox/filename_generator.py,sha256=RqQHyGTKakuWR01yMSnFVMU_HfLw3rqFxKhXNIHdTlg,3441
|
7
|
-
TonieToolbox/logger.py,sha256=eZoQj4xICKEZ645GhIfZhAPAjgbgjnnfTXZ_soPjyDg,3017
|
8
|
-
TonieToolbox/media_tags.py,sha256=PnvdHh_1RV3Fi-Wkqz5DMDjSksLsmWPrApv-6BA82jE,23206
|
9
|
-
TonieToolbox/ogg_page.py,sha256=-ViaIRBgh5ayfwmyplL8QmmRr5P36X8W0DdHkSFUYUU,21948
|
10
|
-
TonieToolbox/opus_packet.py,sha256=OcHXEe3I_K4mWPUD55prpG42sZxJsEeAxqSbFxBmb0c,7895
|
11
|
-
TonieToolbox/recursive_processor.py,sha256=m70-oJ4MRXvI9OMy14sC9UsQIxwVEnEoA3hhLGdHhL4,13457
|
12
|
-
TonieToolbox/teddycloud.py,sha256=ATfCLKecjBZRwIzhPkNcOKELRSbnmIyeQh-1imuTe9A,27281
|
13
|
-
TonieToolbox/tonie_analysis.py,sha256=kp4Wx4cTDddtF2AlS6IX4xs1vQ-mpZ0gsAy4-UdRAAM,23287
|
14
|
-
TonieToolbox/tonie_file.py,sha256=_LyIsUp2NmpkUVViiLY7EhXitrY4S27xKG5lvZdECJE,21031
|
15
|
-
TonieToolbox/tonie_header.proto,sha256=WaWfwO4VrwGtscK2ujfDRKtpeBpaVPoZhI8iMmR-C0U,202
|
16
|
-
TonieToolbox/tonie_header_pb2.py,sha256=s5bp4ULTEekgq6T61z9fDkRavyPM-3eREs20f_Pxxe8,3665
|
17
|
-
TonieToolbox/tonies_json.py,sha256=AAYPTDTVZg4sm5AAnUKPPAifTM1iLh6Oa96ic84K2m0,20673
|
18
|
-
TonieToolbox/version_handler.py,sha256=7Zx-pgzAUhz6jMplvNal1wHyxidodVxaNcAV0EMph5k,9778
|
19
|
-
tonietoolbox-0.4.2.dist-info/licenses/LICENSE.md,sha256=rGoga9ZAgNco9fBapVFpWf6ri7HOBp1KRnt1uIruXMk,35190
|
20
|
-
tonietoolbox-0.4.2.dist-info/METADATA,sha256=j46zRD7ZTIkOIh3MlgYmON0-lKUUx62dBOZn2QzY2DU,24105
|
21
|
-
tonietoolbox-0.4.2.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
|
22
|
-
tonietoolbox-0.4.2.dist-info/entry_points.txt,sha256=oqpeyBxel7aScg35Xr4gZKnf486S5KW9okqeBwyJxxc,60
|
23
|
-
tonietoolbox-0.4.2.dist-info/top_level.txt,sha256=Wkkm-2p7I3ENfS7ZbYtYUB2g-xwHrXVlERHfonsOPuE,13
|
24
|
-
tonietoolbox-0.4.2.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|