TonieToolbox 0.5.1__py3-none-any.whl → 0.6.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,3 +1,4 @@
1
+ #!/usr/bin/python3
1
2
  """
2
3
  Version handler to check if the latest version of TonieToolbox is being used.
3
4
  """
@@ -17,18 +18,17 @@ CACHE_DIR = os.path.join(os.path.expanduser("~"), ".tonietoolbox")
17
18
  CACHE_FILE = os.path.join(CACHE_DIR, "version_cache.json")
18
19
  CACHE_EXPIRY = 86400 # 24 hours in seconds
19
20
 
21
+ logger = get_logger(__name__)
20
22
 
21
- def get_pypi_version(force_refresh=False):
23
+ def get_pypi_version(force_refresh: bool = False) -> tuple[str, str | None]:
22
24
  """
23
25
  Get the latest version of TonieToolbox from PyPI.
24
26
 
25
27
  Args:
26
- force_refresh: If True, ignore the cache and fetch directly from PyPI
27
-
28
+ force_refresh (bool): If True, ignore the cache and fetch directly from PyPI
28
29
  Returns:
29
- tuple: (latest_version, None) on success, (current_version, error_message) on failure
30
+ tuple[str, str | None]: (latest_version, None) on success, (current_version, error_message) on failure
30
31
  """
31
- logger = get_logger("version_handler")
32
32
  logger.debug("Checking for latest version (force_refresh=%s)", force_refresh)
33
33
  logger.debug("Current version: %s", __version__)
34
34
 
@@ -88,18 +88,16 @@ def get_pypi_version(force_refresh=False):
88
88
  return __version__, f"Unexpected error checking for updates: {str(e)}"
89
89
 
90
90
 
91
- def compare_versions(v1, v2):
91
+ def compare_versions(v1: str, v2: str) -> int:
92
92
  """
93
93
  Compare two version strings according to PEP 440.
94
94
 
95
95
  Args:
96
- v1: First version string
97
- v2: Second version string
98
-
96
+ v1 (str): First version string
97
+ v2 (str): Second version string
99
98
  Returns:
100
99
  int: -1 if v1 < v2, 0 if v1 == v2, 1 if v1 > v2
101
100
  """
102
- logger = get_logger("version_handler")
103
101
  logger.debug("Comparing versions: '%s' vs '%s'", v1, v2)
104
102
 
105
103
  try:
@@ -133,22 +131,20 @@ def compare_versions(v1, v2):
133
131
  return 1
134
132
 
135
133
 
136
- def check_for_updates(quiet=False, force_refresh=False):
134
+ def check_for_updates(quiet: bool = False, force_refresh: bool = False) -> tuple[bool, str, str, bool]:
137
135
  """
138
136
  Check if the current version of TonieToolbox is the latest.
139
137
 
140
138
  Args:
141
- quiet: If True, will not log any information messages and skip user confirmation
142
- force_refresh: If True, bypass cache and check PyPI directly
143
-
139
+ quiet (bool): If True, will not log any information messages and skip user confirmation
140
+ force_refresh (bool): If True, bypass cache and check PyPI directly
144
141
  Returns:
145
- tuple: (is_latest, latest_version, message, update_confirmed)
142
+ tuple[bool, str, str, bool]: (is_latest, latest_version, message, update_confirmed)
146
143
  is_latest: boolean indicating if the current version is the latest
147
144
  latest_version: string with the latest version
148
145
  message: string message about the update status or error
149
146
  update_confirmed: boolean indicating if the user confirmed the update
150
147
  """
151
- logger = get_logger("version_handler")
152
148
  current_version = __version__
153
149
  update_confirmed = False
154
150
 
@@ -200,14 +196,13 @@ def check_for_updates(quiet=False, force_refresh=False):
200
196
  return is_latest, latest_version, message, update_confirmed
201
197
 
202
198
 
203
- def install_update():
199
+ def install_update() -> bool:
204
200
  """
205
201
  Try to install the update using pip, pip3, or pipx.
206
202
 
207
203
  Returns:
208
204
  bool: True if the update was successfully installed, False otherwise
209
205
  """
210
- logger = get_logger("version_handler")
211
206
  import subprocess
212
207
  import sys
213
208
 
@@ -238,14 +233,13 @@ def install_update():
238
233
  return False
239
234
 
