Skip to main content

Um buscador de arquivos recursivo, ultra-eficiente em memória usando geradores Python.

Project description

Heter

Uma ferramenta Python leve e eficiente para busca de arquivos e diretórios. Utiliza Geradores (yield) para garantir que o consumo de memória RAM permaneça baixo, mesmo ao escanear milhões de arquivos.

✨ Funcionalidades

  • Geradores Nativos: Processa um arquivo por vez sem carregar listas gigantes na memória, tornando-o mais eficiente possivel.
  • Controle de Profundidade: Argumento depth para limitar a recursividade.
  • Filtros Flexíveis: Busca por arquivos, diretórios ou ambos, com suporte a padrões (Pattern matching).
  • Dados Completos: Retorna dicionários com nome, tamanho (KB), datas de criação/modificação, seu caminho e tipo.

🚀 Como Usar:

Instalando a Biblioteca:

pip install Heter    

Importando a Biblioteca

Pode importar a biblioteca.

import search

Parametros:

O search pode receber até 4 Parametros sendo apenas um deles obrigatorio e posicional:

  • Path é o unico argumento é deve ser apresentado como uma String
search("C:/User/seuUsuario/seuCaminho") 
  • typeSearch: é um parametro opcional que recebe uma string que defini quais tipos de arquivo serão buscados;

    • Podendo ser 'dir' para diretorios/pastas:
    search('C:/', typesearch='dir'): #seram buscados apenas pastas/diretorios no caminho 'C:/'
    
    • Podendo ser 'file' para arquivos:
     search('C:/', typesearch='file'): #seram buscados apenas arquivos nesse caso
    

    [!WARNING] Se não for passado nenhum argumento no parametro typeSearch ele mostrara tudo encontrado:

     search('C:/'): #sera buscado tudo que tem na pasta 'C:/' 
    

    [!WARNING] Mesmo se for passado um argumento que não existe

  • Pattern: é um parametro opcional que funciona como um filtro de nomes sobre o resultado da busca:

 search('C:/', Pattern={'program', 'win', 'xbox'}): #sera buscado na pasta 'C:/' todos os arquivos e diretorios que tem 'program', 'win', 'xbox' no nome

[!WARNING] > Para passar valores no Pattern esses itens devem ser uma string dentro do set do Pattern. > ex: Pattern={'valor1', 'valor2', 'valor3'}

  • Depth: é um parametro opcional que recebe um valor int que determina quantas subpastas serão buscadas tambem:
search('C:/', Depth=2): #toda pasta que ele achar no caminho que você passou ele ira abrir, e assim por diante de acordo com o valor do *depth*

[!TIP] Passar valores maiores no Depth tambem resultara em listas mais longas, mas o tempo de procura será o mesmo

🌊 Resultado Da Função:

  • Retorno: A função retorna um gerador de dicionários. Cada dicionário representa um arquivo ou diretório, contendo as seguintes chaves:
Chave Descrição
name Nome do arquivo ou pasta
size_kb Tamanho convertido para Kilobytes
modification Data de modificação (DD/MM/AAAA)
creation Data de criação (DD/MM/AAAA)
full_path Caminho absoluto no sistema
type_entry Identifica se é 'file' ou 'directory'
  • 🧪 Testes Este projeto utiliza pytest. Para rodar os testes, no terminal:
pytest

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

heter-0.2.0.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

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

heter-0.2.0-py3-none-any.whl (4.6 kB view details)

Uploaded Python 3

File details

Details for the file heter-0.2.0.tar.gz.

File metadata

  • Download URL: heter-0.2.0.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.2 cpython/3.14.2 HTTPX/0.28.1

File hashes

Hashes for heter-0.2.0.tar.gz
Algorithm Hash digest
SHA256 e2518d75d51366d09a0a43952447fc732055569cb08a7109f9d16e209c3aaf38
MD5 931df47cb103bc005880b910b5fa1be8
BLAKE2b-256 330ef853f14455bcca6491a0b2d9543c9e5c43d8763ed0692a3baffce3c715db

See more details on using hashes here.

File details

Details for the file heter-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: heter-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 4.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.2 cpython/3.14.2 HTTPX/0.28.1

File hashes

Hashes for heter-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6e36b21621d18ff0f89383ce50276a6245307f7bdd21b3ccdfcb06cf5c15ccc5
MD5 44bba67cf0fdf02f9ae6e1462d69d8ef
BLAKE2b-256 7c2e38386b6296ff26846636c11ca1baa3b93e768718bb03e9aac6989c5d85ae

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