tricc-oo 1.4.24__py3-none-any.whl → 1.4.25__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.
@@ -35,7 +35,7 @@ def get_export_name(node, replace_dots=True):
35
35
  node.gen_name()
36
36
  if isinstance(node, TriccNodeSelectOption):
37
37
  node.export_name = node.name
38
- elif node.last != True:
38
+ elif node.last == False:
39
39
  node.export_name = clean_name(node.name + VERSION_SEPARATOR + str(node.version), replace_dots=replace_dots)
40
40
  # elif node.activity.instance>1:
41
41
  # if node.version:
@@ -616,10 +616,8 @@ class XLSFormStrategy(BaseOutPutStrategy):
616
616
  if hasattr(node, 'expression') and (node.expression is None) and issubclass(node.__class__,TriccNodeCalculateBase):
617
617
  node.expression = get_node_expressions(node, processed_nodes, process=kwargs.get('process', 'main '))
618
618
  # continue walk
619
- if issubclass(node.__class__, (TriccNodeDisplayModel, TriccNodeDisplayCalculateBase)):
619
+ if issubclass(node.__class__, (TriccNodeDisplayModel, TriccNodeDisplayCalculateBase, TriccNodeEnd)):
620
620
  last_version = set_last_version_false(node, processed_nodes)
621
- if not last_version:
622
- node.last = True
623
621
  return True
624
622
  return False
625
623
 
@@ -96,10 +96,10 @@ def get_node_expressions(node, processed_nodes, process=None):
96
96
  def set_last_version_false(node, processed_nodes):
97
97
  node_name = node.name if not isinstance(node, TriccNodeEnd) else node.get_reference()
98
98
  #last_version = get_last_version(node_name, processed_nodes) if issubclass(node.__class__, (TriccNodeDisplayModel, TriccNodeDisplayCalculateBase, TriccNodeEnd)) and not isinstance(node, TriccNodeSelectOption) else None
99
- last_version = processed_nodes.find_prev(node, lambda item: hasattr(item, 'name') and item.name == node.name and issubclass(node.__class__, (TriccNodeDisplayModel, TriccNodeDisplayCalculateBase, TriccNodeEnd)) and not isinstance(node, TriccNodeSelectOption))
99
+ last_version = processed_nodes.find_prev(node, lambda item: item.id != node.id and hasattr(item, 'name') and item.name == node.name and issubclass(node.__class__, (TriccNodeDisplayModel, TriccNodeDisplayCalculateBase, TriccNodeEnd)) and not isinstance(node, TriccNodeSelectOption))
100
100
  if last_version and getattr(node, 'process', '') != 'pause':
101
101
  # 0-100 for manually specified instance. 100-200 for auto instance
102
- node.version = get_next_version(node.name, processed_nodes, last_version.version + 1)
102
+ node.version = get_next_version(node.name, processed_nodes, last_version.version + 1, 0)
103
103
  last_version.last = False
104
104
  node.path_len = max(node.path_len, last_version.path_len + 1)
105
105
  return last_version
@@ -472,13 +472,9 @@ def generate_calculates(node,calculates, used_calculates,processed_nodes):
472
472
  if hasattr(node, 'save') and node.save is not None and node.save != '':
473
473
  # get fragments type.name.icdcode
474
474
  calculate_name=node.save
475
- if not isinstance(node, TriccNodeSelectYesNo) and issubclass(node.__class__, (TriccNodeSelect)):
476
- calc_node = get_count_node(node)
477
- calc_node.path_len += 1
478
- calc_node.name=calculate_name
479
- calc_node.label = "save select: " +node.get_name()
480
- elif node.name != calculate_name:
475
+ if node.name != calculate_name:
481
476
  calc_id = generate_id(f"autosave{node.id}")
477
+
482
478
  calc_node = TriccNodeCalculate(
483
479
  name=calculate_name,
484
480
  id = calc_id,
@@ -487,23 +483,20 @@ def generate_calculates(node,calculates, used_calculates,processed_nodes):
487
483
  activity = node.activity,
488
484
  label = "save: " +node.get_name(),
489
485
  path_len=node.path_len+ 1,
490
- last=True
486
+ last=True,
487
+ expression=get_node_expression(node,processed_nodes,True,True)
491
488
  )
492
- node.activity.nodes[calc_node.id]=calc_node
489
+ node.activity.calculates.append(calc_node)
493
490
  last_version = set_last_version_false(calc_node, processed_nodes)
494
491
  if last_version:
495
- get_version_inheritance(node, last_version, processed_nodes)
492
+ calc_node.expression = merge_expression(calc_node.expression, last_version)
496
493
  processed_nodes.add(calc_node)
497
- logger.debug("generate_save_calculate:{}:{} as {}".format(calc_node.tricc_type, node.name if hasattr(node,'name') else node.id, calculate_name))
498
- if isinstance(node, TriccNodeSelectYesNo):
499
- yesNode = node.options[0]
500
- set_prev_next_node(yesNode,calc_node)
501
- else:
502
- set_prev_next_node(node,calc_node)
503
- list_calc.append(calc_node)
504
- #add_save_calculate(calc_node, calculates, used_calculates,processed_nodes)
505
- for calc in list_calc:
506
- node.activity.nodes[calc.id] = calc
494
+ logger.debug("generate_save_calculate:{}:{} as {}".format(calc_node.tricc_type, node.name if hasattr(node,'name') else node.id, calculate_name))
495
+
496
+ list_calc.append(calc_node)
497
+ #add_save_calculate(calc_node, calculates, used_calculates,processed_nodes)
498
+ for calc in list_calc:
499
+ node.activity.nodes[calc.id] = calc
507
500
  return list_calc
508
501
 
509
502
 
@@ -965,7 +958,7 @@ def walkthrough_tricc_option(node, callback, processed_nodes, stashed_nodes, pat
965
958
  node_path = node_path.copy(), **kwargs)
966
959
 
967
960
  def get_next_version(name, processed_nodes, version=0, min=100):
968
- return max(version, min,*[(getattr(n,'version',0) or getattr(n,'instance',0) or 0) for n in get_versions(name, processed_nodes)])
961
+ return max(version, min,*[(getattr(n,'version',None) or getattr(n,'instance',None) or 0) for n in get_versions(name, processed_nodes)])+1
969
962
 
970
963
 
971
964
  def get_data_for_log(node):