240
235
 
241
- def clear_version_cache():
236
+ def clear_version_cache() -> bool:
242
237
  """
243
238
  Clear the version cache file to force a refresh on next check.
244
239
 
245
240
  Returns:
246
241
  bool: True if cache was cleared, False otherwise
247
242
  """
248
- logger = get_logger("version_handler")
249
243
 
250
244
  try:
251
245
  if os.path.exists(CACHE_FILE):
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: TonieToolbox
3
- Version: 0.5.1
4
- Summary: Create files for the Tonie box and interact with TeddyCloud servers
3
+ Version: 0.6.0
4
+ Summary: Convert audio files to Toniebox compatible format (.TAF) and interact with TeddyCloud.
5
5
  Home-page: https://github.com/Quentendo64/TonieToolbox
6
6
  Author: Quentendo64
7
7
  Author-email: Quentendo64 <quentin@wohlfeil.at>
@@ -23,6 +23,7 @@ Requires-Dist: protobuf<=3.19.0
23
23
  Requires-Dist: requests>=2.32.3
24
24
  Requires-Dist: mutagen>=1.47.0
25
25
  Requires-Dist: packaging>=25.0
26
+ Requires-Dist: tqdm>=4.67.1
26
27
  Provides-Extra: test
27
28
  Requires-Dist: pytest>=8.3.5; extra == "test"
28
29
  Requires-Dist: pytest-cov>=6.1.1; extra == "test"
@@ -33,7 +34,7 @@ Dynamic: requires-python
33
34
 
34
35
  # TonieToolbox 🎵📦
35
36
 
