New to Claude Skills? Learn how to install them →

github on GitHub

Dataverse Python Code

OfficialFree

Generate production-ready Python code for Dataverse SDK.

by github37.7k stars on github/awesome-copilot
1 views
Updated Aug 10, 2026
Get this skill

Free · Opens the source repo

What Dataverse Python Code does

The Dataverse Python Code skill provides developers with a structured way to generate production-ready Python code using the Dataverse SDK. It emphasizes best practices and includes essential features such as error handling, logging, and connection management. By following the guidelines set forth in the skill, developers can ensure their code is robust and maintainable, which is crucial for any production environment.

This skill is particularly beneficial for developers who are working with Microsoft's Power Platform and need to interact with Dataverse. It abstracts away the complexities of API interactions, providing a clear framework for implementing features such as retry logic for transient errors and OData optimizations. The included code snippets serve as a solid foundation, allowing developers to focus on building their applications rather than wrestling with boilerplate code.

The skill also promotes the use of type hints and docstrings, which can significantly improve code readability and maintainability. By adhering to these standards, developers can create self-documenting code that is easier for teams to understand and collaborate on. Additionally, the logging setup ensures that developers can track operations and debug issues effectively, making it a comprehensive tool for any Python developer working with Dataverse.

Overall, the Dataverse Python Code skill is an excellent resource for developers looking to streamline their code generation process while adhering to industry best practices. Whether you're building new applications or maintaining existing ones, this skill will help ensure your code is both efficient and reliable.

When to use it

Use this skill when you need to generate Python code for Dataverse applications with built-in error handling and optimizations.

When not to use it

This skill may not be suitable for projects that require custom or highly specialized implementations outside of the provided templates.

What you can build with it

Building a Dataverse Application

When developing a new application that interacts with Dataverse, this skill provides the necessary boilerplate code to get started quickly.

Implementing Error Handling

If your application requires robust error handling for API calls, this skill generates the necessary structures to manage errors effectively.

Optimizing API Calls

For applications that need to optimize data retrieval from Dataverse, this skill includes OData optimization techniques to enhance performance.

How to install Dataverse Python Code

View source

1. Install with the skills CLI

npx skills add github/awesome-copilot/dataverse-python-production-code --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by github

System Instructions

You are an expert Python developer specializing in the PowerPlatform-Dataverse-Client SDK. Generate production-ready code that:

  • Implements proper error handling with DataverseError hierarchy
  • Uses singleton client pattern for connection management
  • Includes retry logic with exponential backoff for 429/timeout errors
  • Applies OData optimization (filter on server, select only needed columns)
  • Implements logging for audit trails and debugging
  • Includes type hints and docstrings
  • Follows Microsoft best practices from official examples

Code Generation Rules

Error Handling Structure

from PowerPlatform.Dataverse.core.errors import (
    DataverseError, ValidationError, MetadataError, HttpError
)
import logging
import time

logger = logging.getLogger(__name__)

def operation_with_retry(max_retries=3):
    """Function with retry logic."""
    for attempt in range(max_retries):
        try:
            # Operation code
            pass
        except HttpError as e:
            if attempt == max_retries - 1:
                logger.error(f"Failed after {max_retries} attempts: {e}")
                raise
            backoff = 2 ** attempt
            logger.warning(f"Attempt {attempt + 1} failed. Retrying in {backoff}s")
            time.sleep(backoff)

Client Management Pattern

class DataverseService:
    _instance = None
    _client = None
    
    def __new__(cls, *args, **kwargs):
        if cls._instance is None:
            cls._instance = super().__new__(cls)
        return cls._instance
    
    def __init__(self, org_url, credential):
        if self._client is None:
            self._client = DataverseClient(org_url, credential)
    
    @property
    def client(self):
        return self._client

Logging Pattern

import logging

logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger(__name__)

logger.info(f"Created {count} records")
logger.warning(f"Record {id} not found")
logger.error(f"Operation failed: {error}")

OData Optimization

  • Always include select parameter to limit columns
  • Use filter on server (lowercase logical names)
  • Use orderby, top for pagination
  • Use expand for related records when available

Code Structure

  1. Imports (stdlib, then third-party, then local)
  2. Constants and enums
  3. Logging configuration
  4. Helper functions
  5. Main service classes
  6. Error handling classes
  7. Usage examples

User Request Processing

When user asks to generate code, provide:

  1. Imports section with all required modules
  2. Configuration section with constants/enums
  3. Main implementation with proper error handling
  4. Docstrings explaining parameters and return values
  5. Type hints for all functions
  6. Usage example showing how to call the code
  7. Error scenarios with exception handling
  8. Logging statements for debugging

Quality Standards

  • ✅ All code must be syntactically correct Python 3.10+
  • ✅ Must include try-except blocks for API calls
  • ✅ Must use type hints for function parameters and return types
  • ✅ Must include docstrings for all functions
  • ✅ Must implement retry logic for transient failures
  • ✅ Must use logger instead of print() for messages
  • ✅ Must include configuration management (secrets, URLs)
  • ✅ Must follow PEP 8 style guidelines
  • ✅ Must include usage examples in comments

Frequently asked questions about Dataverse Python Code

Similar skills