pharmadata 0.1.0__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.
Files changed (166) hide show
  1. pharmadata/__init__.py +41 -0
  2. pharmadata/_core/__init__.py +1 -0
  3. pharmadata/_core/collection.py +119 -0
  4. pharmadata/_core/data.py +295 -0
  5. pharmadata/_core/meta.py +159 -0
  6. pharmadata/_core/output_format.py +139 -0
  7. pharmadata/_data/cdiscpilotadam/_collection.json +6 -0
  8. pharmadata/_data/cdiscpilotadam/_meta.json +3140 -0
  9. pharmadata/_data/cdiscpilotadam/adadas.parquet +0 -0
  10. pharmadata/_data/cdiscpilotadam/adae.parquet +0 -0
  11. pharmadata/_data/cdiscpilotadam/adcibc.parquet +0 -0
  12. pharmadata/_data/cdiscpilotadam/adlbc.parquet +0 -0
  13. pharmadata/_data/cdiscpilotadam/adlbcpv.parquet +0 -0
  14. pharmadata/_data/cdiscpilotadam/adlbh.parquet +0 -0
  15. pharmadata/_data/cdiscpilotadam/adlbhpv.parquet +0 -0
  16. pharmadata/_data/cdiscpilotadam/adlbhy.parquet +0 -0
  17. pharmadata/_data/cdiscpilotadam/adnpix.parquet +0 -0
  18. pharmadata/_data/cdiscpilotadam/adsl.parquet +0 -0
  19. pharmadata/_data/cdiscpilotadam/adtte.parquet +0 -0
  20. pharmadata/_data/cdiscpilotadam/advs.parquet +0 -0
  21. pharmadata/_data/cdiscpilotsdtm/_collection.json +6 -0
  22. pharmadata/_data/cdiscpilotsdtm/_meta.json +3321 -0
  23. pharmadata/_data/cdiscpilotsdtm/ae.parquet +0 -0
  24. pharmadata/_data/cdiscpilotsdtm/cm.parquet +0 -0
  25. pharmadata/_data/cdiscpilotsdtm/dm.parquet +0 -0
  26. pharmadata/_data/cdiscpilotsdtm/ds.parquet +0 -0
  27. pharmadata/_data/cdiscpilotsdtm/ex.parquet +0 -0
  28. pharmadata/_data/cdiscpilotsdtm/lbch.parquet +0 -0
  29. pharmadata/_data/cdiscpilotsdtm/lbhe.parquet +0 -0
  30. pharmadata/_data/cdiscpilotsdtm/lbur.parquet +0 -0
  31. pharmadata/_data/cdiscpilotsdtm/mh.parquet +0 -0
  32. pharmadata/_data/cdiscpilotsdtm/qsco.parquet +0 -0
  33. pharmadata/_data/cdiscpilotsdtm/qsda.parquet +0 -0
  34. pharmadata/_data/cdiscpilotsdtm/qsgi.parquet +0 -0
  35. pharmadata/_data/cdiscpilotsdtm/qshi.parquet +0 -0
  36. pharmadata/_data/cdiscpilotsdtm/qsmm.parquet +0 -0
  37. pharmadata/_data/cdiscpilotsdtm/qsni.parquet +0 -0
  38. pharmadata/_data/cdiscpilotsdtm/relrec.parquet +0 -0
  39. pharmadata/_data/cdiscpilotsdtm/sc.parquet +0 -0
  40. pharmadata/_data/cdiscpilotsdtm/se.parquet +0 -0
  41. pharmadata/_data/cdiscpilotsdtm/suppae.parquet +0 -0
  42. pharmadata/_data/cdiscpilotsdtm/suppdm.parquet +0 -0
  43. pharmadata/_data/cdiscpilotsdtm/suppds.parquet +0 -0
  44. pharmadata/_data/cdiscpilotsdtm/supplbch.parquet +0 -0
  45. pharmadata/_data/cdiscpilotsdtm/supplbhe.parquet +0 -0
  46. pharmadata/_data/cdiscpilotsdtm/supplbur.parquet +0 -0
  47. pharmadata/_data/cdiscpilotsdtm/sv.parquet +0 -0
  48. pharmadata/_data/cdiscpilotsdtm/ta.parquet +0 -0
  49. pharmadata/_data/cdiscpilotsdtm/te.parquet +0 -0
  50. pharmadata/_data/cdiscpilotsdtm/ti.parquet +0 -0
  51. pharmadata/_data/cdiscpilotsdtm/ts.parquet +0 -0
  52. pharmadata/_data/cdiscpilotsdtm/tv.parquet +0 -0
  53. pharmadata/_data/cdiscpilotsdtm/vs.parquet +0 -0
  54. pharmadata/_data/pharmaverseadam/_collection.json +6 -0
  55. pharmadata/_data/pharmaverseadam/_meta.json +14421 -0
  56. pharmadata/_data/pharmaverseadam/adab.parquet +0 -0
  57. pharmadata/_data/pharmaverseadam/adae.parquet +0 -0
  58. pharmadata/_data/pharmaverseadam/adapet_neuro.parquet +0 -0
  59. pharmadata/_data/pharmaverseadam/adbcva_ophtha.parquet +0 -0
  60. pharmadata/_data/pharmaverseadam/adce_vaccine.parquet +0 -0
  61. pharmadata/_data/pharmaverseadam/adcm.parquet +0 -0
  62. pharmadata/_data/pharmaverseadam/adcoeq_metabolic.parquet +0 -0
  63. pharmadata/_data/pharmaverseadam/adeg.parquet +0 -0
  64. pharmadata/_data/pharmaverseadam/adex.parquet +0 -0
  65. pharmadata/_data/pharmaverseadam/adface_vaccine.parquet +0 -0
  66. pharmadata/_data/pharmaverseadam/adis_vaccine.parquet +0 -0
  67. pharmadata/_data/pharmaverseadam/adlb.parquet +0 -0
  68. pharmadata/_data/pharmaverseadam/adlb_metabolic.parquet +0 -0
  69. pharmadata/_data/pharmaverseadam/adlb_neuro.parquet +0 -0
  70. pharmadata/_data/pharmaverseadam/adlbhy.parquet +0 -0
  71. pharmadata/_data/pharmaverseadam/admh.parquet +0 -0
  72. pharmadata/_data/pharmaverseadam/adnv_neuro.parquet +0 -0
  73. pharmadata/_data/pharmaverseadam/adoe_ophtha.parquet +0 -0
  74. pharmadata/_data/pharmaverseadam/adpc.parquet +0 -0
  75. pharmadata/_data/pharmaverseadam/adpp.parquet +0 -0
  76. pharmadata/_data/pharmaverseadam/adppk.parquet +0 -0
  77. pharmadata/_data/pharmaverseadam/adrs_onco.parquet +0 -0
  78. pharmadata/_data/pharmaverseadam/adsl.parquet +0 -0
  79. pharmadata/_data/pharmaverseadam/adsl_vaccine.parquet +0 -0
  80. pharmadata/_data/pharmaverseadam/adtpet_neuro.parquet +0 -0
  81. pharmadata/_data/pharmaverseadam/adtr_onco.parquet +0 -0
  82. pharmadata/_data/pharmaverseadam/adtte_onco.parquet +0 -0
  83. pharmadata/_data/pharmaverseadam/advfq_ophtha.parquet +0 -0
  84. pharmadata/_data/pharmaverseadam/advs.parquet +0 -0
  85. pharmadata/_data/pharmaverseadam/advs_metabolic.parquet +0 -0
  86. pharmadata/_data/pharmaverseadam/advs_peds.parquet +0 -0
  87. pharmadata/_data/pharmaversesdtm/_collection.json +6 -0
  88. pharmadata/_data/pharmaversesdtm/_meta.json +7518 -0
  89. pharmadata/_data/pharmaversesdtm/ae.parquet +0 -0
  90. pharmadata/_data/pharmaversesdtm/ae_ophtha.parquet +0 -0
  91. pharmadata/_data/pharmaversesdtm/ag_neuro.parquet +0 -0
  92. pharmadata/_data/pharmaversesdtm/be.parquet +0 -0
  93. pharmadata/_data/pharmaversesdtm/ce_vaccine.parquet +0 -0
  94. pharmadata/_data/pharmaversesdtm/cm.parquet +0 -0
  95. pharmadata/_data/pharmaversesdtm/dm.parquet +0 -0
  96. pharmadata/_data/pharmaversesdtm/dm_metabolic.parquet +0 -0
  97. pharmadata/_data/pharmaversesdtm/dm_neuro.parquet +0 -0
  98. pharmadata/_data/pharmaversesdtm/dm_peds.parquet +0 -0
  99. pharmadata/_data/pharmaversesdtm/dm_vaccine.parquet +0 -0
  100. pharmadata/_data/pharmaversesdtm/ds.parquet +0 -0
  101. pharmadata/_data/pharmaversesdtm/eg.parquet +0 -0
  102. pharmadata/_data/pharmaversesdtm/ex.parquet +0 -0
  103. pharmadata/_data/pharmaversesdtm/ex_ophtha.parquet +0 -0
  104. pharmadata/_data/pharmaversesdtm/ex_vaccine.parquet +0 -0
  105. pharmadata/_data/pharmaversesdtm/face_vaccine.parquet +0 -0
  106. pharmadata/_data/pharmaversesdtm/is_ada.parquet +0 -0
  107. pharmadata/_data/pharmaversesdtm/is_vaccine.parquet +0 -0
  108. pharmadata/_data/pharmaversesdtm/lb.parquet +0 -0
  109. pharmadata/_data/pharmaversesdtm/lb_metabolic.parquet +0 -0
  110. pharmadata/_data/pharmaversesdtm/lb_neuro.parquet +0 -0
  111. pharmadata/_data/pharmaversesdtm/lb_onco_pcwg3.parquet +0 -0
  112. pharmadata/_data/pharmaversesdtm/mb.parquet +0 -0
  113. pharmadata/_data/pharmaversesdtm/mh.parquet +0 -0
  114. pharmadata/_data/pharmaversesdtm/ms.parquet +0 -0
  115. pharmadata/_data/pharmaversesdtm/nv_neuro.parquet +0 -0
  116. pharmadata/_data/pharmaversesdtm/oe_ophtha.parquet +0 -0
  117. pharmadata/_data/pharmaversesdtm/pc.parquet +0 -0
  118. pharmadata/_data/pharmaversesdtm/pp.parquet +0 -0
  119. pharmadata/_data/pharmaversesdtm/qs_metabolic.parquet +0 -0
  120. pharmadata/_data/pharmaversesdtm/qs_ophtha.parquet +0 -0
  121. pharmadata/_data/pharmaversesdtm/rs_onco.parquet +0 -0
  122. pharmadata/_data/pharmaversesdtm/rs_onco_ca125.parquet +0 -0
  123. pharmadata/_data/pharmaversesdtm/rs_onco_imwg.parquet +0 -0
  124. pharmadata/_data/pharmaversesdtm/rs_onco_irecist.parquet +0 -0
  125. pharmadata/_data/pharmaversesdtm/rs_onco_lymphoma.parquet +0 -0
  126. pharmadata/_data/pharmaversesdtm/rs_onco_pcwg3.parquet +0 -0
  127. pharmadata/_data/pharmaversesdtm/rs_onco_recist.parquet +0 -0
  128. pharmadata/_data/pharmaversesdtm/sc_ophtha.parquet +0 -0
  129. pharmadata/_data/pharmaversesdtm/sdg_db.parquet +0 -0
  130. pharmadata/_data/pharmaversesdtm/smq_db.parquet +0 -0
  131. pharmadata/_data/pharmaversesdtm/suppae.parquet +0 -0
  132. pharmadata/_data/pharmaversesdtm/suppce_vaccine.parquet +0 -0
  133. pharmadata/_data/pharmaversesdtm/suppdm.parquet +0 -0
  134. pharmadata/_data/pharmaversesdtm/suppdm_vaccine.parquet +0 -0
  135. pharmadata/_data/pharmaversesdtm/suppds.parquet +0 -0
  136. pharmadata/_data/pharmaversesdtm/suppex_vaccine.parquet +0 -0
  137. pharmadata/_data/pharmaversesdtm/suppface_vaccine.parquet +0 -0
  138. pharmadata/_data/pharmaversesdtm/suppis_vaccine.parquet +0 -0
  139. pharmadata/_data/pharmaversesdtm/suppnv_neuro.parquet +0 -0
  140. pharmadata/_data/pharmaversesdtm/supprs_onco_ca125.parquet +0 -0
  141. pharmadata/_data/pharmaversesdtm/supprs_onco_imwg.parquet +0 -0
  142. pharmadata/_data/pharmaversesdtm/supptr_onco.parquet +0 -0
  143. pharmadata/_data/pharmaversesdtm/sv.parquet +0 -0
  144. pharmadata/_data/pharmaversesdtm/tr_onco.parquet +0 -0
  145. pharmadata/_data/pharmaversesdtm/tr_onco_recist.parquet +0 -0
  146. pharmadata/_data/pharmaversesdtm/ts.parquet +0 -0
  147. pharmadata/_data/pharmaversesdtm/tu_onco.parquet +0 -0
  148. pharmadata/_data/pharmaversesdtm/tu_onco_recist.parquet +0 -0
  149. pharmadata/_data/pharmaversesdtm/vs.parquet +0 -0
  150. pharmadata/_data/pharmaversesdtm/vs_metabolic.parquet +0 -0
  151. pharmadata/_data/pharmaversesdtm/vs_peds.parquet +0 -0
  152. pharmadata/_data/pharmaversesdtm/vs_vaccine.parquet +0 -0
  153. pharmadata/cdiscpilotadam/__init__.py +136 -0
  154. pharmadata/cdiscpilotadam/__init__.pyi +647 -0
  155. pharmadata/cdiscpilotsdtm/__init__.py +136 -0
  156. pharmadata/cdiscpilotsdtm/__init__.pyi +845 -0
  157. pharmadata/pharmaverseadam/__init__.py +136 -0
  158. pharmadata/pharmaverseadam/__init__.pyi +2690 -0
  159. pharmadata/pharmaversesdtm/__init__.py +136 -0
  160. pharmadata/pharmaversesdtm/__init__.pyi +1772 -0
  161. pharmadata/py.typed +0 -0
  162. pharmadata-0.1.0.dist-info/METADATA +71 -0
  163. pharmadata-0.1.0.dist-info/RECORD +166 -0
  164. pharmadata-0.1.0.dist-info/WHEEL +4 -0
  165. pharmadata-0.1.0.dist-info/licenses/LICENSE +177 -0
  166. pharmadata-0.1.0.dist-info/licenses/NOTICE +139 -0
