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.
- pharmadata/__init__.py +41 -0
- pharmadata/_core/__init__.py +1 -0
- pharmadata/_core/collection.py +119 -0
- pharmadata/_core/data.py +295 -0
- pharmadata/_core/meta.py +159 -0
- pharmadata/_core/output_format.py +139 -0
- pharmadata/_data/cdiscpilotadam/_collection.json +6 -0
- pharmadata/_data/cdiscpilotadam/_meta.json +3140 -0
- pharmadata/_data/cdiscpilotadam/adadas.parquet +0 -0
- pharmadata/_data/cdiscpilotadam/adae.parquet +0 -0
- pharmadata/_data/cdiscpilotadam/adcibc.parquet +0 -0
- pharmadata/_data/cdiscpilotadam/adlbc.parquet +0 -0
- pharmadata/_data/cdiscpilotadam/adlbcpv.parquet +0 -0
- pharmadata/_data/cdiscpilotadam/adlbh.parquet +0 -0
- pharmadata/_data/cdiscpilotadam/adlbhpv.parquet +0 -0
- pharmadata/_data/cdiscpilotadam/adlbhy.parquet +0 -0
- pharmadata/_data/cdiscpilotadam/adnpix.parquet +0 -0
- pharmadata/_data/cdiscpilotadam/adsl.parquet +0 -0
- pharmadata/_data/cdiscpilotadam/adtte.parquet +0 -0
- pharmadata/_data/cdiscpilotadam/advs.parquet +0 -0
- pharmadata/_data/cdiscpilotsdtm/_collection.json +6 -0
- pharmadata/_data/cdiscpilotsdtm/_meta.json +3321 -0
- pharmadata/_data/cdiscpilotsdtm/ae.parquet +0 -0
- pharmadata/_data/cdiscpilotsdtm/cm.parquet +0 -0
- pharmadata/_data/cdiscpilotsdtm/dm.parquet +0 -0
- pharmadata/_data/cdiscpilotsdtm/ds.parquet +0 -0
- pharmadata/_data/cdiscpilotsdtm/ex.parquet +0 -0
- pharmadata/_data/cdiscpilotsdtm/lbch.parquet +0 -0
- pharmadata/_data/cdiscpilotsdtm/lbhe.parquet +0 -0
- pharmadata/_data/cdiscpilotsdtm/lbur.parquet +0 -0
- pharmadata/_data/cdiscpilotsdtm/mh.parquet +0 -0
- pharmadata/_data/cdiscpilotsdtm/qsco.parquet +0 -0
- pharmadata/_data/cdiscpilotsdtm/qsda.parquet +0 -0
- pharmadata/_data/cdiscpilotsdtm/qsgi.parquet +0 -0
- pharmadata/_data/cdiscpilotsdtm/qshi.parquet +0 -0
- pharmadata/_data/cdiscpilotsdtm/qsmm.parquet +0 -0
- pharmadata/_data/cdiscpilotsdtm/qsni.parquet +0 -0
- pharmadata/_data/cdiscpilotsdtm/relrec.parquet +0 -0
- pharmadata/_data/cdiscpilotsdtm/sc.parquet +0 -0
- pharmadata/_data/cdiscpilotsdtm/se.parquet +0 -0
- pharmadata/_data/cdiscpilotsdtm/suppae.parquet +0 -0
- pharmadata/_data/cdiscpilotsdtm/suppdm.parquet +0 -0
- pharmadata/_data/cdiscpilotsdtm/suppds.parquet +0 -0
- pharmadata/_data/cdiscpilotsdtm/supplbch.parquet +0 -0
- pharmadata/_data/cdiscpilotsdtm/supplbhe.parquet +0 -0
- pharmadata/_data/cdiscpilotsdtm/supplbur.parquet +0 -0
- pharmadata/_data/cdiscpilotsdtm/sv.parquet +0 -0
- pharmadata/_data/cdiscpilotsdtm/ta.parquet +0 -0
- pharmadata/_data/cdiscpilotsdtm/te.parquet +0 -0
- pharmadata/_data/cdiscpilotsdtm/ti.parquet +0 -0
- pharmadata/_data/cdiscpilotsdtm/ts.parquet +0 -0
- pharmadata/_data/cdiscpilotsdtm/tv.parquet +0 -0
- pharmadata/_data/cdiscpilotsdtm/vs.parquet +0 -0
- pharmadata/_data/pharmaverseadam/_collection.json +6 -0
- pharmadata/_data/pharmaverseadam/_meta.json +14421 -0
- pharmadata/_data/pharmaverseadam/adab.parquet +0 -0
- pharmadata/_data/pharmaverseadam/adae.parquet +0 -0
- pharmadata/_data/pharmaverseadam/adapet_neuro.parquet +0 -0
- pharmadata/_data/pharmaverseadam/adbcva_ophtha.parquet +0 -0
- pharmadata/_data/pharmaverseadam/adce_vaccine.parquet +0 -0
- pharmadata/_data/pharmaverseadam/adcm.parquet +0 -0
- pharmadata/_data/pharmaverseadam/adcoeq_metabolic.parquet +0 -0
- pharmadata/_data/pharmaverseadam/adeg.parquet +0 -0
- pharmadata/_data/pharmaverseadam/adex.parquet +0 -0
- pharmadata/_data/pharmaverseadam/adface_vaccine.parquet +0 -0
- pharmadata/_data/pharmaverseadam/adis_vaccine.parquet +0 -0
- pharmadata/_data/pharmaverseadam/adlb.parquet +0 -0
- pharmadata/_data/pharmaverseadam/adlb_metabolic.parquet +0 -0
- pharmadata/_data/pharmaverseadam/adlb_neuro.parquet +0 -0
- pharmadata/_data/pharmaverseadam/adlbhy.parquet +0 -0
- pharmadata/_data/pharmaverseadam/admh.parquet +0 -0
- pharmadata/_data/pharmaverseadam/adnv_neuro.parquet +0 -0
- pharmadata/_data/pharmaverseadam/adoe_ophtha.parquet +0 -0
- pharmadata/_data/pharmaverseadam/adpc.parquet +0 -0
- pharmadata/_data/pharmaverseadam/adpp.parquet +0 -0
- pharmadata/_data/pharmaverseadam/adppk.parquet +0 -0
- pharmadata/_data/pharmaverseadam/adrs_onco.parquet +0 -0
- pharmadata/_data/pharmaverseadam/adsl.parquet +0 -0
- pharmadata/_data/pharmaverseadam/adsl_vaccine.parquet +0 -0
- pharmadata/_data/pharmaverseadam/adtpet_neuro.parquet +0 -0
- pharmadata/_data/pharmaverseadam/adtr_onco.parquet +0 -0
- pharmadata/_data/pharmaverseadam/adtte_onco.parquet +0 -0
- pharmadata/_data/pharmaverseadam/advfq_ophtha.parquet +0 -0
- pharmadata/_data/pharmaverseadam/advs.parquet +0 -0
- pharmadata/_data/pharmaverseadam/advs_metabolic.parquet +0 -0
- pharmadata/_data/pharmaverseadam/advs_peds.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/_collection.json +6 -0
- pharmadata/_data/pharmaversesdtm/_meta.json +7518 -0
- pharmadata/_data/pharmaversesdtm/ae.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/ae_ophtha.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/ag_neuro.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/be.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/ce_vaccine.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/cm.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/dm.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/dm_metabolic.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/dm_neuro.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/dm_peds.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/dm_vaccine.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/ds.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/eg.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/ex.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/ex_ophtha.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/ex_vaccine.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/face_vaccine.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/is_ada.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/is_vaccine.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/lb.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/lb_metabolic.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/lb_neuro.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/lb_onco_pcwg3.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/mb.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/mh.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/ms.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/nv_neuro.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/oe_ophtha.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/pc.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/pp.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/qs_metabolic.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/qs_ophtha.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/rs_onco.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/rs_onco_ca125.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/rs_onco_imwg.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/rs_onco_irecist.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/rs_onco_lymphoma.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/rs_onco_pcwg3.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/rs_onco_recist.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/sc_ophtha.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/sdg_db.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/smq_db.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/suppae.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/suppce_vaccine.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/suppdm.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/suppdm_vaccine.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/suppds.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/suppex_vaccine.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/suppface_vaccine.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/suppis_vaccine.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/suppnv_neuro.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/supprs_onco_ca125.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/supprs_onco_imwg.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/supptr_onco.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/sv.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/tr_onco.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/tr_onco_recist.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/ts.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/tu_onco.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/tu_onco_recist.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/vs.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/vs_metabolic.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/vs_peds.parquet +0 -0
- pharmadata/_data/pharmaversesdtm/vs_vaccine.parquet +0 -0
- pharmadata/cdiscpilotadam/__init__.py +136 -0
- pharmadata/cdiscpilotadam/__init__.pyi +647 -0
- pharmadata/cdiscpilotsdtm/__init__.py +136 -0
- pharmadata/cdiscpilotsdtm/__init__.pyi +845 -0
- pharmadata/pharmaverseadam/__init__.py +136 -0
- pharmadata/pharmaverseadam/__init__.pyi +2690 -0
- pharmadata/pharmaversesdtm/__init__.py +136 -0
- pharmadata/pharmaversesdtm/__init__.pyi +1772 -0
- pharmadata/py.typed +0 -0
- pharmadata-0.1.0.dist-info/METADATA +71 -0
- pharmadata-0.1.0.dist-info/RECORD +166 -0
- pharmadata-0.1.0.dist-info/WHEEL +4 -0
- pharmadata-0.1.0.dist-info/licenses/LICENSE +177 -0
- 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)
|