
Dataverse Python Code
OfficialFreeGenerate production-ready Python code for Dataverse SDK.
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 source1. Install with the skills CLI
npx skills add github/awesome-copilot/dataverse-python-production-code --agent claude-code2. 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 githubSystem 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
selectparameter to limit columns - Use
filteron server (lowercase logical names) - Use
orderby,topfor pagination - Use
expandfor related records when available
Code Structure
- Imports (stdlib, then third-party, then local)
- Constants and enums
- Logging configuration
- Helper functions
- Main service classes
- Error handling classes
- Usage examples
User Request Processing
When user asks to generate code, provide:
- Imports section with all required modules
- Configuration section with constants/enums
- Main implementation with proper error handling
- Docstrings explaining parameters and return values
- Type hints for all functions
- Usage example showing how to call the code
- Error scenarios with exception handling
- 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
Rhino 3D Scripting
Streamline your Rhinoceros 3D scripting tasks.
MVVM Toolkit
Streamline ViewModel development with source generators.
FreeCAD Scripts
Generate Python scripts for FreeCAD automation and modeling.
Azure Architecture Builder
Design and deploy Azure infrastructure using natural language.
Command Development
Streamline your command creation for Claude Code.
Create Cowork Plugin
Easily build and package plugins through guided sessions.
