clinicedc 2.0.10__py3-none-any.whl → 2.0.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.

Potentially problematic release.


This version of clinicedc might be problematic. Click here for more details.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: clinicedc
3
- Version: 2.0.10
3
+ Version: 2.0.11
4
4
  Summary: A clinical trials data management framework built on Django
5
5
  Keywords: django,clinicedc,edc,clinical trials,research,data management,esource
6
6
  Author: Erik van Widenfelt, Jonathan Willitts
@@ -35,6 +35,7 @@ Requires-Dist: django-multisite2>=2.1.0
35
35
  Requires-Dist: django-pandas>=0.6.7
36
36
  Requires-Dist: django-pylabels>=1.0.1
37
37
  Requires-Dist: django-redis>=6.0.0
38
+ Requires-Dist: django-revision>=2.0.1
38
39
  Requires-Dist: django-sequences>=3.0
39
40
  Requires-Dist: django-simple-history>=3.10.1
40
41
  Requires-Dist: django-storages>=1.14.6
@@ -44,7 +45,6 @@ Requires-Dist: gunicorn>=23.0.0
44
45
  Requires-Dist: inflect>=7.5.0
45
46
  Requires-Dist: mempass>=0.1.2
46
47
  Requires-Dist: mysqlclient>=2.2.7
47
- Requires-Dist: psycopg2>=2.9.10
48
48
  Requires-Dist: pycups>=2.0.4
49
49
  Requires-Dist: pypdf>=5.9.0
50
50
  Requires-Dist: python-dateutil>=2.9.0.post0
@@ -559,7 +559,7 @@ edc_consent/modelform_mixins/__init__.py,sha256=Z5bXi8FIka147nV0VLjb2PHCzJDaI4lY
559
559
  edc_consent/modelform_mixins/consent_modelform_mixin/__init__.py,sha256=qg__oajqZP9ktA4BvoevB-hoYfAXTKCmhQyO4g-Dk04,196
560
560
  edc_consent/modelform_mixins/consent_modelform_mixin/clean_fields_modelform_validation_mixin.py,sha256=OcV-4y4LuN10ixAqVkbZcr5Ubuq9GKiMVMHDPIdrY3Q,1681
561
561
  edc_consent/modelform_mixins/consent_modelform_mixin/consent_modelform_mixin.py,sha256=ayVs-MIVfTiBJMPqaUFqivYFemNB_E1lHO1DNu_SItE,1170
562
- edc_consent/modelform_mixins/consent_modelform_mixin/consent_modelform_validation_mixin.py,sha256=RoUOct0orFn2TneVuv02ycQcsQaVlzJb0KfvsjswXhs,9947
562
+ edc_consent/modelform_mixins/consent_modelform_mixin/consent_modelform_validation_mixin.py,sha256=Wwo3l-pdFlLkK8q50GkaCyPUXtuPJXODqYfb3HF1jDw,9613
563
563
  edc_consent/modelform_mixins/consent_modelform_mixin/review_fields_modelform_mixin.py,sha256=HOiWpf8SnPaGMtRbKM6uAglbV1HmQWdzxSoyQW1ab2U,1922
564
564
  edc_consent/modelform_mixins/requires_consent_modelform_mixin.py,sha256=-rQAmOvl1fx8-lEUB6M4V7tqaTqDRxtid002EWYPIxM,2340
565
565
  edc_consent/models/__init__.py,sha256=kTUrf6WlsKInX7jVuD3DyIqRW1OUaeSemflLLzWLV_I,278
@@ -1050,7 +1050,7 @@ edc_form_runners/templatetags/form_runners_extras.py,sha256=yzFHwHI2yKaLB_5NGsQo
1050
1050
  edc_form_runners/urls.py,sha256=kglpnYOGvkQv5CvIyDSZAVrnQfUS7n8nED_3BvNo7NE,215
1051
1051
  edc_form_runners/utils.py,sha256=szAFGuRd8hQ-8iIp_gFVWdH-G341CN3FQ5xPXfhj9Jw,2956
1052
1052
  edc_form_validators/__init__.py,sha256=ErtgXVQ_uSpLGhAJbJU858CoJ1HBaXmPU_7ZimP0thM,727
1053
- edc_form_validators/applicable_field_validator.py,sha256=VNExrQ11QhH8OwSaLcudComPocULQNtdE9Vijmad0bc,7746
1053
+ edc_form_validators/applicable_field_validator.py,sha256=T3bs1jH0Ul9NOXSPS4jNZRex7Z4kWma-PP8BwImKKqU,7702
1054
1054
  edc_form_validators/apps.py,sha256=cIzFMQHoJS4M0j91oQqS1cQPPpFnnZ6dVBmgg1kVd5E,122
1055
1055
  edc_form_validators/base_form_validator.py,sha256=DVUY-o2FlNfV66Krctn3Jnttg-UmkmH7cw8HHrSy70U,5363
1056
1056
  edc_form_validators/current_site_validator.py,sha256=KIMqa5huICwX7EzvIbsZW2N0r1010BQNLpsBAfONLLI,283
@@ -1094,7 +1094,7 @@ edc_glucose/model_mixins/glucose_model_mixin.py,sha256=6KaNtNH7Rt5I-XAxmgFThcJiA
1094
1094
  edc_glucose/model_mixins/hba1c_model_mixin.py,sha256=JpNd5D-2ePFvELXfV7aq4kOXP1SPgl8E7UiW2Ni3bqQ,974
1095
1095
  edc_glucose/model_mixins/ogtt_model_mixin.py,sha256=O4EwgHyVTGnA0POdD95CDWJ6Mi6ylcI-XOnZSglXca8,251
1096
1096
  edc_glucose/models.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1097
- edc_glucose/utils.py,sha256=dP2CYSWmm_K2JpToAxECTluU2vgKWvFk4Y71YVNSBcs,1420
1097
+ edc_glucose/utils.py,sha256=-v_0y24hSNKhcZ4wOK-2Qei4sgqVzPuJPXIs1Zo50sk,1420
1098
1098
  edc_identifier/__init__.py,sha256=kkhaH8PAtHEohoVF2VENZfZmXeKyAnHWJHS1NEWuLyM,97
1099
1099
  edc_identifier/admin.py,sha256=LaKWYyBGNcRJ7yMNajKvVtj3JbcqqLSrizL3sWDf82g,1765
1100
1100
  edc_identifier/admin_site.py,sha256=Aev8xku-hX60RlijUe5IJrpxEdiceLbnc4kdLN7uX3g,173
@@ -1418,7 +1418,7 @@ edc_lab_results/form_validator_mixins/__init__.py,sha256=GLCQS8ZO6m-OsuIysw9oqsr
1418
1418
  edc_lab_results/form_validator_mixins/blood_results_fbg_form_validator_mixin.py,sha256=DsDoc4BvJE89LBcTf9sckJ9LXSdgw54jHJlIxvP_VMM,735
1419
1419
  edc_lab_results/form_validator_mixins/blood_results_form_validator_mixin.py,sha256=VO0iDEAte_3cRjuwcVaslVuT6gSDotTZxxQUeOUa7M8,4509
1420
1420
  edc_lab_results/form_validator_mixins/blood_results_glu_form_validator_mixin.py,sha256=vojao9i1l5DH4t99GM_d76LAeiaAb1l2VA-i2O0gtDI,173
1421
- edc_lab_results/get_summary.py,sha256=D8vJARIBacVMaTGBhWk2N4lR0lcdEPuM-GqZQZ2rKXs,2116
1421
+ edc_lab_results/get_summary.py,sha256=GOmNys-FIvuyEwhoTm8emSKczHJ-q_ycRytEtOW6AD0,2116
1422
1422
  edc_lab_results/model_mixin_factories/__init__.py,sha256=zueOK5TVko7qbmQN5xsI7D-WjIp8mx5LLI9M2ZdbC-g,408
1423
1423
  edc_lab_results/model_mixin_factories/field_attrs.py,sha256=mc2mXMc3Jr9cDu8_4bS13eAMfAdIuzKfeuI_hdWgMlQ,2696
1424
1424
  edc_lab_results/model_mixin_factories/reportable_result_model_mixin_factory.py,sha256=09SmRdI1ak1MfwH3aVHIBrV7qp3Lik2rXdj00nTFfUg,1095
@@ -1526,7 +1526,7 @@ edc_listboard/urls.py,sha256=0Pd5FbB3DBCwEtzZxLwDmvNx_yxTYbcHRPGNex8lrS4,174
1526
1526
  edc_listboard/view_mixins/__init__.py,sha256=aDbmIyoHkifzkK5DAfMJ-365NCnNGs-OcwkPW8M6mNw,241
1527
1527
  edc_listboard/view_mixins/listboard_filter_view_mixin.py,sha256=pApr0k8a6FKzJXTjpejO1QluV-7_p6CT_QWqEdLnPbE,2811
1528
1528
  edc_listboard/view_mixins/querystring_view_mixin.py,sha256=T4O3i6-A2-jZdK863fjf0NFWv2mCXICb6YMQ2qJTfSk,938
1529
- edc_listboard/view_mixins/search_form_view_mixin.py,sha256=rjh_rnGRyvsiypdVDpCvmuWFEydyJx6RMl9ZR7PfPYA,1167
1529
+ edc_listboard/view_mixins/search_form_view_mixin.py,sha256=6uitlsgTtUhVCH33a4gxrqBckiCLOt3N8sPY8yGB_jo,1154
1530
1530
  edc_listboard/view_mixins/search_listboard_view_mixin.py,sha256=VNbP-p3L2Bkgzyp5exzvE-p4tBl96YF3b_RVpGC4ejg,2952
1531
1531
  edc_listboard/views/__init__.py,sha256=IqobRNiACZF8HApUabAHhCUqoGJhzmHxApaTqFxVkPY,127
1532
1532
  edc_listboard/views/listboard_view.py,sha256=-3g3umgXCTw0u07TWSptQJpIaUfGfqLxB3WLrzErSus,8360
