SDK Para interação de automações com a plataforma de monitoramento.
Project description
ZSync Tech Studio SDK
SDK oficial da ZSync Tech para integração com o ZSync Tech Studio, uma plataforma de automação de processos. Este SDK permite que você desenvolva robôs de automação que se integram perfeitamente com o ecossistema ZSync Tech.
📋 Índice
- Instalação
- Configuração Inicial
- Conceitos Básicos
- Guia de Uso
- Exemplo Completo
- API Reference
- Dependências
- Suporte
🚀 Instalação via pip
pip install zsynctech-studio-sdk
🚀 Instalação via uv
uv add zsynctech-studio-sdk
⚙️ Configuração Inicial
Antes de usar o SDK, você precisa configurar suas credenciais:
from zsynctech_studio_sdk import set_credentials
# Configure suas credenciais
set_credentials(
secret_key="sua_secret_key",
instance_id="seu_instance_id",
server="https://seu-servidor.com"
)
🧠 Conceitos Básicos
O ZSync Tech Studio SDK trabalha com uma hierarquia de conceitos:
- Execution (Execução): Representa uma execução completa de um robô
- Task (Tarefa): Uma tarefa específica dentro de uma execução
- Step (Passo): Um passo individual dentro de uma tarefa
Cada nível pode ter diferentes status e observações para rastreamento detalhado.
📖 Guia de Uso
StartService - Recebendo Configurações
O StartService permite que seu robô receba configurações via RabbitMQ:
from zsynctech_studio_sdk import StartService
# Configure o serviço
start_service = StartService(
rabbitmq_url="amqp://usuario:senha@servidor:5672/",
heartbeat=5400
)
# Verificar se há configurações disponíveis
config = start_service.get_start_config()
if config:
print(f"Execução recebida: {config.executionId}")
# Processar a configuração...
# Ou usar um listener contínuo
def process_config(config):
print(f"Processando execução: {config.executionId}")
# Sua lógica aqui...
start_service.start_listener(process_config)
Execution - Gerenciando Execuções
A classe Execution gerencia o ciclo de vida de uma execução:
from zsynctech_studio_sdk import Execution, ExecutionStatus
# Criar uma execução
execution = Execution(config.executionId)
# Iniciar a execução
execution.start("Iniciando processamento...")
# Atualizar progresso
execution.set_total_task_count(100)
execution.update_current_task_count(50)
# Atualizar observação
execution.update_observation("Processando dados...")
# Finalizar com sucesso
execution.finished("Processamento concluído com sucesso!")
# Ou em caso de erro
execution.error("Erro ao processar dados")
Task - Gerenciando Tarefas
A classe Task gerencia tarefas individuais:
from zsynctech_studio_sdk import Task
# Criar uma tarefa
task = Task(
execution_id=execution.execution_id,
code="TASK_001",
description="Processar arquivo de dados"
)
# Usar como context manager (recomendado)
with task:
# Sua lógica aqui
process_file()
# Status será automaticamente SUCCESS ou FAIL
# Ou gerenciar manualmente
task.start("Iniciando processamento do arquivo")
try:
process_file()
task.success("Arquivo processado com sucesso")
except Exception as e:
task.fail(f"Erro ao processar arquivo: {str(e)}")
Step - Gerenciando Passos
A classe Step gerencia passos individuais dentro de uma tarefa:
from zsynctech_studio_sdk import Step
# Criar um passo
step = Step(
task_id=task.task_id,
code="STEP_001",
observation="Validando dados"
)
# Usar como context manager (recomendado)
with step:
# Sua lógica aqui
validate_data()
# Status será automaticamente SUCCESS ou FAIL
# Ou gerenciar manualmente
step._start("Iniciando validação")
try:
validate_data()
step.success("Dados validados com sucesso")
except Exception as e:
step.fail(f"Erro na validação: {str(e)}")
💡 Exemplo Completo
from zsynctech_studio_sdk import (
set_credentials, StartService, Execution, Task, Step
)
# 1. Configurar credenciais
set_credentials(
secret_key="sua_secret_key",
instance_id="seu_instance_id",
server="https://seu-servidor.com"
)
# 2. Configurar StartService
start_service = StartService("amqp://usuario:senha@servidor:5672/")
def process_automation(config):
"""Função principal de processamento"""
# 3. Criar execução
execution = Execution(config.executionId)
execution.start("Iniciando automação")
try:
# 4. Definir total de tarefas
execution.set_total_task_count(3)
# 5. Processar cada tarefa
for i, data in enumerate(data_to_process):
with Task(execution.execution_id, f"TASK_{i:03d}", f"Processar {data}") as task:
# 6. Processar passos da tarefa
with Step(task.task_id, "VALIDATE", "Validando arquivo") as step:
validate_file(data)
with Step(task.task_id, "PROCESS", "Processando dados") as step:
process_file(data)
with Step(task.task_id, "SAVE", "Salvando resultado") as step:
save_result(data)
# 7. Atualizar progresso
execution.update_current_task_count(i)
# 8. Finalizar com sucesso
execution.finished("Automação concluída com sucesso!")
except Exception as e:
execution.error(f"Erro na automação: {str(e)}")
# 9. Iniciar listener
start_service.start_listener(process_automation)
📚 API Reference
StartService
__init__(rabbitmq_url: str, heartbeat: int = 5400): Inicializa o serviçoget_start_config() -> Optional[Config]: Obtém configuração disponívelstart_listener(callback: Callable): Inicia listener contínuoclose(): Fecha conexão
Execution
start(observation: Optional[str] = None): Inicia execuçãofinished(observation: Optional[str] = None): Finaliza com sucessoerror(observation: Optional[str] = None): Marca como errowaiting(observation: Optional[str] = None): Marca como aguardandoset_total_task_count(count: int): Define total de tarefasupdate_current_task_count(count: int): Atualiza progressoupdate_observation(observation: str): Atualiza observação
Task
start(observation: Optional[str] = None): Inicia tarefasuccess(observation: Optional[str] = None): Marca como sucessofail(observation: Optional[str] = None): Marca como falha- Suporte a context manager (
with)
Step
_start(observation: Optional[str] = None): Inicia passosuccess(observation: Optional[str] = None): Marca como sucessofail(observation: Optional[str] = None): Marca como falha- Suporte a context manager (
with)
📦 Dependências
httpx>=0.28.1- Cliente HTTPpika>=1.3.2- Cliente RabbitMQpydantic>=2.11.7- Validação de dadosrich>=14.1.0- Interface ricauuid7>=0.1.0- Geração de UUIDs
🆘 Suporte
Para suporte técnico, entre em contato:
- Email: contato@zsynctech.com
- Empresa: ZSync Tech LTDA
Versão: 0.1.0
Python: >=3.13
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 zsynctech_studio_sdk-1.0.0.tar.gz.
File metadata
- Download URL: zsynctech_studio_sdk-1.0.0.tar.gz
- Upload date:
- Size: 15.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
267ce0e81e1de1cf8e3f29dad5eb216131a345fa9babf00541747abba1a837c1
|
|
| MD5 |
e4d712df473fd76378afb3d4ecb91f4e
|
|
| BLAKE2b-256 |
00116576f33e337f994f78cb88a59c8ac66d3b248044d5fe996b7e6809dd1df1
|
File details
Details for the file zsynctech_studio_sdk-1.0.0-py3-none-any.whl.
File metadata
- Download URL: zsynctech_studio_sdk-1.0.0-py3-none-any.whl
- Upload date:
- Size: 14.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
48dcf30ab6af5b82580a80431ef12d14917fe8aa7ac6121aa80da7ae9b074d7f
|
|
| MD5 |
c06dfacb1caa00852f26f2bfc3cf1050
|
|
| BLAKE2b-256 |
b45090d1bf130fa1064403c2561e379f4d159945d8d300d8b3374d4e92a02085
|