Manual:Pywikibot/Compat/deprecation

From mediawiki.org
This page is a translated version of the page Manual:Pywikibot/Compat/deprecation and the translation is 83% 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 devient de plus en plus mature et de nombreux scripts ont étés portés sur cette nouvelle version. In 2013 core surpassed compat in number of changes. In 2015 the developers of Pywikibot decided to deprecate the compat version of Pywikibot and discontinue support for compat (see phab:T99365 and 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.