Manual:Pywikibot/Compat/deprecation

This page is a translated version of the page Manual:Pywikibot/Compat/deprecation and the translation is 92% complete.

Pywikibot compact est périmé. Les utilisateurs de la librairie doivent se tourner vers la version core actuellement maintenue.

Contexte

Pywikibot (auparavant Pywikipédiabot) est apparu en 2002, lorsque MediaWiki n'avait pas encore d'API. In 2002 MediaWiki didn't have an api so pywikibot used screen scraping to interact with MediaWiki. In 2007 a new branch (rewrite, now core) was started from scratch using the (then new) MediaWiki api. Au fil des années, core est devenu de plus en plus mature et de nombreux scripts ont étés portés sur cette nouvelle version. En 2013, "core" a dépassé "compat" en nombre de changements. En 2015, les développeurs de Pywikibot ont décidé de déprécier la version "compat" de Pywikipot et de mettre fin au support de cette version (voir phab:T99365 et phab: T101214). MediaWiki 1.27 était la dernière version supportée par la branche compact (voir phab:T150613).

Utiliser les scripts

Si vous utilisez les scripts de Pywikibot vous pouvez simplement installer la version core de la librairie. La plupart des scripts ont étés portés sur cette nouvelle version. La version core utilise un wrapper pour faire fonctionner ses scripts. Si vous en utilisez des connus, tel que redirect.py, vous pouvez facilement les utilisez avec core en les lançant avec pwb.py. Par exemple :

$ python pwb.py redirect #instead of python redirect.py

Migrer les scripts

Si vous avez écrit des scripts basés sur compat, il existe une conversion dans le noyau qui vous aide à migrer. Et il existe un script qui porte automatiquement vers le noyau vos scripts rendus compatibles.

Si vous avez des problèmes pour migrer vos scripts, vous pouvez demander de l'aide à la communauté.

Problèmes connus

pywikibot.Site().dbName() n'ajoute pas le suffixe '_p', donc en cas d'utilisation d'une librairie MySQL pour se connecter aux bases de données des Labs, vous devez ajouter un '_p' manuellement à la fin de la base. Par exemple :

mysqldb.connect("testwiki.labsdb", db = pywikibot.Site().dbName() + "_p", user = config.db_username, passwd = config.db_password)

Problèmes embêtants ?

Si vous obtenez des problèmes bloquants vous empêchant d'utiliser vos scripts avec core, merci de les reporter via un ticket sur Phabricator en le mentionnant dans cette conversation.