SkillAgentSearch skills...

Pytanis

๐Ÿ”ฑ Python client for Pretalx

Install / Use

/learn @PioneersHub/Pytanis
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<div align="center"> <img src="https://raw.githubusercontent.com/pioneershub/pytanis/main/docs/assets/images/logo.svg" alt="Pytanis logo" width="500" role="img"> </div>

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. <br/>

| | | |---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | CI/CD | CI - Test Coverage CD - Build Docs - Build | | Package | PyPI - Version PyPI - Downloads PyPI - Python Version | | Details | Hatch project linting - Ruff types - Mypy 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

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

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"
service_user_authentication = false

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

[Mailgun]
token = "gguzdgshbdhjsb87239njsa"
from_address = "PyCon DE & PyData Program Committee <program25@mg.pycon.de>"
reply_to = "program25@pycon.de"

where you need to replace the dummy values in the sections [Pretalx] and [HelpDesk] accordingly. Note that service_user_authentication is not required to be set if authentication via a service user is not necessary (see [GSpread using Service Account] for more details).

Retrieving the Credentials and Tokens

  • Google:

    • For end users: 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.
    • For any automation project: Follow [GSpread using Service Account] to generate and download the file client_secret.json. Move it to the ~/.pytanis folder as client_secret.json. Also make sure to set service_user_authentication = true in your ~/.pytanis/config.toml.
  • Pretalx: The API token can be found in the [Pretalx user settings].

  • HelpDesk: Login to the [LiveChat Developer Console] then go to <kbd>Tools</kbd> ยป <kbd>Personal Access Tokens</kbd>. Choose <kbd>Create new token +</kbd>, 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. Also note that the Account ID from your token is the Agent ID needed when you create a ticket. The Team ID you get from [HelpDesk] then <kbd>Agents</kbd> ยป <kbd>Name of your agent</kbd> and the final part of the URL shown now.

    When setting up your agent the first time, you also need to go to [LiveChat] then log in with your Helpdesk team credentials and click <kbd>Request</kbd> to get an invitation. An admin of [LiveChat] needs to confirm this and add you as role admin. Then, check [HelpDesk] to receive the invitation and accept.

Development

This section is only relevant if you want to contribute to Pytanis itself. Your help is highly appreciated! There are two options for local development.

Whilst both option are valid, the Devcontainer setup is the most convenient, as all dependencies are preconfigured.

Devcontainer Setup

After having cloned this repository:

  1. Make sure to have a local installation of [Docker] and [VS Code] running.
  2. Open [VS Code] and make sure to have the [Dev Containers Extension] from Microsoft installed.
  3. Open the cloned project in [VS Code] and from the bottom right corner confirm to open the project to be opened within the Devcontainer.

If you miss any dependencies check out the devcontainer.json within the .devcontainer folder. Otherwise, the right python environment with [pipx], [hatch], [pre-commit] and the initialization steps for the Hatch environments, are already included.

For the use of the pytanis libary some credentials and tokens are necessary (see the "Getting Started" section). With the Devcontainer setup the config.yaml is already created. Just navigate to ~/.pytanis/config.toml and update the file with the corresponding tokens.

Conventional Setup

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 a

View on GitHub
GitHub Stars29
CategoryCustomer
Updated27d ago
Forks8

Languages

Python

Security Score

95/100

Audited on Mar 9, 2026

No findings