A Python package providing helper functions to programmatically import Jupyter notebook content into Cloud platforms via REST APIs.
Reason this release was yanked:
Import statement bug & code error for folder creation API call.
Project description
Code2cloudNB
A Python package providing helper functions to programmatically import Jupyter notebook content into Azure Databricks, Azure Synapse and Microsoft Fabric workspaces via REST APIs.
Features
- Create folders and import Jupyter notebooks into Azure Databricks workspace.
- Import Jupyter notebooks into Azure Synapse Analytics workspace with support for Big Data Pools.
- Create folders and import Jupyter notebooks into Microsoft Fabric workspace, linked to Azure Fabric Capacity.
- Handles authentication using Personal Access Tokens (PAT) for Databricks, Azure AD
DefaultAzureCredentialfor Synapse and Azure ADManagedIdentityCredentialfor Fabric. - Returns detailed responses for success and error scenarios.
Installation
Install via PyPI once published:
pip install Code2cloudNB
Usage
Importing a notebook into Azure Databricks
import base64
from Code2cloudNB import import_code_to_databricks
# Your Databricks workspace info
host = "https://<databricks-instance>"
token = "<your-databricks-pat>"
domain_name = "<your-domain-or-username>"
target_path = "target/folder/path"
filename = "my_notebook"
# Load your notebook JSON file content and encode to base64
with open("notebook.ipynb", "rb") as f:
notebook_content = f.read()
encoded_string = base64.b64encode(notebook_content).decode()
response = import_code_to_databricks(host, token, domain_name, target_path, filename, encoded_string)
print(response)
Importing a notebook into Azure Synapse Analytics
from Code2cloudNB import import_code_to_synapse
import json
wName = "<your-synapse-workspace-name>"
target_path = "target_folder"
filename = "my_notebook"
pool_name = "<your-big-data-pool-name>"
api_version = "2021-06-01" # example API version
# Load notebook JSON content as Python dict
with open("notebook.ipynb", "r") as f:
notebook_json = json.load(f)
response = import_code_to_synapse(wName, target_path, filename, pool_name, notebook_json, api_version)
print(response)
Importing a notebook into Microsoft Fabric
import base64
from Code2cloudNB import import_code_to_fabric
wID = "<your-fabric-workspace-id>"
target_path = "<target-folder>"
filename = "my_notebook"
api_version = "v1" # example API version
# Load your notebook JSON file content and encode to base64
with open("notebook.ipynb", "rb") as f:
notebook_content = f.read()
encoded_string = base64.b64encode(notebook_content).decode('utf-8')
response = import_code_to_fabric(wID, target_path, filename, api_version, encoded_string)
print(response)
Prerequisites
-
For Databricks import:
- A valid Personal Access Token (PAT) with workspace permissions.
- Databricks workspace URL.
-
For Synapse import:
- Azure CLI or environment configured for Azure authentication.
- Appropriate Azure AD role assignments for accessing Synapse workspace.
azure-identityPython package installed forDefaultAzureCredentialsupport.- [Follow this link for step-by-step configuration details]
-
For Fabric import:
- Azure environment or VM's Managed Identity configured for Azure authentication.
- An
active(running)Azure Fabric Capacity, linked to the Fabric workspace. azure-identityPython package installed forManagedIdentityCredentialsupport.- Appropriate Role assignments for accessing Fabric workspace :
- create an
Azure Security Group. - add your
VM's object/principal ID (Managed Identity)as thememberof the group and keep yourself as theowner. - under the Fabric's
manage workspacestab, clickadd people + group, add your Security Group and grant it theContributorrole. - give it some time (~10-20mins) to propagate these permissions.
- create an
- [Resource]
pip install azure-identity requests
Error Handling
Each of the functions return dictionaries including HTTP status codes, results and error messages if any operation fails. Use these to troubleshoot or log issues.
License
This project is licensed under the MIT License - see the [LICENSE] (LICENSE) file for details.
Contributing
Feel free to open issues or submit pull requests to improve the package.
Author
Antick Mazumder — antick.majumder@gmail.com
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file code2cloudnb-0.1.1.tar.gz.
File metadata
- Download URL: code2cloudnb-0.1.1.tar.gz
- Upload date:
- Size: 5.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf7c596f8c3b5130e240b4332e605eea795b82f1399321a40523fd3a234990d2
|
|
| MD5 |
babea597ffbe94d983164b2f28e47505
|
|
| BLAKE2b-256 |
a2b7878cfc9eaec3af53b151e947dfe2da3517354741a1dbf9744a4477256633
|
File details
Details for the file code2cloudnb-0.1.1-py3-none-any.whl.
File metadata
- Download URL: code2cloudnb-0.1.1-py3-none-any.whl
- Upload date:
- Size: 6.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a23297313b8102c49cb14d77579555f325d42ccb6cfac4201f37d12f9206cc0c
|
|
| MD5 |
f3b1f95205fa866ddb897484bc4372f2
|
|
| BLAKE2b-256 |
f01d61644cbf13159e2f8b84a880e46d6325aa5f6e6a1db5dcbdb4713ec8f7d7
|