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 | |
Package | |
Details |
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!
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 protected]"
token = "dal:Sx4id934C3Y-X934jldjdfjk"
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).
Google:
client_secret.json
.~/.pytanis
folder as client_secret.json
. The file token.json
will be automatically generatedconfig.toml
references those two files relative to its own location.client_secret.json
.~/.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 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. 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 Agents »
Name of your agent 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 Request 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.
This section is only relevant if you want to contribute to Pytanis itself. Your help is highly appreciated!
After having cloned this repository:
pipx install hatch
,pipx install pre-commit
,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 juptyer lab
to start JupyterLab in the default environment, hatch run 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.
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.
Pytanis is distributed under the terms of the MIT license. To start this project off a lot of inspiration and code was taken from Alexander Hendorf and Matthias Hofmann.