deepfos 1.1.40__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.40 → deepfos-1.1.41}/CHANGELOG.md +7 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/PKG-INFO +1 -1
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/_version.py +3 -3
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/db/edb.py +27 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/element/deepmodel.py +57 -22
- deepfos-1.1.41/deepfos/lib/edb_lexer.py +789 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos.egg-info/PKG-INFO +1 -1
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos.egg-info/SOURCES.txt +2 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/.gitattributes +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/.gitee/ISSUE_GUIDELINES.md +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/.gitee/ISSUE_TEMPLATE.md +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/.gitignore +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/MANIFEST.in +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/README.md +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/__init__.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/algo/__init__.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/algo/graph.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/V1_1/__init__.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/V1_1/business_model.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/V1_1/dimension.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/V1_1/models/__init__.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/V1_1/models/business_model.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/V1_1/models/dimension.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/V1_2/__init__.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/V1_2/dimension.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/V1_2/models/__init__.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/V1_2/models/dimension.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/__init__.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/account.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/accounting_engines.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/app.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/approval_process.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/base.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/business_model.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/consolidation.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/consolidation_process.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/datatable.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/deepconnector.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/deepfos_task.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/deepmodel.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/dimension.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/financial_model.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/journal_model.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/journal_template.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/memory_financial_model.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/models/__init__.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/models/account.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/models/accounting_engines.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/models/app.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/models/approval_process.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/models/base.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/models/business_model.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/models/consolidation.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/models/consolidation_process.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/models/datatable_mysql.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/models/deepconnector.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/models/deepfos_task.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/models/deepmodel.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/models/dimension.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/models/financial_model.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/models/journal_model.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/models/journal_template.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/models/memory_financial_model.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/models/platform.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/models/python.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/models/reconciliation_engine.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/models/reconciliation_report.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/models/role_strategy.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/models/smartlist.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/models/space.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/models/system.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/models/variable.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/models/workflow.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/platform.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/python.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/reconciliation_engine.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/reconciliation_report.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/role_strategy.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/smartlist.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/space.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/system.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/variable.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/api/workflow.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/boost/__init__.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/boost/jstream.c +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/boost/jstream.pyx +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/boost/pandas.c +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/boost/pandas.pyx +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/boost/py_jstream.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/boost/py_pandas.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/cache.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/config.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/core/__init__.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/core/cube/__init__.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/core/cube/_base.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/core/cube/constants.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/core/cube/cube.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/core/cube/formula.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/core/cube/syscube.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/core/cube/typing.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/core/cube/utils.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/core/dimension/__init__.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/core/dimension/_base.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/core/dimension/dimcreator.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/core/dimension/dimension.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/core/dimension/dimexpr.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/core/dimension/dimmember.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/core/dimension/eledimension.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/core/dimension/filters.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/core/dimension/sysdimension.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/core/logictable/__init__.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/core/logictable/_cache.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/core/logictable/_operator.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/core/logictable/nodemixin.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/core/logictable/sqlcondition.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/core/logictable/tablemodel.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/db/__init__.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/db/cipher.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/db/clickhouse.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/db/connector.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/db/daclickhouse.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/db/dameng.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/db/damysql.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/db/dbkits.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/db/deepengine.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/db/deepmodel.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/db/deepmodel_kingbase.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/db/gauss.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/db/kingbase.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/db/mysql.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/db/oracle.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/db/postgresql.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/db/sqlserver.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/db/utils.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/element/__init__.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/element/accounting.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/element/apvlprocess.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/element/base.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/element/bizmodel.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/element/datatable.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/element/deepconnector.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/element/dimension.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/element/fact_table.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/element/finmodel.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/element/journal.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/element/journal_template.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/element/pyscript.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/element/reconciliation.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/element/rolestrategy.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/element/smartlist.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/element/variable.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/element/workflow.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/exceptions/__init__.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/exceptions/hook.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/lazy.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/lib/__init__.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/lib/_javaobj.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/lib/asynchronous.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/lib/concurrency.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/lib/constant.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/lib/decorator.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/lib/deepchart.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/lib/deepux.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/lib/discovery.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/lib/eureka.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/lib/filterparser.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/lib/httpcli.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/lib/jsonstreamer.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/lib/msg.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/lib/nacos.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/lib/patch.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/lib/redis.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/lib/serutils.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/lib/stopwatch.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/lib/subtask.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/lib/sysutils.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/lib/utils.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/local.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/options.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos/translation.py +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos.egg-info/dependency_links.txt +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos.egg-info/not-zip-safe +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos.egg-info/requires.txt +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/deepfos.egg-info/top_level.txt +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/requirements.txt +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/setup.cfg +0 -0
- {deepfos-1.1.40 → deepfos-1.1.41}/setup.py +0 -0
- {deepfos-1.1.40 → 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,
|
|
@@ -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,
|