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.6.tar.gz (9.7 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.6-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pinappleclient-2.0.6.tar.gz
  • Upload date:
  • Size: 9.7 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.6.tar.gz
Algorithm Hash digest
SHA256 c8f9e0c05225e006eb6c8fe554945d80b2bbcdb38acab3d0b8c8ad434e75cce9
MD5 5d2ff94011d11ad1508aae91cebd4cdd
BLAKE2b-256 46c413f7410ba254fe97cbc503989c2202f401c09e2b694c492adf408f39f005

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pinappleclient-2.0.6-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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 3c3b3f8dcb39dc0d1a8df4fe98bfd7ade2d375e461264c5d78641b16c472035b
MD5 d1271a1fcac1ef23960bbb38c6d94dee
BLAKE2b-256 4fea182cdc05de076516cf4374e070fc3f97728c65568703357eefc79b78e834

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