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
Release history Release notifications | RSS feed
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)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e09efefb229bffd4c43ab2f19bfa6f412b1b94351b3b97d77b70e1dabfe3457d
|
|
| MD5 |
feb87b5a90e782eefd46b13dc770bad9
|
|
| BLAKE2b-256 |
980acd16b987c97d85846b1490c727b4b3d9c3746a714dc96b3814c4115f21c3
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a8b9519c74f5445550c649b842043b6ee36a45b6f9857fde13fb03b136005005
|
|
| MD5 |
e39ab3100b27dd82d25d61bf20925fb6
|
|
| BLAKE2b-256 |
5ebe21a12289231315a496c90d4bea0564e2e1ca94e4518d8bf79c41557df02d
|