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

Uploaded Python 3

File details

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

File metadata

  • Download URL: heter-0.2.1.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.1.tar.gz
Algorithm Hash digest
SHA256 4b91ddf6ffda007a26d8c970066d04747e83588b9005f5ba7da3be479f6e3f31
MD5 b9c2804980bb10ce22237fc1fe4cb820
BLAKE2b-256 1f7661a3b0b781c5648d3b14bbf1c36bbf69f8218550b9cb236293b11548b6f0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: heter-0.2.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 96ec4e502f29c4b7b3e9e16541a5aecfa069db8e0001969e929e62ffedb8feee
MD5 12e72e17ddcac5935624859c70969b68
BLAKE2b-256 615eddd4c218790b58afb2f892b355fd1235abaadd875eb9575915d80cd278cc

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