К основному содержанию
правило официальный · GitHub

dataverse-python-modules — правило для GitHub Copilot: справочник

Правило подкладывает агенту карту модулей PowerPlatform.Dataverse: клиент, конфиг, ошибки, OData и SQL. Пригодится, когда код на Python работает с Dataverse.

Установить в GitHub Copilot · Вручную: положить файлы Все способы и платформы ↓
.github/instructions/dataverse-python-modules.instructions.md
Открыть на GitHub

Что делает dataverse-python-modules

Правило описывает пакет PowerPlatform.Dataverse целиком: где лежит DataverseClient, что внутри core.config и core.errors, какие методы закрывают CRUD, метаданные и SQL. Агент видит иерархию пакетов и перестаёт выдумывать имена классов и импортов.

Внутри — сигнатуры методов с типами возврата: create(), get(), update(), delete(), create_table(), create_columns(), query_sql(), upload_file(), flush_cache(). Отдельный блок про исключения: DataverseError с полями code, subcode, status_code, is_transient, плюс ValidationError, MetadataError, HttpError, SQLParseError. Есть готовые примеры импортов и создания клиента через InteractiveBrowserCredential.

Пакеты extensions, models и utils пока пустые — это заготовки под будущие релизы, и правило прямо говорит брать функциональность из core и client. Учтите: http_retries, http_backoff и http_timeout в DataverseConfig помечены как зарезервированные, то есть настраивать повторы запросов через них сейчас нечего. Для работы понадобится azure.identity и сам пакет SDK.

Какие задачи решает

  • собрать клиент Dataverse с нужным language_code
  • отличить временную ошибку от постоянной по is_transient
  • вытащить correlation_id из упавшего HTTP-запроса
  • создать таблицу и колонки из кода на Python
  • разобрать синтаксис SQL до отправки в query_sql()

Примеры запросов агенту

  • напиши клиент Dataverse и загрузи записи в таблицу account
  • обработай HttpError и реши, повторять ли запрос
  • создай таблицу с колонками через create_table и create_columns

Как установить dataverse-python-modules

Вручную: положить файлы

.github/instructions/dataverse-python-modules.instructions.md

Поле applyTo задаёт, к каким файлам применять

По шагам, с командами для каждой платформы: AGENTS.md и CLAUDE.md: что это, кто читает и какой выбрать

Из того же набора732

Весь набор →
devbox-image-definition Правило для GitHub Copilot, которое помогает писать YAML-файлы описания образов для Microsoft Dev Box Team Customizations. Пригодится, если вы собираете кастомизации через задачи ~/winget, ~/gitclone и ~/powershell. ★ 40 418звёзд репо dataverse-python Правило для GitHub Copilot, которое подсказывает агенту, как подключить Dataverse Python SDK: установка, переменные окружения и OAuth. ★ 40 418звёзд репо dataverse-python-sdk Правило даёт GitHub Copilot примеры работы с Python SDK для Dataverse: от подключения до пакетных операций и загрузки файлов. Пригодится при написании кода для Dataverse. ★ 40 418звёзд репо dataverse-python-real-world-usecases Правило с шаблонами миграции и очистки данных Dataverse на Python: Copilot подсказывает готовые паттерны вместо общих советов. ★ 40 418звёзд репо dataverse-python-file-operations Задаёт инструкции по загрузке файлов в Microsoft Dataverse через Python SDK. Помогает настроить чанкование для объектов больше 128 МБ и повтор запросов при сетевых сбоях. ★ 40 418звёзд репо dataverse-python-error-handling Правило подсказывает, как обрабатывать ошибки Dataverse SDK for Python: разбирать коды ответа и решать, когда повторять запрос. ★ 40 418звёзд репо dataverse-python-best-practices Правило для GitHub Copilot с рабочими шаблонами работы с Dataverse SDK для Python: авторизация, клиент, CRUD-операции. ★ 40 418звёзд репо secrets-scanner Сканирует изменённые за сессию файлы на утёкшие ключи и пароли перед коммитом. Пригодится, когда агент правит код быстро и легко тащит в него токен. ★ 40 418звёзд репо

Похожие

