audiometa-python 0.2.2__tar.gz → 0.2.5__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 (323) hide show
  1. {audiometa_python-0.2.2/audiometa_python.egg-info → audiometa_python-0.2.5}/PKG-INFO +12 -6
  2. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/README.md +11 -5
  3. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/utils/os_dependencies_checker/config.py +32 -6
  4. {audiometa_python-0.2.2 → audiometa_python-0.2.5/audiometa_python.egg-info}/PKG-INFO +12 -6
  5. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/pyproject.toml +1 -1
  6. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/LICENSE +0 -0
  7. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/__init__.py +0 -0
  8. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/__main__.py +0 -0
  9. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/_audio_file.py +0 -0
  10. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/cli.py +0 -0
  11. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/exceptions.py +0 -0
  12. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/manager/_MetadataManager.py +0 -0
  13. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/manager/__init__.py +0 -0
  14. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/manager/_rating_supporting/_RatingSupportingMetadataManager.py +0 -0
  15. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/manager/_rating_supporting/__init__.py +0 -0
  16. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/manager/_rating_supporting/id3v2/_Id3v2Manager.py +0 -0
  17. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/manager/_rating_supporting/id3v2/__init__.py +0 -0
  18. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/manager/_rating_supporting/id3v2/_id3v2_constants.py +0 -0
  19. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/manager/_rating_supporting/riff/_RiffManager.py +0 -0
  20. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/manager/_rating_supporting/riff/__init__.py +0 -0
  21. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/manager/_rating_supporting/riff/_riff_constants.py +0 -0
  22. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/manager/_rating_supporting/vorbis/_VorbisManager.py +0 -0
  23. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/manager/_rating_supporting/vorbis/__init__.py +0 -0
  24. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/manager/_rating_supporting/vorbis/_vorbis_constants.py +0 -0
  25. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/manager/id3v1/_Id3v1Manager.py +0 -0
  26. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/manager/id3v1/__init__.py +0 -0
  27. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/manager/id3v1/_constants.py +0 -0
  28. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/manager/id3v1/id3v1_raw_metadata.py +0 -0
  29. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/manager/id3v1/id3v1_raw_metadata_key.py +0 -0
  30. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/__init__.py +0 -0
  31. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/assets/create_test_files.py +0 -0
  32. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/helpers/__init__.py +0 -0
  33. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/helpers/common/__init__.py +0 -0
  34. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/helpers/common/audio_file_creator.py +0 -0
  35. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/helpers/common/external_tool_runner.py +0 -0
  36. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/helpers/id3v1/__init__.py +0 -0
  37. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/helpers/id3v1/id3v1_header_verifier.py +0 -0
  38. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/helpers/id3v1/id3v1_metadata_deleter.py +0 -0
  39. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/helpers/id3v1/id3v1_metadata_getter.py +0 -0
  40. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/helpers/id3v1/id3v1_metadata_setter.py +0 -0
  41. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/helpers/id3v2/__init__.py +0 -0
  42. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/helpers/id3v2/id3v2_frame_manual_creator.py +0 -0
  43. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/helpers/id3v2/id3v2_header_verifier.py +0 -0
  44. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/helpers/id3v2/id3v2_metadata_deleter.py +0 -0
  45. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/helpers/id3v2/id3v2_metadata_getter.py +0 -0
  46. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/helpers/id3v2/id3v2_metadata_setter.py +0 -0
  47. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/helpers/riff/__init__.py +0 -0
  48. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/helpers/riff/riff_header_verifier.py +0 -0
  49. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/helpers/riff/riff_manual_metadata_creator.py +0 -0
  50. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/helpers/riff/riff_metadata_deleter.py +0 -0
  51. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/helpers/riff/riff_metadata_getter.py +0 -0
  52. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/helpers/riff/riff_metadata_setter.py +0 -0
  53. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/helpers/scripts/__init__.py +0 -0
  54. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/helpers/technical_info_inspector.py +0 -0
  55. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/helpers/temp_file_with_metadata.py +0 -0
  56. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/helpers/vorbis/__init__.py +0 -0
  57. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/helpers/vorbis/vorbis_header_verifier.py +0 -0
  58. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/helpers/vorbis/vorbis_metadata_deleter.py +0 -0
  59. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/helpers/vorbis/vorbis_metadata_getter.py +0 -0
  60. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/helpers/vorbis/vorbis_metadata_setter.py +0 -0
  61. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/__init__.py +0 -0
  62. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/conftest.py +0 -0
  63. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/e2e/__init__.py +0 -0
  64. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/e2e/cli/__init__.py +0 -0
  65. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/e2e/cli/error_handling/__init__.py +0 -0
  66. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/e2e/cli/error_handling/test_command_structure_errors.py +0 -0
  67. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/e2e/cli/error_handling/test_file_access_errors.py +0 -0
  68. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/e2e/cli/error_handling/test_format_output_errors.py +0 -0
  69. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/e2e/cli/error_handling/test_input_validation_errors.py +0 -0
  70. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/e2e/cli/error_handling/test_missing_fields_validation.py +0 -0
  71. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/e2e/cli/error_handling/test_multiple_files_errors.py +0 -0
  72. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/e2e/cli/error_handling/test_rating_validation.py +0 -0
  73. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/e2e/cli/error_handling/test_year_validation.py +0 -0
  74. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/e2e/cli/test_cli_delete.py +0 -0
  75. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/e2e/cli/test_cli_formatting.py +0 -0
  76. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/e2e/cli/test_cli_help.py +0 -0
  77. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/e2e/cli/test_cli_read.py +0 -0
  78. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/e2e/cli/test_cli_unified.py +0 -0
  79. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/e2e/cli/test_cli_write.py +0 -0
  80. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/e2e/scenarios/__init__.py +0 -0
  81. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/e2e/scenarios/test_user_scenarios.py +0 -0
  82. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/e2e/workflows/__init__.py +0 -0
  83. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/e2e/workflows/test_core_workflows.py +0 -0
  84. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/e2e/workflows/test_deletion_workflows.py +0 -0
  85. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/e2e/workflows/test_error_handling_workflows.py +0 -0
  86. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/e2e/workflows/test_format_specific_workflows.py +0 -0
  87. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/e2e/workflows/test_rating_workflows.py +0 -0
  88. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/__init__.py +0 -0
  89. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/audio_format/__init__.py +0 -0
  90. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/audio_format/flac/__init__.py +0 -0
  91. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/audio_format/flac/test_flac_delete_all.py +0 -0
  92. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/audio_format/flac/test_flac_reading_all.py +0 -0
  93. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/audio_format/flac/test_flac_reading_field.py +0 -0
  94. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/audio_format/flac/test_flac_writing.py +0 -0
  95. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/audio_format/mp3/__init__.py +0 -0
  96. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/audio_format/mp3/test_mp3_delete_all.py +0 -0
  97. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/audio_format/mp3/test_mp3_reading_all.py +0 -0
  98. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/audio_format/mp3/test_mp3_reading_field.py +0 -0
  99. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/audio_format/mp3/test_mp3_writing.py +0 -0
  100. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/audio_format/wav/__init__.py +0 -0
  101. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/audio_format/wav/test_wav_delete_all.py +0 -0
  102. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/audio_format/wav/test_wav_reading_all.py +0 -0
  103. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/audio_format/wav/test_wav_reading_field.py +0 -0
  104. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/audio_format/wav/test_wav_with_id3v2_tags.py +0 -0
  105. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/audio_format/wav/test_wav_writing.py +0 -0
  106. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/conftest.py +0 -0
  107. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/delete_all_metadata/__init__.py +0 -0
  108. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/delete_all_metadata/test_audio_format_all.py +0 -0
  109. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/delete_all_metadata/test_audio_format_header_deletion.py +0 -0
  110. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/delete_all_metadata/test_basic_functionality.py +0 -0
  111. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/delete_all_metadata/test_error_handling.py +0 -0
  112. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/encoding/__init__.py +0 -0
  113. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/encoding/test_encoding.py +0 -0
  114. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/encoding/test_special_characters_edge_cases.py +0 -0
  115. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/get_full_metadata/__init__.py +0 -0
  116. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/get_full_metadata/test_binary_data_filtering.py +0 -0
  117. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/get_full_metadata/test_get_full_metadata.py +0 -0
  118. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/get_full_metadata/test_get_full_metadata_edge_cases.py +0 -0
  119. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/get_full_metadata/test_options.py +0 -0
  120. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/get_full_metadata/test_parsed_fields_keys.py +0 -0
  121. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/__init__.py +0 -0
  122. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/album/__init__.py +0 -0
  123. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/album/test_deleting.py +0 -0
  124. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/album/test_reading.py +0 -0
  125. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/album/test_writing.py +0 -0
  126. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/album_artists/__init__.py +0 -0
  127. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/album_artists/test_deleting.py +0 -0
  128. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/album_artists/test_reading.py +0 -0
  129. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/album_artists/test_writing.py +0 -0
  130. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/artists/__init__.py +0 -0
  131. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/artists/test_deleting.py +0 -0
  132. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/artists/test_reading.py +0 -0
  133. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/artists/test_writing.py +0 -0
  134. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/bpm/__init__.py +0 -0
  135. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/bpm/test_deleting.py +0 -0
  136. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/bpm/test_reading.py +0 -0
  137. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/bpm/test_writing.py +0 -0
  138. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/comment/__init__.py +0 -0
  139. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/comment/test_deleting.py +0 -0
  140. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/comment/test_reading.py +0 -0
  141. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/comment/test_writing.py +0 -0
  142. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/composer/__init__.py +0 -0
  143. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/composer/test_deleting.py +0 -0
  144. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/composer/test_reading.py +0 -0
  145. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/composer/test_writing.py +0 -0
  146. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/copyright/__init__.py +0 -0
  147. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/copyright/test_deleting.py +0 -0
  148. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/copyright/test_reading.py +0 -0
  149. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/copyright/test_writing.py +0 -0
  150. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/field_not_supported/__init__.py +0 -0
  151. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/field_not_supported/test_deleting.py +0 -0
  152. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/field_not_supported/test_reading.py +0 -0
  153. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/field_not_supported/test_writing.py +0 -0
  154. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/genre/__init__.py +0 -0
  155. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/genre/reading/__init__.py +0 -0
  156. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/genre/reading/metadata_format/__init__.py +0 -0
  157. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/genre/reading/metadata_format/test_id3v1_reading.py +0 -0
  158. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/genre/reading/metadata_format/test_id3v2_reading.py +0 -0
  159. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/genre/reading/metadata_format/test_riff_reading.py +0 -0
  160. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/genre/reading/metadata_format/test_vorbis_reading.py +0 -0
  161. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/genre/reading/test_smart_reading.py +0 -0
  162. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/genre/test_deleting.py +0 -0
  163. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/genre/test_writing.py +0 -0
  164. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/language/__init__.py +0 -0
  165. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/language/test_deleting.py +0 -0
  166. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/language/test_reading.py +0 -0
  167. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/language/test_writing.py +0 -0
  168. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/lyrics/__init__.py +0 -0
  169. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/lyrics/test_deleting.py +0 -0
  170. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/lyrics/test_reading.py +0 -0
  171. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/lyrics/test_writing.py +0 -0
  172. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/publisher/__init__.py +0 -0
  173. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/publisher/test_deleting.py +0 -0
  174. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/publisher/test_reading.py +0 -0
  175. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/publisher/test_writing.py +0 -0
  176. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/rating/__init__.py +0 -0
  177. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/rating/reading/__init__.py +0 -0
  178. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/rating/reading/test_base_100_proportional.py +0 -0
  179. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/rating/reading/test_base_255_non_proportional.py +0 -0
  180. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/rating/reading/test_base_255_proportional.py +0 -0
  181. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/rating/test_deleting.py +0 -0
  182. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/rating/test_error_handling.py +0 -0
  183. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/rating/writing/__init__.py +0 -0
  184. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/rating/writing/metadata_format/__init__.py +0 -0
  185. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/rating/writing/metadata_format/test_id3v2.py +0 -0
  186. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/rating/writing/metadata_format/test_riff.py +0 -0
  187. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/rating/writing/metadata_format/test_vorbis.py +0 -0
  188. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/rating/writing/test_comprehensive.py +0 -0
  189. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/release_date/__init__.py +0 -0
  190. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/release_date/test_deleting.py +0 -0
  191. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/release_date/test_error_handling.py +0 -0
  192. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/release_date/test_reading.py +0 -0
  193. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/release_date/test_writing.py +0 -0
  194. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/test_metadata_field_validation.py +0 -0
  195. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/title/__init__.py +0 -0
  196. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/title/test_deleting.py +0 -0
  197. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/title/test_error_handling.py +0 -0
  198. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/title/test_reading.py +0 -0
  199. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/title/test_writing.py +0 -0
  200. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/track_number/__init__.py +0 -0
  201. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/track_number/reading/__init__.py +0 -0
  202. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/track_number/reading/test_edge_cases.py +0 -0
  203. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/track_number/reading/test_metadata_format.py +0 -0
  204. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/track_number/test_deleting.py +0 -0
  205. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/metadata_field/track_number/test_writing.py +0 -0
  206. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/multiple_values/__init__.py +0 -0
  207. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/multiple_values/reading/__init__.py +0 -0
  208. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/multiple_values/reading/metadata_format/__init__.py +0 -0
  209. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/multiple_values/reading/metadata_format/test_id3v1.py +0 -0
  210. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/multiple_values/reading/metadata_format/test_id3v2_3.py +0 -0
  211. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/multiple_values/reading/metadata_format/test_id3v2_4.py +0 -0
  212. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/multiple_values/reading/metadata_format/test_riff.py +0 -0
  213. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/multiple_values/reading/metadata_format/test_vorbis.py +0 -0
  214. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/multiple_values/reading/test_performance_large_data.py +0 -0
  215. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/multiple_values/reading/test_smart_parsing_scenarios.py +0 -0
  216. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/multiple_values/reading/test_unicode_handling.py +0 -0
  217. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/multiple_values/writing/__init__.py +0 -0
  218. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/multiple_values/writing/metadata_format/__init__.py +0 -0
  219. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/multiple_values/writing/metadata_format/test_id3v1.py +0 -0
  220. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/multiple_values/writing/metadata_format/test_id3v2_3.py +0 -0
  221. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/multiple_values/writing/metadata_format/test_id3v2_4.py +0 -0
  222. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/multiple_values/writing/metadata_format/test_riff.py +0 -0
  223. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/multiple_values/writing/metadata_format/test_vorbis.py +0 -0
  224. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/multiple_values/writing/test_error_handling.py +0 -0
  225. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/multiple_values/writing/test_large_values.py +0 -0
  226. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/reading/__init__.py +0 -0
  227. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/reading/test_read_multiple_metadata.py +0 -0
  228. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/reading/test_reading_error_handling.py +0 -0
  229. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/real_audio_files/__init__.py +0 -0
  230. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/real_audio_files/test_reading.py +0 -0
  231. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/real_audio_files/test_writing.py +0 -0
  232. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/technical_info/__init__.py +0 -0
  233. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/technical_info/flac_md5/__init__.py +0 -0
  234. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/technical_info/flac_md5/conftest.py +0 -0
  235. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/technical_info/flac_md5/test_invalid_md5/__init__.py +0 -0
  236. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/technical_info/flac_md5/test_invalid_md5/test_audio_data_corruption.py +0 -0
  237. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/technical_info/flac_md5/test_invalid_md5/test_flipped_md5.py +0 -0
  238. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/technical_info/flac_md5/test_invalid_md5/test_non_flac_error.py +0 -0
  239. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/technical_info/flac_md5/test_invalid_md5/test_partial_md5.py +0 -0
  240. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/technical_info/flac_md5/test_invalid_md5/test_random_md5.py +0 -0
  241. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/technical_info/flac_md5/test_invalid_md5/test_unset_md5.py +0 -0
  242. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/technical_info/flac_md5/test_valid_md5.py +0 -0
  243. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/technical_info/test_bitrate.py +0 -0
  244. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/technical_info/test_channels.py +0 -0
  245. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/technical_info/test_duration_in_sec.py +0 -0
  246. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/technical_info/test_sample_rate.py +0 -0
  247. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/test_audio_file.py +0 -0
  248. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/test_audio_format_readable_after_update_all_metadata_formats.py +0 -0
  249. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/writing/__init__.py +0 -0
  250. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/writing/test_error_handling.py +0 -0
  251. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/writing/test_forced_format.py +0 -0
  252. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/writing/test_multiple_format_preservation.py +0 -0
  253. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/writing/test_partial_update.py +0 -0
  254. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/writing/writing_strategies/__init__.py +0 -0
  255. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/writing/writing_strategies/test_cleanup_strategy.py +0 -0
  256. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/writing/writing_strategies/test_preserve_strategy.py +0 -0
  257. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/writing/writing_strategies/test_sync_strategy.py +0 -0
  258. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/writing/writing_strategies/unsupported_fields/__init__.py +0 -0
  259. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/writing/writing_strategies/unsupported_fields/test_fail_behavior.py +0 -0
  260. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/writing/writing_strategies/unsupported_fields/test_no_writing_on_failure.py +0 -0
  261. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/integration/writing/writing_strategies/unsupported_fields/test_strategy_specific.py +0 -0
  262. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/__init__.py +0 -0
  263. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/audio_file/__init__.py +0 -0
  264. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/audio_file/technical_info/__init__.py +0 -0
  265. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/audio_file/technical_info/test_bitrate.py +0 -0
  266. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/audio_file/technical_info/test_channels.py +0 -0
  267. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/audio_file/technical_info/test_duration_in_sec.py +0 -0
  268. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/audio_file/technical_info/test_error_handling.py +0 -0
  269. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/audio_file/technical_info/test_file_size.py +0 -0
  270. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/audio_file/technical_info/test_format_name.py +0 -0
  271. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/audio_file/technical_info/test_sample_rate.py +0 -0
  272. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/audio_file/test_context_manager.py +0 -0
  273. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/audio_file/test_file_validation.py +0 -0
  274. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/audio_file/test_operations.py +0 -0
  275. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/audio_file/test_path_handling.py +0 -0
  276. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/cli/__init__.py +0 -0
  277. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/cli/test_expand_file_patterns.py +0 -0
  278. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/metadata_managers/__init__.py +0 -0
  279. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/metadata_managers/conftest.py +0 -0
  280. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/metadata_managers/header_info/__init__.py +0 -0
  281. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/metadata_managers/header_info/test_id3v1.py +0 -0
  282. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/metadata_managers/header_info/test_id3v2.py +0 -0
  283. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/metadata_managers/header_info/test_riff.py +0 -0
  284. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/metadata_managers/header_info/test_vorbis.py +0 -0
  285. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/metadata_managers/metadata_field/__init__.py +0 -0
  286. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/metadata_managers/metadata_field/multiple_values/__init__.py +0 -0
  287. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/metadata_managers/metadata_field/multiple_values/reading/__init__.py +0 -0
  288. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/metadata_managers/metadata_field/multiple_values/reading/test_smart_parsing.py +0 -0
  289. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/metadata_managers/metadata_field/multiple_values/writing/__init__.py +0 -0
  290. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/metadata_managers/metadata_field/multiple_values/writing/test_separator_selection.py +0 -0
  291. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/metadata_managers/metadata_field/multiple_values/writing/test_value_filtering.py +0 -0
  292. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/metadata_managers/metadata_field/rating/__init__.py +0 -0
  293. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/metadata_managers/metadata_field/rating/reading/__init__.py +0 -0
  294. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/metadata_managers/metadata_field/rating/reading/test_normalization.py +0 -0
  295. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/metadata_managers/metadata_field/rating/reading/test_profiles_values.py +0 -0
  296. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/metadata_managers/metadata_field/rating/test_rating_validation.py +0 -0
  297. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/metadata_managers/metadata_field/rating/writing/__init__.py +0 -0
  298. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/metadata_managers/metadata_field/rating/writing/test_validation.py +0 -0
  299. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/metadata_managers/metadata_field/rating/writing/test_writing_profiles.py +0 -0
  300. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/metadata_managers/metadata_field/test_date_format_validation.py +0 -0
  301. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/metadata_managers/metadata_field/test_track_number_validation.py +0 -0
  302. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/metadata_managers/metadata_field/test_type_validation_exception.py +0 -0
  303. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/metadata_managers/metadata_field/test_validation.py +0 -0
  304. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/test/tests/unit/metadata_managers/test_metadata_format_managers_write_and_read.py +0 -0
  305. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/utils/__init__.py +0 -0
  306. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/utils/id3v1_genre_code_map.py +0 -0
  307. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/utils/metadata_format.py +0 -0
  308. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/utils/metadata_writing_strategy.py +0 -0
  309. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/utils/os_dependencies_checker/__init__.py +0 -0
  310. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/utils/os_dependencies_checker/base.py +0 -0
  311. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/utils/os_dependencies_checker/macos.py +0 -0
  312. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/utils/os_dependencies_checker/ubuntu.py +0 -0
  313. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/utils/os_dependencies_checker/windows.py +0 -0
  314. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/utils/rating_profiles.py +0 -0
  315. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/utils/tool_path_resolver.py +0 -0
  316. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/utils/types.py +0 -0
  317. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa/utils/unified_metadata_key.py +0 -0
  318. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa_python.egg-info/SOURCES.txt +0 -0
  319. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa_python.egg-info/dependency_links.txt +0 -0
  320. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa_python.egg-info/entry_points.txt +0 -0
  321. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa_python.egg-info/requires.txt +0 -0
  322. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/audiometa_python.egg-info/top_level.txt +0 -0
  323. {audiometa_python-0.2.2 → audiometa_python-0.2.5}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: audiometa-python