@@ -3293,7 +3293,7 @@ edc_vitals/models/fields/waist_circumference.py,sha256=fZcHFDdEwWLjIVLktKrFCD9UU
3293
3293
  edc_vitals/models/fields/weight.py,sha256=zo9_9e3Cpu0UqoRbWS-iDkcDo6fK80b1dDQy4x4MyxE,921
3294
3294
  edc_vitals/utils.py,sha256=vXid44KUXxeaSyund_y5MNXc5DFJs052_PwUAjszE2k,1384
3295
3295
  edc_vitals/validators.py,sha256=vNiElWMs0rRnHRNuVoPLRf0rW_C_0xcfUyep1Y_Si5s,156
3296
- clinicedc-2.0.10.dist-info/licenses/LICENSE,sha256=jOtLnuWt7d5Hsx6XXB2QxzrSe2sWWh3NgMfFRetluQM,35147
3297
- clinicedc-2.0.10.dist-info/WHEEL,sha256=pFCy50wRV2h7SjJ35YOsQUupaV45rMdgpNIvnXbG5bE,79
3298
- clinicedc-2.0.10.dist-info/METADATA,sha256=0BK5tKtxTprFm8XoX3_RswrzNMpU2z5Qf8l4feyoftA,15886
3299
- clinicedc-2.0.10.dist-info/RECORD,,
3296
+ clinicedc-2.0.11.dist-info/licenses/LICENSE,sha256=jOtLnuWt7d5Hsx6XXB2QxzrSe2sWWh3NgMfFRetluQM,35147
3297
+ clinicedc-2.0.11.dist-info/WHEEL,sha256=-neZj6nU9KAMg2CnCY6T3w8J53nx1kFGw_9HfoSzM60,79
3298
+ clinicedc-2.0.11.dist-info/METADATA,sha256=fYAbtZ8ZcUaWG3yebbSu73i13Z7EtPyYDGf3k-nStZc,15892
3299
+ clinicedc-2.0.11.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: uv 0.8.19
2
+ Generator: uv 0.8.22
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -74,13 +74,6 @@ class ConsentModelFormValidationMixin:
74
74
  raise forms.ValidationError(str(e))
75
75
  return None
76
76
 
77
- # def validate_last_allowed_visitcode(self, visit_code: str) -> str:
78
- # name = "last_allowed_visitcode"
79
- # value = self.cleaned_data.get(name, getattr(self.instance, name, None))
80
- # if value and int(visit_code) > int(value):
81
- # raise forms.ValidationError({"__all__": msg})
82
- # return value
83
-
84
77
  def validate_min_age(self) -> None:
85
78
  """Raises if age is below the age of consent"""
86
79
  if self.age_delta:
@@ -117,8 +117,7 @@ class ApplicableFieldValidator(BaseFormValidator):
117
117
  field_applicable_value = self.get(field_applicable)
118
118
 
119
119
  if field_value in responses and (
120
- field_applicable_value in (NULL_STRING, not_applicable)
121
- or field_applicable_value is None
120
+ field_applicable_value in (None, NULL_STRING, not_applicable)
122
121
  ):
123
122
  self.raise_applicable(field_applicable, msg=msg, applicable_msg=applicable_msg)
124
123
  elif (
edc_glucose/utils.py CHANGED
@@ -16,9 +16,9 @@ def validate_glucose_as_millimoles_per_liter(
16
16
  min_val = Decimal("0.00")
17
17
  max_val = Decimal("30.00")
18
18
  high_value = Decimal(f"{GLUCOSE_HIGH_READING}")
19
- value = cleaned_data.get(f"{prefix}_value")
20
- units = cleaned_data.get(f"{prefix}_units")
21
- if value and units:
19
+ if (value := cleaned_data.get(f"{prefix}_value")) and (
20
+ units := cleaned_data.get(f"{prefix}_units")
21
+ ):
22
22
  try:
23
23
  converted_value = convert_units(
24
24
  label=prefix,
@@ -18,9 +18,9 @@ def get_summary(obj) -> tuple[list[str], list[str], list[str]]:
18
18
  except ValueError:
19
19
  utest_id = field_name
20
20
  reference_range_collection = get_reference_range_collection(obj)
21
- if (units := getattr(obj, f"{utest_id}_units", None)) and (
22
- value := getattr(obj, field_name)
23
- ):
21
+ units = getattr(obj, f"{utest_id}_units", None)
22
+ value = getattr(obj, field_name)
23
+ if units and value:
24
24
  opts.update(units=units, label=utest_id)
25
25
  try:
26
26
  grading_data, grading_eval_phrase = reference_range_collection.get_grade(
@@ -28,9 +28,8 @@ class SearchFormViewMixin:
28
28
  )
29
29
  except NoReverseMatch as e:
30
30
  raise SearchFormViewError(
31
- f"{e}. Expected one of {url_names.registry}. "
32
- f"See attribute 'search_form_url'."
33
- )
31
+ f"{e}. Expected one of {url_names.registry}. See attribute 'search_form_url'."
32
+ ) from e
34
33
  return f"{url}{self.querystring}"
35
34
 
36
35
  @property