Skip to content

magiclabs/magic-admin-python

Repository files navigation

Magic Admin Python SDK

Python 3.11+ PyPI version License

The Magic Admin Python SDK provides a simple and powerful way to integrate Magic's authentication system into your Python applications. Handle DID Tokens and interact with Magic API endpoints with ease.

📚 Documentation

📖 Full Documentation: Magic Python SDK Docs

🚀 Quick Start

Installation

# Using pip
pip install magic-admin

# Using uv
uv add magic-admin

Basic Usage

from magic_admin import Magic

# Initialize with your API secret key
magic = Magic(api_secret_key='your_api_secret_key_here')

# Validate a DID token
try:
    magic.Token.validate('DID_TOKEN_FROM_CLIENT')
    print("Token is valid!")
except Exception as e:
    print(f"Token validation failed: {e}")

Environment Variable Configuration

You can also load your API secret key from an environment variable:

export MAGIC_API_SECRET_KEY="your_api_secret_key_here"
from magic_admin import Magic

# Automatically uses MAGIC_API_SECRET_KEY environment variable
magic = Magic()

Note: The API secret key passed directly to Magic() takes precedence over the environment variable.

Network Configuration

Customize network behavior for your application:

magic = Magic(
    api_secret_key='your_key',
    retries=5,           # Number of retry attempts
    timeout=10,          # Request timeout in seconds
    backoff_factor=0.03  # Exponential backoff factor
)

🔧 Development

Prerequisites

  • Python 3.11+
  • Git

Setup Development Environment

# Clone the repository
git clone https://github.com/magiclabs/magic-admin-python.git
cd magic-admin-python

# Create virtual environment and install dependencies
make development

# Activate the virtual environment
source virtualenv_run/bin/activate

Running Tests

# Run tests against all supported Python versions (3.11, 3.12, 3.13)
make test

# Run tests with coverage
make test

Code Quality

This project uses pre-commit to maintain code quality. Hooks run automatically on every commit.

# Run pre-commit hooks manually
pre-commit run --all-files

# Install pre-commit hooks
pre-commit install

Cleanup

# Remove virtual environment, tox logs, and pytest cache
make clean

📋 Requirements

🤝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Workflow

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Run tests: make test
  5. Run pre-commit: pre-commit run --all-files
  6. Submit a pull request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

📝 Changelog

See CHANGELOG.md for a detailed history of changes.

🔗 Links

About

Magic Admin Python SDK makes it easy to leverage Decentralized ID tokens to protect routes and restricted resources for your application.

Resources

Contributing

Stars

Watchers

Forks

Contributors