pywikibot


Namepywikibot JSON
Version 10.3.1 PyPI version JSON
download
home_pageNone
SummaryPython MediaWiki Bot Framework
upload_time2025-08-08 14:19:47
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8.0
licenseMIT License
keywords api bot client framework mediawiki pwb pybot python pywiki pywikibase pywikibot pywikipedia pywikipediabot wiki wikibase wikidata wikimedia wikipedia
VCS
bugtrack_url
requirements mwparserfromhell packaging requests wikitextparser PyJWT mwoauth pydot python-stdnum Pillow Pillow googlesearch-python requests-sse PyMySQL beautifulsoup4 memento_client
Travis-CI No Travis.
coveralls test coverage No coveralls.
            .. image:: https://github.com/wikimedia/pywikibot/actions/workflows/pywikibot-ci.yml/badge.svg?branch=master
   :alt: GitHub CI
   :target: https://github.com/wikimedia/pywikibot/actions/workflows/pywikibot-ci.yml
.. image:: https://codecov.io/gh/wikimedia/pywikibot/branch/master/graph/badge.svg
   :alt: Code coverage
   :target: https://app.codecov.io/gh/wikimedia/pywikibot
.. image:: https://img.shields.io/pypi/pyversions/pywikibot.svg
   :alt: Python
   :target: https://www.python.org/downloads/
.. image:: https://img.shields.io/github/languages/top/wikimedia/pywikibot
   :alt: Top language
   :target: https://www.python.org/downloads/
.. image:: https://img.shields.io/pypi/v/pywikibot.svg
   :alt: Pywikibot release
   :target: https://pypi.org/project/pywikibot/
.. image:: https://img.shields.io/pypi/wheel/pywikibot
   :alt: wheel
   :target: https://pypi.org/project/pywikibot/
.. image:: https://static.pepy.tech/badge/pywikibot
   :alt: Total downloads
   :target: https://pepy.tech/project/pywikibot
.. image:: https://static.pepy.tech/personalized-badge/pywikibot?period=month&units=international_system&left_color=black&right_color=blue&left_text=monthly
   :alt: Monthly downloads
   :target: https://pepy.tech/project/pywikibot
.. image:: https://img.shields.io/github/last-commit/wikimedia/pywikibot
   :alt: Last commit
   :target: https://gerrit.wikimedia.org/r/plugins/gitiles/pywikibot/core/
.. image:: https://snyk.io/advisor/python/pywikibot/badge.svg
   :target: https://snyk.io/advisor/python/pywikibot
   :alt: pywikibot


*********
Pywikibot
*********

The Pywikibot framework is a Python library that interfaces with the
`MediaWiki API <https://www.mediawiki.org/wiki/API:Main_page>`_
version 1.31 or higher.

Also included are various general function scripts that can be adapted for
different tasks.

For further information about the library excluding scripts see
the full `code documentation <https://doc.wikimedia.org/pywikibot/stable/>`_.

Quick start
===========

.. code:: text

    git clone https://gerrit.wikimedia.org/r/pywikibot/core.git
    cd core
    git submodule update --init
    pip install -r requirements.txt
    python pwb.py <script_name>

Or to install using PyPI (excluding scripts)

.. code:: text

    pip install pywikibot
    pwb <scriptname>

Our `installation
guide <https://www.mediawiki.org/wiki/Manual:Pywikibot/Installation>`_
has more details for advanced usage.

Basic Usage
===========

If you wish to write your own script it's very easy to get started:

.. code:: python

    import pywikibot
    site = pywikibot.Site('en', 'wikipedia')  # The site we want to run our bot on
    page = pywikibot.Page(site, 'Wikipedia:Sandbox')
    page.text = page.text.replace('foo', 'bar')
    page.save('Replacing "foo" with "bar"')  # Saves the page

Wikibase Usage
==============

Wikibase is a flexible knowledge base software that drives Wikidata.
A sample pywikibot script for getting data from Wikibase:

.. code:: python

    import pywikibot
    site = pywikibot.Site('wikipedia:en')
    repo = site.data_repository()  # the Wikibase repository for given site
    page = repo.page_from_repository('Q91')  # create a local page for the given item
    item = pywikibot.ItemPage(repo, 'Q91')  # a repository item
    data = item.get()  # get all item data from repository for this item

Script example
==============

Pywikibot provides bot classes to develop your own script easily:

.. code:: python

    import pywikibot
    from pywikibot import pagegenerators
    from pywikibot.bot import ExistingPageBot

    class MyBot(ExistingPageBot):

        update_options = {
            'text': 'This is a test text',
            'summary': 'Bot: a bot test edit with Pywikibot.'
        }

        def treat_page(self):
            """Load the given page, do some changes, and save it."""
            text = self.current_page.text
            text += '\n' + self.opt.text
            self.put_current(text, summary=self.opt.summary)

    def main():
        """Parse command line arguments and invoke bot."""
        options = {}
        gen_factory = pagegenerators.GeneratorFactory()
        # Option parsing
        local_args = pywikibot.handle_args(args)  # global options
        local_args = gen_factory.handle_args(local_args)  # generators options
        for arg in local_args:
            opt, sep, value = arg.partition(':')
            if opt in ('-summary', '-text'):
                options[opt[1:]] = value
        MyBot(generator=gen_factory.getCombinedGenerator(), **options).run()

    if __name == '__main__':
        main()


For more documentation on Pywikibot see our `docs <https://doc.wikimedia.org/pywikibot/>`_.


Roadmap
=======

Current Release Changes
=======================

* Add support for tlwikisource (T388656)
* i18n updates


Deprecations
============

Pending removal in Pywikibot 13
-------------------------------

* 10.3.0: throttle.Trottle.getDelayand throttle.Trottle.setDelayswere renamed; the
  old methods will be removed (T289318)
* 10.3.0: throttle.Trottle.next_multiplicityattribute is unused and will be removed
  (T289318)
* 10.3.0: *requestsize* parameter of throttle.Trottlecall is deprecated and will be
  dropped (T289318)
