LightRAG/lightrag/kg
BukeLy 519f7f61c4 fix: handle wrapped embedding_func and lock flag logic
Why these changes are needed:
1. LightRAG wraps embedding_func with priority_limit_async_func_call
   decorator, causing loss of get_model_identifier method
2. UnifiedLock.__aexit__ set main_lock_released flag incorrectly

How it solves them:
1. _generate_collection_suffix now tries multiple approaches:
   - First check if embedding_func has get_model_identifier
   - Fallback to original EmbeddingFunc in global_config
   - Return empty string for backward compatibility
2. Move main_lock_released = True inside the if block so flag
   is only set when lock actually exists and is released

Impact:
- Fixes E2E tests that initialize complete LightRAG instances
- Fixes incorrect async lock cleanup in exception scenarios
- Maintains backward compatibility

Testing:
All unit tests pass (test_qdrant_migration.py, test_postgres_migration.py)
2025-11-20 00:51:47 +08:00
..
deprecated Preserve ordering in get_by_ids methods across all storage implementations 2025-10-11 12:37:59 +08:00
__init__.py Improve storage config validation and add config.ini fallback support 2025-11-08 22:48:49 +08:00
faiss_impl.py Remove final_namespace attribute for in-memory storage and use namespace in clean_llm_query_cache.py 2025-11-17 12:54:33 +08:00
json_doc_status_impl.py Remove final_namespace attribute for in-memory storage and use namespace in clean_llm_query_cache.py 2025-11-17 12:54:33 +08:00
json_kv_impl.py Remove final_namespace attribute for in-memory storage and use namespace in clean_llm_query_cache.py 2025-11-17 12:54:33 +08:00
memgraph_impl.py Refactor workspace handling to use default workspace and namespace locks 2025-11-17 12:54:33 +08:00
milvus_impl.py Standardize empty workspace handling from "_" to "" across storage 2025-11-17 12:54:33 +08:00
mongo_impl.py Standardize empty workspace handling from "_" to "" across storage 2025-11-17 12:54:33 +08:00
nano_vector_db_impl.py Standardize empty workspace handling from "_" to "" across storage 2025-11-17 12:54:33 +08:00
neo4j_impl.py Refactor workspace handling to use default workspace and namespace locks 2025-11-17 12:54:33 +08:00
networkx_impl.py Remove final_namespace attribute for in-memory storage and use namespace in clean_llm_query_cache.py 2025-11-17 12:54:33 +08:00
postgres_impl.py refactor: optimize batch insert handling in PGVectorStorage 2025-11-20 00:27:17 +08:00
qdrant_impl.py feat: Qdrant model isolation and auto-migration 2025-11-19 18:47:38 +08:00
redis_impl.py Standardize empty workspace handling from "_" to "" across storage 2025-11-17 12:54:33 +08:00
shared_storage.py fix: handle wrapped embedding_func and lock flag logic 2025-11-20 00:51:47 +08:00