Xqt has submitted this change. ( https://gerrit.wikimedia.org/r/c/pywikibot/core/+/772029 )
Change subject: [doc] convert phab task references into a link ......................................................................
[doc] convert phab task references into a link
- use sphinx.ext.extlinks to convert :phab: role into a link to a Phabricator task - connect pywikibot_fix_phab_tasks to sphinx to convert Phabricator tasks T\d{5,6} inside code documentation to that :phab: role - add pywikibot_fix_phab_tasks app - change some documentation to use :phab: role - also use sphinx.ext.autosectionlabel that every label becomes a reference - remove sphinx.ext.coverage which is not uses as I can see
Bug: T286364 Change-Id: Idfbabc1694592d93d8b344915623ad2dc6a5417e --- M HISTORY.rst M ROADMAP.rst M docs/api_ref/pywikibot.config.rst M docs/conf.py M docs/faq.rst M docs/global_options.rst M docs/glossary.rst M docs/installation.rst M docs/licenses.rst M scripts/CHANGELOG.md M tox.ini 11 files changed, 576 insertions(+), 569 deletions(-)
Approvals: Xqt: Verified; Looks good to me, approved
diff --git a/HISTORY.rst b/HISTORY.rst index aee8aaf..b1c3e5f 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -10,11 +10,11 @@
* i18n updates for date.py * Add number transliteration of 'lo', 'ml', 'pa', 'te' to NON_LATIN_DIGITS -* Detect range blocks with Page.is_blocked() method (T301282) +* Detect range blocks with Page.is_blocked() method (:phab:`T301282`) * to_latin_digits() function was added to textlib as counterpart of to_local_digits() function * api.Request.submit now handles search-title-disabled and search-text-disabled API Errors * A show_diff parameter was added to Page.put() and Page.change_category() -* Allow categories when saving IndexPage (T299806) +* Allow categories when saving IndexPage (:phab:`T299806`) * Add a new function case_escape to textlib * Support inheritance of the __STATICREDIRECT__ * Avoid non-deteministic behavior in removeDisableParts @@ -22,57 +22,57 @@ * Synchronize Page.linkedPages() parameters with Site.pagelinks() parameters * Scripts hash bang was changed from python to python3 * i18n.bundles(), i18n.known_languages and i18n._get_bundle() functions were added -* Raise ConnectionError immediately if urllib3.NewConnectionError occurs (T297994, 298859) -* Make pywikibot messages available with site package (T57109, T275981) +* Raise ConnectionError immediately if urllib3.NewConnectionError occurs (:phab:`T297994`, :phab:`T298859`) +* Make pywikibot messages available with site package (:phab:`T57109`, :phab:`T275981`) * Add support for API:Redirects * Enable shell script with Pywikibot site package -* Enable generate_user_files.py and generate_family_file with site-package (T107629) +* Enable generate_user_files.py and generate_family_file with site-package (:phab:`T107629`) * Add support for Python 3.11 -* Pywikibot supports PyPy 3 (T101592) -* A new method User.is_locked() was added to determine whether the user is currently locked globally (T249392) -* A new method APISite.is_locked() was added to determine whether a given user or user id is locked globally (T249392) -* APISite.get_globaluserinfo() method was added to retrieve globaluserinfo for any user or user id (T163629) +* Pywikibot supports PyPy 3 (:phab:`T101592`) +* A new method User.is_locked() was added to determine whether the user is currently locked globally (:phab:`T249392`) +* A new method APISite.is_locked() was added to determine whether a given user or user id is locked globally (:phab:`T249392`) +* APISite.get_globaluserinfo() method was added to retrieve globaluserinfo for any user or user id (:phab:`T163629`) * APISite.globaluserinfo attribute may be deleted to force reload * APISite.is_blocked() method has a force parameter to reload that info * Allow family files in base_dir by default -* Make pwb wrapper script a pywikibot entry point for scripts (T139143, T270480) -* Enable -version and --version with pwb wrapper or code entry point (T101828) -* Add `title_delimiter_and_aliases` attribute to family files to support WikiHow family (T294761) +* Make pwb wrapper script a pywikibot entry point for scripts (:phab:`T139143`, :phab:`T270480`) +* Enable -version and --version with pwb wrapper or code entry point (:phab:`T101828`) +* Add `title_delimiter_and_aliases` attribute to family files to support WikiHow family (:phab:`T294761`) * BaseBot has a public collections.Counter for reading, writing and skipping a page -* Upload: Retry upload if 'copyuploadbaddomain' API error occurs (T294825) +* Upload: Retry upload if 'copyuploadbaddomain' API error occurs (:phab:`T294825`) * Update invisible characters from unicodedata 14.0.0 * Add support for Wikimedia OCR engine with proofreadpage -* Rewrite tools.intersect_generators which makes it running up to 10'000 times faster. (T85623, T293276) -* The cached output functionality from compat release was re-implemented (T151727, T73646, T74942, T132135, T144698, T196039, T280466) +* Rewrite tools.intersect_generators which makes it running up to 10'000 times faster. (:phab:`T85623`, :phab:`T293276`) +* The cached output functionality from compat release was re-implemented (:phab:`T151727`, :phab:`T73646`, :phab:`T74942`, :phab:`T132135`, :phab:`T144698`, :phab:`T196039`, :phab:`T280466`) * L10N updates -* Adjust groupsize within pagegenerators.PreloadingGenerator (T291770) -* New "maxlimit" property was added to APISite (T291770) +* Adjust groupsize within pagegenerators.PreloadingGenerator (:phab:`T291770`) +* New "maxlimit" property was added to APISite (:phab:`T291770`)
Bugfixes ~~~~~~~~
-* Don't raise an exception if BlockEntry initializer found a hidden title (T78152) -* Fix KeyError in create_warnings_list (T301610) -* Enable similar script call of pwb.py on toolforge (T298846) -* Remove question mark character from forbidden file name characters (T93482) -* Enable -interwiki option with pagegenerators (T57099) -* Don't assert login result (T298761) -* Allow title placeholder $1 in the middle of an url (T111513, T298078) -* Don't create a Site object if pywikibot is not fully imported (T298384) -* Use page.site.data_repository when creating a _WbDataPage (T296985) -* Fix mysql AttributeError for sock.close() on toolforge (T216741) -* Only search user_script_paths inside config.base_dir (T296204) -* pywikibot.argv has been fixed for pwb.py wrapper if called with global args (T254435) -* Only ignore FileExistsError when creating the api cache (T295924) -* Only handle query limit if query module is limited (T294836) -* Upload: Only set filekey/offset for files with names (T294916) -* Make site parameter of textlib.replace_links() mandatory (T294649) -* Raise a generic ServerError if the http status code is unofficial (T293208) +* Don't raise an exception if BlockEntry initializer found a hidden title (:phab:`T78152`) +* Fix KeyError in create_warnings_list (:phab:`T301610`) +* Enable similar script call of pwb.py on toolforge (:phab:`T298846`) +* Remove question mark character from forbidden file name characters (:phab:`T93482`) +* Enable -interwiki option with pagegenerators (:phab:`T57099`) +* Don't assert login result (:phab:`T298761`) +* Allow title placeholder $1 in the middle of an url (:phab:`T111513`, :phab:`T298078`) +* Don't create a Site object if pywikibot is not fully imported (:phab:`T298384`) +* Use page.site.data_repository when creating a _WbDataPage (:phab:`T296985`) +* Fix mysql AttributeError for sock.close() on toolforge (:phab:`T216741`) +* Only search user_script_paths inside config.base_dir (:phab:`T296204`) +* pywikibot.argv has been fixed for pwb.py wrapper if called with global args (:phab:`T254435`) +* Only ignore FileExistsError when creating the api cache (:phab:`T295924`) +* Only handle query limit if query module is limited (:phab:`T294836`) +* Upload: Only set filekey/offset for files with names (:phab:`T294916`) +* Make site parameter of textlib.replace_links() mandatory (:phab:`T294649`) +* Raise a generic ServerError if the http status code is unofficial (:phab:`T293208`)
Breaking changes ~~~~~~~~~~~~~~~~
-* Support of Python 3.5.0 - 3.5.2 has been dropped (T286867) +* Support of Python 3.5.0 - 3.5.2 has been dropped (:phab:`T286867`) * generate_user_files.py, generate_user_files.py, shell.py and version.py were moved to pywikibot/scripts and must be used with pwb wrapper script * *See also Code cleanups below*
@@ -86,7 +86,7 @@ * showHelp() function was remove in favour of show_help * CombinedPageGenerator pagegenerator was removed in favour of itertools.chain * Remove deprecated echo.Notification.id -* Remove APISite.newfiles() method (T168339) +* Remove APISite.newfiles() method (:phab:`T168339`) * Remove APISite.page_exists() method * Raise a TypeError if BaseBot.init_page return None * Remove private upload parameters in UploadRobot.upload_file(), FilePage.upload() and APISite.upload() methods @@ -98,10 +98,10 @@ * Deprecated namespace and pageTitle parameter of CosmeticChangesToolkit were removed * Remove deprecated BaseSite namespace shortcuts * Remove deprecated Family.get_cr_templates method in favour of Site.category_redirects() -* Remove deprecated Page.put_async() method (T193494) +* Remove deprecated Page.put_async() method (:phab:`T193494`) * Ignore baserevid parameter for several DataSite methods * Remove deprecated preloaditempages method -* Remove disable_ssl_certificate_validation kwargs in http functions in favour of verify parameter (T265206) +* Remove disable_ssl_certificate_validation kwargs in http functions in favour of verify parameter (:phab:`T265206`) * Deprecated PYWIKIBOT2 environment variables were removed * version.ParseError was removed in favour of exceptions.VersionParseError * specialbots.EditReplacement and specialbots.EditReplacementError were removed in favour of exceptions.EditReplacementError @@ -118,8 +118,8 @@ * DuplicateFilterPageGenerator was replaced by tools.filter_unique * ItemPage.concept_url method was replaced by ItemPage.concept_uri * Outdated parameter names has been dropped -* Deprecated pywikibot.Error exception were removed in favour of pywikibot.exceptions.Error classes (T280227) -* Deprecated exception identifiers were removed (T280227) +* Deprecated pywikibot.Error exception were removed in favour of pywikibot.exceptions.Error classes (:phab:`T280227`) +* Deprecated exception identifiers were removed (:phab:`T280227`) * Deprecated date.FormatDate class was removed in favour of date.format_date function * language_by_size property of wowwiki Family was removed in favour of codes attribute * availableOptions was removed in favour of available_options @@ -160,15 +160,15 @@ ----- *28 October 2021*
-* L10N updates (T292423, T294526, T294527) +* L10N updates (:phab:`T292423`, :phab:`T294526`, :phab:`T294527`)
6.6.1 ----- *21 September 2021*
-* Fix for removed action API token parameters of MediaWiki 1.37 (T291202) -* APISite.validate_tokens() no longer replaces outdated tokens (T291202) +* Fix for removed action API token parameters of MediaWiki 1.37 (:phab:`T291202`) +* APISite.validate_tokens() no longer replaces outdated tokens (:phab:`T291202`) * L10N updates
@@ -176,8 +176,8 @@ ----- *15 September 2021*
-* Drop piprop from meta=proofreadinfo API call (T290585) -* Remove use_2to3 with setup.py (T290451) +* Drop piprop from meta=proofreadinfo API call (:phab:`T290585`) +* Remove use_2to3 with setup.py (:phab:`T290451`) * Unify WbRepresentation's abstract method signature * L10N updates
@@ -186,18 +186,18 @@ ----- *05 August 2021*
-* Add support for jvwikisource (T286247) +* Add support for jvwikisource (:phab:`T286247`) * Handle missingtitle error code when deleting -* Check for outdated setuptools in pwb.py wrapper (T286980) +* Check for outdated setuptools in pwb.py wrapper (:phab:`T286980`) * Remove traceback for original exception for known API error codes * Unused strm parameter of init_handlers was removed -* Ignore throttle.pid if a Site object cannot be created (T286848) -* Explicitly return an empty string with OutputProxyOption.out property (T286403) -* Explicitly return None from ContextOption.result() (T286403) -* Add support for Lingua Libre family (T286303) +* Ignore throttle.pid if a Site object cannot be created (:phab:`T286848`) +* Explicitly return an empty string with OutputProxyOption.out property (:phab:`T286403`) +* Explicitly return None from ContextOption.result() (:phab:`T286403`) +* Add support for Lingua Libre family (:phab:`T286303`) * Catch invalid titles in Category.isCategoryRedirect() * L10N updates -* Provide structured data on Commons (T213904, T223820) +* Provide structured data on Commons (:phab:`T213904`, :phab:`T223820`)
6.4.0 @@ -206,25 +206,25 @@
* Add support for dagwiki, shiwiki and banwikisource * Fix and clean up DataSite.get_property_by_name -* Update handling of abusefilter-{disallow,warning} codes (T285317) -* Fix terminal_interface_base.input_list_choice (T285597) +* Update handling of abusefilter-{disallow,warning} codes (:phab:`T285317`) +* Fix terminal_interface_base.input_list_choice (:phab:`T285597`) * Fix ItemPage.fromPage call * Use *iterables instead of genlist in intersect_generators * Use a sentinel variable to determine the end of an iterable in roundrobin_generators -* Require setuptools 20.8.1 (T284297) +* Require setuptools 20.8.1 (:phab:`T284297`) * Add setter and deleter for summary_parameters of AutomaticTWSummaryBot * L10N updates * Add update_options attribute to BaseBot class to update available_options -* Clear put_queue when canceling page save (T284396) -* Add -url option to pagegenerators (T239436) -* Add add_text function to textlib (T284388) -* Require setuptools >= 49.4.0 (T284297) +* Clear put_queue when canceling page save (:phab:`T284396`) +* Add -url option to pagegenerators (:phab:`T239436`) +* Add add_text function to textlib (:phab:`T284388`) +* Require setuptools >= 49.4.0 (:phab:`T284297`) * Require wikitextparser>=0.47.5 -* Allow images to upload locally even they exist in the shared repository (T267535) -* Show a warning if pywikibot.__version__ is behind scripts.__version__ (T282766) -* Handle <ce>/<chem> tags as <math> aliases within textlib.replaceExcept() (T283990) -* Expand simulate query response for wikibase support (T76694) -* Double the wait time if ratelimit exceeded (T270912) +* Allow images to upload locally even they exist in the shared repository (:phab:`T267535`) +* Show a warning if pywikibot.__version__ is behind scripts.__version__ (:phab:`T282766`) +* Handle <ce>/<chem> tags as <math> aliases within textlib.replaceExcept() (:phab:`T283990`) +* Expand simulate query response for wikibase support (:phab:`T76694`) +* Double the wait time if ratelimit exceeded (:phab:`T270912`) * Deprecated extract_templates_and_params_mwpfh and extract_templates_and_params_regex functions were removed
@@ -232,12 +232,12 @@ ----- *31 May 2021*
-* Check bot/nobots templates for cosmetic_changes hook (T283989) -* Remove outdated opt._option which is already dropped (T284005) +* Check bot/nobots templates for cosmetic_changes hook (:phab:`T283989`) +* Remove outdated opt._option which is already dropped (:phab:`T284005`) * Use IntEnum with cosmetic_changes CANCEL -* Remove lru_cahce from botMayEdit method and fix it's logic (T283957) -* DataSite.createNewItemFromPage() method was removed in favour of ImagePage.fromPage() (T98663) -* mwparserfromhell or wikitextparser MediaWiki markup parser is mandatory (T106763) +* Remove lru_cahce from botMayEdit method and fix it's logic (:phab:`T283957`) +* DataSite.createNewItemFromPage() method was removed in favour of ImagePage.fromPage() (:phab:`T98663`) +* mwparserfromhell or wikitextparser MediaWiki markup parser is mandatory (:phab:`T106763`)
6.2.0 @@ -247,23 +247,23 @@ Improvements and Bugfixes ~~~~~~~~~~~~~~~~~~~~~~~~~
-* Use different logfiles for multiple processes of the same script (T56685) +* Use different logfiles for multiple processes of the same script (:phab:`T56685`) * throttle.pip will be reused as soon as possbile * terminal_interface_base.TerminalHandler is subclassed from logging.StreamHandler -* Fix iterating of SizedKeyCollection (T282865) +* Fix iterating of SizedKeyCollection (:phab:`T282865`) * An abstract base user interface module was added -* APISite method pagelanglinks() may skip links with empty titles (T223157) +* APISite method pagelanglinks() may skip links with empty titles (:phab:`T223157`) * Fix Page.getDeletedRevision() method which always returned an empty list -* Async chunked uploads are supported (T129216, T133443) -* A new InvalidPageError will be raised if a Page has no version history (T280043) +* Async chunked uploads are supported (:phab:`T129216`, :phab:`T133443`) +* A new InvalidPageError will be raised if a Page has no version history (:phab:`T280043`) * L10N updates -* Fix __getattr__ for WikibaseEntity (T281389) -* Handle abusefilter-{disallow,warning} codes (T85656) +* Fix __getattr__ for WikibaseEntity (:phab:`T281389`) +* Handle abusefilter-{disallow,warning} codes (:phab:`T85656`)
Code cleanups ~~~~~~~~~~~~~
-* MultipleSitesBot.site attribute was removed (T283209) +* MultipleSitesBot.site attribute was removed (:phab:`T283209`) * Deprecated BaseSite.category_namespaces() method was removed * i18n.twntranslate() function was removed in favour of twtranslate() * siteinfo must be used as a dictionary ad cannot be called anymore @@ -277,12 +277,12 @@ * Rename _MultiTemplateMatchBuilder to MultiTemplateMatchBuilder * User.name() method was removed in favour of User.username property * BasePage.getLatestEditors() method was removed in favour of contributors() or revisions() -* pagenenerators.handleArg() method was renamed to handle_arg() (T271437) +* pagenenerators.handleArg() method was renamed to handle_arg() (:phab:`T271437`) * CategoryGenerator, FileGenerator, ImageGenerator and ReferringPageGenerator pagegenerator functions were removed -* Family.ignore_certificate_error() method was removed in favour of verify_SSL_certificate (T265205) +* Family.ignore_certificate_error() method was removed in favour of verify_SSL_certificate (:phab:`T265205`) * tools.is_IP was renamed to is_ip_address due to PEP8 * config2.py was renamed to config.py -* Exceptions were renamed having a suffix "Error" due to PEP8 (T280227) +* Exceptions were renamed having a suffix "Error" due to PEP8 (:phab:`T280227`)
6.1.0 @@ -292,23 +292,23 @@ Improvements and Bugfixes ~~~~~~~~~~~~~~~~~~~~~~~~~
-* proofreadpage: search for "new" class after purge (T280357) +* proofreadpage: search for "new" class after purge (:phab:`T280357`) * Enable different types with BaseBot.treat() -* Context manager depends on pymysql version, not Python release (T279753) -* Bugfix for Site.interwiki_prefix() (T188179) -* Exclude expressions from parsed template in mwparserfromhell (T71384) +* Context manager depends on pymysql version, not Python release (:phab:`T279753`) +* Bugfix for Site.interwiki_prefix() (:phab:`T188179`) +* Exclude expressions from parsed template in mwparserfromhell (:phab:`T71384`) * Provide an object representation for DequeGenerator -* Allow deleting any subclass of BasePage by title (T278659) -* Add support for API:Revisiondelete with Site.deleterevs() method (T276726) +* Allow deleting any subclass of BasePage by title (:phab:`T278659`) +* Add support for API:Revisiondelete with Site.deleterevs() method (:phab:`T276726`) * L10N updates -* Family files can be collected from a zip folder (T278076) +* Family files can be collected from a zip folder (:phab:`T278076`)
Dependencies ~~~~~~~~~~~~
-* **mwparserfromhell** or **wikitextparser** are strictly recommended (T106763) -* Require **Pillow**>=8.1.1 due to vulnerability found (T278743) -* TkDialog of GUI userinterface requires **Python 3.6+** (T278743) +* **mwparserfromhell** or **wikitextparser** are strictly recommended (:phab:`T106763`) +* Require **Pillow**>=8.1.1 due to vulnerability found (:phab:`T278743`) +* TkDialog of GUI userinterface requires **Python 3.6+** (:phab:`T278743`) * Enable textlib.extract_templates_and_params with **wikitextparser** package * Add support for **PyMySQL** 1.0.0+
@@ -318,7 +318,7 @@ * APISite.resolvemagicwords(), BaseSite.ns_index() and remove BaseSite.getNamespaceIndex() were removed * Deprecated MoveEntry.new_ns() and new_title() methods were removed * Unused NoSuchSite and PageNotSaved exception were removed -* Unused BadTitle exception was removed (T267768) +* Unused BadTitle exception was removed (:phab:`T267768`) * getSite() function was removed in favour of Site() constructor * Page.fileUrl() was removed in favour of Page.get_file_url() * Deprecated getuserinfo and getglobaluserinfo Site methods were removed @@ -328,7 +328,7 @@ ----- *20 March 2021*
-* Add support for taywiki, trvwiki and mnwwiktionary (T275838, T276128, T276250) +* Add support for taywiki, trvwiki and mnwwiktionary (:phab:`T275838`, :phab:`T276128`, :phab:`T276250`)
6.0.0 @@ -338,74 +338,74 @@ Breaking changes ~~~~~~~~~~~~~~~~
-* interwiki_graph module was removed (T223826) +* interwiki_graph module was removed (:phab:`T223826`) * Require setuptools >= 20.2 due to PEP 440 -* Support of MediaWiki < 1.23 has been dropped (T268979) +* Support of MediaWiki < 1.23 has been dropped (:phab:`T268979`) * APISite.loadimageinfo will no longer return any content -* Return requests.Response with http.request() instead of plain text (T265206) +* Return requests.Response with http.request() instead of plain text (:phab:`T265206`) * config.db_hostname has been renamed to db_hostname_format
Code cleanups ~~~~~~~~~~~~~
-* tools.PY2 was removed (T213287) +* tools.PY2 was removed (:phab:`T213287`) * Site.language() method was removed in favour of Site.lang property * Deprecated Page.getMovedTarget() method was removed in favour of moved_target() * Remove deprecated Wikibase.lastrevid attribute -* config settings of archived scripts were removed (T223826) -* Drop startsort/endsort parameter for site.categorymembers method (T74101) -* Deprecated data attribute of http.fetch() result has been dropped (T265206) +* config settings of archived scripts were removed (:phab:`T223826`) +* Drop startsort/endsort parameter for site.categorymembers method (:phab:`T74101`) +* Deprecated data attribute of http.fetch() result has been dropped (:phab:`T265206`) * toStdout parameter of pywikibot.output() has been dropped * Deprecated Site.getToken() and Site.case was removed -* Deprecated Family.known_families dict was removed (T89451) +* Deprecated Family.known_families dict was removed (:phab:`T89451`) * Deprecated DataSite.get_* methods was removed * Deprecated LogEntryFactory.logtypes classproperty was removed -* Unused comms.threadedhttp module was removed; threadedhttp.HttpRequest was already replaced with requests.Response (T265206) +* Unused comms.threadedhttp module was removed; threadedhttp.HttpRequest was already replaced with requests.Response (:phab:`T265206`)
Other changes ~~~~~~~~~~~~~
-* Raise a SiteDefinitionError if api request response is Non-JSON and site is AutoFamily (T272911) -* Support deleting and undeleting specific file versions (T276725) +* Raise a SiteDefinitionError if api request response is Non-JSON and site is AutoFamily (:phab:`T272911`) +* Support deleting and undeleting specific file versions (:phab:`T276725`) * Only add bot option generator if the bot class have it already -* Raise a RuntimeError if pagegenerators -namespace option is provided too late (T276916) -* Check for LookupError exception in http._decide_encoding (T276715) -* Re-enable setting private family files (T270949) +* Raise a RuntimeError if pagegenerators -namespace option is provided too late (:phab:`T276916`) +* Check for LookupError exception in http._decide_encoding (:phab:`T276715`) +* Re-enable setting private family files (:phab:`T270949`) * Move the hardcoded namespace identifiers to an IntEnum * Buffer 'pageprops' in api.QueryGenerator * Ensure that BaseBot.generator is a Generator -* Add additional info into log if 'messagecode' is missing during login (T261061, T269503) -* Use hardcoded messages if i18n system is not available (T275981) +* Add additional info into log if 'messagecode' is missing during login (:phab:`T261061`, :phab:`T269503`) +* Use hardcoded messages if i18n system is not available (:phab:`T275981`) * Move wikibase data structures to page/_collections.py * L10N updates -* Add support for altwiki (T271984) -* Add support for mniwiki and mniwiktionary (T273467, T273462) -* Don't use mime parameter as boolean in api.Request (T274723) -* textlib.removeDisabledPart is able to remove templates (T274138) -* Create a SiteLink with __getitem__ method and implement lazy load (T273386, T245809, T238471, T226157) -* Fix date.formats['MonthName'] behaviour (T273573) +* Add support for altwiki (:phab:`T271984`) +* Add support for mniwiki and mniwiktionary (:phab:`T273467`, :phab:`T273462`) +* Don't use mime parameter as boolean in api.Request (:phab:`T274723`) +* textlib.removeDisabledPart is able to remove templates (:phab:`T274138`) +* Create a SiteLink with __getitem__ method and implement lazy load (:phab:`T273386`, :phab:`T245809`, :phab:`T238471`, :phab:`T226157`) +* Fix date.formats['MonthName'] behaviour (:phab:`T273573`) * Implement pagegenerators.handle_args() to process all options at once -* Add enabled_options, disabled_options to GeneratorFactory (T271320) +* Add enabled_options, disabled_options to GeneratorFactory (:phab:`T271320`) * Move interwiki() interwiki_prefix() and local_interwiki() methods from BaseSite to APISite -* Add requests.Response.headers to log when an API error occurs (T272325) +* Add requests.Response.headers to log when an API error occurs (:phab:`T272325`)
5.6.0 ----- *24 January 2021*
-* Use string instead of Path-like object with "open" function in UploadRobot for Python 3.5 compatibility (T272345) -* Add support for trwikivoyage (T271263) -* UI.input_list_choice() has been improved (T272237) +* Use string instead of Path-like object with "open" function in UploadRobot for Python 3.5 compatibility (:phab:`T272345`) +* Add support for trwikivoyage (:phab:`T271263`) +* UI.input_list_choice() has been improved (:phab:`T272237`) * Global handleArgs() function was removed in favour of handle_args * Deprecated originPage and foundIn property has been removed in interwiki_graph.py * ParamInfo modules, prefixes, query_modules_with_limits properties and module_attribute_map() method was removed * Allow querying alldeletedrevisions with APISite.alldeletedrevisions() and User.deleted_contributions() -* data attribute of http.fetch() response is deprecated (T265206) -* Positional arguments of page.Revision aren't supported any longer (T259428) -* pagenenerators.handleArg() method was renamed to handle_arg() (T271437) +* data attribute of http.fetch() response is deprecated (:phab:`T265206`) +* Positional arguments of page.Revision aren't supported any longer (:phab:`T259428`) +* pagenenerators.handleArg() method was renamed to handle_arg() (:phab:`T271437`) * Page methods deprecated for 6 years were removed -* Create a Site with AutoFamily if a family isn't predefined (T249087) +* Create a Site with AutoFamily if a family isn't predefined (:phab:`T249087`) * L10N updates
@@ -413,11 +413,11 @@ ----- *12 January 2021*
-* Add support for niawiki, bclwikt, diqwikt, niawikt (T270416, T270282, T270278, T270412) -* Delete page using pageid instead of title (T57072) -* version.getversion_svn_setuptools function was removed (T270393) +* Add support for niawiki, bclwikt, diqwikt, niawikt (:phab:`T270416`, :phab:`T270282`, :phab:`T270278`, :phab:`T270412`) +* Delete page using pageid instead of title (:phab:`T57072`) +* version.getversion_svn_setuptools function was removed (:phab:`T270393`) * Add support for "musical notation" data type to wikibase -* -grepnot filter option was added to pagegenerators module (T219281) +* -grepnot filter option was added to pagegenerators module (:phab:`T219281`) * L10N updates
@@ -425,13 +425,13 @@ ----- *2 January 2021*
-* Re-enable reading user-config.py from site package (T270941) +* Re-enable reading user-config.py from site package (:phab:`T270941`) * LoginManager.getCookie() was renamed to login_to_site() -* Deprecation warning for MediaWiki < 1.23 (T268979) +* Deprecation warning for MediaWiki < 1.23 (:phab:`T268979`) * Add backports to support some Python 3.9 changes -* Desupported shared_image_repository() and nocapitalize() methods were removed (T89451) +* Desupported shared_image_repository() and nocapitalize() methods were removed (:phab:`T89451`) * pywikibot.cookie_jar was removed in favour of pywikibot.comms.http.cookie_jar -* Align http.fetch() params with requests and rename 'disable_ssl_certificate_validation' to 'verify' (T265206) +* Align http.fetch() params with requests and rename 'disable_ssl_certificate_validation' to 'verify' (:phab:`T265206`) * Deprecated compat BasePage.getRestrictions() method was removed * Outdated Site.recentchanges() parameters has been dropped * site.LoginStatus has been removed in favour of login.LoginStatus @@ -442,20 +442,20 @@ ----- *19 December 2020*
-* Allow using pywikibot as site-package without user-config.py (T270474) +* Allow using pywikibot as site-package without user-config.py (:phab:`T270474`) * Python 3.10 is supported -* Fix AutoFamily scriptpath() call (T270370) -* Add support for skrwiki, skrwiktionary, eowikivoyage, wawikisource, madwiki (T268414, T268460, T269429, T269434, T269442) +* Fix AutoFamily scriptpath() call (:phab:`T270370`) +* Add support for skrwiki, skrwiktionary, eowikivoyage, wawikisource, madwiki (:phab:`T268414`, :phab:`T268460`, :phab:`T269429`, :phab:`T269434`, :phab:`T269442`) * wikistats methods fetch, raw_cached, csv, xml has been removed * PageRelatedError.getPage() has been removed in favour of PageRelatedError.page * DataSite.get_item() method has been removed -* global put_throttle option may be given as float (T269741) +* global put_throttle option may be given as float (:phab:`T269741`) * Property.getType() method has been removed -* Family.server_time() method was removed; it is still available from Site object (T89451) -* All HttpRequest parameters except of charset has been dropped (T265206) -* A lot of methods and properties of HttpRequest are deprecared in favour of requests.Resonse attributes (T265206) -* Method and properties of HttpRequest are delegated to requests.Response object (T265206) -* comms.threadedhttp.HttpRequest.raw was replaced by HttpRequest.content property (T265206) +* Family.server_time() method was removed; it is still available from Site object (:phab:`T89451`) +* All HttpRequest parameters except of charset has been dropped (:phab:`T265206`) +* A lot of methods and properties of HttpRequest are deprecared in favour of requests.Resonse attributes (:phab:`T265206`) +* Method and properties of HttpRequest are delegated to requests.Response object (:phab:`T265206`) +* comms.threadedhttp.HttpRequest.raw was replaced by HttpRequest.content property (:phab:`T265206`) * Desupported version.getfileversion() has been removed * site parameter of comms.http.requests() function is mandatory and cannot be omitted * date.MakeParameter() function has been removed @@ -467,40 +467,40 @@ ----- *10 December 2020*
-* Remove deprecated args for Page.protect() (T227610) +* Remove deprecated args for Page.protect() (:phab:`T227610`) * Move BaseSite its own site/_basesite.py file * Improve toJSON() methods in page.__init__.py -* _is_wikibase_error_retryable rewritten (T48535, 268645) +* _is_wikibase_error_retryable rewritten (:phab:`T48535`, 268645) * Replace FrozenDict with frozenmap * WikiStats table may be sorted by any key * Retrieve month names from mediawiki_messages when required * Move Namespace and NamespacesDict to site/_namespace.py file -* Fix TypeError in api.LoginManager (T268445) +* Fix TypeError in api.LoginManager (:phab:`T268445`) * Add repr() method to BaseDataDict and ClaimCollection * Define availableOptions as deprecated property -* Do not strip all whitespaces from Link.title (T197642) +* Do not strip all whitespaces from Link.title (:phab:`T197642`) * Introduce a common BaseDataDict as parent for LanguageDict and AliasesDict -* Replaced PageNotSaved by PageSaveRelatedError (T267821) +* Replaced PageNotSaved by PageSaveRelatedError (:phab:`T267821`) * Add -site option as -family -lang shortcut -* Enable APISite.exturlusage() with default parameters (T266989) +* Enable APISite.exturlusage() with default parameters (:phab:`T266989`) * Update tools._unidata._category_cf from Unicode version 13.0.0 * Move TokenWallet to site/_tokenwallet.py file -* Fix import of httplib after release of requests 2.25 (T267762) -* user keyword parameter can be passed to Site.rollbackpage() (T106646) -* Check for {{bots}}/{{nobots}} templates in Page.text setter (T262136, T267770) +* Fix import of httplib after release of requests 2.25 (:phab:`T267762`) +* user keyword parameter can be passed to Site.rollbackpage() (:phab:`T106646`) +* Check for {{bots}}/{{nobots}} templates in Page.text setter (:phab:`T262136`, :phab:`T267770`) * Remove deprecated UserBlocked exception and Page.contributingUsers() * Add support for some 'wbset' actions in DataSite -* Fix UploadRobot site attribute (T267573) -* Ignore UnicodeDecodeError on input (T258143) -* Replace 'source' exception regex with 'syntaxhighlight' (T257899) -* Fix get_known_families() for wikipedia_family (T267196) +* Fix UploadRobot site attribute (:phab:`T267573`) +* Ignore UnicodeDecodeError on input (:phab:`T258143`) +* Replace 'source' exception regex with 'syntaxhighlight' (:phab:`T257899`) +* Fix get_known_families() for wikipedia_family (:phab:`T267196`) * Move _InterwikiMap class to site/_interwikimap.py * instantiate a CosmeticChangesToolkit by passing a page * Create a Site from sitename * pywikibot.Site() parameters "interface" and "url" must be keyworded -* Lookup the code parameter in xdict first (T255917) -* Remove interwiki_forwarded_from list from family files (T104125) -* Rewrite Revision class; each data can be accessed either by key or as an attribute (T102735, T259428) +* Lookup the code parameter in xdict first (:phab:`T255917`) +* Remove interwiki_forwarded_from list from family files (:phab:`T104125`) +* Rewrite Revision class; each data can be accessed either by key or as an attribute (:phab:`T102735`, :phab:`T259428`) * L10N-Updates
@@ -509,23 +509,23 @@
*1 November 2020*
-* Avoid conflicts between site and possible site keyword in api.Request.create_simple() (T262926) +* Avoid conflicts between site and possible site keyword in api.Request.create_simple() (:phab:`T262926`) * Remove wrong param of rvision() call in Page.latest_revision_id -* Do not raise Exception in Page.get_best_claim() but follow redirect (T265839) +* Do not raise Exception in Page.get_best_claim() but follow redirect (:phab:`T265839`) * xml-support of wikistats will be dropped * Remove deprecated mime_params in api.Request() * cleanup interwiki_graph.py and replace deprecated originPage by origin in Subjects -* Upload a file that ends with the '\r' byte (T132676) -* Fix incorrect server time (T266084) +* Upload a file that ends with the '\r' byte (:phab:`T132676`) +* Fix incorrect server time (:phab:`T266084`) * L10N-Updates -* Support Namespace packages in version.py (T265946) -* Server414Error was added to pywikibot (T266000) +* Support Namespace packages in version.py (:phab:`T265946`) +* Server414Error was added to pywikibot (:phab:`T266000`) * Deprecated editor.command() method was removed * comms.PywikibotCookieJar and comms.mode_check_decorator were deleted * Remove deprecated tools classes Stringtypes and UnicodeType * Remove deprecated tools function open_compressed and signature and UnicodeType class -* Fix http_tests.LiveFakeUserAgentTestCase (T265842) -* HttpRequest properties were renamed to request.Response identifiers (T265206) +* Fix http_tests.LiveFakeUserAgentTestCase (:phab:`T265842`) +* HttpRequest properties were renamed to request.Response identifiers (:phab:`T265206`)
5.0.0 @@ -533,47 +533,47 @@
*19 October 2020*
-* Add support for smn-wiki (T264962) +* Add support for smn-wiki (:phab:`T264962`) * callback parameter of comms.http.fetch() is desupported * Fix api.APIError() calls for Flow and Thanks extension -* edit, move, create, upload, unprotect and prompt parameters of Page.protect() are deprecated (T227610) -* Accept only valid names in generate_family_file.py (T265328, T265353) +* edit, move, create, upload, unprotect and prompt parameters of Page.protect() are deprecated (:phab:`T227610`) +* Accept only valid names in generate_family_file.py (:phab:`T265328`, :phab:`T265353`) * New plural.plural_rule() function returns a rule for a given language -* Replace deprecated urllib.request.URLopener with http.fetch (T255575) -* OptionHandler/BaseBot options are accessable as OptionHandler.opt attributes or keyword item (see also T264721) +* Replace deprecated urllib.request.URLopener with http.fetch (:phab:`T255575`) +* OptionHandler/BaseBot options are accessable as OptionHandler.opt attributes or keyword item (see also :phab:`T264721`) * pywikibot.setAction() function was removed * A namedtuple is the result of textlib.extract_sections() -* Prevent circular imports in config2.py and http.py (T264500) +* Prevent circular imports in config2.py and http.py (:phab:`T264500`) * version.get_module_version() is deprecated and gives no meaningfull result -* Fix version.get_module_filename() and update log lines (T264235) -* Re-enable printing log header (T264235) -* Fix result of tools.intersect_generators() (T263947) +* Fix version.get_module_filename() and update log lines (:phab:`T264235`) +* Re-enable printing log header (:phab:`T264235`) +* Fix result of tools.intersect_generators() (:phab:`T263947`) * Only show _GLOBAL_HELP options if explicitly wanted * Deprecated Family.version() methods were removed * Unused parameters of page methods like forceReload, insite, throttle, step was removed -* Raise RuntimeError instead of AttributeError for old wikis (T263951) +* Raise RuntimeError instead of AttributeError for old wikis (:phab:`T263951`) * Deprecated script options were removed -* lyricwiki_family was removed (T245439) +* lyricwiki_family was removed (:phab:`T245439`) * RecentChangesPageGenerator parameters has been synced with APISite.recentchanges * APISite.recentchanges accepts keyword parameters only * LoginStatus enum class was moved from site to login.py * WbRepresentation derives from abstract base class abc.ABC * Update characters in the Cf category to Unicode version 12.1.0 -* Update __all__ variable in pywikibot (T122879) -* Use api.APIGenerator through site._generator (T129013) -* Support of MediaWiki releases below 1.19 has been dropped (T245350) -* Page.get_best_claim () retrieves preferred Claim of a property referring to the given page (T175207) -* Check whether _putthead is current_thread() to join() (T263331) +* Update __all__ variable in pywikibot (:phab:`T122879`) +* Use api.APIGenerator through site._generator (:phab:`T129013`) +* Support of MediaWiki releases below 1.19 has been dropped (:phab:`T245350`) +* Page.get_best_claim () retrieves preferred Claim of a property referring to the given page (:phab:`T175207`) +* Check whether _putthead is current_thread() to join() (:phab:`T263331`) * Add BasePage.has_deleted_revisions() method * Allow querying deleted revs without the deletedhistory right -* Use ignore_discard for login cookie container (T261066) -* Siteinfo.get() loads data via API instead from cache if expiry parameter is True (T260490) -* Move latest revision id handling to WikibaseEntity (T233406) -* Load wikibase entities when necessary (T245809) -* Fix path for stable release in version.getversion() (T262558) +* Use ignore_discard for login cookie container (:phab:`T261066`) +* Siteinfo.get() loads data via API instead from cache if expiry parameter is True (:phab:`T260490`) +* Move latest revision id handling to WikibaseEntity (:phab:`T233406`) +* Load wikibase entities when necessary (:phab:`T245809`) +* Fix path for stable release in version.getversion() (:phab:`T262558`) * "since" parameter in EventStreams given as Timestamp or MediaWiki timestamp string has been fixed * Methods deprecated for 6 years or longer were removed -* Page.getVersionHistory and Page.fullVersionHistory() methods were removed (T136513, T151110) +* Page.getVersionHistory and Page.fullVersionHistory() methods were removed (:phab:`T136513`, :phab:`T151110`) * Allow multiple types of contributors parameter given for Page.revision_count() * Deprecated tools.UnicodeMixin and tools.IteratorNextMixin has been removed * Localisation updates @@ -584,9 +584,9 @@
*2 September 2020*
-* Don't check for valid Family/Site if running generate_user_files.py (T261771) -* Remove socket_timeout fix in config2.py introduced with T103069 -* Prevent huge traceback from underlying python libraries (T253236) +* Don't check for valid Family/Site if running generate_user_files.py (:phab:`T261771`) +* Remove socket_timeout fix in config2.py introduced with :phab:`T103069` +* Prevent huge traceback from underlying python libraries (:phab:`T253236`) * Localisation updates
@@ -595,14 +595,14 @@
*28 August 2020*
-* Add support for ja.wikivoyage (T261450) -* Only run cosmetic changes on wikitext pages (T260489) -* Leave a script gracefully for wrong -lang and -family option (T259756) -* Change meaning of BasePage.text (T260472) +* Add support for ja.wikivoyage (:phab:`T261450`) +* Only run cosmetic changes on wikitext pages (:phab:`T260489`) +* Leave a script gracefully for wrong -lang and -family option (:phab:`T259756`) +* Change meaning of BasePage.text (:phab:`T260472`) * site/family methods code2encodings() and code2encoding() has been removed in favour of encoding()/encodings() methods * Site.getExpandedString() method was removed in favour of expand_text * Site.Family() function was removed in favour of Family.load() method -* Add wikispore family (T260049) +* Add wikispore family (:phab:`T260049`)
4.1.1 @@ -620,10 +620,10 @@ *16 August 2020*
* Enable Pywikibot for Python 3.9 -* APISite.loadpageinfo does not discard changes to page content when information was not loaded (T260472) +* APISite.loadpageinfo does not discard changes to page content when information was not loaded (:phab:`T260472`) * tools.UnicodeType and tools.signature are deprecated * BaseBot.stop() method is deprecated in favour of BaseBot.generator.close() -* Escape bot password correctly (T259488) +* Escape bot password correctly (:phab:`T259488`) * Bugfixes and improvements * Localisation updates
@@ -633,14 +633,14 @@
*4 August 2020*
-* Read correct object in SiteLinkCollection.normalizeData (T259426) +* Read correct object in SiteLinkCollection.normalizeData (:phab:`T259426`) * tools.count and tools classes Counter, OrderedDict and ContextManagerWrapper were removed * Deprecate UnicodeMixin and IteratorNextMixin * Restrict site module interface * EventStreams "since" parameter settings has been fixed * Unsupported debug and uploadByUrl parameters of UploadRobot were removed * Unported compat decode parameter of Page.title() has been removed -* Wikihow family file was added (T249814) +* Wikihow family file was added (:phab:`T249814`) * Improve performance of CosmeticChangesToolkit.translateMagicWords * Prohibit positional arguments with Page.title() * Functions dealing with stars list were removed @@ -648,27 +648,26 @@ * LogEntry became a UserDict; all content can be accessed by its key * URLs for new toolforge.org domain were updated * pywikibot.__release__ was deprecated -* Use one central point for framework version (T106121, T171886, T197936, T253719) -* rvtoken parameter of Site.loadrevisions() and Page.revisions() has been dropped (T74763) +* Use one central point for framework version (:phab:`T106121`, :phab:`T171886`, :phab:`T197936`, :phab:`T253719`) +* rvtoken parameter of Site.loadrevisions() and Page.revisions() has been dropped (:phab:`T74763`) * getFilesFromAnHash and getImagesFromAnHash Site methods have been removed * Site and Page methods deprecated for 10 years or longer have been removed -* Support for Python 2 and 3.4 has been dropped (T213287, T239542) +* Support for Python 2 and 3.4 has been dropped (:phab:`T213287`, :phab:`T239542`) * Bugfixes and improvements * Localisation updates
-.. _python2:
3.0.20200703 ------------
-* Page.botMayEdit() method was improved (T253709) -* PageNotFound, SpamfilterError, UserActionRefuse exceptions were removed (T253681) -* tools.ip submodule has been removed (T243171) +* Page.botMayEdit() method was improved (:phab:`T253709`) +* PageNotFound, SpamfilterError, UserActionRefuse exceptions were removed (:phab:`T253681`) +* tools.ip submodule has been removed (:phab:`T243171`) * Wait in BaseBot.exit() until asynchronous saving pages are completed -* Solve IndexError when showing an empty diff with a non-zero context (T252724) +* Solve IndexError when showing an empty diff with a non-zero context (:phab:`T252724`) * linktrails were added or updated for a lot of sites -* Resolve namespaces with underlines (T252940) -* Fix getversion_svn for Python 3.6+ (T253617, T132292) +* Resolve namespaces with underlines (:phab:`T252940`) +* Fix getversion_svn for Python 3.6+ (:phab:`T253617`, :phab:`T132292`) * Bugfixes and improvements * Localisation updates
@@ -676,14 +675,14 @@ 3.0.20200609 ------------
-* Fix page_can_be_edited for MediaWiki < 1.23 (T254623) +* Fix page_can_be_edited for MediaWiki < 1.23 (:phab:`T254623`) * Show global options with pwb.py -help * Usage of SkipPageError with BaseBot has been removed -* Throttle requests after ratelimits exceeded (T253180) -* Make Pywikibot daemon logs unexecutable (T253472) +* Throttle requests after ratelimits exceeded (:phab:`T253180`) +* Make Pywikibot daemon logs unexecutable (:phab:`T253472`) * Check for missing generator after BaseBot.setup() call -* Do not change usernames when creating a Site (T253127) -* pagegenerators: handle protocols in -weblink (T251308, T251310) +* Do not change usernames when creating a Site (:phab:`T253127`) +* pagegenerators: handle protocols in -weblink (:phab:`T251308`, :phab:`T251310`) * Bugfixes and improvements * Localisation updates
@@ -691,183 +690,183 @@ 3.0.20200508 ------------
-* Unify and extend formats for setting sitelinks (T225863, T251512) -* Do not return a random i18n.translation() result (T220099) -* tools.ip_regexp has been removed (T174482) -* Page.getVersionHistory and Page.fullVersionHistory() methods has been desupported (T136513, T151110) -* Update wikimediachapter_family (T250802) -* Raise SpamblacklistError with spamblacklist APIError (T249436) -* SpamfilterError was renamed to SpamblacklistError (T249436) -* Do not removeUselessSpaces inside source/syntaxhighlight tags (T250469) -* Restrict Pillow to 6.2.2+ (T249911) -* Fix PetScan generator language and project (T249704) -* test_family has been removed (T228375, T228300) +* Unify and extend formats for setting sitelinks (:phab:`T225863`, :phab:`T251512`) +* Do not return a random i18n.translation() result (:phab:`T220099`) +* tools.ip_regexp has been removed (:phab:`T174482`) +* Page.getVersionHistory and Page.fullVersionHistory() methods has been desupported (:phab:`T136513`, :phab:`T151110`) +* Update wikimediachapter_family (:phab:`T250802`) +* Raise SpamblacklistError with spamblacklist APIError (:phab:`T249436`) +* SpamfilterError was renamed to SpamblacklistError (:phab:`T249436`) +* Do not removeUselessSpaces inside source/syntaxhighlight tags (:phab:`T250469`) +* Restrict Pillow to 6.2.2+ (:phab:`T249911`) +* Fix PetScan generator language and project (:phab:`T249704`) +* test_family has been removed (:phab:`T228375`, :phab:`T228300`) * Bugfixes and improvements * Localisation updates
3.0.20200405 ------------
-* Fix regression of combining sys.path in pwb.py wrapper (T249427) -* Site and Page methods deprecated for 10 years or longer are desupported and may be removed (T106121) +* Fix regression of combining sys.path in pwb.py wrapper (:phab:`T249427`) +* Site and Page methods deprecated for 10 years or longer are desupported and may be removed (:phab:`T106121`) * Usage of SkipPageError with BaseBot is desupported and may be removed -* Ignore InvalidTitle in textlib.replace_links() (T122091) +* Ignore InvalidTitle in textlib.replace_links() (:phab:`T122091`) * Raise ServerError also if connection to PetScan timeouts -* pagegenerators.py no longer supports 'oursql' or 'MySQLdb'. It now solely supports PyMySQL (T243154, T89976) +* pagegenerators.py no longer supports 'oursql' or 'MySQLdb'. It now solely supports PyMySQL (:phab:`T243154`, :phab:`T89976`) * Disfunctional Family.versionnumber() method was removed -* Refactor login functionality (T137805, T224712, T248767, T248768, T248945) +* Refactor login functionality (:phab:`T137805`, :phab:`T224712`, :phab:`T248767`, :phab:`T248768`, :phab:`T248945`) * Bugfixes and improvements * Localisation updates
3.0.20200326 ------------ * site.py and page.py files were moved to their own folders and will be split in the future -* Refactor data attributes of Wikibase entities (T233406) +* Refactor data attributes of Wikibase entities (:phab:`T233406`) * Functions dealing with stars list are desupported and may be removed -* Use path's stem of script filename within pwb.py wrapper (T248372) -* Disfunctional cgi_interface.py was removed (T248292, T248250, T193978) -* Fix logout on MW < 1.24 (T214009) -* Fixed TypeError in getFileVersionHistoryTable method (T248266) -* Outdated secure connection overrides were removed (T247668) +* Use path's stem of script filename within pwb.py wrapper (:phab:`T248372`) +* Disfunctional cgi_interface.py was removed (:phab:`T248292`, :phab:`T248250`, :phab:`T193978`) +* Fix logout on MW < 1.24 (:phab:`T214009`) +* Fixed TypeError in getFileVersionHistoryTable method (:phab:`T248266`) +* Outdated secure connection overrides were removed (:phab:`T247668`) * Check for all modules which are needed by a script within pwb.py wrapper * Check for all modules which are mandatory within pwb.py wrapper script -* Enable -help option with similar search of pwb.py (T241217) -* compat module has been removed (T183085) +* Enable -help option with similar search of pwb.py (:phab:`T241217`) +* compat module has been removed (:phab:`T183085`) * Category.copyTo and Category.copyAndKeep methods have been removed -* Site.page_restrictions() does no longer raise NoPage (T214286) -* Use site.userinfo getter instead of site._userinfo within api (T243794) -* Fix endprefix parameter in Category.articles() (T247201) -* Fix search for changed claims when saving entity (T246359) -* backports.py has been removed (T244664) -* Site.has_api method has been removed (T106121) +* Site.page_restrictions() does no longer raise NoPage (:phab:`T214286`) +* Use site.userinfo getter instead of site._userinfo within api (:phab:`T243794`) +* Fix endprefix parameter in Category.articles() (:phab:`T247201`) +* Fix search for changed claims when saving entity (:phab:`T246359`) +* backports.py has been removed (:phab:`T244664`) +* Site.has_api method has been removed (:phab:`T106121`) * Bugfixes and improvements * Localisation updates
3.0.20200306 ------------
-* Fix mul Wikisource aliases (T242537, T241413) -* Let Site('test', 'test) be equal to Site('test', 'wikipedia') (T228839) -* Support of MediaWiki releases below 1.19 will be dropped (T245350) +* Fix mul Wikisource aliases (:phab:`T242537`, :phab:`T241413`) +* Let Site('test', 'test) be equal to Site('test', 'wikipedia') (:phab:`T228839`) +* Support of MediaWiki releases below 1.19 will be dropped (:phab:`T245350`) * Provide mediawiki_messages for foreign language codes -* Use mw API IP/anon user detection (T245318) -* Correctly choose primary coordinates in BasePage.coordinates() (T244963) -* Rewrite APISite.page_can_be_edited (T244604) -* compat module is deprecated for 5 years and will be removed in next release (T183085) -* ipaddress module is required for Python 2 (T243171) -* tools.ip will be dropped in favour of tools.is_IP (T243171) +* Use mw API IP/anon user detection (:phab:`T245318`) +* Correctly choose primary coordinates in BasePage.coordinates() (:phab:`T244963`) +* Rewrite APISite.page_can_be_edited (:phab:`T244604`) +* compat module is deprecated for 5 years and will be removed in next release (:phab:`T183085`) +* ipaddress module is required for Python 2 (:phab:`T243171`) +* tools.ip will be dropped in favour of tools.is_IP (:phab:`T243171`) * tools.ip_regexp is deprecatd for 5 years and will be removed in next release -* backports.py will be removed in next release (T244664) -* stdnum package is required for ISBN scripts and cosmetic_changes (T132919, T144288, T241141) -* preload urllib.quote() with Python 2 (T243710, T222623) -* Drop isbn_hyphenate package due to outdated data (T243157) -* Fix UnboundLocalError in ProofreadPage._ocr_callback (T243644) +* backports.py will be removed in next release (:phab:`T244664`) +* stdnum package is required for ISBN scripts and cosmetic_changes (:phab:`T132919`, :phab:`T144288`, :phab:`T241141`) +* preload urllib.quote() with Python 2 (:phab:`T243710`, :phab:`T222623`) +* Drop isbn_hyphenate package due to outdated data (:phab:`T243157`) +* Fix UnboundLocalError in ProofreadPage._ocr_callback (:phab:`T243644`) * Deprecate/remove sysop parameter in several methods and functions -* Refactor Wikibase entity namespace handling (T160395) +* Refactor Wikibase entity namespace handling (:phab:`T160395`) * Site.has_api method will be removed in next release * Category.copyTo and Category.copyAndKeep will be removed in next release -* weblib module has been removed (T85001) -* botirc module has been removed (T212632) +* weblib module has been removed (:phab:`T85001`) +* botirc module has been removed (:phab:`T212632`) * Bugfixes and improvements * Localisation updates
3.0.20200111 ------------
-* Fix broken get_version() in setup.py (T198374) +* Fix broken get_version() in setup.py (:phab:`T198374`) * Rewrite site.log_page/site.unlock_page implementation -* Require requests 2.20.1 (T241934) +* Require requests 2.20.1 (:phab:`T241934`) * Make bot.suggest_help a function -* Fix gui settings for Python 3.7.4+ (T241216) -* Better api error message handling (T235500) -* Ensure that required props exists as Page attribute (T237497) -* Refactor data loading for WikibaseEntities (T233406) -* replaceCategoryInPlace: Allow LRM and RLM at the end of the old_cat title (T240084) -* Support for Python 3.4 will be dropped (T239542) -* Derive LoginStatus from IntEnum (T213287, T239533) -* enum34 package is mandatory for Python 2.7 (T213287) -* call LoginManager with keyword arguments (T237501) -* Enable Pywikibot for Python 3.8 (T238637) -* Derive BaseLink from tools.UnicodeMixin (T223894) -* Make _flush aware of _putthread ongoing tasks (T147178) -* Add family file for foundation wiki (T237888) -* Fix generate_family_file.py for private wikis (T235768) +* Fix gui settings for Python 3.7.4+ (:phab:`T241216`) +* Better api error message handling (:phab:`T235500`) +* Ensure that required props exists as Page attribute (:phab:`T237497`) +* Refactor data loading for WikibaseEntities (:phab:`T233406`) +* replaceCategoryInPlace: Allow LRM and RLM at the end of the old_cat title (:phab:`T240084`) +* Support for Python 3.4 will be dropped (:phab:`T239542`) +* Derive LoginStatus from IntEnum (:phab:`T213287`, :phab:`T239533`) +* enum34 package is mandatory for Python 2.7 (:phab:`T213287`) +* call LoginManager with keyword arguments (:phab:`T237501`) +* Enable Pywikibot for Python 3.8 (:phab:`T238637`) +* Derive BaseLink from tools.UnicodeMixin (:phab:`T223894`) +* Make _flush aware of _putthread ongoing tasks (:phab:`T147178`) +* Add family file for foundation wiki (:phab:`T237888`) +* Fix generate_family_file.py for private wikis (:phab:`T235768`) * Add rank parameter to Claim initializer -* Add current directory for similar script search (T217195) +* Add current directory for similar script search (:phab:`T217195`) * Release BaseSite.lock_page mutex during sleep -* Implement deletedrevisions api call (T75370) -* assert_valid_iter_params may raise AssertionError instead of pywikibot.Error (T233582) -* Upcast getRedirectTarget result and return the appropriate page subclass (T233392) -* Add ListGenerator for API:filearchive to site module (T230196) -* Deprecate the ability to login with a secondary sysop account (T71283) -* Enable global args with pwb.py wrapper script (T216825) -* Add a new ConfigParserBot class to set options from the scripts.ini file (T223778) -* Check a user's rights rather than group memberships; 'sysopnames' will be deprecated (T229293, T189126, T122705, T119335, T75545) -* proofreadpage.py: fix footer detection (T230301) -* Add allowusertalk to the User.block() options (T229288) -* botirc module will be removed in next release (T212632) -* weblib module will be removed in next release (T85001) +* Implement deletedrevisions api call (:phab:`T75370`) +* assert_valid_iter_params may raise AssertionError instead of pywikibot.Error (:phab:`T233582`) +* Upcast getRedirectTarget result and return the appropriate page subclass (:phab:`T233392`) +* Add ListGenerator for API:filearchive to site module (:phab:`T230196`) +* Deprecate the ability to login with a secondary sysop account (:phab:`T71283`) +* Enable global args with pwb.py wrapper script (:phab:`T216825`) +* Add a new ConfigParserBot class to set options from the scripts.ini file (:phab:`T223778`) +* Check a user's rights rather than group memberships; 'sysopnames' will be deprecated (:phab:`T229293`, :phab:`T189126`, :phab:`T122705`, :phab:`T119335`, :phab:`T75545`) +* proofreadpage.py: fix footer detection (:phab:`T230301`) +* Add allowusertalk to the User.block() options (:phab:`T229288`) +* botirc module will be removed in next release (:phab:`T212632`) +* weblib module will be removed in next release (:phab:`T85001`) * Bugfixes and improvements * Localisation updates
3.0.20190722 ------------
-* Increase the throttling delay if maxlag >> retry-after (T210606) -* deprecate test_family: Site('test', 'test'), use wikipedia_family: Site('test', 'wikipedia') instead (T228375, T228300) +* Increase the throttling delay if maxlag >> retry-after (:phab:`T210606`) +* deprecate test_family: Site('test', 'test'), use wikipedia_family: Site('test', 'wikipedia') instead (:phab:`T228375`, :phab:`T228300`) * Add "user_agent_description" option in config.py -* APISite.fromDBName works for all known dbnames (T225590, 225723, 226960) +* APISite.fromDBName works for all known dbnames (:phab:`T225590`, 225723, 226960) * remove the unimplemented "proxy" variable in config.py -* Make Family.langs property more robust (T226934) +* Make Family.langs property more robust (:phab:`T226934`) * Remove strategy family -* Handle closed_wikis as read-only (T74674) +* Handle closed_wikis as read-only (:phab:`T74674`) * TokenWallet: login automatically -* Add closed_wikis to Family.langs property (T225413) -* Redirect 'mo' site code to 'ro' and remove interwiki_replacement_overrides (T225417, T89451) -* Add support for badges on Wikibase item sitelinks through a SiteLink object instead plain str (T128202) +* Add closed_wikis to Family.langs property (:phab:`T225413`) +* Redirect 'mo' site code to 'ro' and remove interwiki_replacement_overrides (:phab:`T225417`, :phab:`T89451`) +* Add support for badges on Wikibase item sitelinks through a SiteLink object instead plain str (:phab:`T128202`) * Remove login.showCaptchaWindow() method * New parameter supplied in suggest_help function for missing dependencies * Remove NonMWAPISite class -* Introduce Claim.copy and prevent adding already saved claims (T220131) -* Fix create_short_link method after MediaWiki changes (T223865) +* Introduce Claim.copy and prevent adding already saved claims (:phab:`T220131`) +* Fix create_short_link method after MediaWiki changes (:phab:`T223865`) * Validate proofreadpage.IndexPage contents before saving it -* Refactor Link and introduce BaseLink (T66457) +* Refactor Link and introduce BaseLink (:phab:`T66457`) * Count skipped pages in BaseBot class -* 'actionthrottledtext' is a retryable wikibase error (T192912) -* Clear tokens on logout(T222508) -* Deprecation warning: support for Python 2 will be dropped (T213287) +* 'actionthrottledtext' is a retryable wikibase error (:phab:`T192912`) +* Clear tokens on logout(:phab:`T222508`) +* Deprecation warning: support for Python 2 will be dropped (:phab:`T213287`) * botirc.IRCBot has been dropped -* Avoid using outdated browseragents (T222959) -* textlib: avoid infinite execution of regex (T222671) -* Add CSRF token in sitelogout() api call (T222508) +* Avoid using outdated browseragents (:phab:`T222959`) +* textlib: avoid infinite execution of regex (:phab:`T222671`) +* Add CSRF token in sitelogout() api call (:phab:`T222508`) * Refactor WikibasePage.get and overriding methods and improve documentation * Improve title patterns of WikibasePage extensions -* Add support for property creation (T160402) +* Add support for property creation (:phab:`T160402`) * Bugfixes and improvements * Localisation updates
3.0.20190430 ------------
-* Unicode literals are required for all scripts; the usage of ASCII bytes may fail (T219095) -* Don't fail if the number of forms of a plural string is less than required (T99057, T219097) -* Implement create_short_link Page method to use Extension:UrlShortener (T220876) -* Remove wikia family file (T220921) +* Unicode literals are required for all scripts; the usage of ASCII bytes may fail (:phab:`T219095`) +* Don't fail if the number of forms of a plural string is less than required (:phab:`T99057`, :phab:`T219097`) +* Implement create_short_link Page method to use Extension:UrlShortener (:phab:`T220876`) +* Remove wikia family file (:phab:`T220921`) * Remove deprecated ez_setup.py -* Changed requirements for sseclient (T219024) -* Set optional parameter namespace to None in site.logpages (T217664) -* Add ability to display similar scripts when misspelled (T217195) -* Check if QueryGenerator supports namespaces (T198452) +* Changed requirements for sseclient (:phab:`T219024`) +* Set optional parameter namespace to None in site.logpages (:phab:`T217664`) +* Add ability to display similar scripts when misspelled (:phab:`T217195`) +* Check if QueryGenerator supports namespaces (:phab:`T198452`) * Bugfixes and improvements * Localisation updates
3.0.20190301 ------------ -* Fix version comparison (T164163) +* Fix version comparison (:phab:`T164163`) * Remove pre MediaWiki 1.14 code -* Dropped support for Python 2.7.2 and 2.7.3 (T191192) -* Fix header regex beginning with a comment (T209712) -* Implement Claim.__eq__ (T76615) +* Dropped support for Python 2.7.2 and 2.7.3 (:phab:`T191192`) +* Fix header regex beginning with a comment (:phab:`T209712`) +* Implement Claim.__eq__ (:phab:`T76615`) * cleanup config2.py * Add missing Wikibase API write actions * Bugfixes and improvements @@ -877,7 +876,7 @@ ------------
* Support python version 3.7 -* pagegenerators.py: add -querypage parameter to yield pages provided by any special page (T214234) +* pagegenerators.py: add -querypage parameter to yield pages provided by any special page (:phab:`T214234`) * Fix comparison of str, bytes and int literal * site.py: add generic self.querypage() to query SpecialPages * echo.Notification has a new event_id property as integer @@ -887,11 +886,11 @@ 3.0.20190106 ------------
-* Ensure "modules" parameter of ParamInfo._fetch is a set (T122763) -* Support adding new claims with qualifiers and/or references (T112577, T170432) +* Ensure "modules" parameter of ParamInfo._fetch is a set (:phab:`T122763`) +* Support adding new claims with qualifiers and/or references (:phab:`T112577`, :phab:`T170432`) * Support LZMA and XZ compression formats -* Update correct-ar Typo corrections in fixes.py (T211492) -* Enable MediaWiki timestamp with EventStreams (T212133) +* Update correct-ar Typo corrections in fixes.py (:phab:`T211492`) +* Enable MediaWiki timestamp with EventStreams (:phab:`T212133`) * Convert Timestamp.fromtimestampformat() if year, month and day are given only * tools.concat_options is deprecated * Additional ListOption subclasses ShowingListOption, MultipleChoiceList, ShowingMultipleChoiceList @@ -901,43 +900,43 @@ 3.0.20181203 ------------
-* Remove compat module references from autogenerated docs (T183085) -* site.preloadpages: split pagelist in most max_ids elements (T209111) +* Remove compat module references from autogenerated docs (:phab:`T183085`) +* site.preloadpages: split pagelist in most max_ids elements (:phab:`T209111`) * Disable empty sections in cosmetic_changes for user namespace -* Prevent touch from re-creating pages (T193833) -* New Page.title() parameter without_brackets; also used by titletranslate (T200399) -* Security: require requests version 2.20.0 or later (T208296) -* Check appropriate key in Site.messages (T163661) -* Make sure the cookie file is created with the right permissions (T206387) +* Prevent touch from re-creating pages (:phab:`T193833`) +* New Page.title() parameter without_brackets; also used by titletranslate (:phab:`T200399`) +* Security: require requests version 2.20.0 or later (:phab:`T208296`) +* Check appropriate key in Site.messages (:phab:`T163661`) +* Make sure the cookie file is created with the right permissions (:phab:`T206387`) * pydot >= 1.2 is required for interwiki_graph -* Move methods for simple claim adding/removing to WikibasePage (T113131) -* Enable start timestamp for EventStreams (T205121) -* Re-enable notifications (T205184) -* Use FutureWarning for warnings intended for end users (T191192) -* Provide new -wanted... page generators (T56557, T150222) -* api.QueryGenerator: Handle slots during initialization (T200955, T205210) +* Move methods for simple claim adding/removing to WikibasePage (:phab:`T113131`) +* Enable start timestamp for EventStreams (:phab:`T205121`) +* Re-enable notifications (:phab:`T205184`) +* Use FutureWarning for warnings intended for end users (:phab:`T191192`) +* Provide new -wanted... page generators (:phab:`T56557`, :phab:`T150222`) +* api.QueryGenerator: Handle slots during initialization (:phab:`T200955`, :phab:`T205210`) * Bugfixes and improvements * Localisation updates
3.0.20180922 ------------
-* Enable multiple streams for EventStreams (T205114) -* Fix Wikibase aliases handling (T194512) -* Remove cryptography support from python<=2.7.6 requirements (T203435) -* textlib._tag_pattern: Do not mistake self-closing tags with start tag (T203568) -* page.Link.langlinkUnsafe: Always set _namespace to a Namespace object (T203491) +* Enable multiple streams for EventStreams (:phab:`T205114`) +* Fix Wikibase aliases handling (:phab:`T194512`) +* Remove cryptography support from python<=2.7.6 requirements (:phab:`T203435`) +* textlib._tag_pattern: Do not mistake self-closing tags with start tag (:phab:`T203568`) +* page.Link.langlinkUnsafe: Always set _namespace to a Namespace object (:phab:`T203491`) * Enable Namespace.content for mw < 1.16 -* Allow terminating the bot generator by BaseBot.stop() method (T198801) +* Allow terminating the bot generator by BaseBot.stop() method (:phab:`T198801`) * Allow bot parameter in set_redirect_target -* Do not show empty error messages (T203462) -* Show the exception message in async mode (T203448) -* Fix the extended user-config extraction regex (T145371) -* Solve UnicodeDecodeError in site.getredirtarget (T126192) +* Do not show empty error messages (:phab:`T203462`) +* Show the exception message in async mode (:phab:`T203448`) +* Fix the extended user-config extraction regex (:phab:`T145371`) +* Solve UnicodeDecodeError in site.getredirtarget (:phab:`T126192`) * Introduce a new APISite property: mw_version * Improve hash method for BasePage and Link -* Avoid applying two uniquifying filters (T199615) -* Fix skipping of language links in CosmeticChangesToolkit.removeEmptySections (T202629) +* Avoid applying two uniquifying filters (:phab:`T199615`) +* Fix skipping of language links in CosmeticChangesToolkit.removeEmptySections (:phab:`T202629`) * New mediawiki projects were provided * Bugfixes and improvements * Localisation updates @@ -945,23 +944,23 @@ 3.0.20180823 ------------
-* Don't reset Bot._site to None if we have already a site object (T125046) -* pywikibot.site.Siteinfo: Fix the bug in cache_time when loading a CachedRequest (T202227) -* pagegenerators._handle_recentchanges: Do not request for reversed results (T199199) -* Use a key for filter_unique where appropriate (T199615) -* pywikibot.tools: Add exceptions for first_upper (T200357) -* Fix usages of site.namespaces.NAMESPACE_NAME (T201969) +* Don't reset Bot._site to None if we have already a site object (:phab:`T125046`) +* pywikibot.site.Siteinfo: Fix the bug in cache_time when loading a CachedRequest (:phab:`T202227`) +* pagegenerators._handle_recentchanges: Do not request for reversed results (:phab:`T199199`) +* Use a key for filter_unique where appropriate (:phab:`T199615`) +* pywikibot.tools: Add exceptions for first_upper (:phab:`T200357`) +* Fix usages of site.namespaces.NAMESPACE_NAME (:phab:`T201969`) * pywikibot/textlib.py: Fix header regex to allow comments -* Use 'rvslots' when fetching revisions on MW 1.32+ (T200955) -* Drop the '2' from PYWIKIBOT2_DIR, PYWIKIBOT2_DIR_PWB, and PYWIKIBOT2_NO_USER_CONFIG environment variables. The old names are now deprecated. The other PYWIKIBOT2_* variables which were used only for testing purposes have been renamed without deprecation. (T184674) -* Introduce a timestamp in deprecated decorator (T106121) -* textlib.extract_sections: Remove footer from the last section (T199751) -* Don't let WikidataBot crash on save related errors (T199642) -* Allow different projects to have different L10N entries (T198889) -* remove color highlights before fill function (T196874) -* Fix Portuguese file namespace translation in cc (T57242) -* textlib._create_default_regexes: Avoid using inline flags (T195538) -* Not everything after a language link is footer (T199539) +* Use 'rvslots' when fetching revisions on MW 1.32+ (:phab:`T200955`) +* Drop the '2' from PYWIKIBOT2_DIR, PYWIKIBOT2_DIR_PWB, and PYWIKIBOT2_NO_USER_CONFIG environment variables. The old names are now deprecated. The other PYWIKIBOT2_* variables which were used only for testing purposes have been renamed without deprecation. (:phab:`T184674`) +* Introduce a timestamp in deprecated decorator (:phab:`T106121`) +* textlib.extract_sections: Remove footer from the last section (:phab:`T199751`) +* Don't let WikidataBot crash on save related errors (:phab:`T199642`) +* Allow different projects to have different L10N entries (:phab:`T198889`) +* remove color highlights before fill function (:phab:`T196874`) +* Fix Portuguese file namespace translation in cc (:phab:`T57242`) +* textlib._create_default_regexes: Avoid using inline flags (:phab:`T195538`) +* Not everything after a language link is footer (:phab:`T199539`) * code cleanups * New mediawiki projects were provided * Bugfixes and improvements @@ -970,15 +969,15 @@ 3.0.20180710 ------------
-* Enable any LogEntry subclass for each logevent type (T199013) -* Deprecated pagegenerators options -<logtype>log aren't supported any longer (T199013) -* Open RotatingFileHandler with utf-8 encoding (T188231) -* Fix occasional failure of TestLogentries due to hidden namespace (T197506) -* Remove multiple empty sections at once in cosmetic_changes (T196324) -* Fix stub template position by putting it above interwiki comment (T57034) -* Fix handling of API continuation in PropertyGenerator (T196876) -* Use PyMySql as pure-Python MySQL client library instead of oursql, deprecate MySQLdb (T89976, T142021) -* Ensure that BaseBot.treat is always processing a Page object (T196562, T196813) +* Enable any LogEntry subclass for each logevent type (:phab:`T199013`) +* Deprecated pagegenerators options -<logtype>log aren't supported any longer (:phab:`T199013`) +* Open RotatingFileHandler with utf-8 encoding (:phab:`T188231`) +* Fix occasional failure of TestLogentries due to hidden namespace (:phab:`T197506`) +* Remove multiple empty sections at once in cosmetic_changes (:phab:`T196324`) +* Fix stub template position by putting it above interwiki comment (:phab:`T57034`) +* Fix handling of API continuation in PropertyGenerator (:phab:`T196876`) +* Use PyMySql as pure-Python MySQL client library instead of oursql, deprecate MySQLdb (:phab:`T89976`, :phab:`T142021`) +* Ensure that BaseBot.treat is always processing a Page object (:phab:`T196562`, :phab:`T196813`) * Update global bot settings * New mediawiki projects were provided * Bugfixes and improvements @@ -994,26 +993,26 @@ * Family class is made a singleton class * New rule 'startcolon' was introduced in textlib * BaseBot has new methods setup and teardown -* UploadBot got a filename prefix parameter (T170123) -* cosmetic_changes is able to remove empty sections (T140570) +* UploadBot got a filename prefix parameter (:phab:`T170123`) +* cosmetic_changes is able to remove empty sections (:phab:`T140570`) * Pywikibot is following PEP 396 versioning * pagegenerators AllpagesPageGenerator, CombinedPageGenerator, UnconnectedPageGenerator are deprecated * Some DayPageGenerator parameters has been renamed -* unicodedata2, httpbin and Flask dependency was removed (T102461, T108068, T178864, T193383) +* unicodedata2, httpbin and Flask dependency was removed (:phab:`T102461`, :phab:`T108068`, :phab:`T178864`, :phab:`T193383`) * New projects were provided * Bugfixes and improvements * Documentation updates -* Localisation updates (T194893) +* Localisation updates (:phab:`T194893`) * Translation updates
3.0.20180505 ------------
* Enable makepath and datafilepath not to create the directory -* Use API's retry-after value (T144023) -* Provide startprefix parameter for Category.articles() (T74101, T143120) -* Page.put_async() is marked as deprecated (T193494) -* Deprecate requests-requirements.txt (T193476) +* Use API's retry-after value (:phab:`T144023`) +* Provide startprefix parameter for Category.articles() (:phab:`T74101`, :phab:`T143120`) +* Page.put_async() is marked as deprecated (:phab:`T193494`) +* Deprecate requests-requirements.txt (:phab:`T193476`) * Bugfixes and improvements * New mediawiki projects were provided * Localisation updates @@ -1021,9 +1020,9 @@ 3.0.20180403 ------------
-* Deprecation warning: support for Python 2.7.2 and 2.7.3 will be dropped (T191192) -* Dropped support for Python 2.6 (T154771) -* Dropped support for Python 3.3 (T184508) +* Deprecation warning: support for Python 2.7.2 and 2.7.3 will be dropped (:phab:`T191192`) +* Dropped support for Python 2.6 (:phab:`T154771`) +* Dropped support for Python 3.3 (:phab:`T184508`) * Bugfixes and improvements * Localisation updates
@@ -1087,52 +1086,52 @@
Bugfixes ~~~~~~~~ -* Manage temporary readonly error (T154011) -* Unbreak wbGeoShape and WbTabularData (T166362) -* Clean up issue with _WbDataPage (T166362) -* Re-enable xml for WikiStats with py2 (T165830) -* Solve httplib.IncompleteRead exception in eventstreams (T168535) -* Only force input_choise if self.always is given (T161483) -* Add colon when replacing category and file weblink (T127745) -* API Request: set uiprop only when ensuring 'userinfo' in meta (T169202) -* Fix TestLazyLoginNotExistUsername test for Stewardwiki (T169458) +* Manage temporary readonly error (:phab:`T154011`) +* Unbreak wbGeoShape and WbTabularData (:phab:`T166362`) +* Clean up issue with _WbDataPage (:phab:`T166362`) +* Re-enable xml for WikiStats with py2 (:phab:`T165830`) +* Solve httplib.IncompleteRead exception in eventstreams (:phab:`T168535`) +* Only force input_choise if self.always is given (:phab:`T161483`) +* Add colon when replacing category and file weblink (:phab:`T127745`) +* API Request: set uiprop only when ensuring 'userinfo' in meta (:phab:`T169202`) +* Fix TestLazyLoginNotExistUsername test for Stewardwiki (:phab:`T169458`)
Improvements ~~~~~~~~~~~~ -* Introduce the new WbUnknown data type for Wikibase (T165961) +* Introduce the new WbUnknown data type for Wikibase (:phab:`T165961`) * djvu.py: add replace_page() and delete_page() * Build GeoShape and TabularData from shared base class -* Remove non-breaking spaces when tidying up a link (T130818) +* Remove non-breaking spaces when tidying up a link (:phab:`T130818`) * Replace private mylang variables with mycode in generate_user_files.py * FilePage: remove deprecated use of fileUrl -* Make socket_timeout recalculation reusable (T166539) -* FilePage.download(): add revision parameter to download arbitrary revision (T166939) -* Make pywikibot.Error more precise (T166982) -* Implement pywikibot support for adding thanks to normal revisions (T135409) -* Implement server side event client EventStreams (T158943) +* Make socket_timeout recalculation reusable (:phab:`T166539`) +* FilePage.download(): add revision parameter to download arbitrary revision (:phab:`T166939`) +* Make pywikibot.Error more precise (:phab:`T166982`) +* Implement pywikibot support for adding thanks to normal revisions (:phab:`T135409`) +* Implement server side event client EventStreams (:phab:`T158943`) * new pagegenerators filter option -titleregexnot -* Add exception for -namepace option (T167580) +* Add exception for -namepace option (:phab:`T167580`) * InteractiveReplace: Allow no replacements by default * Encode default globe in family file -* Add on to pywikibot support for thanking normal revisions (T135409) -* Add log entry code for thanks log (T135413) +* Add on to pywikibot support for thanking normal revisions (:phab:`T135409`) +* Add log entry code for thanks log (:phab:`T135413`) * Create superclass for log entries with user targets * Use relative reference to class attribute -* Allow pywikibot to authenticate against a private wiki (T153903) -* Make WbRepresentations hashable (T167827) +* Allow pywikibot to authenticate against a private wiki (:phab:`T153903`) +* Make WbRepresentations hashable (:phab:`T167827`)
Updates ~~~~~~~ * Update linktails * Update languages_by_size * Update cross_allowed (global bot wikis group) -* Add atjwiki to wikipedia family file (T168049) +* Add atjwiki to wikipedia family file (:phab:`T168049`) * remove closed sites from languages_by_size list * Update category_redirect_templates for wikipedia and commons Family * Update logevent type parameter list -* Disable cleanUpSectionHeaders on jbo.wiktionary (T168399) -* Add kbpwiki to wikipedia family file (T169216) -* Remove anarchopedia family out of the framework (T167534) +* Disable cleanUpSectionHeaders on jbo.wiktionary (:phab:`T168399`) +* Add kbpwiki to wikipedia family file (:phab:`T169216`) +* Remove anarchopedia family out of the framework (:phab:`T167534`)
3.0.20170521 ------------ @@ -1143,49 +1142,49 @@
Bugfixes ~~~~~~~~ -* Increase the default socket_timeout to 75 seconds (T163635) -* use repr() of exceptions to prevent UnicodeDecodeErrors (T120222) -* Handle offset mismatches during chunked upload (T156402) -* Correct _wbtypes equality comparison (T160282) -* Re-enable getFileVersionHistoryTable() method (T162528) -* Replaced the word 'async' with 'asynchronous' due to py3.7 (T106230) -* Raise ImportError if no editor is available (T163632) -* templatesWithParams: cache and standardise params (T113892) -* getInternetArchiveURL: Retry http.fetch if there is a ConnectionError (T164208) -* Remove wikidataquery from pywikibot (T162585) +* Increase the default socket_timeout to 75 seconds (:phab:`T163635`) +* use repr() of exceptions to prevent UnicodeDecodeErrors (:phab:`T120222`) +* Handle offset mismatches during chunked upload (:phab:`T156402`) +* Correct _wbtypes equality comparison (:phab:`T160282`) +* Re-enable getFileVersionHistoryTable() method (:phab:`T162528`) +* Replaced the word 'async' with 'asynchronous' due to py3.7 (:phab:`T106230`) +* Raise ImportError if no editor is available (:phab:`T163632`) +* templatesWithParams: cache and standardise params (:phab:`T113892`) +* getInternetArchiveURL: Retry http.fetch if there is a ConnectionError (:phab:`T164208`) +* Remove wikidataquery from pywikibot (:phab:`T162585`)
Improvements ~~~~~~~~~~~~ -* Introduce user_add_claim and allow asynchronous ItemPage.addClaim (T87493) -* Enable private edit summary in specialbots (T162527) +* Introduce user_add_claim and allow asynchronous ItemPage.addClaim (:phab:`T87493`) +* Enable private edit summary in specialbots (:phab:`T162527`) * Make a decorator for asynchronous methods * Provide options by a separate handler class -* Show a warning when a LogEntry type is not known (T135505) +* Show a warning when a LogEntry type is not known (:phab:`T135505`) * Add Wikibase Client extension requirement to APISite.unconnectedpages() * Update content after editing entity -* Make WbTime from Timestamp and vice versa (T131624) -* Add support for geo-shape Wikibase data type (T161726) -* Add async parameter to ItemPage.editEntity (T86074) -* Make sparql use Site to access sparql endpoint and entity_url (T159956) +* Make WbTime from Timestamp and vice versa (:phab:`T131624`) +* Add support for geo-shape Wikibase data type (:phab:`T161726`) +* Add async parameter to ItemPage.editEntity (:phab:`T86074`) +* Make sparql use Site to access sparql endpoint and entity_url (:phab:`T159956`) * timestripper: search wikilinks to reduce false matches * Set Coordinate globe via item * use extract_templates_and_params_regex_simple for template validation * Add _items for WbMonolingualText -* Allow date-versioned pypi releases from setup.py (T152907) +* Allow date-versioned pypi releases from setup.py (:phab:`T152907`) * Provide site to WbTime via WbTime.fromWikibase -* Provide preloading via GeneratorFactory.getCombinedGenerator() (T135331) -* Accept QuitKeyboardInterrupt in specialbots.Uploadbot (T163970) -* Remove unnecessary description change message when uploading a file (T163108) +* Provide preloading via GeneratorFactory.getCombinedGenerator() (:phab:`T135331`) +* Accept QuitKeyboardInterrupt in specialbots.Uploadbot (:phab:`T163970`) +* Remove unnecessary description change message when uploading a file (:phab:`T163108`) * Add 'OptionHandler' to bot.__all__ tuple * Use FilePage.upload inside UploadRobot -* Add support for tabular-data Wikibase data type (T163981) -* Get thumburl information in FilePage() (T137011) +* Add support for tabular-data Wikibase data type (:phab:`T163981`) +* Get thumburl information in FilePage() (:phab:`T137011`)
Updates ~~~~~~~ * Update languages_by_size in family files * wikisource_family.py: Add "pa" to languages_by_size -* Config2: limit the number of retries to 15 (T165898) +* Config2: limit the number of retries to 15 (:phab:`T165898`)
3.0.20170403 ------------ @@ -1196,25 +1195,25 @@
Bugfixes ~~~~~~~~ -* Use default summary when summary value does not contain a string (T160823) -* Enable specialbots.py for PY3 (T161457) -* Change tw(n)translate from Site.code to Site.lang dependency (T140624) -* Do not use the "imp" module in Python 3 (T158640) -* Make sure the order of parameters does not change (T161291) -* Use pywikibot.tools.Counter instead of collections.Counter (T160620) +* Use default summary when summary value does not contain a string (:phab:`T160823`) +* Enable specialbots.py for PY3 (:phab:`T161457`) +* Change tw(n)translate from Site.code to Site.lang dependency (:phab:`T140624`) +* Do not use the "imp" module in Python 3 (:phab:`T158640`) +* Make sure the order of parameters does not change (:phab:`T161291`) +* Use pywikibot.tools.Counter instead of collections.Counter (:phab:`T160620`) * Introduce a new site method page_from_repository() -* Add pagelist tag for replaceExcept (T151940) -* logging in python3 when deprecated_args decorator is used (T159077) -* Avoid ResourceWarning using subprocess in python 3.6 (T159646) -* load_pages_from_pageids: do not fail on empty string (T153592) -* Add missing not-equal comparison for wbtypes (T158848) -* textlib.getCategoryLinks catch invalid category title exceptions (T154309) -* Fix html2unicode (T130925) -* Ignore first letter case on 'first-letter' sites, obey it otherwise (T130917) -* textlib.py: Limit catastrophic backtracking in FILE_LINK_REGEX (T148959) -* FilePage.get_file_history(): Check for len(self._file_revisions) (T155740) -* Fix for positional_arg behavior of GeneratorFactory (T155227) -* Fix broken LDAP based login (T90149) +* Add pagelist tag for replaceExcept (:phab:`T151940`) +* logging in python3 when deprecated_args decorator is used (:phab:`T159077`) +* Avoid ResourceWarning using subprocess in python 3.6 (:phab:`T159646`) +* load_pages_from_pageids: do not fail on empty string (:phab:`T153592`) +* Add missing not-equal comparison for wbtypes (:phab:`T158848`) +* textlib.getCategoryLinks catch invalid category title exceptions (:phab:`T154309`) +* Fix html2unicode (:phab:`T130925`) +* Ignore first letter case on 'first-letter' sites, obey it otherwise (:phab:`T130917`) +* textlib.py: Limit catastrophic backtracking in FILE_LINK_REGEX (:phab:`T148959`) +* FilePage.get_file_history(): Check for len(self._file_revisions) (:phab:`T155740`) +* Fix for positional_arg behavior of GeneratorFactory (:phab:`T155227`) +* Fix broken LDAP based login (:phab:`T90149`)
Improvements ~~~~~~~~~~~~ @@ -1222,17 +1221,17 @@ * Renamed isImage and isCategory * Add -property option to pagegenerators.py * Add a new site method pages_with_property -* Allow retrieval of unit as ItemPage for WbQuantity (T143594) +* Allow retrieval of unit as ItemPage for WbQuantity (:phab:`T143594`) * return result of userPut with put_current method * Provide a new generator which yields a subclass of Page * Implement FilePage.download() * make general function to compute file sha -* Support adding units to WbQuantity through ItemPage or entity url (T143594) +* Support adding units to WbQuantity through ItemPage or entity url (:phab:`T143594`) * Make PropertyPage.get() return a dictionary * Add Wikibase Client extension requirement to APISite.unconnectedpages() * Make Wikibase Property provide labels data -* APISite.data_repository(): handle warning with re.match() (T156596) -* GeneratorFactory: make getCategory respect self.site (T155687) +* APISite.data_repository(): handle warning with re.match() (:phab:`T156596`) +* GeneratorFactory: make getCategory respect self.site (:phab:`T155687`) * Fix and improve default regexes
Updates @@ -1248,7 +1247,7 @@ * self.doc_subpages for Meta-Wiki * Updating Wikibooks projects which allows global bots * Updated list of closed projects -* Add 'Bilde' as a namespace alias for file namespace of nn Wikipedia (T154947) +* Add 'Bilde' as a namespace alias for file namespace of nn Wikipedia (:phab:`T154947`)
2.0rc5 ------ diff --git a/ROADMAP.rst b/ROADMAP.rst index f9e86ae..d6f87bf 100644 --- a/ROADMAP.rst +++ b/ROADMAP.rst @@ -1,21 +1,21 @@ Current release changes ^^^^^^^^^^^^^^^^^^^^^^^
-* TextExtracts support was aded (T72682) +* TextExtracts support was aded (:phab:`T72682`) * Unused `get_redirect` parameter of Page.getOldVersion() has been dropped * Provide BasePage.get_parsed_page() a public method * Provide BuiltinNamespace.canonical_namespaces() with BuiltinNamespace IntEnum * BuiltinNamespace got a canonical() method -* Enable nested templates with MultiTemplateMatchBuilder (T110529) +* Enable nested templates with MultiTemplateMatchBuilder (:phab:`T110529`) * Introduce APISite.simple_request as a public method * Provide an Uploader class to upload files * Enable use of deletetalk parameter of the delete API -* Fix contextlib redirection for terminal interfaces (T283808) -* No longer use win32_unicode for Python 3.6+ (T281042, T283808, T303373) +* Fix contextlib redirection for terminal interfaces (:phab:`T283808`) +* No longer use win32_unicode for Python 3.6+ (:phab:`T281042`, :phab:`T283808`, :phab:`T303373`) * L10N updates * -cosmetic_changes (-cc) option allows to assign the value directly instead of toggle it * distutils.util.strtobool() was implemented as tools.strtobool() due to :pep:`632` -* The "in" operator always return whether the siteinfo contains the key even it is not cached (T302859) +* The "in" operator always return whether the siteinfo contains the key even it is not cached (:phab:`T302859`) * Siteinfo.clear() and Siteinfo.is_cached() methods were added
Deprecations @@ -25,7 +25,7 @@ * 7.1.0: APISite._simple_request() will be removed in favour of APISite.simple_request() * 7.0.0: The i18n identifier 'cosmetic_changes-append' will be removed in favour of 'pywikibot-cosmetic-changes' * 7.0.0: User.isBlocked() method is renamed to is_blocked for consistency -* 7.0.0: Require mysql >= 0.7.11 (T216741) +* 7.0.0: Require mysql >= 0.7.11 (:phab:`T216741`) * 7.0.0: Private BaseBot counters _treat_counter, _save_counter, _skip_counter will be removed in favour of collections.Counter counter attribute * 7.0.0: A boolean watch parameter in Page.save() is deprecated and will be desupported * 7.0.0: baserevid parameter of editSource(), editQualifier(), removeClaims(), removeSources(), remove_qualifiers() DataSite methods will be removed diff --git a/docs/api_ref/pywikibot.config.rst b/docs/api_ref/pywikibot.config.rst index 354229c..a4fe0fb 100644 --- a/docs/api_ref/pywikibot.config.rst +++ b/docs/api_ref/pywikibot.config.rst @@ -18,8 +18,6 @@ :end-before: # #############
-.. _user-interface-settings: - User Interface Settings +++++++++++++++++++++++
@@ -41,9 +39,6 @@ :start-at: # ############# LOGFILE SETTINGS :end-before: # #############
- -.. _external-script-path-settings: - External Script Path Settings +++++++++++++++++++++++++++++
diff --git a/docs/conf.py b/docs/conf.py index 2a89d4f..6997f15 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,6 +1,6 @@ """Configuration file for Sphinx.""" # -# (C) Pywikibot team, 2014-2021 +# (C) Pywikibot team, 2014-2022 # # Distributed under the terms of the MIT license. # @@ -50,12 +50,15 @@ # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. -extensions = ['sphinx.ext.autodoc', - 'sphinx.ext.todo', - 'sphinx.ext.coverage', - 'sphinx.ext.viewcode', - 'sphinx.ext.autosummary', - 'sphinx.ext.napoleon'] +extensions = [ + 'sphinx.ext.autodoc', + 'sphinx.ext.autosectionlabel', + 'sphinx.ext.extlinks', + 'sphinx.ext.todo', + 'sphinx.ext.viewcode', + 'sphinx.ext.autosummary', + 'sphinx.ext.napoleon', +]
# Allow lines like "Example:" to be followed by a code block napoleon_use_admonition_for_examples = True @@ -353,6 +356,10 @@ # Other settings autodoc_typehints = 'description'
+extlinks = { + 'phab': ('https://phabricator.wikimedia.org/%s', '%s') +} +
TOKENS_WITH_PARAM = [ # sphinx @@ -407,6 +414,15 @@ lines[:] = result[:] # assignment required in this way
+def pywikibot_fix_phab_tasks(app, what, name, obj, options, lines): + """Convert Phabricator tasks id to a link using sphinx.ext.extlinks.""" + result = [] + for line in lines: + line = re.sub(r'(T\d{5,6})', r':phab:`\1`', line) + result.append(line) + lines[:] = result[:] + + def pywikibot_docstring_fixups(app, what, name, obj, options, lines): """Fixup docstrings.""" if what not in ('class', 'exception'): @@ -510,6 +526,7 @@ def setup(app): """Implicit Sphinx extension hook.""" app.connect('autodoc-process-docstring', pywikibot_epytext_to_sphinx) + app.connect('autodoc-process-docstring', pywikibot_fix_phab_tasks) app.connect('autodoc-process-docstring', pywikibot_docstring_fixups) app.connect('autodoc-process-docstring', pywikibot_script_docstring_fixups) app.connect('autodoc-skip-member', pywikibot_skip_members) diff --git a/docs/faq.rst b/docs/faq.rst index 0e6432e..a0f9555 100644 --- a/docs/faq.rst +++ b/docs/faq.rst @@ -23,7 +23,7 @@ **The bot cannot delete pages** Your account needs delete rights on your wiki. If you have setup another account in your user_config use ``-user`` - :ref:`global option <global options>` to change it. + :ref:`global options` to change it. Maybe you have to login first.
**ERROR: Unable to execute script because no *generator* was defined.** diff --git a/docs/global_options.rst b/docs/global_options.rst index 9d3d921..57af62a 100644 --- a/docs/global_options.rst +++ b/docs/global_options.rst @@ -1,5 +1,3 @@ -.. _global options: - Global Options --------------
diff --git a/docs/glossary.rst b/docs/glossary.rst index 7361e7b..57dcc97 100644 --- a/docs/glossary.rst +++ b/docs/glossary.rst @@ -36,10 +36,9 @@ - the :mod:`pwb` wrapper script
python2 - A :term:`tag` for the last Pywikibot release :ref:`3.0.20200703<python2>` - supporting Python 2 (Python 2.7.3 - 2.7.18). Ask for `Python 2 to - 3 support https://phabricator.wikimedia.org/T242120`_ to - convert your old scripts. + A :term:`tag` for the last Pywikibot release :ref:`3.0.20200703` + supporting Python 2 (Python 2.7.3 - 2.7.18). Ask for :phab:`Python 2 to + 3 support <T242120>` to convert your old scripts.
pywikibot **Py**\ thon Media\ **Wiki Bot** Framework, a Python library and diff --git a/docs/installation.rst b/docs/installation.rst index 7cd30f2..1c7f6c3 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -38,6 +38,6 @@ .. seealso:: * :manpage:`i18n` Manual * `MediaWiki Language Codes https://www.mediawiki.org/wiki/Manual:Language#Language_code`_ - * :ref:`User Interface Settings<user-interface-settings>` + * :ref:`User Interface Settings` * :py:mod:`pywikibot.i18n`
diff --git a/docs/licenses.rst b/docs/licenses.rst index e773820..1c56566 100644 --- a/docs/licenses.rst +++ b/docs/licenses.rst @@ -4,11 +4,10 @@ ========
**The framework itself and this documentation** are available under the -:ref:`MIT license <licenses-MIT>`; manual pages on mediawiki.org are +:ref:`MIT license`; manual pages on mediawiki.org are available under the `CC-BY-SA 3.0`_ license. The Pywikibot logo is available under the `CC-BY-SA 4.0`_ license.
-.. _licenses-MIT:
MIT License ----------- diff --git a/scripts/CHANGELOG.md b/scripts/CHANGELOG.md index 43413ed..5c7082d 100644 --- a/scripts/CHANGELOG.md +++ b/scripts/CHANGELOG.md @@ -8,7 +8,7 @@ * -always option was enabled
### reflinks -* Decode pdfinfo if it is bytes content (T303731) +* Decode pdfinfo if it is bytes content (:phab:`:phab:`T303731``)
## 7.0.0 @@ -16,61 +16,61 @@
### general * L10N updates -* Provide ConfigParserBot for several scripts (T223778) +* Provide ConfigParserBot for several scripts (:phab:`T223778`)
### add_text -* Provide -create and -createonly options (T291354) +* Provide -create and -createonly options (:phab:`T291354`) * Deprecated function get_text() was removed in favour of Page.text and BaseBot.skip_page() * Deprecated function put_text() was removed in favour of BaseBot.userPut() method * Deprecated function add_text() were remove in favour of textlib.add_text()
### blockpageschecker -* Use different edit comments when adding, changeing or removing templates (T291345) -* Derive CheckerBot from ConfigParserBot (T57106) -* Derive CheckerBot from CurrentPageBot (T196851, T171713) +* Use different edit comments when adding, changeing or removing templates (:phab:`T291345`) +* Derive CheckerBot from ConfigParserBot (:phab:`T57106`) +* Derive CheckerBot from CurrentPageBot (:phab:`T196851`, :phab:`T171713`)
### category * CleanBot was added which can be invoked by clean action option * Recurse CategoryListifyRobot with depth -* Show a warning if a pagegenerator option is not enabled (T298522) +* Show a warning if a pagegenerator option is not enabled (:phab:`T298522`) * Deprecated code parts were removed
### checkimages -* Skip PageSaveRelatedError and ServerError when putting talk page (T302174) +* Skip PageSaveRelatedError and ServerError when putting talk page (:phab:`T302174`)
### commonscat -* Ignore InvalidTitleError in CommonscatBot.findCommonscatLink (T291783) +* Ignore InvalidTitleError in CommonscatBot.findCommonscatLink (:phab:`T291783`)
### cosmetic_changes -* Ignore InvalidTitleError in CosmeticChangesBot.treat_page (T293612) +* Ignore InvalidTitleError in CosmeticChangesBot.treat_page (:phab:`T293612`)
### djvutext -* pass site arg only once (T292367) +* pass site arg only once (:phab:`T292367`)
### fixing_redirects * Let only put_current show the message "No changes were needed" -* Use concurrent.futures to retrieve redirect or moved targets (T298789) -* Add an option to ignore solving moved targets (T298789) +* Use concurrent.futures to retrieve redirect or moved targets (:phab:`T298789`) +* Add an option to ignore solving moved targets (:phab:`T298789`)
### imagetransfer -* Add support for chunked uploading (T300531) +* Add support for chunked uploading (:phab:`T300531`)
### newitem * Do not pass OtherPageSaveRelatedError silently
### pagefromfile * Preload pages instead of reading them one by one before putting changes -* Don't ask for confirmation by default (T291757) +* Don't ask for confirmation by default (:phab:`T291757`)
### redirect -* Use site.maxlimit to determine the highest limit to load (T299859) +* Use site.maxlimit to determine the highest limit to load (:phab:`T299859`)
### replace -* Enable default behaviour with -mysqlquery (T299306) +* Enable default behaviour with -mysqlquery (:phab:`T299306`) * Deprecated "acceptall" and "addedCat" parameters were replaced by "always" and "addcat"
### revertbot -* Add support for translated dates/times (T102174) +* Add support for translated dates/times (:phab:`T102174`) * Deprecated "max" parameter was replaced by "total"
### solve_disambiguation @@ -80,7 +80,7 @@ *Do not pass OtherPageSaveRelatedError silently
### unusedfiles -* Use oldest_file_info.user as uploader (T301768) +* Use oldest_file_info.user as uploader (:phab:`T301768`)
## 6.6.1 @@ -101,7 +101,7 @@ *05 August 2021*
### reflinks -* Don't ignore identical references with newline in ref content (T286369) +* Don't ignore identical references with newline in ref content (:phab:`T286369`) * L10N updates
@@ -112,29 +112,29 @@ * show a warning if pywikibot.__version__ is behind scripts.__version__
### addtext -* Deprecate get_text, put_text and add_text functions (T284388) -* Use AutomaticTWSummaryBot and NoRedirectPageBot bot class instead of functions (T196851) +* Deprecate get_text, put_text and add_text functions (:phab:`T284388`) +* Use AutomaticTWSummaryBot and NoRedirectPageBot bot class instead of functions (:phab:`T196851`)
### blockpageschecker * Script was unarchived
### commonscat -* Enable multiple sites (T57083) +* Enable multiple sites (:phab:`T57083`) * Use new textlib.add_text function
### cosmetic_changes -* set -ignore option to CANCEL.MATCH by default (T108446) +* set -ignore option to CANCEL.MATCH by default (:phab:`T108446`)
### fixing_redirects -* Add -overwrite option (T235219) +* Add -overwrite option (:phab:`T235219`)
### imagetransfer -* Skip pages which does not exist on source site (T284414) +* Skip pages which does not exist on source site (:phab:`T284414`) * Use roundrobin_generators to combine multiple template inclusions -* Allow images existing in the shared repo (T267535) +* Allow images existing in the shared repo (:phab:`T267535`)
### template -* Do not try to initialze generator twice in TemplateRobot (T284534) +* Do not try to initialze generator twice in TemplateRobot (:phab:`T284534`)
### update_script * compat2core script was restored and renamed to update_script @@ -166,22 +166,22 @@ * dry parameter of CategoryAddBot will be removed
### commonscat -* Ignore InvalidTitleError (T267742) -* exit checkCommonscatLink method if target name is empty (T282693) +* Ignore InvalidTitleError (:phab:`T267742`) +* exit checkCommonscatLink method if target name is empty (:phab:`T282693`)
### fixing_redirects -* ValueError will be ignored (T283403, T111513) -* InterwikiRedirectPageError will be ignored (T137754) -* InvalidPageError will be ignored (T280043) +* ValueError will be ignored (:phab:`T283403`, :phab:`T111513`) +* InterwikiRedirectPageError will be ignored (:phab:`T137754`) +* InvalidPageError will be ignored (:phab:`T280043`)
### reflinks * Use consecutive reference numbers for autogenerated links
### replace -* InvalidPageError will be ignored (T280043) +* InvalidPageError will be ignored (:phab:`T280043`)
### upload -* Support async chunked uploads (T129216) +* Support async chunked uploads (:phab:`T129216`)
## 6.1.0 @@ -196,19 +196,19 @@ * watchlist.py was restored
### archivebot -* PageArchiver.maxsize must be defined before load_config() (T277547) +* PageArchiver.maxsize must be defined before load_config() (:phab:`T277547`) * Time period must have a qualifier
### imagetransfer -* Fix usage of -tofamily -tolang options (T279232) +* Fix usage of -tofamily -tolang options (:phab:`T279232`)
### misspelling * Use the new DisambiguationRobot interface and options
### reflinks -* Catch urllib3.LocationParseError and skip link (T280356) +* Catch urllib3.LocationParseError and skip link (:phab:`T280356`) * L10N updates -* Avoid dupliate reference names (T278040) +* Avoid dupliate reference names (:phab:`T278040`)
### solve_disambiguation * Keyword arguments are recommended if deriving the bot; opt option handler is used. @@ -221,12 +221,12 @@ *15 March 2021*
### general -* interwikidumps.py, cfd.py and featured.py scripts were deleted (T223826) -* Long time unused scripts were archived (T223826). Ask to recover if needed. +* interwikidumps.py, cfd.py and featured.py scripts were deleted (:phab:`T223826`) +* Long time unused scripts were archived (:phab:`T223826`). Ask to recover if needed. * pagegenerators.handle_args() is used in several scripts
### archivebot -* Always take 'maxarticlesize' into account when saving (T276937) +* Always take 'maxarticlesize' into account when saving (:phab:`T276937`) * Remove deprecated parts
### category @@ -236,16 +236,16 @@ * New script to wrap Commons file descriptions in language templates
### generate_family_file -* Ignore ssl certificate validation (T265210) +* Ignore ssl certificate validation (:phab:`T265210`)
### login * update help string
### maintenance -* Add a preload_sites.py script to preload site informations (T226157) +* Add a preload_sites.py script to preload site informations (:phab:`T226157`)
### reflinks -* Force pdf file to be closed (T276747) +* Force pdf file to be closed (:phab:`T276747`) * Fix http.fetch response data attribute * Fix treat process flow
@@ -253,7 +253,7 @@ * Add replacement description to -summary message
### replicate_wiki -* replace pages in all sites (T275291) +* replace pages in all sites (:phab:`T275291`)
### solve_disambiguation * Deprecated methods were removed @@ -267,15 +267,15 @@ *24 January 2021*
### general -* pagegenerators handleArg was renamed to handle_arg (T271437) +* pagegenerators handleArg was renamed to handle_arg (:phab:`T271437`) * i18n updates
### add_text -* bugfix: str.join() expects an iterable not multiple args (T272223) +* bugfix: str.join() expects an iterable not multiple args (:phab:`T272223`)
### redirect -* pagegenerators -page option was implemented (T100643) -* pagegenerators namespace filter was implemented (T234133, T271116) +* pagegenerators -page option was implemented (:phab:`T100643`) +* pagegenerators namespace filter was implemented (:phab:`T234133`, :phab:`T271116`)
## weblinkchecker * Deprecated LinkChecker class was removed @@ -292,7 +292,7 @@ * -except option was renamed to -grepnot from pagegenerators
### solve_disambiguation -* ignore ValueError when parsing a Link object (T111513) +* ignore ValueError when parsing a Link object (:phab:`T111513`)
## 5.4.0 @@ -322,8 +322,8 @@ *10 December 2020*
### general -* Removed unsupported BadTitle Exception (T267768) -* Replaced PageNotSaved by PageSaveRelatedError (T267821) +* Removed unsupported BadTitle Exception (:phab:`T267768`) +* Replaced PageNotSaved by PageSaveRelatedError (:phab:`T267821`) * Update scripts to support Python 3.5+ only * i18n updates * L10N updates @@ -332,17 +332,17 @@ * Make BasicBot example a ConfigParserBot to explain the usage
### clean_sandbox -* Fix TypeError (T267717) +* Fix TypeError (:phab:`T267717`)
### fixing_redirects -* Ignore RuntimeError for missing 'redirects' in api response (T267567) +* Ignore RuntimeError for missing 'redirects' in api response (:phab:`T267567`)
### imagetransfer * Implement -tosite command and other improvements -* Do not use UploadRobot.run() with imagetransfer (T267579) +* Do not use UploadRobot.run() with imagetransfer (:phab:`T267579`)
### interwiki -* Use textfile for interwiki dumps and enable -restore:all option (T74943, T213624) +* Use textfile for interwiki dumps and enable -restore:all option (:phab:`T74943`, :phab:`T213624`)
### makecat * Use input_choice for options @@ -350,16 +350,16 @@ * Other improvements
### revertbot -* Take rollbacktoken to revert (T250509) +* Take rollbacktoken to revert (:phab:`T250509`)
### solve_disambiguation * Write ignoring pages as a whole
### touch -* Fix available_options and purge options (T268394) +* Fix available_options and purge options (:phab:`T268394`)
### weblinkchecker -* Fix AttributeError of HttpRequest (T269821) +* Fix AttributeError of HttpRequest (:phab:`T269821`)
## 5.1.0 @@ -367,35 +367,35 @@
### general * i18n updates -* switch to new OptionHandler interface (T264721) +* switch to new OptionHandler interface (:phab:`T264721`)
### change_pagelang * New script was added
### download_dump -* Make `dumpdate` param work when using the script in Toolforge (T266630) +* Make `dumpdate` param work when using the script in Toolforge (:phab:`T266630`)
### imagetransfer -* Remove outdated "followRedirects" parameter from imagelinks(); treat instead of run method (T266867, T196851, T171713) +* Remove outdated "followRedirects" parameter from imagelinks(); treat instead of run method (:phab:`T266867`, :phab:`T196851`, :phab:`T171713`)
### interwiki * Replace deprecated originPage by origin in Subjects
### misspelling -* Enable misspelling.py for several sites using wikidata (T258859, T94681) +* Enable misspelling.py for several sites using wikidata (:phab:`T258859`, :phab:`T94681`)
### noreferences -* Rename NoReferencesBot.run to treat (T196851, T171713) -* Use wikidata item instead of dropped MediaWiki message for default category (T266413) +* Rename NoReferencesBot.run to treat (:phab:`T196851`, :phab:`T171713`) +* Use wikidata item instead of dropped MediaWiki message for default category (:phab:`T266413`)
### reflinks * Derive ReferencesRobot from ExistingPageBot and NoRedirectPageBot * Use chardet to find a valid encoding (266862) -* Rename ReferencesRobot.run to treat (T196851, T171713) -* Ignore duplication replacements inside templates (T266411) -* Fix edit summary (T265968) -* Add Server414Error in and close file after reading (T266000) -* Call ReferencesRobot.setup() (T265928) +* Rename ReferencesRobot.run to treat (:phab:`T196851`, :phab:`T171713`) +* Ignore duplication replacements inside templates (:phab:`T266411`) +* Fix edit summary (:phab:`T265968`) +* Add Server414Error in and close file after reading (:phab:`T266000`) +* Call ReferencesRobot.setup() (:phab:`T265928`)
### welcome * Replace _COLORS and _MSGS dicts by Enum @@ -414,11 +414,11 @@ * Split initializer and put getting whitelist to its own method
### checkimages -* Re-enable -sleep parameter (T264521) +* Re-enable -sleep parameter (:phab:`T264521`)
### commonscat -* get commons category from wikibase (T175207) -* Adjust save counter (T262772) +* get commons category from wikibase (:phab:`T175207`) +* Adjust save counter (:phab:`T262772`)
### flickrripper * Improve option handling @@ -427,19 +427,19 @@ * Improvements were made
### imagetransfer -* Do not encode str to bytes (T265257) +* Do not encode str to bytes (:phab:`T265257`)
### match_images * Improvements
### parser_function_count -Porting parser_function_count.py from compat to core/scripts (T66878) +Porting parser_function_count.py from compat to core/scripts (:phab:`T66878`)
### reflinks -decode byte-like object meta_content.group() (T264575) +decode byte-like object meta_content.group() (:phab:`T264575`)
### speedy_delete -* port speedy_delete.py to core (T66880) +* port speedy_delete.py to core (:phab:`T66880`)
### weblinkchecker * Use ThreadList with weblinkchecker @@ -480,7 +480,7 @@ * i18n updates
### download_dump -* Move this script to script folder (T123885, T184033) +* Move this script to script folder (:phab:`T123885`, :phab:`T184033`)
## replace * Show a FutureWarning for deprecated doReplacements method @@ -496,13 +496,13 @@ *4 August 2020*
### general -* Remove Python 2 related code (T257399) +* Remove Python 2 related code (:phab:`T257399`) * i18n updates * L10N updates
### archivebot * Only mention archives where something was really archived -* Reset counter when "era" changes (T215247) +* Reset counter when "era" changes (:phab:`T215247`) * Code improvements and cleanups * Fix ShouldArchive type * Refactor PageArchiver's main loop @@ -510,7 +510,7 @@ * Fix str2size to allow space separators
### cfd -* Script was archived and is no longer supported (T223826) +* Script was archived and is no longer supported (:phab:`T223826`)
### delete -* Use Dict in place of DefaultDict (T257770) +* Use Dict in place of DefaultDict (:phab:`T257770`) diff --git a/tox.ini b/tox.ini index 4e33252..feaffcb 100644 --- a/tox.ini +++ b/tox.ini @@ -77,7 +77,7 @@ [testenv:doc] commands = sphinx-build -M html ./docs ./docs/_build - rstcheck --recursive --report warning . + rstcheck --recursive --report warning --ignore-roles phab . basepython = python3 deps = -rrequirements.txt
pywikibot-commits@lists.wikimedia.org