Skip to main content

A Python DOMJudge API wrapper

Project description

pydomjudge

A Python wrapper for the DOMJudge API. Easily interact with DOMJudge contest management systems from your Python code.

Features

  • Full API coverage for DOMJudge v4 endpoints
  • Pydantic models for all major entities (Contest, Team, Submission, etc.)
  • Simple, unified client interface (DOMJudge)
  • Supports authentication, file uploads, and more
  • Designed for scripting, automation, and integration

Planned / To Do

  • Add more automatic tests and CI integration
  • Expand documentation and usage examples
  • Add more API endpoint coverage as DOMJudge evolves
  • Improve error handling and type hints

Installation

pip install pydomjudge

Or clone this repository and install locally:

git clone https://github.com/xivqn/pydomjudge.git
cd pydomjudge
pip install .

Requirements

  • Python 3.8+
  • DOMJudge instance (for API access)
  • See requirements.txt for dependencies

Usage Example

from pydomjudge import DOMJudge

dj = DOMJudge("http://localhost/domjudge", "admin", "adminpass")
contests = dj.get_all_contests()
for contest in contests:
    print(contest.name, contest.start_time)

Project Structure

pydomjudge/
├── src/pydomjudge/
│   ├── domjudge.py         # Main unified client
│   ├── clients/           # API endpoint clients (teams, users, problems, etc.)
│   └── models/            # Pydantic models for API objects
├── tests/                 # Unit and integration tests
├── requirements.txt       # Runtime dependencies
├── requirements-test.txt  # Test/development dependencies
├── pyproject.toml         # Build system and metadata
├── README.md              # This file

Testing

Install test dependencies:

pip install -r requirements-test.txt

Run tests:

pytest

License

This project is licensed under the GNU GPL v3. See LICENSE for details.

Links

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

pydomjudge-0.1.0.tar.gz (22.8 kB view details)

Uploaded Source

Built Distribution

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

pydomjudge-0.1.0-py3-none-any.whl (30.7 kB view details)

Uploaded Python 3

File details

Details for the file pydomjudge-0.1.0.tar.gz.

File metadata

  • Download URL: pydomjudge-0.1.0.tar.gz
  • Upload date:
  • Size: 22.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.2

File hashes

Hashes for pydomjudge-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d40d867f3567c35f5f343a82e56999ca0d82fd79cd76328020c1f5a09b7622c9
MD5 66aa25b6862cde23e1090fc80d33bbdc
BLAKE2b-256 c86bb33298ca54c0d5e1a30e327269993e268d6db0b412e8b7c607dd64853da5

See more details on using hashes here.

File details

Details for the file pydomjudge-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pydomjudge-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 30.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.2

File hashes

Hashes for pydomjudge-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a2dda1c996e7da2519c7c1fa7f3c61420e20981e69fbcee4d8907fb145d8fe4d
MD5 370b2cde86145a6d4ec24053dd55f621
BLAKE2b-256 c32c8306ee3754112e9cd535c1bb4a7be9713baf2eaf14c3a4e44fd8bce33687

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