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

Uploaded Python 3

File details

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

File metadata

  • Download URL: database_event-0.1.2.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.2.tar.gz
Algorithm Hash digest
SHA256 fcd80792ca163bd32a98058b91554adb5eabeb3ca581ab0e339da59ec41eb2e3
MD5 b552cf6e1fbba6be3b6015232e6aab33
BLAKE2b-256 c25dfa5e7c104c0b73b03046e96972e4a944aa93d49949495aef72586c66160f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: database_event-0.1.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e9fb8b5065414d47c83f25e38ec04d140c64f02b19d74f7b5e518d2f971deac6
MD5 b29e17e893350d3d767629d8f5effad4
BLAKE2b-256 60537d651972673c80cc12173b7289f2b469adb54e6eedf9a687a1aee9e94ee0

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