Skip to main content

No project description provided

Project description

ortler

Ortler is a powerful and versatile command-line tool for managing OpenReview venues. It provides commands for syncing venue data to a local cache, managing committee recruitment, tracking submissions, and sending emails via the OpenReview API. It is named after OpenReview and a beautiful mountain in the Alps.

image

Quickstart

Installation and updates

# Install with pipx (recommended)
pipx install ortler

# Get latest version
pipx upgrade ortler

# Or install in editable mode for development
git clone git@github.com:ad-freiburg/ortler.git
cd ortler
pipx install -e .

# Get latest version from git:w
git pull

Configuration

Create a .env file with your OpenReview credentials (see .env.example):

OPENREVIEW_API_URL=https://api2.openreview.net
OPENREVIEW_USERNAME=your.email@example.com
OPENREVIEW_PASSWORD=your-password
OPENREVIEW_VENUE_ID=Your/Venue/ID
OPENREVIEW_IMPERSONATE_GROUP=Your/Venue/ID
MAIL_FROM=Your Choice <your-choice@openreview.net>

If you want to use ortler mail with --recipients-from-sparql-query, you also need to and provide the API of a SPARQL endpoint (e.g., QLever), and a username and password in case that endpoint requires authentication:

QLEVER_LINK_API=https://qlever.dev/api/link/
QLEVER_QUERY_API=https://qlever.dev/api/...
QLEVER_QUERY_API_USERNAME=username
QLEVER_QUERY_API_PASSWORD=password

If you want to use commands that require a language model (like ortler ai-review), you also need to provide an API key for that model:

OPENAI_API_KEY=your-openai-api-key

Usage

ortler --help                  # Show all commands
ortler COMMAND --help          # Show help for a specific command

Commands

update

Sync venue data from OpenReview to a local cache. The cache enables fast queries and RDF export without repeated API calls.

# Incremental update (only fetch changes since last update)
ortler update

# Preview what would be updated
ortler update --dry-run

# Force re-fetch of all submissions
ortler update --recache submissions

# Force re-fetch of all profiles with publications
ortler update --recache profiles-with-publications

# Force re-fetch only of the specified profiles
ortler update --profiles ~John_Doe1 ~Jane_Doe2

# Force re-fetch of everything
ortler update --recache all

dump

Export all cached data as RDF (Turtle format) for use with SPARQL engines like QLever.

# Output to stdout
ortler dump

# Output to file
ortler dump --output data.ttl

The RDF output includes triples for the following; just run it and inspect if yourself, Turtle is quite readable for humans:

  • Committee members (reviewers, area chairs, senior area chairs) with roles and status
  • Submissions with titles, abstracts, authors, and status
  • Profile data including affiliations and publications

recruitment

Manage committee membership (reviewers, area chairs, senior area chairs).

# Search for a user and show their group memberships
ortler recruitment --search user@example.com
ortler recruitment --search ~John_Doe1

# Add users to the reviewer pool
ortler recruitment --role pc --add invited user1@example.com user2@example.com

# Remove a user from the invited list
ortler recruitment --role pc --remove invited user@example.com

# Set reduced review load for a member
ortler recruitment --role pc --set-reduced-load ~John_Doe1 2

Roles: pc (reviewers), spc (area chairs), ac (senior area chairs)

mail

Send emails via the OpenReview API. Emails are defined in a file with headers and body separated by a blank line.

# Preview email without sending
ortler mail message.txt --dry-run

# Send to a test recipient first
ortler mail message.txt --test-run ~Your_Profile1

# Send emails with recipients from a SPARQL query
ortler mail message.txt --recipients-from-sparql-query QUERY_HASH

Example email file; the {{name}} placeholder will be replaced with the recipient's first name if that information is available, otherwise the full name. If the Cc is provided, a single email is sent to that address, with the list of recipients, a link to the SPARQL query, and the mail body.

To: ~Recipient_Profile1 ~Recipient_Profile2 ...
Subject: Your subject line
Cc: ...
Reply-To: ...

Dear {{name}},

This is an email from the `ortler` tool, we hope that you like it!

Best regards,

The robots from the future

Example with SPARQL query; the {{name}} placeholder will be replaced just like above; the list of recipients is determined by the first column of the query result, where all values are profile IRIs; other columns of the result can be used as additional placeholders in the email body, where, for example, {{titles}} will be replaced by the content of the ?titles variable.

# Query: https://qlever.dev/name-of-endpoint/QUERY_HASH
To: (will be replaced by profile IDs from query result)
Subject: Your submissions
Cc: ...
Reply-To: ...

Dear {{name}},

You have submitted the following papers, just so you know:

{{titles}}

Best regards ...

Other Commands

Run ortler --help to see all available commands and ortler COMMAND --help for details on each command.

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

ortler-0.2.9.tar.gz (45.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ortler-0.2.9-py3-none-any.whl (51.5 kB view details)

Uploaded Python 3

File details

Details for the file ortler-0.2.9.tar.gz.

File metadata

  • Download URL: ortler-0.2.9.tar.gz
  • Upload date:
  • Size: 45.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for ortler-0.2.9.tar.gz
Algorithm Hash digest
SHA256 21e1cc54d5caa42ff1111b85ded841880b7e5f4603e01924629638aa6b894613
MD5 c98818321734c097cb37c8d55201b8fd
BLAKE2b-256 5b8f382d401dcb71032b9e09d331e6ce46cf360f411f2c1ca138e2f3247b7b63

See more details on using hashes here.

File details

Details for the file ortler-0.2.9-py3-none-any.whl.

File metadata

  • Download URL: ortler-0.2.9-py3-none-any.whl
  • Upload date:
  • Size: 51.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for ortler-0.2.9-py3-none-any.whl
Algorithm Hash digest
SHA256 c236d9bc7be6af4fcc333afd9c152c489479e3687b5a1aec53075c92b73d1ff8
MD5 126850d5d040d58fafa877e1b0a3f02c
BLAKE2b-256 f712d20115f2ea14c5f639e007adb7da52ad5a4edee6664f2d71a3ef2a461faf

See more details on using hashes here.

Supported by

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