cdiscbuilder 1.1.9__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 -8
- {cdiscbuilder-1.1.9.dist-info → cdiscbuilder-1.1.11.dist-info}/METADATA +1 -1
- {cdiscbuilder-1.1.9.dist-info → cdiscbuilder-1.1.11.dist-info}/RECORD +7 -7
- {cdiscbuilder-1.1.9.dist-info → cdiscbuilder-1.1.11.dist-info}/WHEEL +0 -0
- {cdiscbuilder-1.1.9.dist-info → cdiscbuilder-1.1.11.dist-info}/entry_points.txt +0 -0
- {cdiscbuilder-1.1.9.dist-info → cdiscbuilder-1.1.11.dist-info}/licenses/LICENSE +0 -0
- {cdiscbuilder-1.1.9.dist-info → cdiscbuilder-1.1.11.dist-info}/top_level.txt +0 -0
|
@@ -92,20 +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.
|
|
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()
|
|
100
|
+
upper_part = parts[1].strip()
|
|
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 = ">"
|
|
109
|
+
else:
|
|
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("<"):
|
|
97
131
|
value = condition[1:].strip()
|
|
98
132
|
case_parts.append(f"WHEN {source} < {value} THEN '{label}'")
|
|
99
|
-
elif condition.startswith(">=") and " and " in condition.lower():
|
|
100
|
-
parts = condition.split(" and ")
|
|
101
|
-
lower = parts[0].replace(">=", "").strip()
|
|
102
|
-
upper = parts[1].replace("<", "").strip()
|
|
103
|
-
case_parts.append(f"WHEN {source} >= {lower} AND {source} < {upper} THEN '{label}'")
|
|
104
133
|
elif condition.startswith(">="):
|
|
105
134
|
value = condition[2:].strip()
|
|
106
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}'")
|
|
107
139
|
else:
|
|
108
|
-
# Generic condition
|
|
140
|
+
# Generic condition (pass through as-is)
|
|
109
141
|
case_parts.append(f"WHEN {condition} THEN '{label}'")
|
|
110
142
|
|
|
111
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
|