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.6.tar.gz
(9.7 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.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c8f9e0c05225e006eb6c8fe554945d80b2bbcdb38acab3d0b8c8ad434e75cce9
|
|
| MD5 |
5d2ff94011d11ad1508aae91cebd4cdd
|
|
| BLAKE2b-256 |
46c413f7410ba254fe97cbc503989c2202f401c09e2b694c492adf408f39f005
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3c3b3f8dcb39dc0d1a8df4fe98bfd7ade2d375e461264c5d78641b16c472035b
|
|
| MD5 |
d1271a1fcac1ef23960bbb38c6d94dee
|
|
| BLAKE2b-256 |
4fea182cdc05de076516cf4374e070fc3f97728c65568703357eefc79b78e834
|