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.
- mycelium/__init__.py +0 -0
- mycelium/api/__init__.py +0 -0
- mycelium/api/app.py +1147 -0
- mycelium/api/client_app.py +170 -0
- mycelium/api/generated_sources/__init__.py +0 -0
- mycelium/api/generated_sources/server_schemas/__init__.py +97 -0
- mycelium/api/generated_sources/server_schemas/api/__init__.py +5 -0
- mycelium/api/generated_sources/server_schemas/api/default_api.py +2473 -0
- mycelium/api/generated_sources/server_schemas/api_client.py +766 -0
- mycelium/api/generated_sources/server_schemas/api_response.py +25 -0
- mycelium/api/generated_sources/server_schemas/configuration.py +434 -0
- mycelium/api/generated_sources/server_schemas/exceptions.py +166 -0
- mycelium/api/generated_sources/server_schemas/models/__init__.py +41 -0
- mycelium/api/generated_sources/server_schemas/models/api_section.py +71 -0
- mycelium/api/generated_sources/server_schemas/models/chroma_section.py +69 -0
- mycelium/api/generated_sources/server_schemas/models/clap_section.py +75 -0
- mycelium/api/generated_sources/server_schemas/models/compute_on_server200_response.py +79 -0
- mycelium/api/generated_sources/server_schemas/models/compute_on_server_request.py +67 -0
- mycelium/api/generated_sources/server_schemas/models/compute_text_search_request.py +69 -0
- mycelium/api/generated_sources/server_schemas/models/config_request.py +81 -0
- mycelium/api/generated_sources/server_schemas/models/config_response.py +107 -0
- mycelium/api/generated_sources/server_schemas/models/create_playlist_request.py +71 -0
- mycelium/api/generated_sources/server_schemas/models/get_similar_by_track200_response.py +143 -0
- mycelium/api/generated_sources/server_schemas/models/library_stats_response.py +77 -0
- mycelium/api/generated_sources/server_schemas/models/logging_section.py +67 -0
- mycelium/api/generated_sources/server_schemas/models/media_server_section.py +67 -0
- mycelium/api/generated_sources/server_schemas/models/playlist_response.py +73 -0
- mycelium/api/generated_sources/server_schemas/models/plex_section.py +71 -0
- mycelium/api/generated_sources/server_schemas/models/processing_response.py +90 -0
- mycelium/api/generated_sources/server_schemas/models/save_config_response.py +73 -0
- mycelium/api/generated_sources/server_schemas/models/scan_library_response.py +75 -0
- mycelium/api/generated_sources/server_schemas/models/search_result_response.py +75 -0
- mycelium/api/generated_sources/server_schemas/models/server_section.py +67 -0
- mycelium/api/generated_sources/server_schemas/models/stop_processing_response.py +71 -0
- mycelium/api/generated_sources/server_schemas/models/task_status_response.py +87 -0
- mycelium/api/generated_sources/server_schemas/models/track_database_stats.py +75 -0
- mycelium/api/generated_sources/server_schemas/models/track_response.py +77 -0
- mycelium/api/generated_sources/server_schemas/models/tracks_list_response.py +81 -0
- mycelium/api/generated_sources/server_schemas/rest.py +329 -0
- mycelium/api/generated_sources/server_schemas/test/__init__.py +0 -0
- mycelium/api/generated_sources/server_schemas/test/test_api_section.py +57 -0
- mycelium/api/generated_sources/server_schemas/test/test_chroma_section.py +55 -0
- mycelium/api/generated_sources/server_schemas/test/test_clap_section.py +60 -0
- mycelium/api/generated_sources/server_schemas/test/test_compute_on_server200_response.py +52 -0
- mycelium/api/generated_sources/server_schemas/test/test_compute_on_server_request.py +53 -0
- mycelium/api/generated_sources/server_schemas/test/test_compute_text_search_request.py +54 -0
- mycelium/api/generated_sources/server_schemas/test/test_config_request.py +66 -0
- mycelium/api/generated_sources/server_schemas/test/test_config_response.py +97 -0
- mycelium/api/generated_sources/server_schemas/test/test_create_playlist_request.py +60 -0
- mycelium/api/generated_sources/server_schemas/test/test_default_api.py +150 -0
- mycelium/api/generated_sources/server_schemas/test/test_get_similar_by_track200_response.py +61 -0
- mycelium/api/generated_sources/server_schemas/test/test_library_stats_response.py +63 -0
- mycelium/api/generated_sources/server_schemas/test/test_logging_section.py +53 -0
- mycelium/api/generated_sources/server_schemas/test/test_media_server_section.py +53 -0
- mycelium/api/generated_sources/server_schemas/test/test_playlist_response.py +58 -0
- mycelium/api/generated_sources/server_schemas/test/test_plex_section.py +56 -0
- mycelium/api/generated_sources/server_schemas/test/test_processing_response.py +61 -0
- mycelium/api/generated_sources/server_schemas/test/test_save_config_response.py +58 -0
- mycelium/api/generated_sources/server_schemas/test/test_scan_library_response.py +61 -0
- mycelium/api/generated_sources/server_schemas/test/test_search_result_response.py +69 -0
- mycelium/api/generated_sources/server_schemas/test/test_server_section.py +53 -0
- mycelium/api/generated_sources/server_schemas/test/test_stop_processing_response.py +55 -0
- mycelium/api/generated_sources/server_schemas/test/test_task_status_response.py +71 -0
- mycelium/api/generated_sources/server_schemas/test/test_track_database_stats.py +60 -0
- mycelium/api/generated_sources/server_schemas/test/test_track_response.py +63 -0
- mycelium/api/generated_sources/server_schemas/test/test_tracks_list_response.py +75 -0
- mycelium/api/generated_sources/worker_schemas/__init__.py +61 -0
- mycelium/api/generated_sources/worker_schemas/api/__init__.py +5 -0
- mycelium/api/generated_sources/worker_schemas/api/default_api.py +318 -0
- mycelium/api/generated_sources/worker_schemas/api_client.py +766 -0
- mycelium/api/generated_sources/worker_schemas/api_response.py +25 -0
- mycelium/api/generated_sources/worker_schemas/configuration.py +434 -0
- mycelium/api/generated_sources/worker_schemas/exceptions.py +166 -0
- mycelium/api/generated_sources/worker_schemas/models/__init__.py +23 -0
- mycelium/api/generated_sources/worker_schemas/models/save_config_response.py +73 -0
- mycelium/api/generated_sources/worker_schemas/models/worker_clap_section.py +75 -0
- mycelium/api/generated_sources/worker_schemas/models/worker_client_api_section.py +69 -0
- mycelium/api/generated_sources/worker_schemas/models/worker_client_section.py +79 -0
- mycelium/api/generated_sources/worker_schemas/models/worker_config_request.py +73 -0
- mycelium/api/generated_sources/worker_schemas/models/worker_config_response.py +89 -0
- mycelium/api/generated_sources/worker_schemas/models/worker_logging_section.py +67 -0
- mycelium/api/generated_sources/worker_schemas/rest.py +329 -0
- mycelium/api/generated_sources/worker_schemas/test/__init__.py +0 -0
- mycelium/api/generated_sources/worker_schemas/test/test_default_api.py +45 -0
- mycelium/api/generated_sources/worker_schemas/test/test_save_config_response.py +58 -0
- mycelium/api/generated_sources/worker_schemas/test/test_worker_clap_section.py +60 -0
- mycelium/api/generated_sources/worker_schemas/test/test_worker_client_api_section.py +55 -0
- mycelium/api/generated_sources/worker_schemas/test/test_worker_client_section.py +65 -0
- mycelium/api/generated_sources/worker_schemas/test/test_worker_config_request.py +59 -0
- mycelium/api/generated_sources/worker_schemas/test/test_worker_config_response.py +89 -0
- mycelium/api/generated_sources/worker_schemas/test/test_worker_logging_section.py +53 -0
- mycelium/api/worker_models.py +99 -0
- mycelium/application/__init__.py +11 -0
- mycelium/application/job_queue.py +323 -0
- mycelium/application/library_management_use_cases.py +292 -0
- mycelium/application/search_use_cases.py +96 -0
- mycelium/application/services.py +340 -0
- mycelium/client.py +554 -0
- mycelium/client_config.py +251 -0
- mycelium/client_frontend_dist/404.html +1 -0
- mycelium/client_frontend_dist/_next/static/a4iyRdfsvkjdyMAK9cE9Y/_buildManifest.js +1 -0
- mycelium/client_frontend_dist/_next/static/a4iyRdfsvkjdyMAK9cE9Y/_ssgManifest.js +1 -0
- mycelium/client_frontend_dist/_next/static/chunks/4bd1b696-cf72ae8a39fa05aa.js +1 -0
- mycelium/client_frontend_dist/_next/static/chunks/964-830f77d7ce1c2463.js +1 -0
- mycelium/client_frontend_dist/_next/static/chunks/app/_not-found/page-d25eede5a9099bd3.js +1 -0
- mycelium/client_frontend_dist/_next/static/chunks/app/layout-9b3d32f96dfe13b6.js +1 -0
- mycelium/client_frontend_dist/_next/static/chunks/app/page-cc6bad295789134e.js +1 -0
- mycelium/client_frontend_dist/_next/static/chunks/framework-7c95b8e5103c9e90.js +1 -0
- mycelium/client_frontend_dist/_next/static/chunks/main-6b37be50736577a2.js +1 -0
- mycelium/client_frontend_dist/_next/static/chunks/main-app-4153d115599d3126.js +1 -0
- mycelium/client_frontend_dist/_next/static/chunks/pages/_app-0a0020ddd67f79cf.js +1 -0
- mycelium/client_frontend_dist/_next/static/chunks/pages/_error-03529f2c21436739.js +1 -0
- mycelium/client_frontend_dist/_next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
- mycelium/client_frontend_dist/_next/static/chunks/webpack-c81e624915b2ea70.js +1 -0
- mycelium/client_frontend_dist/_next/static/css/1eb7f0e2c78e0734.css +1 -0
- mycelium/client_frontend_dist/favicon.ico +0 -0
- mycelium/client_frontend_dist/file.svg +1 -0
- mycelium/client_frontend_dist/globe.svg +1 -0
- mycelium/client_frontend_dist/index.html +1 -0
- mycelium/client_frontend_dist/index.txt +20 -0
- mycelium/client_frontend_dist/next.svg +1 -0
- mycelium/client_frontend_dist/vercel.svg +1 -0
- mycelium/client_frontend_dist/window.svg +1 -0
- mycelium/config.py +346 -0
- mycelium/domain/__init__.py +13 -0
- mycelium/domain/models.py +71 -0
- mycelium/domain/repositories.py +98 -0
- mycelium/domain/worker.py +77 -0
- mycelium/frontend_dist/404.html +1 -0
- mycelium/frontend_dist/_next/static/chunks/4bd1b696-cf72ae8a39fa05aa.js +1 -0
- mycelium/frontend_dist/_next/static/chunks/964-830f77d7ce1c2463.js +1 -0
- mycelium/frontend_dist/_next/static/chunks/app/_not-found/page-d25eede5a9099bd3.js +1 -0
- mycelium/frontend_dist/_next/static/chunks/app/layout-9b3d32f96dfe13b6.js +1 -0
- mycelium/frontend_dist/_next/static/chunks/app/page-a761463485e0540b.js +1 -0
- mycelium/frontend_dist/_next/static/chunks/framework-7c95b8e5103c9e90.js +1 -0
- mycelium/frontend_dist/_next/static/chunks/main-6b37be50736577a2.js +1 -0
- mycelium/frontend_dist/_next/static/chunks/main-app-4153d115599d3126.js +1 -0
- mycelium/frontend_dist/_next/static/chunks/pages/_app-0a0020ddd67f79cf.js +1 -0
- mycelium/frontend_dist/_next/static/chunks/pages/_error-03529f2c21436739.js +1 -0
- mycelium/frontend_dist/_next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
- mycelium/frontend_dist/_next/static/chunks/webpack-c81e624915b2ea70.js +1 -0
- mycelium/frontend_dist/_next/static/css/1eb7f0e2c78e0734.css +1 -0
- mycelium/frontend_dist/_next/static/glVJ0yJSL0zWN7anTTG3_/_buildManifest.js +1 -0
- mycelium/frontend_dist/_next/static/glVJ0yJSL0zWN7anTTG3_/_ssgManifest.js +1 -0
- mycelium/frontend_dist/favicon.ico +0 -0
- mycelium/frontend_dist/file.svg +1 -0
- mycelium/frontend_dist/globe.svg +1 -0
- mycelium/frontend_dist/index.html +10 -0
- mycelium/frontend_dist/index.txt +20 -0
- mycelium/frontend_dist/next.svg +1 -0
- mycelium/frontend_dist/vercel.svg +1 -0
- mycelium/frontend_dist/window.svg +1 -0
- mycelium/infrastructure/__init__.py +17 -0
- mycelium/infrastructure/chroma_adapter.py +232 -0
- mycelium/infrastructure/clap_adapter.py +280 -0
- mycelium/infrastructure/plex_adapter.py +145 -0
- mycelium/infrastructure/track_database.py +467 -0
- mycelium/main.py +183 -0
- mycelium_ai-0.5.0.dist-info/METADATA +312 -0
- mycelium_ai-0.5.0.dist-info/RECORD +164 -0
- mycelium_ai-0.5.0.dist-info/WHEEL +5 -0
- mycelium_ai-0.5.0.dist-info/entry_points.txt +2 -0
- mycelium_ai-0.5.0.dist-info/licenses/LICENSE +21 -0
- 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
|