Skip to main content

A Python client library for the BOS API with improved developer ergonomics and type safety

Project description

Python BOS

A Python client library for the BOS API with improved developer ergonomics and type safety.

Important Note

The BOS API is covered under an NDA signed by a Chautauqua Officer. The NDA may, by extension, cover this library. Its use should be limited to those covered under the NDA, namely CHQ employees.

Recent Improvements

Enhanced Developer Experience

The library has been significantly improved with structured data types that replace tuple-based parameters, providing:

  • Type Safety: Compile-time error detection and IDE validation
  • Self-Documenting API: Clear field names and structured parameters
  • IDE Support: Autocomplete, type hints, and go-to-definition

Example: Account Service Improvements

Old Approach (deprecated):

# Unclear tuple structure - what do these numbers mean?
filter_list = [(1, "john@example.com", 1)]
result = service.search_account(filter_list=filter_list)

New Approach (recommended):

from pybos.types import AccountFilter, SearchType

# Clear, type-safe structure
filter_obj = AccountFilter(
    object_type=1,
    value="john@example.com", 
    search_type=SearchType.EQUAL
)
result = service.search_account(filters=[filter_obj], active_only=True)

Complex Operations (using request objects):

from pybos.types import SearchAccountRequest, AccountFilter, SearchType

# For complex operations, create request objects directly
search_request = SearchAccountRequest(
    filters=[
        AccountFilter(1, "john@example.com", SearchType.EQUAL),
        AccountFilter(2, "Smith", SearchType.LIKE)
    ],
    active_only=True,
    dmg_category_list=["cat1", "cat2"]
)

result = service.search_account(**search_request.__dict__)

Installing

The Python BOS library can be installed through pip or pipenv using the git repository as a source. A read-only access token has been created to facilitate http access to the repository. This token and link should not be shared publicly.

Main Branch (Major Releases):

pipenv install git+https://oauth2:glpat-bHSfMffW14FbYDWFuyzs@gitlab.it.chq.org/IT/pybos.git@main#egg=pybos

Version specific tagging (corresponding to BOS versions) to be implemented at a later date.

BOS API Details

The BOS API is a SOAP API that provides WSDL information in XML file that denotes the structure of the requests and responses it expects as well as what operations are available.

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

chq_pybos-0.1.1.tar.gz (134.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chq_pybos-0.1.1-py3-none-any.whl (171.2 kB view details)

Uploaded Python 3

File details

Details for the file chq_pybos-0.1.1.tar.gz.

File metadata

  • Download URL: chq_pybos-0.1.1.tar.gz
  • Upload date:
  • Size: 134.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.26.0 CPython/3.12.3 Linux/6.6.87.2-microsoft-standard-WSL2

File hashes

Hashes for chq_pybos-0.1.1.tar.gz
Algorithm Hash digest
SHA256 6102160b38750535513dd41075add17daa9f0b3207967b3e3746e9a31b55911f
MD5 890f595fc1ab08622c120ba47866e0bf
BLAKE2b-256 08c7b79abf7fa339437fb7e04ed80ab02e527efb4f4ebb8f164e9be4f6ab42ce

See more details on using hashes here.

File details

Details for the file chq_pybos-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: chq_pybos-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 171.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.26.0 CPython/3.12.3 Linux/6.6.87.2-microsoft-standard-WSL2

File hashes

Hashes for chq_pybos-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a5a170c83cbdb1104bfdcf88a9112649743497a4ee65cf026dc8a5067af87670
MD5 5280c273009326450a718c47c0034dba
BLAKE2b-256 713aeef11bfc517d7bfdfdea2baa9e1b29e603d92a3cc7606343d3a00c75dd51

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