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.3.tar.gz (5.8 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.3-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: database_event-0.1.3.tar.gz
  • Upload date:
  • Size: 5.8 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.3.tar.gz
Algorithm Hash digest
SHA256 83d0ed395313634d5f6b5bbf26ab44da75307a2d34127c2d5a084bd686073df2
MD5 431e689bc4522841fa49565e218779b3
BLAKE2b-256 83f1726f8f862527288e0484433d1ea1ed05e55f12a9d778db7a23e7ffc4f61f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: database_event-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 6.0 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 79b22a5a98713d7afcd9103dda31bc6eaf1a2ff4bfc69525dae752f711f3f933
MD5 64675ebd2449299c83dc73432ed46fa5
BLAKE2b-256 a7d458c56678a69d030cc00ea22a71ac7382ba7da609401475bd5a8ed363d420

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