pbirs-client
A typed Python client for the Power BI Report Server REST API, with NTLM authentication and resource-based API helpers.
Requirements
- Python 3.14 or later
- A Power BI Report Server account
Installation
uv add pbirs-client
Usage
Set the connection details:
export BI_URL="https://reports.example.com"
export BI_USERNAME="DOMAIN\\username"
export BI_PASSWORD="password"
Create a client and call an API resource:
from pbirs_client import BIClient
with BIClient.from_env() as client:
items = client.catalog.get_catalog_items()
print(items)
Pass documented query options through params:
with BIClient.from_env() as client:
reports = client.power_bi_reports.get_power_bi_reports(
params={"$select": "Id,Name,Path"},
)
Write operations are disabled by default. Enable them explicitly when needed:
client = BIClient.from_env(allow_mutation=True)
Development
Install the development dependencies and run the offline checks:
uv sync --group dev
just all
The test report measures Python statement coverage. To separately verify API endpoint coverage against the current Microsoft Learn catalog, run the network-dependent audit:
just api-coverage
To smoke-test non-mutating API calls against a server configured in .env, run:
just smoke
The recipe uses the connection settings from .env, even when BI environment variables are already exported. The script reports response sizes without printing response data or credentials.
Documentation
Metadata
Release files for pbirs-client 0.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pbirs_client-0.0.3.tar.gz | 11.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pbirs_client-0.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 34.8 kB
Release files / pbirs_client-0.0.3.tar.gz
| Download URL | pbirs_client-0.0.3.tar.gz |
|---|---|
| Size | 11.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c83d32f39e325c99ab71ee980a22d03f2e20d244480270c287cc6fd730c1f50f
|
|
BLAKE2b-256 checksum How to use checksums |
da59fba4c7dc1ea3cdee3bcd9828cd185c0e656cd42b58d18416ebf55849b73d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / pbirs_client-0.0.3-py3-none-any.whl
| Download URL | pbirs_client-0.0.3-py3-none-any.whl |
|---|---|
| Size | 23.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
314559b4559052cae94f12adc62f943cde3e1b47f854f20376b68709e8907fba
|
|
BLAKE2b-256 checksum How to use checksums |
f64d2ad5f69940926e32336869d724b4f0c7c565a4e15ea2e8b87a9c94a47413
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|