Manual:Pywikibot/Compat/の廃止予定

From mediawiki.org
Jump to navigation Jump to search
This page is a translated version of the page Manual:Pywikibot/Compat/deprecation and the translation is 46% complete.
Outdated translations are marked like this.
Other languages:
Bahasa Indonesia • ‎English • ‎Türkçe • ‎español • ‎français • ‎polski • ‎čeština • ‎Ελληνικά • ‎български • ‎русский • ‎العربية • ‎中文 • ‎日本語

Pywikibot compat は廃止予定になりました。まだ compat を使用している利用者は core に移行すべきです。

背景

Pywikibot (当時の名称は「Pywikipediabot」) の開始は2002年からで、当時、MediaWiki にはapi がなく、pywikibot は MediaWiki とのやり取りにscreen scraping を使っていました。2007年の(当時の名称はrewrite、現行 core) 分岐では(導入直後の) MediaWiki api を使用して新規に書き起こしています。やがて core は拡張を重ねてほとんどのスクリプトの移行が進みました。2013年に改訂数で core は compat を超越、2015年に Pywikibot 開発者は Pywikibot の compat 版を終了しメンテの停止を決めています (phab:T99365phab:T101214をご参照ください)。 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. Over the years core got more mature and most scripts were migrated. 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 は compat 分岐のサポート版の最終リリースです (phab:T150613をご参照ください。)

スクリプトの使用

もし Pywikibot スクリプトを単体で使用している場合は、対処はPywikibot core をインストールすれば終わります。スクリプトの大部分は問題なく移行します。Pywikibot core はラッパーを用いてスクリプトを走らせます。標準のスクリプトを使う場合 (例:redirect.py)、pwb.py を当てて core で走らせます。サンプルを示します。 Most scripts have been migrated. Pywikibot core uses a wrapper to run all the scripts. If you are using standard scripts (like redirect.py), you can run it in core by using pwb.py. For example:

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

コードの移行

compat で書いたスクリプトは core にあるコンバージョンを使って移行します。compat によるスクリプトを coreに自動で読み込むスクリプト も用意されています。 And there is a script that automatically port your compat-based scripts to core.

コード変換が難しい場合はお手伝いしますので、連絡してください

既知の問題点

接頭辞'_p' を付与するにはpywikibot.Site().dbName() が使えなくなったため、財団の WMF Labs データベースに接続するときに MySQL ライブラリを使う場合は、接続先のデータベース名に続けて必ず手入力で接頭辞'_p' を 書きます。サンプルです。

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

ブロックのバグ

core でスクリプトを走らせようとするとブロックを受けるバグに気づいたら、バグ報告を Phabricator (に未掲載の場合のみ) に投稿して、phab:T99365にもあげてください。