Asynchronous library to watch files in real time.
Project description
AIOWatcher
Biblioteca para “observar” os arquivos de um diretório e chamar uma função de callback (filename, lines) toda vez que um dos arquivos monitorados for gravado, em tempo real.
Em termos práticos, isso pode ser comparado ao comando tail -F * .log do UNIX, mas em vez de ter linhas impressas no stdout, uma função Python é chamada.
Da mesma forma que o tail, ele se encarrega de “observar” os novos arquivos que são criados após a inicialização e “desbloquear” aqueles que são removidos nesse meio tempo. Isso significa que você será capaz de “seguir” e suportar também arquivos de log rotativos.
Key Features
Utiliza Asyncio para leitura e monitoramento assincrono.
A implementação escolhe automaticamente dependendo da compatibilidade do sistema.
Monitoramento de diversos arquivos em um mesmo diretório ou apenas de um.
Função callback assincrona.
Getting started
Todos os exemplos de código requerem Python 3.6+.
Basic Usage
import asyncio
from aiowatcher import AIOWatcher
async def callback(filename, line):
print(line)
async def main():
lw = AIOWatcher('var', callback, extensions=['txt'])
await lw.init()
await lw.loop()
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
Non blocking
import asyncio
from aiowatcher import AIOWatcher
async def callback(filename, line):
print(line)
async def main():
lw = AIOWatcher('var', callback, extensions=['txt'])
while True:
await lw.loop(blocking=False)
await asyncio.sleep(0.1)
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
License
aiowatcher é oferecido sob a licença Apache 2.
Source code
A versão mais recente do desenvolvedor está disponÃvel em um repositório GitHub: https://github.com/py-paulo/aiowatcher.git
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
Built Distribution
Hashes for aiowatcher-0.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f2d8e5110dedebb0b7b522c269d6672d869f04d9812628e797088ef6392c21d |
|
MD5 | 0c55a777a6e3a6d30b5cb2fc32ba2c80 |
|
BLAKE2b-256 | 88ba6ec24b769fec0b1c275d1d75ce714c97ba86f4c1158502041cad88fc1ead |