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

Uploaded Python 3

File details

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

File metadata

  • Download URL: heter-0.2.2.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.2.tar.gz
Algorithm Hash digest
SHA256 905fe1226688952a2f84bc610b89550fc9f32dac62b16e29d1943f253cf78949
MD5 83119a9d3c7f5560c5f78673d1e7d765
BLAKE2b-256 9b1dae1481d10690f7ddf5d382168e42a6d07efa8f55d46f566872d2988b468d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: heter-0.2.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0b9d70b31a9b4dc7541609ef3b2867a7a81cd6cff8dc32e844388869b6b9c93a
MD5 d935d6777c2c190f277e7a162dd106a3
BLAKE2b-256 92faea21ddb5a0694654adf962c9c79182181dcc3a8b3b926cb26b36ed3e7142

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