-
Notifications
You must be signed in to change notification settings - Fork 17
Manquement de paragraphes dû aux versionnage de sections #11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
C'est un peu moche mais je ne connais pas trop les manip sql
…igin/date_fond', 'origin/improve-markdown' and 'origin/mises-a-jour-des-scripts'
Le format de sortie est géré par différentes abstractions permettant de générer différents formats de sortie tout en dissociant bien le code interne : * syntaxe utilisée : Markdown, etc. * organisation des fichiers : un fichier unique, un article par fichier (sans répertoires), etc. * versionnement : Git, etc. (#35) Pour chaque abstraction, une "interface" est proposée. Étant donné l’ampleur du changement, il est possible que ces interfaces évoluent dans les semaines qui viennent. Au passage, un cache de sections (#32) est implémenté pour éviter de recalculer (récursivement) les sous-sections. La difficulté est de repérer (récursivement) la plus proche date interne de fin de vigueur, ce qui est fait en retournant ce résultat avec le texte de la section pour invalider toutes les sections parentes au-delà de cette date de fin de vigueur. Le gain de temps de calcul est environ 30 à 100 (pifométriquement, ça passe d’heures de calcul à minutes de calcul). Avec le travail sur le cache de sections a été vérifié de façon plus fine différentes exceptions sur les dates de vigueur. Entre autres, l’exception où la date de début de vigueur est 2999-01-01 (=absence de date) notamment utilisée dans les arrêtés. Cela pourrait corriger #11 et #30.
Performance ----------- Plutôt que de faire 1+N requêtes SQL par section (1 pour obtenir ses sous-sections à la date de vigueur + N pour obtenir les titres de sous-sections), une requête globale à tout un texte est faite comprenant toutes les sections et sous-sections et une jointure pour obtenir les titres. Le temps de démarrage est donc plus long mais la suite est beaucoup plus rapide. Articles manquants ------------------ Lorsque ce n’est pas imputable à la base LEGI elle-même (cf #30), certains articles (ou sections ?) manquent du fait du code et/ou du mécanisme de cache et/ou de la structure de données pas assez comprise. Par exemple, si une section a une plage de vigueur 2000-01-01 – infini et une sous-section 2010-01-01 – 2011-01-01, le cache doit expirer en 2000-01-01, 2010-01-01, 2011-01-01, c’est-à-dire prendre en compte les dates de début et fin de vigueur des sous-sections : pour calculer la plus prochaine date d’expiration du cache d’une section, il faut donc lister ses sous-sections et donc les connaître, y compris celles qui ne sont pas encore en vigueur, c’est l’objet de cette généralisation de la requête SQL (en plus de l’aspect performances). Noter qu’il manque encore des articles, il faut rechercher à qui cela est imputable (code, cache, mauvaise compréhension du schéma de données de la base LEGI, base LEGI elle-même). Une amélioration possible serait que le cache de sections ne soit pas un simple dictionnaire (avec comme clé l’identifiant LEGISCTA), mais une structure arborescente. Cela faciliterait la lecture, mais il faut trouver une méthode efficace de créer cette structure. Bug: #11 #30
Ce manque correspond au cas où un article est rattaché à plusieurs sections parentes, lorsque la section parente change de titre. Issue: #11
La situation est beaucoup améliorée depuis le commit 367d633, cela corrige les exemples du "Chapitre III : La carte de séjour temporaire et la carte de séjour pluriannuelle" du CESEDA (qui était vide), la section "Chapitre VII : Sanctions prononcées par la formation restreinte de la Commission nationale de l'informatique et des libertés." de la loi 78-17 (qui était vide) et certains cas où le texte du CPI n’était nullement modifié d’une version à l’autre. Il reste toutefois 3 versions du CPI où le texte n’est pas modifié n’est pas modifié d’une version à l’autre, ce qui n’est pas normal (2008-06-29, 2011-05-29, 2017-12-22). |
Bon, sur les trois versions manquantes du CPI
Je ferme ce bug puisque je ne constate plus de problème. Si d’autres problèmes similaires sont trouvés, il vaudrait mieux ouvrir un nouveau bug. Dans ce cas, décrire précisément le problème (noms du code, de la section, de l’article, date à laquelle ça arrive). |
Parfois le fichier obtenu manque quelques paragraphes dans certaines sections : cela vient du fait que les modifications chronologiques des sections deviennent trop complexes...
Dans cette configuration,
Section 1
disparaît dans la nouvelle version.Je n'ai pas encore tout à fait compris votre base de données, mais le workaround que j'ai trouvé, au lieu de faire
est de prendre maintenant toutes les possibilités
Idem pour les sections, dans le fichier
exporter.py
.The text was updated successfully, but these errors were encountered: