deepfos 1.1.3__tar.gz → 1.1.4__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.3 → deepfos-1.1.4}/PKG-INFO +1 -1
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/V1_2/dimension.py +20 -3
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/V1_2/models/dimension.py +2 -1
- deepfos-1.1.4/deepfos/core/__init__.py +27 -0
- deepfos-1.1.4/deepfos/db/__init__.py +32 -0
- deepfos-1.1.4/deepfos/element/__init__.py +77 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/element/datatable.py +2 -3
- deepfos-1.1.3/deepfos/lazy_import.py → deepfos-1.1.4/deepfos/lazy.py +20 -3
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos.egg-info/PKG-INFO +1 -1
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos.egg-info/SOURCES.txt +1 -1
- {deepfos-1.1.3 → deepfos-1.1.4}/setup.py +1 -1
- deepfos-1.1.4/tests/__init__.py +4 -0
- deepfos-1.1.3/deepfos/core/__init__.py +0 -27
- deepfos-1.1.3/deepfos/db/__init__.py +0 -50
- deepfos-1.1.3/deepfos/element/__init__.py +0 -96
- deepfos-1.1.3/tests/__init__.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/MANIFEST.in +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/README.md +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/__init__.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/_version.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/algo/__init__.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/algo/graph.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/V1_1/__init__.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/V1_1/business_model.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/V1_1/dimension.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/V1_1/models/__init__.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/V1_1/models/business_model.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/V1_1/models/dimension.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/V1_2/__init__.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/V1_2/models/__init__.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/__init__.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/account.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/accounting_engines.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/app.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/approval_process.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/base.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/business_model.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/consolidation.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/datatable.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/deepfos_task.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/dimension.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/financial_model.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/journal_template.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/memory_financial_model.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/models/__init__.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/models/account.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/models/accounting_engines.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/models/app.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/models/approval_process.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/models/base.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/models/business_model.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/models/consolidation.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/models/datatable_mysql.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/models/deepfos_task.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/models/dimension.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/models/financial_model.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/models/journal_template.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/models/memory_financial_model.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/models/platform.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/models/python.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/models/reconciliation_engine.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/models/reconciliation_report.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/models/role_strategy.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/models/smartlist.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/models/space.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/models/system.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/models/variable.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/models/workflow.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/platform.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/python.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/reconciliation_engine.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/reconciliation_report.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/role_strategy.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/smartlist.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/space.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/system.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/variable.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/api/workflow.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/boost/__init__.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/boost/jstream.c +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/boost/jstream.pyx +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/boost/pandas.c +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/boost/pandas.pyx +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/boost/py_jstream.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/boost/py_pandas.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/cache.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/config.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/core/cube/__init__.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/core/cube/_base.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/core/cube/constants.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/core/cube/cube.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/core/cube/formula.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/core/cube/syscube.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/core/cube/typing.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/core/cube/utils.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/core/dimension/__init__.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/core/dimension/_base.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/core/dimension/dimcreator.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/core/dimension/dimension.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/core/dimension/dimexpr.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/core/dimension/dimmember.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/core/dimension/eledimension.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/core/dimension/filters.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/core/dimension/sysdimension.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/core/logictable/__init__.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/core/logictable/_cache.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/core/logictable/_operator.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/core/logictable/nodemixin.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/core/logictable/sqlcondition.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/core/logictable/tablemodel.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/db/cipher.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/db/clickhouse.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/db/connector.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/db/daclickhouse.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/db/dameng.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/db/damysql.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/db/dbkits.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/db/deepengine.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/db/gauss.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/db/kingbase.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/db/mysql.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/db/oracle.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/db/postgresql.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/db/sqlserver.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/db/utils.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/element/accounting.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/element/apvlprocess.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/element/base.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/element/bizmodel.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/element/dimension.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/element/fact_table.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/element/finmodel.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/element/journal_template.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/element/pyscript.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/element/reconciliation.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/element/rolestrategy.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/element/smartlist.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/element/variable.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/element/workflow.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/exceptions/__init__.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/exceptions/hook.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/lib/__init__.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/lib/_javaobj.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/lib/asynchronous.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/lib/concurrency.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/lib/constant.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/lib/decorator.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/lib/deepchart.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/lib/deepux.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/lib/eureka.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/lib/filterparser.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/lib/httpcli.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/lib/jsonstreamer.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/lib/patch.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/lib/redis.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/lib/stopwatch.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/lib/subtask.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/lib/sysutils.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/lib/utils.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/local.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/options.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos/translation.py +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos.egg-info/dependency_links.txt +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos.egg-info/not-zip-safe +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos.egg-info/requires.txt +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/deepfos.egg-info/top_level.txt +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/setup.cfg +0 -0
- {deepfos-1.1.3 → deepfos-1.1.4}/versioneer.py +0 -0
|
@@ -3,7 +3,7 @@ APIs provided by dimension-server1-2
|
|
|
3
3
|
|
|
4
4
|
generated by api_code_gen.py
|
|
5
5
|
- **filename** : ``dimension.py``
|
|
6
|
-
- **json timestamp** : ``
|
|
6
|
+
- **json timestamp** : ``2023-05-26 15:05:44``
|
|
7
7
|
"""
|
|
8
8
|
from deepfos.api.base import get, post, DynamicRootAPI, ChildAPI
|
|
9
9
|
from .models.dimension import *
|
|
@@ -170,7 +170,7 @@ class DimCheckAPI(last_ver.DimCheckAPI):
|
|
|
170
170
|
|
|
171
171
|
class Extra(last_ver.Extra):
|
|
172
172
|
endpoint = '/'
|
|
173
|
-
|
|
173
|
+
|
|
174
174
|
@post('refactor/dimension/info/query')
|
|
175
175
|
def refactor_dimension_info_query(self, param: ElementBaseInfoParam) -> Union[NewDimension, Awaitable[NewDimension]]:
|
|
176
176
|
"""
|
|
@@ -191,6 +191,18 @@ class Extra(last_ver.Extra):
|
|
|
191
191
|
return {'body': dimension}
|
|
192
192
|
|
|
193
193
|
|
|
194
|
+
class DimObjectAPI(ChildAPI):
|
|
195
|
+
endpoint = '/refactor/dimension/object'
|
|
196
|
+
|
|
197
|
+
@get('sync-data')
|
|
198
|
+
def sync_data(self, folderId: str = None, name: str = None, path: str = None) -> Union[Any, Awaitable[Any]]:
|
|
199
|
+
"""
|
|
200
|
+
导出多维实体维度配置表
|
|
201
|
+
|
|
202
|
+
"""
|
|
203
|
+
return {'param': {'folderId': folderId, 'name': name, 'path': path}}
|
|
204
|
+
|
|
205
|
+
|
|
194
206
|
class DimensionAPI(DynamicRootAPI, builtin=True):
|
|
195
207
|
"""维度组件接口"""
|
|
196
208
|
module_type = 'DIM'
|
|
@@ -228,4 +240,9 @@ class DimensionAPI(DynamicRootAPI, builtin=True):
|
|
|
228
240
|
"""
|
|
229
241
|
return Extra(self)
|
|
230
242
|
|
|
231
|
-
|
|
243
|
+
@cached_property
|
|
244
|
+
def object(self) -> DimObjectAPI:
|
|
245
|
+
"""
|
|
246
|
+
维度与模型对象相关接口
|
|
247
|
+
"""
|
|
248
|
+
return DimObjectAPI(self)
|
|
@@ -3,7 +3,7 @@ Models used by /dimension-server1-2
|
|
|
3
3
|
|
|
4
4
|
generated by model_code_gen.py
|
|
5
5
|
- **filename** : ``dimension.py``
|
|
6
|
-
- **json timestamp** : ``
|
|
6
|
+
- **json timestamp** : ``2023-05-26 15:05:44``
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
9
|
|
|
@@ -1767,6 +1767,7 @@ class ResponseResult(BaseModel):
|
|
|
1767
1767
|
- **POST** ``/dimension/query/get-all-year-period-of-sceanrio`` (Response: 200)
|
|
1768
1768
|
- **POST** ``/dimension/query/select-dimension-member-by-name-function`` (Response: 200)
|
|
1769
1769
|
- **POST** ``/dimension/query/select-dimension-member-by-name-function-batch`` (Response: 200)
|
|
1770
|
+
- **GET** ``/refactor/dimension/object/sync-data`` (Response: 200)
|
|
1770
1771
|
"""
|
|
1771
1772
|
#: code
|
|
1772
1773
|
code: Optional[int]
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
from typing import TYPE_CHECKING
|
|
2
|
+
|
|
3
|
+
from deepfos.lazy import lazify
|
|
4
|
+
|
|
5
|
+
if TYPE_CHECKING: # pragma: no cover
|
|
6
|
+
from .cube import SysCube, Cube, as_function_node
|
|
7
|
+
from .dimension import (
|
|
8
|
+
DimMember, SysDimension, read_expr,
|
|
9
|
+
Dimension, DimExprAnalysor, ElementDimension
|
|
10
|
+
)
|
|
11
|
+
from .logictable import SQLCondition, BaseTable, MetaTable, TreeRenderer
|
|
12
|
+
|
|
13
|
+
lazify(
|
|
14
|
+
{
|
|
15
|
+
'deepfos.core.cube': (
|
|
16
|
+
'SysCube', 'Cube', 'as_function_node'
|
|
17
|
+
),
|
|
18
|
+
'deepfos.core.dimension': (
|
|
19
|
+
'DimMember', 'SysDimension', 'read_expr',
|
|
20
|
+
'Dimension', 'DimExprAnalysor', 'ElementDimension'
|
|
21
|
+
),
|
|
22
|
+
'deepfos.core.logictable': (
|
|
23
|
+
'SQLCondition', 'BaseTable', 'MetaTable', 'TreeRenderer'
|
|
24
|
+
),
|
|
25
|
+
},
|
|
26
|
+
globals()
|
|
27
|
+
)
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
from typing import TYPE_CHECKING
|
|
2
|
+
|
|
3
|
+
from deepfos.lazy import lazify
|
|
4
|
+
|
|
5
|
+
if TYPE_CHECKING: # pragma: no cover
|
|
6
|
+
from .mysql import MySQLClient, AsyncMySQLClient
|
|
7
|
+
from .clickhouse import ClickHouseClient, AsyncClickHouseClient
|
|
8
|
+
from .oracle import OracleClient, AsyncOracleClient, OracleDFSQLConvertor
|
|
9
|
+
from .sqlserver import SQLServerClient, AsyncSQLServerClient
|
|
10
|
+
from .kingbase import KingBaseClient, AsyncKingBaseClient
|
|
11
|
+
from .gauss import GaussClient, AsyncGaussClient
|
|
12
|
+
from .dameng import DaMengClient, AsyncDaMengClient
|
|
13
|
+
from .postgresql import PostgreSQLClient, AsyncPostgreSQLClient
|
|
14
|
+
from .deepengine import DeepEngineClient, AsyncDeepEngineClient
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
lazify(
|
|
18
|
+
{
|
|
19
|
+
'deepfos.db.mysql': ('MySQLClient', 'AsyncMySQLClient'),
|
|
20
|
+
'deepfos.db.clickhouse': ('ClickHouseClient', 'AsyncClickHouseClient'),
|
|
21
|
+
'deepfos.db.oracle': (
|
|
22
|
+
'OracleClient', 'AsyncOracleClient', 'OracleDFSQLConvertor'
|
|
23
|
+
),
|
|
24
|
+
'deepfos.db.sqlserver': ('SQLServerClient', 'AsyncSQLServerClient'),
|
|
25
|
+
'deepfos.db.kingbase': ('KingBaseClient', 'AsyncKingBaseClient'),
|
|
26
|
+
'deepfos.db.gauss': ('GaussClient', 'AsyncGaussClient'),
|
|
27
|
+
'deepfos.db.dameng': ('DaMengClient', 'AsyncDaMengClient'),
|
|
28
|
+
'deepfos.db.postgresql': ('PostgreSQLClient', 'AsyncPostgreSQLClient'),
|
|
29
|
+
'deepfos.db.deepengine': ('DeepEngineClient', 'AsyncDeepEngineClient'),
|
|
30
|
+
},
|
|
31
|
+
globals()
|
|
32
|
+
)
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
from typing import TYPE_CHECKING
|
|
2
|
+
|
|
3
|
+
from deepfos.lazy import lazify
|
|
4
|
+
|
|
5
|
+
if TYPE_CHECKING: # pragma: no cover
|
|
6
|
+
from .accounting import (
|
|
7
|
+
AccountingEngines, AsyncAccountingEngines,
|
|
8
|
+
BillEngines, AsyncBillEngines, CallbackInfo
|
|
9
|
+
)
|
|
10
|
+
from .apvlprocess import AsyncApprovalProcess, ApprovalProcess
|
|
11
|
+
from .bizmodel import BusinessModel, AsyncBusinessModel, CopyConfig
|
|
12
|
+
from .datatable import (
|
|
13
|
+
Datatable, AsyncDataTableMySQL, DataTableMySQL,
|
|
14
|
+
AsyncDataTableClickHouse, DataTableClickHouse,
|
|
15
|
+
AsyncDataTableOracle, DataTableOracle,
|
|
16
|
+
AsyncDataTableSQLServer, DataTableSQLServer,
|
|
17
|
+
AsyncDataTableKingBase, DataTableKingBase,
|
|
18
|
+
AsyncDataTableGauss, DataTableGauss,
|
|
19
|
+
AsyncDataTableDaMeng, DataTableDaMeng,
|
|
20
|
+
AsyncDataTablePostgreSQL, DataTablePostgreSQL,
|
|
21
|
+
AsyncDataTableDeepEngine, DataTableDeepEngine,
|
|
22
|
+
)
|
|
23
|
+
from .dimension import AsyncDimension, Dimension
|
|
24
|
+
from .fact_table import AsyncFactTable, FactTable
|
|
25
|
+
from .finmodel import AsyncFinancialCube, FinancialCube
|
|
26
|
+
from .journal_template import (
|
|
27
|
+
AsyncJournalTemplate, JournalTemplate, FullPostingParameter
|
|
28
|
+
)
|
|
29
|
+
from .rolestrategy import AsyncRoleStrategy, RoleStrategy
|
|
30
|
+
from .smartlist import AsyncSmartList, SmartList
|
|
31
|
+
from .variable import AsyncVariable, Variable
|
|
32
|
+
from .workflow import AsyncWorkFlow, WorkFlow
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
lazify(
|
|
36
|
+
{
|
|
37
|
+
'deepfos.element.finmodel': (
|
|
38
|
+
'AsyncFinancialCube', 'FinancialCube'
|
|
39
|
+
),
|
|
40
|
+
'deepfos.element.accounting': (
|
|
41
|
+
'AccountingEngines', 'AsyncAccountingEngines',
|
|
42
|
+
'BillEngines', 'AsyncBillEngines', 'CallbackInfo'
|
|
43
|
+
),
|
|
44
|
+
'deepfos.element.apvlprocess': (
|
|
45
|
+
'AsyncApprovalProcess', 'ApprovalProcess'
|
|
46
|
+
),
|
|
47
|
+
'deepfos.element.bizmodel': (
|
|
48
|
+
'BusinessModel', 'AsyncBusinessModel', 'CopyConfig'
|
|
49
|
+
),
|
|
50
|
+
'deepfos.element.datatable': (
|
|
51
|
+
'Datatable',
|
|
52
|
+
'AsyncDataTableMySQL', 'DataTableMySQL',
|
|
53
|
+
'AsyncDataTableClickHouse', 'DataTableClickHouse',
|
|
54
|
+
'AsyncDataTableOracle', 'DataTableOracle',
|
|
55
|
+
'AsyncDataTableSQLServer', 'DataTableSQLServer',
|
|
56
|
+
'AsyncDataTableKingBase', 'DataTableKingBase',
|
|
57
|
+
'AsyncDataTableGauss', 'DataTableGauss',
|
|
58
|
+
'AsyncDataTableDaMeng', 'DataTableDaMeng',
|
|
59
|
+
'AsyncDataTablePostgreSQL', 'DataTablePostgreSQL',
|
|
60
|
+
'AsyncDataTableDeepEngine', 'DataTableDeepEngine',
|
|
61
|
+
),
|
|
62
|
+
'deepfos.element.dimension': ('AsyncDimension', 'Dimension'),
|
|
63
|
+
'deepfos.element.fact_table': ('AsyncFactTable', 'FactTable'),
|
|
64
|
+
'deepfos.element.journal_template': (
|
|
65
|
+
'AsyncJournalTemplate', 'JournalTemplate', 'FullPostingParameter'
|
|
66
|
+
),
|
|
67
|
+
'deepfos.element.rolestrategy': ('AsyncRoleStrategy', 'RoleStrategy'),
|
|
68
|
+
'deepfos.element.smartlist': ('AsyncSmartList', 'SmartList'),
|
|
69
|
+
'deepfos.element.variable': ('AsyncVariable', 'Variable'),
|
|
70
|
+
'deepfos.element.workflow': ('AsyncWorkFlow', 'WorkFlow'),
|
|
71
|
+
'deepfos.element.reconciliation': (
|
|
72
|
+
'AsyncReconciliationEngine', 'AsyncReconciliationMsEngine',
|
|
73
|
+
'ReconciliationEngine', 'ReconciliationMsEngine',
|
|
74
|
+
),
|
|
75
|
+
},
|
|
76
|
+
globals()
|
|
77
|
+
)
|
|
@@ -2007,9 +2007,8 @@ class AsyncDataTableOracle(AsyncDataTableMySQL):
|
|
|
2007
2007
|
|
|
2008
2008
|
for col in self.meta.datatableColumn:
|
|
2009
2009
|
if col.whetherIncrement:
|
|
2010
|
-
|
|
2011
|
-
|
|
2012
|
-
base_tmpl[col.name.upper()] = None
|
|
2010
|
+
continue
|
|
2011
|
+
base_tmpl[col.name.upper()] = None
|
|
2013
2012
|
|
|
2014
2013
|
return base_tmpl, incr_cols
|
|
2015
2014
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import sys
|
|
2
2
|
from importlib import import_module
|
|
3
3
|
from types import ModuleType
|
|
4
|
+
from typing import Dict, Sequence, Any
|
|
4
5
|
|
|
5
6
|
from deepfos.lib.constant import UNSET
|
|
6
7
|
from deepfos.local import Proxy
|
|
@@ -68,9 +69,7 @@ def lazy_module(modname):
|
|
|
68
69
|
|
|
69
70
|
|
|
70
71
|
"""
|
|
71
|
-
|
|
72
|
-
pass
|
|
73
|
-
return _LazyModule(modname, globals())
|
|
72
|
+
return LazyModule(modname, globals())
|
|
74
73
|
|
|
75
74
|
|
|
76
75
|
def lazy_callable(modname, *names):
|
|
@@ -82,3 +81,21 @@ def lazy_callable(modname, *names):
|
|
|
82
81
|
|
|
83
82
|
"""
|
|
84
83
|
return tuple(LazyCallable(modname, cname) for cname in names)
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
def lazify(
|
|
87
|
+
target: Dict[str, Sequence[str]],
|
|
88
|
+
_globals: Dict[str, Any]
|
|
89
|
+
):
|
|
90
|
+
"""懒加载模块成员
|
|
91
|
+
|
|
92
|
+
Args:
|
|
93
|
+
target: module to module members
|
|
94
|
+
_globals: globals in caller scope
|
|
95
|
+
"""
|
|
96
|
+
|
|
97
|
+
for modname, mbrs in target.items():
|
|
98
|
+
_globals.update(zip(
|
|
99
|
+
mbrs,
|
|
100
|
+
lazy_callable(modname, *mbrs)
|
|
101
|
+
))
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
from deepfos.lazy_import import lazy_callable
|
|
2
|
-
from typing import TYPE_CHECKING
|
|
3
|
-
|
|
4
|
-
if TYPE_CHECKING: # pragma: no cover
|
|
5
|
-
from .cube import SysCube, Cube, as_function_node
|
|
6
|
-
from .dimension import DimMember, SysDimension, read_expr, Dimension, DimExprAnalysor, ElementDimension
|
|
7
|
-
from .logictable import SQLCondition, BaseTable, MetaTable, TreeRenderer
|
|
8
|
-
|
|
9
|
-
SysCube, Cube, as_function_node = lazy_callable('deepfos.core.cube', # noqa
|
|
10
|
-
'SysCube',
|
|
11
|
-
'Cube',
|
|
12
|
-
'as_function_node')
|
|
13
|
-
|
|
14
|
-
(DimMember, SysDimension, read_expr, # noqa
|
|
15
|
-
Dimension, DimExprAnalysor, ElementDimension) = lazy_callable('deepfos.core.dimension', # noqa
|
|
16
|
-
'DimMember',
|
|
17
|
-
'SysDimension',
|
|
18
|
-
'read_expr',
|
|
19
|
-
'Dimension',
|
|
20
|
-
'DimExprAnalysor',
|
|
21
|
-
'ElementDimension')
|
|
22
|
-
|
|
23
|
-
SQLCondition, BaseTable, MetaTable, TreeRenderer = lazy_callable('deepfos.core.logictable', # noqa
|
|
24
|
-
'SQLCondition',
|
|
25
|
-
'BaseTable',
|
|
26
|
-
'MetaTable',
|
|
27
|
-
'TreeRenderer')
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
from deepfos.lazy_import import lazy_callable
|
|
2
|
-
from typing import TYPE_CHECKING
|
|
3
|
-
|
|
4
|
-
if TYPE_CHECKING: # pragma: no cover
|
|
5
|
-
from .mysql import MySQLClient, AsyncMySQLClient
|
|
6
|
-
from .clickhouse import ClickHouseClient, AsyncClickHouseClient
|
|
7
|
-
from .oracle import OracleClient, AsyncOracleClient, OracleDFSQLConvertor
|
|
8
|
-
from .sqlserver import SQLServerClient, AsyncSQLServerClient
|
|
9
|
-
from .kingbase import KingBaseClient, AsyncKingBaseClient
|
|
10
|
-
from .gauss import GaussClient, AsyncGaussClient
|
|
11
|
-
from .dameng import DaMengClient, AsyncDaMengClient
|
|
12
|
-
from .postgresql import PostgreSQLClient, AsyncPostgreSQLClient
|
|
13
|
-
from .deepengine import DeepEngineClient, AsyncDeepEngineClient
|
|
14
|
-
|
|
15
|
-
MySQLClient, AsyncMySQLClient = lazy_callable('deepfos.db.mysql', # noqa
|
|
16
|
-
'MySQLClient',
|
|
17
|
-
'AsyncMySQLClient')
|
|
18
|
-
|
|
19
|
-
ClickHouseClient, AsyncClickHouseClient = lazy_callable('deepfos.db.clickhouse', # noqa
|
|
20
|
-
'ClickHouseClient',
|
|
21
|
-
'AsyncClickHouseClient')
|
|
22
|
-
|
|
23
|
-
OracleClient, AsyncOracleClient, OracleDFSQLConvertor = lazy_callable('deepfos.db.oracle', # noqa
|
|
24
|
-
'OracleClient',
|
|
25
|
-
'AsyncOracleClient',
|
|
26
|
-
'OracleDFSQLConvertor')
|
|
27
|
-
|
|
28
|
-
SQLServerClient, AsyncSQLServerClient = lazy_callable('deepfos.db.sqlserver', # noqa
|
|
29
|
-
'SQLServerClient',
|
|
30
|
-
'AsyncSQLServerClient')
|
|
31
|
-
|
|
32
|
-
KingBaseClient, AsyncKingBaseClient = lazy_callable('deepfos.db.kingbase', # noqa
|
|
33
|
-
'KingBaseClient',
|
|
34
|
-
'AsyncKingBaseClient')
|
|
35
|
-
|
|
36
|
-
GaussClient, AsyncGaussClient = lazy_callable('deepfos.db.gauss', # noqa
|
|
37
|
-
'GaussClient',
|
|
38
|
-
'AsyncGaussClient')
|
|
39
|
-
|
|
40
|
-
DaMengClient, AsyncDaMengClient = lazy_callable('deepfos.db.dameng', # noqa
|
|
41
|
-
'DaMengClient',
|
|
42
|
-
'AsyncDaMengClient')
|
|
43
|
-
|
|
44
|
-
PostgreSQLClient, AsyncPostgreSQLClient = lazy_callable('deepfos.db.postgresql', # noqa
|
|
45
|
-
'PostgreSQLClient',
|
|
46
|
-
'AsyncPostgreSQLClient')
|
|
47
|
-
|
|
48
|
-
DeepEngineClient, AsyncDeepEngineClient = lazy_callable('deepfos.db.deepengine', # noqa
|
|
49
|
-
'DeepEngineClient',
|
|
50
|
-
'AsyncDeepEngineClient')
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
from deepfos.lazy_import import lazy_callable
|
|
2
|
-
from typing import TYPE_CHECKING
|
|
3
|
-
|
|
4
|
-
if TYPE_CHECKING: # pragma: no cover
|
|
5
|
-
from .accounting import (
|
|
6
|
-
AccountingEngines, AsyncAccountingEngines, BillEngines, AsyncBillEngines, CallbackInfo
|
|
7
|
-
)
|
|
8
|
-
from .apvlprocess import AsyncApprovalProcess, ApprovalProcess
|
|
9
|
-
from .bizmodel import BusinessModel, AsyncBusinessModel, CopyConfig
|
|
10
|
-
from .datatable import (Datatable,
|
|
11
|
-
AsyncDataTableMySQL, DataTableMySQL,
|
|
12
|
-
AsyncDataTableClickHouse, DataTableClickHouse,
|
|
13
|
-
AsyncDataTableOracle, DataTableOracle,
|
|
14
|
-
AsyncDataTableSQLServer, DataTableSQLServer,
|
|
15
|
-
AsyncDataTableKingBase, DataTableKingBase,
|
|
16
|
-
AsyncDataTableGauss, DataTableGauss,
|
|
17
|
-
AsyncDataTableDaMeng, DataTableDaMeng,
|
|
18
|
-
AsyncDataTablePostgreSQL, DataTablePostgreSQL,
|
|
19
|
-
AsyncDataTableDeepEngine, DataTableDeepEngine,
|
|
20
|
-
)
|
|
21
|
-
from .dimension import AsyncDimension, Dimension
|
|
22
|
-
from .fact_table import AsyncFactTable, FactTable
|
|
23
|
-
from .finmodel import AsyncFinancialCube, FinancialCube
|
|
24
|
-
from .journal_template import AsyncJournalTemplate, JournalTemplate, FullPostingParameter
|
|
25
|
-
from .rolestrategy import AsyncRoleStrategy, RoleStrategy
|
|
26
|
-
from .smartlist import AsyncSmartList, SmartList
|
|
27
|
-
from .variable import AsyncVariable, Variable
|
|
28
|
-
from .workflow import AsyncWorkFlow, WorkFlow
|
|
29
|
-
|
|
30
|
-
(
|
|
31
|
-
AccountingEngines, AsyncAccountingEngines, BillEngines, AsyncBillEngines, CallbackInfo # noqa
|
|
32
|
-
) = lazy_callable(
|
|
33
|
-
'deepfos.element.accounting',
|
|
34
|
-
'AccountingEngines', 'AsyncAccountingEngines', 'BillEngines', 'AsyncBillEngines', 'CallbackInfo'
|
|
35
|
-
)
|
|
36
|
-
|
|
37
|
-
AsyncApprovalProcess, ApprovalProcess = lazy_callable('deepfos.element.apvlprocess', # noqa
|
|
38
|
-
'AsyncApprovalProcess', 'ApprovalProcess')
|
|
39
|
-
|
|
40
|
-
BusinessModel, AsyncBusinessModel, CopyConfig = lazy_callable('deepfos.element.bizmodel', # noqa
|
|
41
|
-
'BusinessModel', 'AsyncBusinessModel', 'CopyConfig')
|
|
42
|
-
|
|
43
|
-
(
|
|
44
|
-
Datatable, # noqa
|
|
45
|
-
AsyncDataTableMySQL, DataTableMySQL, # noqa
|
|
46
|
-
AsyncDataTableClickHouse, DataTableClickHouse, # noqa
|
|
47
|
-
AsyncDataTableOracle, DataTableOracle, # noqa
|
|
48
|
-
AsyncDataTableSQLServer, DataTableSQLServer, # noqa
|
|
49
|
-
AsyncDataTableKingBase, DataTableKingBase, # noqa
|
|
50
|
-
AsyncDataTableGauss, DataTableGauss, # noqa
|
|
51
|
-
AsyncDataTableDaMeng, DataTableDaMeng, # noqa
|
|
52
|
-
AsyncDataTablePostgreSQL, DataTablePostgreSQL, # noqa
|
|
53
|
-
AsyncDataTableDeepEngine, DataTableDeepEngine, # noqa
|
|
54
|
-
) = lazy_callable( # noqa
|
|
55
|
-
'deepfos.element.datatable',
|
|
56
|
-
'Datatable',
|
|
57
|
-
'AsyncDataTableMySQL', 'DataTableMySQL',
|
|
58
|
-
'AsyncDataTableClickHouse', 'DataTableClickHouse',
|
|
59
|
-
'AsyncDataTableOracle', 'DataTableOracle',
|
|
60
|
-
'AsyncDataTableSQLServer', 'DataTableSQLServer',
|
|
61
|
-
'AsyncDataTableKingBase', 'DataTableKingBase',
|
|
62
|
-
'AsyncDataTableGauss', 'DataTableGauss',
|
|
63
|
-
'AsyncDataTableDaMeng', 'DataTableDaMeng',
|
|
64
|
-
'AsyncDataTablePostgreSQL', 'DataTablePostgreSQL',
|
|
65
|
-
'AsyncDataTableDeepEngine', 'DataTableDeepEngine',
|
|
66
|
-
)
|
|
67
|
-
|
|
68
|
-
AsyncDimension, Dimension = lazy_callable('deepfos.element.dimension', # noqa
|
|
69
|
-
'AsyncDimension', 'Dimension')
|
|
70
|
-
|
|
71
|
-
AsyncFactTable, FactTable = lazy_callable('deepfos.element.fact_table', # noqa
|
|
72
|
-
'AsyncFactTable', 'FactTable')
|
|
73
|
-
|
|
74
|
-
AsyncFinancialCube, FinancialCube = lazy_callable('deepfos.element.finmodel', # noqa
|
|
75
|
-
'AsyncFinancialCube', 'FinancialCube')
|
|
76
|
-
|
|
77
|
-
AsyncJournalTemplate, JournalTemplate, FullPostingParameter = lazy_callable( # noqa
|
|
78
|
-
'deepfos.element.journal_template',
|
|
79
|
-
'AsyncJournalTemplate', 'JournalTemplate', 'FullPostingParameter')
|
|
80
|
-
|
|
81
|
-
AsyncRoleStrategy, RoleStrategy = lazy_callable('deepfos.element.rolestrategy', # noqa
|
|
82
|
-
'AsyncRoleStrategy', 'RoleStrategy')
|
|
83
|
-
|
|
84
|
-
AsyncSmartList, SmartList = lazy_callable('deepfos.element.smartlist', # noqa
|
|
85
|
-
'AsyncSmartList', 'SmartList')
|
|
86
|
-
|
|
87
|
-
AsyncVariable, Variable = lazy_callable('deepfos.element.variable', # noqa
|
|
88
|
-
'AsyncVariable', 'Variable')
|
|
89
|
-
|
|
90
|
-
AsyncWorkFlow, WorkFlow = lazy_callable('deepfos.element.workflow', 'AsyncWorkFlow', 'WorkFlow') # noqa
|
|
91
|
-
|
|
92
|
-
AsyncReconciliationEngine, AsyncReconciliationMsEngine, ReconciliationEngine, ReconciliationMsEngine = lazy_callable( # noqa
|
|
93
|
-
'deepfos.element.reconciliation',
|
|
94
|
-
'AsyncReconciliationEngine', 'AsyncReconciliationMsEngine',
|
|
95
|
-
'ReconciliationEngine', 'ReconciliationMsEngine',
|
|
96
|
-
)
|
deepfos-1.1.3/tests/__init__.py
DELETED
|
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
|
|
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
|