mycelium-ai 0.5.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.
Files changed (164) hide show
  1. mycelium/__init__.py +0 -0
  2. mycelium/api/__init__.py +0 -0
  3. mycelium/api/app.py +1147 -0
  4. mycelium/api/client_app.py +170 -0
  5. mycelium/api/generated_sources/__init__.py +0 -0
  6. mycelium/api/generated_sources/server_schemas/__init__.py +97 -0
  7. mycelium/api/generated_sources/server_schemas/api/__init__.py +5 -0
  8. mycelium/api/generated_sources/server_schemas/api/default_api.py +2473 -0
  9. mycelium/api/generated_sources/server_schemas/api_client.py +766 -0
  10. mycelium/api/generated_sources/server_schemas/api_response.py +25 -0
  11. mycelium/api/generated_sources/server_schemas/configuration.py +434 -0
  12. mycelium/api/generated_sources/server_schemas/exceptions.py +166 -0
  13. mycelium/api/generated_sources/server_schemas/models/__init__.py +41 -0
  14. mycelium/api/generated_sources/server_schemas/models/api_section.py +71 -0
  15. mycelium/api/generated_sources/server_schemas/models/chroma_section.py +69 -0
  16. mycelium/api/generated_sources/server_schemas/models/clap_section.py +75 -0
  17. mycelium/api/generated_sources/server_schemas/models/compute_on_server200_response.py +79 -0
  18. mycelium/api/generated_sources/server_schemas/models/compute_on_server_request.py +67 -0
  19. mycelium/api/generated_sources/server_schemas/models/compute_text_search_request.py +69 -0
  20. mycelium/api/generated_sources/server_schemas/models/config_request.py +81 -0
  21. mycelium/api/generated_sources/server_schemas/models/config_response.py +107 -0
  22. mycelium/api/generated_sources/server_schemas/models/create_playlist_request.py +71 -0
  23. mycelium/api/generated_sources/server_schemas/models/get_similar_by_track200_response.py +143 -0
  24. mycelium/api/generated_sources/server_schemas/models/library_stats_response.py +77 -0
  25. mycelium/api/generated_sources/server_schemas/models/logging_section.py +67 -0
  26. mycelium/api/generated_sources/server_schemas/models/media_server_section.py +67 -0
  27. mycelium/api/generated_sources/server_schemas/models/playlist_response.py +73 -0
  28. mycelium/api/generated_sources/server_schemas/models/plex_section.py +71 -0
  29. mycelium/api/generated_sources/server_schemas/models/processing_response.py +90 -0
  30. mycelium/api/generated_sources/server_schemas/models/save_config_response.py +73 -0
  31. mycelium/api/generated_sources/server_schemas/models/scan_library_response.py +75 -0
  32. mycelium/api/generated_sources/server_schemas/models/search_result_response.py +75 -0
  33. mycelium/api/generated_sources/server_schemas/models/server_section.py +67 -0
  34. mycelium/api/generated_sources/server_schemas/models/stop_processing_response.py +71 -0
  35. mycelium/api/generated_sources/server_schemas/models/task_status_response.py +87 -0
  36. mycelium/api/generated_sources/server_schemas/models/track_database_stats.py +75 -0
  37. mycelium/api/generated_sources/server_schemas/models/track_response.py +77 -0
  38. mycelium/api/generated_sources/server_schemas/models/tracks_list_response.py +81 -0
  39. mycelium/api/generated_sources/server_schemas/rest.py +329 -0
  40. mycelium/api/generated_sources/server_schemas/test/__init__.py +0 -0
  41. mycelium/api/generated_sources/server_schemas/test/test_api_section.py +57 -0
  42. mycelium/api/generated_sources/server_schemas/test/test_chroma_section.py +55 -0
  43. mycelium/api/generated_sources/server_schemas/test/test_clap_section.py +60 -0
  44. mycelium/api/generated_sources/server_schemas/test/test_compute_on_server200_response.py +52 -0
  45. mycelium/api/generated_sources/server_schemas/test/test_compute_on_server_request.py +53 -0
  46. mycelium/api/generated_sources/server_schemas/test/test_compute_text_search_request.py +54 -0
  47. mycelium/api/generated_sources/server_schemas/test/test_config_request.py +66 -0
  48. mycelium/api/generated_sources/server_schemas/test/test_config_response.py +97 -0
  49. mycelium/api/generated_sources/server_schemas/test/test_create_playlist_request.py +60 -0
  50. mycelium/api/generated_sources/server_schemas/test/test_default_api.py +150 -0
  51. mycelium/api/generated_sources/server_schemas/test/test_get_similar_by_track200_response.py +61 -0
  52. mycelium/api/generated_sources/server_schemas/test/test_library_stats_response.py +63 -0
  53. mycelium/api/generated_sources/server_schemas/test/test_logging_section.py +53 -0
  54. mycelium/api/generated_sources/server_schemas/test/test_media_server_section.py +53 -0
  55. mycelium/api/generated_sources/server_schemas/test/test_playlist_response.py +58 -0
  56. mycelium/api/generated_sources/server_schemas/test/test_plex_section.py +56 -0
  57. mycelium/api/generated_sources/server_schemas/test/test_processing_response.py +61 -0
  58. mycelium/api/generated_sources/server_schemas/test/test_save_config_response.py +58 -0
  59. mycelium/api/generated_sources/server_schemas/test/test_scan_library_response.py +61 -0
  60. mycelium/api/generated_sources/server_schemas/test/test_search_result_response.py +69 -0
  61. mycelium/api/generated_sources/server_schemas/test/test_server_section.py +53 -0
  62. mycelium/api/generated_sources/server_schemas/test/test_stop_processing_response.py +55 -0
  63. mycelium/api/generated_sources/server_schemas/test/test_task_status_response.py +71 -0
  64. mycelium/api/generated_sources/server_schemas/test/test_track_database_stats.py +60 -0
  65. mycelium/api/generated_sources/server_schemas/test/test_track_response.py +63 -0
  66. mycelium/api/generated_sources/server_schemas/test/test_tracks_list_response.py +75 -0
  67. mycelium/api/generated_sources/worker_schemas/__init__.py +61 -0
  68. mycelium/api/generated_sources/worker_schemas/api/__init__.py +5 -0
  69. mycelium/api/generated_sources/worker_schemas/api/default_api.py +318 -0
  70. mycelium/api/generated_sources/worker_schemas/api_client.py +766 -0
  71. mycelium/api/generated_sources/worker_schemas/api_response.py +25 -0
  72. mycelium/api/generated_sources/worker_schemas/configuration.py +434 -0
  73. mycelium/api/generated_sources/worker_schemas/exceptions.py +166 -0
  74. mycelium/api/generated_sources/worker_schemas/models/__init__.py +23 -0
  75. mycelium/api/generated_sources/worker_schemas/models/save_config_response.py +73 -0
  76. mycelium/api/generated_sources/worker_schemas/models/worker_clap_section.py +75 -0
  77. mycelium/api/generated_sources/worker_schemas/models/worker_client_api_section.py +69 -0
  78. mycelium/api/generated_sources/worker_schemas/models/worker_client_section.py +79 -0
  79. mycelium/api/generated_sources/worker_schemas/models/worker_config_request.py +73 -0
  80. mycelium/api/generated_sources/worker_schemas/models/worker_config_response.py +89 -0
  81. mycelium/api/generated_sources/worker_schemas/models/worker_logging_section.py +67 -0
  82. mycelium/api/generated_sources/worker_schemas/rest.py +329 -0
  83. mycelium/api/generated_sources/worker_schemas/test/__init__.py +0 -0
  84. mycelium/api/generated_sources/worker_schemas/test/test_default_api.py +45 -0
  85. mycelium/api/generated_sources/worker_schemas/test/test_save_config_response.py +58 -0
  86. mycelium/api/generated_sources/worker_schemas/test/test_worker_clap_section.py +60 -0
  87. mycelium/api/generated_sources/worker_schemas/test/test_worker_client_api_section.py +55 -0
  88. mycelium/api/generated_sources/worker_schemas/test/test_worker_client_section.py +65 -0
  89. mycelium/api/generated_sources/worker_schemas/test/test_worker_config_request.py +59 -0
  90. mycelium/api/generated_sources/worker_schemas/test/test_worker_config_response.py +89 -0
  91. mycelium/api/generated_sources/worker_schemas/test/test_worker_logging_section.py +53 -0
  92. mycelium/api/worker_models.py +99 -0
  93. mycelium/application/__init__.py +11 -0
  94. mycelium/application/job_queue.py +323 -0
  95. mycelium/application/library_management_use_cases.py +292 -0
  96. mycelium/application/search_use_cases.py +96 -0
  97. mycelium/application/services.py +340 -0
  98. mycelium/client.py +554 -0
  99. mycelium/client_config.py +251 -0
  100. mycelium/client_frontend_dist/404.html +1 -0
  101. mycelium/client_frontend_dist/_next/static/a4iyRdfsvkjdyMAK9cE9Y/_buildManifest.js +1 -0
  102. mycelium/client_frontend_dist/_next/static/a4iyRdfsvkjdyMAK9cE9Y/_ssgManifest.js +1 -0
  103. mycelium/client_frontend_dist/_next/static/chunks/4bd1b696-cf72ae8a39fa05aa.js +1 -0
  104. mycelium/client_frontend_dist/_next/static/chunks/964-830f77d7ce1c2463.js +1 -0
  105. mycelium/client_frontend_dist/_next/static/chunks/app/_not-found/page-d25eede5a9099bd3.js +1 -0
  106. mycelium/client_frontend_dist/_next/static/chunks/app/layout-9b3d32f96dfe13b6.js +1 -0
  107. mycelium/client_frontend_dist/_next/static/chunks/app/page-cc6bad295789134e.js +1 -0
  108. mycelium/client_frontend_dist/_next/static/chunks/framework-7c95b8e5103c9e90.js +1 -0
  109. mycelium/client_frontend_dist/_next/static/chunks/main-6b37be50736577a2.js +1 -0
  110. mycelium/client_frontend_dist/_next/static/chunks/main-app-4153d115599d3126.js +1 -0
  111. mycelium/client_frontend_dist/_next/static/chunks/pages/_app-0a0020ddd67f79cf.js +1 -0
  112. mycelium/client_frontend_dist/_next/static/chunks/pages/_error-03529f2c21436739.js +1 -0
  113. mycelium/client_frontend_dist/_next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  114. mycelium/client_frontend_dist/_next/static/chunks/webpack-c81e624915b2ea70.js +1 -0
  115. mycelium/client_frontend_dist/_next/static/css/1eb7f0e2c78e0734.css +1 -0
  116. mycelium/client_frontend_dist/favicon.ico +0 -0
  117. mycelium/client_frontend_dist/file.svg +1 -0
  118. mycelium/client_frontend_dist/globe.svg +1 -0
  119. mycelium/client_frontend_dist/index.html +1 -0
  120. mycelium/client_frontend_dist/index.txt +20 -0
  121. mycelium/client_frontend_dist/next.svg +1 -0
  122. mycelium/client_frontend_dist/vercel.svg +1 -0
  123. mycelium/client_frontend_dist/window.svg +1 -0
  124. mycelium/config.py +346 -0
  125. mycelium/domain/__init__.py +13 -0
  126. mycelium/domain/models.py +71 -0
  127. mycelium/domain/repositories.py +98 -0
  128. mycelium/domain/worker.py +77 -0
  129. mycelium/frontend_dist/404.html +1 -0
  130. mycelium/frontend_dist/_next/static/chunks/4bd1b696-cf72ae8a39fa05aa.js +1 -0
  131. mycelium/frontend_dist/_next/static/chunks/964-830f77d7ce1c2463.js +1 -0
  132. mycelium/frontend_dist/_next/static/chunks/app/_not-found/page-d25eede5a9099bd3.js +1 -0
  133. mycelium/frontend_dist/_next/static/chunks/app/layout-9b3d32f96dfe13b6.js +1 -0
  134. mycelium/frontend_dist/_next/static/chunks/app/page-a761463485e0540b.js +1 -0
  135. mycelium/frontend_dist/_next/static/chunks/framework-7c95b8e5103c9e90.js +1 -0
  136. mycelium/frontend_dist/_next/static/chunks/main-6b37be50736577a2.js +1 -0
  137. mycelium/frontend_dist/_next/static/chunks/main-app-4153d115599d3126.js +1 -0
  138. mycelium/frontend_dist/_next/static/chunks/pages/_app-0a0020ddd67f79cf.js +1 -0
  139. mycelium/frontend_dist/_next/static/chunks/pages/_error-03529f2c21436739.js +1 -0
  140. mycelium/frontend_dist/_next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  141. mycelium/frontend_dist/_next/static/chunks/webpack-c81e624915b2ea70.js +1 -0
  142. mycelium/frontend_dist/_next/static/css/1eb7f0e2c78e0734.css +1 -0
  143. mycelium/frontend_dist/_next/static/glVJ0yJSL0zWN7anTTG3_/_buildManifest.js +1 -0
  144. mycelium/frontend_dist/_next/static/glVJ0yJSL0zWN7anTTG3_/_ssgManifest.js +1 -0
  145. mycelium/frontend_dist/favicon.ico +0 -0
  146. mycelium/frontend_dist/file.svg +1 -0
  147. mycelium/frontend_dist/globe.svg +1 -0
  148. mycelium/frontend_dist/index.html +10 -0
  149. mycelium/frontend_dist/index.txt +20 -0
  150. mycelium/frontend_dist/next.svg +1 -0
  151. mycelium/frontend_dist/vercel.svg +1 -0
  152. mycelium/frontend_dist/window.svg +1 -0
  153. mycelium/infrastructure/__init__.py +17 -0
  154. mycelium/infrastructure/chroma_adapter.py +232 -0
  155. mycelium/infrastructure/clap_adapter.py +280 -0
  156. mycelium/infrastructure/plex_adapter.py +145 -0
  157. mycelium/infrastructure/track_database.py +467 -0
  158. mycelium/main.py +183 -0
  159. mycelium_ai-0.5.0.dist-info/METADATA +312 -0
  160. mycelium_ai-0.5.0.dist-info/RECORD +164 -0
  161. mycelium_ai-0.5.0.dist-info/WHEEL +5 -0
  162. mycelium_ai-0.5.0.dist-info/entry_points.txt +2 -0
  163. mycelium_ai-0.5.0.dist-info/licenses/LICENSE +21 -0
  164. mycelium_ai-0.5.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,170 @@
