Prerequisite You should have a LaunchDarkly account and have created a feature flag called dark-mode that allows anyone with example.com email address to true, and everyone else to false. Ensure you have an API key from LaunchDarkly and have it stored in a .env file.

Introduction

This guide demonstrates how to evaluate a feature flag for a user using the LaunchDarkly API. You’ll learn how to set up your environment, configure your API key, and evaluate a feature flag.

Setup

Step 1: Install Required Packages

First, install the necessary packages using pip:

pip install launchdarkly-server-sdk python-dotenv

Step 2: Create a .env File

Create a .env file in the project root with your LaunchDarkly API key:

LAUNCHDARKLY_API_KEY=your_launchdarkly_api_key

Evaluating a Feature Flag

Step 3: Create the Python Script

Create a Python script named launchdarkly-feature-flag.py with the following content:

launchdarkly-feature-flag.py
import os
import ldclient
from ldclient.config import Config
from ldclient.context import Context
from dotenv import load_dotenv

# Load environment variables from .env file
load_dotenv()

def evaluate_flag(sdk_key, feature_flag_key, user_email):
    # Initialize LaunchDarkly client
    ldclient.set_config(Config(sdk_key))

    # Specify the user and email to LaunchDarkly as a Context
    context = Context.builder(user_email).kind('user').set("email", user_email).build()

    # Obtain the feature flag evaluated value
    flag_value = ldclient.get().variation(feature_flag_key, context, False)
    
    # Close the LaunchDarkly client
    ldclient.get().close()
    
    return flag_value

# Example usage
if __name__ == "__main__":
    sdk_key = os.getenv("LAUNCHDARKLY_API_KEY")
    feature_flag_key = "dark-mode"
    user_email = "hello@example.com"

    flag_status = evaluate_flag(sdk_key, feature_flag_key, user_email)
    print(f"Feature flag '{feature_flag_key}' for user '{user_email}': {flag_status}")

Step 4: Run the Script

Ensure you have the .env file in the same directory as the script. Then, execute the script:

python launchdarkly-feature-flag.py

Conclusion

You have successfully evaluated a feature flag for a user using the LaunchDarkly API! This guide provided a basic example to get you started. You can now expand on this by customizing the feature flag evaluation and handling different user contexts.