mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-04-29 02:41:27 +00:00
refactor(assets): split queries.py into modular query modules
Split the ~1000 line app/assets/database/queries.py into focused modules: - queries/asset.py - Asset entity queries (asset_exists_by_hash, get_asset_by_hash) - queries/asset_info.py - AssetInfo queries (~15 functions) - queries/cache_state.py - AssetCacheState queries (list_cache_states_by_asset_id, pick_best_live_path, prune_orphaned_assets, fast_db_consistency_pass) - queries/tags.py - Tag queries (8 functions including ensure_tags_exist, add/remove tag functions, list_tags_with_usage) - queries/__init__.py - Re-exports all public functions for backward compatibility Also adds comprehensive unit tests using in-memory SQLite: - tests-unit/assets_test/queries/conftest.py - Session fixture - tests-unit/assets_test/queries/test_asset.py - 5 tests - tests-unit/assets_test/queries/test_asset_info.py - 23 tests - tests-unit/assets_test/queries/test_cache_state.py - 8 tests - tests-unit/assets_test/queries/test_metadata.py - 12 tests for _apply_metadata_filter - tests-unit/assets_test/queries/test_tags.py - 23 tests All 71 unit tests pass. Existing integration tests unaffected. Amp-Thread-ID: https://ampcode.com/threads/T-019c24bb-475b-7442-9ff9-8288edea3345 Co-authored-by: Amp <amp@ampcode.com>
This commit is contained in:
73
app/assets/database/queries/__init__.py
Normal file
73
app/assets/database/queries/__init__.py
Normal file
@@ -0,0 +1,73 @@
|
||||
# Re-export public API from query modules
|
||||
# Maintains backward compatibility with old flat queries.py imports
|
||||
|
||||
from app.assets.database.queries.asset import (
|
||||
asset_exists_by_hash,
|
||||
get_asset_by_hash,
|
||||
)
|
||||
|
||||
from app.assets.database.queries.asset_info import (
|
||||
asset_info_exists_for_asset_id,
|
||||
get_asset_info_by_id,
|
||||
list_asset_infos_page,
|
||||
fetch_asset_info_asset_and_tags,
|
||||
fetch_asset_info_and_asset,
|
||||
touch_asset_info_by_id,
|
||||
create_asset_info_for_existing_asset,
|
||||
replace_asset_info_metadata_projection,
|
||||
ingest_fs_asset,
|
||||
update_asset_info_full,
|
||||
delete_asset_info_by_id,
|
||||
set_asset_info_preview,
|
||||
)
|
||||
|
||||
from app.assets.database.queries.cache_state import (
|
||||
list_cache_states_by_asset_id,
|
||||
pick_best_live_path,
|
||||
prune_orphaned_assets,
|
||||
fast_db_consistency_pass,
|
||||
)
|
||||
|
||||
from app.assets.database.queries.tags import (
|
||||
ensure_tags_exist,
|
||||
get_asset_tags,
|
||||
set_asset_info_tags,
|
||||
add_tags_to_asset_info,
|
||||
remove_tags_from_asset_info,
|
||||
add_missing_tag_for_asset_id,
|
||||
remove_missing_tag_for_asset_id,
|
||||
list_tags_with_usage,
|
||||
)
|
||||
|
||||
__all__ = [
|
||||
# asset.py
|
||||
"asset_exists_by_hash",
|
||||
"get_asset_by_hash",
|
||||
# asset_info.py
|
||||
"asset_info_exists_for_asset_id",
|
||||
"get_asset_info_by_id",
|
||||
"list_asset_infos_page",
|
||||
"fetch_asset_info_asset_and_tags",
|
||||
"fetch_asset_info_and_asset",
|
||||
"touch_asset_info_by_id",
|
||||
"create_asset_info_for_existing_asset",
|
||||
"replace_asset_info_metadata_projection",
|
||||
"ingest_fs_asset",
|
||||
"update_asset_info_full",
|
||||
"delete_asset_info_by_id",
|
||||
"set_asset_info_preview",
|
||||
# cache_state.py
|
||||
"list_cache_states_by_asset_id",
|
||||
"pick_best_live_path",
|
||||
"prune_orphaned_assets",
|
||||
"fast_db_consistency_pass",
|
||||
# tags.py
|
||||
"ensure_tags_exist",
|
||||
"get_asset_tags",
|
||||
"set_asset_info_tags",
|
||||
"add_tags_to_asset_info",
|
||||
"remove_tags_from_asset_info",
|
||||
"add_missing_tag_for_asset_id",
|
||||
"remove_missing_tag_for_asset_id",
|
||||
"list_tags_with_usage",
|
||||
]
|
||||
Reference in New Issue
Block a user