pyral
Python toolkit for Rally REST API
What it is and what it does
pyral wraps the Rally REST API in a Python interface that abstracts away JSON serialization and HTTP plumbing. You instantiate a Rally client with your subscription credentials, then call methods like get(), create(), update(), and delete() to work with artifacts (TestCase, Defect, UserStory, etc.) as Python objects. The toolkit's main convenience is transparent object traversal: when you access a related attribute like story.Tasks, pyral automatically fetches the linked objects without requiring explicit API calls in your code.
The package is built on requests and targets modern Python (3.12+). It's stable and production-ready but aging—the last release was in October 2025. It's most useful for teams already invested in Rally who need to automate bulk operations, integrate Rally data into other systems, or script repetitive project-management tasks from Python.
Use it for:
- Bulk-create or bulk-update defects, test cases, or user stories in Rally from a CSV or database source.
- Query Rally artifacts by criteria (e.g., all open defects in a project) and export results to a report or external system.
- Automate workspace and project enumeration for multi-tenant Rally subscriptions.
- Integrate Rally data into CI/CD pipelines—e.g., link build artifacts to test results or defects.
- Migrate or synchronize Rally data with another project-management or issue-tracking system.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
pyral is a Python toolkit that lets you create, read, update, and delete artifacts and entities in Rally via its REST API, with automatic lazy-loading of related objects.
Yes, if you use Rally and need programmatic access to its data. The package is stable, has low install friction, and carries no known vulnerabilities. The main caveat is age: last release was 287 days ago, so verify that the Rally REST API hasn't drifted and that the package still meets your Python version and requests requirements before committing to production use.
Install
pyral on PyPI
pip
pip install pyraluv
uv add pyralpoetry
poetry add pyralInstalling pyral
Before you install
Low install friction with a single dependency on requests. The package is in production/stable status but aging—last release was 287 days ago. Repository remains active with recent commits and modest community engagement (93 stars).
License in practice
BSD-3-Clause is permissive, allowing commercial and private use with minimal restrictions; you must include a copy of the license and retain copyright notices.
Quickstart
pip install pyral
import sys
from pyral import Rally, rallyWorkset
server, user, password, apikey, workspace, project = rallyWorkset([])
rally = Rally(server, user, password, apikey=apikey, workspace=workspace, project=project)
response = rally.get('TestCase', fetch=True, query='FormattedID = "TC1184"')
for testcase in response:
print(testcase.Name)
Requires requests 2.32.x or better; requires valid Rally subscription credentials (server, user/password or API key, workspace, project).
Verify before relying
- Whether the package works with Python versions beyond 3.14 or if 3.14 is the current maximum supported.
- Current state of Rally REST API compatibility—whether the toolkit remains aligned with recent Rally service changes.
- Whether lazy-loading of related objects (e.g., story.Tasks) incurs automatic API calls and potential rate-limit implications.
Package facts
| License | BSD-3-Clause (permissive) |
| Python support | supports the current Python release (>=3.12) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — requests |
| Maintenance | aging — 287 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 81,342/month — #14,235 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pyral-1.7.0-py3-none-any.whl
Keywords: rally, api
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
restflyRESTfly is a framework for building libraries…
permissive · top 15,000 on PyPI
rocksetPython client library for the Rockset API,…
permissive · top 15,000 on PyPI
apispecGenerates OpenAPI specification documents from…
permissive · top 5,000 on PyPI
qase-api-clientPython client library for the Qase TestOps API…
unclear · top 15,000 on PyPI
pdbeccdutilsParse and process small molecule definitions…
permissive · top 15,000 on PyPI
openhands-toolsProvides Python and REST APIs for building AI…
unclear · top 5,000 on PyPI
yarlyarl provides an immutable URL class for…
permissive · top 100 on PyPI
gooddata-api-clientProvides a Python client for the GoodData API,…
permissive · top 15,000 on PyPI
pytest-testrailA pytest plugin that integrates test execution…
permissive · top 15,000 on PyPI
torchrlTorchRL is a PyTorch-native toolkit for…
unclear · top 5,000 on PyPI