Metadata-Version: 2.5
Name: maidr
Version: 1.21.0
Summary: Multimodal Access and Interactive Data Representations
Project-URL: Homepage, https://xability.github.io/py-maidr
Project-URL: Repository, https://github.com/xability/py-maidr
Author-email: JooYoung Seo <jseo1005@illinois.edu>, Saairam Venkatesh <saairam2@illinois.edu>
License-Expression: GPL-3.0-or-later
License-File: LICENSE
Keywords: accessibility,blind,braille,data representation,low vision,multimodal,sonification,tactile,visual impairments,visualization
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: Financial and Insurance Industry
Classifier: Intended Audience :: Healthcare Industry
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Scientific/Engineering :: Visualization
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Text Processing :: Markup :: HTML
Requires-Python: >=3.9
Requires-Dist: htmltools>=0.5
Requires-Dist: lxml>=5.1.0
Requires-Dist: matplotlib>=3.8
Requires-Dist: mplfinance>=0.12.10b0
Requires-Dist: numpy>=1.26
Requires-Dist: scipy>=1.11
Requires-Dist: seaborn>=0.13
Requires-Dist: wrapt<2,>=1.16.0
Provides-Extra: altair
Requires-Dist: altair>=5.0; extra == 'altair'
Provides-Extra: jupyter
Requires-Dist: ipykernel>=6.0.0; extra == 'jupyter'
Requires-Dist: jupyter<2,>=1.0.0; extra == 'jupyter'
Provides-Extra: plotly
Requires-Dist: plotly>=5.0; extra == 'plotly'
Provides-Extra: shiny
Requires-Dist: shiny>=1.0; extra == 'shiny'
Provides-Extra: streamlit
Requires-Dist: streamlit>=1.30; extra == 'streamlit'
Provides-Extra: test
Requires-Dist: altair>=5.0; extra == 'test'
Requires-Dist: cssselect>=1.2; extra == 'test'
Requires-Dist: flask>=3.0.0; extra == 'test'
Requires-Dist: jupyter<2,>=1.0.0; extra == 'test'
Requires-Dist: matplotlib>=3.8; extra == 'test'
Requires-Dist: plotly>=5.0; extra == 'test'
Requires-Dist: pytest-mock<4,>=3.12.0; extra == 'test'
Requires-Dist: pytest<8,>=7.3.2; extra == 'test'
Requires-Dist: seaborn>=0.13; extra == 'test'
Requires-Dist: shiny>=1.0; extra == 'test'
Provides-Extra: visualization
Requires-Dist: flask>=3.0.0; extra == 'visualization'
Requires-Dist: matplotlib>=3.8; extra == 'visualization'
Requires-Dist: seaborn>=0.13; extra == 'visualization'
Requires-Dist: statsmodels>=0.14.4; extra == 'visualization'
Description-Content-Type: text/markdown

<div align="center">

<img src="https://raw.githubusercontent.com/xability/maidr/refs/heads/main/docs/logo.svg" width="350px" alt="A stylized MAIDR logo, with curved characters for M A, a hand pointing for an I, the D character, and R represented in braille."/>

<hr style="color:transparent" />
<br />
</div>

# py-maidr

Python binder for maidr library

## Install and Upgrade

```sh
# install the latest release from PyPI
pip install -U maidr
```

```sh
# or install the development version from GitHub
pip install -U git+https://github.com/xability/py-maidr.git
```

## User Guide

Please visit the [user guide](https://xability.github.io/py-maidr/) page.

## Offline and Restricted-Network Use

py-maidr loads its JavaScript from a CDN by default, and resolves the current published version so browsers cannot serve a stale cached copy. That costs one bounded outbound request, the first time a plot is rendered. `import maidr` itself makes no request.

If you work air-gapped, behind a proxy, or in CI:

```sh
export MAIDR_CDN_VERSION=bundled  # serve the version in this wheel, no lookup
export MAIDR_USE_CDN=false        # or skip the CDN entirely
```

`bundled` is usually the best choice for restricted networks: it emits an immutable
CDN URL — so browser caching still works correctly — without contacting anything.
It is also the only one of the two that covers **Altair** charts: the Altair adapter
has no offline path and always references the CDN, so `MAIDR_USE_CDN=false` does not
apply to it, while `MAIDR_CDN_VERSION=bundled` still removes the lookup.

See [Offline Use and the JavaScript Bundle](https://xability.github.io/py-maidr/#offline-use-and-the-javascript-bundle) for the full set of options.


## Example Code

We provide [some example code](https://github.com/xability/py-maidr/blob/main/example) for using py-maidr with matplotlib, seaborn, Jupyter Notebook, Quarto, Shiny, and Streamlit.

Shiny support requires the optional extra `pip install "maidr[shiny]"`, which
provides `output_maidr()` and `@render_maidr` in `maidr.widget.shiny`.
Streamlit support requires `pip install "maidr[streamlit]"`, which provides
`render_maidr()` and `maidr_html()` in `maidr.widget.streamlit`.
