cdiscbuilder 1.1.10__py3-none-any.whl → 1.1.11__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.
- cdiscbuilder/adam/adam_derivation/derivations/sql_derivation.py +40 -14
- {cdiscbuilder-1.1.10.dist-info → cdiscbuilder-1.1.11.dist-info}/METADATA +1 -1
- {cdiscbuilder-1.1.10.dist-info → cdiscbuilder-1.1.11.dist-info}/RECORD +7 -7
- {cdiscbuilder-1.1.10.dist-info → cdiscbuilder-1.1.11.dist-info}/WHEEL +0 -0
- {cdiscbuilder-1.1.10.dist-info → cdiscbuilder-1.1.11.dist-info}/entry_points.txt +0 -0
- {cdiscbuilder-1.1.10.dist-info → cdiscbuilder-1.1.11.dist-info}/licenses/LICENSE +0 -0
- {cdiscbuilder-1.1.10.dist-info → cdiscbuilder-1.1.11.dist-info}/top_level.txt +0 -0
|
@@ -92,26 +92,52 @@ class SQLDerivation(BaseDerivation):
|
|
|
92
92
|
sql_condition = sql_condition.replace("___LT___", f"< {source} AND {source} <")
|
|
93
93
|
sql_condition = sql_condition.replace("___EQ___", f"= {source} AND {source} =")
|
|
94
94
|
|
|
95
|
-
# Clean up the condition
|
|
96
|
-
if condition.
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
parts = condition.split(" and ")
|
|
101
|
-
lower = parts[0].replace(">=", "").strip()
|
|
95
|
+
# Clean up the condition - handle all comparison operators
|
|
96
|
+
if " and " in condition.lower():
|
|
97
|
+
# Range condition: handle >=X and <Y, >X and <=Y, etc.
|
|
98
|
+
parts = condition.lower().split(" and ")
|
|
99
|
+
lower_part = parts[0].strip()
|
|
102
100
|
upper_part = parts[1].strip()
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
101
|
+
|
|
102
|
+
# Parse lower bound (>= or >)
|
|
103
|
+
if lower_part.startswith(">="):
|
|
104
|
+
lower_val = lower_part.replace(">=", "").strip()
|
|
105
|
+
lower_op = ">="
|
|
106
|
+
elif lower_part.startswith(">"):
|
|
107
|
+
lower_val = lower_part.replace(">", "").strip()
|
|
108
|
+
lower_op = ">"
|
|
107
109
|
else:
|
|
108
|
-
|
|
109
|
-
case_parts.append(f"WHEN {
|
|
110
|
+
# Fallback for unexpected format
|
|
111
|
+
case_parts.append(f"WHEN {condition} THEN '{label}'")
|
|
112
|
+
continue
|
|
113
|
+
|
|
114
|
+
# Parse upper bound (<= or <)
|
|
115
|
+
if upper_part.startswith("<="):
|
|
116
|
+
upper_val = upper_part.replace("<=", "").strip()
|
|
117
|
+
upper_op = "<="
|
|
118
|
+
elif upper_part.startswith("<"):
|
|
119
|
+
upper_val = upper_part.replace("<", "").strip()
|
|
120
|
+
upper_op = "<"
|
|
121
|
+
else:
|
|
122
|
+
# Fallback for unexpected format
|
|
123
|
+
case_parts.append(f"WHEN {condition} THEN '{label}'")
|
|
124
|
+
continue
|
|
125
|
+
|
|
126
|
+
case_parts.append(f"WHEN {source} {lower_op} {lower_val} AND {source} {upper_op} {upper_val} THEN '{label}'")
|
|
127
|
+
elif condition.startswith("<="):
|
|
128
|
+
value = condition[2:].strip()
|
|
129
|
+
case_parts.append(f"WHEN {source} <= {value} THEN '{label}'")
|
|
130
|
+
elif condition.startswith("<"):
|
|
131
|
+
value = condition[1:].strip()
|
|
132
|
+
case_parts.append(f"WHEN {source} < {value} THEN '{label}'")
|
|
110
133
|
elif condition.startswith(">="):
|
|
111
134
|
value = condition[2:].strip()
|
|
112
135
|
case_parts.append(f"WHEN {source} >= {value} THEN '{label}'")
|
|
136
|
+
elif condition.startswith(">"):
|
|
137
|
+
value = condition[1:].strip()
|
|
138
|
+
case_parts.append(f"WHEN {source} > {value} THEN '{label}'")
|
|
113
139
|
else:
|
|
114
|
-
# Generic condition
|
|
140
|
+
# Generic condition (pass through as-is)
|
|
115
141
|
case_parts.append(f"WHEN {condition} THEN '{label}'")
|
|
116
142
|
|
|
117
143
|
case_expr = "CASE " + " ".join(case_parts) + " ELSE NULL END"
|
|
@@ -7,7 +7,7 @@ cdiscbuilder/adam/adam_derivation/engine.py,sha256=5Wk_tc3c6nRKBiiL5gE7YXxvdPgXV
|
|
|
7
7
|
cdiscbuilder/adam/adam_derivation/derivations/__init__.py,sha256=iu7xzlQF_uK_5nwYw5ovEsBDNdaX0S8oVFYYxcxheTc,213
|
|
8
8
|
cdiscbuilder/adam/adam_derivation/derivations/base.py,sha256=thbi0UD17Z8hUA5G6np_wWDcFth-UmoY7moS2KzvIps,1242
|
|
9
9
|
cdiscbuilder/adam/adam_derivation/derivations/function_derivation.py,sha256=mPBet5JR10RS9euaS9ZLE1GCMRS3Grp9Gc3hdiQOVDI,7167
|
|
10
|
-
cdiscbuilder/adam/adam_derivation/derivations/sql_derivation.py,sha256
|
|
10
|
+
cdiscbuilder/adam/adam_derivation/derivations/sql_derivation.py,sha256=-wd5AZfItJUyTZNUNWQHlheYPESInwijpl0j9tbp7z8,25377
|
|
11
11
|
cdiscbuilder/adam/adam_derivation/functions/__init__.py,sha256=Cv4pLpgHTr9i2zf7owbpZwMyxm8JLFmX4J31dvX0jYg,1773
|
|
12
12
|
cdiscbuilder/adam/adam_derivation/functions/get_bmi.py,sha256=RR1lQpRSDO4cEkhxjnPutAy_xfVvfEwmhYR90XK2eMM,229
|
|
13
13
|
cdiscbuilder/adam/adam_derivation/loaders/__init__.py,sha256=eUnUKzyahIaLIqjn39sYzXvzPpfabZoipkPdQ5mA9IE,116
|
|
@@ -49,9 +49,9 @@ cdiscbuilder/sdtm/loader/load.py,sha256=30x9fAEjnuRq313SRq9I7mBwrWl4sEhiKkmrr9x1
|
|
|
49
49
|
cdiscbuilder/sdtm/loader/tests/__init__.py,sha256=ujCd31KMb52gvkWkVBBogLBda3aiRmbqS0nRS-yTnk0,69
|
|
50
50
|
cdiscbuilder/sdtm/loader/tests/test_load.py,sha256=yrXFQlzH_EkN6HxJc7ItFie8xqwrs2XxwNu2wGaxjok,11180
|
|
51
51
|
cdiscbuilder/tlf/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
52
|
-
cdiscbuilder-1.1.
|
|
53
|
-
cdiscbuilder-1.1.
|
|
54
|
-
cdiscbuilder-1.1.
|
|
55
|
-
cdiscbuilder-1.1.
|
|
56
|
-
cdiscbuilder-1.1.
|
|
57
|
-
cdiscbuilder-1.1.
|
|
52
|
+
cdiscbuilder-1.1.11.dist-info/licenses/LICENSE,sha256=Da4Pm8tEdB1ycKkAkF2EwfHd-8l0wrJ_uwejzfBRHFE,1092
|
|
53
|
+
cdiscbuilder-1.1.11.dist-info/METADATA,sha256=f60l-5iGXmmj6ThDt5CfALlhwZdstgIlhY179w3JpB8,357
|
|
54
|
+
cdiscbuilder-1.1.11.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
55
|
+
cdiscbuilder-1.1.11.dist-info/entry_points.txt,sha256=KsuiJD4hsfjRqDkdvWgLFPeQCz7QBl73RA665BmF0Pw,53
|
|
56
|
+
cdiscbuilder-1.1.11.dist-info/top_level.txt,sha256=3x5ENgnXBENgXKp5Zsht_4_OmA5wLVvDuk0UEkYOGNw,13
|
|
57
|
+
cdiscbuilder-1.1.11.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|