MR
Mayur Rathi
@github
⭐ 34.1k GitHub stars

Dataverse-Python-Production-Code

Dataverse-Python-Production-Code是一款code方向的AI技能,核心价值是Generate production-ready Python code using Dataverse SDK with error handling, optimization, and best practices,可用于解决开发者在code领域的实际问题,帮助用户提升效率、自动化重复任务或优化工作流。

Generate production-ready Python code using Dataverse SDK with error handling, optimization, and best practices

Last verified on: 2026-05-30
mkdir -p ./skills/dataverse-python-production-code && curl -sfL https://raw.githubusercontent.com/github/awesome-copilot/main/skills/dataverse-python-production-code/SKILL.md -o ./skills/dataverse-python-production-code/SKILL.md

Run in terminal / PowerShell. Requires curl (Unix) or PowerShell 5+ (Windows).

Skill Content

# 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

python
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

python
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

python
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

🎯 Best For

  • Developers scaffolding new projects
  • Prototype builders
  • Claude users
  • GitHub Copilot users
  • Software engineers

💡 Use Cases

  • Bootstrapping React components
  • Creating API route handlers
  • Python code quality enforcement
  • Dependency management

📖 How to Use This Skill

  1. 1

    Install the Skill

    Copy the install command from the Terminal tab and run it. The SKILL.md file downloads to your local skills directory.

  2. 2

    Load into Your AI Assistant

    Open Claude or GitHub Copilot and reference the skill. Paste the SKILL.md content or use the system prompt tab.

  3. 3

    Apply Dataverse-Python-Production-Code to Your Work

    Open your project in the AI assistant and ask it to apply the skill. Start with a small module to verify the output quality.

  4. 4

    Review and Refine

    Review AI suggestions before committing. Run tests, check for regressions, and iterate on the skill output.

❓ Frequently Asked Questions

Can I customize the generated output?

Yes — modify the skill's prompt instructions to match your project conventions and coding style.

Is Dataverse-Python-Production-Code compatible with Cursor and VS Code?

Yes — this skill works with any AI coding assistant including Cursor, VS Code with Copilot, and JetBrains IDEs.

Do I need specific dependencies for Dataverse-Python-Production-Code?

Check the install command and Works With section. Most code skills only require the AI assistant and your codebase.

How do I install Dataverse-Python-Production-Code?

Copy the install command from the Terminal tab and run it. The skill downloads to ./skills/dataverse-python-production-code/SKILL.md, ready to use.

Can I customize this skill for my team?

Absolutely. Edit the SKILL.md file to add team-specific instructions, examples, or workflows.

⚠️ Common Mistakes to Avoid

Using generated code without understanding

Understand what generated code does before shipping it to production.

Skipping validation

Always test AI-generated code changes, even for simple refactors.

Missing dependency updates

Check if the skill requires updated dependencies or new packages.

🔗 Related Skills