echoss-db 2.2.2__tar.gz → 2.3.1__tar.gz
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.
- {echoss_db-2.2.2/echoss_db.egg-info → echoss_db-2.3.1}/PKG-INFO +11 -3
- {echoss_db-2.2.2 → echoss_db-2.3.1}/README.md +8 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/echoss_db/elastic_search.py +2 -2
- {echoss_db-2.2.2 → echoss_db-2.3.1}/echoss_db/mongo_query.py +2 -2
- {echoss_db-2.2.2 → echoss_db-2.3.1}/echoss_db/mysql_query.py +2 -2
- {echoss_db-2.2.2 → echoss_db-2.3.1}/echoss_db/postgres_query.py +2 -2
- {echoss_db-2.2.2 → echoss_db-2.3.1}/echoss_db/qdrant_vector.py +2 -2
- {echoss_db-2.2.2 → echoss_db-2.3.1/echoss_db.egg-info}/PKG-INFO +11 -3
- {echoss_db-2.2.2 → echoss_db-2.3.1}/echoss_db.egg-info/requires.txt +2 -2
- {echoss_db-2.2.2 → echoss_db-2.3.1}/echoss_db.egg-info/top_level.txt +1 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/pyproject.toml +3 -3
- {echoss_db-2.2.2 → echoss_db-2.3.1}/requirements.txt +3 -2
- {echoss_db-2.2.2 → echoss_db-2.3.1}/tests/integration/conftest.py +2 -2
- {echoss_db-2.2.2 → echoss_db-2.3.1}/LICENSE +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/MANIFEST.in +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/echoss_db/__init__.py +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/echoss_db/env_config.py +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/echoss_db/mapping/__init__.py +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/echoss_db/mapping/dataclass_mapper.py +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/echoss_db/mapping/errors.py +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/echoss_db/mapping/param_mapper.py +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/echoss_db/mapping/pydantic_mapper.py +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/echoss_db/mapping/row_mapper.py +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/echoss_db/mapping/types.py +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/echoss_db/sql_transaction.py +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/echoss_db.egg-info/SOURCES.txt +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/echoss_db.egg-info/dependency_links.txt +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/package_tests/test_package_imports.py +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/setup.cfg +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/tests/__init__.py +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/tests/integration/__init__.py +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/tests/integration/test_env_config_integration.py +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/tests/integration/test_postgres_integration.py +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/tests/integration/test_qdrant_integration.py +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/tests/manual/__init__.py +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/tests/manual/_postgres_test_schema.py +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/tests/manual/example_elasticsearch.ipynb +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/tests/manual/example_elasticsearch.py +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/tests/manual/example_mapping_mysql.py +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/tests/manual/example_mongo.ipynb +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/tests/manual/example_mongo.py +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/tests/manual/example_mysql.ipynb +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/tests/manual/example_mysql.py +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/tests/manual/example_postgres.py +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/tests/manual/example_postgres_qdrant_ingest.py +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/tests/manual/example_qdrant.py +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/tests/manual/setup_ai_rag_test_schema.sql +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/tests/unit/__init__.py +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/tests/unit/mapping/__init__.py +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/tests/unit/mapping/test_param_mapper.py +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/tests/unit/test_env_config.py +0 -0
- {echoss_db-2.2.2 → echoss_db-2.3.1}/tests/unit/test_qdrant_role.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: echoss-db
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.3.1
|
|
4
4
|
Summary: echoss AI Bigdata Solution - Database Query Package
|
|
5
5
|
Author-email: ckkim <ckkim@12cm.co.kr>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -13,11 +13,11 @@ Classifier: Operating System :: OS Independent
|
|
|
13
13
|
Requires-Python: >=3.12
|
|
14
14
|
Description-Content-Type: text/markdown
|
|
15
15
|
License-File: LICENSE
|
|
16
|
-
Requires-Dist: pandas>=
|
|
16
|
+
Requires-Dist: pandas>=3.0
|
|
17
17
|
Requires-Dist: sqlalchemy>=2.0.0
|
|
18
18
|
Requires-Dist: PyMySQL>=1.0.2
|
|
19
19
|
Requires-Dist: opensearch-py<3.0.0,>=2.8.0
|
|
20
|
-
Requires-Dist: echoss-
|
|
20
|
+
Requires-Dist: echoss-common<3,>=2.0.0
|
|
21
21
|
Requires-Dist: psycopg[binary]<4.0.0,>=3.2
|
|
22
22
|
Requires-Dist: qdrant-client[fastembed]<2.0.0,>=1.14.1
|
|
23
23
|
Requires-Dist: python-dotenv>=1.0.0
|
|
@@ -37,6 +37,9 @@ MySQL, PostgreSQL, OpenSearch, Qdrant compatible query/vector access package
|
|
|
37
37
|
> ⚠️ **MongoDB support is deprecated** (v2.2.0) and will be removed in v3.0.0.
|
|
38
38
|
> `pymongo` is now an optional dependency: `pip install echoss-db[mongo]`.
|
|
39
39
|
|
|
40
|
+
> 작업 이력(완료된 결론·미착수 백로그)은 [`prior-work.jsonl`](./prior-work.jsonl)에 기록됩니다.
|
|
41
|
+
> 조회: `/prior-work <주제어>` (예: `qdrant`, `.env`, `mysql passwd`).
|
|
42
|
+
|
|
40
43
|
## Prepare
|
|
41
44
|
|
|
42
45
|
사용 전 config(인증 정보) 유무를 확인한 뒤 사용해야 합니다.
|
|
@@ -135,6 +138,9 @@ Python 3.11 or lower is not supported in `echoss-db>=2.2.0`; use the `1.x` line
|
|
|
135
138
|
pip install -U echoss-db
|
|
136
139
|
```
|
|
137
140
|
|
|
141
|
+
`echoss-db>=2.3.0` requires pandas `>=3.0`. Environments pinned to pandas 2 (e.g. AutoGluon, PyCaret 3.x) should pin `"echoss-db<2.3"`.
|
|
142
|
+
`echoss-db>=2.3.0` no longer installs `echoss-fileformat`; declare it directly if your code imports it.
|
|
143
|
+
|
|
138
144
|
If your environment previously used legacy PostgreSQL drivers, clean them first:
|
|
139
145
|
|
|
140
146
|
```bash
|
|
@@ -626,3 +632,5 @@ v2.0.0 add optional `echoss_db.mapping` (dataclass default, pydantic optional)
|
|
|
626
632
|
v2.1.0 raise Python baseline to 3.11, standardize on psycopg3, and keep Qdrant fastembed as default runtime
|
|
627
633
|
v2.2.0 qdrant generalized dict filter (breaking behavior: previously ignored keys now applied) and get_collection_info, postgres upsert/parse_json options, upsert retry/backoff/batch_size, deprecate MongoQuery (pymongo moved to optional extra [mongo]), raise Python floor to 3.12
|
|
628
634
|
v2.2.2 qdrant admin/read-only API key support (`role` param, `api_key`/`read_only_api_key` config fields), config.yaml credential fields (mysql/postgres/elastic `passwd`, qdrant `api_key`/`read_only_api_key`) now accept `${VAR_NAME}` placeholders resolved from `.env`/OS env (new `python-dotenv` dependency)
|
|
635
|
+
v2.3.0 config loading and logger now imported from `echoss-common` (`>=1.2.0,<3`) instead of `echoss-fileformat`; `echoss-fileformat` removed from install dependencies (declare it directly if you use it); raise pandas floor to 3.0. XML config files are now read by `echoss-common` (result keys may differ from the previous `echoss-fileformat` XML reader)
|
|
636
|
+
v2.3.1 raise `echoss-common` floor to `>=2.0.0,<3` (no code change). With `echoss-common` 2.0: no default `logs/echoss.log` file (console only), and a missing config file path raises `FileNotFoundError` (with `echoss-common` 1.x: `ValueError`/`TypeError`)
|
|
@@ -5,6 +5,9 @@ MySQL, PostgreSQL, OpenSearch, Qdrant compatible query/vector access package
|
|
|
5
5
|
> ⚠️ **MongoDB support is deprecated** (v2.2.0) and will be removed in v3.0.0.
|
|
6
6
|
> `pymongo` is now an optional dependency: `pip install echoss-db[mongo]`.
|
|
7
7
|
|
|
8
|
+
> 작업 이력(완료된 결론·미착수 백로그)은 [`prior-work.jsonl`](./prior-work.jsonl)에 기록됩니다.
|
|
9
|
+
> 조회: `/prior-work <주제어>` (예: `qdrant`, `.env`, `mysql passwd`).
|
|
10
|
+
|
|
8
11
|
## Prepare
|
|
9
12
|
|
|
10
13
|
사용 전 config(인증 정보) 유무를 확인한 뒤 사용해야 합니다.
|
|
@@ -103,6 +106,9 @@ Python 3.11 or lower is not supported in `echoss-db>=2.2.0`; use the `1.x` line
|
|
|
103
106
|
pip install -U echoss-db
|
|
104
107
|
```
|
|
105
108
|
|
|
109
|
+
`echoss-db>=2.3.0` requires pandas `>=3.0`. Environments pinned to pandas 2 (e.g. AutoGluon, PyCaret 3.x) should pin `"echoss-db<2.3"`.
|
|
110
|
+
`echoss-db>=2.3.0` no longer installs `echoss-fileformat`; declare it directly if your code imports it.
|
|
111
|
+
|
|
106
112
|
If your environment previously used legacy PostgreSQL drivers, clean them first:
|
|
107
113
|
|
|
108
114
|
```bash
|
|
@@ -594,3 +600,5 @@ v2.0.0 add optional `echoss_db.mapping` (dataclass default, pydantic optional)
|
|
|
594
600
|
v2.1.0 raise Python baseline to 3.11, standardize on psycopg3, and keep Qdrant fastembed as default runtime
|
|
595
601
|
v2.2.0 qdrant generalized dict filter (breaking behavior: previously ignored keys now applied) and get_collection_info, postgres upsert/parse_json options, upsert retry/backoff/batch_size, deprecate MongoQuery (pymongo moved to optional extra [mongo]), raise Python floor to 3.12
|
|
596
602
|
v2.2.2 qdrant admin/read-only API key support (`role` param, `api_key`/`read_only_api_key` config fields), config.yaml credential fields (mysql/postgres/elastic `passwd`, qdrant `api_key`/`read_only_api_key`) now accept `${VAR_NAME}` placeholders resolved from `.env`/OS env (new `python-dotenv` dependency)
|
|
603
|
+
v2.3.0 config loading and logger now imported from `echoss-common` (`>=1.2.0,<3`) instead of `echoss-fileformat`; `echoss-fileformat` removed from install dependencies (declare it directly if you use it); raise pandas floor to 3.0. XML config files are now read by `echoss-common` (result keys may differ from the previous `echoss-fileformat` XML reader)
|
|
604
|
+
v2.3.1 raise `echoss-common` floor to `>=2.0.0,<3` (no code change). With `echoss-common` 2.0: no default `logs/echoss.log` file (console only), and a missing config file path raises `FileNotFoundError` (with `echoss-common` 1.x: `ValueError`/`TypeError`)
|
|
@@ -4,7 +4,7 @@ from opensearchpy.helpers import bulk as helpers_bulk
|
|
|
4
4
|
from opensearchpy.exceptions import NotFoundError
|
|
5
5
|
from typing import Any, List, Tuple, Dict, Optional, Union
|
|
6
6
|
|
|
7
|
-
from
|
|
7
|
+
from echoss_common import dict_load, get_logger, set_logger_level
|
|
8
8
|
|
|
9
9
|
from .env_config import resolve_credential
|
|
10
10
|
|
|
@@ -35,7 +35,7 @@ class ElasticSearch:
|
|
|
35
35
|
|
|
36
36
|
"""
|
|
37
37
|
if isinstance(conn_info, str):
|
|
38
|
-
conn_info =
|
|
38
|
+
conn_info = dict_load(conn_info)
|
|
39
39
|
elif not isinstance(conn_info, dict):
|
|
40
40
|
raise TypeError("ElasticSearch support type 'str' and 'dict'")
|
|
41
41
|
|
|
@@ -5,7 +5,7 @@ from pymongo import MongoClient
|
|
|
5
5
|
from pymongo.errors import PyMongoError
|
|
6
6
|
from typing import Any, List, Tuple, Union
|
|
7
7
|
|
|
8
|
-
from
|
|
8
|
+
from echoss_common import dict_load, get_logger, set_logger_level
|
|
9
9
|
|
|
10
10
|
logger = get_logger("echoss_query")
|
|
11
11
|
|
|
@@ -34,7 +34,7 @@ class MongoQuery:
|
|
|
34
34
|
stacklevel=2,
|
|
35
35
|
)
|
|
36
36
|
if isinstance(conn_info, str):
|
|
37
|
-
conn_info =
|
|
37
|
+
conn_info = dict_load(conn_info)
|
|
38
38
|
elif not isinstance(conn_info, dict):
|
|
39
39
|
raise TypeError("[Mongo] support type 'str' and 'dict'")
|
|
40
40
|
required_keys = ['db']
|
|
@@ -9,7 +9,7 @@ from sqlalchemy import create_engine, text
|
|
|
9
9
|
from sqlalchemy.engine import Engine, Connection, Result
|
|
10
10
|
from sqlalchemy.exc import SQLAlchemyError, DBAPIError
|
|
11
11
|
|
|
12
|
-
from
|
|
12
|
+
from echoss_common import dict_load, get_logger
|
|
13
13
|
from .env_config import resolve_credential
|
|
14
14
|
from .sql_transaction import SQLTransaction
|
|
15
15
|
|
|
@@ -131,7 +131,7 @@ class MysqlQuery:
|
|
|
131
131
|
use_percent_param: use %s param style, if false sqlalchemy :name tag style query param
|
|
132
132
|
"""
|
|
133
133
|
if isinstance(conn_info, str):
|
|
134
|
-
conn_info =
|
|
134
|
+
conn_info = dict_load(conn_info)
|
|
135
135
|
elif not isinstance(conn_info, dict):
|
|
136
136
|
raise TypeError("MysqlQuery support type 'str' and 'dict'")
|
|
137
137
|
|
|
@@ -10,7 +10,7 @@ from sqlalchemy import create_engine, text
|
|
|
10
10
|
from sqlalchemy.engine import Engine, Connection, Result
|
|
11
11
|
from sqlalchemy.exc import SQLAlchemyError
|
|
12
12
|
|
|
13
|
-
from
|
|
13
|
+
from echoss_common import dict_load, get_logger
|
|
14
14
|
from .env_config import resolve_credential
|
|
15
15
|
from .sql_transaction import SQLTransaction
|
|
16
16
|
|
|
@@ -95,7 +95,7 @@ class PostgresQuery:
|
|
|
95
95
|
pool_size: int = 5, pool_timeout: int = 30, pool_recycle: Optional[int] = None,
|
|
96
96
|
use_percent_param: bool = True):
|
|
97
97
|
if isinstance(conn_info, str):
|
|
98
|
-
conn_info =
|
|
98
|
+
conn_info = dict_load(conn_info)
|
|
99
99
|
elif not isinstance(conn_info, dict):
|
|
100
100
|
raise TypeError("PostgresQuery support type 'str' and 'dict'")
|
|
101
101
|
|
|
@@ -3,7 +3,7 @@ import time
|
|
|
3
3
|
import pandas as pd
|
|
4
4
|
from typing import Any, Dict, List, Optional, Union
|
|
5
5
|
|
|
6
|
-
from
|
|
6
|
+
from echoss_common import dict_load, get_logger
|
|
7
7
|
|
|
8
8
|
logger = get_logger("echoss_query")
|
|
9
9
|
|
|
@@ -39,7 +39,7 @@ class QdrantVector:
|
|
|
39
39
|
중 role에 대응하는 필드를 연결에 사용한다. Design Ref: §4.2.
|
|
40
40
|
"""
|
|
41
41
|
if isinstance(conn_info, str):
|
|
42
|
-
conn_info =
|
|
42
|
+
conn_info = dict_load(conn_info)
|
|
43
43
|
elif not isinstance(conn_info, dict):
|
|
44
44
|
raise TypeError("QdrantVector support type 'str' and 'dict'")
|
|
45
45
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: echoss-db
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.3.1
|
|
4
4
|
Summary: echoss AI Bigdata Solution - Database Query Package
|
|
5
5
|
Author-email: ckkim <ckkim@12cm.co.kr>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -13,11 +13,11 @@ Classifier: Operating System :: OS Independent
|
|
|
13
13
|
Requires-Python: >=3.12
|
|
14
14
|
Description-Content-Type: text/markdown
|
|
15
15
|
License-File: LICENSE
|
|
16
|
-
Requires-Dist: pandas>=
|
|
16
|
+
Requires-Dist: pandas>=3.0
|
|
17
17
|
Requires-Dist: sqlalchemy>=2.0.0
|
|
18
18
|
Requires-Dist: PyMySQL>=1.0.2
|
|
19
19
|
Requires-Dist: opensearch-py<3.0.0,>=2.8.0
|
|
20
|
-
Requires-Dist: echoss-
|
|
20
|
+
Requires-Dist: echoss-common<3,>=2.0.0
|
|
21
21
|
Requires-Dist: psycopg[binary]<4.0.0,>=3.2
|
|
22
22
|
Requires-Dist: qdrant-client[fastembed]<2.0.0,>=1.14.1
|
|
23
23
|
Requires-Dist: python-dotenv>=1.0.0
|
|
@@ -37,6 +37,9 @@ MySQL, PostgreSQL, OpenSearch, Qdrant compatible query/vector access package
|
|
|
37
37
|
> ⚠️ **MongoDB support is deprecated** (v2.2.0) and will be removed in v3.0.0.
|
|
38
38
|
> `pymongo` is now an optional dependency: `pip install echoss-db[mongo]`.
|
|
39
39
|
|
|
40
|
+
> 작업 이력(완료된 결론·미착수 백로그)은 [`prior-work.jsonl`](./prior-work.jsonl)에 기록됩니다.
|
|
41
|
+
> 조회: `/prior-work <주제어>` (예: `qdrant`, `.env`, `mysql passwd`).
|
|
42
|
+
|
|
40
43
|
## Prepare
|
|
41
44
|
|
|
42
45
|
사용 전 config(인증 정보) 유무를 확인한 뒤 사용해야 합니다.
|
|
@@ -135,6 +138,9 @@ Python 3.11 or lower is not supported in `echoss-db>=2.2.0`; use the `1.x` line
|
|
|
135
138
|
pip install -U echoss-db
|
|
136
139
|
```
|
|
137
140
|
|
|
141
|
+
`echoss-db>=2.3.0` requires pandas `>=3.0`. Environments pinned to pandas 2 (e.g. AutoGluon, PyCaret 3.x) should pin `"echoss-db<2.3"`.
|
|
142
|
+
`echoss-db>=2.3.0` no longer installs `echoss-fileformat`; declare it directly if your code imports it.
|
|
143
|
+
|
|
138
144
|
If your environment previously used legacy PostgreSQL drivers, clean them first:
|
|
139
145
|
|
|
140
146
|
```bash
|
|
@@ -626,3 +632,5 @@ v2.0.0 add optional `echoss_db.mapping` (dataclass default, pydantic optional)
|
|
|
626
632
|
v2.1.0 raise Python baseline to 3.11, standardize on psycopg3, and keep Qdrant fastembed as default runtime
|
|
627
633
|
v2.2.0 qdrant generalized dict filter (breaking behavior: previously ignored keys now applied) and get_collection_info, postgres upsert/parse_json options, upsert retry/backoff/batch_size, deprecate MongoQuery (pymongo moved to optional extra [mongo]), raise Python floor to 3.12
|
|
628
634
|
v2.2.2 qdrant admin/read-only API key support (`role` param, `api_key`/`read_only_api_key` config fields), config.yaml credential fields (mysql/postgres/elastic `passwd`, qdrant `api_key`/`read_only_api_key`) now accept `${VAR_NAME}` placeholders resolved from `.env`/OS env (new `python-dotenv` dependency)
|
|
635
|
+
v2.3.0 config loading and logger now imported from `echoss-common` (`>=1.2.0,<3`) instead of `echoss-fileformat`; `echoss-fileformat` removed from install dependencies (declare it directly if you use it); raise pandas floor to 3.0. XML config files are now read by `echoss-common` (result keys may differ from the previous `echoss-fileformat` XML reader)
|
|
636
|
+
v2.3.1 raise `echoss-common` floor to `>=2.0.0,<3` (no code change). With `echoss-common` 2.0: no default `logs/echoss.log` file (console only), and a missing config file path raises `FileNotFoundError` (with `echoss-common` 1.x: `ValueError`/`TypeError`)
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "echoss-db"
|
|
7
|
-
version = "2.
|
|
7
|
+
version = "2.3.1"
|
|
8
8
|
description = "echoss AI Bigdata Solution - Database Query Package"
|
|
9
9
|
readme = { file = "README.md", content-type = "text/markdown" }
|
|
10
10
|
license = "Apache-2.0"
|
|
@@ -20,11 +20,11 @@ classifiers = [
|
|
|
20
20
|
"Operating System :: OS Independent",
|
|
21
21
|
]
|
|
22
22
|
dependencies = [
|
|
23
|
-
"pandas>=
|
|
23
|
+
"pandas>=3.0",
|
|
24
24
|
"sqlalchemy>=2.0.0",
|
|
25
25
|
"PyMySQL>=1.0.2",
|
|
26
26
|
"opensearch-py>=2.8.0,<3.0.0",
|
|
27
|
-
"echoss-
|
|
27
|
+
"echoss-common>=2.0.0,<3",
|
|
28
28
|
"psycopg[binary]>=3.2,<4.0.0",
|
|
29
29
|
"qdrant-client[fastembed]>=1.14.1,<2.0.0",
|
|
30
30
|
"python-dotenv>=1.0.0",
|
|
@@ -15,7 +15,7 @@ import os
|
|
|
15
15
|
|
|
16
16
|
import pytest
|
|
17
17
|
|
|
18
|
-
from
|
|
18
|
+
from echoss_common import dict_load
|
|
19
19
|
|
|
20
20
|
from echoss_db.postgres_query import PostgresQuery
|
|
21
21
|
from echoss_db.qdrant_vector import QdrantVector
|
|
@@ -30,7 +30,7 @@ QDRANT_TEST_COLLECTION = "ai_push_chunks_test"
|
|
|
30
30
|
def load_config_section(section: str) -> dict:
|
|
31
31
|
if not os.path.exists(CONFIG_PATH):
|
|
32
32
|
pytest.skip(f"config/config_dev.yaml not found — required for {section} integration tests")
|
|
33
|
-
config =
|
|
33
|
+
config = dict_load(CONFIG_PATH)
|
|
34
34
|
if section not in config:
|
|
35
35
|
pytest.skip(f"'{section}' section missing in config/config_dev.yaml")
|
|
36
36
|
return dict(config[section])
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|