gukebox 1.0.0.dev11__tar.gz → 1.0.0.dev12__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 (117) hide show
  1. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/PKG-INFO +1 -1
  2. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/adapters/outbound/json_library_adapter.py +3 -2
  3. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/pyproject.toml +1 -1
  4. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/LICENSE +0 -0
  5. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/README.md +0 -0
  6. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/__init__.py +0 -0
  7. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/adapters/__init__.py +0 -0
  8. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/adapters/inbound/__init__.py +0 -0
  9. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/adapters/inbound/api/__init__.py +0 -0
  10. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/adapters/inbound/api/current_tag_router.py +0 -0
  11. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/adapters/inbound/api/discs_router.py +0 -0
  12. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/adapters/inbound/api/models.py +0 -0
  13. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/adapters/inbound/api/settings_router.py +0 -0
  14. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/adapters/inbound/api_controller.py +0 -0
  15. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/adapters/inbound/cli_controller.py +0 -0
  16. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/adapters/inbound/cli_display.py +0 -0
  17. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/adapters/inbound/interactive_cli_controller.py +0 -0
  18. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/adapters/inbound/ui_controller.py +0 -0
  19. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/adapters/inbound/ui_pages/__init__.py +0 -0
  20. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/adapters/inbound/ui_pages/library.py +0 -0
  21. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/adapters/inbound/ui_pages/settings.py +0 -0
  22. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/adapters/inbound/ui_pages/sonos.py +0 -0
  23. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/adapters/outbound/__init__.py +0 -0
  24. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/adapters/outbound/json_library_adapter.py +0 -0
  25. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/adapters/outbound/text_current_tag_adapter.py +0 -0
  26. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/command_handlers.py +0 -0
  27. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/commands.py +0 -0
  28. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/di_container.py +0 -0
  29. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/domain/__init__.py +0 -0
  30. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/domain/entities/__init__.py +0 -0
  31. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/domain/entities/current_tag_status.py +0 -0
  32. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/domain/repositories/__init__.py +0 -0
  33. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/domain/use_cases/__init__.py +0 -0
  34. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/domain/use_cases/add_disc.py +0 -0
  35. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/domain/use_cases/edit_disc.py +0 -0
  36. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/domain/use_cases/get_current_tag_status.py +0 -0
  37. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/domain/use_cases/get_disc.py +0 -0
  38. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/domain/use_cases/list_discs.py +0 -0
  39. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/domain/use_cases/remove_disc.py +0 -0
  40. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/domain/use_cases/resolve_tag_id.py +0 -0
  41. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/discstore/domain/use_cases/search_discs.py +0 -0
  42. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/__init__.py +0 -0
  43. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/adapters/__init__.py +0 -0
  44. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/adapters/inbound/__init__.py +0 -0
  45. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/adapters/inbound/cli_controller.py +0 -0
  46. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/adapters/inbound/config.py +0 -0
  47. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/adapters/outbound/__init__.py +0 -0
  48. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/adapters/outbound/players/__init__.py +0 -0
  49. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/adapters/outbound/players/dryrun_player_adapter.py +0 -0
  50. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/adapters/outbound/players/sonos_player_adapter.py +0 -0
  51. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/adapters/outbound/readers/__init__.py +0 -0
  52. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/adapters/outbound/readers/dryrun_reader_adapter.py +0 -0
  53. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/adapters/outbound/readers/pn532_reader_adapter.py +0 -0
  54. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/adapters/outbound/sonos_discovery_adapter.py +0 -0
  55. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/adapters/outbound/text_current_tag_adapter.py +0 -0
  56. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/admin/__init__.py +0 -0
  57. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/admin/app.py +0 -0
  58. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/admin/cli_presentation.py +0 -0
  59. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/admin/command_handlers.py +0 -0
  60. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/admin/commands.py +0 -0
  61. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/admin/di_container.py +0 -0
  62. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/admin/pn532_command_handlers.py +0 -0
  63. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/admin/pn532_commands.py +0 -0
  64. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/admin/services.py +0 -0
  65. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/admin/sonos_households.py +0 -0
  66. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/app.py +0 -0
  67. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/di_container.py +0 -0
  68. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/domain/__init__.py +0 -0
  69. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/domain/entities/__init__.py +0 -0
  70. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/domain/entities/current_tag_action.py +0 -0
  71. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/domain/entities/disc.py +0 -0
  72. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/domain/entities/library.py +0 -0
  73. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/domain/entities/playback_action.py +0 -0
  74. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/domain/entities/playback_session.py +0 -0
  75. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/domain/entities/tag_event.py +0 -0
  76. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/domain/ports/__init__.py +0 -0
  77. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/domain/ports/player_port.py +0 -0
  78. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/domain/ports/reader_port.py +0 -0
  79. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/domain/repositories/__init__.py +0 -0
  80. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/domain/repositories/current_tag_repository.py +0 -0
  81. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/domain/repositories/library_repository.py +0 -0
  82. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/domain/use_cases/__init__.py +0 -0
  83. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/domain/use_cases/determine_action.py +0 -0
  84. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/domain/use_cases/determine_current_tag_action.py +0 -0
  85. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/domain/use_cases/handle_tag_event.py +0 -0
  86. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/pn532/__init__.py +0 -0
  87. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/pn532/profiles.py +0 -0
  88. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/settings/__init__.py +0 -0
  89. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/settings/definitions.py +0 -0
  90. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/settings/dict_utils.py +0 -0
  91. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/settings/entities.py +0 -0
  92. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/settings/errors.py +0 -0
  93. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/settings/file_settings_repository.py +0 -0
  94. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/settings/migration.py +0 -0
  95. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/settings/repositories.py +0 -0
  96. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/settings/resolve.py +0 -0
  97. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/settings/runtime_resolver.py +0 -0
  98. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/settings/runtime_validation.py +0 -0
  99. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/settings/selected_sonos_group_repository.py +0 -0
  100. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/settings/service_protocols.py +0 -0
  101. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/settings/timing_validation.py +0 -0
  102. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/settings/types.py +0 -0
  103. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/settings/validation_rules.py +0 -0
  104. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/settings/view_utils.py +0 -0
  105. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/shared/__init__.py +0 -0
  106. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/shared/config_utils.py +0 -0
  107. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/shared/dependency_messages.py +0 -0
  108. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/shared/logger.py +0 -0
  109. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/shared/terminal_ui.py +0 -0
  110. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/shared/timing.py +0 -0
  111. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/sonos/__init__.py +0 -0
  112. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/sonos/discovery.py +0 -0
  113. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/sonos/selection.py +0 -0
  114. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/jukebox/sonos/service.py +0 -0
  115. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/pn532/__init__.py +0 -0
  116. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/pn532/pn532.py +0 -0
  117. {gukebox-1.0.0.dev11 → gukebox-1.0.0.dev12}/pn532/spi.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: gukebox
