|
46 | 46 | resolve_jwt_secret, |
47 | 47 | ) |
48 | 48 |
|
49 | | -from app_provider_migration import migration_bp |
50 | | - |
51 | 49 | from error import error_manager |
52 | 50 | from error.error_manager import AudioMuseError |
53 | 51 | from error.error_dictionary import UNKNOWN_ERROR_CODE |
@@ -757,48 +755,57 @@ def listen_for_index_reloads(): |
757 | 755 |
|
758 | 756 |
|
759 | 757 |
|
760 | | -# --- Import and Register Blueprints --- |
761 | | -# This is the original, working structure. |
762 | | -from app_chat import chat_bp |
763 | | -from app_clustering import clustering_bp |
764 | | -from app_analysis import analysis_bp |
765 | | -from app_cron import cron_bp, run_due_cron_jobs |
766 | | -from app_voyager import voyager_bp |
767 | | -from app_sonic_fingerprint import sonic_fingerprint_bp |
768 | | -from app_path import path_bp |
769 | | -from app_external import external_bp # --- NEW: Import the external blueprint --- |
770 | | -from app_alchemy import alchemy_bp |
771 | | -from app_map import map_bp |
772 | | -from app_waveform import waveform_bp |
773 | | -from app_artist_similarity import artist_similarity_bp |
774 | | -from app_clap_search import clap_search_bp |
775 | | -from app_lyrics import lyrics_search_bp |
776 | | -from app_sem_grove import sem_grove_bp |
777 | | -from app_backup import backup_bp |
778 | | -from app_dashboard import dashboard_bp |
779 | | -from app_users import users_bp |
780 | | -from app_sync import sync_bp |
781 | | - |
782 | | -app.register_blueprint(chat_bp, url_prefix='/chat') |
783 | | -app.register_blueprint(clustering_bp) |
784 | | -app.register_blueprint(analysis_bp) |
785 | | -app.register_blueprint(cron_bp) |
786 | | -app.register_blueprint(voyager_bp) |
787 | | -app.register_blueprint(sonic_fingerprint_bp) |
788 | | -app.register_blueprint(path_bp) |
789 | | -app.register_blueprint(external_bp, url_prefix='/external') # --- NEW: Register the external blueprint --- |
790 | | -app.register_blueprint(alchemy_bp) |
791 | | -app.register_blueprint(map_bp) |
792 | | -app.register_blueprint(waveform_bp) |
793 | | -app.register_blueprint(artist_similarity_bp) |
794 | | -app.register_blueprint(clap_search_bp) |
795 | | -app.register_blueprint(lyrics_search_bp) |
796 | | -app.register_blueprint(sem_grove_bp) |
797 | | -app.register_blueprint(backup_bp) |
798 | | -app.register_blueprint(migration_bp) |
799 | | -app.register_blueprint(dashboard_bp) |
800 | | -app.register_blueprint(users_bp) |
801 | | -app.register_blueprint(sync_bp) |
| 758 | +# --- Blueprint Registration --- |
| 759 | +# Standard Flask factory pattern: blueprint imports are inside |
| 760 | +# this function so the eager import graph stays flat. |
| 761 | +from app_cron import run_due_cron_jobs |
| 762 | + |
| 763 | + |
| 764 | +def _register_blueprints(flask_app): |
| 765 | + from app_chat import chat_bp |
| 766 | + from app_clustering import clustering_bp |
| 767 | + from app_analysis import analysis_bp |
| 768 | + from app_cron import cron_bp |
| 769 | + from app_voyager import voyager_bp |
| 770 | + from app_sonic_fingerprint import sonic_fingerprint_bp |
| 771 | + from app_path import path_bp |
| 772 | + from app_external import external_bp |
| 773 | + from app_alchemy import alchemy_bp |
| 774 | + from app_map import map_bp |
| 775 | + from app_waveform import waveform_bp |
| 776 | + from app_artist_similarity import artist_similarity_bp |
| 777 | + from app_clap_search import clap_search_bp |
| 778 | + from app_lyrics import lyrics_search_bp |
| 779 | + from app_sem_grove import sem_grove_bp |
| 780 | + from app_backup import backup_bp |
| 781 | + from app_provider_migration import migration_bp |
| 782 | + from app_dashboard import dashboard_bp |
| 783 | + from app_users import users_bp |
| 784 | + from app_sync import sync_bp |
| 785 | + |
| 786 | + flask_app.register_blueprint(chat_bp, url_prefix='/chat') |
| 787 | + flask_app.register_blueprint(clustering_bp) |
| 788 | + flask_app.register_blueprint(analysis_bp) |
| 789 | + flask_app.register_blueprint(cron_bp) |
| 790 | + flask_app.register_blueprint(voyager_bp) |
| 791 | + flask_app.register_blueprint(sonic_fingerprint_bp) |
| 792 | + flask_app.register_blueprint(path_bp) |
| 793 | + flask_app.register_blueprint(external_bp, url_prefix='/external') |
| 794 | + flask_app.register_blueprint(alchemy_bp) |
| 795 | + flask_app.register_blueprint(map_bp) |
| 796 | + flask_app.register_blueprint(waveform_bp) |
| 797 | + flask_app.register_blueprint(artist_similarity_bp) |
| 798 | + flask_app.register_blueprint(clap_search_bp) |
| 799 | + flask_app.register_blueprint(lyrics_search_bp) |
| 800 | + flask_app.register_blueprint(sem_grove_bp) |
| 801 | + flask_app.register_blueprint(backup_bp) |
| 802 | + flask_app.register_blueprint(migration_bp) |
| 803 | + flask_app.register_blueprint(dashboard_bp) |
| 804 | + flask_app.register_blueprint(users_bp) |
| 805 | + flask_app.register_blueprint(sync_bp) |
| 806 | + |
| 807 | + |
| 808 | +_register_blueprints(app) |
802 | 809 |
|
803 | 810 | # --- Startup: Load indexes and caches (Flask server only, NOT RQ workers) --- |
804 | 811 | # RQ workers import app.py but should NOT load indexes or start background threads. |
|
0 commit comments