Utils

Diverses fonctions utilitaires.

Fonctions utiles pour la gestion des fichiers

get_file_digest(fp_pdf, digest='blake2b', digest_size=10)

Extraire le hachage d'un fichier avec la fonction digest.

Fonctionne pour Python >= 3.8, mais le code pourra être simplifié pour Python >= 3.11 quand ce sera la version minimale requise par les principaux projets.

Parameters:
  • fp_pdf (Path) –

    Chemin du fichier PDF à traiter.

  • digest (str, default: 'blake2b' ) –

    Nom de la fonction de hachage à utiliser, "sha1" par défaut.

  • digest_size (int, default: 10 ) –

    Taille du digest (blake2b, sinon ignoré).

Returns:
  • fd_hexdigest( str ) –

    Hachage du fichier.

Reconnaissance et mise en forme des dates

process_date_brute(arr_date)

Extraire les différents champs d'une date brute et la normaliser.

Parameters:
  • arr_date (str) –

    Date brute

Returns:
  • arr_date_norm( str ) –

    Date normalisée dd/mm/yyyy

Fonctions utilitaires génériques pour le texte

create_file_name_url(file_name, allowance=155)

Creates a URL-compliant filename by removing non-alphanumeric characters, accentuated letters, and maintaining the Windows path length limit.

Parameters:
  • file_name (str) –

    Nom du fichier

  • allowance (int, default: 155 ) –

    Longueur maximale du chemin complet (chemin + nom de fichier)

normalize_string(raw_str, num=False, apos=False, hyph=False, spaces=False)

Normaliser une chaîne de caractères.

Remplacer les séquences d'espaces par une unique espace.

Parameters:
  • raw_str (str) –

    Chaîne de caractères à normaliser

Returns:
  • nor_str( str ) –

    Chaîne de caractères normalisée

remove_accents(str_in)

Enlève les accents d'une chaîne de caractères.

cf. https://stackoverflow.com/a/517974

Parameters:
  • str_in (str) –

    Chaîne de caractères pouvant contenir des caractères combinants (accents, cédille etc.).

Returns:
  • str_out( string ) –

    Chaîne de caractères sans caractère combinant.

Charger les fichiers de texte extraits des PDF, natifs ou non

load_pages_text(fp_txt, page_break='\x0c')

Charge le texte d'un document, découpé en pages.

Parameters:
  • fp_txt (Path) –

    Chemin du fichier contenant le texte d'un document.

  • page_break (str, default: '\x0c' ) –

    Séparateur de pages. Les fichiers PDF texte produits par l'export direct depuis les logiciels de traitement de texte contiennent déjà un "form feed" (" "), comme les fichiers "sidecar" produits par ocrmypdf (pour les fichiers PDF image).

Returns:
  • doc_txt( List[str] ) –

    Texte du document, par page.