deepfos 1.1.39__tar.gz → 1.1.41__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.
- {deepfos-1.1.39 → deepfos-1.1.41}/CHANGELOG.md +13 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/PKG-INFO +1 -1
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/__init__.py +1 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/_version.py +3 -3
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/db/edb.py +27 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/element/deepmodel.py +58 -23
- deepfos-1.1.41/deepfos/lib/edb_lexer.py +789 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos.egg-info/PKG-INFO +1 -1
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos.egg-info/SOURCES.txt +2 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/.gitattributes +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/.gitee/ISSUE_GUIDELINES.md +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/.gitee/ISSUE_TEMPLATE.md +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/.gitignore +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/MANIFEST.in +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/README.md +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/algo/__init__.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/algo/graph.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/V1_1/__init__.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/V1_1/business_model.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/V1_1/dimension.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/V1_1/models/__init__.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/V1_1/models/business_model.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/V1_1/models/dimension.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/V1_2/__init__.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/V1_2/dimension.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/V1_2/models/__init__.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/V1_2/models/dimension.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/__init__.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/account.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/accounting_engines.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/app.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/approval_process.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/base.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/business_model.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/consolidation.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/consolidation_process.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/datatable.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/deepconnector.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/deepfos_task.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/deepmodel.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/dimension.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/financial_model.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/journal_model.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/journal_template.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/memory_financial_model.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/models/__init__.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/models/account.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/models/accounting_engines.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/models/app.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/models/approval_process.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/models/base.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/models/business_model.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/models/consolidation.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/models/consolidation_process.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/models/datatable_mysql.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/models/deepconnector.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/models/deepfos_task.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/models/deepmodel.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/models/dimension.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/models/financial_model.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/models/journal_model.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/models/journal_template.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/models/memory_financial_model.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/models/platform.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/models/python.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/models/reconciliation_engine.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/models/reconciliation_report.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/models/role_strategy.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/models/smartlist.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/models/space.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/models/system.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/models/variable.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/models/workflow.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/platform.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/python.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/reconciliation_engine.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/reconciliation_report.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/role_strategy.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/smartlist.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/space.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/system.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/variable.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/api/workflow.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/boost/__init__.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/boost/jstream.c +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/boost/jstream.pyx +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/boost/pandas.c +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/boost/pandas.pyx +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/boost/py_jstream.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/boost/py_pandas.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/cache.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/config.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/core/__init__.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/core/cube/__init__.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/core/cube/_base.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/core/cube/constants.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/core/cube/cube.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/core/cube/formula.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/core/cube/syscube.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/core/cube/typing.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/core/cube/utils.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/core/dimension/__init__.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/core/dimension/_base.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/core/dimension/dimcreator.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/core/dimension/dimension.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/core/dimension/dimexpr.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/core/dimension/dimmember.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/core/dimension/eledimension.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/core/dimension/filters.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/core/dimension/sysdimension.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/core/logictable/__init__.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/core/logictable/_cache.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/core/logictable/_operator.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/core/logictable/nodemixin.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/core/logictable/sqlcondition.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/core/logictable/tablemodel.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/db/__init__.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/db/cipher.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/db/clickhouse.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/db/connector.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/db/daclickhouse.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/db/dameng.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/db/damysql.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/db/dbkits.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/db/deepengine.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/db/deepmodel.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/db/deepmodel_kingbase.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/db/gauss.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/db/kingbase.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/db/mysql.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/db/oracle.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/db/postgresql.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/db/sqlserver.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/db/utils.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/element/__init__.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/element/accounting.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/element/apvlprocess.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/element/base.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/element/bizmodel.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/element/datatable.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/element/deepconnector.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/element/dimension.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/element/fact_table.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/element/finmodel.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/element/journal.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/element/journal_template.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/element/pyscript.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/element/reconciliation.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/element/rolestrategy.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/element/smartlist.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/element/variable.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/element/workflow.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/exceptions/__init__.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/exceptions/hook.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/lazy.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/lib/__init__.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/lib/_javaobj.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/lib/asynchronous.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/lib/concurrency.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/lib/constant.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/lib/decorator.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/lib/deepchart.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/lib/deepux.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/lib/discovery.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/lib/eureka.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/lib/filterparser.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/lib/httpcli.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/lib/jsonstreamer.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/lib/msg.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/lib/nacos.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/lib/patch.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/lib/redis.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/lib/serutils.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/lib/stopwatch.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/lib/subtask.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/lib/sysutils.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/lib/utils.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/local.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/options.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos/translation.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos.egg-info/dependency_links.txt +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos.egg-info/not-zip-safe +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos.egg-info/requires.txt +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/deepfos.egg-info/top_level.txt +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/requirements.txt +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/setup.cfg +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/setup.py +0 -0
- {deepfos-1.1.39 → deepfos-1.1.41}/versioneer.py +0 -0
|
@@ -8,11 +8,11 @@ import json
|
|
|
8
8
|
|
|
9
9
|
version_json = '''
|
|
10
10
|
{
|
|
11
|
-
"date": "2024-
|
|
11
|
+
"date": "2024-08-27T03:14:45+0000",
|
|
12
12
|
"dirty": false,
|
|
13
13
|
"error": null,
|
|
14
|
-
"full-revisionid": "
|
|
15
|
-
"version": "1.1.
|
|
14
|
+
"full-revisionid": "7ad5b47463259c3d454add43b3ce449ddd818120",
|
|
15
|
+
"version": "1.1.41"
|
|
16
16
|
}
|
|
17
17
|
''' # END VERSION_JSON
|
|
18
18
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import asyncio
|
|
2
|
+
from typing import Dict
|
|
2
3
|
|
|
3
4
|
from edgedb import AsyncIOClient, errors, enums, describe, abstract
|
|
4
5
|
from edgedb.abstract import (
|
|
@@ -34,6 +35,25 @@ def collect_output_frame(ele_desc: describe.AnyType):
|
|
|
34
35
|
return ele_desc.name
|
|
35
36
|
|
|
36
37
|
|
|
38
|
+
def normalize_kw(query: str, kw: Dict):
|
|
39
|
+
from deepfos.lib.edb_lexer import EdgeQLLexer
|
|
40
|
+
lexer = EdgeQLLexer()
|
|
41
|
+
lexer.setinputstr(query)
|
|
42
|
+
expected_args = list(
|
|
43
|
+
map(
|
|
44
|
+
lambda t: t.text[1::],
|
|
45
|
+
filter(lambda x: x.type == 'ARGUMENT', lexer.lex())
|
|
46
|
+
)
|
|
47
|
+
)
|
|
48
|
+
result = {}
|
|
49
|
+
for arg_name in expected_args:
|
|
50
|
+
if arg_name in kw:
|
|
51
|
+
result[arg_name] = kw[arg_name]
|
|
52
|
+
else:
|
|
53
|
+
result.setdefault(arg_name)
|
|
54
|
+
return result
|
|
55
|
+
|
|
56
|
+
|
|
37
57
|
class _AsyncEdgeDBConnection(AsyncIOConnection):
|
|
38
58
|
async def raw_query(self, query_context, capabilities=enums.Capability.NONE):
|
|
39
59
|
if self.is_closed():
|
|
@@ -41,6 +61,13 @@ class _AsyncEdgeDBConnection(AsyncIOConnection):
|
|
|
41
61
|
|
|
42
62
|
reconnect = False
|
|
43
63
|
i = 0
|
|
64
|
+
query = query_context.query.query
|
|
65
|
+
kwargs = query_context.query.kwargs
|
|
66
|
+
query_context = query_context._replace(
|
|
67
|
+
query=query_context.query._replace(
|
|
68
|
+
kwargs=normalize_kw(query, kwargs)
|
|
69
|
+
)
|
|
70
|
+
)
|
|
44
71
|
args = dict(
|
|
45
72
|
query=query_context.query.query,
|
|
46
73
|
args=query_context.query.args,
|
|
@@ -420,7 +420,7 @@ class ObjectStructure:
|
|
|
420
420
|
self.fields = {
|
|
421
421
|
field.name: FieldFactory(field)
|
|
422
422
|
for field in structure
|
|
423
|
-
if not field.computable and field.name != 'id'
|
|
423
|
+
if not field.computable and field.name != 'id'
|
|
424
424
|
}
|
|
425
425
|
# Make one for batch insert pg
|
|
426
426
|
if include_id:
|
|
@@ -858,12 +858,15 @@ class AsyncDeepModel(ElementBase[DeepModelAPI]):
|
|
|
858
858
|
|
|
859
859
|
@cached_property
|
|
860
860
|
def objects(self) -> Dict[str, ObjectTypeFrame]:
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
861
|
+
result = {name: format_obj(obj) for name, obj in self.user_objects.items()}
|
|
862
|
+
for name, obj in self.system_objects.items():
|
|
863
|
+
# In case of duplicate name both in app obj& space obj
|
|
864
|
+
if name in result:
|
|
865
|
+
result[f'{self.spacemodule}::{name}'] = format_obj(obj)
|
|
866
|
+
else:
|
|
867
|
+
result[name] = format_obj(obj)
|
|
868
|
+
|
|
869
|
+
return result
|
|
867
870
|
|
|
868
871
|
@staticmethod
|
|
869
872
|
def _prepare_variables(kwargs):
|
|
@@ -1267,7 +1270,15 @@ class AsyncDeepModel(ElementBase[DeepModelAPI]):
|
|
|
1267
1270
|
logger.info("data为空,无DML执行")
|
|
1268
1271
|
return
|
|
1269
1272
|
|
|
1270
|
-
|
|
1273
|
+
if object_name in self.objects:
|
|
1274
|
+
obj = self.objects[object_name]
|
|
1275
|
+
else:
|
|
1276
|
+
raise ObjectNotExist(
|
|
1277
|
+
f'DeepModel对象[{object_name}]在当前应用不存在,无法插入数据'
|
|
1278
|
+
)
|
|
1279
|
+
if obj.external:
|
|
1280
|
+
raise ExternalObjectReadOnly('外部对象只可读')
|
|
1281
|
+
|
|
1271
1282
|
structure = ObjectStructure(name=obj.name, structure=obj.fields.values())
|
|
1272
1283
|
|
|
1273
1284
|
self._valid_data(data, object_name, relation, structure)
|
|
@@ -1348,24 +1359,33 @@ class AsyncDeepModel(ElementBase[DeepModelAPI]):
|
|
|
1348
1359
|
kwargs={kw_name: part.to_json(orient='records', double_precision=15)}
|
|
1349
1360
|
))
|
|
1350
1361
|
|
|
1351
|
-
def get_object(
|
|
1362
|
+
async def get_object(
|
|
1363
|
+
self,
|
|
1364
|
+
object_name: str,
|
|
1365
|
+
raw: bool = True
|
|
1366
|
+
) -> Optional[Union[ObjectTypeFrame, edgedb.Object]]:
|
|
1352
1367
|
"""获取指定对象名的对象
|
|
1353
1368
|
|
|
1354
1369
|
Args:
|
|
1355
|
-
object_name:
|
|
1370
|
+
object_name: 对象名,如对象名未提供module name部分,则默认module name为当前app module
|
|
1371
|
+
如需查询其他module的对象,应以 module_name::object_name 的形式提供
|
|
1372
|
+
raw: 是否获取edgedb.Object数据,为False时将转换为ObjectTypeFrame数据
|
|
1373
|
+
默认为True
|
|
1356
1374
|
|
|
1357
1375
|
"""
|
|
1358
|
-
if
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1376
|
+
if '::' not in object_name:
|
|
1377
|
+
object_name = f'{self.appmodule}::{object_name}'
|
|
1378
|
+
objs = await AsyncDeepModel.query_object(
|
|
1379
|
+
self,
|
|
1380
|
+
f"{OBJECT_QUERY} filter .name = '{object_name}'",
|
|
1381
|
+
)
|
|
1382
|
+
if len(objs) == 0:
|
|
1383
|
+
return
|
|
1384
|
+
|
|
1385
|
+
if raw:
|
|
1386
|
+
return objs[0]
|
|
1387
|
+
|
|
1388
|
+
return format_obj(objs[0])
|
|
1369
1389
|
|
|
1370
1390
|
async def _get_bkey(
|
|
1371
1391
|
self,
|
|
@@ -1467,7 +1487,15 @@ class AsyncDeepModel(ElementBase[DeepModelAPI]):
|
|
|
1467
1487
|
if data.empty:
|
|
1468
1488
|
return
|
|
1469
1489
|
|
|
1470
|
-
|
|
1490
|
+
if object_name in self.objects:
|
|
1491
|
+
obj = self.objects[object_name]
|
|
1492
|
+
else:
|
|
1493
|
+
raise ObjectNotExist(
|
|
1494
|
+
f'DeepModel对象[{object_name}]在当前应用不存在,无法插入数据'
|
|
1495
|
+
)
|
|
1496
|
+
if obj.external:
|
|
1497
|
+
raise ExternalObjectReadOnly('外部对象只可读')
|
|
1498
|
+
|
|
1471
1499
|
structure = ObjectStructure(
|
|
1472
1500
|
name=obj.name,
|
|
1473
1501
|
structure=obj.fields.values(),
|
|
@@ -1632,7 +1660,7 @@ class AsyncDeepModel(ElementBase[DeepModelAPI]):
|
|
|
1632
1660
|
class DeepModel(AsyncDeepModel, metaclass=SyncMeta):
|
|
1633
1661
|
synchronize = (
|
|
1634
1662
|
'query_object', 'query', 'query_df',
|
|
1635
|
-
'execute',
|
|
1663
|
+
'execute', 'get_object',
|
|
1636
1664
|
'insert_df', 'insert_df_pg'
|
|
1637
1665
|
)
|
|
1638
1666
|
|
|
@@ -1653,6 +1681,13 @@ class DeepModel(AsyncDeepModel, metaclass=SyncMeta):
|
|
|
1653
1681
|
) -> Optional[List]:
|
|
1654
1682
|
...
|
|
1655
1683
|
|
|
1684
|
+
def get_object(
|
|
1685
|
+
self,
|
|
1686
|
+
object_name: str,
|
|
1687
|
+
raw: bool = True
|
|
1688
|
+
) -> Optional[Union[ObjectTypeFrame, edgedb.Object]]:
|
|
1689
|
+
...
|
|
1690
|
+
|
|
1656
1691
|
def insert_df(
|
|
1657
1692
|
self,
|
|
1658
1693
|
object_name: str,
|