Skip to main content

A client module for accessing the Trixel Lookup Service (API)

Project description

This python client module for the Trixel Lookup Service was entirely generated using openapi-pyhton-client.


trixellookupclient

A client library for accessing Trixel Lookup Service

Usage

First, create a client:

from trixellookupclient import Client

client = Client(base_url="https://api.example.com")

If the endpoints you're going to hit require authentication, use AuthenticatedClient instead:

from trixellookupclient import AuthenticatedClient

client = AuthenticatedClient(base_url="https://api.example.com", token="SuperSecretToken")

Now call your endpoint and use your models:

from trixellookupclient.models import MyDataModel
from trixellookupclient.api.my_tag import get_my_data_model
from trixellookupclient.types import Response

with client as client:
    my_data: MyDataModel = get_my_data_model.sync(client=client)
    # or if you need more info (e.g. status_code)
    response: Response[MyDataModel] = get_my_data_model.sync_detailed(client=client)

Or do the same thing with an async version:

from trixellookupclient.models import MyDataModel
from trixellookupclient.api.my_tag import get_my_data_model
from trixellookupclient.types import Response

async with client as client:
    my_data: MyDataModel = await get_my_data_model.asyncio(client=client)
    response: Response[MyDataModel] = await get_my_data_model.asyncio_detailed(client=client)

By default, when you're calling an HTTPS API it will attempt to verify that SSL is working correctly. Using certificate verification is highly recommended most of the time, but sometimes you may need to authenticate to a server (especially an internal server) using a custom certificate bundle.

client = AuthenticatedClient(
    base_url="https://internal_api.example.com", 
    token="SuperSecretToken",
    verify_ssl="/path/to/certificate_bundle.pem",
)

You can also disable certificate validation altogether, but beware that this is a security risk.

client = AuthenticatedClient(
    base_url="https://internal_api.example.com", 
    token="SuperSecretToken", 
    verify_ssl=False
)

Things to know:

  1. Every path/method combo becomes a Python module with four functions:

    1. sync: Blocking request that returns parsed data (if successful) or None
    2. sync_detailed: Blocking request that always returns a Request, optionally with parsed set if the request was successful.
    3. asyncio: Like sync but async instead of blocking
    4. asyncio_detailed: Like sync_detailed but async instead of blocking
  2. All path/query params, and bodies become method arguments.

  3. If your endpoint had any tags on it, the first tag will be used as a module name for the function (my_tag above)

  4. Any endpoint which did not have a tag will be in trixellookupclient.api.default

Advanced customizations

There are more settings on the generated Client class which let you control more runtime behavior, check out the docstring on that class for more info. You can also customize the underlying httpx.Client or httpx.AsyncClient (depending on your use-case):

from trixellookupclient import Client

def log_request(request):
    print(f"Request event hook: {request.method} {request.url} - Waiting for response")

def log_response(response):
    request = response.request
    print(f"Response event hook: {request.method} {request.url} - Status {response.status_code}")

client = Client(
    base_url="https://api.example.com",
    httpx_args={"event_hooks": {"request": [log_request], "response": [log_response]}},
)

# Or get the underlying httpx client to modify directly with client.get_httpx_client() or client.get_async_httpx_client()

You can even set the httpx client directly, but beware that this will override any existing settings (e.g., base_url):

import httpx
from trixellookupclient import Client

client = Client(
    base_url="https://api.example.com",
)
# Note that base_url needs to be re-set, as would any shared cookies, headers, etc.
client.set_httpx_client(httpx.Client(base_url="https://api.example.com", proxies="http://localhost:8030"))

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

trixellookupclient-0.2.0.tar.gz (16.5 kB view details)

Uploaded Source

Built Distribution

trixellookupclient-0.2.0-py3-none-any.whl (40.0 kB view details)

Uploaded Python 3

File details

Details for the file trixellookupclient-0.2.0.tar.gz.

File metadata

  • Download URL: trixellookupclient-0.2.0.tar.gz
  • Upload date:
  • Size: 16.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for trixellookupclient-0.2.0.tar.gz
Algorithm Hash digest
SHA256 f398e42357129f1d91129a06824fbc8fc8c51f812d8f1a42dfbb22f720b4e319
MD5 5fcfbc94b692d15f19e5c530c64a06f2
BLAKE2b-256 ffb61ef886cc400ad535c0cace972fe8e2e5e25b39637fe85e522f28b31404b1

See more details on using hashes here.

File details

Details for the file trixellookupclient-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for trixellookupclient-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e3f42cf5eb6e526c791a6f4f99650a9e437b538440785a78369d2433e5fdd6fe
MD5 dbf843031415525ee36e5cd4dfe79f73
BLAKE2b-256 2148367e7cd69b76936ac274bd2cd7012f288f2acc2d0e3568cae0a7e54701b5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page