Skip to main content

A lightweight Postman-like client for Jupyter notebooks and Python projects.

Project description

postnote

PyPI version Python Versions

postnote is a lightweight Postman-like client for Jupyter notebooks and Python projects.
Make HTTP requests inline, preview curl commands, and display JSON or Polars DataFrames seamlessly.

✨ Features

  • Simple API for GET, POST, PUT, PATCH, DELETE
  • Inline curl preview for easy copy/paste
  • Pretty Markdown + JSON display inside Jupyter
  • Convert list responses directly into Polars DataFrames
  • Support for JSON payloads, query params, and multipart file uploads
  • Easy auth helpers (Bearer, Basic)

🚀 Installation

pip install postnote

📖 Usage

Basic example

from postnote import Request, RequestSettings

settings = RequestSettings(
    base_url="https://domain.com",
    api_port=443,
    api_version="v1",
    resource_name="users",
    headers={
        "Content-Type": "application/json",
        "X-Client-Key": "your-key",
        "X-Client-Secret": "your-secret",
    },
)

client = Request(settings)

# POST request with JSON payload
payload = {
    "first_name": "John",
    "last_name": "Doe",
    "email": "john.doe@example.com",
}
resp = client.post(payload=payload)

# GET request with query params
resp = client.get(params={"page": 1, "limit": 10})

Convert to Polars

If the response contains a list, you can render it directly as a Polars DataFrame:

resp = client.get(params={"page": 1}, to_polars=True)

File upload (multipart/form-data)

files = [("file", open("avatar.png", "rb"))]
resp = client.post(payload={"note": "upload"}, files=files, endpoint="upload")

Quick auth

client.set_bearer("your_token_here")
# or
client.set_basic("username", "password")

🔧 Development

Clone the repo and install in editable mode:

git clone https://github.com/daviguides/postnote.git
cd postnote
pip install -e ".[dev]"

Run tests:

pytest

📜 License

MIT License © 2025 Davi Guides

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

postnote-0.4.0.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

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

postnote-0.4.0-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file postnote-0.4.0.tar.gz.

File metadata

  • Download URL: postnote-0.4.0.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for postnote-0.4.0.tar.gz
Algorithm Hash digest
SHA256 96121d00460b586e6f04a38a303b2821e4e4f153b57f848431285d126a467788
MD5 11edd73a20312ef81cae233229b89973
BLAKE2b-256 2a833343829fea1eb5d8a6add78ebe142153017b1cd5e8f68c0ac74e20dfefb4

See more details on using hashes here.

Provenance

The following attestation bundles were made for postnote-0.4.0.tar.gz:

Publisher: publish-pypi.yml on daviguides/postnote

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file postnote-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: postnote-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 7.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for postnote-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 949dc583b8ed62db10bdc29b49c761b629dc874165abec5c624720a280351ef4
MD5 337450f2b013eee8339de87e22829af5
BLAKE2b-256 c1edaf679a2d4892d8a205fafeba1b8142ff957c1ed0cb933a134f246ac019ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for postnote-0.4.0-py3-none-any.whl:

Publisher: publish-pypi.yml on daviguides/postnote

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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