1
+ """Minimal FastAPI application for Mycelium client configuration."""
2
+
3
+ import functools
4
+ import yaml
5
+ import logging
6
+ import threading
7
+ from pathlib import Path
8
+
9
+ from fastapi import FastAPI, HTTPException
10
+ from fastapi.middleware.cors import CORSMiddleware
11
+ from fastapi.responses import FileResponse, RedirectResponse
12
+ from fastapi.staticfiles import StaticFiles
13
+ from mycelium.api.generated_sources.worker_schemas.models import (
14
+ WorkerConfigRequest,
15
+ WorkerConfigResponse,
16
+ SaveConfigResponse,
17
+ )
18
+ from ..client_config import CLAPConfig, ClientConfig, ClientAPIConfig, LoggingConfig, MyceliumClientConfig
19
+ # Setup logger for this module
20
+ logger = logging.getLogger(__name__)
21
+
22
+ # Global configuration instance
23
+ config = MyceliumClientConfig.load_from_yaml()
24
+
25
+ # Global lock for thread-safe config reloading
26
+ config_lock = threading.RLock()
27
+
28
+ def with_client_lock(func):
29
+ """Decorator to ensure thread-safe access to client configuration."""
30
+ @functools.wraps(func)
31
+ async def wrapper(*args, **kwargs):
32
+ with config_lock:
33
+ return await func(*args, **kwargs)
34
+ return wrapper
35
+
36
+ def reload_client_config() -> None:
37
+ """Reload client configuration safely."""
38
+ global config
39
+
40
+ with config_lock:
41
+ try:
42
+ logger.info("Reloading client configuration...")
43
+
44
+ # Load new configuration
45
+ new_config = MyceliumClientConfig.load_from_yaml()
46
+
47
+ # Update logging if level changed
48
+ if new_config.logging.level != config.logging.level:
49
+ # Use the proper setup_logging method from the config
50
+ new_config.setup_logging()
51
+ logger.info(f"Updated logging level to {new_config.logging.level}")
52
+
53
+ # Update global reference atomically
54
+ config = new_config
55
+
56
+ logger.info("Client configuration reloaded successfully")
57
+
58
+ except Exception as e:
59
+ logger.error(f"Failed to reload client configuration: {e}", exc_info=True)
60
+ raise
61
+
62
+
63
+ # Create minimal FastAPI app for client configuration only
64
+ app = FastAPI(
65
+ title="Mycelium Client API",
66
+ description="Configuration API for Mycelium client workers"
67
+ )
68
+
69
+ WORKER_SPEC_PATH = Path(__file__).resolve().parents[3] / "openapi" / "worker_openapi.yaml"
70
+ app.state.external_openapi_cache = None
71
+
72
+ def _custom_openapi():
73
+ if app.state.external_openapi_cache is None:
74
+ with WORKER_SPEC_PATH.open("r", encoding="utf-8") as f:
75
+ app.state.external_openapi_cache = yaml.safe_load(f)
76
+ return app.state.external_openapi_cache
77
+
78
+ app.openapi = _custom_openapi
79
+
80
+ # Add CORS middleware for frontend
81
+ app.add_middleware(
82
+ CORSMiddleware,
83
+ allow_origins=["*"], # Allow all origins for development
84
+ allow_credentials=False, # Must be False when using allow_origins=["*"]
85
+ allow_methods=["*"],
86
+ allow_headers=["*"],
87
+ )
88
+
89
+ # Serve static client frontend files
90
+ client_frontend_dist_path = Path(__file__).parent.parent / "client_frontend_dist"
91
+ if client_frontend_dist_path.exists():
92
+ # Mount Next.js static assets at their expected path
93
+ next_static_path = client_frontend_dist_path / "_next"
94
+ if next_static_path.exists():
95
+ app.mount("/_next", StaticFiles(directory=str(next_static_path)), name="next_static")
96
+
97
+ # Mount client frontend application under /app with SPA routing support
98
+ app.mount("/app", StaticFiles(directory=str(client_frontend_dist_path), html=True), name="client_frontend")
99
+
100
+
101
+ # Serve the API-first OpenAPI YAML (for tooling and validation)
102
+ @app.get("/openapi.yaml")
103
+ async def get_openapi_yaml():
104
+ """Serve the external API-first OpenAPI YAML if available."""
105
+ if WORKER_SPEC_PATH.exists():
106
+ return FileResponse(path=str(WORKER_SPEC_PATH), media_type="application/yaml")
107
+ raise HTTPException(status_code=404, detail="OpenAPI YAML not found")
108
+
109
+
110
+ @app.get("/")
111
+ async def root():
112
+ """Redirect root to client frontend application."""
113
+ return RedirectResponse("/app")
114
+
115
+
116
+ @app.get("/api/config", response_model=WorkerConfigResponse)
117
+ @with_client_lock
118
+ async def get_config():
119
+ """Get current client configuration."""
120
+ try:
121
+ logger.info("Client configuration get request received")
122
+ config_dict = config.to_dict()
123
+ logger.info("Client configuration retrieved successfully")
124
+ return WorkerConfigResponse(**config_dict)
125
+ except Exception as e:
126
+ logger.error(f"Failed to get client configuration: {e}", exc_info=True)
127
+ raise HTTPException(status_code=500, detail=f"Failed to get configuration: {str(e)}")
128
+
129
+
130
+ @app.post("/api/config", response_model=SaveConfigResponse)
131
+ async def save_config(config_request: WorkerConfigRequest):
132
+ """Save client configuration to YAML file and hot-reload the application."""
133
+ try:
134
+ logger.info("Client configuration save request received")
135
+ clap_config = CLAPConfig(**dict(config_request.clap))
136
+ client_config = ClientConfig(**dict(config_request.client))
137
+ client_api_config = ClientAPIConfig(**dict(config_request.client_api))
138
+ logging_config = LoggingConfig(**dict(config_request.logging))
139
+
140
+ yaml_config = MyceliumClientConfig(
141
+ clap=clap_config,
142
+ client=client_config,
143
+ client_api=client_api_config,
144
+ logging=logging_config
145
+ )
146
+
147
+ # Save to default YAML location
148
+ yaml_config.save_to_yaml()
149
+ logger.info("Client configuration saved successfully to YAML file")
150
+
151
+ # Hot-reload the configuration
152
+ try:
153
+ reload_client_config()
154
+ logger.info("Client configuration hot-reloaded successfully")
155
+ return SaveConfigResponse(
156
+ message="Configuration saved and reloaded successfully! Changes are now active.",
157
+ status="success",
158
+ reloaded=True
159
+ )
160
+ except Exception as reload_error:
161
+ logger.error(f"Client configuration saved but hot-reload failed: {reload_error}", exc_info=True)
162
+ return SaveConfigResponse(
163
+ message="Configuration saved successfully, but hot-reload failed. Please restart the client to apply changes.",
164
+ status="warning",
165
+ reloaded=False,
166
+ reload_error=str(reload_error)
167
+ )
168
+ except Exception as e:
169
+ logger.error(f"Failed to save client configuration: {e}", exc_info=True)
170
+ raise HTTPException(status_code=500, detail=f"Failed to save configuration: {str(e)}")
File without changes
@@ -0,0 +1,97 @@
1
+ # coding: utf-8
2
+
3
+ # flake8: noqa
4
+
5
+ """
6
+ Mycelium API
7
+
8
+ Plex music collection and recommendation system using CLAP embeddings
9
+
10
+ The version of the OpenAPI document: 0.1.0
11
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
12
+
13
+ Do not edit the class manually.
14
+ """ # noqa: E501
15
+
16
+
17
+ __version__ = "0.1.0"
18
+
19
+ # Define package exports
20
+ __all__ = [
21
+ "DefaultApi",
22
+ "ApiResponse",
23
+ "ApiClient",
24
+ "Configuration",
25
+ "OpenApiException",
26
+ "ApiTypeError",
27
+ "ApiValueError",
28
+ "ApiKeyError",
29
+ "ApiAttributeError",
30
+ "ApiException",
31
+ "APISection",
32
+ "ChromaSection",
33
+ "ClapSection",
34
+ "ComputeOnServer200Response",
35
+ "ComputeOnServerRequest",
36
+ "ComputeTextSearchRequest",
37
+ "ConfigRequest",
38
+ "ConfigResponse",
39
+ "CreatePlaylistRequest",
40
+ "GetSimilarByTrack200Response",
41
+ "LibraryStatsResponse",
42
+ "LoggingSection",
43
+ "MediaServerSection",
44
+ "PlaylistResponse",
45
+ "PlexSection",
46
+ "ProcessingResponse",
47
+ "SaveConfigResponse",
48
+ "ScanLibraryResponse",
49
+ "SearchResultResponse",
50
+ "ServerSection",
51
+ "StopProcessingResponse",
52
+ "TaskStatusResponse",
53
+ "TrackDatabaseStats",
54
+ "TrackResponse",
55
+ "TracksListResponse",
56
+ ]
57
+
58
+ # import apis into sdk package
59
+ from mycelium.api.generated_sources.server_schemas.api.default_api import DefaultApi as DefaultApi
60
+
61
+ # import ApiClient
62
+ from mycelium.api.generated_sources.server_schemas.api_response import ApiResponse as ApiResponse
63
+ from mycelium.api.generated_sources.server_schemas.api_client import ApiClient as ApiClient
64
+ from mycelium.api.generated_sources.server_schemas.configuration import Configuration as Configuration
65
+ from mycelium.api.generated_sources.server_schemas.exceptions import OpenApiException as OpenApiException
66
+ from mycelium.api.generated_sources.server_schemas.exceptions import ApiTypeError as ApiTypeError
67
+ from mycelium.api.generated_sources.server_schemas.exceptions import ApiValueError as ApiValueError
68
+ from mycelium.api.generated_sources.server_schemas.exceptions import ApiKeyError as ApiKeyError
69
+ from mycelium.api.generated_sources.server_schemas.exceptions import ApiAttributeError as ApiAttributeError
70
+ from mycelium.api.generated_sources.server_schemas.exceptions import ApiException as ApiException
71
+
72
+ # import models into sdk package
73
+ from mycelium.api.generated_sources.server_schemas.models.api_section import APISection as APISection
74
+ from mycelium.api.generated_sources.server_schemas.models.chroma_section import ChromaSection as ChromaSection
75
+ from mycelium.api.generated_sources.server_schemas.models.clap_section import ClapSection as ClapSection
76
+ from mycelium.api.generated_sources.server_schemas.models.compute_on_server200_response import ComputeOnServer200Response as ComputeOnServer200Response
77
+ from mycelium.api.generated_sources.server_schemas.models.compute_on_server_request import ComputeOnServerRequest as ComputeOnServerRequest
78
+ from mycelium.api.generated_sources.server_schemas.models.compute_text_search_request import ComputeTextSearchRequest as ComputeTextSearchRequest
79
+ from mycelium.api.generated_sources.server_schemas.models.config_request import ConfigRequest as ConfigRequest
80
+ from mycelium.api.generated_sources.server_schemas.models.config_response import ConfigResponse as ConfigResponse
81
+ from mycelium.api.generated_sources.server_schemas.models.create_playlist_request import CreatePlaylistRequest as CreatePlaylistRequest
82
+ from mycelium.api.generated_sources.server_schemas.models.get_similar_by_track200_response import GetSimilarByTrack200Response as GetSimilarByTrack200Response
83
+ from mycelium.api.generated_sources.server_schemas.models.library_stats_response import LibraryStatsResponse as LibraryStatsResponse
84
+ from mycelium.api.generated_sources.server_schemas.models.logging_section import LoggingSection as LoggingSection
85
+ from mycelium.api.generated_sources.server_schemas.models.media_server_section import MediaServerSection as MediaServerSection
86
+ from mycelium.api.generated_sources.server_schemas.models.playlist_response import PlaylistResponse as PlaylistResponse
87
+ from mycelium.api.generated_sources.server_schemas.models.plex_section import PlexSection as PlexSection
88
+ from mycelium.api.generated_sources.server_schemas.models.processing_response import ProcessingResponse as ProcessingResponse
89
+ from mycelium.api.generated_sources.server_schemas.models.save_config_response import SaveConfigResponse as SaveConfigResponse
90
+ from mycelium.api.generated_sources.server_schemas.models.scan_library_response import ScanLibraryResponse as ScanLibraryResponse
91
+ from mycelium.api.generated_sources.server_schemas.models.search_result_response import SearchResultResponse as SearchResultResponse
92
+ from mycelium.api.generated_sources.server_schemas.models.server_section import ServerSection as ServerSection
93
+ from mycelium.api.generated_sources.server_schemas.models.stop_processing_response import StopProcessingResponse as StopProcessingResponse
94
+ from mycelium.api.generated_sources.server_schemas.models.task_status_response import TaskStatusResponse as TaskStatusResponse
95
+ from mycelium.api.generated_sources.server_schemas.models.track_database_stats import TrackDatabaseStats as TrackDatabaseStats
96
+ from mycelium.api.generated_sources.server_schemas.models.track_response import TrackResponse as TrackResponse
97
+ from mycelium.api.generated_sources.server_schemas.models.tracks_list_response import TracksListResponse as TracksListResponse
@@ -0,0 +1,5 @@
1
+ # flake8: noqa
2
+
3
+ # import apis into api package
4
+ from mycelium.api.generated_sources.server_schemas.api.default_api import DefaultApi
5
+