Skip to main content

Anthropic API client library for kiarina namespace

Project description

kiarina-lib-anthropic

A Python library for Anthropic API integration with configuration management using pydantic-settings-manager.

Features

  • Configuration Management: Use pydantic-settings-manager for flexible configuration
  • Type Safety: Full type hints and Pydantic validation
  • Secure Credential Handling: API keys are protected using SecretStr
  • Multiple Configurations: Support for multiple named configurations (e.g., different projects/environments)
  • Environment Variable Support: Configure via environment variables with KIARINA_LIB_ANTHROPIC_ prefix
  • Custom Base URL: Support for custom Anthropic-compatible API endpoints

Installation

pip install kiarina-lib-anthropic

Quick Start

Basic Usage

from kiarina.lib.anthropic import AnthropicSettings, settings_manager

# Configure Anthropic API
settings_manager.user_config = {
    "default": {
        "api_key": "sk-ant-your-api-key-here"
    }
}

# Get settings
settings = settings_manager.settings
print(f"API Key configured: {settings.api_key.get_secret_value()[:10]}...")

Environment Variable Configuration

Configure authentication using environment variables:

export KIARINA_LIB_ANTHROPIC_API_KEY="sk-ant-your-api-key-here"
from kiarina.lib.anthropic import settings_manager

# Settings are automatically loaded from environment variables
settings = settings_manager.settings
print(f"API Key configured: {settings.api_key.get_secret_value()[:10]}...")

Multiple Configurations

Manage multiple Anthropic configurations (e.g., different projects or environments):

from kiarina.lib.anthropic import settings_manager

# Configure multiple projects
settings_manager.user_config = {
    "project_a": {
        "api_key": "sk-ant-project-a-key"
    },
    "project_b": {
        "api_key": "sk-ant-project-b-key"
    }
}

# Switch between configurations
settings_manager.active_key = "project_a"
project_a_settings = settings_manager.settings
print(f"Project A API Key: {project_a_settings.api_key.get_secret_value()[:10]}...")

settings_manager.active_key = "project_b"
project_b_settings = settings_manager.settings
print(f"Project B API Key: {project_b_settings.api_key.get_secret_value()[:10]}...")

Custom Base URL

Use with Anthropic-compatible APIs:

from kiarina.lib.anthropic import settings_manager

settings_manager.user_config = {
    "custom": {
        "api_key": "your-custom-key",
        "base_url": "https://custom.anthropic-compatible.api.com"
    }
}

settings = settings_manager.settings
print(f"Base URL: {settings.base_url}")

Configuration

This library uses pydantic-settings-manager for flexible configuration management.

AnthropicSettings

The AnthropicSettings class provides the following configuration fields:

Field Type Required Default Description
api_key SecretStr Yes - Anthropic API key (masked in logs)
base_url str | None No None Custom base URL for Anthropic-compatible APIs

Environment Variables

All settings can be configured via environment variables with the KIARINA_LIB_ANTHROPIC_ prefix:

# API Key (required)
export KIARINA_LIB_ANTHROPIC_API_KEY="sk-ant-your-api-key"

# Custom Base URL (optional)
export KIARINA_LIB_ANTHROPIC_BASE_URL="https://api.anthropic.com"

Programmatic Configuration

from pydantic import SecretStr
from kiarina.lib.anthropic import AnthropicSettings, settings_manager

# Direct settings object
settings = AnthropicSettings(
    api_key=SecretStr("sk-ant-your-api-key")
)

# Via settings manager
settings_manager.user_config = {
    "default": {
        "api_key": "sk-ant-your-api-key"  # Automatically converted to SecretStr
    }
}

Runtime Overrides

from kiarina.lib.anthropic import settings_manager

# Override specific settings at runtime
settings_manager.cli_args = {
    "base_url": "https://custom.api.com"
}

settings = settings_manager.settings
print(f"Base URL: {settings.base_url}")  # Uses overridden value

Security

API Key Protection

API keys are stored using Pydantic's SecretStr type, which provides the following security benefits:

  • Masked in logs: Keys are displayed as ********** in string representations
  • Prevents accidental exposure: Keys won't appear in debug output or error messages
  • Explicit access required: Must use .get_secret_value() to access the actual key
from kiarina.lib.anthropic import settings_manager

settings = settings_manager.settings

# API key is masked in string representation
print(settings)  # api_key=SecretStr('**********')

# Explicit access to get the actual key
api_key = settings.api_key.get_secret_value()

API Reference

AnthropicSettings

class AnthropicSettings(BaseSettings):
    api_key: SecretStr
    base_url: str | None = None

Pydantic settings model for Anthropic API configuration.

Fields:

  • api_key (SecretStr): Anthropic API key (protected)
  • base_url (str | None): Optional custom base URL for Anthropic-compatible APIs

settings_manager

settings_manager: SettingsManager[AnthropicSettings]

Global settings manager instance for Anthropic configuration. See: pydantic-settings-manager

Development

Prerequisites

  • Python 3.12+

Setup

# Clone the repository
git clone https://github.com/kiarina/kiarina-python.git
cd kiarina-python

# Setup development environment
mise run setup

Running Tests

# Run format, lint, type checks and tests
mise run package kiarina-lib-anthropic

# Coverage report
mise run package:test kiarina-lib-anthropic --coverage

Dependencies

License

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

Contributing

This is a personal project, but contributions are welcome! Please feel free to submit issues or pull requests.

Related Projects

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

kiarina_lib_anthropic-1.21.1.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

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

kiarina_lib_anthropic-1.21.1-py3-none-any.whl (4.4 kB view details)

Uploaded Python 3

File details

Details for the file kiarina_lib_anthropic-1.21.1.tar.gz.

File metadata

  • Download URL: kiarina_lib_anthropic-1.21.1.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for kiarina_lib_anthropic-1.21.1.tar.gz
Algorithm Hash digest
SHA256 4ff752dc5e1c7c17bb04c0b8de0c5e4649b9ddc25ccbdd4fbe01fc48860d6d83
MD5 47d28213615455f4e4eca18786e456f8
BLAKE2b-256 a9789b1acaaffe91c97cd5c7f1f30ec97a13f74f1ebc126a23ec22ddd9e5f9d9

See more details on using hashes here.

File details

Details for the file kiarina_lib_anthropic-1.21.1-py3-none-any.whl.

File metadata

File hashes

Hashes for kiarina_lib_anthropic-1.21.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4a5f436b9eaff390682a686889c7bd3d5cb42f3b14366a9c6c88bf34d1a6aadf
MD5 e974a68bc660b405a18a4340ba914b3e
BLAKE2b-256 6706c33feaeff725e9c54dadee389dabc76d75dacd2762776af22fd1e5e0878f

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