Skip to main content

Esse pacote tem como função facilitar a execução paralela e distribuida de funções apply pandas

Project description

Database e EventDatabaseManager

Descrição Geral

As classes EventDatabaseManager e Database foram desenvolvidas para facilitar a execução paralela e o monitoramento de tarefas em segundo plano, com uma interface amigável para manipulação de dados em larga escala. A EventDatabaseManager gerencia o status e o monitoramento das tarefas, enquanto a Database é uma extensão do DataFrame do Pandas que oferece métodos otimizados para exibição e aplicação de funções.

Instalação

pip install database-event

Utilização

from data.util.database import Database
from sklearn.datasets import load_iris
from time import sleep
from data.util.event import EventDatabaseManager

# Carrega o conjunto de dados e inicializa as classes
iris = load_iris()
df = Database(data=iris.data, columns=iris.feature_names)
e = EventDatabaseManager()

# Define as funções a serem executadas em segundo plano
@e.exec(['sepal length (cm)'], ['teste'])
def teste(valor):
    sleep(10)
    return valor

@e.exec(['teste'], ['teste'], overwrite=True)
def teste2(valor):
    sleep(10)
    return valor * 2

# Inicia as execuções e o monitoramento
teste(df)
teste2(df)
e.start()
print(df)

Classes

EventDatabaseManager A classe EventDatabaseManager gerencia tarefas executadas em threads separadas, controlando o status de execução e permitindo o monitoramento contínuo das tarefas.

Atributos Privados __status: Dicionário que armazena o status atual de cada função. __fila_monitor: Fila de monitoramento para atualizar o status das tarefas. __skip_thread: Thread para monitorar uma tecla de atalho que permite encerrar as execuções. __threads: Lista de threads onde cada função definida pelo usuário é associada a uma thread. __monitor: Thread para monitoramento e exibição em tempo real do status das funções. __runn: Dicionário que controla o estado de execução de cada função. __stop_event: Evento de parada global para todas as execuções. __stop_skip_key: Evento de parada específico para a thread de monitoramento de teclas. __time: Armazena o tempo inicial das execuções para cálculo de tempo total. Métodos start(): Inicia as execuções e o monitoramento de status das tarefas. Se não houver tarefas na fila, exibe uma mensagem indicando que não há tarefas para executar.

exec(names_in: list[str], names_out: list[str], overwrite=False): Define uma função a ser executada em uma thread separada. Recebe os nomes das colunas de entrada (names_in) e saída (names_out) que serão utilizados no Database, além de um parâmetro overwrite que indica se os dados existentes nas colunas devem ser sobrescritos.

_set_status(fun_name: str, status: str, time: float, size: int): Define o status de uma função específica durante a execução, incluindo informações sobre o tempo e o tamanho dos dados processados.

__is_key_pressed(key): Verifica se uma tecla específica foi pressionada, para permitir a finalização antecipada das execuções.

__all_skip(): Monitora se a tecla de atalho foi pressionada, interrompendo todas as execuções e encerrando as threads.

__join(): Aguarda a finalização das threads e encerra o monitoramento, exibindo o tempo total de execução ao final.

monitor_status(): Exibe o status de execução de cada função em uma tabela atualizada em tempo real. Exibe uma mensagem de instrução para finalizar as execuções pressionando a tecla q.

__print_total_time(): Imprime o tempo total de execução de todas as tarefas processadas, incluindo uma média de tarefas executadas por minuto.

__skip(): Define a interrupção de todas as funções em execução e para o monitoramento.

Database A classe Database é uma extensão de DataFrame que oferece métodos para uma exibição aprimorada e aplicação de funções de forma paralela.

Métodos str(max_rows=10, max_cols=6): Retorna uma representação da estrutura de dados em formato de tabela, limitando o número de linhas e colunas exibidas para melhor visualização.

getitem(column: str | list[str]): Sobrescreve o método de obtenção de itens do DataFrame, retornando um novo Database com as colunas especificadas.

apply(func, axis=0, *args, **kwargs): Aplica uma função especificada de forma assíncrona em cada coluna (axis=0) ou linha (axis=1), utilizando threads para paralelizar a execução.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

database_event-0.1.0.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

database_event-0.1.0-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file database_event-0.1.0.tar.gz.

File metadata

  • Download URL: database_event-0.1.0.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for database_event-0.1.0.tar.gz
Algorithm Hash digest
SHA256 316c0e96e4c2f99b5a2189cd1efbbbb07cbac1bd3272fbcf1113883dcd2aed55
MD5 53996cab8ab38c5d9e114e3b46c565cf
BLAKE2b-256 e1b66b2387e35ae13bbac45cb4e4b67bcbd6521a27afa1a8408d10261557d4e7

See more details on using hashes here.

File details

Details for the file database_event-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: database_event-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for database_event-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1ac0a0d1bb7b8d295aa69181e65fc2b29a7a234d7bc3f93d222ede313f553d7f
MD5 dfb2cb4a02c52f743d5e506e513e9747
BLAKE2b-256 87b952e15fed6d1b6ecd90feb2ae195b65ce5941c53a9a6e6a17dfd7d927df2a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page