deepfos 1.1.60__py3-none-any.whl → 1.1.78__py3-none-any.whl
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/_version.py +3 -3
- deepfos/api/V1_1/models/business_model.py +322 -322
- deepfos/api/V1_1/models/dimension.py +1075 -1075
- deepfos/api/V1_2/models/dimension.py +1119 -1116
- deepfos/api/account.py +1 -0
- deepfos/api/app.py +1 -0
- deepfos/api/base.py +70 -71
- deepfos/api/deep_pipeline.py +1 -1
- deepfos/api/deepconnector.py +3 -3
- deepfos/api/financial_model.py +12 -0
- deepfos/api/models/account.py +130 -130
- deepfos/api/models/accounting_engines.py +250 -250
- deepfos/api/models/app.py +355 -355
- deepfos/api/models/approval_process.py +231 -231
- deepfos/api/models/base.py +49 -209
- deepfos/api/models/business_model.py +239 -239
- deepfos/api/models/consolidation.py +196 -196
- deepfos/api/models/consolidation_process.py +31 -31
- deepfos/api/models/datatable_mysql.py +78 -78
- deepfos/api/models/deep_pipeline.py +20 -9
- deepfos/api/models/deepconnector.py +9 -8
- deepfos/api/models/deepfos_task.py +118 -118
- deepfos/api/models/deepmodel.py +120 -120
- deepfos/api/models/dimension.py +613 -610
- deepfos/api/models/financial_model.py +691 -663
- deepfos/api/models/journal_model.py +120 -120
- deepfos/api/models/journal_template.py +185 -185
- deepfos/api/models/memory_financial_model.py +131 -131
- deepfos/api/models/platform.py +16 -16
- deepfos/api/models/python.py +32 -32
- deepfos/api/models/reconciliation_engine.py +104 -104
- deepfos/api/models/reconciliation_report.py +29 -29
- deepfos/api/models/role_strategy.py +213 -213
- deepfos/api/models/smartlist.py +86 -86
- deepfos/api/models/space.py +312 -312
- deepfos/api/models/system.py +299 -297
- deepfos/api/models/variable.py +131 -131
- deepfos/api/models/workflow.py +290 -270
- deepfos/api/platform.py +3 -1
- deepfos/api/space.py +1 -0
- deepfos/api/system.py +1 -0
- deepfos/api/workflow.py +8 -0
- deepfos/cache.py +50 -4
- deepfos/element/bizmodel.py +2 -2
- deepfos/element/deep_pipeline.py +29 -16
- deepfos/element/deepconnector.py +36 -1
- deepfos/element/deepmodel.py +591 -332
- deepfos/element/dimension.py +30 -17
- deepfos/element/finmodel.py +542 -101
- deepfos/element/journal.py +20 -10
- deepfos/element/rolestrategy.py +4 -4
- deepfos/element/variable.py +23 -17
- deepfos/element/workflow.py +60 -3
- deepfos/exceptions/__init__.py +1 -1
- deepfos/lib/deepchart.py +14 -13
- deepfos/lib/deepux.py +11 -11
- deepfos/lib/discovery.py +3 -0
- deepfos/lib/filterparser.py +2 -2
- deepfos/lib/k8s.py +101 -0
- deepfos/lib/msg.py +34 -8
- deepfos/lib/serutils.py +34 -9
- deepfos/lib/sysutils.py +37 -18
- deepfos/lib/utils.py +62 -2
- deepfos/options.py +39 -8
- {deepfos-1.1.60.dist-info → deepfos-1.1.78.dist-info}/METADATA +7 -7
- {deepfos-1.1.60.dist-info → deepfos-1.1.78.dist-info}/RECORD +68 -67
- {deepfos-1.1.60.dist-info → deepfos-1.1.78.dist-info}/WHEEL +0 -0
- {deepfos-1.1.60.dist-info → deepfos-1.1.78.dist-info}/top_level.txt +0 -0
deepfos/element/dimension.py
CHANGED
|
@@ -8,9 +8,9 @@ import pandas as pd
|
|
|
8
8
|
from loguru import logger
|
|
9
9
|
|
|
10
10
|
from deepfos.element.rolestrategy import RoleStrategy, AsyncRoleStrategy
|
|
11
|
-
from pydantic import parse_obj_as, Field
|
|
12
11
|
from multidict import CIMultiDict
|
|
13
12
|
|
|
13
|
+
from deepfos.api.models import compat_parse_obj_as as parse_obj_as
|
|
14
14
|
from .base import ElementBase, SyncMeta
|
|
15
15
|
from .datatable import AsyncDataTableMySQL, get_table_class, T_AsyncDatatableClass
|
|
16
16
|
from deepfos.algo.graph import DAGraph
|
|
@@ -57,20 +57,20 @@ class Strategy(CIEnum):
|
|
|
57
57
|
|
|
58
58
|
|
|
59
59
|
class DimMember(DimensionMemberOperationSw):
|
|
60
|
-
is_active = True
|
|
61
|
-
is_modula = False
|
|
62
|
-
aggweight = 1.0
|
|
63
|
-
sharedmember = False
|
|
64
|
-
datatype = "NUMBER"
|
|
65
|
-
parent_name = ROOT
|
|
60
|
+
is_active: bool = True
|
|
61
|
+
is_modula: bool = False
|
|
62
|
+
aggweight: int = 1.0
|
|
63
|
+
sharedmember: bool = False
|
|
64
|
+
datatype: str = "NUMBER"
|
|
65
|
+
parent_name: str = ROOT
|
|
66
66
|
|
|
67
67
|
|
|
68
68
|
class DimMemberV12(DimensionMemberOperationDto):
|
|
69
|
-
isActive = True
|
|
70
|
-
aggweight = 1.0
|
|
71
|
-
sharedMember = False
|
|
72
|
-
dataType = "NUMBER"
|
|
73
|
-
parentName = ROOT
|
|
69
|
+
isActive: bool = True
|
|
70
|
+
aggweight: int = 1.0
|
|
71
|
+
sharedMember: bool = False
|
|
72
|
+
dataType: str = "NUMBER"
|
|
73
|
+
parentName: str = ROOT
|
|
74
74
|
|
|
75
75
|
@property
|
|
76
76
|
def parent_name(self):
|
|
@@ -956,7 +956,7 @@ class AsyncDimension(ElementBase[DimensionAPI]):
|
|
|
956
956
|
|
|
957
957
|
# -----------------------------------------------------------------------------
|
|
958
958
|
# has shared member
|
|
959
|
-
df_shared: pd.DataFrame = df[df[shared_mbr_col]]
|
|
959
|
+
df_shared: pd.DataFrame = df[df[shared_mbr_col].astype(bool)]
|
|
960
960
|
if self._strict:
|
|
961
961
|
existed_mbrs = self._member_memo
|
|
962
962
|
|
|
@@ -989,7 +989,7 @@ class AsyncDimension(ElementBase[DimensionAPI]):
|
|
|
989
989
|
# 在df中丢弃系统中已存在的共享节点
|
|
990
990
|
df_shared_remain = df_shared[~df_shared.index.isin(dup_sharedmbrs)]
|
|
991
991
|
|
|
992
|
-
df_not_shared = df[~df[shared_mbr_col]]
|
|
992
|
+
df_not_shared = df[~df[shared_mbr_col].astype(bool)]
|
|
993
993
|
existed_idx = df_not_shared[DFLT_NAME_COLUMN].isin(existed_mbrs)
|
|
994
994
|
return df_not_shared.loc[existed_idx], \
|
|
995
995
|
pd.concat([df_not_shared.loc[~existed_idx], df_shared_remain])
|
|
@@ -1162,12 +1162,25 @@ def _validate_df_for_dimension(df: pd.DataFrame):
|
|
|
1162
1162
|
f"You have null value in dataframe. "
|
|
1163
1163
|
f"column: [{DFLT_NAME_COLUMN}], index: {null_index}.")
|
|
1164
1164
|
|
|
1165
|
-
|
|
1166
|
-
|
|
1165
|
+
col_parent_name = None
|
|
1166
|
+
col_shared_member = None
|
|
1167
|
+
|
|
1168
|
+
if DFLT_PNAME_COLUMN in df.columns:
|
|
1169
|
+
col_parent_name = DFLT_PNAME_COLUMN
|
|
1170
|
+
elif DFLT_PNAME_COLUMN_V12 in df.columns:
|
|
1171
|
+
col_parent_name = DFLT_PNAME_COLUMN_V12
|
|
1167
1172
|
|
|
1168
1173
|
if SHAREDMEMBER in df.columns:
|
|
1174
|
+
col_shared_member = SHAREDMEMBER
|
|
1175
|
+
elif SHAREDMEMBERV12 in df.columns:
|
|
1176
|
+
col_shared_member = SHAREDMEMBERV12
|
|
1177
|
+
|
|
1178
|
+
if col_parent_name is None:
|
|
1179
|
+
raise ValueError(f"Missing column [{DFLT_PNAME_COLUMN}] or [{DFLT_PNAME_COLUMN_V12}] in dataframe.")
|
|
1180
|
+
|
|
1181
|
+
if col_shared_member is not None:
|
|
1169
1182
|
unique_df = df.groupby(
|
|
1170
|
-
[DFLT_NAME_COLUMN,
|
|
1183
|
+
[DFLT_NAME_COLUMN, col_parent_name, col_shared_member],
|
|
1171
1184
|
as_index=False
|
|
1172
1185
|
).size()
|
|
1173
1186
|
duplicated = unique_df[unique_df['size'] > 1]
|