Skip to main content

Phaze v1.1.4

[PT] Biblioteca para automação silenciosa, robusta e "headless" do Microsoft Power BI Desktop. [EN] Library for silent, robust, and "headless" automation of Microsoft Power BI Desktop.


Principais Recursos / Key Features

Português

  • Limbo Mode: Move a janela do Power BI para coordenadas negativas (-30000), permitindo que você continue usando o computador enquanto o robô trabalha.
  • Kernel Force Save: Ignora falhas de clique visual. Utiliza injeção direta de mensagens no Kernel do Windows (PostMessage com Scan Codes reais) para forçar o salvamento (Ctrl+S) mesmo com a janela oculta.
  • Crash Recovery: Detecta e trata automaticamente o erro "Há um problema com o WebView2" que ocorre ao renderizar gráficos fora da tela.
  • Smart Refresh: Monitora a estabilidade visual do popup de atualização e detecta janelas que fecham sozinhas (Auto-Close).

English

  • Limbo Mode: Moves the Power BI window to negative coordinates (-30000), allowing you to use the computer while the bot works.
  • Kernel Force Save: Bypasses visual click failures. Uses direct Kernel message injection (PostMessage with real Scan Codes) to force save (Ctrl+S) even when the window is hidden.
  • Crash Recovery: Automatically detects and handles the "There is a problem with WebView2" error that occurs when rendering charts off-screen.
  • Smart Refresh: Monitors the visual stability of the refresh popup and detects windows that close automatically (Auto-Close).

Instalação / Installation

pip install phaze.

Como Usar / How to Use

A Phaze v1.1.4 funciona como um "Toolkit Modular". Você decide a ordem das ações.Phaze v1.1.4 operates as a "Modular Toolkit". You decide the order of actions.

Exemplo Completo

import time
from phaze.local_ops import Phaze

# Configuração
NOME_JANELA = "Nome do Seu Arquivo PBI"

def main():
    # 1. Inicializa
    driver = Phaze()

    # 2. Conecta
    print("Conectando...")
    if not driver.connect(window_name=NOME_JANELA):
        print("Janela não encontrada.")
        return

    # 3. Atualiza (Refresh)
    print("Atualizando dados...")
    # Agora chamamos o método a partir de 'driver'
    if driver.refresh():
        print("Atualização concluída com sucesso.")
    else:
        print("Falha na atualização.")
        driver.bring_back()
        return

    # 4. Salva (Save)
    print("Salvando...")
    if driver.save():
        print("Comando de salvar enviado.")
    else:
        print("Erro ao salvar.")

    # 5. Finaliza
    driver.bring_back() 
    print("Processo finalizado.")

if __name__ == "__main__":
    main()

Índice de Drivers

A classe Phaze expõe os seguintes métodos para controle total:

Método / Method Descrição (PT) Description (EN)
connect(window_name) Localiza a janela, conecta ao processo e ativa o Limbo Mode (oculta a janela). Locates the window, connects to the process, and activates Limbo Mode (hides the window).
refresh() Executa o ciclo completo: Clica em Atualizar > Monitora Estabilidade > Fecha Popup > Trata Erros WebView2. Runs full cycle: Click Refresh > Monitor Stability > Close Popup > Handle WebView2 Errors.
save() Tenta salvar usando Hardware Injection (PostMessage) e Atalhos de Teclado. Não requer mouse. Attempts to save using Hardware Injection (PostMessage) and Keyboard Shortcuts. Mouse-free.
bring_back() Restaura a janela do Limbo para a posição (0,0) na tela principal. Restores the window from Limbo to position (0,0) on the main screen.
close() Encerra forçadamente o processo do Power BI (Kill process). Forcefully terminates the Power BI process.

Contribuição / Contributing

  • Faça um Fork do projeto.
  • Crie uma branch para sua modificação: git checkout -b feature/melhoria-direta.
  • Envie um Pull Request detalhando o que foi feito.

Metadata

Release files for phaze 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for phaze 1.2.0
File Size Uploaded
phaze-1.2.0.tar.gz 21.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for phaze 1.2.0
File Interpreter ABI Platform
phaze-1.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 41.1 kB

Release files / phaze-1.2.0.tar.gz

Download URL phaze-1.2.0.tar.gz
Size 21.6 kB
Tags Source
SHA-256 checksum
How to use checksums
8387ebc5f7db790b5bdf4899b3feeffbfd97ac1af4db46e68a2357bece5fe614
BLAKE2b-256 checksum
How to use checksums
545250f8b2237b8bdbcdbba6aaac6bb591cf2141d3dc7795b641d555a40c5745
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release files / phaze-1.2.0-py3-none-any.whl

Download URL phaze-1.2.0-py3-none-any.whl
Size 19.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f1bf7c298506d3a7b7b8c7f96ef04d0fc57a685b4cab9a5cefe495a47a1f56dd
BLAKE2b-256 checksum
How to use checksums
5cbbb43122b685f3e7a1062b54f7a691c0caeca56df6d0d2e1cca954a0196960
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 release files

1.1.4

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page