deepfos 1.1.37__tar.gz → 1.1.39__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.37 → deepfos-1.1.39}/CHANGELOG.md +20 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/PKG-INFO +17 -1
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/_version.py +3 -3
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/account.py +12 -1
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/deepmodel.py +32 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/account.py +45 -2
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/deepmodel.py +39 -1
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/dimension.py +1 -1
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/sysutils.py +38 -2
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos.egg-info/PKG-INFO +17 -1
- {deepfos-1.1.37 → deepfos-1.1.39}/.gitattributes +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/.gitee/ISSUE_GUIDELINES.md +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/.gitee/ISSUE_TEMPLATE.md +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/.gitignore +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/MANIFEST.in +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/README.md +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/__init__.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/algo/__init__.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/algo/graph.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/V1_1/__init__.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/V1_1/business_model.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/V1_1/dimension.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/V1_1/models/__init__.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/V1_1/models/business_model.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/V1_1/models/dimension.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/V1_2/__init__.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/V1_2/dimension.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/V1_2/models/__init__.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/V1_2/models/dimension.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/__init__.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/accounting_engines.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/app.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/approval_process.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/base.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/business_model.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/consolidation.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/consolidation_process.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/datatable.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/deepconnector.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/deepfos_task.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/dimension.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/financial_model.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/journal_model.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/journal_template.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/memory_financial_model.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/__init__.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/accounting_engines.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/app.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/approval_process.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/base.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/business_model.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/consolidation.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/consolidation_process.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/datatable_mysql.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/deepconnector.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/deepfos_task.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/dimension.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/financial_model.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/journal_model.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/journal_template.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/memory_financial_model.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/platform.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/python.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/reconciliation_engine.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/reconciliation_report.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/role_strategy.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/smartlist.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/space.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/system.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/variable.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/models/workflow.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/platform.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/python.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/reconciliation_engine.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/reconciliation_report.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/role_strategy.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/smartlist.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/space.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/system.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/variable.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/api/workflow.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/boost/__init__.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/boost/jstream.c +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/boost/jstream.pyx +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/boost/pandas.c +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/boost/pandas.pyx +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/boost/py_jstream.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/boost/py_pandas.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/cache.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/config.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/__init__.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/cube/__init__.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/cube/_base.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/cube/constants.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/cube/cube.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/cube/formula.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/cube/syscube.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/cube/typing.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/cube/utils.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/dimension/__init__.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/dimension/_base.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/dimension/dimcreator.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/dimension/dimension.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/dimension/dimexpr.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/dimension/dimmember.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/dimension/eledimension.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/dimension/filters.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/dimension/sysdimension.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/logictable/__init__.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/logictable/_cache.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/logictable/_operator.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/logictable/nodemixin.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/logictable/sqlcondition.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/core/logictable/tablemodel.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/__init__.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/cipher.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/clickhouse.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/connector.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/daclickhouse.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/dameng.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/damysql.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/dbkits.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/deepengine.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/deepmodel.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/deepmodel_kingbase.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/edb.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/gauss.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/kingbase.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/mysql.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/oracle.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/postgresql.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/sqlserver.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/db/utils.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/__init__.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/accounting.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/apvlprocess.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/base.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/bizmodel.py +1 -1
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/datatable.py +1 -1
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/deepconnector.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/deepmodel.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/fact_table.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/finmodel.py +1 -1
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/journal.py +1 -1
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/journal_template.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/pyscript.py +2 -2
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/reconciliation.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/rolestrategy.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/smartlist.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/variable.py +1 -1
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/element/workflow.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/exceptions/__init__.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/exceptions/hook.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lazy.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/__init__.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/_javaobj.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/asynchronous.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/concurrency.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/constant.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/decorator.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/deepchart.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/deepux.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/discovery.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/eureka.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/filterparser.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/httpcli.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/jsonstreamer.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/msg.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/nacos.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/patch.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/redis.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/serutils.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/stopwatch.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/subtask.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/lib/utils.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/local.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/options.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos/translation.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos.egg-info/SOURCES.txt +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos.egg-info/dependency_links.txt +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos.egg-info/not-zip-safe +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos.egg-info/requires.txt +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/deepfos.egg-info/top_level.txt +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/requirements.txt +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/setup.cfg +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/setup.py +0 -0
- {deepfos-1.1.37 → deepfos-1.1.39}/versioneer.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: deepfos
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.39
|
|
4
4
|
Summary: Collecions of useful and handy tools for deepfos platform
|
|
5
5
|
Home-page: http://py.deepfos.com
|
|
6
6
|
Author: deepfos-python-team
|
|
@@ -12,3 +12,19 @@ Classifier: Programming Language :: Python :: 3.8
|
|
|
12
12
|
Classifier: Programming Language :: Python :: 3.9
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.10
|
|
14
14
|
Requires-Python: >=3.8.3
|
|
15
|
+
Requires-Dist: pandas==1.2.0
|
|
16
|
+
Requires-Dist: requests==2.25.1
|
|
17
|
+
Requires-Dist: pymysql==0.9.3
|
|
18
|
+
Requires-Dist: aiohttp==3.8.4
|
|
19
|
+
Requires-Dist: pydantic==1.8.2
|
|
20
|
+
Requires-Dist: cachetools==4.2.2
|
|
21
|
+
Requires-Dist: loguru==0.5.3
|
|
22
|
+
Requires-Dist: PyPika==0.48.8
|
|
23
|
+
Requires-Dist: aiomysql==0.0.22
|
|
24
|
+
Requires-Dist: clickhouse-driver==0.2.2
|
|
25
|
+
Requires-Dist: aioredis==2.0.1
|
|
26
|
+
Requires-Dist: redis==4.5.3
|
|
27
|
+
Requires-Dist: deepfos-ipc~=1.2.3
|
|
28
|
+
Requires-Dist: typing-extensions==4.5.0
|
|
29
|
+
Requires-Dist: edgedb~=1.4.0
|
|
30
|
+
Requires-Dist: asyncpg~=0.29.0
|
|
@@ -8,11 +8,11 @@ import json
|
|
|
8
8
|
|
|
9
9
|
version_json = '''
|
|
10
10
|
{
|
|
11
|
-
"date": "2024-
|
|
11
|
+
"date": "2024-07-18T05:22:46+0000",
|
|
12
12
|
"dirty": false,
|
|
13
13
|
"error": null,
|
|
14
|
-
"full-revisionid": "
|
|
15
|
-
"version": "1.1.
|
|
14
|
+
"full-revisionid": "34556e8bf4fa85558117403f5410ccd173164c10",
|
|
15
|
+
"version": "1.1.39"
|
|
16
16
|
}
|
|
17
17
|
''' # END VERSION_JSON
|
|
18
18
|
|
|
@@ -3,7 +3,7 @@ APIs provided by system-login-api
|
|
|
3
3
|
|
|
4
4
|
generated by api_code_gen.py
|
|
5
5
|
- **filename** : ``account.py``
|
|
6
|
-
- **json timestamp** : ``
|
|
6
|
+
- **json timestamp** : ``2024-07-16 14:17:08``
|
|
7
7
|
"""
|
|
8
8
|
from deepfos.api.base import RootAPI, ChildAPI, get, post
|
|
9
9
|
from .models.account import *
|
|
@@ -68,6 +68,17 @@ class ApiUserGroup(ChildAPI):
|
|
|
68
68
|
'header': {"enterprise-id": sysutils.get_enterprise_id_cached()},
|
|
69
69
|
'param': {'groupId': groupId, 'spaceId': spaceId},
|
|
70
70
|
}
|
|
71
|
+
|
|
72
|
+
@post('space/modify-group')
|
|
73
|
+
def space_modify_group(self, userGroupModifyDTO: UserGroupModifyDTO) -> Union[bool, Awaitable[bool]]:
|
|
74
|
+
"""
|
|
75
|
+
用户组详情修改
|
|
76
|
+
|
|
77
|
+
"""
|
|
78
|
+
return {
|
|
79
|
+
'body': userGroupModifyDTO,
|
|
80
|
+
'header': {"enterprise-id": sysutils.get_enterprise_id_cached()},
|
|
81
|
+
}
|
|
71
82
|
|
|
72
83
|
|
|
73
84
|
class UserImport(ChildAPI):
|
|
@@ -98,6 +98,34 @@ class DeepQLAPI(ChildAPI):
|
|
|
98
98
|
return {'body': {'module': module, 'query': query, 'variables': variables}}
|
|
99
99
|
|
|
100
100
|
|
|
101
|
+
class PresentationAPI(ChildAPI):
|
|
102
|
+
endpoint = '/presentation-layer'
|
|
103
|
+
|
|
104
|
+
@get('ql-selector/ql-record-info')
|
|
105
|
+
def ql_record_info(self, qlType: str, recordCode: str) -> Union[QlRecordVO, Awaitable[QlRecordVO]]:
|
|
106
|
+
"""获取单条记录
|
|
107
|
+
|
|
108
|
+
Args:
|
|
109
|
+
qlType: 查询类型 'deepql'|'analysisql'
|
|
110
|
+
recordCode: 查询编码
|
|
111
|
+
|
|
112
|
+
"""
|
|
113
|
+
return {'param': {'qlType': qlType, 'recordCode': recordCode}}
|
|
114
|
+
|
|
115
|
+
@get('ql-selector/ql-records')
|
|
116
|
+
def ql_records(self, qlType: str = None, qlRecordType: str = None) -> Union[List[QlRecordVO], Awaitable[List[QlRecordVO]]]:
|
|
117
|
+
"""获取所有的ql记录
|
|
118
|
+
|
|
119
|
+
Args:
|
|
120
|
+
qlType: 查询类型 'deepql'|'analysisql'
|
|
121
|
+
qlRecordType: 记录类型:个人PERSONAL /公共:PUBLIC
|
|
122
|
+
|
|
123
|
+
Returns:
|
|
124
|
+
|
|
125
|
+
"""
|
|
126
|
+
return {'param': {'qlType': qlType, 'qlRecordType': qlRecordType}}
|
|
127
|
+
|
|
128
|
+
|
|
101
129
|
class ExtraAPI(ChildAPI):
|
|
102
130
|
endpoint = '/'
|
|
103
131
|
|
|
@@ -134,6 +162,10 @@ class DeepModelAPI(DynamicRootAPI, builtin=True):
|
|
|
134
162
|
def sharding(self) -> ShardingAPI:
|
|
135
163
|
return ShardingAPI(self)
|
|
136
164
|
|
|
165
|
+
@cached_property
|
|
166
|
+
def presentation(self) -> PresentationAPI:
|
|
167
|
+
return PresentationAPI(self)
|
|
168
|
+
|
|
137
169
|
@cached_property
|
|
138
170
|
def extra(self) -> ExtraAPI:
|
|
139
171
|
return ExtraAPI(self)
|
|
@@ -3,7 +3,7 @@ Models used by /
|
|
|
3
3
|
|
|
4
4
|
generated by model_code_gen.py
|
|
5
5
|
- **filename** : ``account.py``
|
|
6
|
-
- **json timestamp** : ``
|
|
6
|
+
- **json timestamp** : ``2024-07-16 14:17:08``
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
9
|
|
|
@@ -17,6 +17,7 @@ __all__ = [
|
|
|
17
17
|
'ImportSendEmailDTO',
|
|
18
18
|
'ImportUserErrorDTO',
|
|
19
19
|
'PlatFormSecretVO',
|
|
20
|
+
'RoleInfoDetailSaveDTO',
|
|
20
21
|
'SpaceVO',
|
|
21
22
|
'UserGroupChildrenVO',
|
|
22
23
|
'UserGroupImportDTO',
|
|
@@ -26,11 +27,13 @@ __all__ = [
|
|
|
26
27
|
'UserImportDTO',
|
|
27
28
|
'UserInfoVO',
|
|
28
29
|
'UserRoleImportDTO',
|
|
30
|
+
'UserRoleInfoSaveDTO',
|
|
29
31
|
'ImportUserListParamsUserGroupImportDTO',
|
|
30
32
|
'ImportUserListParamsUserGroupRelationshipDTO',
|
|
31
33
|
'ImportUserListParamsUserImportDTO',
|
|
32
34
|
'ImportUserListParamsUserRoleImportDTO',
|
|
33
|
-
'UserGroupDetailVO'
|
|
35
|
+
'UserGroupDetailVO',
|
|
36
|
+
'UserGroupModifyDTO'
|
|
34
37
|
]
|
|
35
38
|
|
|
36
39
|
|
|
@@ -115,6 +118,15 @@ class PlatFormSecretVO(BaseModel):
|
|
|
115
118
|
platformSecret: Optional[str]
|
|
116
119
|
|
|
117
120
|
|
|
121
|
+
class RoleInfoDetailSaveDTO(BaseModel):
|
|
122
|
+
#: 父级角色编码
|
|
123
|
+
code: str
|
|
124
|
+
#: 选中的角色code
|
|
125
|
+
roleList: List[str]
|
|
126
|
+
#: 父级标识
|
|
127
|
+
tag: str
|
|
128
|
+
|
|
129
|
+
|
|
118
130
|
class SpaceVO(BaseModel):
|
|
119
131
|
"""Space VO
|
|
120
132
|
|
|
@@ -322,6 +334,13 @@ class UserRoleImportDTO(BaseModel):
|
|
|
322
334
|
username: Optional[str]
|
|
323
335
|
|
|
324
336
|
|
|
337
|
+
class UserRoleInfoSaveDTO(BaseModel):
|
|
338
|
+
#: 角色列表
|
|
339
|
+
children: Optional[List[RoleInfoDetailSaveDTO]]
|
|
340
|
+
#: 平台code
|
|
341
|
+
platformCode: str
|
|
342
|
+
|
|
343
|
+
|
|
325
344
|
class ImportUserListParamsUserGroupImportDTO(BaseModel):
|
|
326
345
|
"""Import User List Params DTO«User Group Import DTO»
|
|
327
346
|
|
|
@@ -437,4 +456,28 @@ class UserGroupDetailVO(BaseModel):
|
|
|
437
456
|
userList: Optional[List[UserInfoVO]]
|
|
438
457
|
|
|
439
458
|
|
|
459
|
+
class UserGroupModifyDTO(BaseModel):
|
|
460
|
+
"""User Group Modify DTO
|
|
461
|
+
|
|
462
|
+
.. admonition:: 引用接口
|
|
463
|
+
|
|
464
|
+
- **POST** ``/api/user/group/space/modify-group``
|
|
465
|
+
- **POST** ``/s/user/group/space/modify-group-batch``
|
|
466
|
+
"""
|
|
467
|
+
#: 子组列表
|
|
468
|
+
childrenGroupIdList: Optional[List[str]]
|
|
469
|
+
#: 描述
|
|
470
|
+
description: Optional[Any]
|
|
471
|
+
#: 用户组id
|
|
472
|
+
groupId: str
|
|
473
|
+
#: 用户组名
|
|
474
|
+
groupName: str
|
|
475
|
+
#: 空间
|
|
476
|
+
spaceId: Optional[str]
|
|
477
|
+
#: 用户id
|
|
478
|
+
userList: Optional[List[str]]
|
|
479
|
+
#: 角色列表
|
|
480
|
+
userRoleInfoSaveDTOList: Optional[List[UserRoleInfoSaveDTO]]
|
|
481
|
+
|
|
482
|
+
|
|
440
483
|
|
|
@@ -20,7 +20,9 @@ __all__ = [
|
|
|
20
20
|
"RuleParam",
|
|
21
21
|
"SequenceInstance",
|
|
22
22
|
"_IndexParam",
|
|
23
|
-
"SimpleSpaceConnectionConfig"
|
|
23
|
+
"SimpleSpaceConnectionConfig",
|
|
24
|
+
"QlGlobalVariableVO",
|
|
25
|
+
"QlRecordVO"
|
|
24
26
|
]
|
|
25
27
|
|
|
26
28
|
|
|
@@ -266,5 +268,41 @@ class SimpleSpaceConnectionConfig(BaseModel):
|
|
|
266
268
|
updateTime: Optional[str]
|
|
267
269
|
|
|
268
270
|
|
|
271
|
+
class QlGlobalVariableVO(BaseModel):
|
|
272
|
+
#: 编码
|
|
273
|
+
code: Optional[str]
|
|
274
|
+
#: 类型
|
|
275
|
+
type: Optional[str]
|
|
276
|
+
#: 值
|
|
277
|
+
value: Optional[str]
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
class QlRecordVO(BaseModel):
|
|
281
|
+
#: 应用标识
|
|
282
|
+
app: Optional[str]
|
|
283
|
+
#: 空间标识
|
|
284
|
+
space: Optional[str]
|
|
285
|
+
#: 用户id
|
|
286
|
+
userId: Optional[str]
|
|
287
|
+
#: 创建时间
|
|
288
|
+
createTime: Optional[str]
|
|
289
|
+
#: 应用标识
|
|
290
|
+
globalVariables: Optional[List[QlGlobalVariableVO]]
|
|
291
|
+
#: 主键标识
|
|
292
|
+
qlRecordId: Optional[str]
|
|
293
|
+
#: QL类型:deepql|graphql|analysisql
|
|
294
|
+
qlType: Optional[str]
|
|
295
|
+
#: ql编码
|
|
296
|
+
recordCode: Optional[str]
|
|
297
|
+
#: 记录内容
|
|
298
|
+
recordContent: Optional[str]
|
|
299
|
+
#: 记录名称
|
|
300
|
+
recordName: Optional[str]
|
|
301
|
+
#: 记录类型:个人PERSONAL /公共:PUBLIC
|
|
302
|
+
recordType: Optional[str]
|
|
303
|
+
#: 变量
|
|
304
|
+
variables: Any
|
|
305
|
+
|
|
306
|
+
|
|
269
307
|
ObjectParam.update_forward_refs()
|
|
270
308
|
ObjectLinkParam.update_forward_refs()
|
|
@@ -166,12 +166,12 @@ class AsyncDimension(ElementBase[DimensionAPI]):
|
|
|
166
166
|
strict: bool = False,
|
|
167
167
|
server_name: str = None,
|
|
168
168
|
):
|
|
169
|
-
super().__init__(element_name, folder_id, path, server_name)
|
|
170
169
|
self._add_memo = CIMultiDict()
|
|
171
170
|
self._del_memo = CIMultiDict()
|
|
172
171
|
self._upd_memo = CIMultiDict()
|
|
173
172
|
self.__member_memo = None if strict else CIMultiDict()
|
|
174
173
|
self._strict = strict
|
|
174
|
+
super().__init__(element_name, folder_id, path, server_name)
|
|
175
175
|
|
|
176
176
|
@cached_property
|
|
177
177
|
def _datatable_class(self) -> T_AsyncDatatableClass:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"""系统相关工具类/函数"""
|
|
2
|
-
|
|
2
|
+
import asyncio
|
|
3
3
|
import base64
|
|
4
4
|
import gzip
|
|
5
5
|
import itertools
|
|
@@ -8,7 +8,7 @@ import time
|
|
|
8
8
|
from datetime import datetime
|
|
9
9
|
from enum import Enum
|
|
10
10
|
from io import TextIOWrapper
|
|
11
|
-
from typing import Dict, Any, Union, List, IO, TypeVar
|
|
11
|
+
from typing import Dict, Any, Union, List, IO, TypeVar, Optional
|
|
12
12
|
import pandas as pd
|
|
13
13
|
import math
|
|
14
14
|
import hashlib
|
|
@@ -23,6 +23,7 @@ from deepfos.api.models.deepfos_task import (
|
|
|
23
23
|
PeriodicTaskCreateInfo, ScheduledTaskCreateInfo
|
|
24
24
|
)
|
|
25
25
|
from deepfos.element.base import ElementBase
|
|
26
|
+
from .asynchronous import evloop
|
|
26
27
|
from .utils import split_dataframe
|
|
27
28
|
from deepfos.options import OPTION
|
|
28
29
|
from deepfos.api.models import BaseModel
|
|
@@ -33,6 +34,7 @@ from deepfos.api.system import SystemAPI
|
|
|
33
34
|
from deepfos.api import account as acc_api
|
|
34
35
|
from deepfos.api.models import account as account_model
|
|
35
36
|
from deepfos.cache import SpaceSeperatedLRUCache
|
|
37
|
+
from deepfos.api.models.account import UserGroupModifyDTO
|
|
36
38
|
|
|
37
39
|
_VALUE_KEY = 'value'
|
|
38
40
|
_DTNAME_KEY = 'dataTableName'
|
|
@@ -665,3 +667,37 @@ def resolve_account_api_extra_header():
|
|
|
665
667
|
'timestamp': timestamp,
|
|
666
668
|
'sign': calc_account_api_signature(timestamp, platform_secret, platform_code)
|
|
667
669
|
}
|
|
670
|
+
|
|
671
|
+
|
|
672
|
+
def batch_modify_user_group(payloads: List[UserGroupModifyDTO], max_worker: int = None):
|
|
673
|
+
"""批量调用用户中心用户组详情修改接口
|
|
674
|
+
|
|
675
|
+
Args:
|
|
676
|
+
payloads: 符合UserGroupModifyDTO定义的列表,将直接用作接口请求体
|
|
677
|
+
max_worker: 最大并发数
|
|
678
|
+
|
|
679
|
+
Returns: 与请求体顺序一致的返回结果列表
|
|
680
|
+
|
|
681
|
+
"""
|
|
682
|
+
if max_worker is not None:
|
|
683
|
+
if max_worker <= 0:
|
|
684
|
+
raise ValueError('max_worker must be > 0 ')
|
|
685
|
+
else:
|
|
686
|
+
max_worker = len(payloads)
|
|
687
|
+
|
|
688
|
+
result: List[Optional[bool]] = [None] * len(payloads)
|
|
689
|
+
api = acc_api.AccountAPI(sync=False).user_group.space_modify_group
|
|
690
|
+
|
|
691
|
+
async def call_api(idx: int, p: UserGroupModifyDTO, sem: asyncio.Semaphore):
|
|
692
|
+
async with sem:
|
|
693
|
+
result[idx] = await api(p)
|
|
694
|
+
|
|
695
|
+
async def inner():
|
|
696
|
+
semaphore = asyncio.Semaphore(max_worker)
|
|
697
|
+
await asyncio.gather(*(
|
|
698
|
+
call_api(idx, payload, semaphore)
|
|
699
|
+
for idx, payload in enumerate(payloads)
|
|
700
|
+
))
|
|
701
|
+
|
|
702
|
+
evloop.run(inner())
|
|
703
|
+
return result
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: deepfos
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.39
|
|
4
4
|
Summary: Collecions of useful and handy tools for deepfos platform
|
|
5
5
|
Home-page: http://py.deepfos.com
|
|
6
6
|
Author: deepfos-python-team
|
|
@@ -12,3 +12,19 @@ Classifier: Programming Language :: Python :: 3.8
|
|
|
12
12
|
Classifier: Programming Language :: Python :: 3.9
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.10
|
|
14
14
|
Requires-Python: >=3.8.3
|
|
15
|
+
Requires-Dist: pandas==1.2.0
|
|
16
|
+
Requires-Dist: requests==2.25.1
|
|
17
|
+
Requires-Dist: pymysql==0.9.3
|
|
18
|
+
Requires-Dist: aiohttp==3.8.4
|
|
19
|
+
Requires-Dist: pydantic==1.8.2
|
|
20
|
+
Requires-Dist: cachetools==4.2.2
|
|
21
|
+
Requires-Dist: loguru==0.5.3
|
|
22
|
+
Requires-Dist: PyPika==0.48.8
|
|
23
|
+
Requires-Dist: aiomysql==0.0.22
|
|
24
|
+
Requires-Dist: clickhouse-driver==0.2.2
|
|
25
|
+
Requires-Dist: aioredis==2.0.1
|
|
26
|
+
Requires-Dist: redis==4.5.3
|
|
27
|
+
Requires-Dist: deepfos-ipc~=1.2.3
|
|
28
|
+
Requires-Dist: typing-extensions==4.5.0
|
|
29
|
+
Requires-Dist: edgedb~=1.4.0
|
|
30
|
+
Requires-Dist: asyncpg~=0.29.0
|
|
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
|
|
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
|
|
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
|
|
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
|
|
@@ -171,10 +171,10 @@ class AsyncBusinessModel(ElementBase[BusinessModelAPI]):
|
|
|
171
171
|
path: str = None,
|
|
172
172
|
server_name: str = None,
|
|
173
173
|
):
|
|
174
|
-
super().__init__(element_name, folder_id, path, server_name)
|
|
175
174
|
self.__tables: Dict[str, TableNode] = {}
|
|
176
175
|
self.__logic_tables = LogicTable()
|
|
177
176
|
self.__dflt_ptn_id = UNSET
|
|
177
|
+
super().__init__(element_name, folder_id, path, server_name)
|
|
178
178
|
|
|
179
179
|
@cached_property
|
|
180
180
|
def default_partition_id(self) -> Optional[str]:
|
|
@@ -593,8 +593,8 @@ class AsyncDataTableMySQL(ElementBase):
|
|
|
593
593
|
table_name: str = None,
|
|
594
594
|
server_name: str = None,
|
|
595
595
|
):
|
|
596
|
-
super().__init__(element_name, folder_id, path, server_name)
|
|
597
596
|
self.__tbl_name = table_name
|
|
597
|
+
super().__init__(element_name, folder_id, path, server_name)
|
|
598
598
|
|
|
599
599
|
def _safe_get_txn_conf(self) -> _TxnConfig:
|
|
600
600
|
try:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -174,10 +174,10 @@ class AsyncFinancialCube(ElementBase[FinancialModelAPI]):
|
|
|
174
174
|
entry_object='python',
|
|
175
175
|
server_name: Optional[str] = None,
|
|
176
176
|
):
|
|
177
|
-
super().__init__(element_name, folder_id, path, server_name)
|
|
178
177
|
full_name = OPTION.general.task_info.get('script_name', 'python')
|
|
179
178
|
self.entry_object = entry_object.format(script_name=full_name.split('.')[-1],
|
|
180
179
|
full_name=full_name)
|
|
180
|
+
super().__init__(element_name, folder_id, path, server_name)
|
|
181
181
|
|
|
182
182
|
@future_property(on_demand=True)
|
|
183
183
|
async def meta(self) -> CubeModel:
|
|
@@ -66,8 +66,8 @@ class AsyncJournalModel(ElementBase[JournalModelAPI]):
|
|
|
66
66
|
path: str = None,
|
|
67
67
|
server_name: str = None,
|
|
68
68
|
):
|
|
69
|
-
super().__init__(element_name, folder_id, path, server_name)
|
|
70
69
|
self.__tbl_name = None
|
|
70
|
+
super().__init__(element_name, folder_id, path, server_name)
|
|
71
71
|
|
|
72
72
|
@future_property
|
|
73
73
|
async def config(self) -> JournalModelConfig:
|
|
File without changes
|
|
@@ -275,11 +275,11 @@ class PythonScript(ElementBase[PythonAPI]):
|
|
|
275
275
|
task_name: str = None,
|
|
276
276
|
should_log: bool = False
|
|
277
277
|
):
|
|
278
|
+
self.should_log = should_log
|
|
279
|
+
self.task_name = task_name
|
|
278
280
|
super().__init__(
|
|
279
281
|
element_name=element_name, folder_id=folder_id, path=path
|
|
280
282
|
)
|
|
281
|
-
self.should_log = should_log
|
|
282
|
-
self.task_name = task_name
|
|
283
283
|
|
|
284
284
|
@future_property
|
|
285
285
|
async def env(self) -> Tuple[str, str, Dict]:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -182,11 +182,11 @@ class AsyncVariable(ElementBase[VariableAPI]):
|
|
|
182
182
|
path: str = None,
|
|
183
183
|
server_name: str = None,
|
|
184
184
|
):
|
|
185
|
-
super().__init__(element_name=element_name, folder_id=folder_id, path=path, server_name=server_name)
|
|
186
185
|
self.__group = Group()
|
|
187
186
|
self.__description = None
|
|
188
187
|
self.__gv_memo = None
|
|
189
188
|
self.__uv_memo = None
|
|
189
|
+
super().__init__(element_name=element_name, folder_id=folder_id, path=path, server_name=server_name)
|
|
190
190
|
|
|
191
191
|
@property
|
|
192
192
|
def _group(self) -> Group:
|
|
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
|