Skip to main content

A Python DOMJudge API wrapper

Project description

pydomjudge

PyPI Python Versions License

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.post1.tar.gz (47.4 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.post1-py3-none-any.whl (43.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pydomjudge-0.1.0.post1.tar.gz
  • Upload date:
  • Size: 47.4 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.post1.tar.gz
Algorithm Hash digest
SHA256 b031d30bb00277d3b3a21b24d73cc8524e2d913933fdf6c3d034c7bedf43f867
MD5 0abe532bb6cb5ff0572d19dae94f2709
BLAKE2b-256 f7e52d14dc920394addd67962a2d591aeed8f5925eb76452ac1e21bf3bcd7d35

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydomjudge-0.1.0.post1-py3-none-any.whl
Algorithm Hash digest
SHA256 7425d0645edd944083bfecf59a1a9d104e7d5039fc965a7c43750e69a9f4625e
MD5 7c13563c8077811829107c55c59fc7e9
BLAKE2b-256 997e375f9416d428fcd3f8ad23062034a7d6c546758dbac4fe55dc35bd0fef45

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