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.txtfor 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d40d867f3567c35f5f343a82e56999ca0d82fd79cd76328020c1f5a09b7622c9
|
|
| MD5 |
66aa25b6862cde23e1090fc80d33bbdc
|
|
| BLAKE2b-256 |
c86bb33298ca54c0d5e1a30e327269993e268d6db0b412e8b7c607dd64853da5
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2dda1c996e7da2519c7c1fa7f3c61420e20981e69fbcee4d8907fb145d8fe4d
|
|
| MD5 |
370b2cde86145a6d4ec24053dd55f621
|
|
| BLAKE2b-256 |
c32c8306ee3754112e9cd535c1bb4a7be9713baf2eaf14c3a4e44fd8bce33687
|