🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more

fabric-scheduler

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fabric-scheduler

Effortlessly automate and manage schedules for Microsoft Fabric artifacts using a user-friendly Python API.

1.0.1
Maintainers
1

================= Fabric Scheduler

.. _url_definitions:

.. URLs for badges and documentation references .. These are hidden from direct view but used throughout documentation

.. _url_docs: https://fabric-scheduler.readthedocs.io/en/stable/ .. _url_pypi: https://pypi.org/project/fabric-scheduler/ .. _url_pypi_downloads: https://pypi.org/project/fabric-scheduler/#files .. _url_python: https://www.python.org/ .. _url_pyscaffold: https://pyscaffold.org/ .. _url_opensource: https://opensource.org/ .. _url_github: https://github.com/shahlaukik/fabric_scheduler .. _url_releases: https://github.com/shahlaukik/fabric_scheduler/releases/latest .. _url_issues: https://github.com/shahlaukik/fabric_scheduler/issues

.. image:: https://readthedocs.org/projects/fabric_scheduler/badge/?version=latest :alt: ReadTheDocs :target: url_docs_ .. image:: https://img.shields.io/pypi/v/fabric-scheduler.svg :alt: PyPI-Server :target: url_pypi_ .. image:: https://img.shields.io/pypi/dm/fabric-scheduler :alt: PyPI - Downloads :target: url_pypi_downloads_ .. image:: https://img.shields.io/badge/-Python-3776AB?logo=python&logoColor=ffffff :alt: Python :target: url_python_ .. image:: https://img.shields.io/pypi/l/fabric-scheduler :alt: PyPI - License

|

Fabric Scheduler is a comprehensive Python API wrapper that simplifies the scheduling of Microsoft Fabric artifacts (Notebooks, Dataflows, Pipelines) using the Fabric REST API.

.. note:: This package is designed exclusively for use within Microsoft Fabric notebooks and integrates with the Microsoft Fabric REST API.

Key Features

  • Automated Scheduling: Create and manage schedules for Fabric artifacts with minimal code
  • Multiple Input Methods: Use dictionaries, CSV files, or CSV strings to define schedules
  • Validation & Error Handling: Robust validation with clear error messages
  • Schedule Management: Create, retrieve, and delete schedules with ease

Use Cases

Fabric Scheduler addresses several common challenges in Microsoft Fabric environments:

  • Efficiency in Multi-Workspace Environments: Manually scheduling artifacts across multiple workspaces is time-consuming. Fabric Scheduler automates this process.

  • Support for Git Integration: As engineering teams emphasize Git integration and deployment pipelines, Fabric Scheduler ensures schedules can be version-controlled and deployed alongside artifacts.

  • Schedule Preservation: When deploying artifacts to different workspaces, Fabric's native tools don't carry forward schedules. Fabric Scheduler solves this by allowing you to programmatically define and apply schedules.

  • Multiple Schedule Support: Fabric's UI doesn't support creating multiple schedules for the same artifact. Fabric Scheduler enables more complex scheduling patterns.

  • Standardization Across Teams: Implement consistent scheduling practices across engineering teams with a code-based approach.

Installation

.. code-block:: bash

pip install fabric_scheduler

Getting Started

Basic Usage

.. code-block:: python

from fabric_scheduler import ArtifactScheduler

# Initialize scheduler
scheduler = ArtifactScheduler()
# OR ArtifactScheduler(workspace_id="your-workspace-id")

# Set artifacts to schedule from list of dictionaries
artifacts = [
    {
        "displayName": "DailyAnalytics",
        "schedule": {
            "enabled": True,
            "config": {
                "type": "Daily",
                "times": ["08:00", "17:00"]
            }
        }
    },
    {
        "displayName": "WeeklyReport",
        "schedule": {
            "enabled": True,
            "config": {
                "type": "Weekly",
                "weekdays": ["Monday", "Wednesday"],
                "times": ["10:00"]
            }
        }
    },
]
scheduler.set_artifacts(artifacts)

# Create schedules
scheduler.create_schedules()

Input Methods

Dictionary Input

Define a list of dictionaries with familiar notation like JSON, and pass it to the set_artifacts method.

.. code-block:: python

scheduler.set_artifacts([
    {
        "displayName": "MyNotebook",
        "type": "Notebook",
        "schedule": {
            "enabled": True,
            "config": {
                "type": "Cron",
                "interval": 240,
                "localTimeZone": "India Standard Time",
            }
        }
    },
])

CSV File Input

Upload the CSV file and pass the file name to the load_artifacts_from_csv method.

.. code-block:: python

scheduler.load_artifacts_from_csv("artifact_schedule.csv")

Example CSV structure:

.. code-block::

displayName,type,enabled,schedule type,localTimeZone,startDate,startTime,endDate,endTime,interval,times,weekdays
SalesReportNotebook,Notebook,true,Cron,,3/30/2025,2:00,,,240,,
DataPipelineETL,Pipeline,true,Daily,,,,,,,"08:00,17:00",
WeeklyAnalyticsDataflow,Dataflow,true,Weekly,,,,,,,"08:00","Monday,Wednesday"

CSV String Input

Pass a CSV string directly to the load_artifacts_from_csv method.

.. code-block:: python

csv_content = '''
displayName,type,enabled,schedule type,localTimeZone,startDate,startTime,endDate,endTime,interval,times,weekdays
SalesReportNotebook,Notebook,true,Cron,,3/30/2025,2:00,,,240,,
DataPipelineETL,Pipeline,true,Daily,,,,,,,"08:00,17:00",
WeeklyAnalyticsDataflow,Dataflow,true,Weekly,,,,,,,"08:00","Monday,Wednesday"
'''
scheduler.load_artifacts_from_csv(csv_content)

Advanced Usage

For more detailed examples and advanced usage scenarios, please refer to the detailed guide <https://fabric-scheduler.readthedocs.io/en/stable/detailed_guide.html>_ section of our documentation.

API Reference

For comprehensive API documentation, please visit the API reference <https://fabric-scheduler.readthedocs.io/en/stable/api/modules.html>_ section of our documentation.

Contributing

Contributions are welcome! Please see our contributing guide <https://fabric-scheduler.readthedocs.io/en/stable/contributing.html>_ for details on how to get started.

License

This project is licensed under the MIT License - see the license file <https://fabric-scheduler.readthedocs.io/en/stable/license.html>_ for details.

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts