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 (
PostMessagecom 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 (
PostMessagewith 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)
| File | Size | Uploaded | |
|---|---|---|---|
| phaze-1.2.0.tar.gz | 21.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|