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.8.tar.gz (35.5 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.8-py3-none-any.whl (33.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dilicom_parser-0.2.8.tar.gz
  • Upload date:
  • Size: 35.5 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.8.tar.gz
Algorithm Hash digest
SHA256 1c706cab531651cdbad5074d56e34479ccf184fe16e1ec5499b0d7194525f0ce
MD5 e4ffc7eb22bbc5b32cf5315b5c22a153
BLAKE2b-256 cd5541f254a2ea88145b8f3c52a5f784c8fff36906d2c3ea34f9457af3e58011

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dilicom_parser-0.2.8-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.8-py3-none-any.whl
Algorithm Hash digest
SHA256 c6dc4d9016b9d297c10fad2d60ccbe64fbf4a6a1174354f30287306b6e30efcb
MD5 113e8aa22fcd3dce7106c8e1a565dbae
BLAKE2b-256 9e32e7aac6d870d3b1f2b754ba4a01c156ff545383d84e918090ce29c18b47af

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