Skip to content
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

Import - MAJIC: détection automatique des fichiers dans le répertoire #474

Merged
merged 1 commit into from
Jan 24, 2025

Conversation

mdouchin
Copy link
Collaborator

@mdouchin mdouchin commented Jan 21, 2025

Modification de la logique d'import des fichiers MAJIC:

  • La configuration dans la boîte à outil permet maintenant de configurer des mots clés ou des expressions régulières pour trouver les fichiers MAJIC en fonction de leur type. Ce n'est plus un nom de fichier exact qui est attendu, mais une partie du nom (ou une liste de mots séparés par | par exemple.)
    cadastre_option_dialog
  • Par défaut, ces expressions régulières permettent de trouver les fichiers MAJIC avec les nommages standard : <code_insee>_{BATI,FANR,LLOC,NBAT,PROP,PDLL}.txt ou ART.DC21.W<anneeYY><dept>0.<typefichier>.A<anneeYYYY>.N<numero_commande>
  • Lors de l'import, le plugin trouve automatiquement les fichiers qui correspondent. L'utilisateur n'a donc plus besoin de renommer ses fichiers ni de modifier la configuration du plugin.

Ticket : #463
Financé par le CRAIG https://www.craig.fr/

@mdouchin mdouchin force-pushed the improve_majic_detectin branch 5 times, most recently from 961502d to f2ea866 Compare January 21, 2025 16:40
@mdouchin
Copy link
Collaborator Author

@landryb Je veux bien que tu testes cette branche. Voir la description ci-dessus pour les changements.

@mdouchin mdouchin marked this pull request as ready for review January 22, 2025 07:36
@mdouchin mdouchin requested a review from Gustry January 22, 2025 07:36
@mdouchin mdouchin self-assigned this Jan 22, 2025
@mdouchin mdouchin added amélioration import concerne les fonctions d'import et de traitement des fichiers DGFiP documentation labels Jan 22, 2025
@mdouchin mdouchin force-pushed the improve_majic_detectin branch from f2ea866 to 0abf5bd Compare January 22, 2025 08:01
Copy link
Member

@Gustry Gustry left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From the Python side, without tests, LGTM

@landryb
Copy link
Contributor

landryb commented Jan 22, 2025

j'ai testé rapidement et j'ai pu importer sans rien configurer avec les fichiers suivants:

  • 38063_BATI.txt
  • 38063_LLOC.txt
  • 38063_NBAT.txt
  • 38063_PDLL.txt
  • 38063_PROP.txt
  • 38_FANR.txt

puis un second essai sans fantoir, avec les fichiers suivants (nommages originaux de livraison)

  • ART.DC21.W24150.BATI.A2024.N000648
  • ART.DC21.W24150.LLOC.A2024.N000648
  • ART.DC21.W24150.NBAT.A2024.N000648
  • ART.DC21.W24150.PDLL.A2024.N000648
  • ART.DC21.W24150.PROP.A2024.N000648

j'ai bien eu le message d'erreur attendu:

Des fichiers MAJIC importants sont manquants : fanr
Vérifier le chemin des fichiers MAJIC :
/home/landry/datas/cadastreqgis/majic/15
ainsi que les mots recherchés pour chaque type de fichier configurés dans les options du plugin Cadastre :
BATI, FANTOIR|FANR, LLOC|D166, NBAT, PDL, PROP

une fois téléchargé/décompressé FANR_15.txt, les fichiers ont bien été trouvés/importés. j'ai eu une memoryError sur le dept complet par contre..

File "/home/landry/.local/share/QGIS/QGIS3/profiles/default/python/plugins/cadastre/cadastre_import.py", line 595, in import_majic_file_into_database
for a in self.chunk(fin, self.maxInsertRows):
MemoryError

a mieux gérer ? il me semble que jusqu'ici je n'avais pas eu de souci pour importer un dept complet dans spatialite, et dans mon test c'était majic seul, sans edigeo.. e tj'ai les réglages par défaut pour le nb de lignes et le stockage temporaire en mémoire..d'ailleurs, estce que le n=100000 hardcodé ne devrait pas reprendre la valeur de cadastre/maxInsertRows dans la fonction chunk ?

on peut peut-etre juste améliorer la clarté du message d'erreur, si il manque juste 'fanr' n'afficher que le motif pour ce dernier, plutôt que tous les motifs ?

je vois que la regex est utilisée dans get_available_majic_files et ca a bien fonctionné dans les 2 cas testés.

la capture d'écran à jour a aussi un nouveau champ 'TOPO' j'imagine pour une autre PR.. :D

@mdouchin
Copy link
Collaborator Author

Merci pour le retour détaillé. Je corrige et repousse

@mdouchin mdouchin force-pushed the improve_majic_detectin branch from 0abf5bd to 3520724 Compare January 24, 2025 11:08
@mdouchin
Copy link
Collaborator Author

Je n'ai pas rencontré de souci de MEMORY avec SQLite pour un département. Pourrais-tu retester (je viens de pousser une nouvelle modification) et voir si au moins l'erreur est bien récupérée et affichée ?

Quelle est la taille des fichiers MAJIC testés et la RAM disponible sur ton poste ?

@mdouchin
Copy link
Collaborator Author

estce que le n=100000 hardcodé ne devrait pas reprendre la valeur de cadastre/maxInsertRows dans la fonction chunk ?

@landryb Non justement, cette syntaxe dit que la valeur de n (renommé en pieces_number) est mise à 100000 seulement si le paramètre n'est pas passé lors de l'appel à la méthode. Or, je passe bien self.maxInsertRows dans l'appel
for a in self.chunk(fin, self.maxInsertRows):

@landryb
Copy link
Contributor

landryb commented Jan 24, 2025

@landryb Non justement, cette syntaxe dit que la valeur de n (renommé en pieces_number) est mise à 100000 seulement si le paramètre n'est pas passé lors de l'appel à la méthode. Or, je passe bien self.maxInsertRows dans l'appel
for a in self.chunk(fin, self.maxInsertRows):

ah oui désolé je ne l'avais pas vu :)

Je n'ai pas rencontré de souci de MEMORY avec SQLite pour un département. Pourrais-tu retester (je viens de pousser une nouvelle modification) et voir si au moins l'erreur est bien récupérée et affichée ?

merci pour les except MemoryError: .. après je teste en conditions limitées sur openbsd, faut pas trop chercher non plus hein :)

Quelle est la taille des fichiers MAJIC testés et la RAM disponible sur ton poste ?

je suis pas sur le bon poste ajd, celui la n'a que 8Go, mais je crois que c'est pareil sur le laptop. Et c'est les majic du dept 15, donc relativement 'petits'.

pour moi c'est bon sur le fond de toute façon; je retesterais lundi si j'ai pas oublié entre temps..

@mdouchin
Copy link
Collaborator Author

Ok merci, je clos et continue sur ma lancée avec le TOPO

@mdouchin mdouchin merged commit 7601616 into 3liz:master Jan 24, 2025
4 checks passed
@mdouchin mdouchin deleted the improve_majic_detectin branch January 27, 2025 08:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
amélioration documentation import concerne les fonctions d'import et de traitement des fichiers DGFiP
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants