gukebox 1.3.1__tar.gz → 1.3.2.dev1__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 (108) hide show
  1. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/PKG-INFO +1 -1
  2. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/admin/di_container.py +9 -4
  3. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/settings/resolve.py +5 -3
  4. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/pyproject.toml +1 -1
  5. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/LICENSE +0 -0
  6. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/README.md +0 -0
  7. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/__init__.py +0 -0
  8. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/adapters/__init__.py +0 -0
  9. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/adapters/inbound/__init__.py +0 -0
  10. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/adapters/inbound/admin/__init__.py +0 -0
  11. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/adapters/inbound/admin/api/__init__.py +0 -0
  12. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/adapters/inbound/admin/api/current_tag_router.py +0 -0
  13. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/adapters/inbound/admin/api/discs_router.py +0 -0
  14. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/adapters/inbound/admin/api/models.py +0 -0
  15. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/adapters/inbound/admin/api/settings_router.py +0 -0
  16. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/adapters/inbound/admin/api_controller.py +0 -0
  17. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/adapters/inbound/admin/cli_controller.py +0 -0
  18. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/adapters/inbound/admin/cli_display.py +0 -0
  19. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/adapters/inbound/admin/interactive_cli_controller.py +0 -0
  20. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/adapters/inbound/admin/ui_controller.py +0 -0
  21. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/adapters/inbound/admin/ui_pages/__init__.py +0 -0
  22. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/adapters/inbound/admin/ui_pages/library.py +0 -0
  23. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/adapters/inbound/admin/ui_pages/settings.py +0 -0
  24. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/adapters/inbound/admin/ui_pages/sonos.py +0 -0
  25. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/adapters/inbound/cli_controller.py +0 -0
  26. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/adapters/outbound/__init__.py +0 -0
  27. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/adapters/outbound/json_library_adapter.py +0 -0
  28. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/adapters/outbound/players/__init__.py +0 -0
  29. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/adapters/outbound/players/dryrun_player_adapter.py +0 -0
  30. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/adapters/outbound/players/sonos_player_adapter.py +0 -0
  31. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/adapters/outbound/readers/__init__.py +0 -0
  32. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/adapters/outbound/readers/dryrun_reader_adapter.py +0 -0
  33. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/adapters/outbound/readers/pn532_reader_adapter.py +0 -0
  34. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/adapters/outbound/sonos_discovery_adapter.py +0 -0
  35. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/adapters/outbound/text_current_tag_adapter.py +0 -0
  36. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/admin/__init__.py +0 -0
  37. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/admin/app.py +0 -0
  38. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/admin/cli_presentation.py +0 -0
  39. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/admin/command_handlers.py +0 -0
  40. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/admin/commands.py +0 -0
  41. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/admin/library_command_handlers.py +0 -0
  42. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/admin/library_commands.py +0 -0
  43. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/admin/pn532_command_handlers.py +0 -0
  44. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/admin/pn532_commands.py +0 -0
  45. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/admin/services.py +0 -0
  46. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/admin/sonos_households.py +0 -0
  47. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/app.py +0 -0
  48. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/di_container.py +0 -0
  49. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/domain/__init__.py +0 -0
  50. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/domain/entities/__init__.py +0 -0
  51. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/domain/entities/current_tag_action.py +0 -0
  52. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/domain/entities/current_tag_status.py +0 -0
  53. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/domain/entities/disc.py +0 -0
  54. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/domain/entities/library.py +0 -0
  55. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/domain/entities/playback_action.py +0 -0
  56. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/domain/entities/playback_session.py +0 -0
  57. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/domain/entities/tag_event.py +0 -0
  58. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/domain/errors.py +0 -0
  59. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/domain/ports/__init__.py +0 -0
  60. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/domain/ports/player_port.py +0 -0
  61. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/domain/ports/reader_port.py +0 -0
  62. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/domain/repositories/__init__.py +0 -0
  63. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/domain/repositories/current_tag_repository.py +0 -0
  64. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/domain/repositories/library_repository.py +0 -0
  65. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/domain/use_cases/__init__.py +0 -0
  66. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/domain/use_cases/determine_action.py +0 -0
  67. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/domain/use_cases/determine_current_tag_action.py +0 -0
  68. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/domain/use_cases/handle_tag_event.py +0 -0
  69. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/domain/use_cases/library/__init__.py +0 -0
  70. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/domain/use_cases/library/add_disc.py +0 -0
  71. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/domain/use_cases/library/edit_disc.py +0 -0
  72. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/domain/use_cases/library/get_current_tag_status.py +0 -0
  73. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/domain/use_cases/library/get_disc.py +0 -0
  74. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/domain/use_cases/library/list_discs.py +0 -0
  75. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/domain/use_cases/library/remove_disc.py +0 -0
  76. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/domain/use_cases/library/resolve_tag_id.py +0 -0
  77. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/domain/use_cases/library/search_discs.py +0 -0
  78. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/pn532/__init__.py +0 -0
  79. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/pn532/profiles.py +0 -0
  80. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/settings/__init__.py +0 -0
  81. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/settings/definitions.py +0 -0
  82. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/settings/dict_utils.py +0 -0
  83. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/settings/entities.py +0 -0
  84. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/settings/errors.py +0 -0
  85. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/settings/file_settings_repository.py +0 -0
  86. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/settings/migration.py +0 -0
  87. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/settings/repositories.py +0 -0
  88. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/settings/runtime_resolver.py +0 -0
  89. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/settings/runtime_validation.py +0 -0
  90. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/settings/selected_sonos_group_repository.py +0 -0
  91. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/settings/service_protocols.py +0 -0
  92. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/settings/timing_validation.py +0 -0
  93. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/settings/types.py +0 -0
  94. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/settings/validation_rules.py +0 -0
  95. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/settings/view_utils.py +0 -0
  96. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/shared/__init__.py +0 -0
  97. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/shared/config_utils.py +0 -0
  98. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/shared/errors.py +0 -0
  99. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/shared/logger.py +0 -0
  100. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/shared/terminal_ui.py +0 -0
  101. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/shared/timing.py +0 -0
  102. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/sonos/__init__.py +0 -0
  103. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/sonos/discovery.py +0 -0
  104. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/sonos/selection.py +0 -0
  105. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/jukebox/sonos/service.py +0 -0
  106. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/pn532/__init__.py +0 -0
  107. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/pn532/pn532.py +0 -0
  108. {gukebox-1.3.1 → gukebox-1.3.2.dev1}/pn532/spi.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: gukebox
3
- Version: 1.3.1
3
+ Version: 1.3.2.dev1
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
@@ -1,3 +1,5 @@
1
+ from typing import cast
2
+
1
3
  from jukebox.adapters.outbound.json_library_adapter import JsonLibraryAdapter
2
4
  from jukebox.adapters.outbound.sonos_discovery_adapter import SoCoSonosDiscoveryAdapter
3
5
  from jukebox.adapters.outbound.text_current_tag_adapter import TextCurrentTagAdapter
@@ -13,6 +15,7 @@ from jukebox.settings.file_settings_repository import FileSettingsRepository
13
15
  from jukebox.settings.resolve import SettingsService as SettingsServiceImpl
14
16
  from jukebox.settings.resolve import build_environment_settings_overrides
15
17
  from jukebox.settings.service_protocols import SettingsService
18
+ from jukebox.settings.types import JsonObject
16
19
  from jukebox.shared.config_utils import get_current_tag_path
17
20
  from jukebox.sonos.service import DefaultSonosService, SonosService
18
21
 
@@ -24,16 +27,18 @@ def build_settings_service(
24
27
  library: str | None,
25
28
  command: object | None,
26
29
  ) -> SettingsService:
27
- cli_overrides = {}
30
+ cli_overrides: JsonObject = {}
28
31
 
29
32
  if library is not None:
30
- cli_overrides.setdefault("paths", {})["library_path"] = library
33
+ cast(JsonObject, cli_overrides.setdefault("paths", {}))["library_path"] = library
31
34
 
32
35
  if isinstance(command, ApiCommand) and command.port is not None:
33
- cli_overrides.setdefault("admin", {}).setdefault("api", {})["port"] = command.port
36
+ admin = cast(JsonObject, cli_overrides.setdefault("admin", {}))
37
+ cast(JsonObject, admin.setdefault("api", {}))["port"] = command.port
34
38
 
35
39
  if isinstance(command, UiCommand) and command.port is not None:
36
- cli_overrides.setdefault("admin", {}).setdefault("ui", {})["port"] = command.port
40
+ admin = cast(JsonObject, cli_overrides.setdefault("admin", {}))
41
+ cast(JsonObject, admin.setdefault("ui", {}))["port"] = command.port
37
42
 
38
43
  return SettingsServiceImpl(
39
44
  repository=FileSettingsRepository(),
@@ -31,16 +31,18 @@ _MISSING = object()
31
31
 
32
32
 
33
33
  def build_environment_settings_overrides() -> JsonObject:
34
- overrides = {}
34
+ overrides: JsonObject = {}
35
35
 
36
36
  library_path = os.environ.get("JUKEBOX_LIBRARY_PATH")
37
37
  if library_path is not None:
38
- overrides.setdefault("paths", {})["library_path"] = library_path
38
+ cast(JsonObject, overrides.setdefault("paths", {}))["library_path"] = library_path
39
39
 
40
40
  sonos_host = os.environ.get("JUKEBOX_SONOS_HOST")
41
41
  sonos_name = os.environ.get("JUKEBOX_SONOS_NAME")
42
42
  if sonos_host is not None or sonos_name is not None:
43
- sonos_overrides = overrides.setdefault("jukebox", {}).setdefault("player", {}).setdefault("sonos", {})
43
+ jukebox = cast(JsonObject, overrides.setdefault("jukebox", {}))
44
+ player = cast(JsonObject, jukebox.setdefault("player", {}))
45
+ sonos_overrides = cast(JsonObject, player.setdefault("sonos", {}))
44
46
  sonos_overrides["manual_host"] = sonos_host
45
47
  sonos_overrides["manual_name"] = sonos_name
46
48
  sonos_overrides["selected_group"] = None
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "gukebox"
3
- version = "1.3.1"
3
+ version = "1.3.2.dev1"
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
File without changes
File without changes
File without changes
File without changes