Skip to main content

Build status Docs status Coverage status Version status Downloads status


Package supports sync and async syntax with same code base.

from quickbuild import AsyncQBClient, QBClient

Documentation

Package Read the Docs

Official REST API documentation

Available REST API Clients

Installation

pip3 install quickbuild

Examples

Get server version:

from quickbuild import QBClient

client = QBClient('https://server', 'user', 'password')
version = client.system.get_version()
print(version)

Get server version in async way (be careful AsyncQBClient must be called inside async function):

import asyncio
from quickbuild import AsyncQBClient

async def main():
    client = AsyncQBClient('https://server', 'user', 'password')
    version = await client.system.get_version()
    print(version)
    await client.close()

asyncio.run(main())

Stop build:

from quickbuild import QBClient

client = QBClient('https://server', 'user', 'password')
client.builds.stop(123)

Update credentials handler:

import asyncio
import aiohttp
from quickbuild import AsyncQBClient

async def get_credentials():
    async with aiohttp.ClientSession() as session:
        async with session.get('...') as resp:
            response = await resp.json()
            return response['user'], response['password']

async def main():
    client = AsyncQBClient('http://server', 'user', 'password',
                            auth_update_callback=get_credentials)

    # let's suppose credentials are valid now
    print(await client.builds.get_status(12345))

    # now, after some time, password of user somehow changed, so our callback
    # will be called, new credentials will be using for retry and future here
    # we get also correct build info instead of QBUnauthorizedError exception
    print(await client.builds.get_status(12345))

    await client.close()

asyncio.run(main())

Content type

By default QuickBuild returns XML content, but starting from 10 version it also has native support of JSON content, usually it’s much more convenient to use native Python types (parsed XML) instead of pure XML string.

So, that is why three types of content were indtoduced, this type and behavior can be set globally for client instances, and can be rewritten for some methods.

  • PARSE (using by default)
    • GET: parse XML to native Python types.

    • POST: pure XML string.

  • XML
    • GET: return native XML without any transformations.

    • POST: pure XML string.

  • JSON (QuickBuild 10+)
    • GET: parsed JSON string.

    • POST: dumps object to JSON string.

Development

It’s possible to run QuickBuild community edition locally using docker:

Build locally:

docker build .  -f docker/QB10.Dockerfile -t quickbuild:10
docker run --restart always --name qb10 -d -p 8810:8810 quickbuild:10

Or run prepared image:

docker run --restart always --name qb10 -d -p 8810:8810 pbelskiy/quickbuild:10

Then open http://localhost:8810/

Testing

Prerequisites: tox

Then just run tox, all dependencies and checks will run automatically

tox

Contributing

Feel free for any contributions.

Metadata

Release files for quickbuild 0.18.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for quickbuild 0.18.0
File Size Uploaded
quickbuild-0.18.0.tar.gz 42.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for quickbuild 0.18.0
File Interpreter ABI Platform
quickbuild-0.18.0-py3-none-any.whl Python 3 none any Details

Total release size: 107.7 kB

Release files / quickbuild-0.18.0.tar.gz

Download URL quickbuild-0.18.0.tar.gz
Size 42.3 kB
Tags Source
SHA-256 checksum
How to use checksums
3cf51fe3a4456bc7c56b9fa5dda8775f8dd6606470ad6b3b55c63a741279e59a
BLAKE2b-256 checksum
How to use checksums
87a0a8fcefa5aab375d2e6ce5a4c6239bee82e1677a9d900093f3c4be58b7f2d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.1

Release files / quickbuild-0.18.0-py3-none-any.whl

Download URL quickbuild-0.18.0-py3-none-any.whl
Size 65.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cb3ae88b860abf63f62cd4bc6e595a23f2c19311cfe04d94e8a3f2aa25ca5c67
BLAKE2b-256 checksum
How to use checksums
a287381a4d82d89188a900cc727c56a824ea74bf437dd226c2367dc613346f47
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.1

Release history Release notifications | RSS feed

This release

0.18.0 This release

2 release files

0.17.0

2 release files

0.16.0

2 release files

0.15.0

2 release files

0.14.0

2 release files

0.13.0

2 release files

0.12.0

2 release files

0.11.0

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page