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.4.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.4-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pinappleclient-2.0.4.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.4.tar.gz
Algorithm Hash digest
SHA256 eadf4751521a2ace1522cba8fa6ee34ac0717fd42d857f7e7229de14e1739442
MD5 0acd139c65753e4fbad7a44e7660c578
BLAKE2b-256 170c3c968fa4ffc5cce84f6ec3693564da9f946a980943540bff4d55cfc1feee

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pinappleclient-2.0.4-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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 f40765bf4ef79b0c57761579a8742f12c358ede5eaecbe280159719384dff5c4
MD5 36695a6a803bc24bcdb546856b75254f
BLAKE2b-256 7bb65fdfdd05482fe95fb9bd35075c313aec9be8af15837174ce1ff652cfac04

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