Skip to main content

Utilities for the program organization of conferences using Pretalx

Project description

Pytanis logo

Pytanis includes a Pretalx client and all the tooling you need for conferences using Pretalx, from handling the initial call for papers to creating the final program.

CI/CD CI - Test Coverage CD - Build Docs - Build
Package PyPI - Version PyPI - Downloads PyPI - Python Version
Details Project generated with PyScaffold Hatch project code style - black types - Mypy imports - isort License - MIT GitHub Sponsors

Trivia: The name Pytanis is a reference to Prytanis using the typical py prefix of Python tools. Prytanis was the name given to the leading members of the government of a city (polis) in ancient Greece. Offices that used this title usually had responsibility for presiding over councils of some kind, which met in the Prytaneion. Romani ite domum!

Features

  • simple configuration management with a config folder in your home directory, just like many other tools do
  • easily access Google Sheets, potentially filled by some Google Forms, and download sheets as data frames
  • easy to use Pretalx client that returns proper Python objects thanks to the power of pydantic
  • simple HelpDesk client for batch mails, e.g. to your reviewers
  • awesome documentation with best practices for the program committee of any community-based conference
  • tools to assign proposals to reviewers based on constraints like preferences
  • tools to support the final selection process of proposals
  • tools to support the creation of the final program schedule

Getting started

To install Pytanis simple run:

pip install pytanis

or to install all recommended additional dependencies:

pip install 'pytanis[all]'

Then create a configuration file and directory in your user's home directory. For Linux/MacOS/Unix use ~/.pytanis/config.toml and for Windows $HOME\.pytanis\config.toml, where $HOME is e.g. C:\Users\yourusername\. Use your favourite editor to open config.toml within the .pytanis directory and add the following content:

[Pretalx]
api_token = "932ndsf9uk32nf9sdkn3454532nj32jn"

[Google]
client_secret_json = "client_secret.json"
token_json = "token.json"

[HelpDesk]
account = "934jcjkdf-39df-9df-93kf-934jfhuuij39fd"
entity_id = "email@host.com"
token = "dal:Sx4id934C3Y-X934jldjdfjk"

where you need to replace the dummy values in the sections [Pretalx] and [HelpDesk] accordingly.

Retrieving the Credentials and Tokens

  • Google: Follow the Python Quickstart for the Google API to generate and download the file client_secret.json. Move it to the ~/.pytanis folder as client_secret.json. The file token.json will be automatically generated later. Note that config.toml references those two files relative to its own location.
  • Pretalx: The API token can be found in the Pretalx user settings.
  • HelpDesk: Login to the LiveChat Developer Console then go to Tools » Personal Access Tokens. Choose Create new token +, enter a the name Pytanis, select all scopes and confirm. In the following screen copy the Account ID, Entity ID and Token and paste them into config.toml. In case there is any trouble with livechat, contact a helpdesk admin.

Development

This section is only relevant if you want to contribute to Pytanis itself. Your help is highly appreciated!

After having cloned this repository:

  1. install hatch globally, e.g. pipx install hatch,
  2. install pre-commit globally, e.g. pipx install pre-commit,
  3. [only once] run hatch config set dirs.env.virtual .direnv to let VS Code find your virtual environments.

and then you are already set up to start hacking. Use hatch run to do everything you would normally do in a virtual environment, e.g. hatch run test:juptyer lab to start JupyterLab in the default environment, hatch run test:cov for unit tests and coverage (like tox) or hatch run docs:serve to build & serve the documentation. For code hygiene, execute hatch run lint:all in order to run ruff and mypy or hatch run lint:fix to automatically fix formatting issues. Check out the [tool.hatch.envs] sections in pyproject.toml to learn about other commands. If you really must enter a virtual environment, use hatch shell to enter the default environment.

Documentation

The documentation is made with Material for MkDocs and is hosted by GitHub Pages. Your help to extend the documentation, especially in the context of using Pytanis for community conferences like PyConDE, EuroPython, etc. is highly appreciated.

License

Pytanis is distributed under the terms of the MIT license.

Credits

To start this project off a lot of inspiration and code was taken from Alexander Hendorf and Matthias Hofmann.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytanis-0.6.tar.gz (22.6 kB view details)

Uploaded Source

Built Distribution

pytanis-0.6-py3-none-any.whl (25.7 kB view details)

Uploaded Python 3

File details

Details for the file pytanis-0.6.tar.gz.

File metadata

  • Download URL: pytanis-0.6.tar.gz
  • Upload date:
  • Size: 22.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for pytanis-0.6.tar.gz
Algorithm Hash digest
SHA256 20fff8062221d51a0c64043ee91a0edcaa54304de2b17d3378ec5f74e62e0c85
MD5 eb71c35875d0784d31854fbce442023f
BLAKE2b-256 8fb1c0399ebff2a060deae1b03e343b0f053e0432709873defcce42d60ac6c1d

See more details on using hashes here.

File details

Details for the file pytanis-0.6-py3-none-any.whl.

File metadata

  • Download URL: pytanis-0.6-py3-none-any.whl
  • Upload date:
  • Size: 25.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for pytanis-0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 3f466b7a081a5d11b7cfd46554730ca6bba299b2c0f06f23570fc5aa25bf11fb
MD5 8c37c0def28c7377d0e44616dcb1f784
BLAKE2b-256 4a0a65403a1824543411d0cf55762cc692fdf363e6f6fd4787d2d1b78a6dc7d2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page