Metadata-Version: 2.4
Name: uproot-science
Version: 0.2.0
Summary: A modern experimental framework
Author-email: "Max R. P. Grossmann" <max@uproot.science>, Holger Gerhardt <holger@uproot.science>
License-Expression: LGPL-3.0-or-later
Project-URL: Homepage, https://uproot.science/
Project-URL: Repository, https://github.com/mrpg/uproot
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: FastAPI
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Typing :: Typed
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: httpx<0.29,>=0.28.1
Requires-Dist: appendmuch<0.2,>=0.1.0
Requires-Dist: click<9,>=8.4.2
Requires-Dist: fastapi<1,>=0.136.3
Requires-Dist: itsdangerous<3,>=2.2.0
Requires-Dist: jinja2<4,>=3.1.6
Requires-Dist: mistune<4,>=3.3.2
Requires-Dist: orjson<4,>=3.11.8
Requires-Dist: packaging<27,>=24
Requires-Dist: pydantic<3,>=2.13.4
Requires-Dist: strictyaml<2,>=1.7.3
Requires-Dist: python-dotenv<2,>=1.2.2
Requires-Dist: python-multipart<0.1,>=0.0.32
Requires-Dist: setproctitle<2,>=1.3.7
Requires-Dist: sortedcontainers<3,>=2.4.0
Requires-Dist: uvicorn<1,>=0.49.0
Requires-Dist: watchdog<7,>=6.0.0
Requires-Dist: websockets<17,>=16.0
Requires-Dist: wtforms<4,>=3.2.2
Provides-Extra: pg
Requires-Dist: appendmuch[pg]<0.2,>=0.1.0; extra == "pg"
Provides-Extra: dev
Requires-Dist: bandit; extra == "dev"
Requires-Dist: black; extra == "dev"
Requires-Dist: deptry; extra == "dev"
Requires-Dist: isort; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: pip-tools; extra == "dev"
Requires-Dist: pre-commit; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-asyncio; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: radon; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Requires-Dist: twine; extra == "dev"
Provides-Extra: iban
Requires-Dist: schwifty<2027,>=2026.3.0; extra == "iban"
Dynamic: license-file

# uproot

[![Examples](https://img.shields.io/badge/uproot--examples-blue)](https://github.com/mrpg/uproot-examples)
[![Website](https://img.shields.io/badge/Website-uproot.science-green)](https://uproot.science/)
[![PyPI](https://img.shields.io/badge/PyPI-uproot--science-red)](https://pypi.org/project/uproot-science/)

*uproot* is a modern software framework for developing and conducting browser-based behavioral experiments. This includes studies with hundreds of participants such as large-scale surveys and experiments with real-time interaction between the participants.

> [!IMPORTANT]
> This repository contains an initial development version.

*uproot* is 100% [Free/Libre Open Source Software](https://en.wikipedia.org/wiki/Free_and_open-source_software), and contains only unencumbered code. All libraries, styles and fonts are included and served locally (no CDNs). *uproot* believes in best practices.

## Getting started

*uproot* recommends the use of [uv](https://docs.astral.sh/uv/), a fast Python package manager that handles Python installation and the installation of dependencies automatically. See [alternative installation with pip](INSTALLATION-PIP.md) if you prefer traditional tools.

### 1. Install uv

**macOS/Linux:**
```console
curl -LsSf https://astral.sh/uv/install.sh | sh
```

**Windows (PowerShell):**
```powershell
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
```

See [uv installation docs](https://docs.astral.sh/uv/getting-started/installation/) for more options.

### 2. Create a project

```console
uv run --with uproot-science uproot setup my_project
```

### 3. Run *uproot*

```console
cd my_project
uv run uproot run
```

You may then log in to the admin area, or [run an example experiment](http://127.0.0.1:8000/room/test/).
You can find other examples [here](https://github.com/mrpg/uproot-examples).
Needless to say, step (1) only needs to be done once, and step (2) only when creating a new project.

## License

*uproot* is licensed under the GNU LGPL version 3.0, or, at your option, any later version. Among other things, that means: (1) there is no warranty; (2) changes to uproot’s core are automatically licensed under the LGPL as well, (3) you are free to license your own experiments under whatever license you deem appropriate, or no license at all.

© [Max R. P. Grossmann](https://max.pm/), [Holger Gerhardt](https://www.econ.uni-bonn.de/iame/en/team/gerhardt), et al., 2026. A full alphabetical overview of contributors may be viewed [here](CONTRIBUTORS.md).

## Citation

[You are ethically obliged to cite specialist software used to create research outputs.](https://peerj.com/articles/cs-86/) Please cite the following paper:

```bibtex
 @unpublished{uproot,
  author = {Grossmann, Max~R.~P. and Gerhardt, Holger},
  title = {uproot: A Software Framework for Behavioral Experiments},
  year = {2026},
  note = {Unpublished manuscript}
}
```

## Contributing

Interested in contributing? See our [Contributing Guide](CONTRIBUTING.md) for development setup, coding standards, and workflow information.