3
- Version: 1.0.0.dev11
3
+ Version: 1.0.0.dev12
4
4
  Summary: A Jukebox to play music on speakers using 'CD' with NFC tag
5
5
  Keywords: jukebox,music,nfc
6
6
  Author: Gudsfile
@@ -26,8 +26,8 @@ class JsonLibraryAdapter(LibraryRepository):
26
26
  with open(self.filepath, "r", encoding="utf-8") as f:
27
27
  data = json.load(f)
28
28
  return Library.model_validate(data)
29
- except FileNotFoundError as err:
30
- LOGGER.warning(f"File not found, continuing with an empty library: filepath: {self.filepath}, error: {err}")
29
+ except FileNotFoundError:
30
+ LOGGER.warning(f"No library file found, starting with an empty library: {self.filepath}")
31
31
  return Library()
32
32
  except (json.JSONDecodeError, ValidationError) as err:
33
33
  LOGGER.warning(
@@ -37,6 +37,7 @@ class JsonLibraryAdapter(LibraryRepository):
37
37
 
38
38
  def _write_library(self, library: Library) -> None:
39
39
  directory = os.path.dirname(self.filepath) or "."
40
+ os.makedirs(directory, exist_ok=True)
40
41
  temp_fd, temp_path = tempfile.mkstemp(dir=directory, prefix=".library-", suffix=".json")
41
42
 
42
43
  try:
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "gukebox"
3
- version = "1.0.0.dev11"
3
+ version = "1.0.0.dev12"
4
4
  description = "A Jukebox to play music on speakers using 'CD' with NFC tag"
5
5
  authors = [{ name = "Gudsfile" }]
6
6
  readme = "README.md"
File without changes
File without changes