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.1.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.1-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: database_event-0.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 05c520ea45c42f90b439b5eb14b02c3436b7c5767a07e092fbba73c4fbd872f7
MD5 967693194186b53811a32d423bf83421
BLAKE2b-256 da1d03fd278c86c111e91b5118a32a0956ffa42f4aba1ed821d41ae4dfbee5ee

See more details on using hashes here.

File details

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

File metadata

  • Download URL: database_event-0.1.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fad07b7c0f362bf81e5961168d2143e6ecd59b189e7bef809007281334816e16
MD5 55931a148f56dcd6e440957c491b4bba
BLAKE2b-256 7fc559df575c5467ed0da00363f376e4880ee53482412420227095357ec36785

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