une application de renommage de fichier de marché public qui se base sur les champs normalisé de marchés publics
To upload files, please first save the app
import streamlit as st
import pandas as pd
import os
from datetime import datetime
st.set_page_config(page_title="Renommage Marchés Publics", layout="wide")
st.title("Outil de renommage de fichiers de marchés publics")
st.write("""
Cette application permet de renommer vos fichiers de marchés publics selon une nomenclature standardisée.
""")
# Définition des champs normalisés
TYPES_PROCEDURES = [
"Appel d'offres ouvert",
"Appel d'offres restreint",
"Procédure avec négociation",
"Procédure adaptée",
"Dialogue compétitif",
"Marché négocié sans publicité"
]
TYPES_DOCUMENTS = [
"DCE - Dossier de Consultation",
"RC - Règlement de Consultation",
"CCAP - Cahier des Clauses Administratives Particulières",
"CCTP - Cahier des Clauses Techniques Particulières",
"AE - Acte d'Engagement",
"BPU - Bordereau des Prix Unitaires",
"DQE - Détail Quantitatif Estimatif",
"Mémoire technique",
"Autre"
]
# Interface utilisateur
col1, col2 = st.columns(2)
with col1:
numero_marche = st.text_input("Numéro du marché", help="Ex: 2023-001")
type_procedure = st.selectbox("Type de procédure", TYPES_PROCEDURES)
objet_marche = st.text_input("Objet du marché", help="Description courte du marché")
type_document = st.selectbox("Type de document", TYPES_DOCUMENTS)
with col2:
date_procedure = st.date_input("Date de la procédure")
lot = st.text_input("Numéro de lot (optionnel)", help="Laissez vide si pas de lot")
uploaded_file = st.file_uploader("Sélectionnez le fichier à renommer", type=['pdf', 'doc', 'docx', 'xls', 'xlsx'])
if uploaded_file is not None:
# Création du nouveau nom de fichier
elements = [
numero_marche,
date_procedure.strftime("%Y%m%d"),
type_procedure.replace(" ", "-"),
]
if lot:
elements.append(f"LOT{lot}")
elements.extend([
objet_marche.replace(" ", "-"),
type_document.split(" - ")[0]
])
nouveau_nom = "_".join(elements) + os.path.splitext(uploaded_file.name)[1]
nouveau_nom = nouveau_nom.replace("'", "").replace(",", "").lower()
st.success("#### Aperçu du nouveau nom de fichier :")
st.code(nouveau_nom)
# Affichage des métadonnées
st.write("#### Métadonnées du fichier :")
metadata = {
"Nom original": uploaded_file.name,
"Type de fichier": uploaded_file.type,
"Taille": f"{uploaded_file.size / 1024:.2f} KB"
}
st.table(pd.DataFrame([metadata]).T.rename(columns={0: "Valeur"}))
st.markdown("""
### Instructions d'utilisation :
1. Remplissez les champs requis
2. Téléchargez votre fichier
3. Vérifiez le nouveau nom généré
4. Le nom du fichier suivra le format : numéro-marché_date_type-procédure_[LOT#]_objet_type-document
""")
# Ajout d'un pied de page
st.markdown("---")
st.markdown("*Application développée pour la gestion des marchés publics*")
Hi! I can help you with any questions about Streamlit and Python. What would you like to know?