Projet:Laboratoire/Espaces de noms/Minute technique/Recherche étapes intermédiaires

Une page de Wikiversité.
Sauter à la navigation Sauter à la recherche

Le volet précédent nous a permis de simplifier le code des scripts Python dont la complexité se concentre dans la bibliothèque mais se répartie en fonctions courtes et distinctes.

Création du script rch.py[modifier le wikicode]

Nous écrivons le script rch.py (copie de wkt.py et modification de la variable ns_id). L’execution du nouveau script aboutie à la création du module:Ns Recherche dont nous avons besoin.

Nous effectuerons alors, la même tâche avec le code des modules Lua-Scribuntu que celle détaillée dans le volet d’expériences précédent.

Nous utilisons comme point de départ ; le [[module:Ns Recherche]] contenant les tables, écrit automatiquement par le script Python et spécifique à chaque espace de noms ; les modules utilisés lors du premier volet qui nous serviront d’exemple mais ne seront pas modifié(s) ; le module:Aide vues (cf historique) contenant une fonction très simple (environ 6 lignes).

Nous souhaitons développer la partie commune aux modules:

  1. module:Aide vues
  2. module:Wikiversité vues
  3. module:Projet vues
  4. module:Recherche vues
  5. module:Transwiki vues

Nous enregistrerons les nouvelles fonctions Lua-Scribuntu dans la librairie suivante:

Comme pour les script Pythons, hlp, wkt, pjt…, nous conserverons des fichiers, ici des modules spécifiques à chaque espace de noms ; pour développer dans un second temps le code nécessaire à l’analyse particulière de chaque espace de noms.

Liste des fonctions pour Namespace library[modifier le wikicode]

  1. prop() première fonction, elle se répète sur tous les modules du volet documentation ; nous déplaçons la fonction dans la librairie module:Namespace lib, qui est chargée dans le module:Recherche vues

La fonction prop() depuis la librairie[modifier le wikicode]

Dans cette configuration l’appel à la fonction prop() nécessite de passer la table des propriétés en argument.

Attention une grosse difficulté se cache dans cette dernière phrase. Le module de chaque espace de noms doit passer à la librairie sa propre table. Nous l’importons individuellement dans chaque (module:Label vues) à partir du (module:Ns Label) correspondant via le code:

Nous percevons que c’est l’appel du module qui détermine l’espace de noms que notre script doit analyser.

D’ores et déjà nous avons besoin de reconnaitre cette même variable sous un même nom: t_prop ce qui nous amène à adapter l’ensemble des scripts Python.

La fonction contenue dans la librairie se distingue, par son préfixe "ns_" ; de la fonction appelée par l’utilisateur qui continue sous le nom (prop).

En choisissant depuis le script Python des noms de variables adéquat pour afficher sur les pages nous simplifierons notre code:

Noms des variables Python[modifier le wikicode]
  1. la table des propriétés de l'espace de noms: t_prop
  2. le nombre total de pages: Total
  3. le nombre de redirections: Redirection
  4. le nombre de pages racines: Racine
  5. le nombre total de sous pages: Sous_pages
L’analyse des sous-pages et leur profondeur devient pénible ici.
Il faudra conserver le total de sous pages et reporter l’analyse sur la profondeur de l’espace de noms dans une autre fonction.
Code supprimé 
## le nombre de sous-pages de premier niveau: Sub1
## le nombre de sous-pages de second niveau:  Sub2
## le nombre de sous-pages du troisième niveau et plus: Sub_plus
L’analyse des sous-pages est déplacée dans la fonction stat_sub().

Étape 1[modifier le wikicode]

Nous avons appliqué les modifications listées au chapitre étape 1 de l’expérience "Transwiki".

  1. Actualisation de rch.py & du Module:Recherche vues

Fonction abandonnées[modifier le wikicode]

  • nombre_document_recherche
  • projet_cat()
  • unref_in_cat
  • unref_lab
  • unref
  • unaffected
  • docr_in_cat()
  • group_sub