Skip to main content

Client for interacting with Pinapple

Project description

🍍 PinappleClient 🍍

Python client for the Pinapple encryption API with automatic token management and robust error handling.

Installation

pip install PinappleClient

Quick Start

from pinapple_client import PinappleClient

client = PinappleClient(
    user="username",
    password="password",
    api_url="https://api.pinapple.com"
)

# Encrypt/decrypt individual PINs
encrypted = client.encrypt_pins(["123456", "789012"])
decrypted = client.decrypt_pins(["enc_abc123", "enc_def456"])

# Validate PINs
validation = client.validate_pins(["123456", "789012"])

DataFrame Operations

Pandas

import pandas as pd

df = pd.DataFrame({
    'id': [1, 2, 3],
    'pin': ['123456', '789012', '345678']
})

# Encrypt
encrypted_df = client.encrypt_pandas_dataframe(df, 'pin', batch_size=100)

# Decrypt
decrypted_df = client.decrypt_pandas_dataframe(encrypted_df, 'pin', batch_size=100)

Polars

import polars as pl

df = pl.DataFrame({
    'id': [1, 2, 3],
    'pin': ['123456', '789012', '345678']
})

# Encrypt
encrypted_df = client.encrypt_polars_dataframe(df, 'pin', batch_size=100)

# Decrypt
decrypted_df = client.decrypt_polars_dataframe(encrypted_df, 'pin', batch_size=100)

Configuration

client = PinappleClient(
    user="username",
    password="password",
    api_url="https://api.pinapple.com",
    refresh_token_after_x_minutes=5,  # Token refresh buffer (default: 5)
    timeout=30,                        # Request timeout (default: 30)
    max_retries=3,                     # Retry attempts (default: 3)
    backoff_base=2.0                   # Exponential backoff (default: 2.0)
)

Token Management

  • Automatic token refresh before expiration
  • Thread-safe token operations
  • JWT payload parsing for expiration tracking

Network Resilience

  • Exponential backoff retry: backoff_base ^ (attempt + 1)
  • Handles 503 database errors
  • Connection/timeout error recovery

License

GPL-3.0

Links

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

pinappleclient-2.0.3.tar.gz (7.5 kB view details)

Uploaded Source

Built Distribution

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

pinappleclient-2.0.3-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

Details for the file pinappleclient-2.0.3.tar.gz.

File metadata

  • Download URL: pinappleclient-2.0.3.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for pinappleclient-2.0.3.tar.gz
Algorithm Hash digest
SHA256 e09efefb229bffd4c43ab2f19bfa6f412b1b94351b3b97d77b70e1dabfe3457d
MD5 feb87b5a90e782eefd46b13dc770bad9
BLAKE2b-256 980acd16b987c97d85846b1490c727b4b3d9c3746a714dc96b3814c4115f21c3

See more details on using hashes here.

File details

Details for the file pinappleclient-2.0.3-py3-none-any.whl.

File metadata

  • Download URL: pinappleclient-2.0.3-py3-none-any.whl
  • Upload date:
  • Size: 8.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for pinappleclient-2.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a8b9519c74f5445550c649b842043b6ee36a45b6f9857fde13fb03b136005005
MD5 e39ab3100b27dd82d25d61bf20925fb6
BLAKE2b-256 5ebe21a12289231315a496c90d4bea0564e2e1ca94e4518d8bf79c41557df02d

See more details on using hashes here.

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