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

# create a client
client = Request(
    base_url="https://sandbox3-domain.com",
    api_port=443,
    resource_name="users",
    headers={
        "Content-Type": "application/json",
        "X-Client-Key": "your-key",
        "X-Client-Secret": "your-secret",
    },
)

# 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.1.0.tar.gz (5.3 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.1.0-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for postnote-0.1.0.tar.gz
Algorithm Hash digest
SHA256 32ff7a6550422c4b12e60ac8003ce2b74484f1e27cc022b6bd3096c1534756ce
MD5 aeafce0cb229e49a8a536c829fb193c9
BLAKE2b-256 d9e6bd108c069145a7b5d6379e233c70344be109a94fdcdfa59f383b9a135af1

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: postnote-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.6 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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7cb9fddb7c1581524fc8ff6b49f618bc2ff4a5201bb3a2b17981b788e8234ddf
MD5 e99710e6381db7f9eb850c220550e717
BLAKE2b-256 1a5d540e1cdc96c01ab9363e6a7a105a59c7c1993a8adf0cd36babb7ab722d39

See more details on using hashes here.

Provenance

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