Skip to main content

Bibliothèque souveraine pour parser les fichiers Dilicom déposés sur le serveur SFTP de Dilicom avec connecteur SFTP intégré.

Project description

Package de gestion des fichiers Dilicom sur serveur SFTP

PyPi version Licence Python version Pandas version Paramiko version python-dotenv version

dilicom-parser est une bibliothèque Python souveraine dédiée à la lecture, au parsing, à la validation et à la transformation des fichiers Dilicom (distributeurs, commandes, etc.). Elle fournit des modèles de données stricts, des parseurs robustes et des outils d’audit pour garantir une intégration fiable et reproductible.

🚀 Objectifs

  • Offrir une implémentation Python propre et moderne des structures Dilicom.
  • Fournir des dataclasses typées pour chaque bloc Dilicom.
  • Faciliter l’intégration dans des pipelines d’audit, d’ETL ou de synchronisation.
  • Proposer une base souveraine et open-source pour les acteurs du livre.

✨ Fonctionnalités

  • 📦 Modèles de données Dilicom (Bloc 1, Bloc 2, Bloc 3…)
  • 🧩 Parseur robuste basé sur l’ordre contractuel des champs
  • 🔍 Validation des types et des valeurs
  • 📊 Conversion DataFrame → objets Python
  • 🧪 Tests unitaires inclus

📄 Exemple d’utilisation

Créer le fichier .env avec les variables d’environnement nécessaires :

#.env

# Variables pour les dossier d’entrée et de sortie des fichiers
DILICOM_IN_DIR=/path/to/dilicom/files
DILICOM_OUT_DIR=/path/to/output

# Optionnel, variables pour la connexion FTP si nécessaire
DILICOM_HOST=ftp.example.com
DILICOM_PORT=11234
DILICOM_USER=username
DILICOM_SECRET=password

Ensuite, utiliser le parser dans votre code Python :

from dotenv import load_dotenv

load_dotenv('path/to/.env')

parser = DistributorParser()
data = parser.parse_file("distributeur.txt")

for line in data.lines:
    print(line.bloc1.rs1)   # Raison sociale principale du distributeur
    print(line.bloc1.ville)  # Ville du distributeur

Dans un notebook Jupyter

from src.dilicom_parser.classifier import FilesClassifier
from pathlib import Path
import ipynbname
path = ipynbname.path()

files_directory = Path(path).parent / "dilicom"
file_list = list(files_directory.glob(pattern="*"))
classifier = FilesClassifier(file_list=file_list)

classifier.classify()

print("Classification terminée. Résultats :")
from pprint import pprint
pprint(classifier.count_by_type())
Classification terminée. Résultats :
{'distributor': 9, 'eancom': 5, 'gencod': 4}

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

dilicom_parser-0.2.5.tar.gz (35.4 kB view details)

Uploaded Source

Built Distribution

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

dilicom_parser-0.2.5-py3-none-any.whl (33.9 kB view details)

Uploaded Python 3

File details

Details for the file dilicom_parser-0.2.5.tar.gz.

File metadata

  • Download URL: dilicom_parser-0.2.5.tar.gz
  • Upload date:
  • Size: 35.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for dilicom_parser-0.2.5.tar.gz
Algorithm Hash digest
SHA256 a1f74f74e435351b4cfeb0f978bc765cf2007e46dc4dc5398a475a07eb649f8c
MD5 a3acd34644d94957861460ecf03846ed
BLAKE2b-256 b00330740dc056f0a5d6723f8cff1e31a086a7319eb0d10977d89b43cf0b811b

See more details on using hashes here.

File details

Details for the file dilicom_parser-0.2.5-py3-none-any.whl.

File metadata

  • Download URL: dilicom_parser-0.2.5-py3-none-any.whl
  • Upload date:
  • Size: 33.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for dilicom_parser-0.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 da73bf406ea96593f6b028d1f3fe61cc95f88e8fff0ec79878e25f973bf85c6f
MD5 388293f973fc32e7ba38f6fb367c66ef
BLAKE2b-256 a77f1d4dbf7ae795efac42f37e8e45896548ca519e958682c261c964259a867e

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