@@ -1556,6 +1549,8 @@ def get_node_expression( in_node, processed_nodes, is_calculate=False, is_prev=F
1556
1549
  logger.critical(f"Rhombus without expression {node.get_name()}")
1557
1550
  elif is_prev and issubclass(node.__class__, TriccNodeDisplayCalculateBase):
1558
1551
  expression = TriccOperation(TriccOperator.ISTRUE, [node])
1552
+ elif is_prev and is_calculate and (issubclass(node.__class__, TriccNodeSelect) or isinstance(node, TriccNodeSelectNotAvailable)):
1553
+ expression = get_count_terms_details( node, processed_nodes, is_calculate, negate, process)
1559
1554
  elif hasattr(node, 'expression_reference') and isinstance(node.expression_reference, TriccOperation):
1560
1555
  # if issubclass(node.__class__, TriccNodeDisplayCalculateBase):
1561
1556
  # expression = TriccOperation(
@@ -1874,7 +1869,28 @@ def get_activity_end_terms( node, processed_nodes, process=None):
1874
1869
 
1875
1870
  def get_count_terms( node, processed_nodes, is_calculate, negate=False, process=None):
1876
1871
  terms = []
1872
+
1877
1873
  for prev_node in node.prev_nodes:
1874
+ term = get_count_terms_details( prev_node, processed_nodes, is_calculate, negate, process)
1875
+ if term:
1876
+ terms.append(term)
1877
+ if len(terms) == 1:
1878
+ return TriccOperation(
1879
+ TriccOperator.CAST_NUMBER,
1880
+ [terms[0]]
1881
+ )
1882
+ elif len(terms) > 0:
1883
+ return TriccOperation(
1884
+ TriccOperator.PLUS,
1885
+ [
1886
+ TriccOperation(
1887
+ TriccOperator.CAST_NUMBER,
1888
+ [term]
1889
+ ) for term in terms
1890
+ ]
1891
+ )
1892
+
1893
+ def get_count_terms_details( prev_node, processed_nodes, is_calculate, negate=False, process=None):
1878
1894
  operation_none = TriccOperation(
1879
1895
  TriccOperator.SELECTED,
1880
1896
  [
@@ -1882,12 +1898,20 @@ def get_count_terms( node, processed_nodes, is_calculate, negate=False, process=
1882
1898
  TriccStatic('opt_none')
1883
1899
  ]
1884
1900
  )
1885
- if isinstance(prev_node, TriccNodeSelectMultiple):
1901
+ if isinstance(prev_node, TriccNodeSelectYesNo):
1902
+ return TriccOperation(
1903
+ TriccOperator.SELECTED,
1904
+ [
1905
+ prev_node,
1906
+ TriccStatic(prev_node.options[0].name)
1907
+ ]
1908
+ )
1909
+ elif issubclass(prev_node.__class__, TriccNodeSelect):
1886
1910
  if negate:
1887
- terms.append()
1911
+ return
1888
1912
  #terms.append(TRICC_SELECT_MULTIPLE_CALC_NONE_EXPRESSION.format(get_export_name(prev_node)))
1889
1913
  else:
1890
- terms.append(TriccOperation(
1914
+ return TriccOperation(
1891
1915
  TriccOperator.MINUS,
1892
1916
  [
1893
1917
  TriccOperation(
@@ -1902,23 +1926,22 @@ def get_count_terms( node, processed_nodes, is_calculate, negate=False, process=
1902
1926
  operation_none
1903
1927
  ]
1904
1928
  )
1905
- ]))
1929
+ ])
1906
1930
  #terms.append(TRICC_SELECT_MULTIPLE_CALC_EXPRESSION.format(get_export_name(prev_node)))
1907
- elif isinstance(prev_node, (TriccNodeSelectYesNo, TriccNodeSelectNotAvailable)):
1908
- terms.append(TriccOperation(
1931
+ elif isinstance(prev_node, (TriccNodeSelectNotAvailable)):
1932
+ return TriccOperation(
1909
1933
  TriccOperator.SELECTED,
1910
1934
  [
1911
1935
  prev_node,
1912
1936
  TriccStatic('1')
1913
1937
  ]
1914
- ))
1938
+ )
1915
1939
  #terms.append(TRICC_SELECTED_EXPRESSION.format(get_export_name(prev_node), '1'))
1916
1940
  elif isinstance(prev_node, TriccNodeSelectOption):
1917
- terms.append(get_selected_option_expression(prev_node, negate))
1941
+ return get_selected_option_expression(prev_node, negate)
1918
1942
  else:
1919
1943
  if negate:
1920
- terms.append(
1921
- TriccOperation(
1944
+ return TriccOperation(
1922
1945
  TriccOperator.CAST_NUMBER,
1923
1946
  [
1924
1947
  TriccOperation(
@@ -1939,10 +1962,9 @@ def get_count_terms( node, processed_nodes, is_calculate, negate=False, process=
1939
1962
  )
1940
1963
  ]
1941
1964
  )
1942
- )
1965
+
1943
1966
  else:
1944
- terms.append(
1945
- TriccOperation(
1967
+ return TriccOperation(
1946
1968
  TriccOperator.CAST_NUMBER,
1947
1969
  [
1948
1970
  get_node_expression(
@@ -1952,22 +1974,8 @@ def get_count_terms( node, processed_nodes, is_calculate, negate=False, process=
1952
1974
  is_prev=True,
1953
1975
  process=process)
1954
1976
  ]
1955
- ))
1956
- if len(terms) == 1:
1957
- return TriccOperation(
1958
- TriccOperator.CAST_NUMBER,
1959
- [terms[0]]
1960
- )
1961
- elif len(terms) > 0:
1962
- return TriccOperation(
1963
- TriccOperator.PLUS,
1964
- [
1965
- TriccOperation(
1966
- TriccOperator.CAST_NUMBER,
1967
- [term]
1968
- ) for term in terms
1969
- ]
1970
- )
1977
+ )
1978
+
1971
1979
 
1972
1980
 
1973
1981
  def get_add_terms( node, processed_nodes, is_calculate=False, negate=False, process=None):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tricc-oo
3
- Version: 1.4.24
3
+ Version: 1.4.25
4
4
  Summary: Python library that converts CDSS L2 in L3
5
5
  Project-URL: Homepage, https://github.com/SwissTPH/tricc
6
6
  Project-URL: Issues, https://github.com/SwissTPH/tricc/issues
@@ -7,7 +7,7 @@ tricc_oo/converters/codesystem_to_ocl.py,sha256=-ZKMBeIvzgqmhJfnn6ptuwpnHQtuE-fC
7
7
  tricc_oo/converters/cql_to_operation.py,sha256=bsVD4HO5Zr2clHuIWz86gIUnI7aZ676IXDK5S7x32_o,14439
8
8
  tricc_oo/converters/datadictionnary.py,sha256=WWKcTtKLfc4aduHcDBhr4JSfU2NqRMaslwX-wdZPIAw,3968
9
9
  tricc_oo/converters/drawio_type_map.py,sha256=6ZcnQMtBU1dhf_NP_s0iX1DvRf0qS7-3UAe_WAPFVoQ,7027
10
- tricc_oo/converters/tricc_to_xls_form.py,sha256=lfnM-piCH9EyoOT89VDi1eRGUbMWgpzbvDXZgfEYmrM,2326
10
+ tricc_oo/converters/tricc_to_xls_form.py,sha256=bJVd-FLrivrCxGI6mO2i0V7GVVuJZdaDuwcEf3gHNR8,2327
11
11
  tricc_oo/converters/utils.py,sha256=UyndDORsDbRV5-gYW-yInK5ztjtYdeCw6K-mrYr1Emk,1688
12
12
  tricc_oo/converters/xml_to_tricc.py,sha256=IO6jL1ljhrkWnPTe5EsQCfJ4wUoYitLH2P7TIJm4A9I,37457
13
13
  tricc_oo/converters/cql/cqlLexer.py,sha256=t0-QvDv5kxCiBZJ9SfDumFOgnRSry_HJpakBZV224Ig,49126
@@ -32,15 +32,15 @@ tricc_oo/strategies/input/base_input_strategy.py,sha256=-GQ_xRvJXzn-q_eT8R-wtFOT
32
32
  tricc_oo/strategies/input/drawio.py,sha256=glLts9whixJM4HOV_GAWAK8az_H-eo9aeFAQbn99-4c,13362
33
33
  tricc_oo/strategies/output/base_output_strategy.py,sha256=WiJwqm4g_x-rbksrjoE0ABhNMtM0_fAMoPH34RKZdc0,7173
34
34
  tricc_oo/strategies/output/spice.py,sha256=s_COahyYCoc4Xv5TGh_AW9evDOW6GOex0Xwa_JWeLsI,11280
35
- tricc_oo/strategies/output/xls_form.py,sha256=DuDmTuM5h3Njo0RBcQQq1dRKr4XMVJJzZtaZdfJ1T6I,31130
35
+ tricc_oo/strategies/output/xls_form.py,sha256=owNR2J8vA4ssWTGHqTO4jqSsSVj7X9yvmgWSoNLHfKc,31062
36
36
  tricc_oo/strategies/output/xlsform_cdss.py,sha256=8oLlgS1Hr6IVvI0O71kIk5oIKXbt2lPVc1SZIjzcSTc,9452
37
37
  tricc_oo/strategies/output/xlsform_cht.py,sha256=SWu1GKI5PScSX420RiVVaCNCTINeTeLpCoX-zXQIhUE,19486
38
38
  tricc_oo/strategies/output/xlsform_cht_hf.py,sha256=0D_H68a2S7oLKJENEePaRGIocrRIF45BofHlLOtGsKo,2206
39
39
  tricc_oo/visitors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
- tricc_oo/visitors/tricc.py,sha256=-tWEo2xxVAvQoy53f-2UDIFDhqMxguDBHNQMclg7GHs,97700
40
+ tricc_oo/visitors/tricc.py,sha256=3iGvd_oc9Mbw1y_fkm-_8eNCnZbXJ8NtTi_dVN7HzBY,98039
41
41
  tricc_oo/visitors/utils.py,sha256=Gol4JNozPEd30Q1l8IPIPhx5fqVyy9R81GofGVebgD8,484
42
42
  tricc_oo/visitors/xform_pd.py,sha256=H8x-72EdyT_-QgHGQN-ZAe-wc7tLtJGCM9waA64mz3M,9424
43
- tricc_oo-1.4.24.dist-info/METADATA,sha256=1TpiMwhrBuSmKEuUHptgc9RiIwPp_pntudZnVFvPcnY,7878
44
- tricc_oo-1.4.24.dist-info/WHEEL,sha256=Nw36Djuh_5VDukK0H78QzOX-_FQEo6V37m3nkm96gtU,91
45
- tricc_oo-1.4.24.dist-info/top_level.txt,sha256=NvbfMNAiy9m4b1unBsqpeOQWh4IgA1Xa33BtKA4abxk,15
46
- tricc_oo-1.4.24.dist-info/RECORD,,
43
+ tricc_oo-1.4.25.dist-info/METADATA,sha256=nIxdOj8q5M3dvKXAHjHCVHb8-IoQaEGNMBPGNMzMjrA,7878
44
+ tricc_oo-1.4.25.dist-info/WHEEL,sha256=Nw36Djuh_5VDukK0H78QzOX-_FQEo6V37m3nkm96gtU,91
45
+ tricc_oo-1.4.25.dist-info/top_level.txt,sha256=NvbfMNAiy9m4b1unBsqpeOQWh4IgA1Xa33BtKA4abxk,15
46
+ tricc_oo-1.4.25.dist-info/RECORD,,