tricc-oo 1.5.16__py3-none-any.whl → 1.5.19__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.
- tests/test_cql.py +17 -7
- tricc_oo/converters/cql_to_operation.py +10 -4
- tricc_oo/converters/drawio_type_map.py +2 -3
- tricc_oo/models/base.py +33 -4
- tricc_oo/serializers/xls_form.py +1 -1
- tricc_oo/strategies/output/base_output_strategy.py +4 -0
- tricc_oo/strategies/output/xls_form.py +8 -1
- tricc_oo/visitors/tricc.py +41 -20
- {tricc_oo-1.5.16.dist-info → tricc_oo-1.5.19.dist-info}/METADATA +1 -1
- {tricc_oo-1.5.16.dist-info → tricc_oo-1.5.19.dist-info}/RECORD +12 -12
- {tricc_oo-1.5.16.dist-info → tricc_oo-1.5.19.dist-info}/WHEEL +0 -0
- {tricc_oo-1.5.16.dist-info → tricc_oo-1.5.19.dist-info}/top_level.txt +0 -0
tests/test_cql.py
CHANGED
|
@@ -11,13 +11,8 @@ class TestCql(unittest.TestCase):
|
|
|
11
11
|
operator=TriccOperator.AND,
|
|
12
12
|
reference=[
|
|
13
13
|
TriccOperation(
|
|
14
|
-
operator=TriccOperator.
|
|
15
|
-
reference=[
|
|
16
|
-
TriccOperation(
|
|
17
|
-
operator=TriccOperator.ISNULL,
|
|
18
|
-
reference=[TriccReference("p_weight")]
|
|
19
|
-
)
|
|
20
|
-
]
|
|
14
|
+
operator=TriccOperator.ISNOTNULL,
|
|
15
|
+
reference=[TriccReference("p_weight")]
|
|
21
16
|
),
|
|
22
17
|
TriccOperation(
|
|
23
18
|
operator=TriccOperator.MORE,
|
|
@@ -46,6 +41,21 @@ class TestCql(unittest.TestCase):
|
|
|
46
41
|
)
|
|
47
42
|
self.assertEqual(str(dg_operation), str(dg_expected))
|
|
48
43
|
|
|
44
|
+
def test_implied_concat(self):
|
|
45
|
+
if_cql = "'A' & \"B\" & 'C'"
|
|
46
|
+
cc_operation = transform_cql_to_operation(if_cql)
|
|
47
|
+
cc_expected = TriccOperation(
|
|
48
|
+
operator=TriccOperator.CONCATENATE,
|
|
49
|
+
reference=[
|
|
50
|
+
TriccStatic(value='A'),
|
|
51
|
+
TriccReference("B"),
|
|
52
|
+
TriccStatic(value='C')
|
|
53
|
+
]
|
|
54
|
+
)
|
|
55
|
+
self.assertEqual(str(cc_operation), str(cc_expected))
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
|
|
49
59
|
def test_if(self):
|
|
50
60
|
if_cql = "if AgeInDays() < 60 then 'newborn' else 'child'"
|
|
51
61
|
if_operation = transform_cql_to_operation(if_cql)
|
|
@@ -3,7 +3,7 @@ from tricc_oo.converters.cql.cqlLexer import cqlLexer
|
|
|
3
3
|
from tricc_oo.converters.cql.cqlParser import cqlParser
|
|
4
4
|
from tricc_oo.converters.cql.cqlVisitor import cqlVisitor
|
|
5
5
|
from tricc_oo.converters.utils import clean_name
|
|
6
|
-
from tricc_oo.models.base import TriccOperator, TriccOperation, TriccStatic, TriccReference, not_clean, or_join, and_join
|
|
6
|
+
from tricc_oo.models.base import TriccOperator, TriccOperation, TriccStatic, TriccReference, not_clean, or_join, and_join, string_join
|
|
7
7
|
import logging
|
|
8
8
|
|
|
9
9
|
logger = logging.getLogger("default")
|
|
@@ -21,8 +21,10 @@ FUNCTION_MAP = {
|
|
|
21
21
|
'Concatenate': TriccOperator.CONCATENATE,
|
|
22
22
|
'Izscore': TriccOperator.IZSCORE,
|
|
23
23
|
'Zscore': TriccOperator.ZSCORE,
|
|
24
|
+
'Round': TriccOperator.ROUND,
|
|
24
25
|
'DrugDosage': TriccOperator.DRUG_DOSAGE,
|
|
25
26
|
'HasQualifier': TriccOperator.HAS_QUALIFIER,
|
|
27
|
+
'DateTimeToDecimal' : TriccOperator.DATETIME_TO_DECIMAL
|
|
26
28
|
}
|
|
27
29
|
# TODO
|
|
28
30
|
# Min
|
|
@@ -214,7 +216,11 @@ class cqlToXlsFormVisitor(cqlVisitor):
|
|
|
214
216
|
if operator == TriccOperator.AND:
|
|
215
217
|
return and_join([left, right])
|
|
216
218
|
elif operator == TriccOperator.OR:
|
|
217
|
-
return or_join([left, right])
|
|
219
|
+
return or_join([left, right])
|
|
220
|
+
elif operator == TriccOperator.CONCATENATE:
|
|
221
|
+
left = "" if left is None else left
|
|
222
|
+
right = "" if right is None else right
|
|
223
|
+
return string_join(left, right)
|
|
218
224
|
else:
|
|
219
225
|
op = TriccOperation(operator, [left, right])
|
|
220
226
|
return op
|
|
@@ -285,10 +291,10 @@ class cqlToXlsFormVisitor(cqlVisitor):
|
|
|
285
291
|
op_map = {
|
|
286
292
|
'+': TriccOperator.PLUS,
|
|
287
293
|
'-': TriccOperator.MINUS,
|
|
288
|
-
'&': TriccOperator.
|
|
294
|
+
'&': TriccOperator.CONCATENATE
|
|
289
295
|
}
|
|
290
296
|
return self.__std_operator(op_map.get(op_text), ctx)
|
|
291
|
-
|
|
297
|
+
|
|
292
298
|
|
|
293
299
|
def visitTypeExpression(self, ctx):
|
|
294
300
|
to_type = ctx.getChild(2).getText()
|
|
@@ -45,7 +45,6 @@ TYPE_MAP = {
|
|
|
45
45
|
"constraint_message",
|
|
46
46
|
"relevance",
|
|
47
47
|
"priority", "trigger", "default"
|
|
48
|
-
|
|
49
48
|
],
|
|
50
49
|
"mandatory_attributes": ["label", "name", "list_name"],
|
|
51
50
|
"model": TriccNodeSelectOne
|
|
@@ -99,13 +98,13 @@ TYPE_MAP = {
|
|
|
99
98
|
|
|
100
99
|
TriccNodeType.text: {
|
|
101
100
|
"objects": ["UserObject", "object"],
|
|
102
|
-
"attributes": ["save", "relevance","priority", "trigger", "default"],
|
|
101
|
+
"attributes": ["save", "relevance","priority", "trigger", "default", "constraint", "constraint_message"],
|
|
103
102
|
"mandatory_attributes": ["label", 'name'],
|
|
104
103
|
"model": TriccNodeText
|
|
105
104
|
},
|
|
106
105
|
TriccNodeType.date: {
|
|
107
106
|
"objects": ["UserObject", "object"],
|
|
108
|
-
"attributes": ["save", "relevance","priority", "trigger", "default"],
|
|
107
|
+
"attributes": ["save", "relevance","priority", "trigger", "default", "constraint", "constraint_message"],
|
|
109
108
|
"mandatory_attributes": ["label", "name"],
|
|
110
109
|
"model": TriccNodeDate
|
|
111
110
|
},
|
tricc_oo/models/base.py
CHANGED
|
@@ -336,7 +336,8 @@ class TriccReference(TriccStatic):
|
|
|
336
336
|
|
|
337
337
|
class TriccOperator(StrEnum):
|
|
338
338
|
AND = 'and' # and between left and rights
|
|
339
|
-
ADD_OR = 'and_or' # left and one of the righs
|
|
339
|
+
ADD_OR = 'and_or' # left and one of the righs
|
|
340
|
+
#ADD_STRING: 'add_string'
|
|
340
341
|
OR = 'or' # or between left and rights
|
|
341
342
|
NATIVE = 'native' #default left is native expression
|
|
342
343
|
ISTRUE = 'istrue' # left is right
|
|
@@ -357,6 +358,7 @@ class TriccOperator(StrEnum):
|
|
|
357
358
|
NOT = 'not'
|
|
358
359
|
ISNULL = 'isnull'
|
|
359
360
|
ISNOTNULL= 'isnotnull'
|
|
361
|
+
ROUND = 'round'
|
|
360
362
|
|
|
361
363
|
CASE = 'case' # ref (equal value, res), (equal value,res)
|
|
362
364
|
IFS = 'ifs' #(cond, res), (cond,res)
|
|
@@ -364,7 +366,6 @@ class TriccOperator(StrEnum):
|
|
|
364
366
|
|
|
365
367
|
# CDSS Specific
|
|
366
368
|
HAS_QUALIFIER = 'has_qualifier'
|
|
367
|
-
|
|
368
369
|
ZSCORE = 'zscore' # left table_name, right Y, gender give Z
|
|
369
370
|
IZSCORE = 'izscore' #left table_name, right Z, gender give Y
|
|
370
371
|
AGE_DAY = 'age_day' # age from dob
|
|
@@ -383,6 +384,7 @@ class TriccOperator(StrEnum):
|
|
|
383
384
|
CAST_DATE = 'cast_date'
|
|
384
385
|
PARENTHESIS = 'parenthesis'
|
|
385
386
|
CONCATENATE = 'concatenate'
|
|
387
|
+
DATETIME_TO_DECIMAL = 'datetime_to_decimal'
|
|
386
388
|
|
|
387
389
|
RETURNS_BOOLEAN =[
|
|
388
390
|
TriccOperator.ADD_OR,
|
|
@@ -414,6 +416,8 @@ RETURNS_NUMBER = [
|
|
|
414
416
|
TriccOperator.AGE_YEAR,
|
|
415
417
|
TriccOperator.ZSCORE,
|
|
416
418
|
TriccOperator.IZSCORE,
|
|
419
|
+
TriccOperator.ROUND,
|
|
420
|
+
TriccOperator.DATETIME_TO_DECIMAL,
|
|
417
421
|
TriccOperator.PLUS,
|
|
418
422
|
TriccOperator.MINUS,
|
|
419
423
|
TriccOperator.DIVIDED,
|
|
@@ -456,7 +460,8 @@ class TriccOperation(BaseModel):
|
|
|
456
460
|
return hash(self.__repr__())
|
|
457
461
|
|
|
458
462
|
def __repr__(self):
|
|
459
|
-
|
|
463
|
+
str_ref = map(repr, self.reference)
|
|
464
|
+
return f"TriccOperation:{self.operator}({', '.join(map(str, str_ref))})"
|
|
460
465
|
|
|
461
466
|
def __eq__(self, other):
|
|
462
467
|
return self.__str__() == str(other)
|
|
@@ -658,7 +663,7 @@ def clean_or_list(list_or, elm_and=None):
|
|
|
658
663
|
if len(list_or) == 0:
|
|
659
664
|
return []
|
|
660
665
|
|
|
661
|
-
return sorted(list(set(list_or)), key=
|
|
666
|
+
return sorted(list(set(list_or)), key=repr)
|
|
662
667
|
|
|
663
668
|
def and_join(argv):
|
|
664
669
|
argv=clean_and_list(argv)
|
|
@@ -671,6 +676,30 @@ def and_join(argv):
|
|
|
671
676
|
TriccOperator.AND,
|
|
672
677
|
argv
|
|
673
678
|
)
|
|
679
|
+
|
|
680
|
+
|
|
681
|
+
def string_join(left: Union[str, TriccOperation], right: Union[str, TriccOperation]) -> TriccOperation:
|
|
682
|
+
"""
|
|
683
|
+
Concatenates two arguments (strings or TriccOperation) into a TriccOperation with CONCATENATE operator.
|
|
684
|
+
If either argument is a TriccOperation with CONCATENATE operator, its operands are merged into the result.
|
|
685
|
+
"""
|
|
686
|
+
# Initialize operands list for the new TriccOperation
|
|
687
|
+
operands: List[Union[str, TriccOperation]] = []
|
|
688
|
+
|
|
689
|
+
# Check if left is a TriccOperation with CONCATENATE
|
|
690
|
+
if isinstance(left, TriccOperation) and left.operator == TriccOperator.CONCATENATE:
|
|
691
|
+
operands.extend(left.reference) # Merge left's operands
|
|
692
|
+
else:
|
|
693
|
+
operands.append(left) # Add left as-is
|
|
694
|
+
|
|
695
|
+
# Check if right is a TriccOperation with CONCATENATE
|
|
696
|
+
if isinstance(right, TriccOperation) and right.operator == TriccOperator.CONCATENATE:
|
|
697
|
+
operands.extend(right.reference) # Merge right's operands
|
|
698
|
+
else:
|
|
699
|
+
operands.append(right) # Add right as-is
|
|
700
|
+
|
|
701
|
+
# Return a new TriccOperation with the merged operands
|
|
702
|
+
return TriccOperation(operator=TriccOperator.CONCATENATE, reference=operands)
|
|
674
703
|
|
|
675
704
|
# function that make a 2 part and
|
|
676
705
|
# @param left part
|
tricc_oo/serializers/xls_form.py
CHANGED
|
@@ -264,7 +264,7 @@ def get_xfrom_trad(strategy, node, column, mapping, clean_html=False):
|
|
|
264
264
|
issubclass(node.__class__, TriccNodeDisplayCalculateBase)
|
|
265
265
|
and column == "calculation"
|
|
266
266
|
and isinstance(value, str)
|
|
267
|
-
and not value.startswith("number")
|
|
267
|
+
and not (value.startswith("number") or value.startswith("round"))
|
|
268
268
|
and getattr(node, "expression", None)
|
|
269
269
|
and node.expression.get_datatype() in ("number", "boolean")
|
|
270
270
|
):
|
|
@@ -131,6 +131,10 @@ class BaseOutPutStrategy:
|
|
|
131
131
|
raise NotImplementedError(f"This type of opreration is not supported in this strategy")
|
|
132
132
|
def tricc_operation_zscore(self, ref_expressions):
|
|
133
133
|
raise NotImplementedError(f"This type of opreration is not supported in this strategy")
|
|
134
|
+
def tricc_operation_datetime_to_decimal(self, ref_expressions):
|
|
135
|
+
raise NotImplementedError(f"This type of opreration is not supported in this strategy")
|
|
136
|
+
def tricc_operation_round(self, ref_expressions):
|
|
137
|
+
raise NotImplementedError(f"This type of opreration is not supported in this strategy")
|
|
134
138
|
def tricc_operation_izscore(self, ref_expressions):
|
|
135
139
|
raise NotImplementedError(f"This type of opreration is not supported in this strategy")
|
|
136
140
|
def tricc_operation_age_day(self, ref_expressions):
|
|
@@ -569,6 +569,13 @@ class XLSFormStrategy(BaseOutPutStrategy):
|
|
|
569
569
|
# return ((Math.pow((y / m), l) - 1) / (s * l));
|
|
570
570
|
return f"(pow({y} div ({m}), {ll}) -1) div (({s}) div ({ll}))"
|
|
571
571
|
|
|
572
|
+
def tricc_operation_datetime_to_decimal(self, ref_expressions):
|
|
573
|
+
return f"decimal-date-time({ref_expressions[0]})"
|
|
574
|
+
|
|
575
|
+
def tricc_operation_round(self, ref_expressions):
|
|
576
|
+
return f"round({ref_expressions[0]})"
|
|
577
|
+
|
|
578
|
+
|
|
572
579
|
|
|
573
580
|
def tricc_operation_izscore(self, ref_expressions):
|
|
574
581
|
z, ll, m, s = self.get_zscore_params(ref_expressions)
|
|
@@ -671,7 +678,7 @@ class XLSFormStrategy(BaseOutPutStrategy):
|
|
|
671
678
|
if isinstance(r, TriccOperation):
|
|
672
679
|
return self.get_tricc_operation_expression(r)
|
|
673
680
|
elif isinstance(r, TriccReference):
|
|
674
|
-
logger.warning(f"reference still used in
|
|
681
|
+
logger.warning(f"reference `{r.value}` still used in a calculate")
|
|
675
682
|
return f"${{{get_export_name(r.value)}}}"
|
|
676
683
|
elif isinstance(r, TriccStatic):
|
|
677
684
|
if isinstance(r.value, bool) :#or r.value in ('true', 'false')
|
tricc_oo/visitors/tricc.py
CHANGED
|
@@ -607,6 +607,21 @@ def process_reference(node, processed_nodes, calculates, used_calculates=None,
|
|
|
607
607
|
return False
|
|
608
608
|
elif modified_expression and replace_reference:
|
|
609
609
|
node.trigger = modified_expression
|
|
610
|
+
if isinstance(getattr(node, 'constraint', None), (TriccOperation, TriccReference)):
|
|
611
|
+
modified_expression = process_operation_reference(
|
|
612
|
+
node.constraint,
|
|
613
|
+
node,
|
|
614
|
+
processed_nodes=processed_nodes,
|
|
615
|
+
calculates=calculates,
|
|
616
|
+
used_calculates=used_calculates,
|
|
617
|
+
replace_reference=replace_reference,
|
|
618
|
+
warn=warn,
|
|
619
|
+
codesystems=codesystems
|
|
620
|
+
)
|
|
621
|
+
if modified_expression is False:
|
|
622
|
+
return False
|
|
623
|
+
elif modified_expression and replace_reference:
|
|
624
|
+
node.constraint = modified_expression
|
|
610
625
|
|
|
611
626
|
if isinstance(getattr(node, 'default', None), (TriccOperation, TriccReference)):
|
|
612
627
|
modified_expression = process_operation_reference(
|
|
@@ -1675,26 +1690,32 @@ def get_prev_instance_skip_expression(node, processed_nodes, process, expression
|
|
|
1675
1690
|
|
|
1676
1691
|
# end def
|
|
1677
1692
|
def get_process_skip_expression(node, processed_nodes, process, expression=None):
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
if
|
|
1685
|
-
end_expressions
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
if
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1693
|
+
list_ends = OrderedSet(
|
|
1694
|
+
filter(
|
|
1695
|
+
lambda x: issubclass(x.__class__, TriccNodeEnd),
|
|
1696
|
+
processed_nodes
|
|
1697
|
+
)
|
|
1698
|
+
)
|
|
1699
|
+
if list_ends:
|
|
1700
|
+
end_expressions = []
|
|
1701
|
+
f_end_expression = get_end_expression(list_ends)
|
|
1702
|
+
if f_end_expression:
|
|
1703
|
+
end_expressions.append(f_end_expression)
|
|
1704
|
+
b_end_expression = get_end_expression(list_ends, 'pause')
|
|
1705
|
+
if b_end_expression:
|
|
1706
|
+
end_expressions.append(b_end_expression)
|
|
1707
|
+
if process[0] in PROCESSES:
|
|
1708
|
+
for p in PROCESSES[PROCESSES.index(process[0])+1:]:
|
|
1709
|
+
p_end_expression = get_end_expression(list_ends, p)
|
|
1710
|
+
if p_end_expression:
|
|
1711
|
+
end_expressions.append(p_end_expression)
|
|
1712
|
+
if end_expressions:
|
|
1713
|
+
if expression:
|
|
1714
|
+
end_expressions.append(expression)
|
|
1715
|
+
if len(end_expressions) == 1:
|
|
1716
|
+
expression = end_expressions[0]
|
|
1717
|
+
else:
|
|
1718
|
+
expression = and_join(end_expressions)
|
|
1698
1719
|
return expression
|
|
1699
1720
|
|
|
1700
1721
|
def get_end_expression(processed_nodes, process=None):
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
tests/build.py,sha256=aGpylfQU60xPq0AJX-UQQRIxXd7Nxb7SLulVEfZt3aA,6483
|
|
2
|
-
tests/test_cql.py,sha256=
|
|
2
|
+
tests/test_cql.py,sha256=Ut7t02T7tDeYKwu4wpsSZkmIpDF0PP9rbTaV35JSeGw,6823
|
|
3
3
|
tests/to_ocl.py,sha256=f_KeKF7N1tri9ChbtH1OShgHskt_T9Wj1IfaT6qJNGY,2247
|
|
4
4
|
tricc_oo/__init__.py,sha256=Els6sDXpOJiGU1zp45rTXZgEKceq_XhRZDfrx1mIMGc,255
|
|
5
5
|
tricc_oo/converters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
6
|
tricc_oo/converters/codesystem_to_ocl.py,sha256=-ZKMBeIvzgqmhJfnn6ptuwpnHQtuE-fCDDfKpfGvUSU,6066
|
|
7
|
-
tricc_oo/converters/cql_to_operation.py,sha256=
|
|
7
|
+
tricc_oo/converters/cql_to_operation.py,sha256=uKNKtPWXBF25mBHJM39EF258ogP_75ikSNXRHDiLbrs,14646
|
|
8
8
|
tricc_oo/converters/datadictionnary.py,sha256=WWKcTtKLfc4aduHcDBhr4JSfU2NqRMaslwX-wdZPIAw,3968
|
|
9
|
-
tricc_oo/converters/drawio_type_map.py,sha256=
|
|
9
|
+
tricc_oo/converters/drawio_type_map.py,sha256=I-UN-O1OKmNFnkHAJMEbPrew7r3K2_x5mKPUVM98F24,7545
|
|
10
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=rpqBX4wHYo3ZNEHynk-vlwritRN4FeQ7etmdShIefX4,37411
|
|
@@ -15,7 +15,7 @@ tricc_oo/converters/cql/cqlListener.py,sha256=ketvj7XvO7t047S6A3_gTPvp2MlYk1bojm
|
|
|
15
15
|
tricc_oo/converters/cql/cqlParser.py,sha256=hIUdR907WX24P2Jlrxk-H0IT94n51yh_ZsCmwQhnFas,414730
|
|
16
16
|
tricc_oo/converters/cql/cqlVisitor.py,sha256=SWSDIqVYBhucR4VgLn_EPNs7LV9yCqsOmzFZ0bmRSGc,33865
|
|
17
17
|
tricc_oo/models/__init__.py,sha256=Rdk1fsNXHrbmXTQD1O7i0NC_A6os648Ap6CtWRliOg8,92
|
|
18
|
-
tricc_oo/models/base.py,sha256=
|
|
18
|
+
tricc_oo/models/base.py,sha256=gXjEUGD5yRCqtfATxM2DIBJ17HVJWzMifrBvacm_p54,26054
|
|
19
19
|
tricc_oo/models/calculate.py,sha256=60jSL8gbcTxqGYsZe1LoGZAdScIp6_suC88XlE0xg-c,7640
|
|
20
20
|
tricc_oo/models/lang.py,sha256=SwKaoxyRhE7gH_ZlYyFXzGuTQ5RE19y47LWAA35zYxg,2338
|
|
21
21
|
tricc_oo/models/ocl.py,sha256=ol35Gl1jCBp0Ven0yxOKzDIZkVL5Kx9uwaR_64pjxKI,8931
|
|
@@ -25,22 +25,22 @@ tricc_oo/parsers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,
|
|
|
25
25
|
tricc_oo/parsers/xml.py,sha256=vq9PA5Zt4G3QMtZ1zgyN8110O1w19Jqt6JClJYhHJlU,4410
|
|
26
26
|
tricc_oo/serializers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
27
27
|
tricc_oo/serializers/planuml.py,sha256=a81YKsjgng-h2H_rmFE2J5FeBBUaH8kRGT8YrvzpEKE,455
|
|
28
|
-
tricc_oo/serializers/xls_form.py,sha256=
|
|
28
|
+
tricc_oo/serializers/xls_form.py,sha256=mA7GbF1pVH06thJofyXHxzHH-9bCVHBx_ec-G7g0SbM,22866
|
|
29
29
|
tricc_oo/strategies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
30
30
|
tricc_oo/strategies/input/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
31
31
|
tricc_oo/strategies/input/base_input_strategy.py,sha256=-GQ_xRvJXzn-q_eT8R-wtFOTWzPtdNj79zjmsH6x070,4065
|
|
32
32
|
tricc_oo/strategies/input/drawio.py,sha256=qVX4-roFhnsgQSBA9gD9upz18FnBFs7-UeyHaZ_pNU4,13165
|
|
33
|
-
tricc_oo/strategies/output/base_output_strategy.py,sha256=
|
|
33
|
+
tricc_oo/strategies/output/base_output_strategy.py,sha256=YVQTgisOsbm3h2xWwXKQQPc6fIBBt98k2b8l8ivZfAA,7489
|
|
34
34
|
tricc_oo/strategies/output/spice.py,sha256=s_COahyYCoc4Xv5TGh_AW9evDOW6GOex0Xwa_JWeLsI,11280
|
|
35
|
-
tricc_oo/strategies/output/xls_form.py,sha256=
|
|
35
|
+
tricc_oo/strategies/output/xls_form.py,sha256=nJqMVI9Y8LF1MxG9-0cJK8g1Ag8iKqFPkjYVsG_UJ2M,31289
|
|
36
36
|
tricc_oo/strategies/output/xlsform_cdss.py,sha256=8ghPYH8K2DSzPY1jrJMQzrFmkvzu75jM0B1LpSS-y1E,9516
|
|
37
37
|
tricc_oo/strategies/output/xlsform_cht.py,sha256=2GeQCmuoFo2CbKGuMIwr8Iq78edKMDb3AAsm6UVTHMU,24216
|
|
38
38
|
tricc_oo/strategies/output/xlsform_cht_hf.py,sha256=VPx5_wLXLacJFTgVcwOJ7LVd77fmOrL_ZAycNZLxC6o,2281
|
|
39
39
|
tricc_oo/visitors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
40
|
-
tricc_oo/visitors/tricc.py,sha256=
|
|
40
|
+
tricc_oo/visitors/tricc.py,sha256=e_6itYSgtc6EF2sOCKFvP3nri1NuELzRah_mBJdRVik,101851
|
|
41
41
|
tricc_oo/visitors/utils.py,sha256=Gol4JNozPEd30Q1l8IPIPhx5fqVyy9R81GofGVebgD8,484
|
|
42
42
|
tricc_oo/visitors/xform_pd.py,sha256=jgjBLbfElVdi0NmClhw6NK6qNcIgWYm4KMXfVwiQwXM,9705
|
|
43
|
-
tricc_oo-1.5.
|
|
44
|
-
tricc_oo-1.5.
|
|
45
|
-
tricc_oo-1.5.
|
|
46
|
-
tricc_oo-1.5.
|
|
43
|
+
tricc_oo-1.5.19.dist-info/METADATA,sha256=L0rbZLJFADUCMrIESNtMxlOCNOop0IesDNSnLGJN3dY,7878
|
|
44
|
+
tricc_oo-1.5.19.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
45
|
+
tricc_oo-1.5.19.dist-info/top_level.txt,sha256=NvbfMNAiy9m4b1unBsqpeOQWh4IgA1Xa33BtKA4abxk,15
|
|
46
|
+
tricc_oo-1.5.19.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|