* 10.3.0: textlib.to_latin_digitswill be removed in favour of
  textlib.to_ascii_digits, ``NON_LATIN_DIGITS`` of userinterfaces.transliteration
  will be removed in favour of ``NON_ASCII_DIGITS`` (T398146#10958283)
* 10.2.0: tools.threading.RLockis deprecated and moved to backports
  module. The backports.RLock.countmethod is also deprecated. For Python 3.14+ use ``RLock``
  from Python library ``threading`` instead. (T395182)
* 10.1.0: *revid* and *date* parameters of Page.authorship()
  were dropped
* 10.0.0: *last_id* of comms.eventstreams.EventStreamswas renamed to *last_event_id*
  (T309380)
* 10.0.0: 'millenia' argument for *precision* parameter of pywikibot.WbTimeis deprecated;
  'millennium' must be used instead
* 10.0.0: *includeredirects* parameter of pagegenerators.AllpagesPageGeneratorand
  pagegenerators.PrefixingPageGeneratoris deprecated and should be replaced by *filterredir*


Pending removal in Pywikibot 12
-------------------------------

* 9.6.0: BaseSite.languages()will be removed in
  favour of BaseSite.codes
* 9.5.0: DataSite.getPropertyType()will be removed
  in favour of DataSite.get_property_type()
* 9.3.0: page.BasePage.userNameand page.BasePage.isIpEditare deprecated in favour of
  ``user`` or ``anon`` attributes of page.BasePage.latest_revisionproperty
* 9.3.0: *botflag* parameter of Page.save(), Page.put()
  and
  Page.set_redirect_target()was renamed to *bot*
* 9.2.0: All parameters of Page.templatesand
  Page.itertemplates()must be given as keyworded arguments
* 9.2.0: Imports of loggingfunctions from the botmodule are deprecated and will be desupported
* 9.2.0: *total* argument in ``-logevents`` pagegenerators option is deprecated;
  use ``-limit`` instead (T128981)
* 9.0.0: The *content* parameter of proofreadpage.IndexPage.page_genis deprecated and will be
  ignored (T358635)
* 9.0.0: ``next`` parameter of userinterfaces.transliteration.Transliterator.transliteratewas
  renamed to ``succ``
* 9.0.0: ``userinterfaces.transliteration.transliterator`` object was renamed to Transliterator
  
* 9.0.0: The ``type`` parameter of site.APISite.protectedpages()
  was renamed to ``protect_type``
* 9.0.0: The ``all`` parameter of site.APISite.namespace()
  was renamed to ``all_ns``
* 9.0.0: ``filter`` parameter of date.dhwas renamed to ``filter_func``
* 9.0.0: ``dict`` parameter of data.api.OptionSetwas renamed to ``data``
* 9.0.0: pywikibot.version.get_toolforge_hostnameis deprecated with no replacement
* 9.0.0: ``allrevisions`` parameter of xmlreader.XmpDumpis deprecated, use ``revisions`` instead
  (T340804)
* 9.0.0: ``iteritems`` method of data.api.Requestwill be removed in favour of ``items``
* 9.0.0: ``SequenceOutputter.output()`` is deprecated in favour of the
  tools.formatter.SequenceOutputter.outproperty


Pending removal in Pywikibot 11
-------------------------------

* 8.4.0: data.api.QueryGenerator.continuekeywill be removed in favour of
  data.api.QueryGenerator.modules
* 8.4.0: The *modules_only_mode* parameter in the data.api.ParamInfoclass, its
  *paraminfo_keys* class attribute, and its ``preloaded_modules`` property will be removed
* 8.4.0: The *dropdelay* and *releasepid* attributes of the throttle.Throttleclass will be
  removed in favour of the *expiry* class attribute
* 8.2.0: The tools.itertools.itergroupfunction will be removed in favour of the
  backports.batchedfunction
* 8.2.0: The *normalize* parameter in the pywikibot.WbTime.toTimestrand
  pywikibot.WbTime.toWikibasemethods will be removed
* 8.1.0: The inheritance of the exceptions.NoSiteLinkErrorexception from
  exceptions.NoPageErrorwill be removed
* 8.1.0: The ``exceptions.Server414Error`` exception is deprecated in favour of the
  exceptions.Client414Errorexception
* 8.0.0: The Timestamp.clone()method is deprecated in
  favour of the ``Timestamp.replace()`` method
* 8.0.0: The family.Family.maximum_GET_lengthmethod is deprecated in favour of the
  config.maximum_GET_lengthconfiguration option (T325957)
* 8.0.0: The ``addOnly`` parameter in the textlib.replaceLanguageLinksand
  textlib.replaceCategoryLinksfunctions is deprecated in favour of ``add_only``
* 8.0.0: The regex attributes ``ptimeR``, ``ptimeznR``, ``pyearR``, ``pmonthR``, and ``pdayR`` of
  the textlib.TimeStripperclass are deprecated in favour of the ``patterns`` attribute,
  which is a textlib.TimeStripperPatternsobject
* 8.0.0: The ``groups`` attribute of the textlib.TimeStripperclass is deprecated in favour
  of the textlib.TIMEGROUPSconstant
* 8.0.0: The LoginManager.get_login_tokenmethod
  has been replaced by ``login.ClientLoginManager.site.tokens['login']``
* 8.0.0: The ``data.api.LoginManager()`` constructor is deprecated in favour of the
  login.ClientLoginManagerclass
* 8.0.0: The APISite.messages()method is
  deprecated in favour of the userinfo['messages']
  attribute
* 8.0.0: The Page.editTime()method is deprecated and should be
  replaced by the Page.latest_revision.timestampattribute

Release history
===============

See https://github.com/wikimedia/pywikibot/blob/stable/HISTORY.rst

Contributing
============

Our code is maintained on Wikimedia's `Gerrit installation <https://gerrit.wikimedia.org/>`_,
`learn <https://www.mediawiki.org/wiki/Developer_account>`_ how to get
started.

Code of Conduct
===============

The development of this software is covered by a
`Code of Conduct <https://www.mediawiki.org/wiki/Special:MyLanguage/Code_of_Conduct>`_.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pywikibot",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8.0",
    "maintainer_email": "The Pywikibot team <pywikibot@lists.wikimedia.org>",
    "keywords": "API, bot, client, framework, mediawiki, pwb, pybot, python, pywiki, pywikibase, pywikibot, pywikipedia, pywikipediabot, wiki, wikibase, wikidata, wikimedia, wikipedia",
    "author": null,
    "author_email": "xqt <info@gno.de>",
    "download_url": "https://files.pythonhosted.org/packages/3c/10/972ab56ef6e6dd3b6f974043dae6c9ff781f0e4ad49dd71f7fa267cf2e4d/pywikibot-10.3.1.tar.gz",
    "platform": null,
    "description": ".. image:: https://github.com/wikimedia/pywikibot/actions/workflows/pywikibot-ci.yml/badge.svg?branch=master\r\n   :alt: GitHub CI\r\n   :target: https://github.com/wikimedia/pywikibot/actions/workflows/pywikibot-ci.yml\r\n.. image:: https://codecov.io/gh/wikimedia/pywikibot/branch/master/graph/badge.svg\r\n   :alt: Code coverage\r\n   :target: https://app.codecov.io/gh/wikimedia/pywikibot\r\n.. image:: https://img.shields.io/pypi/pyversions/pywikibot.svg\r\n   :alt: Python\r\n   :target: https://www.python.org/downloads/\r\n.. image:: https://img.shields.io/github/languages/top/wikimedia/pywikibot\r\n   :alt: Top language\r\n   :target: https://www.python.org/downloads/\r\n.. image:: https://img.shields.io/pypi/v/pywikibot.svg\r\n   :alt: Pywikibot release\r\n   :target: https://pypi.org/project/pywikibot/\r\n.. image:: https://img.shields.io/pypi/wheel/pywikibot\r\n   :alt: wheel\r\n   :target: https://pypi.org/project/pywikibot/\r\n.. image:: https://static.pepy.tech/badge/pywikibot\r\n   :alt: Total downloads\r\n   :target: https://pepy.tech/project/pywikibot\r\n.. image:: https://static.pepy.tech/personalized-badge/pywikibot?period=month&units=international_system&left_color=black&right_color=blue&left_text=monthly\r\n   :alt: Monthly downloads\r\n   :target: https://pepy.tech/project/pywikibot\r\n.. image:: https://img.shields.io/github/last-commit/wikimedia/pywikibot\r\n   :alt: Last commit\r\n   :target: https://gerrit.wikimedia.org/r/plugins/gitiles/pywikibot/core/\r\n.. image:: https://snyk.io/advisor/python/pywikibot/badge.svg\r\n   :target: https://snyk.io/advisor/python/pywikibot\r\n   :alt: pywikibot\r\n\r\n\r\n*********\r\nPywikibot\r\n*********\r\n\r\nThe Pywikibot framework is a Python library that interfaces with the\r\n`MediaWiki API <https://www.mediawiki.org/wiki/API:Main_page>`_\r\nversion 1.31 or higher.\r\n\r\nAlso included are various general function scripts that can be adapted for\r\ndifferent tasks.\r\n\r\nFor further information about the library excluding scripts see\r\nthe full `code documentation <https://doc.wikimedia.org/pywikibot/stable/>`_.\r\n\r\nQuick start\r\n===========\r\n\r\n.. code:: text\r\n\r\n    git clone https://gerrit.wikimedia.org/r/pywikibot/core.git\r\n    cd core\r\n    git submodule update --init\r\n    pip install -r requirements.txt\r\n    python pwb.py <script_name>\r\n\r\nOr to install using PyPI (excluding scripts)\r\n\r\n.. code:: text\r\n\r\n    pip install pywikibot\r\n    pwb <scriptname>\r\n\r\nOur `installation\r\nguide <https://www.mediawiki.org/wiki/Manual:Pywikibot/Installation>`_\r\nhas more details for advanced usage.\r\n\r\nBasic Usage\r\n===========\r\n\r\nIf you wish to write your own script it's very easy to get started:\r\n\r\n.. code:: python\r\n\r\n    import pywikibot\r\n    site = pywikibot.Site('en', 'wikipedia')  # The site we want to run our bot on\r\n    page = pywikibot.Page(site, 'Wikipedia:Sandbox')\r\n    page.text = page.text.replace('foo', 'bar')\r\n    page.save('Replacing \"foo\" with \"bar\"')  # Saves the page\r\n\r\nWikibase Usage\r\n==============\r\n\r\nWikibase is a flexible knowledge base software that drives Wikidata.\r\nA sample pywikibot script for getting data from Wikibase:\r\n\r\n.. code:: python\r\n\r\n    import pywikibot\r\n    site = pywikibot.Site('wikipedia:en')\r\n    repo = site.data_repository()  # the Wikibase repository for given site\r\n    page = repo.page_from_repository('Q91')  # create a local page for the given item\r\n    item = pywikibot.ItemPage(repo, 'Q91')  # a repository item\r\n    data = item.get()  # get all item data from repository for this item\r\n\r\nScript example\r\n==============\r\n\r\nPywikibot provides bot classes to develop your own script easily:\r\n\r\n.. code:: python\r\n\r\n    import pywikibot\r\n    from pywikibot import pagegenerators\r\n    from pywikibot.bot import ExistingPageBot\r\n\r\n    class MyBot(ExistingPageBot):\r\n\r\n        update_options = {\r\n            'text': 'This is a test text',\r\n            'summary': 'Bot: a bot test edit with Pywikibot.'\r\n        }\r\n\r\n        def treat_page(self):\r\n            \"\"\"Load the given page, do some changes, and save it.\"\"\"\r\n            text = self.current_page.text\r\n            text += '\\n' + self.opt.text\r\n            self.put_current(text, summary=self.opt.summary)\r\n\r\n    def main():\r\n        \"\"\"Parse command line arguments and invoke bot.\"\"\"\r\n        options = {}\r\n        gen_factory = pagegenerators.GeneratorFactory()\r\n        # Option parsing\r\n        local_args = pywikibot.handle_args(args)  # global options\r\n        local_args = gen_factory.handle_args(local_args)  # generators options\r\n        for arg in local_args:\r\n            opt, sep, value = arg.partition(':')\r\n            if opt in ('-summary', '-text'):\r\n                options[opt[1:]] = value\r\n        MyBot(generator=gen_factory.getCombinedGenerator(), **options).run()\r\n\r\n    if __name == '__main__':\r\n        main()\r\n\r\n\r\nFor more documentation on Pywikibot see our `docs <https://doc.wikimedia.org/pywikibot/>`_.\r\n\r\n\r\nRoadmap\r\n=======\r\n\r\nCurrent Release Changes\r\n=======================\r\n\r\n* Add support for tlwikisource (T388656)\r\n* i18n updates\r\n\r\n\r\nDeprecations\r\n============\r\n\r\nPending removal in Pywikibot 13\r\n-------------------------------\r\n\r\n* 10.3.0: throttle.Trottle.getDelayand throttle.Trottle.setDelayswere renamed; the\r\n  old methods will be removed (T289318)\r\n* 10.3.0: throttle.Trottle.next_multiplicityattribute is unused and will be removed\r\n  (T289318)\r\n* 10.3.0: *requestsize* parameter of throttle.Trottlecall is deprecated and will be\r\n  dropped (T289318)\r\n* 10.3.0: textlib.to_latin_digitswill be removed in favour of\r\n  textlib.to_ascii_digits, ``NON_LATIN_DIGITS`` of userinterfaces.transliteration\r\n  will be removed in favour of ``NON_ASCII_DIGITS`` (T398146#10958283)\r\n* 10.2.0: tools.threading.RLockis deprecated and moved to backports\r\n  module. The backports.RLock.countmethod is also deprecated. For Python 3.14+ use ``RLock``\r\n  from Python library ``threading`` instead. (T395182)\r\n* 10.1.0: *revid* and *date* parameters of Page.authorship()\r\n  were dropped\r\n* 10.0.0: *last_id* of comms.eventstreams.EventStreamswas renamed to *last_event_id*\r\n  (T309380)\r\n* 10.0.0: 'millenia' argument for *precision* parameter of pywikibot.WbTimeis deprecated;\r\n  'millennium' must be used instead\r\n* 10.0.0: *includeredirects* parameter of pagegenerators.AllpagesPageGeneratorand\r\n  pagegenerators.PrefixingPageGeneratoris deprecated and should be replaced by *filterredir*\r\n\r\n\r\nPending removal in Pywikibot 12\r\n-------------------------------\r\n\r\n* 9.6.0: BaseSite.languages()will be removed in\r\n  favour of BaseSite.codes\r\n* 9.5.0: DataSite.getPropertyType()will be removed\r\n  in favour of DataSite.get_property_type()\r\n* 9.3.0: page.BasePage.userNameand page.BasePage.isIpEditare deprecated in favour of\r\n  ``user`` or ``anon`` attributes of page.BasePage.latest_revisionproperty\r\n* 9.3.0: *botflag* parameter of Page.save(), Page.put()\r\n  and\r\n  Page.set_redirect_target()was renamed to *bot*\r\n* 9.2.0: All parameters of Page.templatesand\r\n  Page.itertemplates()must be given as keyworded arguments\r\n* 9.2.0: Imports of loggingfunctions from the botmodule are deprecated and will be desupported\r\n* 9.2.0: *total* argument in ``-logevents`` pagegenerators option is deprecated;\r\n  use ``-limit`` instead (T128981)\r\n* 9.0.0: The *content* parameter of proofreadpage.IndexPage.page_genis deprecated and will be\r\n  ignored (T358635)\r\n* 9.0.0: ``next`` parameter of userinterfaces.transliteration.Transliterator.transliteratewas\r\n  renamed to ``succ``\r\n* 9.0.0: ``userinterfaces.transliteration.transliterator`` object was renamed to Transliterator\r\n  \r\n* 9.0.0: The ``type`` parameter of site.APISite.protectedpages()\r\n  was renamed to ``protect_type``\r\n* 9.0.0: The ``all`` parameter of site.APISite.namespace()\r\n  was renamed to ``all_ns``\r\n* 9.0.0: ``filter`` parameter of date.dhwas renamed to ``filter_func``\r\n* 9.0.0: ``dict`` parameter of data.api.OptionSetwas renamed to ``data``\r\n* 9.0.0: pywikibot.version.get_toolforge_hostnameis deprecated with no replacement\r\n* 9.0.0: ``allrevisions`` parameter of xmlreader.XmpDumpis deprecated, use ``revisions`` instead\r\n  (T340804)\r\n* 9.0.0: ``iteritems`` method of data.api.Requestwill be removed in favour of ``items``\r\n* 9.0.0: ``SequenceOutputter.output()`` is deprecated in favour of the\r\n  tools.formatter.SequenceOutputter.outproperty\r\n\r\n\r\nPending removal in Pywikibot 11\r\n-------------------------------\r\n\r\n* 8.4.0: data.api.QueryGenerator.continuekeywill be removed in favour of\r\n  data.api.QueryGenerator.modules\r\n* 8.4.0: The *modules_only_mode* parameter in the data.api.ParamInfoclass, its\r\n  *paraminfo_keys* class attribute, and its ``preloaded_modules`` property will be removed\r\n* 8.4.0: The *dropdelay* and *releasepid* attributes of the throttle.Throttleclass will be\r\n  removed in favour of the *expiry* class attribute\r\n* 8.2.0: The tools.itertools.itergroupfunction will be removed in favour of the\r\n  backports.batchedfunction\r\n* 8.2.0: The *normalize* parameter in the pywikibot.WbTime.toTimestrand\r\n  pywikibot.WbTime.toWikibasemethods will be removed\r\n* 8.1.0: The inheritance of the exceptions.NoSiteLinkErrorexception from\r\n  exceptions.NoPageErrorwill be removed\r\n* 8.1.0: The ``exceptions.Server414Error`` exception is deprecated in favour of the\r\n  exceptions.Client414Errorexception\r\n* 8.0.0: The Timestamp.clone()method is deprecated in\r\n  favour of the ``Timestamp.replace()`` method\r\n* 8.0.0: The family.Family.maximum_GET_lengthmethod is deprecated in favour of the\r\n  config.maximum_GET_lengthconfiguration option (T325957)\r\n* 8.0.0: The ``addOnly`` parameter in the textlib.replaceLanguageLinksand\r\n  textlib.replaceCategoryLinksfunctions is deprecated in favour of ``add_only``\r\n* 8.0.0: The regex attributes ``ptimeR``, ``ptimeznR``, ``pyearR``, ``pmonthR``, and ``pdayR`` of\r\n  the textlib.TimeStripperclass are deprecated in favour of the ``patterns`` attribute,\r\n  which is a textlib.TimeStripperPatternsobject\r\n* 8.0.0: The ``groups`` attribute of the textlib.TimeStripperclass is deprecated in favour\r\n  of the textlib.TIMEGROUPSconstant\r\n* 8.0.0: The LoginManager.get_login_tokenmethod\r\n  has been replaced by ``login.ClientLoginManager.site.tokens['login']``\r\n* 8.0.0: The ``data.api.LoginManager()`` constructor is deprecated in favour of the\r\n  login.ClientLoginManagerclass\r\n* 8.0.0: The APISite.messages()method is\r\n  deprecated in favour of the userinfo['messages']\r\n  attribute\r\n* 8.0.0: The Page.editTime()method is deprecated and should be\r\n  replaced by the Page.latest_revision.timestampattribute\r\n\r\nRelease history\r\n===============\r\n\r\nSee https://github.com/wikimedia/pywikibot/blob/stable/HISTORY.rst\r\n\r\nContributing\r\n============\r\n\r\nOur code is maintained on Wikimedia's `Gerrit installation <https://gerrit.wikimedia.org/>`_,\r\n`learn <https://www.mediawiki.org/wiki/Developer_account>`_ how to get\r\nstarted.\r\n\r\nCode of Conduct\r\n===============\r\n\r\nThe development of this software is covered by a\r\n`Code of Conduct <https://www.mediawiki.org/wiki/Special:MyLanguage/Code_of_Conduct>`_.\r\n",
    "bugtrack_url": null,
    "license": "MIT License",
    "summary": "Python MediaWiki Bot Framework",
    "version": "10.3.1",
    "project_urls": {
        "Changelog": "https://doc.wikimedia.org/pywikibot/master/changelog.html",
        "Documentation": "https://doc.wikimedia.org/pywikibot/stable/",
        "Download": "https://www.pywikibot.org",
        "GitHub Mirror": "https://github.com/wikimedia/pywikibot",
        "Homepage": "https://www.mediawiki.org/wiki/Manual:Pywikibot",
        "Repository": "https://gerrit.wikimedia.org/r/plugins/gitiles/pywikibot/core/",
        "Tracker": "https://phabricator.wikimedia.org/tag/pywikibot/"
    },
    "split_keywords": [
        "api",
        " bot",
        " client",
        " framework",
        " mediawiki",
        " pwb",
        " pybot",
        " python",
        " pywiki",
        " pywikibase",
        " pywikibot",
        " pywikipedia",
        " pywikipediabot",
        " wiki",
        " wikibase",
        " wikidata",
        " wikimedia",
        " wikipedia"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7fe1c28bdab056de0312eda7deb3abcb70e5b4d6766bc7b91ee2b881bf3ac03f",
                "md5": "2e30ce490532eb586c782da9f77342e5",
                "sha256": "ec0133bc1a9dcb0bef8d955074dca2d10e3af99bb9be489441992197c65a2e9b"
            },
            "downloads": -1,
            "filename": "pywikibot-10.3.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "2e30ce490532eb586c782da9f77342e5",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8.0",
            "size": 725946,
            "upload_time": "2025-08-08T14:19:44",
            "upload_time_iso_8601": "2025-08-08T14:19:44.143159Z",
            "url": "https://files.pythonhosted.org/packages/7f/e1/c28bdab056de0312eda7deb3abcb70e5b4d6766bc7b91ee2b881bf3ac03f/pywikibot-10.3.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3c10972ab56ef6e6dd3b6f974043dae6c9ff781f0e4ad49dd71f7fa267cf2e4d",
                "md5": "c12a1529008ff8474dbb8d205d8b8321",
                "sha256": "76d8a57c64b9033339a1f0e1235ecd97d1742870e8d5b81af66624ddfd59d0fe"
            },
            "downloads": -1,
            "filename": "pywikibot-10.3.1.tar.gz",
            "has_sig": false,
            "md5_digest": "c12a1529008ff8474dbb8d205d8b8321",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8.0",
            "size": 622131,
            "upload_time": "2025-08-08T14:19:47",
            "upload_time_iso_8601": "2025-08-08T14:19:47.184953Z",
            "url": "https://files.pythonhosted.org/packages/3c/10/972ab56ef6e6dd3b6f974043dae6c9ff781f0e4ad49dd71f7fa267cf2e4d/pywikibot-10.3.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-08 14:19:47",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "wikimedia",
    "github_project": "pywikibot",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "mwparserfromhell",
            "specs": [
                [
                    ">=",
                    "0.5.2"
                ]
            ]
        },
        {
            "name": "packaging",
            "specs": []
        },
        {
            "name": "requests",
            "specs": [
                [
                    ">=",
                    "2.31.0"
                ]
            ]
        },
        {
            "name": "wikitextparser",
            "specs": [
                [
                    ">=",
                    "0.56.3"
                ]
            ]
        },
        {
            "name": "PyJWT",
            "specs": [
                [
                    "!=",
                    "2.10.0"
                ],
                [
                    "!=",
                    "2.10.1"
                ]
            ]
        },
        {
            "name": "mwoauth",
            "specs": [
                [
                    "!=",
                    "0.3.1"
                ],
                [
                    ">=",
                    "0.2.4"
                ]
            ]
        },
        {
            "name": "pydot",
            "specs": [
                [
                    ">=",
                    "3.0.2"
                ]
            ]
        },
        {
            "name": "python-stdnum",
            "specs": [
                [
                    ">=",
                    "1.20"
                ]
            ]
        },
        {
            "name": "Pillow",
            "specs": [
                [
                    ">=",
                    "11.1.0"
                ]
            ]
        },
        {
            "name": "Pillow",
            "specs": [
                [
                    "==",
                    "10.4.0"
                ]
            ]
        },
        {
            "name": "googlesearch-python",
            "specs": [
                [
                    ">=",
                    "1.3.0"
                ]
            ]
        },
        {
            "name": "requests-sse",
            "specs": [
                [
                    ">=",
                    "0.5.0"
                ]
            ]
        },
        {
            "name": "PyMySQL",
            "specs": [
                [
                    ">=",
                    "1.1.1"
                ]
            ]
        },
        {
            "name": "beautifulsoup4",
            "specs": [
                [
                    ">=",
                    "4.7.1"
                ]
            ]
        },
        {
            "name": "memento_client",
            "specs": [
                [
                    "==",
                    "0.6.1"
                ]
            ]
        }
    ],
    "tox": true,
    "lcname": "pywikibot"
}
        
Elapsed time: 2.01327s