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.5.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.5.0-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: postnote-0.5.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.5.0.tar.gz
Algorithm Hash digest
SHA256 0b0d996d2cf3083ea2d65055916567250faa633f2974daae55c29516e3bdc3a7
MD5 0f1da00c6cef2d191bfe3f425c432ffa
BLAKE2b-256 9f0550de15478fed06265e89237313cb8b8e70163b9bcd3e6990cb81694de2e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for postnote-0.5.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.5.0-py3-none-any.whl.

File metadata

  • Download URL: postnote-0.5.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.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ed2d82fa03268606b31871126a2fe7813877a89693757952d4fae2ba0fff218f
MD5 b6d84cfe31dce954abed048f04080c29
BLAKE2b-256 b0d2adc0b6bed3ff85a838c6c4f703c367168a4a83da4d1039e0ff52d0a61639

See more details on using hashes here.

Provenance

The following attestation bundles were made for postnote-0.5.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