cdiscbuilder 1.1.7__tar.gz → 1.1.9__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 (63) hide show
  1. {cdiscbuilder-1.1.7/src/cdiscbuilder.egg-info → cdiscbuilder-1.1.9}/PKG-INFO +1 -1
  2. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/pyproject.toml +1 -1
  3. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/adam/adam_derivation/derivations/sql_derivation.py +16 -1
  4. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9/src/cdiscbuilder.egg-info}/PKG-INFO +1 -1
  5. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/LICENSE +0 -0
  6. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/MANIFEST.in +0 -0
  7. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/README.md +0 -0
  8. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/setup.cfg +0 -0
  9. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/__init__.py +0 -0
  10. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/adam/__init__.py +0 -0
  11. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/adam/adam_derivation/__init__.py +0 -0
  12. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/adam/adam_derivation/derivations/__init__.py +0 -0
  13. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/adam/adam_derivation/derivations/base.py +0 -0
  14. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/adam/adam_derivation/derivations/function_derivation.py +0 -0
  15. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/adam/adam_derivation/engine.py +0 -0
  16. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/adam/adam_derivation/functions/__init__.py +0 -0
  17. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/adam/adam_derivation/functions/get_bmi.py +0 -0
  18. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/adam/adam_derivation/loaders/__init__.py +0 -0
  19. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/adam/adam_derivation/loaders/sdtm_loader.py +0 -0
  20. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/adam/adam_derivation/utils/__init__.py +0 -0
  21. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/adam/adam_derivation/utils/logger.py +0 -0
  22. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/adam/adam_spec/__init__.py +0 -0
  23. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/adam/adam_spec/adam_spec.py +0 -0
  24. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/adam/adam_spec/merge_yaml.py +0 -0
  25. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/adam/adam_spec/schema_validator.py +0 -0
  26. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/adam/adam_spec/tests/__init__.py +0 -0
  27. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/adam/adam_spec/tests/data/scenarios/organization/adsl_common.yaml +0 -0
  28. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/adam/adam_spec/tests/data/scenarios/project/adsl_project.yaml +0 -0
  29. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/adam/adam_spec/tests/data/scenarios/schema.yaml +0 -0
  30. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/adam/adam_spec/tests/data/scenarios/study1/adam_study1.yaml +0 -0
  31. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/adam/adam_spec/tests/data/scenarios/study1/adsl_study1.yaml +0 -0
  32. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/adam/adam_spec/tests/data/scenarios/study1/final_adsl_study1.yaml +0 -0
  33. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/adam/adam_spec/tests/data/scenarios/study2/adam_study2.yaml +0 -0
  34. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/adam/adam_spec/tests/data/scenarios/study2/adsl_study2.yaml +0 -0
  35. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/adam/adam_spec/tests/data/scenarios/study2/final_adsl_study2.yaml +0 -0
  36. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/adam/adam_spec/tests/test_adam_spec.py +0 -0
  37. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/adam/adam_spec/tests/test_merge_yaml.py +0 -0
  38. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/adam/adam_spec/tests/test_schema_validator.py +0 -0
  39. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/adam/adam_validation/__init__.py +0 -0
  40. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/adam/adam_validation/data_validator.py +0 -0
  41. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/adam/schema.yaml +0 -0
  42. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/cli.py +0 -0
  43. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/sdtm/__init__.py +0 -0
  44. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/sdtm/engine/__init__.py +0 -0
  45. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/sdtm/engine/classes/__init__.py +0 -0
  46. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/sdtm/engine/classes/finding.py +0 -0
  47. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/sdtm/engine/classes/general.py +0 -0
  48. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/sdtm/engine/config.py +0 -0
  49. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/sdtm/engine/functions.py +0 -0
  50. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/sdtm/engine/processor.py +0 -0
  51. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/sdtm/engine/validate.py +0 -0
  52. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/sdtm/loader/__init__.py +0 -0
  53. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/sdtm/loader/load.py +0 -0
  54. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/sdtm/loader/tests/__init__.py +0 -0
  55. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/sdtm/loader/tests/test_load.py +0 -0
  56. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/sdtm/odm_parser.py +0 -0
  57. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/sdtm/sdtm.py +0 -0
  58. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder/tlf/__init__.py +0 -0
  59. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder.egg-info/SOURCES.txt +0 -0
  60. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder.egg-info/dependency_links.txt +0 -0
  61. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder.egg-info/entry_points.txt +0 -0
  62. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder.egg-info/requires.txt +0 -0
  63. {cdiscbuilder-1.1.7 → cdiscbuilder-1.1.9}/src/cdiscbuilder.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cdiscbuilder
3
- Version: 1.1.7
3
+ Version: 1.1.9
4
4
  Summary: A package to convert ODM XML to SDTM/ADaM Datasets
5
5
  Author-email: Ming-Chun Chen <hellomingchun@gmail.com>
6
6
  Requires-Python: >=3.8
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "cdiscbuilder"
7
- version = "1.1.7"
7
+ version = "1.1.9"
8
8
  description = "A package to convert ODM XML to SDTM/ADaM Datasets"
9
9
  authors = [{name = "Ming-Chun Chen", email = "hellomingchun@gmail.com"}]
10
10
  dependencies = [
@@ -63,7 +63,15 @@ class SQLDerivation(BaseDerivation):
63
63
  # We perform the cut logic by creating a temporary DataFrame with the series
64
64
  # and running the SQL generation logic on it.
65
65
  temp_col = "_val"
66
- temp_df = pl.DataFrame({temp_col: series})
66
+
67
+ # Cast to Float64 for numeric comparisons (handles string source data)
68
+ try:
69
+ numeric_series = series.cast(pl.Float64)
70
+ except Exception:
71
+ # If cast fails, try to keep as-is (maybe it's already numeric)
72
+ numeric_series = series
73
+
74
+ temp_df = pl.DataFrame({temp_col: numeric_series})
67
75
  source = temp_col
68
76
 
69
77
  # Build CASE expression (logic lifted from original _derive_cut)
@@ -429,6 +437,13 @@ class SQLDerivation(BaseDerivation):
429
437
  # Calculate distance to target date
430
438
  if target_col in subject_data.columns and date_col in subject_data.columns:
431
439
  # Get target date (should be same for all rows of this subject)
440
+ target_date = subject_data[target_col][0]
441
+
442
+ # Skip if target date is null
443
+ if target_date is None:
444
+ result_list.append(subject_data[source_col][0])
445
+ continue
446
+
432
447
  # Calculate date differences and find closest
433
448
  # Handle multiple formats: "YYYY-MM-DD HH:MM:SS", "YYYY-MM-DDTHH:MM:SS" (ISO), or "YYYY-MM-DD"
434
449
  # We convert everything to Datetime for precision comparison (ms level)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cdiscbuilder
3
- Version: 1.1.7
3
+ Version: 1.1.9
4
4
  Summary: A package to convert ODM XML to SDTM/ADaM Datasets
5
5
  Author-email: Ming-Chun Chen <hellomingchun@gmail.com>
6
6
  Requires-Python: >=3.8
File without changes
File without changes
File without changes
File without changes