%global _empty_manifest_terminate_build 0 Name: python-alfred3-interact Version: 0.2.3 Release: 1 Summary: Components for interactive experiments in the alfred3 framework. License: MIT License URL: https://github.com/jobrachem/alfred3-interact Source0: https://mirrors.nju.edu.cn/pypi/web/packages/11/c5/df170636dcb6176e6f31ab7bc8f6405c3ca1c9b7d24972e70704209d84f3/alfred3_interact-0.2.3.tar.gz BuildArch: noarch Requires: python3-alfred3 Requires: python3-bleach Requires: python3-packaging Requires: python3-pytest Requires: python3-pre-commit Requires: python3-black Requires: python3-flake8 Requires: python3-dotenv Requires: python3-mongomock Requires: python3-bs4 Requires: python3-selenium %description # alfred3-interact: Interactive web-experiments in alfred3 ![GitHub](https://img.shields.io/github/license/jobrachem/alfred3-interact) [![DOI](https://zenodo.org/badge/340368707.svg)](https://zenodo.org/badge/latestdoi/340368707) [![Run tests](https://github.com/jobrachem/alfred3-interact/actions/workflows/pytest.yml/badge.svg)](https://github.com/jobrachem/alfred3-interact/actions/workflows/pytest.yml) [![pre-commit](https://github.com/jobrachem/alfred3-interact/actions/workflows/pre-commit.yml/badge.svg)](https://github.com/jobrachem/alfred3-interact/actions/workflows/pre-commit.yml) Alfred3-interact is a plugin for [alfred3](https://github.com/ctreffe/alfred). It allows for the creation of interactive web experiments, predominantly in the social sciences. As prerequisites, you need to have **Python 3.7** or newer and **alfred3 v2.2.0** or newer installed. ## Installation ``` $ pip3 install alfred3_interact ``` ## Documentation Documentation for alfred3_interact is avaialable here: [Link to docs](https://jobrachem.github.io/alfred3-interact/build/html/index.html) ## Quick example Below is an example `script.py` for creating an experiment with an asynchronous exchange of data between participants matching: 1. Initialize a group spec and the `alfred3_interact.MatchMaker` during experiment setup 2. Use a `alfred3_interact.WaitingPage` for matchmaking inside its `wait_for` hook method. 3. Find a group via `MatchMaker.match` and bind it to the experiment plugins object. 4. Now the group object is available in sections, pages, and elements through the experiment session object. You can use it to access data from other participants in the same group. ```python # script.py import alfred3 as al import alfred3_interact as ali exp = al.Experiment() @exp.setup def setup(exp): spec = ali.SequentialSpec("role1", "role2", nslots = 10, name="mygroup") exp.plugins.mm = ali.MatchMaker(spec, exp=exp) @exp.member class Match(ali.WaitingPage): def wait_for(self): group = self.exp.plugins.mm.match() self.exp.plugins.group = group return True @exp.member class Success(al.Page): title = "Match successful" def on_exp_access(self): group = self.exp.plugins.group txt = f"You have successfully matched to role: {group.me.role}" self += al.Text(txt, align="center") if __name__ == "__main__": exp.run() ``` The demo experiment can be started by executing the following command from the experiment directory (i.e. the directory in which you placed the `script.py`): ``` $ alfred3 run ``` ## Citation Alfred3-interact was developed for research at the department for economic and social psychology, Georg-August-University Göttingen. **If you are publishing research conducted using alfred3, the following citation is required:** >Brachem, J. & Treffenstädt, C. (2021). Alfred3-interact - Interactive web experiments in alfred3. (Version x.x.x). Göttingen, Germany: https://doi.org/10.5281/zenodo.1437219 %package -n python3-alfred3-interact Summary: Components for interactive experiments in the alfred3 framework. Provides: python-alfred3-interact BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-alfred3-interact # alfred3-interact: Interactive web-experiments in alfred3 ![GitHub](https://img.shields.io/github/license/jobrachem/alfred3-interact) [![DOI](https://zenodo.org/badge/340368707.svg)](https://zenodo.org/badge/latestdoi/340368707) [![Run tests](https://github.com/jobrachem/alfred3-interact/actions/workflows/pytest.yml/badge.svg)](https://github.com/jobrachem/alfred3-interact/actions/workflows/pytest.yml) [![pre-commit](https://github.com/jobrachem/alfred3-interact/actions/workflows/pre-commit.yml/badge.svg)](https://github.com/jobrachem/alfred3-interact/actions/workflows/pre-commit.yml) Alfred3-interact is a plugin for [alfred3](https://github.com/ctreffe/alfred). It allows for the creation of interactive web experiments, predominantly in the social sciences. As prerequisites, you need to have **Python 3.7** or newer and **alfred3 v2.2.0** or newer installed. ## Installation ``` $ pip3 install alfred3_interact ``` ## Documentation Documentation for alfred3_interact is avaialable here: [Link to docs](https://jobrachem.github.io/alfred3-interact/build/html/index.html) ## Quick example Below is an example `script.py` for creating an experiment with an asynchronous exchange of data between participants matching: 1. Initialize a group spec and the `alfred3_interact.MatchMaker` during experiment setup 2. Use a `alfred3_interact.WaitingPage` for matchmaking inside its `wait_for` hook method. 3. Find a group via `MatchMaker.match` and bind it to the experiment plugins object. 4. Now the group object is available in sections, pages, and elements through the experiment session object. You can use it to access data from other participants in the same group. ```python # script.py import alfred3 as al import alfred3_interact as ali exp = al.Experiment() @exp.setup def setup(exp): spec = ali.SequentialSpec("role1", "role2", nslots = 10, name="mygroup") exp.plugins.mm = ali.MatchMaker(spec, exp=exp) @exp.member class Match(ali.WaitingPage): def wait_for(self): group = self.exp.plugins.mm.match() self.exp.plugins.group = group return True @exp.member class Success(al.Page): title = "Match successful" def on_exp_access(self): group = self.exp.plugins.group txt = f"You have successfully matched to role: {group.me.role}" self += al.Text(txt, align="center") if __name__ == "__main__": exp.run() ``` The demo experiment can be started by executing the following command from the experiment directory (i.e. the directory in which you placed the `script.py`): ``` $ alfred3 run ``` ## Citation Alfred3-interact was developed for research at the department for economic and social psychology, Georg-August-University Göttingen. **If you are publishing research conducted using alfred3, the following citation is required:** >Brachem, J. & Treffenstädt, C. (2021). Alfred3-interact - Interactive web experiments in alfred3. (Version x.x.x). Göttingen, Germany: https://doi.org/10.5281/zenodo.1437219 %package help Summary: Development documents and examples for alfred3-interact Provides: python3-alfred3-interact-doc %description help # alfred3-interact: Interactive web-experiments in alfred3 ![GitHub](https://img.shields.io/github/license/jobrachem/alfred3-interact) [![DOI](https://zenodo.org/badge/340368707.svg)](https://zenodo.org/badge/latestdoi/340368707) [![Run tests](https://github.com/jobrachem/alfred3-interact/actions/workflows/pytest.yml/badge.svg)](https://github.com/jobrachem/alfred3-interact/actions/workflows/pytest.yml) [![pre-commit](https://github.com/jobrachem/alfred3-interact/actions/workflows/pre-commit.yml/badge.svg)](https://github.com/jobrachem/alfred3-interact/actions/workflows/pre-commit.yml) Alfred3-interact is a plugin for [alfred3](https://github.com/ctreffe/alfred). It allows for the creation of interactive web experiments, predominantly in the social sciences. As prerequisites, you need to have **Python 3.7** or newer and **alfred3 v2.2.0** or newer installed. ## Installation ``` $ pip3 install alfred3_interact ``` ## Documentation Documentation for alfred3_interact is avaialable here: [Link to docs](https://jobrachem.github.io/alfred3-interact/build/html/index.html) ## Quick example Below is an example `script.py` for creating an experiment with an asynchronous exchange of data between participants matching: 1. Initialize a group spec and the `alfred3_interact.MatchMaker` during experiment setup 2. Use a `alfred3_interact.WaitingPage` for matchmaking inside its `wait_for` hook method. 3. Find a group via `MatchMaker.match` and bind it to the experiment plugins object. 4. Now the group object is available in sections, pages, and elements through the experiment session object. You can use it to access data from other participants in the same group. ```python # script.py import alfred3 as al import alfred3_interact as ali exp = al.Experiment() @exp.setup def setup(exp): spec = ali.SequentialSpec("role1", "role2", nslots = 10, name="mygroup") exp.plugins.mm = ali.MatchMaker(spec, exp=exp) @exp.member class Match(ali.WaitingPage): def wait_for(self): group = self.exp.plugins.mm.match() self.exp.plugins.group = group return True @exp.member class Success(al.Page): title = "Match successful" def on_exp_access(self): group = self.exp.plugins.group txt = f"You have successfully matched to role: {group.me.role}" self += al.Text(txt, align="center") if __name__ == "__main__": exp.run() ``` The demo experiment can be started by executing the following command from the experiment directory (i.e. the directory in which you placed the `script.py`): ``` $ alfred3 run ``` ## Citation Alfred3-interact was developed for research at the department for economic and social psychology, Georg-August-University Göttingen. **If you are publishing research conducted using alfred3, the following citation is required:** >Brachem, J. & Treffenstädt, C. (2021). Alfred3-interact - Interactive web experiments in alfred3. (Version x.x.x). Göttingen, Germany: https://doi.org/10.5281/zenodo.1437219 %prep %autosetup -n alfred3-interact-0.2.3 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-alfred3-interact -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Tue May 30 2023 Python_Bot - 0.2.3-1 - Package Spec generated