3
- Version: 0.2.2
3
+ Version: 0.2.5
4
4
  Summary: A comprehensive Python library for reading and writing audio metadata across multiple formats
5
5
  Author: AudioMeta Python Contributors
6
6
  Author-email: Andreas Garcia <garcia.andreas.1991@gmail.com>
@@ -49,9 +49,9 @@ Dynamic: license-file
49
49
  [![Python](https://img.shields.io/badge/python-3.12%20%7C%203.13-blue)](https://www.python.org/)
50
50
  [![License](https://img.shields.io/badge/license-Apache%202.0-green.svg)](LICENSE)
51
51
  [![PyPI version](https://img.shields.io/pypi/v/audiometa-python)](https://pypi.org/project/audiometa-python/)
52
- [![PyPI downloads/month](https://img.shields.io/pypi/dm/audiometa-python)](https://pypi.org/project/audiometa-python/)
53
- [![PyPI downloads/week](https://img.shields.io/pypi/dw/audiometa-python)](https://pypi.org/project/audiometa-python/)
54
- [![Version](https://img.shields.io/badge/version-0.2.2-orange)](https://github.com/Andreas-Garcia/audiometa)
52
+ [![PyPI downloads/month](https://img.shields.io/pypi/dm/audiometa-python?cacheSeconds=86400)](https://pypi.org/project/audiometa-python/)
53
+ [![PyPI downloads/week](https://img.shields.io/pypi/dw/audiometa-python?cacheSeconds=86400)](https://pypi.org/project/audiometa-python/)
54
+ [![Version](https://img.shields.io/badge/version-0.2.5-orange)](https://github.com/Andreas-Garcia/audiometa)
55
55
 
56
56
  A powerful, unified Python library for reading and writing audio metadata across multiple formats. AudioMeta supports MP3, FLAC, and WAV audio files, working seamlessly with ID3v1, ID3v2, Vorbis, and RIFF metadata formats through a single, consistent API.
57
57
 
@@ -246,7 +246,13 @@ These scripts install all required tools with pinned versions that match CI:
246
246
  - **mediainfo** - Only for integration test verification
247
247
  - **exiftool** - Only for integration test verification
248
248
 
249
- **Pinned versions:** All tool versions are pinned in [`system-dependencies.toml`](system-dependencies.toml) (the single source of truth). The scripts verify installed versions match these pinned versions. See `system-dependencies.toml` for the complete configuration and OS-specific version details.
249
+ **Pinned versions:** All tool versions are pinned in separate configuration files (the single source of truth):
250
+
251
+ - [`system-dependencies-prod.toml`](system-dependencies-prod.toml) - Production dependencies (ffmpeg, flac, id3v2)
252
+ - [`system-dependencies-test-only.toml`](system-dependencies-test-only.toml) - Test-only dependencies (mediainfo, exiftool, bwfmetaedit, libsndfile) - supplementary to prod dependencies
253
+ - [`system-dependencies-lint.toml`](system-dependencies-lint.toml) - Lint dependencies (PowerShell)
254
+
255
+ The scripts verify installed versions match these pinned versions. See the configuration files for complete details and OS-specific version information.
250
256
 
251
257
  **Note for Windows users:**
252
258
 
@@ -262,7 +268,7 @@ ffprobe -version
262
268
  flac --version
263
269
  ```
264
270
 
265
- The installation scripts automatically verify installed versions match pinned versions from `system-dependencies.toml`.
271
+ The installation scripts automatically verify installed versions match pinned versions from `system-dependencies-prod.toml`, `system-dependencies-test-only.toml`, and `system-dependencies-lint.toml`.
266
272
 
267
273
  #### External Tools Usage
268
274
 
@@ -8,9 +8,9 @@
8
8
  [![Python](https://img.shields.io/badge/python-3.12%20%7C%203.13-blue)](https://www.python.org/)
9
9
  [![License](https://img.shields.io/badge/license-Apache%202.0-green.svg)](LICENSE)
10
10
  [![PyPI version](https://img.shields.io/pypi/v/audiometa-python)](https://pypi.org/project/audiometa-python/)
11
- [![PyPI downloads/month](https://img.shields.io/pypi/dm/audiometa-python)](https://pypi.org/project/audiometa-python/)
12
- [![PyPI downloads/week](https://img.shields.io/pypi/dw/audiometa-python)](https://pypi.org/project/audiometa-python/)
13
- [![Version](https://img.shields.io/badge/version-0.2.2-orange)](https://github.com/Andreas-Garcia/audiometa)
11
+ [![PyPI downloads/month](https://img.shields.io/pypi/dm/audiometa-python?cacheSeconds=86400)](https://pypi.org/project/audiometa-python/)
12
+ [![PyPI downloads/week](https://img.shields.io/pypi/dw/audiometa-python?cacheSeconds=86400)](https://pypi.org/project/audiometa-python/)
13
+ [![Version](https://img.shields.io/badge/version-0.2.5-orange)](https://github.com/Andreas-Garcia/audiometa)
14
14
 
15
15
  A powerful, unified Python library for reading and writing audio metadata across multiple formats. AudioMeta supports MP3, FLAC, and WAV audio files, working seamlessly with ID3v1, ID3v2, Vorbis, and RIFF metadata formats through a single, consistent API.
16
16
 
@@ -205,7 +205,13 @@ These scripts install all required tools with pinned versions that match CI:
205
205
  - **mediainfo** - Only for integration test verification
206
206
  - **exiftool** - Only for integration test verification
207
207
 
208
- **Pinned versions:** All tool versions are pinned in [`system-dependencies.toml`](system-dependencies.toml) (the single source of truth). The scripts verify installed versions match these pinned versions. See `system-dependencies.toml` for the complete configuration and OS-specific version details.
208
+ **Pinned versions:** All tool versions are pinned in separate configuration files (the single source of truth):
209
+
210
+ - [`system-dependencies-prod.toml`](system-dependencies-prod.toml) - Production dependencies (ffmpeg, flac, id3v2)
211
+ - [`system-dependencies-test-only.toml`](system-dependencies-test-only.toml) - Test-only dependencies (mediainfo, exiftool, bwfmetaedit, libsndfile) - supplementary to prod dependencies
212
+ - [`system-dependencies-lint.toml`](system-dependencies-lint.toml) - Lint dependencies (PowerShell)
213
+
214
+ The scripts verify installed versions match these pinned versions. See the configuration files for complete details and OS-specific version information.
209
215
 
210
216
  **Note for Windows users:**
211
217
 
@@ -221,7 +227,7 @@ ffprobe -version
221
227
  flac --version
222
228
  ```
223
229
 
224
- The installation scripts automatically verify installed versions match pinned versions from `system-dependencies.toml`.
230
+ The installation scripts automatically verify installed versions match pinned versions from `system-dependencies-prod.toml`, `system-dependencies-test-only.toml`, and `system-dependencies-lint.toml`.
225
231
 
226
232
  #### External Tools Usage
227
233
 
@@ -4,22 +4,48 @@ import tomllib
4
4
  from pathlib import Path
5
5
 
6
6
 
7
+ def _load_config_file(project_root: Path, filename: str) -> dict | None:
8
+ """Load a TOML configuration file."""
9
+ config_path = project_root / filename
10
+ if not config_path.exists():
11
+ return None
12
+
13
+ try:
14
+ with config_path.open("rb") as f:
15
+ return tomllib.load(f)
16
+ except Exception:
17
+ return None
18
+
19
+
7
20
  def load_dependencies_pinned_versions() -> dict[str, dict[str, str]] | None:
8
- """Load pinned versions from system-dependencies.toml.
21
+ """Load pinned versions from system-dependencies-prod.toml and system-dependencies-test-only.toml.
9
22
 
10
23
  Returns:
11
24
  Dictionary mapping tool names to OS-specific versions, or None if config not found
12
25
  """
13
- # Try to find system-dependencies.toml relative to this file
26
+ # Try to find config files relative to this file
14
27
  # This file is in audiometa/utils/os_dependencies_checker/, so go up to project root
15
- config_path = Path(__file__).parent.parent.parent.parent / "system-dependencies.toml"
28
+ project_root = Path(__file__).parent.parent.parent.parent
16
29
 
17
- if not config_path.exists():
30
+ # Load prod and test configs
31
+ prod_config = _load_config_file(project_root, "system-dependencies-prod.toml")
32
+ test_config = _load_config_file(project_root, "system-dependencies-test-only.toml")
33
+
34
+ if not prod_config and not test_config:
18
35
  return None
19
36
 
20
37
  try:
21
- with config_path.open("rb") as f:
22
- config = tomllib.load(f)
38
+ # Merge configs (test can override prod if needed, though they shouldn't overlap)
39
+ config = {}
40
+ if prod_config:
41
+ config.update(prod_config)
42
+ if test_config:
43
+ # Merge OS sections
44
+ for os_type in ["ubuntu", "macos", "windows"]:
45
+ if os_type in test_config:
46
+ if os_type not in config:
47
+ config[os_type] = {}
48
+ config[os_type].update(test_config[os_type])
23
49
 
24
50
  pinned_versions: dict[str, dict[str, str]] = {}
25
51
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: audiometa-python
3
- Version: 0.2.2
3
+ Version: 0.2.5
4
4
  Summary: A comprehensive Python library for reading and writing audio metadata across multiple formats
5
5
  Author: AudioMeta Python Contributors
6
6
  Author-email: Andreas Garcia <garcia.andreas.1991@gmail.com>
@@ -49,9 +49,9 @@ Dynamic: license-file
49
49
  [![Python](https://img.shields.io/badge/python-3.12%20%7C%203.13-blue)](https://www.python.org/)
50
50
  [![License](https://img.shields.io/badge/license-Apache%202.0-green.svg)](LICENSE)
51
51
  [![PyPI version](https://img.shields.io/pypi/v/audiometa-python)](https://pypi.org/project/audiometa-python/)
52
- [![PyPI downloads/month](https://img.shields.io/pypi/dm/audiometa-python)](https://pypi.org/project/audiometa-python/)
53
- [![PyPI downloads/week](https://img.shields.io/pypi/dw/audiometa-python)](https://pypi.org/project/audiometa-python/)
54
- [![Version](https://img.shields.io/badge/version-0.2.2-orange)](https://github.com/Andreas-Garcia/audiometa)
52
+ [![PyPI downloads/month](https://img.shields.io/pypi/dm/audiometa-python?cacheSeconds=86400)](https://pypi.org/project/audiometa-python/)
53
+ [![PyPI downloads/week](https://img.shields.io/pypi/dw/audiometa-python?cacheSeconds=86400)](https://pypi.org/project/audiometa-python/)
54
+ [![Version](https://img.shields.io/badge/version-0.2.5-orange)](https://github.com/Andreas-Garcia/audiometa)
55
55
 
56
56
  A powerful, unified Python library for reading and writing audio metadata across multiple formats. AudioMeta supports MP3, FLAC, and WAV audio files, working seamlessly with ID3v1, ID3v2, Vorbis, and RIFF metadata formats through a single, consistent API.
57
57
 
@@ -246,7 +246,13 @@ These scripts install all required tools with pinned versions that match CI:
246
246
  - **mediainfo** - Only for integration test verification
247
247
  - **exiftool** - Only for integration test verification
248
248
 
249
- **Pinned versions:** All tool versions are pinned in [`system-dependencies.toml`](system-dependencies.toml) (the single source of truth). The scripts verify installed versions match these pinned versions. See `system-dependencies.toml` for the complete configuration and OS-specific version details.
249
+ **Pinned versions:** All tool versions are pinned in separate configuration files (the single source of truth):
250
+
251
+ - [`system-dependencies-prod.toml`](system-dependencies-prod.toml) - Production dependencies (ffmpeg, flac, id3v2)
252
+ - [`system-dependencies-test-only.toml`](system-dependencies-test-only.toml) - Test-only dependencies (mediainfo, exiftool, bwfmetaedit, libsndfile) - supplementary to prod dependencies
253
+ - [`system-dependencies-lint.toml`](system-dependencies-lint.toml) - Lint dependencies (PowerShell)
254
+
255
+ The scripts verify installed versions match these pinned versions. See the configuration files for complete details and OS-specific version information.
250
256
 
251
257
  **Note for Windows users:**
252
258
 
@@ -262,7 +268,7 @@ ffprobe -version
262
268
  flac --version
263
269
  ```
264
270
 
265
- The installation scripts automatically verify installed versions match pinned versions from `system-dependencies.toml`.
271
+ The installation scripts automatically verify installed versions match pinned versions from `system-dependencies-prod.toml`, `system-dependencies-test-only.toml`, and `system-dependencies-lint.toml`.
266
272
 
267
273
  #### External Tools Usage
268
274
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "audiometa-python"
7
- version = "0.2.2"
7
+ version = "0.2.5"
8
8
  description = "A comprehensive Python library for reading and writing audio metadata across multiple formats"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.12"