Skip to main content

Tealeaf

license

A simple interface for readable Python HTTP clients

  • No dependencies
  • Simple and readable
  • Lightweight

A simple example

import tealeaf

# simple POST
api = tealeaf.Api('https://www.postman-echo.com')
api.post('/post', {"message": "hello tealeaf"}).json()

# Using bearer tokens
api = tealeaf.Api(
    'https://www.postman-echo.com',
    credentials=tealeaf.BearerToken('my-jwt')
)
api.post('/post', {"message": "hello authorized tealeaf"}).json()

Integrates easily with pydantic for data validation

import tealeaf
from pydantic import BaseModel

class Message(BaseModel):
    message: str

class EchoResponse(BaseModel):
    data: Message
    url: str

# simple POST
api = tealeaf.Api('https://www.postman-echo.com')
echo = api \
    .post('/post', {"message": "hello tealeaf"}) \
    .astype(EchoResponse)

print(repr(echo))
>>> EchoResponse(data=Message(message='hello tealeaf'), url='https://www.postman-echo.com/post')

An example with custom auth algorithm:

# define a custom auth handler with a `preprocess_request` method
class CustomCredentialHandler(tealeaf.ApiCredential):

    def __init__(self, secret: str):
        super().__init__()
        self.__secret = secret

    def preprocess_request(self, request: tealeaf.Request):
        # your algorithm goes here and modifies the request object
        request.headers['secret-key'] = f'{request.data}{self.__secret}'
        return request

api = tealeaf.Api(
    'https://www.postman-echo.com',
    credentials=CustomCredentialHandler('my-super-secret')
)
api.post('/post', {"message": "hello custom tealeaf auth"}).json()

Metadata

Release files for tealeaf 0.0.9

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

Source distribution (sdist)

Source distribution for tealeaf 0.0.9
File Size Uploaded
tealeaf-0.0.9.tar.gz 7.1 kB Details

Built distribution (wheel)

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

Total release size: 13.5 kB

Release files / tealeaf-0.0.9.tar.gz

Download URL tealeaf-0.0.9.tar.gz
Size 7.1 kB
Tags Source
SHA-256 checksum
How to use checksums
621520b9f88f56155e51e97b35e2a26f7dddc7d8d1fa8cd0c90ad5b1253ad5b6
BLAKE2b-256 checksum
How to use checksums
8f9cec1656a6a8e22e3253461c8da6415e6ed2df8bab7091428ce089e28ea2ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/4.0.2 CPython/3.11.5

Release files / tealeaf-0.0.9-py3-none-any.whl

Download URL tealeaf-0.0.9-py3-none-any.whl
Size 6.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2ac2c0092938e98826869e4e81c057351357d5cf6758fe1013040f2f784672f6
BLAKE2b-256 checksum
How to use checksums
c117f95be46db3fc39f4293fa95243043c5b8903440909b3fbbb58fae1963cab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/4.0.2 CPython/3.11.5

Release history Release notifications | RSS feed

This release

0.0.9 This release

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

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