mindzie-api


Namemindzie-api JSON
Version 1.0.1 PyPI version JSON
download
home_pagehttps://github.com/mindzie/mindzie-api-python
SummaryOfficial Python client library for Mindzie Studio API
upload_time2025-08-20 21:43:44
maintainerNone
docs_urlNone
authorMindzie
requires_python>=3.8
licenseMIT
keywords mindzie api client studio process mining business intelligence data analysis
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Mindzie API Python Client

[![PyPI version](https://badge.fury.io/py/mindzie-api.svg)](https://badge.fury.io/py/mindzie-api)
[![Python Support](https://img.shields.io/pypi/pyversions/mindzie-api.svg)](https://pypi.org/project/mindzie-api/)
[![Documentation Status](https://readthedocs.org/projects/mindzie-api/badge/?version=latest)](https://docs.mindzie.com/api/python)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

Official Python client library for the Mindzie Studio API. This library provides comprehensive access to all Mindzie Studio API endpoints with a clean, Pythonic interface.

## Features

- ๐Ÿš€ **Complete API Coverage** - Access to all Mindzie Studio API endpoints
- ๐Ÿ” **Multiple Authentication Methods** - API Key, Bearer Token, and Azure AD support
- ๐Ÿ”„ **Automatic Retries** - Built-in retry logic with exponential backoff
- ๐Ÿ“ฆ **Type-Safe** - Full type hints and Pydantic models for all responses
- ๐Ÿ“ **File Upload Support** - Easy dataset creation from CSV, package, and binary files
- ๐Ÿ“„ **Pagination Handling** - Automatic pagination for large result sets
- ๐Ÿšฆ **Rate Limiting** - Respects API rate limits with automatic throttling
- โšก **Async Support** - Optional async/await support for high-performance applications
- ๐Ÿงช **Well-Tested** - Comprehensive test suite with >90% code coverage

## Installation

### Basic Installation

```bash
pip install mindzie-api
```

### With Async Support

```bash
pip install mindzie-api[async]
```

### With Azure AD Authentication

```bash
pip install mindzie-api[azure]
```

### Development Installation

```bash
pip install mindzie-api[dev]
```

## Quick Start

```python
from mindzie_api import MindzieAPIClient

# Initialize the client
client = MindzieAPIClient(
    base_url="https://dev.mindziestudio.com",
    tenant_id="your-tenant-id",
    api_key="your-api-key"
)

# Get all projects
projects = client.projects.get_all()
for project in projects.projects:
    print(f"Project: {project.project_name} (ID: {project.project_id})")

# Get datasets for a project
datasets = client.datasets.get_all(project_id="your-project-id")
print(f"Found {datasets['TotalCount']} datasets")

# Create a dataset from CSV
dataset = client.datasets.create_from_csv(
    project_id="your-project-id",
    dataset_name="Sales Data 2024",
    case_id_column="order_id",
    activity_name_column="activity",
    activity_time_column="timestamp",
    csv_file="path/to/your/data.csv"
)
```

## Configuration

### Environment Variables

The client can be configured using environment variables:

```bash
export MINDZIE_API_URL="https://dev.mindziestudio.com"
export MINDZIE_TENANT_ID="your-tenant-id"
export MINDZIE_API_KEY="your-api-key"
```

Then initialize without parameters:

```python
client = MindzieAPIClient()
```

### Configuration File

Create a `.env` file in your project:

```env
MINDZIE_API_URL=https://dev.mindziestudio.com
MINDZIE_TENANT_ID=your-tenant-id
MINDZIE_API_KEY=your-api-key
```

## Authentication

### API Key Authentication (Default)

```python
client = MindzieAPIClient(
    base_url="https://dev.mindziestudio.com",
    tenant_id="your-tenant-id",
    api_key="your-api-key"
)
```

### Bearer Token Authentication

```python
from mindzie_api import MindzieAPIClient
from mindzie_api.constants import AuthType

client = MindzieAPIClient(
    base_url="https://dev.mindziestudio.com",
    tenant_id="your-tenant-id",
    auth_type=AuthType.BEARER,
    token="your-bearer-token"
)
```

### Azure AD Authentication

```python
from mindzie_api import MindzieAPIClient
from mindzie_api.constants import AuthType

client = MindzieAPIClient(
    base_url="https://dev.mindziestudio.com",
    tenant_id="your-tenant-id",
    auth_type=AuthType.AZURE_AD,
    azure_tenant_id="azure-tenant-id",
    azure_client_id="azure-client-id",
    azure_client_secret="azure-client-secret"
)
```

## API Examples

### Projects

```python
# List all projects
projects = client.projects.get_all(page=1, page_size=50)

# Get project by ID
project = client.projects.get_by_id("project-id")

# Get project summary
summary = client.projects.get_summary("project-id")

# Search projects
results = client.projects.search(
    name_contains="Sales",
    is_active=True,
    min_datasets=5
)
```

### Datasets

```python
# Get all datasets
datasets = client.datasets.get_all("project-id")

# Create dataset from CSV
dataset = client.datasets.create_from_csv(
    project_id="project-id",
    dataset_name="Customer Journey",
    case_id_column="customer_id",
    activity_name_column="action",
    activity_time_column="timestamp",
    csv_file="data.csv",
    resource_column="department",  # Optional
    culture_info="en-US"
)

# Update dataset
updated = client.datasets.update_from_csv(
    project_id="project-id",
    dataset_id="dataset-id",
    case_id_column="customer_id",
    activity_name_column="action",
    activity_time_column="timestamp",
    csv_file="updated_data.csv"
)
```

### Investigations

```python
# Get all investigations
investigations = client.investigations.get_all("project-id")

# Create investigation
investigation = client.investigations.create(
    project_id="project-id",
    name="Q4 Analysis",
    description="Quarterly performance review",
    dataset_id="dataset-id"
)

# Get investigation notebooks
notebooks = client.investigations.get_notebooks(
    project_id="project-id",
    investigation_id="investigation-id"
)
```

### Notebooks

```python
# Get notebook
notebook = client.notebooks.get(
    project_id="project-id",
    notebook_id="notebook-id"
)

# Execute notebook
execution = client.notebooks.execute(
    project_id="project-id",
    notebook_id="notebook-id"
)

# Check execution status
status = client.notebooks.get_execution_status(
    project_id="project-id",
    notebook_id="notebook-id"
)

# Get notebook blocks
blocks = client.notebooks.get_blocks(
    project_id="project-id",
    notebook_id="notebook-id"
)
```

### Blocks

```python
# Get block
block = client.blocks.get(
    project_id="project-id",
    block_id="block-id"
)

# Execute block
result = client.blocks.execute(
    project_id="project-id",
    block_id="block-id"
)

# Create filter block
filter_block = client.blocks.create_filter(
    project_id="project-id",
    name="High Value Orders",
    filter_expression="amount > 1000"
)

# Get block output data
output = client.blocks.get_output_data(
    project_id="project-id",
    block_id="block-id"
)
```

### Dashboards

```python
# Get all dashboards
dashboards = client.dashboards.get_all("project-id")

# Get dashboard panels
panels = client.dashboards.get_panels(
    project_id="project-id",
    dashboard_id="dashboard-id"
)

# Get dashboard URL
url_info = client.dashboards.get_url(
    project_id="project-id",
    dashboard_id="dashboard-id"
)
```

### Execution Queue

```python
# Get execution queue
queue = client.execution.get_queue("project-id")

# Queue notebook execution
execution = client.execution.queue_notebook(
    project_id="project-id",
    notebook_id="notebook-id"
)

# Get execution history
history = client.execution.get_history(
    project_id="project-id",
    page=1,
    page_size=50
)

# Check execution status
status = client.execution.get_status(
    project_id="project-id",
    execution_id="execution-id"
)
```

## Error Handling

```python
from mindzie_api.exceptions import (
    MindzieAPIException,
    AuthenticationError,
    NotFoundError,
    ValidationError,
    RateLimitError,
    ServerError
)

try:
    project = client.projects.get_by_id("invalid-id")
except NotFoundError as e:
    print(f"Project not found: {e.message}")
except AuthenticationError as e:
    print(f"Authentication failed: {e.message}")
except ValidationError as e:
    print(f"Invalid request: {e.message}")
except RateLimitError as e:
    print(f"Rate limit exceeded. Retry after {e.retry_after} seconds")
except ServerError as e:
    print(f"Server error: {e.message}")
except MindzieAPIException as e:
    print(f"API error: {e.message}")
```

## Pagination

```python
# Manual pagination
page = 1
while True:
    response = client.projects.get_all(page=page, page_size=100)
    
    for project in response.projects:
        process_project(project)
    
    if not response.has_next:
        break
    
    page = response.next_page

# Automatic pagination (fetches all items)
all_projects = client.projects.list_projects()  # Handles pagination internally
```

## File Uploads

```python
# Upload from file path
dataset = client.datasets.create_from_csv(
    project_id="project-id",
    dataset_name="Sales Data",
    case_id_column="order_id",
    activity_name_column="status",
    activity_time_column="timestamp",
    csv_file="/path/to/data.csv"
)

# Upload from file object
with open("data.csv", "rb") as f:
    dataset = client.datasets.create_from_csv(
        project_id="project-id",
        dataset_name="Sales Data",
        case_id_column="order_id",
        activity_name_column="status",
        activity_time_column="timestamp",
        csv_file=f
    )

# Upload binary data
dataset = client.datasets.create_from_binary(
    project_id="project-id",
    dataset_name="Processed Data",
    binary_file="data.bin"
)
```

## Advanced Configuration

```python
client = MindzieAPIClient(
    base_url="https://dev.mindziestudio.com",
    tenant_id="your-tenant-id",
    api_key="your-api-key",
    timeout=60,  # Request timeout in seconds
    max_retries=5,  # Maximum retry attempts
    verify_ssl=True,  # SSL certificate verification
    proxies={  # Proxy configuration
        "http": "http://proxy.company.com:8080",
        "https": "https://proxy.company.com:8080"
    }
)
```

## Testing

Run the test suite:

```bash
# Install development dependencies
pip install -e ".[dev]"

# Run all tests
pytest

# Run with coverage
pytest --cov=mindzie_api

# Run specific test categories
pytest -m unit
pytest -m integration

# Run tests for specific module
pytest tests/unit/test_project.py
```

## Contributing

We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

## Support

- ๐Ÿ“ง Email: support@mindzie.com
- ๐Ÿ“– Documentation: [https://docs.mindzie.com/api/python](https://docs.mindzie.com/api/python)
- ๐Ÿ› Issues: [GitHub Issues](https://github.com/mindzie/mindzie-api-python/issues)
- ๐Ÿ’ฌ Discussions: [GitHub Discussions](https://github.com/mindzie/mindzie-api-python/discussions)

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Changelog

See [CHANGELOG.md](CHANGELOG.md) for a list of changes in each version.

## Authors

- **Mindzie Development Team** - *Initial work* - [Mindzie](https://github.com/mindzie)

## Acknowledgments

- Thanks to all contributors who have helped improve this library
- Built with love using Python, Pydantic, and Requests

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/mindzie/mindzie-api-python",
    "name": "mindzie-api",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "Mindzie Development Team <dev@mindzie.com>",
    "keywords": "mindzie, api, client, studio, process mining, business intelligence, data analysis",
    "author": "Mindzie",
    "author_email": "Mindzie <support@mindzie.com>",
    "download_url": "https://files.pythonhosted.org/packages/bd/b9/b64a28b15845325b59b32f0f6966d24ac808c148016ab2c13595d5257dcb/mindzie_api-1.0.1.tar.gz",
    "platform": null,
    "description": "# Mindzie API Python Client\r\n\r\n[![PyPI version](https://badge.fury.io/py/mindzie-api.svg)](https://badge.fury.io/py/mindzie-api)\r\n[![Python Support](https://img.shields.io/pypi/pyversions/mindzie-api.svg)](https://pypi.org/project/mindzie-api/)\r\n[![Documentation Status](https://readthedocs.org/projects/mindzie-api/badge/?version=latest)](https://docs.mindzie.com/api/python)\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\r\n\r\nOfficial Python client library for the Mindzie Studio API. This library provides comprehensive access to all Mindzie Studio API endpoints with a clean, Pythonic interface.\r\n\r\n## Features\r\n\r\n- \ud83d\ude80 **Complete API Coverage** - Access to all Mindzie Studio API endpoints\r\n- \ud83d\udd10 **Multiple Authentication Methods** - API Key, Bearer Token, and Azure AD support\r\n- \ud83d\udd04 **Automatic Retries** - Built-in retry logic with exponential backoff\r\n- \ud83d\udce6 **Type-Safe** - Full type hints and Pydantic models for all responses\r\n- \ud83d\udcc1 **File Upload Support** - Easy dataset creation from CSV, package, and binary files\r\n- \ud83d\udcc4 **Pagination Handling** - Automatic pagination for large result sets\r\n- \ud83d\udea6 **Rate Limiting** - Respects API rate limits with automatic throttling\r\n- \u26a1 **Async Support** - Optional async/await support for high-performance applications\r\n- \ud83e\uddea **Well-Tested** - Comprehensive test suite with >90% code coverage\r\n\r\n## Installation\r\n\r\n### Basic Installation\r\n\r\n```bash\r\npip install mindzie-api\r\n```\r\n\r\n### With Async Support\r\n\r\n```bash\r\npip install mindzie-api[async]\r\n```\r\n\r\n### With Azure AD Authentication\r\n\r\n```bash\r\npip install mindzie-api[azure]\r\n```\r\n\r\n### Development Installation\r\n\r\n```bash\r\npip install mindzie-api[dev]\r\n```\r\n\r\n## Quick Start\r\n\r\n```python\r\nfrom mindzie_api import MindzieAPIClient\r\n\r\n# Initialize the client\r\nclient = MindzieAPIClient(\r\n    base_url=\"https://dev.mindziestudio.com\",\r\n    tenant_id=\"your-tenant-id\",\r\n    api_key=\"your-api-key\"\r\n)\r\n\r\n# Get all projects\r\nprojects = client.projects.get_all()\r\nfor project in projects.projects:\r\n    print(f\"Project: {project.project_name} (ID: {project.project_id})\")\r\n\r\n# Get datasets for a project\r\ndatasets = client.datasets.get_all(project_id=\"your-project-id\")\r\nprint(f\"Found {datasets['TotalCount']} datasets\")\r\n\r\n# Create a dataset from CSV\r\ndataset = client.datasets.create_from_csv(\r\n    project_id=\"your-project-id\",\r\n    dataset_name=\"Sales Data 2024\",\r\n    case_id_column=\"order_id\",\r\n    activity_name_column=\"activity\",\r\n    activity_time_column=\"timestamp\",\r\n    csv_file=\"path/to/your/data.csv\"\r\n)\r\n```\r\n\r\n## Configuration\r\n\r\n### Environment Variables\r\n\r\nThe client can be configured using environment variables:\r\n\r\n```bash\r\nexport MINDZIE_API_URL=\"https://dev.mindziestudio.com\"\r\nexport MINDZIE_TENANT_ID=\"your-tenant-id\"\r\nexport MINDZIE_API_KEY=\"your-api-key\"\r\n```\r\n\r\nThen initialize without parameters:\r\n\r\n```python\r\nclient = MindzieAPIClient()\r\n```\r\n\r\n### Configuration File\r\n\r\nCreate a `.env` file in your project:\r\n\r\n```env\r\nMINDZIE_API_URL=https://dev.mindziestudio.com\r\nMINDZIE_TENANT_ID=your-tenant-id\r\nMINDZIE_API_KEY=your-api-key\r\n```\r\n\r\n## Authentication\r\n\r\n### API Key Authentication (Default)\r\n\r\n```python\r\nclient = MindzieAPIClient(\r\n    base_url=\"https://dev.mindziestudio.com\",\r\n    tenant_id=\"your-tenant-id\",\r\n    api_key=\"your-api-key\"\r\n)\r\n```\r\n\r\n### Bearer Token Authentication\r\n\r\n```python\r\nfrom mindzie_api import MindzieAPIClient\r\nfrom mindzie_api.constants import AuthType\r\n\r\nclient = MindzieAPIClient(\r\n    base_url=\"https://dev.mindziestudio.com\",\r\n    tenant_id=\"your-tenant-id\",\r\n    auth_type=AuthType.BEARER,\r\n    token=\"your-bearer-token\"\r\n)\r\n```\r\n\r\n### Azure AD Authentication\r\n\r\n```python\r\nfrom mindzie_api import MindzieAPIClient\r\nfrom mindzie_api.constants import AuthType\r\n\r\nclient = MindzieAPIClient(\r\n    base_url=\"https://dev.mindziestudio.com\",\r\n    tenant_id=\"your-tenant-id\",\r\n    auth_type=AuthType.AZURE_AD,\r\n    azure_tenant_id=\"azure-tenant-id\",\r\n    azure_client_id=\"azure-client-id\",\r\n    azure_client_secret=\"azure-client-secret\"\r\n)\r\n```\r\n\r\n## API Examples\r\n\r\n### Projects\r\n\r\n```python\r\n# List all projects\r\nprojects = client.projects.get_all(page=1, page_size=50)\r\n\r\n# Get project by ID\r\nproject = client.projects.get_by_id(\"project-id\")\r\n\r\n# Get project summary\r\nsummary = client.projects.get_summary(\"project-id\")\r\n\r\n# Search projects\r\nresults = client.projects.search(\r\n    name_contains=\"Sales\",\r\n    is_active=True,\r\n    min_datasets=5\r\n)\r\n```\r\n\r\n### Datasets\r\n\r\n```python\r\n# Get all datasets\r\ndatasets = client.datasets.get_all(\"project-id\")\r\n\r\n# Create dataset from CSV\r\ndataset = client.datasets.create_from_csv(\r\n    project_id=\"project-id\",\r\n    dataset_name=\"Customer Journey\",\r\n    case_id_column=\"customer_id\",\r\n    activity_name_column=\"action\",\r\n    activity_time_column=\"timestamp\",\r\n    csv_file=\"data.csv\",\r\n    resource_column=\"department\",  # Optional\r\n    culture_info=\"en-US\"\r\n)\r\n\r\n# Update dataset\r\nupdated = client.datasets.update_from_csv(\r\n    project_id=\"project-id\",\r\n    dataset_id=\"dataset-id\",\r\n    case_id_column=\"customer_id\",\r\n    activity_name_column=\"action\",\r\n    activity_time_column=\"timestamp\",\r\n    csv_file=\"updated_data.csv\"\r\n)\r\n```\r\n\r\n### Investigations\r\n\r\n```python\r\n# Get all investigations\r\ninvestigations = client.investigations.get_all(\"project-id\")\r\n\r\n# Create investigation\r\ninvestigation = client.investigations.create(\r\n    project_id=\"project-id\",\r\n    name=\"Q4 Analysis\",\r\n    description=\"Quarterly performance review\",\r\n    dataset_id=\"dataset-id\"\r\n)\r\n\r\n# Get investigation notebooks\r\nnotebooks = client.investigations.get_notebooks(\r\n    project_id=\"project-id\",\r\n    investigation_id=\"investigation-id\"\r\n)\r\n```\r\n\r\n### Notebooks\r\n\r\n```python\r\n# Get notebook\r\nnotebook = client.notebooks.get(\r\n    project_id=\"project-id\",\r\n    notebook_id=\"notebook-id\"\r\n)\r\n\r\n# Execute notebook\r\nexecution = client.notebooks.execute(\r\n    project_id=\"project-id\",\r\n    notebook_id=\"notebook-id\"\r\n)\r\n\r\n# Check execution status\r\nstatus = client.notebooks.get_execution_status(\r\n    project_id=\"project-id\",\r\n    notebook_id=\"notebook-id\"\r\n)\r\n\r\n# Get notebook blocks\r\nblocks = client.notebooks.get_blocks(\r\n    project_id=\"project-id\",\r\n    notebook_id=\"notebook-id\"\r\n)\r\n```\r\n\r\n### Blocks\r\n\r\n```python\r\n# Get block\r\nblock = client.blocks.get(\r\n    project_id=\"project-id\",\r\n    block_id=\"block-id\"\r\n)\r\n\r\n# Execute block\r\nresult = client.blocks.execute(\r\n    project_id=\"project-id\",\r\n    block_id=\"block-id\"\r\n)\r\n\r\n# Create filter block\r\nfilter_block = client.blocks.create_filter(\r\n    project_id=\"project-id\",\r\n    name=\"High Value Orders\",\r\n    filter_expression=\"amount > 1000\"\r\n)\r\n\r\n# Get block output data\r\noutput = client.blocks.get_output_data(\r\n    project_id=\"project-id\",\r\n    block_id=\"block-id\"\r\n)\r\n```\r\n\r\n### Dashboards\r\n\r\n```python\r\n# Get all dashboards\r\ndashboards = client.dashboards.get_all(\"project-id\")\r\n\r\n# Get dashboard panels\r\npanels = client.dashboards.get_panels(\r\n    project_id=\"project-id\",\r\n    dashboard_id=\"dashboard-id\"\r\n)\r\n\r\n# Get dashboard URL\r\nurl_info = client.dashboards.get_url(\r\n    project_id=\"project-id\",\r\n    dashboard_id=\"dashboard-id\"\r\n)\r\n```\r\n\r\n### Execution Queue\r\n\r\n```python\r\n# Get execution queue\r\nqueue = client.execution.get_queue(\"project-id\")\r\n\r\n# Queue notebook execution\r\nexecution = client.execution.queue_notebook(\r\n    project_id=\"project-id\",\r\n    notebook_id=\"notebook-id\"\r\n)\r\n\r\n# Get execution history\r\nhistory = client.execution.get_history(\r\n    project_id=\"project-id\",\r\n    page=1,\r\n    page_size=50\r\n)\r\n\r\n# Check execution status\r\nstatus = client.execution.get_status(\r\n    project_id=\"project-id\",\r\n    execution_id=\"execution-id\"\r\n)\r\n```\r\n\r\n## Error Handling\r\n\r\n```python\r\nfrom mindzie_api.exceptions import (\r\n    MindzieAPIException,\r\n    AuthenticationError,\r\n    NotFoundError,\r\n    ValidationError,\r\n    RateLimitError,\r\n    ServerError\r\n)\r\n\r\ntry:\r\n    project = client.projects.get_by_id(\"invalid-id\")\r\nexcept NotFoundError as e:\r\n    print(f\"Project not found: {e.message}\")\r\nexcept AuthenticationError as e:\r\n    print(f\"Authentication failed: {e.message}\")\r\nexcept ValidationError as e:\r\n    print(f\"Invalid request: {e.message}\")\r\nexcept RateLimitError as e:\r\n    print(f\"Rate limit exceeded. Retry after {e.retry_after} seconds\")\r\nexcept ServerError as e:\r\n    print(f\"Server error: {e.message}\")\r\nexcept MindzieAPIException as e:\r\n    print(f\"API error: {e.message}\")\r\n```\r\n\r\n## Pagination\r\n\r\n```python\r\n# Manual pagination\r\npage = 1\r\nwhile True:\r\n    response = client.projects.get_all(page=page, page_size=100)\r\n    \r\n    for project in response.projects:\r\n        process_project(project)\r\n    \r\n    if not response.has_next:\r\n        break\r\n    \r\n    page = response.next_page\r\n\r\n# Automatic pagination (fetches all items)\r\nall_projects = client.projects.list_projects()  # Handles pagination internally\r\n```\r\n\r\n## File Uploads\r\n\r\n```python\r\n# Upload from file path\r\ndataset = client.datasets.create_from_csv(\r\n    project_id=\"project-id\",\r\n    dataset_name=\"Sales Data\",\r\n    case_id_column=\"order_id\",\r\n    activity_name_column=\"status\",\r\n    activity_time_column=\"timestamp\",\r\n    csv_file=\"/path/to/data.csv\"\r\n)\r\n\r\n# Upload from file object\r\nwith open(\"data.csv\", \"rb\") as f:\r\n    dataset = client.datasets.create_from_csv(\r\n        project_id=\"project-id\",\r\n        dataset_name=\"Sales Data\",\r\n        case_id_column=\"order_id\",\r\n        activity_name_column=\"status\",\r\n        activity_time_column=\"timestamp\",\r\n        csv_file=f\r\n    )\r\n\r\n# Upload binary data\r\ndataset = client.datasets.create_from_binary(\r\n    project_id=\"project-id\",\r\n    dataset_name=\"Processed Data\",\r\n    binary_file=\"data.bin\"\r\n)\r\n```\r\n\r\n## Advanced Configuration\r\n\r\n```python\r\nclient = MindzieAPIClient(\r\n    base_url=\"https://dev.mindziestudio.com\",\r\n    tenant_id=\"your-tenant-id\",\r\n    api_key=\"your-api-key\",\r\n    timeout=60,  # Request timeout in seconds\r\n    max_retries=5,  # Maximum retry attempts\r\n    verify_ssl=True,  # SSL certificate verification\r\n    proxies={  # Proxy configuration\r\n        \"http\": \"http://proxy.company.com:8080\",\r\n        \"https\": \"https://proxy.company.com:8080\"\r\n    }\r\n)\r\n```\r\n\r\n## Testing\r\n\r\nRun the test suite:\r\n\r\n```bash\r\n# Install development dependencies\r\npip install -e \".[dev]\"\r\n\r\n# Run all tests\r\npytest\r\n\r\n# Run with coverage\r\npytest --cov=mindzie_api\r\n\r\n# Run specific test categories\r\npytest -m unit\r\npytest -m integration\r\n\r\n# Run tests for specific module\r\npytest tests/unit/test_project.py\r\n```\r\n\r\n## Contributing\r\n\r\nWe welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.\r\n\r\n1. Fork the repository\r\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\r\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\r\n4. Push to the branch (`git push origin feature/amazing-feature`)\r\n5. Open a Pull Request\r\n\r\n## Support\r\n\r\n- \ud83d\udce7 Email: support@mindzie.com\r\n- \ud83d\udcd6 Documentation: [https://docs.mindzie.com/api/python](https://docs.mindzie.com/api/python)\r\n- \ud83d\udc1b Issues: [GitHub Issues](https://github.com/mindzie/mindzie-api-python/issues)\r\n- \ud83d\udcac Discussions: [GitHub Discussions](https://github.com/mindzie/mindzie-api-python/discussions)\r\n\r\n## License\r\n\r\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\r\n\r\n## Changelog\r\n\r\nSee [CHANGELOG.md](CHANGELOG.md) for a list of changes in each version.\r\n\r\n## Authors\r\n\r\n- **Mindzie Development Team** - *Initial work* - [Mindzie](https://github.com/mindzie)\r\n\r\n## Acknowledgments\r\n\r\n- Thanks to all contributors who have helped improve this library\r\n- Built with love using Python, Pydantic, and Requests\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Official Python client library for Mindzie Studio API",
    "version": "1.0.1",
    "project_urls": {
        "Changelog": "https://github.com/mindzie/mindzie-api-python/blob/main/CHANGELOG.md",
        "Documentation": "https://docs.mindzie.com/api/python",
        "Homepage": "https://github.com/mindzie/mindzie-api-python",
        "Issues": "https://github.com/mindzie/mindzie-api-python/issues",
        "Repository": "https://github.com/mindzie/mindzie-api-python"
    },
    "split_keywords": [
        "mindzie",
        " api",
        " client",
        " studio",
        " process mining",
        " business intelligence",
        " data analysis"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f595966a9b179ec299da76392cbb6004ec0908283b2a70e119ed92848b54fea3",
                "md5": "f4a997eabe759efb2c6b6e1691c241ac",
                "sha256": "b8af8eb55973b9e18a583fcd7ca7e6412459778e4bf4370d9d0faf66678ade42"
            },
            "downloads": -1,
            "filename": "mindzie_api-1.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f4a997eabe759efb2c6b6e1691c241ac",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 37094,
            "upload_time": "2025-08-20T21:43:42",
            "upload_time_iso_8601": "2025-08-20T21:43:42.826647Z",
            "url": "https://files.pythonhosted.org/packages/f5/95/966a9b179ec299da76392cbb6004ec0908283b2a70e119ed92848b54fea3/mindzie_api-1.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bdb9b64a28b15845325b59b32f0f6966d24ac808c148016ab2c13595d5257dcb",
                "md5": "2fb3584387cb388dbd7012ef28ffb3d3",
                "sha256": "3eaa4e47eff72105e24454304cca9bbb37232414bf02ab845494ae9480f0ac5f"
            },
            "downloads": -1,
            "filename": "mindzie_api-1.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "2fb3584387cb388dbd7012ef28ffb3d3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 40925,
            "upload_time": "2025-08-20T21:43:44",
            "upload_time_iso_8601": "2025-08-20T21:43:44.157771Z",
            "url": "https://files.pythonhosted.org/packages/bd/b9/b64a28b15845325b59b32f0f6966d24ac808c148016ab2c13595d5257dcb/mindzie_api-1.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-20 21:43:44",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "mindzie",
    "github_project": "mindzie-api-python",
    "github_not_found": true,
    "lcname": "mindzie-api"
}
        
Elapsed time: 1.51807s