36
- [![Publish to DockerHub](https://github.com/Quentendo64/TonieToolbox/actions/workflows/docker-publish.yml/badge.svg)](https://github.com/Quentendo64/TonieToolbox/actions)
37
+ [![Publish to DockerHub](https://github.com/Quentendo64/TonieToolbox/actions/workflows/publish-to-docker.yml/badge.svg)](https://github.com/Quentendo64/TonieToolbox/actions)
37
38
  [![Publish to PyPI](https://github.com/Quentendo64/TonieToolbox/actions/workflows/publish-to-pypi.yml/badge.svg)](https://github.com/Quentendo64/TonieToolbox/actions)
38
39
 
39
40
  [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
@@ -48,6 +49,14 @@ A Toolkit for converting various audio formats into the Tonie-compatible TAF for
48
49
  → [HOWTO Guide for Beginners](HOWTO.md)
49
50
  → [Contributing Guidelines](CONTRIBUTING.md)
50
51
 
52
+ ## 🎯 New Features (v0.6.0)
53
+
54
+ The latest release of TonieToolbox includes exciting new capabilities:
55
+
56
+ - **Enhanced Media Tag Support**: Better handling of complex audio libraries with advanced metadata extraction and usage of tags in your upload path (--path) or as output directory with the new argument --output-to-template eg. "C:\Music\\{albumartist}\\{album}"
57
+ - **Windows Context Menu Integration**: Right-click to convert audio files directly from File Explorer. Use --config-integration to configure the upload functions. If not needed just use --install-integration
58
+
59
+
51
60
  ## Table of Contents
52
61
 
53
62
  - [Overview](#overview)
@@ -225,7 +234,7 @@ docker run --rm -v "$(pwd)/input:/tonietoolbox/input" -v "$(pwd)/output:/tonieto
225
234
  docker run --rm -v "%cd%\input:/tonietoolbox/input" -v "%cd%\output:/tonietoolbox/output" quentendo64/tonietoolbox input/my-audio-file.mp3
226
235
  ```
227
236
 
228
- **Or using docker-compose**
237
+ **Or using docker-compose:**
229
238
 
230
239
  ```shell
231
240
  docker-compose run --rm tonietoolbox input/my-audio-file.mp3
@@ -262,12 +271,17 @@ Output:
262
271
  ```shell
263
272
  usage: TonieToolbox.py [-h] [-v] [--upload URL] [--include-artwork] [--get-tags URL]
264
273
  [--ignore-ssl-verify] [--special-folder FOLDER] [--path PATH]
265
- [--show-progress] [--connection-timeout SECONDS]
266
- [--read-timeout SECONDS] [--max-retries RETRIES]
267
- [--retry-delay SECONDS] [--create-custom-json] [-t TIMESTAMP] [-f FFMPEG]
274
+ [--connection-timeout SECONDS] [--read-timeout SECONDS]
275
+ [--max-retries RETRIES] [--retry-delay SECONDS]
276
+ [--create-custom-json] [--version-2] [--username USERNAME]
277
+ [--password PASSWORD] [--client-cert CERT_FILE]
278
+ [--client-key KEY_FILE] [-t TIMESTAMP] [-f FFMPEG]
268
279
  [-o OPUSENC] [-b BITRATE] [-c] [-a TAG] [-n] [-i] [-s] [-r] [-O]
269
- [-A] [-k] [-u] [-C FILE2] [-D] [-m] [--name-template TEMPLATE]
270
- [--show-tags] [-S] [-F] [-X] [-d] [-T] [-q] [-Q]
280
+ [-fc] [--no-mono-conversion] [-A] [-k] [-u] [-C FILE2] [-D]
281
+ [--config-integration] [--install-integration]
282
+ [--uninstall-integration] [-m] [--name-template TEMPLATE]
283
+ [--output-to-template PATH_TEMPLATE] [--show-tags]
284
+ [-S] [-F] [-X] [-d] [-T] [-q] [-Q] [--log-file]
271
285
  SOURCE [TARGET]
272
286
 
273
287
  Create Tonie compatible file from Ogg opus file(s).
@@ -283,8 +297,7 @@ TeddyCloud Options:
283
297
  --ignore-ssl-verify Ignore SSL certificate verification (for self-signed certificates)
284
298
  --special-folder FOLDER
285
299
  Special folder to upload to (currently only "library" is supported)
286
- --path PATH Path where to write the file on TeddyCloud server
287
- --show-progress Show progress bar during file upload (default: enabled)
300
+ --path PATH Path where to write the file on TeddyCloud server (supports templates like "/{albumartist}/{album}")
288
301
  --connection-timeout SECONDS
289
302
  Connection timeout in seconds (default: 10)
290
303
  --read-timeout SECONDS
@@ -294,12 +307,19 @@ TeddyCloud Options:
294
307
  --retry-delay SECONDS
295
308
  Delay between retry attempts in seconds (default: 5)
296
309
  --create-custom-json Fetch and update custom Tonies JSON data
310
+ --version-2 Use version 2 of the Tonies JSON format (default: version 1)
311
+ --username USERNAME Username for basic authentication
312
+ --password PASSWORD Password for basic authentication
313
+ --client-cert CERT_FILE
314
+ Path to client certificate file for certificate-based authentication
315
+ --client-key KEY_FILE
316
+ Path to client private key file for certificate-based authentication
297
317
 
298
318
  optional arguments:
299
319
  -h, --help show this help message and exit
300
320
  -v, --version show program version and exit
301
321
  -t, --timestamp TIMESTAMP
302
- set custom timestamp / bitstream serial / reference .taf file
322
+ set custom timestamp / bitstream serial
303
323
  -f, --ffmpeg FFMPEG specify location of ffmpeg
304
324
  -o, --opusenc OPUSENC specify location of opusenc
305
325
  -b, --bitrate BITRATE set encoding bitrate in kbps (default: 96)
@@ -312,17 +332,27 @@ optional arguments:
312
332
  -r, --recursive Process folders recursively
313
333
  -O, --output-to-source
314
334
  Save output files in the source directory instead of output directory
335
+ -fc, --force-creation
336
+ Force creation of Tonie file even if it already exists
337
+ --no-mono-conversion Do not convert mono audio to stereo (default: convert mono to stereo)
315
338
  -A, --auto-download Automatically download FFmpeg and opusenc if needed
316
339
  -k, --keep-temp Keep temporary opus files in a temp folder for testing
317
- -u, --use-legacy-tags Use legacy hardcoded tags instead of dynamic TonieToolbox tags (DEPRECATED)
340
+ -u, --use-legacy-tags Use legacy hardcoded tags instead of dynamic TonieToolbox tags
318
341
  -C, --compare FILE2 Compare input file with another .taf file for debugging
319
342
  -D, --detailed-compare
320
343
  Show detailed OGG page differences when comparing files
321
- --no-mono-conversion Do not convert mono audio to stereo (default: convert mono to stereo)
344
+ --config-integration Configure context menu integration
345
+ --install-integration
346
+ Integrate with the system (e.g., create context menu entries)
347
+ --uninstall-integration
348
+ Uninstall context menu integration
349
+
322
350
  Media Tag Options:
323
351
  -m, --use-media-tags Use media tags from audio files for naming
324
352
  --name-template TEMPLATE
325
353
  Template for naming files using media tags. Example: "{album} - {artist}"
354
+ --output-to-template PATH_TEMPLATE
355
+ Template for output path using media tags. Example: "C:\Music\{albumartist}\{album}"
326
356
  --show-tags Show available media tags from input files
327
357
 
328
358
  Version Check Options:
@@ -543,6 +573,87 @@ tonietoolbox --split my_tonie.taf --debug
543
573
  tonietoolbox --recursive "Music/Collection/" --quiet
544
574
  ```
545
575
 
576
+ #### Force creation of TAF files
577
+
578
+ If a valid TAF file already exists, TonieToolbox will skip recreating it by default. To force creation even if the file exists:
579
+
580
+ ```shell
581
+ # Force creation of a TAF file even if it already exists
582
+ tonietoolbox input.mp3 --force-creation
583
+ ```
584
+
585
+ This is useful when you want to update the content or encoding settings of an existing TAF file.
586
+
587
+ #### Windows Context Menu Integration
588
+
589
+ TonieToolbox can integrate with Windows Explorer, allowing you to right-click on audio files or folders to convert them:
590
+
591
+ ```shell
592
+ # Install context menu integration (one-time setup)
593
+ tonietoolbox --install-integration
594
+
595
+ # Configure context menu options
596
+ tonietoolbox --config-integration
597
+
598
+ # Remove context menu integration
599
+ tonietoolbox --uninstall-integration
600
+ ```
601
+
602
+ After installation, you can right-click on any audio file or folder in Windows Explorer and select "Convert to Tonie Format".
603
+
604
+ When changing the configuration via `--config-integration`. Apply them to the integration by simply execute `tonietoolbox --install-integration` again.
605
+
606
+ #### Log File Generation
607
+
608
+ Save detailed logs to a timestamped file for troubleshooting complex operations:
609
+
610
+ ```shell
611
+ # Enable log file generation
612
+ tonietoolbox input.mp3 --log-file
613
+
614
+ # Combine with debug logging for maximum detail
615
+ tonietoolbox --recursive input_directory/ --log-file --debug
616
+ ```
617
+
618
+ Log files are saved in the `.tonietoolbox\logs` folder in your user directory.
619
+
620
+ #### Enhanced Media Tag Templates
621
+
622
+ Create custom directory structures based on media tags:
623
+
624
+ ```shell
625
+ # Create output based on a path template
626
+ tonietoolbox input.mp3 --use-media-tags --output-to-template "C:\Music\{albumartist}\{album}"
627
+
628
+ # Use with recursive processing
629
+ tonietoolbox --recursive "Music/Collection/" --use-media-tags --output-to-template "Organized/{genre}/{year} - {album}"
630
+ ```
631
+
632
+ This creates a directory structure based on the audio files' metadata and places the converted TAF files accordingly.
633
+
634
+ #### TeddyCloud Authentication Options
635
+
636
+ > **Note:** Authentication is based on the Features available when using [TeddyCloudStarter](https://github.com/Quentendo64/TeddyCloudStarter).
637
+
638
+ TonieToolbox supports multiple authentication methods for secure TeddyCloud connections:
639
+
640
+ ```shell
641
+ # Basic authentication with username and password
642
+ tonietoolbox input.mp3 --upload https://teddycloud.example.com --username admin --password secret
643
+
644
+ # Certificate-based authentication
645
+ tonietoolbox input.mp3 --upload https://teddycloud.example.com --client-cert certificate.crt --client-key private.key
646
+ ```
647
+
648
+ #### Custom JSON Format Versioning
649
+
650
+ Choose between different versions of the Tonies JSON format:
651
+
652
+ ```shell
653
+ # Use version 2 of the Tonies JSON format (enhanced metadata)
654
+ tonietoolbox input.mp3 --upload https://teddycloud.example.com --create-custom-json --version-2
655
+ ```
656
+
546
657
  ### Media Tags
547
658
 
548
659
  TonieToolbox can read metadata tags from audio files (such as ID3 tags in MP3 files, Vorbis comments in FLAC/OGG files, etc.) and use them to create more meaningful filenames or display information about your audio collection.
@@ -699,81 +810,7 @@ tonietoolbox "C:\Music\Classical\Bach" --use-media-tags --name-template "{compos
699
810
  The first command shows what tags are available, allowing you to create precise naming templates for classical music collections.
700
811
 
701
812
  ## Technical Details
702
-
703
- ### TAF (Tonie Audio Format) File Structure
704
-
705
- The Tonie Audio Format (TAF) consists of several parts:
706
-
707
- #### 1. Tonie Header (0x1000 bytes)
708
-
709
- Located at the beginning of the file, structured as:
710
-
711
- - A 4-byte big-endian integer specifying the header length
712
- - A Protocol Buffer encoded header (defined in `tonie_header.proto`)
713
- - Padding to fill the entire 4096 bytes (0x1000)
714
-
715
- The Protocol Buffer structure contains:
716
-
717
- ```protobuf
718
- message TonieHeader {
719
- bytes dataHash = 1; // SHA1 hash of the audio data
720
- uint32 dataLength = 2; // Length of the audio data in bytes
721
- uint32 timestamp = 3; // Unix timestamp (also used as bitstream serial number)
722
- repeated uint32 chapterPages = 4 [packed=true]; // Page numbers for chapter starts
723
- bytes padding = 5; // Padding to fill up the header
724
- }
725
- ```
726
-
727
- #### 2. Audio Data
728
-
729
- The audio data consists of:
730
-
731
- - Opus encoded audio in Ogg container format
732
- - Every page after the header has a fixed size of 4096 bytes (0x1000)
733
- - First page contains the Opus identification header
734
- - Second page contains the Opus comments/tags
735
- - Remaining pages contain the actual audio data
736
- - All pages use the same bitstream serial number (timestamp from header)
737
-
738
- #### 3. Special Requirements
739
-
740
- For optimal compatibility with Tonie boxes:
741
-
742
- - Audio should be stereo (2 channels)
743
- - Sample rate must be 48 kHz
744
- - Pages must be aligned to 4096 byte boundaries
745
- - Bitrate of 96 kbps VBR is recommended
746
-
747
- **Mono audio handling:**
748
-
749
- - By default, TonieToolbox will automatically convert mono audio files to stereo for compatibility.
750
- - To disable this behavior (and require your input to already be stereo), use the `--no-mono-conversion` flag.
751
-
752
- ### File Analysis
753
-
754
- When using the `--info` flag, TonieToolbox checks and displays detailed information about a .TAF (Tonie Audio File):
755
-
756
- - SHA1 hash validation
757
- - Timestamp/bitstream serial consistency
758
- - Opus data length verification
759
- - Opus header validation (version, channels, sample rate)
760
- - Page alignment and size validation
761
- - Total runtime
762
- - Track listing with durations
763
-
764
- ### File Comparison
765
-
766
- When using the `--compare` flag, TonieToolbox provides a detailed comparison of two .TAF files:
767
-
768
- - File size comparison
769
- - Header size verification
770
- - Timestamp comparison
771
- - Data length validation
772
- - SHA1 hash verification
773
- - Chapter page structure analysis
774
- - OGG page-by-page comparison (with `--detailed-compare` flag)
775
-
776
- This is particularly useful for debugging when creating TAF files with different tools or parameters.
813
+ [Moved to TECHNICAL.md](TECHNICAL.md)
777
814
 
778
815
  ## Related Projects
779
816
 
@@ -783,9 +820,6 @@ This project is inspired by and builds upon the work of other Tonie-related open
783
820
  - [teddycloud](https://github.com/toniebox-reverse-engineering/teddycloud) - Self-hosted alternative to the Tonie cloud / Boxine cloud for managing custom content
784
821
  - [TeddyCloudStarter](https://github.com/Quentendo64/TeddyCloudStarter) - A Wizard for Docker-based deployment of [teddycloud](https://github.com/toniebox-reverse-engineering/teddycloud)
785
822
 
786
- ## Contributing
787
-
788
- Contributions are welcome! Please feel free to submit a Pull Request.
789
823
 
790
824
  ## Legal Notice
791
825
 
@@ -806,3 +840,6 @@ If you need help, have questions, or want to report a bug, please use the follow
806
840
  - [GitHub Issues](https://github.com/Quentendo64/TonieToolbox/issues) for bug reports and feature requests
807
841
  - [GitHub Discussions](https://github.com/Quentendo64/TonieToolbox/discussions) for general questions and community support
808
842
  - [HOWTO Guide](HOWTO.md) for common usage instructions
843
+
844
+ ## Attribution
845
+ [Parrot Icon created by Freepik - Flaticon](https://www.flaticon.com/free-animated-icons/parrot)
@@ -0,0 +1,30 @@
1
+ TonieToolbox/__init__.py,sha256=dDfETVfULQ_kWoZY_qixJuCjPt2CX6VQEJgz2aUfwUE,115
2
+ TonieToolbox/__main__.py,sha256=KSDasW-QaTzStXSKtemMKxoFV8IWvCmq1Oig5yo8BQs,41573
3
+ TonieToolbox/artwork.py,sha256=BhAjLWqzui8zUOU9z9P4H3zbCCTOB94aT0MPlqEvZoY,5605
4
+ TonieToolbox/audio_conversion.py,sha256=xXXsRGPS_yQ_mqtFJiqupLbeXN8__Q2Hg05C94EPC_8,17199
5
+ TonieToolbox/constants.py,sha256=nTKDBy55PTv6Tazda3rsZZcckcm3AZOyWXa1LDuTuEk,33989
6
+ TonieToolbox/dependency_manager.py,sha256=sQv0vNE7Gp_RqdR9GOwF8jJgu8GTw0Krppg5MjG5qJU,49432
7
+ TonieToolbox/filename_generator.py,sha256=NJrRxv0sm_9G5ZDp1QG39mktgJnz5yGC8HUs7NhLYFg,5293
8
+ TonieToolbox/integration.py,sha256=a-GBynecxwozUqEe3NjXbePcBpolzWKBZLQ5BeHsG2E,3302
9
+ TonieToolbox/integration_macos.py,sha256=YxK7gIqiy1QTp7EM1M1OPC-mgb3gaIoI6Xfu3eUAyX0,27311
10
+ TonieToolbox/integration_ubuntu.py,sha256=_Da2s7CmuP7kts0W-yyt4odZA8jr14d8iisVF_ipLDA,52
11
+ TonieToolbox/integration_windows.py,sha256=ycPKKswA90auzzns7bSJ9-HhH6UGRKgK_lAwPoBU0YI,24017
12
+ TonieToolbox/logger.py,sha256=ppAnOJAKNwwbt5q3NdF2WHgHemZjP0QWRaUx8UrkQK8,3139
13
+ TonieToolbox/media_tags.py,sha256=pOLcqnY4sUudI-gBre0A7le3nA7ZDkhUNkozUdRVHiE,20843
14
+ TonieToolbox/ogg_page.py,sha256=CpL3mHoRsfHBBrT2r4x5p3LBPgHfYQxb_WQsCZq6SI0,22341
15
+ TonieToolbox/opus_packet.py,sha256=skKzr5sVpL7L77JisqqGL4Kz86acOGDzwbFRqRL2oSM,8017
16
+ TonieToolbox/recursive_processor.py,sha256=IcTmQY6OF01KUfqjYE7F0CFl1SeWcSLzkB_Du6R8deI,13910
17
+ TonieToolbox/tags.py,sha256=usNcZxMEAMP7vEfeNOtg70YBJpHiWuHb_XKCyEafsYc,2702
18
+ TonieToolbox/teddycloud.py,sha256=1fpRzhJrOiUXTBhX9JNL9rlO5obIl32WMoYz5RWz0zA,18486
19
+ TonieToolbox/tonie_analysis.py,sha256=KkaZ6vt4sntMTfutyQApI8gvCirMjTW8aeIBSbhtllA,30798
20
+ TonieToolbox/tonie_file.py,sha256=z7yRmK0ujZ6SjF78-xJImGmQ2bS-Q7b-6d2ryYJnmwA,21769
21
+ TonieToolbox/tonie_header.proto,sha256=WaWfwO4VrwGtscK2ujfDRKtpeBpaVPoZhI8iMmR-C0U,202
22
+ TonieToolbox/tonie_header_pb2.py,sha256=s5bp4ULTEekgq6T61z9fDkRavyPM-3eREs20f_Pxxe8,3665
23
+ TonieToolbox/tonies_json.py,sha256=Icu5ClFbRK0gFuefJkHQNRjeOW79tQV-GZ3hoIATo3M,60768
24
+ TonieToolbox/version_handler.py,sha256=Q-i5_0r5lX3dlwDLI2lMAx4X10UZGN2rvMcntmyuiT4,9862
25
+ tonietoolbox-0.6.0.dist-info/licenses/LICENSE.md,sha256=rGoga9ZAgNco9fBapVFpWf6ri7HOBp1KRnt1uIruXMk,35190
26
+ tonietoolbox-0.6.0.dist-info/METADATA,sha256=vWaKGQkxXlB__GdPOPzSPC8Ng6JVzR_Z_INSCxOQTRs,29084
27
+ tonietoolbox-0.6.0.dist-info/WHEEL,sha256=Nw36Djuh_5VDukK0H78QzOX-_FQEo6V37m3nkm96gtU,91
28
+ tonietoolbox-0.6.0.dist-info/entry_points.txt,sha256=oqpeyBxel7aScg35Xr4gZKnf486S5KW9okqeBwyJxxc,60
29
+ tonietoolbox-0.6.0.dist-info/top_level.txt,sha256=Wkkm-2p7I3ENfS7ZbYtYUB2g-xwHrXVlERHfonsOPuE,13
30
+ tonietoolbox-0.6.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.4.0)
2
+ Generator: setuptools (80.7.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,26 +0,0 @@
1
- TonieToolbox/__init__.py,sha256=xOsJnu--2TXqOdJT6N_Z3UF2fguZbJpn8PjkEDC__Qk,96
2
- TonieToolbox/__main__.py,sha256=4zpa_i70Gr4KCbAGNa1aWRMbRaxFmH12yj7r-rNqq8M,33771
3
- TonieToolbox/artwork.py,sha256=Q1cwcJu-bmBiDLOzYTIcX1UAh-Bf6vgQY1PqW0KXZlw,4359
4
- TonieToolbox/audio_conversion.py,sha256=VbntGybLdmhvokN_YJOGejyqvDTINT56t4N-aTyl9jE,16902
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=Dy5iPLdOhKsOVkm3BpSq_WVGzakeXP-sDTfge2V1v4A,23230
10
- TonieToolbox/ogg_page.py,sha256=-ViaIRBgh5ayfwmyplL8QmmRr5P36X8W0DdHkSFUYUU,21948
11
- TonieToolbox/opus_packet.py,sha256=OcHXEe3I_K4mWPUD55prpG42sZxJsEeAxqSbFxBmb0c,7895
12
- TonieToolbox/recursive_processor.py,sha256=A6PYj9ZGGt6HqvTc9h-wWS0xt0isH-pvE2yAcVobnhs,13647
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=_IGyb7snqBoaQQjTnYsP5sz9uI5AJTcWSIkBwGyIg-M,21146
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=Yftk_eUK2UJPY5Tm7JSoWORUuiVpnUe7z4-mDhRWbrM,59950
20
- TonieToolbox/version_handler.py,sha256=Uiob27NKvemJUR-SPPdhQLYp07o8eDyCik_KAY4KPDY,9869
21
- tonietoolbox-0.5.1.dist-info/licenses/LICENSE.md,sha256=rGoga9ZAgNco9fBapVFpWf6ri7HOBp1KRnt1uIruXMk,35190
22
- tonietoolbox-0.5.1.dist-info/METADATA,sha256=HZllZyXc1vDfMW-rziCcCeWwcCeNRBmUi6Hy4JPi06I,26843
23
- tonietoolbox-0.5.1.dist-info/WHEEL,sha256=DnLRTWE75wApRYVsjgc6wsVswC54sMSJhAEd4xhDpBk,91
24
- tonietoolbox-0.5.1.dist-info/entry_points.txt,sha256=oqpeyBxel7aScg35Xr4gZKnf486S5KW9okqeBwyJxxc,60
25
- tonietoolbox-0.5.1.dist-info/top_level.txt,sha256=Wkkm-2p7I3ENfS7ZbYtYUB2g-xwHrXVlERHfonsOPuE,13
26
- tonietoolbox-0.5.1.dist-info/RECORD,,