tricc-oo 1.6.25__tar.gz → 1.6.26__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.
Files changed (56) hide show
  1. {tricc_oo-1.6.25/tricc_oo.egg-info → tricc_oo-1.6.26}/PKG-INFO +1 -1
  2. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/pyproject.toml +1 -1
  3. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/visitors/tricc.py +7 -31
  4. {tricc_oo-1.6.25 → tricc_oo-1.6.26/tricc_oo.egg-info}/PKG-INFO +1 -1
  5. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/LICENSE +0 -0
  6. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/README.md +0 -0
  7. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/setup.cfg +0 -0
  8. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tests/build.py +0 -0
  9. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tests/test_cql.py +0 -0
  10. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tests/to_ocl.py +0 -0
  11. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/__init__.py +0 -0
  12. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/converters/__init__.py +0 -0
  13. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/converters/codesystem_to_ocl.py +0 -0
  14. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/converters/cql/cqlLexer.py +0 -0
  15. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/converters/cql/cqlListener.py +0 -0
  16. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/converters/cql/cqlParser.py +0 -0
  17. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/converters/cql/cqlVisitor.py +0 -0
  18. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/converters/cql_to_operation.py +0 -0
  19. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/converters/datadictionnary.py +0 -0
  20. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/converters/drawio_type_map.py +0 -0
  21. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/converters/tricc_to_xls_form.py +0 -0
  22. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/converters/utils.py +0 -0
  23. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/converters/xml_to_tricc.py +0 -0
  24. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/models/__init__.py +0 -0
  25. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/models/base.py +0 -0
  26. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/models/calculate.py +0 -0
  27. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/models/lang.py +0 -0
  28. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/models/ocl.py +0 -0
  29. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/models/ordered_set.py +0 -0
  30. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/models/tricc.py +0 -0
  31. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/parsers/__init__.py +0 -0
  32. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/parsers/xml.py +0 -0
  33. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/serializers/__init__.py +0 -0
  34. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/serializers/planuml.py +0 -0
  35. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/serializers/xls_form.py +0 -0
  36. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/strategies/__init__.py +0 -0
  37. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/strategies/input/__init__.py +0 -0
  38. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/strategies/input/base_input_strategy.py +0 -0
  39. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/strategies/input/drawio.py +0 -0
  40. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/strategies/output/base_output_strategy.py +0 -0
  41. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/strategies/output/dhis2_form.py +0 -0
  42. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/strategies/output/fhir_form.py +0 -0
  43. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/strategies/output/html_form.py +0 -0
  44. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/strategies/output/openmrs_form.py +0 -0
  45. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/strategies/output/spice.py +0 -0
  46. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/strategies/output/xls_form.py +0 -0
  47. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/strategies/output/xlsform_cdss.py +0 -0
  48. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/strategies/output/xlsform_cht.py +0 -0
  49. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/strategies/output/xlsform_cht_hf.py +0 -0
  50. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/visitors/__init__.py +0 -0
  51. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/visitors/utils.py +0 -0
  52. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo/visitors/xform_pd.py +0 -0
  53. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo.egg-info/SOURCES.txt +0 -0
  54. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo.egg-info/dependency_links.txt +0 -0
  55. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo.egg-info/requires.txt +0 -0
  56. {tricc_oo-1.6.25 → tricc_oo-1.6.26}/tricc_oo.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tricc-oo
3
- Version: 1.6.25
3
+ Version: 1.6.26
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
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "tricc-oo"
7
- version = "1.6.25"
7
+ version = "1.6.26"
8
8
  description = "Python library that converts CDSS L2 in L3"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.8"
@@ -176,7 +176,7 @@ def get_version_inheritance(node, all_prev_versions, processed_nodes):
176
176
  expression = node.expression or node.expression_reference or getattr(node, "relevance", None)
177
177
  # Merge with ALL previous versions, not just the last one
178
178
  if all_prev_versions:
179
- expression = merge_all_expressions(expression, all_prev_versions)
179
+ expression = merge_expressions(expression, *all_prev_versions)
180
180
  if node.expression:
181
181
  node.expression = expression
182
182
  elif node.expression_reference:
@@ -216,39 +216,15 @@ def get_version_inheritance(node, all_prev_versions, processed_nodes):
216
216
  node.expression = TriccOperation(TriccOperator.COALESCE, coalesce_operands)
217
217
 
218
218
 
219
- def merge_expression(expression, last_version):
219
+ def merge_expressions(expression, last_version, *argv):
220
220
  datatype = expression.get_datatype()
221
221
  if datatype == "boolean":
222
- expression = or_join([TriccOperation(TriccOperator.ISTRUE, [last_version]), expression])
222
+ expression = or_join([TriccOperation(TriccOperator.ISTRUE, [last_version, *argv]), expression])
223
223
 
224
224
  elif datatype == "number":
225
- expression = TriccOperation(TriccOperator.PLUS, [last_version, expression])
225
+ expression = TriccOperation(TriccOperator.PLUS, [last_version, *argv, expression])
226
226
  else:
227
- expression = TriccOperation(TriccOperator.COALESCE, [last_version, expression])
228
- return expression
229
-
230
-
231
- def merge_all_expressions(expression, all_versions):
232
- """
233
- Merge an expression with ALL previous versions, not just the last one.
234
- This ensures inheritance works even when intermediate versions weren't evaluated
235
- due to activity relevance conditions.
236
- """
237
- if not all_versions:
238
- return expression
239
-
240
- datatype = expression.get_datatype() if expression else "unknown"
241
-
242
- if datatype == "boolean":
243
- expression = or_join([expression, *all_versions])
244
-
245
- else:
246
- # COALESCE through all previous versions, then the current expression
247
- coalesce_operands = list(all_versions)
248
- if expression:
249
- coalesce_operands.append(expression)
250
- expression = TriccOperation(TriccOperator.COALESCE, coalesce_operands)
251
-
227
+ expression = TriccOperation(TriccOperator.COALESCE, [expression, last_version, *argv])
252
228
  return expression
253
229
 
254
230
 
@@ -582,7 +558,7 @@ def generate_calculates(node, calculates, used_calculates, processed_nodes, proc
582
558
  node.activity.calculates.append(calc_node)
583
559
  last_version = set_last_version_false(calc_node, processed_nodes)
584
560
  if last_version:
585
- calc_node.expression = merge_expression(calc_node.expression, last_version)
561
+ calc_node.expression = merge_expressions(calc_node.expression, last_version)
586
562
  processed_nodes.add(calc_node)
587
563
  logger.debug(
588
564
  "generate_save_calculate:{}:{} as {}".format(
@@ -615,7 +591,7 @@ def generate_calculates(node, calculates, used_calculates, processed_nodes, proc
615
591
  node.activity.calculates.append(calc_node)
616
592
  last_version = set_last_version_false(calc_node, processed_nodes)
617
593
  if last_version:
618
- calc_node.expression = merge_expression(calc_node.expression, last_version)
594
+ calc_node.expression = merge_expressions(calc_node.expression, last_version)
619
595
  processed_nodes.add(calc_node)
620
596
  list_calc.append(calc_node)
621
597
  node.activity.nodes[calc_node.id] = calc_node
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tricc-oo
3
- Version: 1.6.25
3
+ Version: 1.6.26
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
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes