Skip to main content

Python SDK for ContactsManager API authentication and token generation

Project description

ContactsManager Python SDK

A Python SDK for the ContactsManager API that handles authentication and token generation.

Installation

pip install contactsmanager

Usage

from contactsmanager import ContactsManagerClient

# Initialize the client
client = ContactsManagerClient(
    api_key="your_api_key",
    api_secret="your_api_secret",
    org_id="your_org_id"
)

# Generate a token for a user
token_response = client.generate_token(
    user_id="user123",
    device_info={  # Optional
        "device_type": "mobile",
        "os": "iOS",
        "app_version": "1.0.0"
    }
)

print(f"Token: {token_response['token']}")
print(f"Expires at: {token_response['expires_at']}")

Features

  • Simple API for generating JWT tokens
  • Type hints for better IDE support
  • Comprehensive test coverage
  • Support for custom token expiration

Advanced Usage

Custom Token Expiration

By default, tokens expire after 24 hours (86400 seconds). You can customize this:

# Generate a token that expires in 1 hour
token_response = client.generate_token(
    user_id="user123",
    expiration_seconds=3600  # 1 hour
)

Requirements

  • Python 3.8+
  • PyJWT>=2.0.0

Development

Setting up development environment

# Clone the repository
git clone https://github.com/arpwal/contactmanager.git
cd contactmanager/sdk/py

# Install development dependencies
pip install -e ".[dev]"

# Run tests
pytest

Releasing new versions

The SDK uses an automated process for releases:

  1. Update the version in contactsmanager/__init__.py using the provided script:

    ./bump_version.sh 0.1.1
    
  2. Commit and push the change to the main branch:

    git add contactsmanager/__init__.py
    git commit -m "Bump version to 0.1.1"
    git push origin main
    
  3. The GitHub Actions workflow will:

    • Run all tests across multiple Python versions
    • Create a new GitHub release with the version tag
    • Build and publish the package to PyPI

Alternatively, you can manually create a new release by:

  1. Creating and pushing a git tag:

    git tag -a v0.1.1 -m "Release version 0.1.1"
    git push origin v0.1.1
    
  2. The GitHub Actions workflow will handle the rest

License

MIT License

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

contactsmanager-1.2.0.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

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

contactsmanager-1.2.0-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

Details for the file contactsmanager-1.2.0.tar.gz.

File metadata

  • Download URL: contactsmanager-1.2.0.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.17

File hashes

Hashes for contactsmanager-1.2.0.tar.gz
Algorithm Hash digest
SHA256 eca350619d7e5d79c5f715a09459e1a972ea9e7b092028f35bb7d51a1c02915f
MD5 093f456b66e7f632cbc456ad52a7ac30
BLAKE2b-256 b04454e02a68790aa90f08fa91cd43e97309d5a5ab4a56b680f6b4d9545659fe

See more details on using hashes here.

File details

Details for the file contactsmanager-1.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for contactsmanager-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dd1de57abd6c7ba273d81c3c9253808c2fbfb3b16f902126445457b807cb547d
MD5 4adaa5adf9f945cb7c79216173c0c2f8
BLAKE2b-256 a49f81d8c9518087927b8ef4fcf825c823fc77727c1da4b7ff4fe33e18c68df1

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