J'ai un fait un script (ici http://sisco.laf.free.fr/modele2cible.txt)
qui doit me permettre de répondre à un problème que je rencontre de
manière récurrente. Je m'explique. J'utilise LaTeX pour faire des
documents pdf et souvent je suis amené à répéter du code LaTeX.
------------------------
1) Ce que fait le script
------------------------
J'ai un fichier de données que je vais appeler "donnees" qui est un
fichier csv issu d'un tableur. Par exemple :
(en fait, les "blabla" c'est souvent des truc avec dec "\" partout et
des "{" etc. Bref du code LaTeX.)
L'idée, bien sûr, c'est que le script va générer un gros fichier qui
sera les "modeles" mis bout à bout sauf que les __champs__ seront
remplacés par les valeurs d'une ligne du fichier "donnees". Dans mon
exemple, ça donnerait :
----------------
Blabla blabla blabla blabla
Martin Jean blabla
blabla blabla blabla blabla
35 blabla blabla blabla
blabla blabla blabla blabla
Martin blabla blabla blabla
blabla blabla blabla.
Blabla blabla blabla blabla
Durant Pierre blabla
blabla blabla blabla blabla
43 blabla blabla blabla
blabla blabla blabla blabla
Durant blabla blabla blabla
blabla blabla blabla.
Ce problème est récurrent dans le sens où les données peuvent changer
(ainsi que le nom des champs) et le modèle aussi.
----------------
2) Mes questions
----------------
Je sais qu'il existe un module csv qui doit sûrement simplifier le
problème, mais j'ai voulu faire ce script aussi un peu comme un exercice
aussi.
C'est surtout d'un point de vue conception que je me pose des questions.
J'ai voulu faire un truc un peu OO, mais je n'y arrive pas bien, j'ai
l'impression de mélanger le procédural et l'OO. D'ailleurs, je me
demandais si mon problème était un problème adapté à l'OO. Bref, est-ce
adapté de faire un code OO pour ce problème et comment faire (si oui) ?
Sur mon PC, tout est en Utf-8. Comment peut-on gérer le fait que ça
génère ou non (en fonction de ce que l'on souhaite) du Latin1 ?
Même si ce n'est pas le but initial de mon fil, toutes autres remarques
sur le script sont les bienvenues également : remarques formelles,
remarques sur l'aspect optimisation mémoire (que je n'ai pas du tout
pris en compte étant donnée la faible taille de mes fichiers "modele" et
"donnees"), etc. bref toutes autres remarques m'intéressent aussi.
En espérant avoir été clair. Merci d'avance pour votre aide.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Bruno Desthuilliers
Francois a écrit :
Bonjour à tous,
J'ai un fait un script (ici http://sisco.laf.free.fr/modele2cible.txt) qui doit me permettre de répondre à un problème que je rencontre de manière récurrente. Je m'explique. J'utilise LaTeX pour faire des documents pdf et souvent je suis amené à répéter du code LaTeX.
------------------------ 1) Ce que fait le script ------------------------
J'ai un fichier de données que je vais appeler "donnees" qui est un fichier csv issu d'un tableur. Par exemple :
(snip)
Il correspond à un tableau (exporté en csv)
"exporté" à partir de quoi ?
J'ai un autre fichier que j'appelle "modele" qui est en fait un bout de code LaTeX qui sera de la forme :
(snip)
L'idée, bien sûr, c'est que le script va générer un gros fichier qui sera les "modeles" mis bout à bout sauf que les __champs__ seront remplacés par les valeurs d'une ligne du fichier "donnees".
En bref, c'est un système de template. Pour info, une bonne part des systèmes de template existant, même s'ils sont avant tout utilisés pour générer du HTML, peuvent générer n'importe quel type de format texte.
Ce problème est récurrent dans le sens où les données peuvent changer (ainsi que le nom des champs) et le modèle aussi.
---------------- 2) Mes questions ----------------
Je sais qu'il existe un module csv qui doit sûrement simplifier le problème, mais j'ai voulu faire ce script aussi un peu comme un exercice aussi.
C'est surtout d'un point de vue conception que je me pose des questions. J'ai voulu faire un truc un peu OO, mais je n'y arrive pas bien, j'ai l'impression de mélanger le procédural et l'OO. D'ailleurs, je me demandais si mon problème était un problème adapté à l'OO. Bref, est-ce adapté de faire un code OO pour ce problème et comment faire (si oui) ?
Regarde comment fonctionne des systèmes comme Mako, Jinja ou Cheetah.
Sur mon PC, tout est en Utf-8. Comment peut-on gérer le fait que ça génère ou non (en fonction de ce que l'on souhaite) du Latin1 ?
s = "some string" s.decode("utf-8").encode("latin-1")
Même si ce n'est pas le but initial de mon fil, toutes autres remarques sur le script sont les bienvenues également : remarques formelles, remarques sur l'aspect optimisation mémoire (que je n'ai pas du tout pris en compte étant donnée la faible taille de mes fichiers "modele" et "donnees"), etc. bref toutes autres remarques m'intéressent aussi.
Heu... Là je crois que je vais attendre d'être un peu reposé - j'ai bouffé ma dose de code pour la journée, désolé !-)
Francois a écrit :
Bonjour à tous,
J'ai un fait un script (ici http://sisco.laf.free.fr/modele2cible.txt)
qui doit me permettre de répondre à un problème que je rencontre de
manière récurrente. Je m'explique. J'utilise LaTeX pour faire des
documents pdf et souvent je suis amené à répéter du code LaTeX.
------------------------
1) Ce que fait le script
------------------------
J'ai un fichier de données que je vais appeler "donnees" qui est un
fichier csv issu d'un tableur. Par exemple :
(snip)
Il correspond à un tableau (exporté en csv)
"exporté" à partir de quoi ?
J'ai un autre fichier que j'appelle "modele" qui est en fait un bout de
code LaTeX qui sera de la forme :
(snip)
L'idée, bien sûr, c'est que le script va générer un gros fichier qui
sera les "modeles" mis bout à bout sauf que les __champs__ seront
remplacés par les valeurs d'une ligne du fichier "donnees".
En bref, c'est un système de template. Pour info, une bonne part des
systèmes de template existant, même s'ils sont avant tout utilisés pour
générer du HTML, peuvent générer n'importe quel type de format texte.
Ce problème est récurrent dans le sens où les données peuvent changer
(ainsi que le nom des champs) et le modèle aussi.
----------------
2) Mes questions
----------------
Je sais qu'il existe un module csv qui doit sûrement simplifier le
problème, mais j'ai voulu faire ce script aussi un peu comme un exercice
aussi.
C'est surtout d'un point de vue conception que je me pose des questions.
J'ai voulu faire un truc un peu OO, mais je n'y arrive pas bien, j'ai
l'impression de mélanger le procédural et l'OO. D'ailleurs, je me
demandais si mon problème était un problème adapté à l'OO. Bref, est-ce
adapté de faire un code OO pour ce problème et comment faire (si oui) ?
Regarde comment fonctionne des systèmes comme Mako, Jinja ou Cheetah.
Sur mon PC, tout est en Utf-8. Comment peut-on gérer le fait que ça
génère ou non (en fonction de ce que l'on souhaite) du Latin1 ?
s = "some string"
s.decode("utf-8").encode("latin-1")
Même si ce n'est pas le but initial de mon fil, toutes autres remarques
sur le script sont les bienvenues également : remarques formelles,
remarques sur l'aspect optimisation mémoire (que je n'ai pas du tout
pris en compte étant donnée la faible taille de mes fichiers "modele" et
"donnees"), etc. bref toutes autres remarques m'intéressent aussi.
Heu... Là je crois que je vais attendre d'être un peu reposé - j'ai
bouffé ma dose de code pour la journée, désolé !-)
J'ai un fait un script (ici http://sisco.laf.free.fr/modele2cible.txt) qui doit me permettre de répondre à un problème que je rencontre de manière récurrente. Je m'explique. J'utilise LaTeX pour faire des documents pdf et souvent je suis amené à répéter du code LaTeX.
------------------------ 1) Ce que fait le script ------------------------
J'ai un fichier de données que je vais appeler "donnees" qui est un fichier csv issu d'un tableur. Par exemple :
(snip)
Il correspond à un tableau (exporté en csv)
"exporté" à partir de quoi ?
J'ai un autre fichier que j'appelle "modele" qui est en fait un bout de code LaTeX qui sera de la forme :
(snip)
L'idée, bien sûr, c'est que le script va générer un gros fichier qui sera les "modeles" mis bout à bout sauf que les __champs__ seront remplacés par les valeurs d'une ligne du fichier "donnees".
En bref, c'est un système de template. Pour info, une bonne part des systèmes de template existant, même s'ils sont avant tout utilisés pour générer du HTML, peuvent générer n'importe quel type de format texte.
Ce problème est récurrent dans le sens où les données peuvent changer (ainsi que le nom des champs) et le modèle aussi.
---------------- 2) Mes questions ----------------
Je sais qu'il existe un module csv qui doit sûrement simplifier le problème, mais j'ai voulu faire ce script aussi un peu comme un exercice aussi.
C'est surtout d'un point de vue conception que je me pose des questions. J'ai voulu faire un truc un peu OO, mais je n'y arrive pas bien, j'ai l'impression de mélanger le procédural et l'OO. D'ailleurs, je me demandais si mon problème était un problème adapté à l'OO. Bref, est-ce adapté de faire un code OO pour ce problème et comment faire (si oui) ?
Regarde comment fonctionne des systèmes comme Mako, Jinja ou Cheetah.
Sur mon PC, tout est en Utf-8. Comment peut-on gérer le fait que ça génère ou non (en fonction de ce que l'on souhaite) du Latin1 ?
s = "some string" s.decode("utf-8").encode("latin-1")
Même si ce n'est pas le but initial de mon fil, toutes autres remarques sur le script sont les bienvenues également : remarques formelles, remarques sur l'aspect optimisation mémoire (que je n'ai pas du tout pris en compte étant donnée la faible taille de mes fichiers "modele" et "donnees"), etc. bref toutes autres remarques m'intéressent aussi.
Heu... Là je crois que je vais attendre d'être un peu reposé - j'ai bouffé ma dose de code pour la journée, désolé !-)
Francois
Bruno Desthuilliers a écrit :
Il correspond à un tableau (exporté en csv)
"exporté" à partir de quoi ?
En général à partir de fichiers-tableur OpenOffice (parfois Excel). Ce sont en général des tableaux (ou fichier csv) qui ne dépassent guère la centaine de lignes.
En bref, c'est un système de template. Pour info, une bonne part des systèmes de template existant, même s'ils sont avant tout utilisés pour générer du HTML, peuvent générer n'importe quel type de format texte.
Même du LaTeX ? Ok. En revanche le mot template pour moi, ça évoquait seulement le code donnant l'aspect d'un site internet. Pour moi, ce mot était réservé au web en fait. Mais effectivement, j'ai des données que je veux afficher (dans un pdf dans mon cas, et via du code LaTeX).
C'est surtout d'un point de vue conception que je me pose des questions. J'ai voulu faire un truc un peu OO, mais je n'y arrive pas bien, j'ai l'impression de mélanger le procédural et l'OO. D'ailleurs, je me demandais si mon problème était un problème adapté à l'OO. Bref, est-ce adapté de faire un code OO pour ce problème et comment faire (si oui) ?
Regarde comment fonctionne des systèmes comme Mako, Jinja ou Cheetah.
Et ben, jamais entendu parlé. Je regarderai.
Sur mon PC, tout est en Utf-8. Comment peut-on gérer le fait que ça génère ou non (en fonction de ce que l'on souhaite) du Latin1 ?
s = "some string" s.decode("utf-8").encode("latin-1")
Ah parfait.
Même si ce n'est pas le but initial de mon fil, toutes autres remarques sur le script sont les bienvenues également : remarques formelles, remarques sur l'aspect optimisation mémoire (que je n'ai pas du tout pris en compte étant donnée la faible taille de mes fichiers "modele" et "donnees"), etc. bref toutes autres remarques m'intéressent aussi.
Heu... Là je crois que je vais attendre d'être un peu reposé - j'ai bouffé ma dose de code pour la journée, désolé !-)
Ah, ça veut dire qu'à partir d'une certaine dose, on peut en avoir plein le... dos ? :-) Il n'y pas de quoi être désolé bien sûr.
Merci de ton aide.
-- François Lafont
Bruno Desthuilliers a écrit :
Il correspond à un tableau (exporté en csv)
"exporté" à partir de quoi ?
En général à partir de fichiers-tableur OpenOffice (parfois Excel). Ce
sont en général des tableaux (ou fichier csv) qui ne dépassent guère la
centaine de lignes.
En bref, c'est un système de template. Pour info, une bonne part des
systèmes de template existant, même s'ils sont avant tout utilisés pour
générer du HTML, peuvent générer n'importe quel type de format texte.
Même du LaTeX ? Ok. En revanche le mot template pour moi, ça évoquait
seulement le code donnant l'aspect d'un site internet. Pour moi, ce mot
était réservé au web en fait. Mais effectivement, j'ai des données que
je veux afficher (dans un pdf dans mon cas, et via du code LaTeX).
C'est surtout d'un point de vue conception que je me pose des
questions. J'ai voulu faire un truc un peu OO, mais je n'y arrive pas
bien, j'ai l'impression de mélanger le procédural et l'OO. D'ailleurs,
je me demandais si mon problème était un problème adapté à l'OO. Bref,
est-ce adapté de faire un code OO pour ce problème et comment faire
(si oui) ?
Regarde comment fonctionne des systèmes comme Mako, Jinja ou Cheetah.
Et ben, jamais entendu parlé. Je regarderai.
Sur mon PC, tout est en Utf-8. Comment peut-on gérer le fait que ça
génère ou non (en fonction de ce que l'on souhaite) du Latin1 ?
s = "some string"
s.decode("utf-8").encode("latin-1")
Ah parfait.
Même si ce n'est pas le but initial de mon fil, toutes autres
remarques sur le script sont les bienvenues également : remarques
formelles, remarques sur l'aspect optimisation mémoire (que je n'ai
pas du tout pris en compte étant donnée la faible taille de mes
fichiers "modele" et "donnees"), etc. bref toutes autres remarques
m'intéressent aussi.
Heu... Là je crois que je vais attendre d'être un peu reposé - j'ai
bouffé ma dose de code pour la journée, désolé !-)
Ah, ça veut dire qu'à partir d'une certaine dose, on peut en avoir plein
le... dos ? :-) Il n'y pas de quoi être désolé bien sûr.
En général à partir de fichiers-tableur OpenOffice (parfois Excel). Ce sont en général des tableaux (ou fichier csv) qui ne dépassent guère la centaine de lignes.
En bref, c'est un système de template. Pour info, une bonne part des systèmes de template existant, même s'ils sont avant tout utilisés pour générer du HTML, peuvent générer n'importe quel type de format texte.
Même du LaTeX ? Ok. En revanche le mot template pour moi, ça évoquait seulement le code donnant l'aspect d'un site internet. Pour moi, ce mot était réservé au web en fait. Mais effectivement, j'ai des données que je veux afficher (dans un pdf dans mon cas, et via du code LaTeX).
C'est surtout d'un point de vue conception que je me pose des questions. J'ai voulu faire un truc un peu OO, mais je n'y arrive pas bien, j'ai l'impression de mélanger le procédural et l'OO. D'ailleurs, je me demandais si mon problème était un problème adapté à l'OO. Bref, est-ce adapté de faire un code OO pour ce problème et comment faire (si oui) ?
Regarde comment fonctionne des systèmes comme Mako, Jinja ou Cheetah.
Et ben, jamais entendu parlé. Je regarderai.
Sur mon PC, tout est en Utf-8. Comment peut-on gérer le fait que ça génère ou non (en fonction de ce que l'on souhaite) du Latin1 ?
s = "some string" s.decode("utf-8").encode("latin-1")
Ah parfait.
Même si ce n'est pas le but initial de mon fil, toutes autres remarques sur le script sont les bienvenues également : remarques formelles, remarques sur l'aspect optimisation mémoire (que je n'ai pas du tout pris en compte étant donnée la faible taille de mes fichiers "modele" et "donnees"), etc. bref toutes autres remarques m'intéressent aussi.
Heu... Là je crois que je vais attendre d'être un peu reposé - j'ai bouffé ma dose de code pour la journée, désolé !-)
Ah, ça veut dire qu'à partir d'une certaine dose, on peut en avoir plein le... dos ? :-) Il n'y pas de quoi être désolé bien sûr.
Merci de ton aide.
-- François Lafont
Mihamina Rakotomandimby (R12y)
Francois wrote:
Heu... Là je crois que je vais attendre d'être un peu reposé - j'ai bouffé ma dose de code pour la journée, désolé !-)
Ah, ça veut dire qu'à partir d'une certaine dose, on peut en avoir plein le... dos ? :-) Il n'y pas de quoi être désolé bien sûr.
Le code fait mal au dos, oui... c'est vrai.
Francois wrote:
Heu... Là je crois que je vais attendre d'être un peu reposé - j'ai
bouffé ma dose de code pour la journée, désolé !-)
Ah, ça veut dire qu'à partir d'une certaine dose, on peut en avoir plein
le... dos ? :-) Il n'y pas de quoi être désolé bien sûr.
Heu... Là je crois que je vais attendre d'être un peu reposé - j'ai bouffé ma dose de code pour la journée, désolé !-)
Ah, ça veut dire qu'à partir d'une certaine dose, on peut en avoir plein le... dos ? :-) Il n'y pas de quoi être désolé bien sûr.
Le code fait mal au dos, oui... c'est vrai.
Bruno Desthuilliers
Francois a écrit :
Bruno Desthuilliers a écrit :
Il correspond à un tableau (exporté en csv)
"exporté" à partir de quoi ?
En général à partir de fichiers-tableur OpenOffice (parfois Excel). Ce sont en général des tableaux (ou fichier csv) qui ne dépassent guère la centaine de lignes.
En bref, c'est un système de template. Pour info, une bonne part des systèmes de template existant, même s'ils sont avant tout utilisés pour générer du HTML, peuvent générer n'importe quel type de format texte.
Même du LaTeX ?
C'est un langage de marquage dans un format texte, non ?
Ok. En revanche le mot template pour moi, ça évoquait seulement le code donnant l'aspect d'un site internet. Pour moi, ce mot était réservé au web en fait.
Certains systèmes de templates sont basés sur XML et ne génèrent que de XML. Mais c'est loin d'être la majorité. Pour le reste, s'il est vrai que la génération (dynamique) de pages HTML est le cas d'utilisation le plus fréquent des systèmes de template, c'est loin - très loin - d'être le seul. Pour ma part, j'avais apris le principe avec les systèmes de modèles/fusions de documents sous MS Office (quelque part vers le milieu du siècle dernier), puis avec les générateurs de rapports des applis de gestion (CrystalReport & co). En ce qui concerne les systèmes que j'utilise actuellement, même si ça reste avant tout dans le cadre du developpement web, ça inclus aussi la génération de css, de javascript, de mails, etc - bref de toute sorte de formats textes.
Mais effectivement, j'ai des données que je veux afficher (dans un pdf dans mon cas, et via du code LaTeX).
Donc du LaTeX.
C'est surtout d'un point de vue conception que je me pose des questions. J'ai voulu faire un truc un peu OO, mais je n'y arrive pas bien, j'ai l'impression de mélanger le procédural et l'OO. D'ailleurs, je me demandais si mon problème était un problème adapté à l'OO. Bref, est-ce adapté de faire un code OO pour ce problème et comment faire (si oui) ?
Regarde comment fonctionne des systèmes comme Mako, Jinja ou Cheetah.
Et ben, jamais entendu parlé. Je regarderai.
Sont tous en open source donc il y a pas mal à apprendre. Ceci étant, je ne t'en ai cité que trois, mais il y en a un paquet d'autres - regarde dans la section développement web de python.org pour d'autres solutions possibles.
Sur mon PC, tout est en Utf-8. Comment peut-on gérer le fait que ça génère ou non (en fonction de ce que l'on souhaite) du Latin1 ?
s = "some string" s.decode("utf-8").encode("latin-1")
Ah parfait.
En général, la meilleure solution est de ne gérer en interne que de l'unicode, donc en décodant (le template et les données) à l'entrée et en decodant (le résultat) à la sortie.
Même si ce n'est pas le but initial de mon fil, toutes autres remarques sur le script sont les bienvenues également : remarques formelles, remarques sur l'aspect optimisation mémoire (que je n'ai pas du tout pris en compte étant donnée la faible taille de mes fichiers "modele" et "donnees"),
L'approche "flux/pipelines" est généralement la meilleure façon de gérer cette problématique. Regarde du coté des itérateurs/générateurs.
etc. bref toutes autres remarques m'intéressent aussi.
Heu... Là je crois que je vais attendre d'être un peu reposé - j'ai bouffé ma dose de code pour la journée, désolé !-)
Ah, ça veut dire qu'à partir d'une certaine dose, on peut en avoir plein le... dos ? :-)
ou plein le DOS, si on est adepte de MS. Pour ma part, en ce moment, je serais plutôt un peu sur les GNU.
Bon, ok ------>[]
Francois a écrit :
Bruno Desthuilliers a écrit :
Il correspond à un tableau (exporté en csv)
"exporté" à partir de quoi ?
En général à partir de fichiers-tableur OpenOffice (parfois Excel). Ce
sont en général des tableaux (ou fichier csv) qui ne dépassent guère la
centaine de lignes.
En bref, c'est un système de template. Pour info, une bonne part des
systèmes de template existant, même s'ils sont avant tout utilisés
pour générer du HTML, peuvent générer n'importe quel type de format
texte.
Même du LaTeX ?
C'est un langage de marquage dans un format texte, non ?
Ok. En revanche le mot template pour moi, ça évoquait
seulement le code donnant l'aspect d'un site internet. Pour moi, ce mot
était réservé au web en fait.
Certains systèmes de templates sont basés sur XML et ne génèrent que de
XML. Mais c'est loin d'être la majorité. Pour le reste, s'il est vrai
que la génération (dynamique) de pages HTML est le cas d'utilisation le
plus fréquent des systèmes de template, c'est loin - très loin - d'être
le seul. Pour ma part, j'avais apris le principe avec les systèmes de
modèles/fusions de documents sous MS Office (quelque part vers le milieu
du siècle dernier), puis avec les générateurs de rapports des applis de
gestion (CrystalReport & co). En ce qui concerne les systèmes que
j'utilise actuellement, même si ça reste avant tout dans le cadre du
developpement web, ça inclus aussi la génération de css, de javascript,
de mails, etc - bref de toute sorte de formats textes.
Mais effectivement, j'ai des données que
je veux afficher (dans un pdf dans mon cas, et via du code LaTeX).
Donc du LaTeX.
C'est surtout d'un point de vue conception que je me pose des
questions. J'ai voulu faire un truc un peu OO, mais je n'y arrive
pas bien, j'ai l'impression de mélanger le procédural et l'OO.
D'ailleurs, je me demandais si mon problème était un problème adapté
à l'OO. Bref, est-ce adapté de faire un code OO pour ce problème et
comment faire (si oui) ?
Regarde comment fonctionne des systèmes comme Mako, Jinja ou Cheetah.
Et ben, jamais entendu parlé. Je regarderai.
Sont tous en open source donc il y a pas mal à apprendre. Ceci étant, je
ne t'en ai cité que trois, mais il y en a un paquet d'autres - regarde
dans la section développement web de python.org pour d'autres solutions
possibles.
Sur mon PC, tout est en Utf-8. Comment peut-on gérer le fait que ça
génère ou non (en fonction de ce que l'on souhaite) du Latin1 ?
s = "some string"
s.decode("utf-8").encode("latin-1")
Ah parfait.
En général, la meilleure solution est de ne gérer en interne que de
l'unicode, donc en décodant (le template et les données) à l'entrée et
en decodant (le résultat) à la sortie.
Même si ce n'est pas le but initial de mon fil, toutes autres
remarques sur le script sont les bienvenues également : remarques
formelles, remarques sur l'aspect optimisation mémoire (que je n'ai
pas du tout pris en compte étant donnée la faible taille de mes
fichiers "modele" et "donnees"),
L'approche "flux/pipelines" est généralement la meilleure façon de gérer
cette problématique. Regarde du coté des itérateurs/générateurs.
etc. bref toutes autres remarques
m'intéressent aussi.
Heu... Là je crois que je vais attendre d'être un peu reposé - j'ai
bouffé ma dose de code pour la journée, désolé !-)
Ah, ça veut dire qu'à partir d'une certaine dose, on peut en avoir plein
le... dos ? :-)
ou plein le DOS, si on est adepte de MS. Pour ma part, en ce moment, je
serais plutôt un peu sur les GNU.
En général à partir de fichiers-tableur OpenOffice (parfois Excel). Ce sont en général des tableaux (ou fichier csv) qui ne dépassent guère la centaine de lignes.
En bref, c'est un système de template. Pour info, une bonne part des systèmes de template existant, même s'ils sont avant tout utilisés pour générer du HTML, peuvent générer n'importe quel type de format texte.
Même du LaTeX ?
C'est un langage de marquage dans un format texte, non ?
Ok. En revanche le mot template pour moi, ça évoquait seulement le code donnant l'aspect d'un site internet. Pour moi, ce mot était réservé au web en fait.
Certains systèmes de templates sont basés sur XML et ne génèrent que de XML. Mais c'est loin d'être la majorité. Pour le reste, s'il est vrai que la génération (dynamique) de pages HTML est le cas d'utilisation le plus fréquent des systèmes de template, c'est loin - très loin - d'être le seul. Pour ma part, j'avais apris le principe avec les systèmes de modèles/fusions de documents sous MS Office (quelque part vers le milieu du siècle dernier), puis avec les générateurs de rapports des applis de gestion (CrystalReport & co). En ce qui concerne les systèmes que j'utilise actuellement, même si ça reste avant tout dans le cadre du developpement web, ça inclus aussi la génération de css, de javascript, de mails, etc - bref de toute sorte de formats textes.
Mais effectivement, j'ai des données que je veux afficher (dans un pdf dans mon cas, et via du code LaTeX).
Donc du LaTeX.
C'est surtout d'un point de vue conception que je me pose des questions. J'ai voulu faire un truc un peu OO, mais je n'y arrive pas bien, j'ai l'impression de mélanger le procédural et l'OO. D'ailleurs, je me demandais si mon problème était un problème adapté à l'OO. Bref, est-ce adapté de faire un code OO pour ce problème et comment faire (si oui) ?
Regarde comment fonctionne des systèmes comme Mako, Jinja ou Cheetah.
Et ben, jamais entendu parlé. Je regarderai.
Sont tous en open source donc il y a pas mal à apprendre. Ceci étant, je ne t'en ai cité que trois, mais il y en a un paquet d'autres - regarde dans la section développement web de python.org pour d'autres solutions possibles.
Sur mon PC, tout est en Utf-8. Comment peut-on gérer le fait que ça génère ou non (en fonction de ce que l'on souhaite) du Latin1 ?
s = "some string" s.decode("utf-8").encode("latin-1")
Ah parfait.
En général, la meilleure solution est de ne gérer en interne que de l'unicode, donc en décodant (le template et les données) à l'entrée et en decodant (le résultat) à la sortie.
Même si ce n'est pas le but initial de mon fil, toutes autres remarques sur le script sont les bienvenues également : remarques formelles, remarques sur l'aspect optimisation mémoire (que je n'ai pas du tout pris en compte étant donnée la faible taille de mes fichiers "modele" et "donnees"),
L'approche "flux/pipelines" est généralement la meilleure façon de gérer cette problématique. Regarde du coté des itérateurs/générateurs.
etc. bref toutes autres remarques m'intéressent aussi.
Heu... Là je crois que je vais attendre d'être un peu reposé - j'ai bouffé ma dose de code pour la journée, désolé !-)
Ah, ça veut dire qu'à partir d'une certaine dose, on peut en avoir plein le... dos ? :-)
ou plein le DOS, si on est adepte de MS. Pour ma part, en ce moment, je serais plutôt un peu sur les GNU.
Bon, ok ------>[]
Francois
Bonjour à tous et pardon pour ma réponse tardive, j'étais assez pris (là c'est un peu mieux, forcément c'est le week-end).
En général, la meilleure solution est de ne gérer en interne que de l'unicode, donc en décodant (le template et les données) à l'entrée et en decodant (le résultat) à la sortie.
J'ai essayé de respecter ce principe (en espérant l'avoir bien compris). Voici une nouvelle version de mon script, plus propre je crois et surtout j'y ai mis des commentaires. Voici le source :
http://sisco.laf.free.fr/model2target.txt
ou plein le DOS, si on est adepte de MS. Pour ma part, en ce moment, je serais plutôt un peu sur les GNU.
He he ! Pas mal. :-)
-- François Lafont
Bonjour à tous et pardon pour ma réponse tardive, j'étais assez pris (là
c'est un peu mieux, forcément c'est le week-end).
En général, la meilleure solution est de ne gérer en interne que de
l'unicode, donc en décodant (le template et les données) à l'entrée et
en decodant (le résultat) à la sortie.
J'ai essayé de respecter ce principe (en espérant l'avoir bien compris).
Voici une nouvelle version de mon script, plus propre je crois et
surtout j'y ai mis des commentaires. Voici le source :
http://sisco.laf.free.fr/model2target.txt
ou plein le DOS, si on est adepte de MS. Pour ma part, en ce moment, je
serais plutôt un peu sur les GNU.
Bonjour à tous et pardon pour ma réponse tardive, j'étais assez pris (là c'est un peu mieux, forcément c'est le week-end).
En général, la meilleure solution est de ne gérer en interne que de l'unicode, donc en décodant (le template et les données) à l'entrée et en decodant (le résultat) à la sortie.
J'ai essayé de respecter ce principe (en espérant l'avoir bien compris). Voici une nouvelle version de mon script, plus propre je crois et surtout j'y ai mis des commentaires. Voici le source :
http://sisco.laf.free.fr/model2target.txt
ou plein le DOS, si on est adepte de MS. Pour ma part, en ce moment, je serais plutôt un peu sur les GNU.
He he ! Pas mal. :-)
-- François Lafont
Francois
Francois a écrit :
Voici une nouvelle version de mon script, plus propre je crois et surtout j'y ai mis des commentaires. Voici le source :
http://sisco.laf.free.fr/model2target.txt
Peut-être que ça sera un plus agréable à lire avec un peu de coloration syntaxique ici : http://sisco.laf.free.fr/codes/model2target.html
-- François Lafont
Francois a écrit :
Voici une nouvelle version de mon script, plus propre je crois et
surtout j'y ai mis des commentaires. Voici le source :
http://sisco.laf.free.fr/model2target.txt
Peut-être que ça sera un plus agréable à lire avec un peu de coloration
syntaxique ici :
http://sisco.laf.free.fr/codes/model2target.html