Skip to main content

ConfigPig — Python SDK

Python SDK for ConfigPig, a managed config file registry for teams.

Installation

pip install configpig

Or with uv:

uv add configpig

Configuration

Set environment variables or pass directly to the client:

export CONFIGPIG_API_KEY="sk-api01-your-key-here"
export CONFIGPIG_URL="https://configpig.com"  # optional, this is the default

Quick Start — get_config()

The simplest way to use ConfigPig. One function, no boilerplate:

from configpig import get_config

# Fetch a config
content = get_config("my-config")

# With a specific label
content = get_config("my-config", label="production")

# With format conversion
content = get_config("my-config", output_format="yaml")

# With a fallback if the service is unreachable
content = get_config("my-config", fallback='{"default": true}')

# With TTL caching (seconds)
content = get_config("my-config", ttl=300)

Set global defaults so you don't repeat yourself:

import configpig

configpig.configure(
    api_key="sk-api01-...",
    base_url="https://configpig.com",
    default_label="latest",
    default_ttl=300,
)

Using the Full Client

For advanced use cases (creating configs, managing versions, labels, etc.):

from configpig import Client

client = Client()

# List all configs
result = client.list_configs()
if result.ok:
    for cfg in result.data:
        print(f"{cfg.slug}: {cfg.name}")

# Get a specific config
result = client.get_config("my-config")
if result.ok:
    print(result.data.name)

# Fetch config content with optional format conversion
result = client.fetch("my-config", label="latest", output_format="yaml")
if result.ok:
    print(result.data.content)

# Create a new config
result = client.create_config(
    name="App Settings",
    slug="app-settings",
    content='{"debug": false, "log_level": "info"}',
    format="json",
    tags=["app"],
)

# Create a new version
result = client.create_version(
    "app-settings",
    content='{"debug": false, "log_level": "warn"}',
    change_note="Changed log level to warn",
)

# Promote a version to a label
result = client.promote("app-settings", version=2, label="production")

API Reference

All methods return APIResponse[T] with fields:

  • ok: bool — whether the request succeeded
  • status_code: int — HTTP status code
  • data: T | None — response data (when ok is True)
  • error: str | None — error message (when ok is False)

Configs

Method Description
list_configs(tag?, search?) List all configs
get_config(slug) Get config details
create_config(...) Create a new config
update_config(slug, ...) Update config metadata
delete_config(slug) Delete a config

Versions

Method Description
list_versions(slug) List all versions
get_version(slug, version_number) Get specific version
create_version(slug, ...) Create a new version

Fetch

Method Description
fetch(slug, label?, output_format?) Fetch config content with optional format conversion

Labels

Method Description
list_labels() List team labels
create_label(name, ...) Create a team label
delete_label(name) Delete a team label
list_config_labels(slug) List labels for a config
assign_label(slug, label, version) Assign label to version

Promote / Rollback

Method Description
promote(slug, version, label) Assign label to a version
rollback(slug, label) Rollback label to previous version

Exports

Method Description
list_exports() List exports
create_export(name, ...) Create an export
get_export(export_id) Get export details
delete_export(export_id) Delete an export

System

Method Description
health_check() Check API health

License

MIT — Bright Wing Solutions LLC

Metadata

Release files for configpig 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for configpig 0.1.0
File Size Uploaded
configpig-0.1.0.tar.gz 27.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for configpig 0.1.0
File Interpreter ABI Platform
configpig-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 36.6 kB

Release files / configpig-0.1.0.tar.gz

Download URL configpig-0.1.0.tar.gz
Size 27.0 kB
Tags Source
SHA-256 checksum
How to use checksums
db4d51ddc5ae1c62006b60bdc7d9087b57db2e68f969dcf0e0595c7a6298990d
BLAKE2b-256 checksum
How to use checksums
4cbd0e4a627b07514457881418c447579842ffe93bbd080988c45747c1ede434
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / configpig-0.1.0-py3-none-any.whl

Download URL configpig-0.1.0-py3-none-any.whl
Size 9.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9646c88612f4749f1cf395218ef9886ece0a40ced47742d5684dace96e46ae57
BLAKE2b-256 checksum
How to use checksums
a08e60151871eba7773072bfbd43068c85dc84ceed81b945f2dfbadd89a631fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page