@@ -0,0 +1,139 @@
1
+ """Context-local output format for dataset attributes.
2
+
3
+ Each thread and asyncio task carries its own format, so a switch never leaks.
4
+ Re-exported by the top-level package; the state lives here to avoid an import
5
+ cycle.
6
+ """
7
+
8
+ from __future__ import annotations
9
+
10
+ from contextlib import contextmanager
11
+ from contextvars import ContextVar
12
+ from typing import TYPE_CHECKING, Literal, get_args
13
+
14
+ if TYPE_CHECKING:
15
+ from collections.abc import Generator
16
+
17
+ OutputFormat = Literal["arrow", "polars", "pandas"]
18
+
19
+ _output_format: ContextVar[OutputFormat] = ContextVar(
20
+ "pharmadata_output_format", default="polars"
21
+ )
22
+
23
+
24
+ def get_output_format() -> OutputFormat:
25
+ """Return the current dataset output format.
26
+
27
+ Context-local: the one set in this thread or asyncio task, or the default
28
+ ``"polars"``.
29
+
30
+ Returns
31
+ -------
32
+ OutputFormat
33
+ ``"arrow"``, ``"polars"`` (the default) or ``"pandas"``.
34
+
35
+ Examples
36
+ --------
37
+ >>> pharmadata.get_output_format()
38
+ 'polars'
39
+ """
40
+ return _output_format.get()
41
+
42
+
43
+ def set_output_arrow() -> None:
44
+ """Return datasets and metadata as pyarrow Tables for the current context.
45
+
46
+ This is the zero-copy format: the shipped parquet is read into an
47
+ immutable ``pyarrow.Table``, which is what the ``"arrow"`` output hands
48
+ back directly.
49
+
50
+ Notes
51
+ -----
52
+ Context-local: applies only to the current thread or asyncio task.
53
+
54
+ Examples
55
+ --------
56
+ >>> pharmadata.set_output_arrow()
57
+ >>> tbl = pharmadata.pharmaverseadam.adsl
58
+ >>> type(tbl).__module__.split(".")[0]
59
+ 'pyarrow'
60
+ >>> pharmadata.set_output_polars() # restore the default
61
+ """
62
+ _output_format.set("arrow")
63
+
64
+
65
+ def set_output_polars() -> None:
66
+ """Return dataset attributes as polars DataFrames for the current context.
67
+
68
+ This is the default output format. Call :func:`set_output_pandas` to switch.
69
+
70
+ Notes
71
+ -----
72
+ Context-local: applies only to the current thread or asyncio task.
73
+
74
+ Examples
75
+ --------
76
+ >>> pharmadata.set_output_pandas()
77
+ >>> df = pharmadata.pharmaverseadam.adsl
78
+ >>> type(df).__module__.split(".")[0]
79
+ 'pandas'
80
+ >>> pharmadata.set_output_polars()
81
+ >>> pharmadata.get_output_format()
82
+ 'polars'
83
+ """
84
+ _output_format.set("polars")
85
+
86
+
87
+ def set_output_pandas() -> None:
88
+ """Return dataset attributes as pandas DataFrames for the current context.
89
+
90
+ See :func:`set_output_polars` for the context-locality notes.
91
+
92
+ Examples
93
+ --------
94
+ >>> pharmadata.set_output_pandas()
95
+ >>> df = pharmadata.pharmaverseadam.adsl
96
+ >>> type(df).__module__.split(".")[0]
97
+ 'pandas'
98
+ >>> pharmadata.set_output_polars() # restore the default
99
+ """
100
+ _output_format.set("pandas")
101
+
102
+
103
+ @contextmanager
104
+ def use_output_format(name: OutputFormat) -> Generator[None, None, None]:
105
+ """Use *name* as the dataset output format for a ``with`` block.
106
+
107
+ The previous format is restored on exit, including when the block raises.
108
+ The switch is context-local.
109
+
110
+ Parameters
111
+ ----------
112
+ name : OutputFormat
113
+ The format to use inside the block: ``"arrow"``, ``"polars"`` or
114
+ ``"pandas"``.
115
+
116
+ Raises
117
+ ------
118
+ ValueError
119
+ If *name* is not ``"arrow"``, ``"polars"`` or ``"pandas"``.
120
+
121
+ Examples
122
+ --------
123
+ >>> with pharmadata.output_format("pandas"):
124
+ ... df = pharmadata.pharmaverseadam.adsl
125
+ ... type(df).__module__.split(".")[0]
126
+ 'pandas'
127
+ >>> pharmadata.get_output_format() # restored on exit
128
+ 'polars'
129
+ """
130
+ formats = get_args(OutputFormat)
131
+ if name not in formats:
132
+ spelled = ", ".join(repr(fmt) for fmt in formats)
133
+ msg = f"output format must be one of {spelled}, got {name!r}"
134
+ raise ValueError(msg)
135
+ token = _output_format.set(name)
136
+ try:
137
+ yield
138
+ finally:
139
+ _output_format.reset(token)
@@ -0,0 +1,6 @@
1
+ {
2
+ "title": "ADaM (CDISC pilot)",
3
+ "source": "the CDISC SDTM/ADaM Pilot Project",
4
+ "url": "https://github.com/phuse-org/phuse-scripts/tree/master/data/adam",
5
+ "example": "adsl"
6
+ }