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

Uploaded Python 3

File details

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

File metadata

  • Download URL: dilicom_parser-0.2.7.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.7.tar.gz
Algorithm Hash digest
SHA256 ed82c1b4740862286db987681e9740ffd1ee416104618540aa848583baa2aba2
MD5 33e12020ddd18176556611b0710d16a7
BLAKE2b-256 d6cc0a12c971b16acb9dff581e5485994fd6cc6ecb9d5b8f53ab3c668e01e7fa

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dilicom_parser-0.2.7-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.7-py3-none-any.whl
Algorithm Hash digest
SHA256 18de805bb709cdeca7f5ae44260bbd3717a3fcea2614f706720331deeba767f6
MD5 1820f43c4434298e2dbd97511efceeaa
BLAKE2b-256 4d723dbee8077cfece42750589e54b0fa50a078d158011a3271594c42c3d7998

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