appwrite-python appwrite Подсказывает агенту, как писать серверный код на Python с Appwrite SDK: пользователи, таблицы, хранилище файлов, функции. CX Codex +1 1 100установок aws-sdk-python-usage aws Скилл задаёт правила кодинга на Python с библиотеками boto3 и botocore. Он подсказывает агенту, когда брать client или resource, как настраивать пагинацию и перехватывать ошибки AWS. CX Codex +1 7 800установок azure-eventhub-py Microsoft Скилл для работы с Azure Event Hubs из Python: отправка событий, чтение партиций, чекпоинты в blob-хранилище. Пригодится, когда агент пишет продюсеров и консьюмеров. 2установок zarr-python K-Dense-AI Помогает организовать хранение и выборку многомерных массивов в Zarr-Python 3. Пригодится при настройке чанков, шардинга и чтения данных из облачных хранилищ. CX Codex +1 1 900установок python-resource-management Seth Hobson Скилл помогает управлять файлами, соединениями и потоками в Python через контекстные менеджеры и гарантированную очистку. Нужен для кода с ресурсами и исключениями. CX Codex 11 000установок databricks-apps-python databricks Помогает разворачивать бэкенд на Python в Databricks Apps, настраивать OAuth-авторизацию и связывать сервис с базами данных. CX Codex +1 305установок

Рядом в теме «Языки программирования»

Все правила IDE по теме «Языки программирования» →

Вопросы о dataverse-python-modules

Как установить dataverse-python-modules в GitHub Copilot?

Положите файл .github/instructions/dataverse-python-modules.instructions.md в репозиторий — правило подхватится по applyTo: '**'.

Что делает dataverse-python-modules?

Даёт агенту справочник по SDK PowerPlatform.Dataverse: классы, методы, исключения и примеры импортов, чтобы код обращался к реальному API, а не к придуманному.

Нужны ли дополнительные библиотеки?

В примерах используется azure.identity с InteractiveBrowserCredential и сам пакет SDK для Python.

Исходный текст

dataverse-python-modules.instructions.md · MIT
---
applyTo: '**'
---
# Dataverse SDK for Python — Complete Module Reference

## Package Hierarchy

```
PowerPlatform.Dataverse
├── client
│   └── DataverseClient
├── core
│   ├── config (DataverseConfig)
│   └── errors (DataverseError, ValidationError, MetadataError, HttpError, SQLParseError)
├── data (OData operations, metadata, SQL, file upload)
├── extensions (placeholder for future extensions)
├── models (placeholder for data models and types)
└── utils (placeholder for utilities and adapters)
```

## core.config Module

Manage client connection and behavior settings.

### DataverseConfig Class

Container for language, timeouts, retries. Immutable.

```python
from PowerPlatform.Dataverse.core.config import DataverseConfig

cfg = DataverseConfig(
    language_code=1033,        # Default English (US)
    http_retries=None,         # Reserved for future
    http_backoff=None,         # Reserved for future
    http_timeout=None          # Reserved for future
)

# Or use default static builder
cfg_default = DataverseConfig.from_env()
```

**Key attributes:**
- `language_code: int = 1033` — LCID for localized labels and messages.
- `http_retries: int | None` — (Reserved) Maximum retry attempts for transient errors.
- `http_backoff: float | None` — (Reserved) Backoff multiplier between retries.
- `http_timeout: float | None` — (Reserved) Request timeout in seconds.

## core.errors Module

Structured exception hierarchy for SDK operations.

### DataverseError (Base)

Base exception for SDK errors.

```python
from PowerPlatform.Dataverse.core.errors import DataverseError

try:
    # SDK call
    pass
except DataverseError as e:
    print(f"Code: {e.code}")                # Error category
    print(f"Subcode: {e.subcode}")          # Specific error
    print(f"Message: {e.message}")          # Human-readable
    print(f"Status: {e.status_code}")       # HTTP status (if applicable)
    print(f"Transient: {e.is_transient}")   # Retry-worthy?
    details = e.to_dict()                  # Convert to dict
```

### ValidationError

Validation failures during data operations.

```python
from PowerPlatform.Dataverse.core.errors import ValidationError
```

### MetadataError

Table/column creation, deletion, or inspection failures.

```python
from PowerPlatform.Dataverse.core.errors import MetadataError

try:
    client.create_table("MyTable", {...})
except MetadataError as e:
    print(f"Metadata issue: {e.message}")
```

### HttpError

Web API HTTP request failures (4xx, 5xx, etc.).

```python
from PowerPlatform.Dataverse.core.errors import HttpError

try:
    client.get("account", record_id)
except HttpError as e:
    print(f"HTTP {e.status_code}: {e.message}")
    print(f"Service error code: {e.service_error_code}")
    print(f"Correlation ID: {e.correlation_id}")
    print(f"Request ID: {e.request_id}")
    print(f"Retry-After: {e.retry_after} seconds")
    print(f"Transient (retry?): {e.is_transient}")  # 429, 503, 504
```

### SQLParseError

SQL query syntax errors when using `query_sql()`.

```python
from PowerPlatform.Dataverse.core.errors import SQLParseError

try:
    client.query_sql("INVALID SQL HERE")
except SQLParseError as e:
    print(f"SQL parse error: {e.message}")
```

## data Package

Low-level OData protocol, metadata, SQL, and file operations (internal delegation).

The `data` package is primarily internal; the high-level `DataverseClient` in the `client` module wraps and exposes:
- CRUD operations via OData
- Metadata management (create/update/delete tables and columns)
- SQL query execution
- File upload handling

Users interact with these via `DataverseClient` methods (e.g., `create()`, `get()`, `update()`, `delete()`, `create_table()`, `query_sql()`, `upload_file()`).

## extensions Package (Placeholder)

Reserved for future extension points (e.g., custom adapters, middleware).

Currently empty; use core and client modules for current functionality.

## models Package (Placeholder)

Reserved for future data model definitions and type definitions.

Currently empty. Data structures return as `dict` (OData) and are JSON-serializable.

## utils Package (Placeholder)

Reserved for utility adapters and helpers.

Currently empty. Helper functions may be added in future releases.

## client Module

Main user-facing API.

### DataverseClient Class

High-level client for all Dataverse operations.

```python
from azure.identity import InteractiveBrowserCredential
from PowerPlatform.Dataverse.client import DataverseClient
from PowerPlatform.Dataverse.core.config import DataverseConfig

# Create credential
credential = InteractiveBrowserCredential()

# Optionally configure
cfg = DataverseConfig(language_code=1033)

# Create client
client = DataverseClient(
    base_url="https://org.crm.dynamics.com",
    credential=credential,
    config=cfg  # optional
)
```

#### CRUD Methods

- `create(table_schema_name, records)` → `list[str]` — Create records, return GUIDs.
- `get(table_schema_name, record_id=None, select, filter, orderby, top, expand, page_size)` → Record(s).
- `update(table_schema_name, ids, changes)` → `None` — Update records.
- `delete(table_schema_name, ids, use_bulk_delete=True)` → `str | None` — Delete records.

#### Metadata Methods

- `create_table(table_schema_name, columns, solution_unique_name, primary_column_schema_name)` → Metadata dict.
- `create_columns(table_schema_name, columns)` → `list[str]`.
- `delete_columns(table_schema_name, columns)` → `list[str]`.
- `delete_table(table_schema_name)` → `None`.
- `get_table_info(table_schema_name)` → Metadata dict or `None`.
- `list_tables()` → `list[str]`.

#### SQL & Utilities

- `query_sql(sql)` → `list[dict]` — Execute read-only SQL.
- `upload_file(table_schema_name, record_id, file_name_attribute, path, mode, mime_type, if_none_match)` → `None` — Upload to file column.
- `flush_cache(kind)` → `int` — Clear SDK caches (e.g., `"picklist"`).

## Imports Summary

```python
# Main client
from PowerPlatform.Dataverse.client import DataverseClient

# Configuration
from PowerPlatform.Dataverse.core.config import DataverseConfig

# Errors
from PowerPlatform.Dataverse.core.errors import (
    DataverseError,
    ValidationError,
    MetadataError,
    HttpError,
    SQLParseError,
)
```

## References

- Module docs: https://learn.microsoft.com/en-us/python/api/powerplatform-dataverse-client/
- Core: https://learn.microsoft.com/en-us/python/api/powerplatform-dataverse-client/powerplatform.dataverse.core
- Data: https://learn.microsoft.com/en-us/python/api/powerplatform-dataverse-client/powerplatform.dataverse.data
- Extensions: https://learn.microsoft.com/en-us/python/api/powerplatform-dataverse-client/powerplatform.dataverse.extensions
- Models: https://learn.microsoft.com/en-us/python/api/powerplatform-dataverse-client/powerplatform.dataverse.models
- Utils: https://learn.microsoft.com/en-us/python/api/powerplatform-dataverse-client/powerplatform.dataverse.utils
- Client: https://learn.microsoft.com/en-us/python/api/powerplatform-dataverse-client/powerplatform.dataverse.client

© github · MIT · github/awesome-copilot

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой