import pywikibot
version(pywikibot)
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-2-b704d2b8ee13> in <module>()
----> 1 version(pywikibot)

NameError: name 'version' is not defined
help(pywikibot)
Help on package pywikibot:

NAME
    pywikibot - The initialization file for the Pywikibot framework.

PACKAGE CONTENTS
    _wbtypes
    backports
    bot
    bot_choice
    botirc
    comms (package)
    compat (package)
    config2
    cosmetic_changes
    daemonize
    data (package)
    date
    diff
    echo
    editor
    exceptions
    families (package)
    family
    fixes
    flow
    i18n
    interwiki_graph
    logentries
    logging
    login
    page
    pagegenerators
    plural
    proofreadpage
    site
    site_detect
    specialbots
    textlib
    throttle
    titletranslate
    tools (package)
    userinterfaces (package)
    version
    weblib
    xmlreader

SUBMODULES
    config

CLASSES
    builtins.object
        pywikibot.tools.UnicodeMixin
            pywikibot.exceptions.Error(pywikibot.tools.UnicodeMixin, builtins.Exception)
                pywikibot.exceptions.BadTitle
                pywikibot.exceptions.CaptchaError
                pywikibot.exceptions.InvalidTitle
                pywikibot.exceptions.NoUsername
                pywikibot.exceptions.PageRelatedError
                    pywikibot.exceptions.CircularRedirect
                    pywikibot.exceptions.InterwikiRedirectPage
                    pywikibot.exceptions.IsNotRedirectPage
                    pywikibot.exceptions.IsRedirectPage
                    pywikibot.exceptions.NoMoveTarget
                    pywikibot.exceptions.NoPage
                    pywikibot.exceptions.PageSaveRelatedError
                        pywikibot.exceptions.EditConflict
                            pywikibot.exceptions.PageCreatedConflict
                            pywikibot.exceptions.PageDeletedConflict
                        pywikibot.exceptions.LockedPage
                            pywikibot.exceptions.CascadeLockedPage
                            pywikibot.exceptions.LockedNoPage
                        pywikibot.exceptions.NoCreateError
                        pywikibot.exceptions.OtherPageSaveError
                        pywikibot.exceptions.SpamfilterError
                        pywikibot.exceptions.TitleblacklistError
                    pywikibot.exceptions.UnsupportedPage
                pywikibot.exceptions.SectionError
                pywikibot.exceptions.ServerError
                    pywikibot.exceptions.FatalServerError
                    pywikibot.exceptions.Server504Error
                pywikibot.exceptions.SiteDefinitionError
                    pywikibot.exceptions.UnknownFamily
                    pywikibot.exceptions.UnknownSite
                pywikibot.exceptions.UnknownExtension(pywikibot.exceptions.Error, builtins.NotImplementedError)
                pywikibot.exceptions.UserBlocked
                pywikibot.exceptions.WikiBaseError
                    pywikibot.exceptions.CoordinateGlobeUnknownException(pywikibot.exceptions.WikiBaseError, builtins.NotImplementedError)
    pywikibot.bot.BaseBot(pywikibot.bot.OptionHandler)
        pywikibot.bot.Bot
            pywikibot.bot.WikidataBot(pywikibot.bot.Bot, pywikibot.bot.ExistingPageBot)
        pywikibot.bot.CurrentPageBot
    pywikibot.page.BasePage(pywikibot.tools.UnicodeMixin, pywikibot.tools.ComparableMixin)
        pywikibot.page.Page
            pywikibot.page.Category
            pywikibot.page.FilePage
            pywikibot.page.User
    pywikibot.page.Property(builtins.object)
        pywikibot.page.Claim
        pywikibot.page.PropertyPage(pywikibot.page.WikibasePage, pywikibot.page.Property)
    pywikibot.page.WikibasePage(pywikibot.page.BasePage)
        pywikibot.page.ItemPage
        pywikibot.page.PropertyPage(pywikibot.page.WikibasePage, pywikibot.page.Property)
    pywikibot.tools.ComparableMixin(builtins.object)
        pywikibot.page.Link
    
    class BadTitle(Error)
     |  Server responded with BadTitle.
     |  
     |  Method resolution order:
     |      BadTitle
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Methods inherited from Error:
     |  
     |  __init__(self, arg)
     |      Initializer.
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
     |  
     |  args
    
    class Bot(BaseBot)
     |  Generic bot subclass for multiple sites.
     |  
     |  If possible the MultipleSitesBot or SingleSiteBot classes should be used
     |  instead which specifically handle multiple or single sites.
     |  
     |  Method resolution order:
     |      Bot
     |      BaseBot
     |      OptionHandler
     |      builtins.object
     |  
     |  Methods defined here:
     |  
     |  __init__(self, site=None, **kwargs)
     |      Create a Bot instance and initalize cached sites.
     |  
     |  init_page(self, item)
     |      Update site before calling treat.
     |  
     |  run(self)
     |      Check if it automatically updates the site before run.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |  
     |  site
     |      Get the current site.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from BaseBot:
     |  
     |  exit(self)
     |      Cleanup and exit processing.
     |      
     |      Invoked when Bot.run() is finished.
     |      Prints treat and save counters and informs whether the script
     |      terminated gracefully or was halted by exception.
     |      May be overridden by subclasses.
     |  
     |  quit(self)
     |      Cleanup and quit processing.
     |  
     |  setup(self)
     |      Some inital setup before run operation starts.
     |      
     |      This can be used for reading huge parts from life wiki or file
     |      operation which is more than just initialize the instance.
     |      Invoked by run() before running through generator loop.
     |  
     |  skip_page(self, page)
     |      Return whether treat should be skipped for the page.
     |      
     |      @param page: Page object to be processed
     |      @type page: pywikibot.Page
     |  
     |  stop(self)
     |      Stop iterating.
     |  
     |  teardown(self)
     |      Some cleanups after run operation. Invoked by exit().
     |  
     |  treat(self, page)
     |      Process one page (abstract method).
     |      
     |      @param page: Page object to be processed
     |      @type page: pywikibot.Page
     |  
     |  userPut(self, page, oldtext, newtext, **kwargs, comment='[deprecated name of summary]', async='[deprecated name of asynchronous]')
     |      Save a new revision of a page, with user confirmation as required.
     |      
     |      Print differences, ask user for confirmation,
     |      and puts the page if needed.
     |      
     |      Option used:
     |      
     |      * 'always'
     |      
     |      Keyword args used:
     |      
     |      * 'asynchronous' - passed to page.save
     |      * 'summary' - passed to page.save
     |      * 'show_diff' - show changes between oldtext and newtext (enabled)
     |      * 'ignore_save_related_errors' - report and ignore (disabled)
     |      * 'ignore_server_errors' - report and ignore (disabled)
     |      
     |      @return: whether the page was saved successfully
     |      @rtype: bool
     |  
     |  user_confirm(self, question)
     |      Obtain user response if bot option 'always' not enabled.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from BaseBot:
     |  
     |  current_page
     |      Return the current working page as a property.
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes inherited from BaseBot:
     |  
     |  availableOptions = {'always': False}
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from OptionHandler:
     |  
     |  getOption(self, option)
     |      Get the current value of an option.
     |      
     |      @param option: key defined in OptionHandler.availableOptions
     |      @raise Error: No valid option is given with option parameter
     |  
     |  setOptions(self, **kwargs)
     |      Set the instance options.
     |      
     |      @param kwargs: options
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from OptionHandler:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
    
    class CaptchaError(Error)
     |  Captcha is asked and config.solve_captcha == False.
     |  
     |  Method resolution order:
     |      CaptchaError
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Methods inherited from Error:
     |  
     |  __init__(self, arg)
     |      Initializer.
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
     |  
     |  args
    
    class CascadeLockedPage(LockedPage)
     |  Page is locked due to cascading protection.
     |  
     |  Method resolution order:
     |      CascadeLockedPage
     |      LockedPage
     |      PageSaveRelatedError
     |      PageRelatedError
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Data and other attributes defined here:
     |  
     |  message = 'Page %s is locked due to cascading protection.'
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from PageSaveRelatedError:
     |  
     |  args
     |      Expose args.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from PageRelatedError:
     |  
     |  __init__(self, page, message=None)
     |      Initializer.
     |      
     |      @param page: Page that caused the exception
     |      @type page: Page object
     |  
     |  getPage(self)
     |      Return the page related to the exception.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Error:
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
    
    class Category(Page)
     |  A page in the Category: namespace.
     |  
     |  Method resolution order:
     |      Category
     |      Page
     |      BasePage
     |      pywikibot.tools.UnicodeMixin
     |      pywikibot.tools.ComparableMixin
     |      builtins.object
     |  
     |  Methods defined here:
     |  
     |  __init__(self, source, title='', sort_key=None, insite=NotImplemented, sortKey='[deprecated name of sort_key]')
     |      Initializer.
     |      
     |      All parameters are the same as for Page() Initializer.
     |  
     |  articles(self, recurse=False, total=None, content=False, namespaces=None, sortby=None, reverse=False, starttime=None, endtime=None, startsort=None, endsort=None, startprefix=None, endprefix=None, startFrom='[deprecated name of startprefix]', step=NotImplemented)
     |      Yield all articles in the current category.
     |      
     |      By default, yields all *pages* in the category that are not
     |      subcategories!
     |      
     |      @param recurse: if not False or 0, also iterate articles in
     |          subcategories. If an int, limit recursion to this number of
     |          levels. (Example: recurse=1 will iterate articles in first-level
     |          subcats, but no deeper.)
     |      @type recurse: int or bool
     |      @param total: iterate no more than this number of pages in
     |          total (at all levels)
     |      @param namespaces: only yield pages in the specified namespaces
     |      @type namespaces: int or list of ints
     |      @param content: if True, retrieve the content of the current version
     |          of each page (default False)
     |      @param sortby: determines the order in which results are generated,
     |          valid values are "sortkey" (default, results ordered by category
     |          sort key) or "timestamp" (results ordered by time page was
     |          added to the category). This applies recursively.
     |      @type sortby: str
     |      @param reverse: if True, generate results in reverse order
     |          (default False)
     |      @param starttime: if provided, only generate pages added after this
     |          time; not valid unless sortby="timestamp"
     |      @type starttime: pywikibot.Timestamp
     |      @param endtime: if provided, only generate pages added before this
     |          time; not valid unless sortby="timestamp"
     |      @type endtime: pywikibot.Timestamp
     |      @param startsort: if provided, only generate pages that have a
     |          sortkey >= startsort; not valid if sortby="timestamp"
     |          (Deprecated in MW 1.24)
     |      @type startsort: str
     |      @param endsort: if provided, only generate pages that have a
     |          sortkey <= endsort; not valid if sortby="timestamp"
     |          (Deprecated in MW 1.24)
     |      @type endsort: str
     |      @param startprefix: if provided, only generate pages >= this title
     |          lexically; not valid if sortby="timestamp"; overrides "startsort"
     |          (requires MW 1.18+)
     |      @type startprefix: str
     |      @param endprefix: if provided, only generate pages < this title
     |          lexically; not valid if sortby="timestamp"; overrides "endsort"
     |          (requires MW 1.18+)
     |      @type endprefix: str
     |  
     |  articlesList(self, recurse=False)
     |      DEPRECATED: equivalent to list(self.articles(...)).
     |  
     |  aslink(self, sort_key=None, forceInterwiki=NotImplemented, textlink=NotImplemented, noInterwiki=NotImplemented, sortKey='[deprecated name of sort_key]')
     |      Return a link to place a page in this Category.
     |      
     |      Use this only to generate a "true" category link, not for interwikis
     |      or text links to category pages.
     |      
     |      @param sort_key: The sort key for the article to be placed in this
     |          Category; if omitted, default sort key is used.
     |      @type sort_key: (optional) unicode
     |  
     |  copyAndKeep(self, catname, cfd_templates, message, cfdTemplates='[deprecated name of cfd_templates]')
     |      Copy partial category page text (not contents) to a new title.
     |      
     |      Like copyTo above, except this removes a list of templates (like
     |      deletion templates) that appear in the old category text. It also
     |      removes all text between the two HTML comments BEGIN CFD TEMPLATE
     |      and END CFD TEMPLATE. (This is to deal with CFD templates that are
     |      substituted.)
     |      
     |      Returns true if copying was successful, false if target page already
     |      existed.
     |      
     |      @param catname: New category title (without namespace)
     |      @param cfd_templates: A list (or iterator) of templates to be removed
     |          from the page text
     |      @return: True if copying was successful, False if target page
     |          already existed.
     |      @rtype: bool
     |  
     |  copyTo(self, cat, message)
     |      Copy text of category page to a new page. Does not move contents.
     |      
     |      @param cat: New category title (without namespace) or Category object
     |      @type cat: unicode or Category
     |      @param message: message to use for category creation message
     |          If two %s are provided in message, will be replaced
     |          by (self.title, authorsList)
     |      @type message: unicode
     |      @return: True if copying was successful, False if target page
     |          already existed.
     |      @rtype: bool
     |  
     |  isEmptyCategory(self)
     |      Return True if category has no members (including subcategories).
     |      
     |      @rtype: bool
     |  
     |  isHiddenCategory(self)
     |      Return True if the category is hidden.
     |      
     |      @rtype: bool
     |  
     |  members(self, recurse=False, namespaces=None, total=None, content=False, step=NotImplemented)
     |      Yield all category contents (subcats, pages, and files).
     |  
     |  newest_pages(self, total=None)
     |      Return pages in a category ordered by the creation date.
     |      
     |      If two or more pages are created at the same time, the pages are
     |      returned in the order they were added to the category. The most
     |      recently added page is returned first.
     |      
     |      It only allows to return the pages ordered from newest to oldest, as it
     |      is impossible to determine the oldest page in a category without
     |      checking all pages. But it is possible to check the category in order
     |      with the newly added first and it yields all pages which were created
     |      after the currently checked page was added (and thus there is no page
     |      created after any of the cached but added before the currently
     |      checked).
     |      
     |      @param total: The total number of pages queried.
     |      @type total: int
     |      @return: A page generator of all pages in a category ordered by the
     |          creation date. From newest to oldest. Note: It currently only
     |          returns Page instances and not a subclass of it if possible. This
     |          might change so don't expect to only get Page instances.
     |      @rtype: generator
     |  
     |  subcategories(self, recurse=False, total=None, content=False, startFrom=NotImplemented, cacheResults=NotImplemented, step=NotImplemented)
     |      Iterate all subcategories of the current category.
     |      
     |      @param recurse: if not False or 0, also iterate subcategories of
     |          subcategories. If an int, limit recursion to this number of
     |          levels. (Example: recurse=1 will iterate direct subcats and
     |          first-level sub-sub-cats, but no deeper.)
     |      @type recurse: int or bool
     |      @param total: iterate no more than this number of
     |          subcategories in total (at all levels)
     |      @param content: if True, retrieve the content of the current version
     |          of each category description page (default False)
     |  
     |  subcategoriesList(self, recurse=False)
     |      DEPRECATED: Equivalent to list(self.subcategories(...)).
     |  
     |  supercategories(self)
     |      DEPRECATED: equivalent to self.categories().
     |  
     |  supercategoriesList(self)
     |      DEPRECATED: equivalent to list(self.categories(...)).
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |  
     |  categoryinfo
     |      Return a dict containing information about the category.
     |      
     |      The dict contains values for:
     |      
     |      Numbers of pages, subcategories, files, and total contents.
     |      
     |      @rtype: dict
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Page:
     |  
     |  set_redirect_target(self, target_page, create=False, force=False, keep_section=False, save=True, **kwargs)
     |      Change the page's text to point to the redirect page.
     |      
     |      @param target_page: target of the redirect, this argument is required.
     |      @type target_page: pywikibot.Page or string
     |      @param create: if true, it creates the redirect even if the page
     |          doesn't exist.
     |      @type create: bool
     |      @param force: if true, it set the redirect target even the page
     |          doesn't exist or it's not redirect.
     |      @type force: bool
     |      @param keep_section: if the old redirect links to a section
     |          and the new one doesn't it uses the old redirect's section.
     |      @type keep_section: bool
     |      @param save: if true, it saves the page immediately.
     |      @type save: bool
     |      @param kwargs: Arguments which are used for saving the page directly
     |          afterwards, like 'summary' for edit summary.
     |  
     |  templatesWithParams(self, get_redirect=NotImplemented)
     |      Return templates used on this Page.
     |      
     |      The templates are extracted by L{textlib.extract_templates_and_params},
     |      with positional arguments placed first in order, and each named
     |      argument appearing as 'name=value'.
     |      
     |      All parameter keys and values for each template are stripped of
     |      whitespace.
     |      
     |      @return: a list of tuples with one tuple for each template invocation
     |          in the page, with the template Page as the first entry and a list
     |          of parameters as the second entry.
     |      @rtype: list of (Page, list)
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Page:
     |  
     |  raw_extracted_templates
     |      Extract templates using L{textlib.extract_templates_and_params}.
     |      
     |      Disabled parts and whitespace are stripped, except for
     |      whitespace in anonymous positional arguments.
     |      
     |      This value is cached.
     |      
     |      @rtype: list of (str, OrderedDict)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from BasePage:
     |  
     |  __hash__(self)
     |      A stable identifier to be used as a key in hash-tables.
     |      
     |      This relies on the fact that the string
     |      representation of an instance can not change after the construction.
     |  
     |  __repr__(self)
     |      Return a more complete string representation.
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  applicable_protections(self)
     |      Return the protection types allowed for that page.
     |      
     |      If the page doesn't exists it only returns "create". Otherwise it
     |      returns all protection types provided by the site, except "create".
     |      It also removes "upload" if that page is not in the File namespace.
     |      
     |      It is possible, that it returns an empty set, but only if original
     |      protection types were removed.
     |      
     |      @return: set of unicode
     |      @rtype: set
     |  
     |  autoFormat(self)
     |      Return L{date.getAutoFormat} dictName and value, if any.
     |      
     |      Value can be a year, date, etc., and dictName is 'YearBC',
     |      'Year_December', or another dictionary name. Please note that two
     |      entries may have exactly the same autoFormat, but be in two
     |      different namespaces, as some sites have categories with the
     |      same names. Regular titles return (None, None).
     |  
     |  backlinks(self, follow_redirects=True, filter_redirects=None, namespaces=None, total=None, content=False, step=NotImplemented, followRedirects='[deprecated name of follow_redirects]', filterRedirects='[deprecated name of filter_redirects]')
     |      Return an iterator for pages that link to this page.
     |      
     |      @param follow_redirects: if True, also iterate pages that link to a
     |          redirect pointing to the page.
     |      @param filter_redirects: if True, only iterate redirects; if False,
     |          omit redirects; if None, do not filter
     |      @param namespaces: only iterate pages in these namespaces
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each referring page (default False)
     |  
     |  botMayEdit(self)
     |      Determine whether the active bot is allowed to edit the page.
     |      
     |      This will be True if the page doesn't contain {{bots}} or {{nobots}}
     |      or any other template from edit_restricted_templates list
     |      in x_family.py file, or it contains them and the active bot is allowed
     |      to edit this page. (This method is only useful on those sites that
     |      recognize the bot-exclusion protocol; on other sites, it will always
     |      return True.)
     |      
     |      The framework enforces this restriction by default. It is possible
     |      to override this by setting ignore_bot_templates=True in
     |      user-config.py, or using page.put(force=True).
     |      
     |      @rtype: bool
     |  
     |  canBeEdited(self)
     |      Determine whether the page may be edited.
     |      
     |      This returns True if and only if:
     |        - page is unprotected, and bot has an account for this site, or
     |        - page is protected, and bot has a sysop account for this site.
     |      
     |      @rtype: bool
     |  
     |  categories(self, with_sort_key=False, total=None, content=False, nofollow_redirects=NotImplemented, get_redirect=NotImplemented, step=NotImplemented, withSortKey='[deprecated name of with_sort_key]')
     |      Iterate categories that the article is in.
     |      
     |      @param with_sort_key: if True, include the sort key in each Category.
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each category description page (default False)
     |      @return: a generator that yields Category objects.
     |      @rtype: generator
     |  
     |  change_category(self, old_cat, new_cat, summary=None, sort_key=None, in_place=True, include=[], comment='[deprecated name of summary]', oldCat='[deprecated name of old_cat]', newCat='[deprecated name of new_cat]', sortKey='[deprecated name of sort_key]', inPlace='[deprecated name of in_place]')
     |      Remove page from oldCat and add it to newCat.
     |      
     |      @param old_cat: category to be removed
     |      @type old_cat: Category
     |      @param new_cat: category to be added, if any
     |      @type new_cat: Category or None
     |      
     |      @param summary: string to use as an edit summary
     |      
     |      @param sort_key: sortKey to use for the added category.
     |          Unused if newCat is None, or if inPlace=True
     |          If sortKey=True, the sortKey used for oldCat will be used.
     |      
     |      @param in_place: if True, change categories in place rather than
     |                    rearranging them.
     |      
     |      @param include: list of tags not to be disabled by default in relevant
     |          textlib functions, where CategoryLinks can be searched.
     |      @type include: list
     |      
     |      @return: True if page was saved changed, otherwise False.
     |      @rtype: bool
     |  
     |  clear_cache(self)
     |      Clear the cached attributes of the page.
     |  
     |  contributingUsers(self, total=None, step=NotImplemented)
     |      Deprecated; use contributors() instead.
     |      
     |      
     |      Return a set of usernames (or IPs) of users who edited this page.
     |      
     |      @param total: iterate no more than this number of revisions in total
     |      
     |      @rtype: set
     |  
     |  contributors(self, total=None, starttime=None, endtime=None, step=NotImplemented)
     |      Compile contributors of this page with edit counts.
     |      
     |      @param total: iterate no more than this number of revisions in total
     |      @param starttime: retrieve revisions starting at this Timestamp
     |      @param endtime: retrieve revisions ending at this Timestamp
     |      
     |      @return: number of edits for each username
     |      @rtype: L{collections.Counter}
     |  
     |  coordinates(self, primary_only=False)
     |      Return a list of Coordinate objects for points on the page.
     |      
     |      Uses the MediaWiki extension GeoData.
     |      
     |      @param primary_only: Only return the coordinate indicated to be primary
     |      @return: A list of Coordinate objects
     |      @rtype: list
     |  
     |  data_item(self)
     |      Convenience function to get the Wikibase item of a page.
     |      
     |      @rtype: ItemPage
     |  
     |  defaultsort(self, force=False)
     |      Extract value of the {{DEFAULTSORT:}} magic word from the page.
     |      
     |      @param force: force updating from the live site
     |      
     |      @rtype: unicode or None
     |  
     |  delete(self, reason=None, prompt=True, mark=False, quit=False, throttle=NotImplemented)
     |      Delete the page from the wiki. Requires administrator status.
     |      
     |      @param reason: The edit summary for the deletion, or rationale
     |          for deletion if requesting. If None, ask for it.
     |      @param prompt: If true, prompt user for confirmation before deleting.
     |      @param mark: If true, and user does not have sysop rights, place a
     |          speedy-deletion request on the page instead. If false, non-sysops
     |          will be asked before marking pages for deletion.
     |      @param quit: show also the quit option, when asking for confirmation.
     |  
     |  editTime(self)
     |      Return timestamp of last revision to page.
     |      
     |      @rtype: pywikibot.Timestamp
     |  
     |  embeddedin(self, filter_redirects=None, namespaces=None, total=None, content=False, step=NotImplemented)
     |      Return an iterator for pages that embed this page as a template.
     |      
     |      @param filter_redirects: if True, only iterate redirects; if False,
     |          omit redirects; if None, do not filter
     |      @param namespaces: only iterate pages in these namespaces
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each embedding page (default False)
     |  
     |  encoding(self)
     |      DEPRECATED: use self.site.encoding instead.
     |  
     |  exists(self)
     |      Return True if page exists on the wiki, even if it's a redirect.
     |      
     |      If the title includes a section, return False if this section isn't
     |      found.
     |      
     |      @rtype: bool
     |  
     |  expand_text(self, force=False, includecomments=False, refresh='[deprecated name of force]')
     |      Return the page text with all templates and parser words expanded.
     |      
     |      @param force: force updating from the live site
     |      @param includecomments: Also strip comments if includecomments
     |          parameter is not True.
     |      
     |      @rtype unicode or None
     |  
     |  extlinks(self, total=None, step=NotImplemented)
     |      Iterate all external URLs (not interwiki links) from this page.
     |      
     |      @param total: iterate no more than this number of pages in total
     |      @return: a generator that yields unicode objects containing URLs.
     |      @rtype: generator
     |  
     |  fullVersionHistory(self, reverse=False, total=None, reverseOrder='[deprecated name of reverse]', rollback=NotImplemented, step=NotImplemented)
     |      Deprecated; use Page.revisions(content=True) instead.
     |      
     |      Iterate previous versions including wikitext.
     |      
     |              Takes same arguments as getVersionHistory.
     |  
     |  full_url(self)
     |      Return the full URL.
     |  
     |  get(self, force=False, get_redirect=False, sysop=False, throttle=NotImplemented, change_edit_time=NotImplemented, expandtemplates=NotImplemented)
     |      Return the wiki-text of the page.
     |      
     |      This will retrieve the page from the server if it has not been
     |      retrieved yet, or if force is True. This can raise the following
     |      exceptions that should be caught by the calling code:
     |      
     |      @exception NoPage:         The page does not exist
     |      @exception IsRedirectPage: The page is a redirect. The argument of the
     |                                 exception is the title of the page it
     |                                 redirects to.
     |      @exception SectionError:   The section does not exist on a page with
     |                                 a # link
     |      
     |      @param force:           reload all page attributes, including errors.
     |      @param get_redirect:    return the redirect text, do not follow the
     |                              redirect, do not raise an exception.
     |      @param sysop:           if the user has a sysop account, use it to
     |                              retrieve this page
     |      
     |      @rtype: unicode
     |  
     |  getCategoryRedirectTarget(self)
     |      If this is a category redirect, return the target category title.
     |      
     |      @rtype: Category
     |  
     |  getCreator(self)
     |      Get the first revision of the page.
     |      
     |      DEPRECATED: Use Page.oldest_revision.
     |      
     |      @rtype: tuple(username, Timestamp)
     |  
     |  getDeletedRevision(self, timestamp, content=False, retrieveText='[deprecated name of content]')
     |      Return a particular deleted revision by timestamp.
     |      
     |      @return: a list of [date, editor, comment, text, restoration
     |          marker]. text will be None, unless content is True (or has
     |          been retrieved earlier). If timestamp is not found, returns
     |          None.
     |      @rtype: list
     |  
     |  getLatestEditors(self, total=1, limit='[deprecated name of total]')
     |      Get a list of revision informations of the last total edits.
     |      
     |      DEPRECATED: Use Page.revisions.
     |      
     |      @param total: iterate no more than this number of revisions in total
     |      @return: list of dict, each dict containing the username and Timestamp
     |      @rtype: list
     |  
     |  getMovedTarget(self)
     |      Return a Page object for the target this Page was moved to.
     |      
     |      DEPRECATED: Use Page.moved_target().
     |      
     |      If this page was not moved, it will raise a NoPage exception.
     |      This method also works if the source was already deleted.
     |      
     |      @rtype: pywikibot.Page
     |      @raises NoPage: this page was not moved
     |  
     |  getOldVersion(self, oldid, force=False, get_redirect=False, sysop=False, throttle=NotImplemented, change_edit_time=NotImplemented)
     |      Return text of an old revision of this page; same options as get().
     |      
     |      @param oldid: The revid of the revision desired.
     |      @rtype: unicode
     |  
     |  getRedirectTarget(self)
     |      Return a Page object for the target this Page redirects to.
     |      
     |      If this page is not a redirect page, will raise an IsNotRedirectPage
     |      exception. This method also can raise a NoPage exception.
     |      
     |      @rtype: pywikibot.Page
     |  
     |  getReferences(self, follow_redirects=True, with_template_inclusion=True, only_template_inclusion=False, filter_redirects=False, namespaces=None, total=None, content=False, step=NotImplemented, withTemplateInclusion='[deprecated name of with_template_inclusion]', onlyTemplateInclusion='[deprecated name of only_template_inclusion]', redirectsOnly='[deprecated name of filter_redirects]')
     |      Return an iterator all pages that refer to or embed the page.
     |      
     |      If you need a full list of referring pages, use
     |      C{pages = list(s.getReferences())}
     |      
     |      @param follow_redirects: if True, also iterate pages that link to a
     |          redirect pointing to the page.
     |      @param with_template_inclusion: if True, also iterate pages where self
     |          is used as a template.
     |      @param only_template_inclusion: if True, only iterate pages where self
     |          is used as a template.
     |      @param filter_redirects: if True, only iterate redirects to self.
     |      @param namespaces: only iterate pages in these namespaces
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each referring page (default False)
     |  
     |  getRestrictions(self)
     |      DEPRECATED. Use self.protection() instead.
     |  
     |  getTemplates(self, tllimit=NotImplemented)
     |      DEPRECATED. Use templates().
     |  
     |  getVersionHistory(self, reverse=False, total=None, forceReload=NotImplemented, revCount='[deprecated name of total]', step=NotImplemented, getAll=NotImplemented, reverseOrder='[deprecated name of reverse]')
     |      Deprecated; use Page.revisions() instead.
     |      
     |      
     |      Load the version history page and return history information.
     |      
     |      Return value is a list of tuples, where each tuple represents one
     |      edit and is built of revision id, edit date/time, user name, and
     |      edit summary. Starts with the most current revision, unless
     |      reverse is True.
     |      
     |      @param total: iterate no more than this number of revisions in total
     |  
     |  getVersionHistoryTable(self, reverse=False, total=None, forceReload=NotImplemented, reverseOrder='[deprecated name of reverse]', step=NotImplemented)
     |      Return the version history as a wiki table.
     |  
     |  imagelinks(self, total=None, content=False, followRedirects=NotImplemented, loose=NotImplemented, step=NotImplemented)
     |      Iterate FilePage objects for images displayed on this Page.
     |      
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each image description page (default False)
     |      @return: a generator that yields FilePage objects.
     |  
     |  interwiki(self, expand=True)
     |      Iterate interwiki links in the page text, excluding language links.
     |      
     |      @param expand: if True (default), include interwiki links found in
     |          templates transcluded onto this page; if False, only iterate
     |          interwiki links found in this page's own wikitext
     |      @type expand: bool
     |      
     |      @return: a generator that yields Link objects
     |      @rtype: generator
     |  
     |  isAutoTitle(self)
     |      Return True if title of this Page is in the autoFormat dict.
     |  
     |  isCategory(self)
     |      DEPRECATED: use is_categorypage instead.
     |  
     |  isCategoryRedirect(self)
     |      Return True if this is a category redirect page, False otherwise.
     |      
     |      @rtype: bool
     |  
     |  isDisambig(self)
     |      Return True if this is a disambiguation page, False otherwise.
     |      
     |      By default, it uses the the Disambiguator extension's result. The
     |      identification relies on the presense of the __DISAMBIG__ magic word
     |      which may also be transcluded.
     |      
     |      If the Disambiguator extension isn't activated for the given site,
     |      the identification relies on the presence of specific templates.
     |      First load a list of template names from the Family file;
     |      if the value in the Family file is None or no entry was made, look for
     |      the list on [[MediaWiki:Disambiguationspage]]. If this page does not
     |      exist, take the MediaWiki message. 'Template:Disambig' is always
     |      assumed to be default, and will be appended regardless of its
     |      existence.
     |      
     |      @rtype: bool
     |  
     |  isEmpty(self)
     |      Deprecated; use interwiki.page_empty_check(page) instead.
     |      
     |      
     |      Return True if the page text has less than 4 characters.
     |      
     |      Character count ignores language links and category links.
     |      Can raise the same exceptions as get().
     |      
     |      @rtype: bool
     |  
     |  isFlowPage(self)
     |      DEPRECATED: use self.is_flow_page instead.
     |  
     |  isImage(self)
     |      DEPRECATED: use is_filepage instead.
     |  
     |  isIpEdit(self)
     |      Return True if last editor was unregistered.
     |      
     |      @rtype: bool
     |  
     |  isRedirectPage(self)
     |      Return True if this is a redirect, False if not or not existing.
     |  
     |  isStaticRedirect(self, force=False)
     |      Determine whether the page is a static redirect.
     |      
     |      A static redirect must be a valid redirect, and contain the magic word
     |      __STATICREDIRECT__.
     |      
     |      @param force: Bypass local caching
     |      @type force: bool
     |      
     |      @rtype: bool
     |  
     |  isTalkPage(self)
     |      Return True if this page is in any talk namespace.
     |  
     |  is_categorypage(self)
     |      Return True if the page is a Category, False otherwise.
     |  
     |  is_filepage(self)
     |      Return True if this is an file description page, False otherwise.
     |  
     |  is_flow_page(self)
     |      Whether a page is a Flow page.
     |      
     |      @rtype: bool
     |  
     |  iterlanglinks(self, total=None, include_obsolete=False, step=NotImplemented)
     |      Iterate all inter-language links on this page.
     |      
     |      @param total: iterate no more than this number of pages in total
     |      @param include_obsolete: if true, yield even Link object whose site
     |                               is obsolete
     |      @type include_obsolete: bool
     |      
     |      @return: a generator that yields Link objects.
     |      @rtype: generator
     |  
     |  itertemplates(self, total=None, content=False, step=NotImplemented)
     |      Iterate Page objects for templates used on this Page.
     |      
     |      Template parameters are ignored. This method only returns embedded
     |      templates, not template pages that happen to be referenced through
     |      a normal link.
     |      
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each template (default False)
     |      @param content: bool
     |  
     |  langlinks(self, include_obsolete=False)
     |      Return a list of all inter-language Links on this page.
     |      
     |      @param include_obsolete: if true, return even Link objects whose site
     |                               is obsolete
     |      @type include_obsolete: bool
     |      
     |      @return: list of Link objects.
     |      @rtype: list
     |  
     |  lastNonBotUser(self)
     |      Return name or IP address of last human/non-bot user to edit page.
     |      
     |      Determine the most recent human editor out of the last revisions.
     |      If it was not able to retrieve a human user, returns None.
     |      
     |      If the edit was done by a bot which is no longer flagged as 'bot',
     |      i.e. which is not returned by Site.botusers(), it will be returned
     |      as a non-bot edit.
     |      
     |      @rtype: unicode
     |  
     |  latestRevision(self)
     |      Deprecated; use latest_revision_id instead.
     |      
     |      Return the current revision id for this page.
     |  
     |  linkedPages(self, namespaces=None, total=None, content=False, step=NotImplemented)
     |      Iterate Pages that this Page links to.
     |      
     |      Only returns pages from "normal" internal links. Image and category
     |      links are omitted unless prefixed with ":". Embedded templates are
     |      omitted (but links within them are returned). All interwiki and
     |      external links are omitted.
     |      
     |      @param namespaces: only iterate links in these namespaces
     |      @param namespaces: int, or list of ints
     |      @param total: iterate no more than this number of pages in total
     |      @type total: int
     |      @param content: if True, retrieve the content of the current version
     |          of each linked page (default False)
     |      @type content: bool
     |      
     |      @return: a generator that yields Page objects.
     |      @rtype: generator
     |  
     |  loadDeletedRevisions(self, total=None, step=NotImplemented)
     |      Retrieve deleted revisions for this Page.
     |      
     |      Stores all revisions' timestamps, dates, editors and comments in
     |      self._deletedRevs attribute.
     |      
     |      @return: iterator of timestamps (which can be used to retrieve
     |          revisions later on).
     |      @rtype: generator
     |  
     |  markDeletedRevision(self, timestamp, undelete=True)
     |      Mark the revision identified by timestamp for undeletion.
     |      
     |      @param undelete: if False, mark the revision to remain deleted.
     |      @type undelete: bool
     |  
     |  merge_history(self, dest, timestamp=None, reason=None)
     |      Merge revisions from this page into another page.
     |      
     |      See L{APISite.merge_history} for details.
     |      
     |      @param dest: Destination page to which revisions will be merged
     |      @type dest: pywikibot.Page
     |      @param timestamp: Revisions from this page dating up to this timestamp
     |          will be merged into the destination page (if not given or False,
     |          all revisions will be merged)
     |      @type timestamp: pywikibot.Timestamp
     |      @param reason: Optional reason for the history merge
     |      @type reason: str
     |  
     |  move(self, newtitle, reason=None, movetalk=True, sysop=False, noredirect=False, throttle=NotImplemented, deleteAndMove='[deprecated name of noredirect]', movetalkpage='[deprecated name of movetalk]')
     |      Move this page to a new title.
     |      
     |      @param newtitle: The new page title.
     |      @param reason: The edit summary for the move.
     |      @param movetalk: If true, move this page's talk page (if it exists)
     |      @param sysop: Try to move using sysop account, if available
     |      @param noredirect: if move succeeds, delete the old page
     |          (usually requires sysop privileges, depending on wiki settings)
     |  
     |  moved_target(self)
     |      Return a Page object for the target this Page was moved to.
     |      
     |      If this page was not moved, it will raise a NoMoveTarget exception.
     |      This method also works if the source was already deleted.
     |      
     |      @rtype: pywikibot.Page
     |      @raises NoMoveTarget: this page was not moved
     |  
     |  namespace(self)
     |      Return the number of the namespace of the page.
     |      
     |      @return: namespace of the page
     |      @rtype: Namespace
     |  
     |  pageAPInfo(self)
     |      Deprecated; use latest_revision_id instead.
     |      
     |      Return the current revision id for this page.
     |  
     |  page_image(self)
     |      Return the most appropriate image on the page.
     |      
     |      Uses the MediaWiki extension PageImages.
     |      
     |      @return: A FilePage object
     |      @rtype: FilePage
     |  
     |  permalink(self, oldid=None, percent_encoded=True, with_protocol=False)
     |      Return the permalink URL of an old revision of this page.
     |      
     |      @param oldid: The revid of the revision desired.
     |      @param percent_encoded: if false, the link will be provided
     |          without title uncoded.
     |      @param with_protocol: if true, http or https prefixes will be
     |          included before the double slash.
     |      @rtype: unicode
     |  
     |  preloadText(self)
     |      The text returned by EditFormPreloadText.
     |      
     |      See API module "info".
     |      
     |      Application: on Wikisource wikis, text can be preloaded even if
     |      a page does not exist, if an Index page is present.
     |      
     |      @rtype: unicode
     |  
     |  previousRevision(self)
     |      Return the revision id for the previous revision.
     |      
     |      DEPRECATED: Use latest_revision.parent_id instead.
     |      
     |      @rtype: long
     |      
     |      @raise AssertionError: Use on MediaWiki prior to v1.16.
     |  
     |  properties(self, force=False)
     |      Return the properties of the page.
     |      
     |      @param force: force updating from the live site
     |      
     |      @rtype: dict
     |  
     |  protect(self, edit=False, move=False, create=None, upload=None, unprotect=False, reason=None, prompt=None, protections=None, **kwargs, throttle=NotImplemented)
     |      Protect or unprotect a wiki page. Requires administrator status.
     |      
     |      Valid protection levels (in MediaWiki 1.12) are '' (equivalent to
     |      'none'), 'autoconfirmed', and 'sysop'. If None is given, however,
     |      that protection will be skipped.
     |      
     |      @param protections: A dict mapping type of protection to protection
     |          level of that type.
     |      @type protections: dict
     |      @param reason: Reason for the action
     |      @type reason: basestring
     |      @param prompt: Whether to ask user for confirmation (deprecated).
     |                     Defaults to protections is None
     |      @type prompt: bool
     |  
     |  protection(self)
     |      Return a dictionary reflecting page protections.
     |      
     |      @rtype: dict
     |  
     |  purge(self, **kwargs)
     |      Purge the server's cache for this page.
     |      
     |      @rtype: bool
     |  
     |  put(self, newtext, summary=None, watch=None, minor=True, botflag=None, force=False, asynchronous=False, callback=None, **kwargs, comment='[deprecated name of summary]', watchArticle='[deprecated name of watch]', minorEdit='[deprecated name of minor]', async='[deprecated name of asynchronous]')
     |      Save the page with the contents of the first argument as the text.
     |      
     |      This method is maintained primarily for backwards-compatibility.
     |      For new code, using Page.save() is preferred. See save() method
     |      docs for all parameters not listed here.
     |      
     |      @param newtext: The complete text of the revised page.
     |      @type newtext: unicode
     |  
     |  put_async(self, newtext, summary=None, watch=None, minor=True, botflag=None, force=False, callback=None, **kwargs, comment='[deprecated name of summary]', watchArticle='[deprecated name of watch]', minorEdit='[deprecated name of minor]')
     |      Deprecated; use put(asynchronous=True) or save(asynchronous=True) instead.
     |      
     |      
     |      Put page on queue to be saved to wiki asynchronously.
     |      
     |      Asynchronous version of put (takes the same arguments), which places
     |      pages on a queue to be saved by a daemon thread. All arguments are
     |      the same as for .put(). This version is maintained solely for
     |      backwards-compatibility.
     |  
     |  revision_count(self, contributors=None)
     |      Determine number of edits from a set of contributors.
     |      
     |      @param contributors: contributor usernames
     |      @type contributors: iterable of str
     |      
     |      @return: number of edits for all provided usernames
     |      @rtype: int
     |  
     |  revisions(self, reverse=False, total=None, content=False, rollback=False, starttime=None, endtime=None, getText='[deprecated name of content]', reverseOrder='[deprecated name of reverse]', step=NotImplemented)
     |      Generator which loads the version history as Revision instances.
     |  
     |  save(self, summary=None, watch=None, minor=True, botflag=None, force=False, asynchronous=False, callback=None, apply_cosmetic_changes=None, quiet=False, **kwargs, comment='[deprecated name of summary]', sysop=NotImplemented, async='[deprecated name of asynchronous]')
     |      Save the current contents of page's text to the wiki.
     |      
     |      @param summary: The edit summary for the modification (optional, but
     |          most wikis strongly encourage its use)
     |      @type summary: unicode
     |      @param watch: Specify how the watchlist is affected by this edit, set
     |          to one of "watch", "unwatch", "preferences", "nochange":
     |          * watch: add the page to the watchlist
     |          * unwatch: remove the page from the watchlist
     |          * preferences: use the preference settings (Default)
     |          * nochange: don't change the watchlist
     |          If None (default), follow bot account's default settings
     |      
     |          For backward compatibility watch parameter may also be boolean:
     |          if True, add or if False, remove this Page to/from bot
     |          user's watchlist.
     |      @type watch: string, bool (deprecated) or None
     |      @param minor: if True, mark this edit as minor
     |      @type minor: bool
     |      @param botflag: if True, mark this edit as made by a bot (default:
     |          True if user has bot status, False if not)
     |      @param force: if True, ignore botMayEdit() setting
     |      @type force: bool
     |      @param asynchronous: if True, launch a separate thread to save
     |          asynchronously
     |      @param callback: a callable object that will be called after the
     |          page put operation. This object must take two arguments: (1) a
     |          Page object, and (2) an exception instance, which will be None
     |          if the page was saved successfully. The callback is intended for
     |          use by bots that need to keep track of which saves were
     |          successful.
     |      @param apply_cosmetic_changes: Overwrites the cosmetic_changes
     |          configuration value to this value unless it's None.
     |      @type apply_cosmetic_changes: bool or None
     |      @param quiet: enable/disable successful save operation message;
     |          defaults to False.
     |          In asynchronous mode, if True, it is up to the calling bot to
     |          manage the output e.g. via callback.
     |      @type quiet: bool
     |  
     |  section(self)
     |      Return the name of the section this Page refers to.
     |      
     |      The section is the part of the title following a '#' character, if
     |      any. If no section is present, return None.
     |      
     |      @rtype: unicode
     |  
     |  sectionFreeTitle(self, underscore=False)
     |      DEPRECATED: use self.title(with_section=False) instead.
     |  
     |  templates(self, content=False, get_redirect=NotImplemented)
     |      Return a list of Page objects for templates used on this Page.
     |      
     |      Template parameters are ignored. This method only returns embedded
     |      templates, not template pages that happen to be referenced through
     |      a normal link.
     |      
     |      @param content: if True, retrieve the content of the current version
     |          of each template (default False)
     |      @param content: bool
     |  
     |  title(self, underscore=False, with_ns=True, with_section=True, as_url=False, as_link=False, allow_interwiki=True, force_interwiki=False, textlink=False, as_filename=False, insite=None, without_brackets=False, decode=NotImplemented, savetitle='[deprecated name of as_url]', withNamespace='[deprecated name of with_ns]', withSection='[deprecated name of with_section]', forceInterwiki='[deprecated name of force_interwiki]', asUrl='[deprecated name of as_url]', asLink='[deprecated name of as_link]', allowInterwiki='[deprecated name of allow_interwiki]')
     |      Return the title of this Page, as a Unicode string.
     |      
     |      @param underscore: (not used with as_link) if true, replace all ' '
     |          characters with '_'
     |      @param with_ns: if false, omit the namespace prefix. If this
     |          option is false and used together with as_link return a labeled
     |          link like [[link|label]]
     |      @param with_section: if false, omit the section
     |      @param as_url: (not used with as_link) if true, quote title as if in an
     |          URL
     |      @param as_link: if true, return the title in the form of a wikilink
     |      @param allow_interwiki: (only used if as_link is true) if true, format
     |          the link as an interwiki link if necessary
     |      @param force_interwiki: (only used if as_link is true) if true, always
     |          format the link as an interwiki link
     |      @param textlink: (only used if as_link is true) if true, place a ':'
     |          before Category: and Image: links
     |      @param as_filename: (not used with as_link) if true, replace any
     |          characters that are unsafe in filenames
     |      @param insite: (only used if as_link is true) a site object where the
     |          title is to be shown. default is the current family/lang given by
     |          -family and -lang option i.e. config.family and config.mylang
     |      @param without_brackets: (cannot be used with as_link) if true, remove
     |          the last pair of brackets(usually removes disambiguation brackets).
     |      @rtype: unicode
     |  
     |  titleForFilename(self)
     |      DEPRECATED: use self.title(as_filename=True) instead.
     |  
     |  titleWithoutNamespace(self, underscore=False)
     |      DEPRECATED: use self.title(with_ns=False) instead.
     |  
     |  toggleTalkPage(self)
     |      Return other member of the article-talk page pair for this Page.
     |      
     |      If self is a talk page, returns the associated content page;
     |      otherwise, returns the associated talk page. The returned page need
     |      not actually exist on the wiki.
     |      
     |      @return: Page or None if self is a special page.
     |      @rtype: Page or None
     |  
     |  touch(self, callback=None, botflag=False, **kwargs)
     |      Make a touch edit for this page.
     |      
     |      See save() method docs for all parameters.
     |      The following parameters will be overridden by this method:
     |      - summary, watch, minor, force, asynchronous
     |      
     |      Parameter botflag is False by default.
     |      
     |      minor and botflag parameters are set to False which prevents hiding
     |      the edit when it becomes a real edit due to a bug.
     |  
     |  undelete(self, reason=None, comment='[deprecated name of reason]', throttle=NotImplemented)
     |      Undelete revisions based on the markers set by previous calls.
     |      
     |      If no calls have been made since loadDeletedRevisions(), everything
     |      will be restored.
     |      
     |      Simplest case::
     |      
     |          Page(...).undelete('This will restore all revisions')
     |      
     |      More complex::
     |      
     |          pg = Page(...)
     |          revs = pg.loadDeletedRevisions()
     |          for rev in revs:
     |              if ... #decide whether to undelete a revision
     |                  pg.markDeletedRevision(rev) #mark for undeletion
     |          pg.undelete('This will restore only selected revisions.')
     |      
     |      @param reason: Reason for the action.
     |      @type reason: basestring
     |  
     |  urlname(self)
     |      Return the Page title encoded for use in an URL.
     |      
     |      DEPRECATED: use self.title(as_url=True) instead.
     |  
     |  userName(self)
     |      Return name or IP address of last user to edit page.
     |      
     |      @rtype: unicode
     |  
     |  version(self)
     |      Return MediaWiki version number of the page site.
     |      
     |      This is needed to use @need_version() decorator for methods of
     |      Page objects.
     |  
     |  watch(self, unwatch=False)
     |      Add or remove this page to/from bot account's watchlist.
     |      
     |      @param unwatch: True to unwatch, False (default) to watch.
     |      @type unwatch: bool
     |      
     |      @return: True if successful, False otherwise.
     |      @rtype: bool
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from BasePage:
     |  
     |  content_model
     |      Return the content model for this page.
     |      
     |      If it cannot be reliably determined via the API,
     |      None is returned.
     |  
     |  data_repository
     |      Return the Site object for the data repository.
     |  
     |  depth
     |      Return the depth/subpage level of the page.
     |  
     |  image_repository
     |      Return the Site object for the image repository.
     |  
     |  latest_revision
     |      Return the current revision for this page.
     |  
     |  latest_revision_id
     |      Return the current revision id for this page.
     |  
     |  oldest_revision
     |      Return the first revision of this page.
     |      
     |      @rtype: L{Revision}
     |  
     |  pageid
     |      Return pageid of the page.
     |      
     |      @return: pageid or 0 if page does not exist
     |      @rtype: int
     |  
     |  previous_revision_id
     |      Deprecated; use latest_revision.parent_id (0 instead of -1 when no parent) instead.
     |      
     |      
     |      Return the revision id for the previous revision of this Page.
     |      
     |      If the page has only one revision, it shall return -1.
     |      
     |      @rtype: long
     |      
     |      @raise AssertionError: Use on MediaWiki prior to v1.16.
     |  
     |  site
     |      Return the Site object for the wiki on which this Page resides.
     |      
     |      @rtype: pywikibot.Site
     |  
     |  text
     |      Return the current (edited) wikitext, loading it if necessary.
     |      
     |      @return: text of the page
     |      @rtype: unicode
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.ComparableMixin:
     |  
     |  __eq__(self, other)
     |      Compare if self is equal to other.
     |  
     |  __ge__(self, other)
     |      Compare if self is greater equals other.
     |  
     |  __gt__(self, other)
     |      Compare if self is greater than other.
     |  
     |  __le__(self, other)
     |      Compare if self is less equals other.
     |  
     |  __lt__(self, other)
     |      Compare if self is less than other.
     |  
     |  __ne__(self, other)
     |      Compare if self is not equal to other.
    
    class CircularRedirect(PageRelatedError)
     |  Page is a circular redirect.
     |  
     |  Exception argument is the redirect target; this may be the same title
     |  as this page or a different title (in which case the target page directly
     |  or indirectly redirects back to this one)
     |  
     |  Method resolution order:
     |      CircularRedirect
     |      PageRelatedError
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Data and other attributes defined here:
     |  
     |  message = 'Page %s is a circular redirect.'
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from PageRelatedError:
     |  
     |  __init__(self, page, message=None)
     |      Initializer.
     |      
     |      @param page: Page that caused the exception
     |      @type page: Page object
     |  
     |  getPage(self)
     |      Return the page related to the exception.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Error:
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
     |  
     |  args
    
    class Claim(Property)
     |  A Claim on a Wikibase entity.
     |  
     |  Claims are standard claims as well as references and qualifiers.
     |  
     |  Method resolution order:
     |      Claim
     |      Property
     |      builtins.object
     |  
     |  Methods defined here:
     |  
     |  __eq__(self, other)
     |      Return self==value.
     |  
     |  __init__(self, site, pid, snak=None, hash=None, is_reference=False, is_qualifier=False, **kwargs, isReference='[deprecated name of is_reference]', isQualifier='[deprecated name of is_qualifier]')
     |      Initializer.
     |      
     |      Defined by the "snak" value, supplemented by site + pid
     |      
     |      @param site: repository the claim is on
     |      @type site: pywikibot.site.DataSite
     |      @param pid: property id, with "P" prefix
     |      @param snak: snak identifier for claim
     |      @param hash: hash identifier for references
     |      @param is_reference: whether specified claim is a reference
     |      @param is_qualifier: whether specified claim is a qualifier
     |  
     |  __ne__(self, other)
     |      Return self!=value.
     |  
     |  __repr__(self)
     |      Return the representation string.
     |  
     |  addQualifier(self, qualifier, **kwargs)
     |      Add the given qualifier.
     |      
     |      @param qualifier: the qualifier to add
     |      @type qualifier: Claim
     |  
     |  addSource(self, claim, **kwargs)
     |      Add the claim as a source.
     |      
     |      @param claim: the claim to add
     |      @type claim: pywikibot.Claim
     |  
     |  addSources(self, claims, **kwargs)
     |      Add the claims as one source.
     |      
     |      @param claims: the claims to add
     |      @type claims: list of pywikibot.Claim
     |  
     |  changeRank(self, rank, **kwargs)
     |      Change the rank of the Claim and save.
     |  
     |  changeSnakType(self, value=None, **kwargs)
     |      Save the new snak value.
     |      
     |      TODO: Is this function really needed?
     |  
     |  changeTarget(self, value=None, snaktype='value', **kwargs)
     |      Set the target value in the data repository.
     |      
     |      @param value: The new target value.
     |      @type value: object
     |      @param snaktype: The new snak type.
     |      @type snaktype: str ('value', 'somevalue', or 'novalue')
     |  
     |  getRank(self)
     |      Return the rank of the Claim.
     |  
     |  getSnakType(self)
     |      Return the type of snak.
     |      
     |      @return: str ('value', 'somevalue' or 'novalue')
     |      @rtype: unicode
     |  
     |  getSources(self)
     |      Return a list of sources, each being a list of Claims.
     |      
     |      @rtype: list
     |  
     |  getTarget(self)
     |      Return the target value of this Claim.
     |      
     |      None is returned if no target is set
     |      
     |      @return: object
     |  
     |  has_qualifier(self, qualifier_id, target)
     |      Check whether Claim contains specified qualifier.
     |      
     |      @param qualifier_id: id of the qualifier
     |      @type qualifier_id: str
     |      @param target: qualifier target to check presence of
     |      @return: true if the qualifier was found, false otherwise
     |      @rtype: bool
     |  
     |  removeQualifier(self, qualifier, **kwargs)
     |      Remove the qualifier. Call removeQualifiers().
     |      
     |      @param qualifier: the qualifier to remove
     |      @type qualifier: Claim
     |  
     |  removeQualifiers(self, qualifiers, **kwargs)
     |      Remove the qualifiers.
     |      
     |      @param qualifiers: the qualifiers to remove
     |      @type qualifiers: list Claim
     |  
     |  removeSource(self, source, **kwargs)
     |      Remove the source. Call removeSources().
     |      
     |      @param source: the source to remove
     |      @type source: pywikibot.Claim
     |  
     |  removeSources(self, sources, **kwargs)
     |      Remove the sources.
     |      
     |      @param sources: the sources to remove
     |      @type sources: list of pywikibot.Claim
     |  
     |  setRank(self, rank)
     |      Set the rank of the Claim.
     |  
     |  setSnakType(self, value)
     |      Set the type of snak.
     |      
     |      @param value: Type of snak
     |      @type value: str ('value', 'somevalue', or 'novalue')
     |  
     |  setTarget(self, value)
     |      Set the target value in the local object.
     |      
     |      @param value: The new target value.
     |      @type value: object
     |      
     |      @exception ValueError: if value is not of the type
     |          required for the Claim type.
     |  
     |  target_equals(self, value)
     |      Check whether the Claim's target is equal to specified value.
     |      
     |      The function checks for:
     |      
     |      - WikibasePage ID equality
     |      - WbTime year equality
     |      - Coordinate equality, regarding precision
     |      - WbMonolingualText text equality
     |      - direct equality
     |      
     |      @param value: the value to compare with
     |      @return: true if the Claim's target is equal to the value provided,
     |          false otherwise
     |      @rtype: bool
     |  
     |  toJSON(self)
     |      Create dict suitable for the MediaWiki API.
     |      
     |      @rtype: dict
     |  
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |  
     |  fromJSON(site, data) from builtins.type
     |      Create a claim object from JSON returned in the API call.
     |      
     |      @param data: JSON containing claim data
     |      @type data: dict
     |      
     |      @rtype: Claim
     |  
     |  qualifierFromJSON(site, data) from builtins.type
     |      Create a Claim for a qualifier from JSON.
     |      
     |      Qualifier objects are represented a bit
     |      differently like references, but I'm not
     |      sure if this even requires it's own function.
     |      
     |      @rtype: Claim
     |  
     |  referenceFromJSON(site, data) from builtins.type
     |      Create a dict of claims from reference JSON returned in the API call.
     |      
     |      Reference objects are represented a
     |      bit differently, and require some
     |      more handling.
     |      
     |      @rtype: dict
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |  
     |  SNAK_TYPES = ('value', 'somevalue', 'novalue')
     |  
     |  TARGET_CONVERTER = {'commonsMedia': <function Claim.<lambda>>, 'geo-sh...
     |  
     |  __hash__ = None
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Property:
     |  
     |  getID(self, numeric=False)
     |      Get the identifier of this property.
     |      
     |      @param numeric: Strip the first letter and return an int
     |      @type numeric: bool
     |  
     |  getType(self)
     |      Deprecated; use Property.type instead.
     |      
     |      
     |      Return the type of this property.
     |      
     |      It returns 'globecoordinate' for type 'globe-coordinate'
     |      in order to be backwards compatible. See
     |      https://gerrit.wikimedia.org/r/#/c/135405/ for background.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Property:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  type
     |      Return the type of this property.
     |      
     |      @rtype: str
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes inherited from Property:
     |  
     |  types = {'commonsMedia': <class 'pywikibot.page.FilePage'>, 'external-...
     |  
     |  value_types = {'commonsMedia': 'string', 'external-id': 'string', 'geo...
    
    class CoordinateGlobeUnknownException(WikiBaseError, builtins.NotImplementedError)
     |  This globe is not implemented yet in either WikiBase or pywikibot.
     |  
     |  Method resolution order:
     |      CoordinateGlobeUnknownException
     |      WikiBaseError
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.NotImplementedError
     |      builtins.RuntimeError
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Methods inherited from Error:
     |  
     |  __init__(self, arg)
     |      Initializer.
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.NotImplementedError:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
     |  
     |  args
    
    class CurrentPageBot(BaseBot)
     |  A bot which automatically sets 'current_page' on each treat().
     |  
     |  This class should be always used together with either the MultipleSitesBot
     |  or SingleSiteBot class as there is no site management in this class.
     |  
     |  Method resolution order:
     |      CurrentPageBot
     |      BaseBot
     |      OptionHandler
     |      builtins.object
     |  
     |  Methods defined here:
     |  
     |  put_current(self, new_text, ignore_save_related_errors=None, ignore_server_errors=None, **kwargs, comment='[deprecated name of summary]')
     |      Call L{Bot.userPut} but use the current page.
     |      
     |      It compares the new_text to the current page text.
     |      
     |      @param new_text: The new text
     |      @type new_text: basestring
     |      @param ignore_save_related_errors: Ignore save related errors and
     |          automatically print a message. If None uses this instances default.
     |      @type ignore_save_related_errors: bool or None
     |      @param ignore_server_errors: Ignore server errors and automatically
     |          print a message. If None uses this instances default.
     |      @type ignore_server_errors: bool or None
     |      @param kwargs: Additional parameters directly given to L{Bot.userPut}.
     |      @return: whether the page was saved successfully
     |      @rtype: bool
     |  
     |  treat(self, page)
     |      Set page to current page and treat that page.
     |  
     |  treat_page(self)
     |      Process one page (Abstract method).
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |  
     |  ignore_save_related_errors = True
     |  
     |  ignore_server_errors = False
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from BaseBot:
     |  
     |  __init__(self, **kwargs)
     |      Only accept options defined in availableOptions.
     |      
     |      @param kwargs: bot options
     |  
     |  exit(self)
     |      Cleanup and exit processing.
     |      
     |      Invoked when Bot.run() is finished.
     |      Prints treat and save counters and informs whether the script
     |      terminated gracefully or was halted by exception.
     |      May be overridden by subclasses.
     |  
     |  init_page(self, item)
     |      Initialize a generator item before treating.
     |      
     |      Ensure that the result of init_page is always a pywikibot.Page object
     |      even when the generator returns something else.
     |      
     |      Also used to set the arrange the current site. This is called before
     |      skip_page and treat.
     |      
     |      @param item: any item from self.generator
     |      @return: return the page object to be processed further or None if
     |          page is a pywikibot.Page already and superclass' init_page isn't
     |          to be called
     |      @rtype: pywikibot.Page or None
     |  
     |  quit(self)
     |      Cleanup and quit processing.
     |  
     |  run(self)
     |      Process all pages in generator.
     |      
     |      @raise AssertionError: "page" is not a pywikibot.page.BasePage object
     |  
     |  setup(self)
     |      Some inital setup before run operation starts.
     |      
     |      This can be used for reading huge parts from life wiki or file
     |      operation which is more than just initialize the instance.
     |      Invoked by run() before running through generator loop.
     |  
     |  skip_page(self, page)
     |      Return whether treat should be skipped for the page.
     |      
     |      @param page: Page object to be processed
     |      @type page: pywikibot.Page
     |  
     |  stop(self)
     |      Stop iterating.
     |  
     |  teardown(self)
     |      Some cleanups after run operation. Invoked by exit().
     |  
     |  userPut(self, page, oldtext, newtext, **kwargs, comment='[deprecated name of summary]', async='[deprecated name of asynchronous]')
     |      Save a new revision of a page, with user confirmation as required.
     |      
     |      Print differences, ask user for confirmation,
     |      and puts the page if needed.
     |      
     |      Option used:
     |      
     |      * 'always'
     |      
     |      Keyword args used:
     |      
     |      * 'asynchronous' - passed to page.save
     |      * 'summary' - passed to page.save
     |      * 'show_diff' - show changes between oldtext and newtext (enabled)
     |      * 'ignore_save_related_errors' - report and ignore (disabled)
     |      * 'ignore_server_errors' - report and ignore (disabled)
     |      
     |      @return: whether the page was saved successfully
     |      @rtype: bool
     |  
     |  user_confirm(self, question)
     |      Obtain user response if bot option 'always' not enabled.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from BaseBot:
     |  
     |  current_page
     |      Return the current working page as a property.
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes inherited from BaseBot:
     |  
     |  availableOptions = {'always': False}
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from OptionHandler:
     |  
     |  getOption(self, option)
     |      Get the current value of an option.
     |      
     |      @param option: key defined in OptionHandler.availableOptions
     |      @raise Error: No valid option is given with option parameter
     |  
     |  setOptions(self, **kwargs)
     |      Set the instance options.
     |      
     |      @param kwargs: options
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from OptionHandler:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
    
    class EditConflict(PageSaveRelatedError)
     |  There has been an edit conflict while uploading the page.
     |  
     |  Method resolution order:
     |      EditConflict
     |      PageSaveRelatedError
     |      PageRelatedError
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Data and other attributes defined here:
     |  
     |  message = 'Page %s could not be saved due to an edit conflict'
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from PageSaveRelatedError:
     |  
     |  args
     |      Expose args.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from PageRelatedError:
     |  
     |  __init__(self, page, message=None)
     |      Initializer.
     |      
     |      @param page: Page that caused the exception
     |      @type page: Page object
     |  
     |  getPage(self)
     |      Return the page related to the exception.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Error:
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
    
    class Error(pywikibot.tools.UnicodeMixin, builtins.Exception)
     |  Pywikibot error.
     |  
     |  Method resolution order:
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Methods defined here:
     |  
     |  __init__(self, arg)
     |      Initializer.
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
     |  
     |  args
    
    class FatalServerError(ServerError)
     |  A fatal server error will not be corrected by resending the request.
     |  
     |  Method resolution order:
     |      FatalServerError
     |      ServerError
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Methods inherited from Error:
     |  
     |  __init__(self, arg)
     |      Initializer.
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
     |  
     |  args
    
    class FilePage(Page)
     |  A subclass of Page representing a file description page.
     |  
     |  Supports the same interface as Page, with some added methods.
     |  
     |  Method resolution order:
     |      FilePage
     |      Page
     |      BasePage
     |      pywikibot.tools.UnicodeMixin
     |      pywikibot.tools.ComparableMixin
     |      builtins.object
     |  
     |  Methods defined here:
     |  
     |  __init__(self, source, title='', insite=NotImplemented)
     |      Initializer.
     |  
     |  download(self, filename=None, chunk_size=102400, revision=None)
     |      Download to filename file of FilePage.
     |      
     |      @param filename: filename where to save file:
     |          None: self.title(as_filename=True, with_ns=False)
     |          will be used
     |          str: provided filename will be used.
     |      @type filename: None or str
     |      @param chunk_size: the size of each chunk to be received and
     |          written to file.
     |      @type chunk_size: int
     |      @param revision: file revision to download:
     |          None: self.latest_file_info will be used
     |          FileInfo: provided revision will be used.
     |      @type revision: None or FileInfo
     |      @return: True if download is successful, False otherwise.
     |      @raise: IOError if filename cannot be written for any reason.
     |  
     |  fileIsOnCommons(self)
     |      DEPRECATED. Check if the image is stored on Wikimedia Commons.
     |      
     |      @rtype: bool
     |  
     |  fileIsShared(self)
     |      Check if the file is stored on any known shared repository.
     |      
     |      @rtype: bool
     |  
     |  fileUrl(self)
     |      Deprecated; use get_file_url instead.
     |      
     |      Return the URL for the file described on this page.
     |  
     |  getFileMd5Sum(self)
     |      Deprecated; use FilePage.latest_file_info.sha1 instead.
     |      
     |      Return image file's MD5 checksum.
     |  
     |  getFileSHA1Sum(self)
     |      Deprecated; use FilePage.latest_file_info.sha1 instead.
     |      
     |      Return the file's SHA1 checksum.
     |  
     |  getFileVersionHistory(self)
     |      Deprecated; use FilePage.get_file_history() instead.
     |      
     |      
     |      Return the file's version history.
     |      
     |      @return: A list of dictionaries with the following keys:
     |      
     |          [comment, sha1, url, timestamp, metadata,
     |           height, width, mime, user, descriptionurl, size]
     |      @rtype: list
     |  
     |  getFileVersionHistoryTable(self)
     |      Return the version history in the form of a wiki table.
     |  
     |  getFirstUploader(self)
     |      Deprecated; use FilePage.oldest_file_info.user instead.
     |      
     |      
     |      Return a list with first uploader of the FilePage and timestamp.
     |      
     |      For compatibility with compat only.
     |  
     |  getImagePageHtml(self)
     |      Download the file page, and return the HTML, as a unicode string.
     |      
     |      Caches the HTML code, so that if you run this method twice on the
     |      same FilePage object, the page will only be downloaded once.
     |  
     |  getLatestUploader(self)
     |      Deprecated; use FilePage.latest_file_info.user instead.
     |      
     |      
     |      Return a list with latest uploader of the FilePage and timestamp.
     |      
     |      For compatibility with compat only.
     |  
     |  get_file_history(self)
     |      Return the file's version history.
     |      
     |      @return: dictionary with:
     |          key: timestamp of the entry
     |          value: instance of FileInfo()
     |      @rtype: dict
     |  
     |  get_file_url(self, url_width=None, url_height=None, url_param=None)
     |      Return the url or the thumburl of the file described on this page.
     |      
     |      Fetch the information if not available.
     |      
     |      Once retrieved, thumburl information will also be accessible as
     |      latest_file_info attributes, named as in [1]:
     |      - url, thumburl, thumbwidth and thumbheight
     |      
     |      Parameters correspond to iiprops in:
     |      [1] U{https://www.mediawiki.org/wiki/API:Imageinfo}
     |      
     |      Parameters validation and error handling left to the API call.
     |      
     |      @param url_width: see iiurlwidth in [1]
     |      @param url_height: see iiurlheigth in [1]
     |      @param url_param: see iiurlparam in [1]
     |      @return: latest file url or thumburl
     |      @rtype: unicode
     |  
     |  globalusage(self, total=None)
     |      Iterate all global usage for this page.
     |      
     |      @param total: iterate no more than this number of pages in total
     |      @return: a generator that yields Pages also on sites different from
     |          self.site.
     |      @rtype: generator
     |  
     |  upload(self, source, **kwargs)
     |      Upload this file to the wiki.
     |      
     |      keyword arguments are from site.upload() method.
     |      
     |      @param source: Path or URL to the file to be uploaded.
     |      @type source: str
     |      
     |      @keyword comment: Edit summary; if this is not provided, then
     |          filepage.text will be used. An empty summary is not permitted.
     |          This may also serve as the initial page text (see below).
     |      @keyword text: Initial page text; if this is not set, then
     |          filepage.text will be used, or comment.
     |      @keyword watch: If true, add filepage to the bot user's watchlist
     |      @keyword ignore_warnings: It may be a static boolean, a callable
     |          returning a boolean or an iterable. The callable gets a list of
     |          UploadWarning instances and the iterable should contain the warning
     |          codes for which an equivalent callable would return True if all
     |          UploadWarning codes are in thet list. If the result is False it'll
     |          not continue uploading the file and otherwise disable any warning
     |          and reattempt to upload the file. NOTE: If report_success is True
     |          or None it'll raise an UploadWarning exception if the static
     |          boolean is False.
     |      @type ignore_warnings: bool or callable or iterable of str
     |      @keyword chunk_size: The chunk size in bytesfor chunked uploading (see
     |          U{https://www.mediawiki.org/wiki/API:Upload#Chunked_uploading}). It
     |          will only upload in chunks, if the version number is 1.20 or higher
     |          and the chunk size is positive but lower than the file size.
     |      @type chunk_size: int
     |      @keyword _file_key: Reuses an already uploaded file using the filekey.
     |          If None (default) it will upload the file.
     |      @type _file_key: str or None
     |      @keyword _offset: When file_key is not None this can be an integer to
     |          continue a previously canceled chunked upload. If False it treats
     |          that as a finished upload. If True it requests the stash info from
     |          the server to determine the offset. By default starts at 0.
     |      @type _offset: int or bool
     |      @keyword _verify_stash: Requests the SHA1 and file size uploaded and
     |          compares it to the local file. Also verifies that _offset is
     |          matching the file size if the _offset is an int. If _offset is
     |          False if verifies that the file size match with the local file. If
     |          None it'll verifies the stash when a file key and offset is given.
     |      @type _verify_stash: bool or None
     |      @keyword report_success: If the upload was successful it'll print a
     |          success message and if ignore_warnings is set to False it'll
     |          raise an UploadWarning if a warning occurred. If it's
     |          None (default) it'll be True if ignore_warnings is a bool and False
     |          otherwise. If it's True or None ignore_warnings must be a bool.
     |      @return: It returns True if the upload was successful and False
     |          otherwise.
     |      @rtype: bool
     |  
     |  usingPages(self, total=None, content=False, step=NotImplemented)
     |      Yield Pages on which the file is displayed.
     |      
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, load the current content of each iterated page
     |          (default False)
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |  
     |  latest_file_info
     |      Retrieve and store information of latest Image rev. of FilePage.
     |      
     |      At the same time, the whole history of Image is fetched and cached in
     |      self._file_revisions
     |      
     |      @return: instance of FileInfo()
     |  
     |  oldest_file_info
     |      Retrieve and store information of oldest Image rev. of FilePage.
     |      
     |      At the same time, the whole history of Image is fetched and cached in
     |      self._file_revisions
     |      
     |      @return: instance of FileInfo()
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Page:
     |  
     |  set_redirect_target(self, target_page, create=False, force=False, keep_section=False, save=True, **kwargs)
     |      Change the page's text to point to the redirect page.
     |      
     |      @param target_page: target of the redirect, this argument is required.
     |      @type target_page: pywikibot.Page or string
     |      @param create: if true, it creates the redirect even if the page
     |          doesn't exist.
     |      @type create: bool
     |      @param force: if true, it set the redirect target even the page
     |          doesn't exist or it's not redirect.
     |      @type force: bool
     |      @param keep_section: if the old redirect links to a section
     |          and the new one doesn't it uses the old redirect's section.
     |      @type keep_section: bool
     |      @param save: if true, it saves the page immediately.
     |      @type save: bool
     |      @param kwargs: Arguments which are used for saving the page directly
     |          afterwards, like 'summary' for edit summary.
     |  
     |  templatesWithParams(self, get_redirect=NotImplemented)
     |      Return templates used on this Page.
     |      
     |      The templates are extracted by L{textlib.extract_templates_and_params},
     |      with positional arguments placed first in order, and each named
     |      argument appearing as 'name=value'.
     |      
     |      All parameter keys and values for each template are stripped of
     |      whitespace.
     |      
     |      @return: a list of tuples with one tuple for each template invocation
     |          in the page, with the template Page as the first entry and a list
     |          of parameters as the second entry.
     |      @rtype: list of (Page, list)
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Page:
     |  
     |  raw_extracted_templates
     |      Extract templates using L{textlib.extract_templates_and_params}.
     |      
     |      Disabled parts and whitespace are stripped, except for
     |      whitespace in anonymous positional arguments.
     |      
     |      This value is cached.
     |      
     |      @rtype: list of (str, OrderedDict)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from BasePage:
     |  
     |  __hash__(self)
     |      A stable identifier to be used as a key in hash-tables.
     |      
     |      This relies on the fact that the string
     |      representation of an instance can not change after the construction.
     |  
     |  __repr__(self)
     |      Return a more complete string representation.
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  applicable_protections(self)
     |      Return the protection types allowed for that page.
     |      
     |      If the page doesn't exists it only returns "create". Otherwise it
     |      returns all protection types provided by the site, except "create".
     |      It also removes "upload" if that page is not in the File namespace.
     |      
     |      It is possible, that it returns an empty set, but only if original
     |      protection types were removed.
     |      
     |      @return: set of unicode
     |      @rtype: set
     |  
     |  aslink(self, force_interwiki=False, textlink=False, no_interwiki=False, forceInterwiki='[deprecated name of force_interwiki]', noInterwiki='[deprecated name of no_interwiki]')
     |      DEPRECATED: use self.title(as_link=True) instead.
     |  
     |  autoFormat(self)
     |      Return L{date.getAutoFormat} dictName and value, if any.
     |      
     |      Value can be a year, date, etc., and dictName is 'YearBC',
     |      'Year_December', or another dictionary name. Please note that two
     |      entries may have exactly the same autoFormat, but be in two
     |      different namespaces, as some sites have categories with the
     |      same names. Regular titles return (None, None).
     |  
     |  backlinks(self, follow_redirects=True, filter_redirects=None, namespaces=None, total=None, content=False, step=NotImplemented, followRedirects='[deprecated name of follow_redirects]', filterRedirects='[deprecated name of filter_redirects]')
     |      Return an iterator for pages that link to this page.
     |      
     |      @param follow_redirects: if True, also iterate pages that link to a
     |          redirect pointing to the page.
     |      @param filter_redirects: if True, only iterate redirects; if False,
     |          omit redirects; if None, do not filter
     |      @param namespaces: only iterate pages in these namespaces
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each referring page (default False)
     |  
     |  botMayEdit(self)
     |      Determine whether the active bot is allowed to edit the page.
     |      
     |      This will be True if the page doesn't contain {{bots}} or {{nobots}}
     |      or any other template from edit_restricted_templates list
     |      in x_family.py file, or it contains them and the active bot is allowed
     |      to edit this page. (This method is only useful on those sites that
     |      recognize the bot-exclusion protocol; on other sites, it will always
     |      return True.)
     |      
     |      The framework enforces this restriction by default. It is possible
     |      to override this by setting ignore_bot_templates=True in
     |      user-config.py, or using page.put(force=True).
     |      
     |      @rtype: bool
     |  
     |  canBeEdited(self)
     |      Determine whether the page may be edited.
     |      
     |      This returns True if and only if:
     |        - page is unprotected, and bot has an account for this site, or
     |        - page is protected, and bot has a sysop account for this site.
     |      
     |      @rtype: bool
     |  
     |  categories(self, with_sort_key=False, total=None, content=False, nofollow_redirects=NotImplemented, get_redirect=NotImplemented, step=NotImplemented, withSortKey='[deprecated name of with_sort_key]')
     |      Iterate categories that the article is in.
     |      
     |      @param with_sort_key: if True, include the sort key in each Category.
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each category description page (default False)
     |      @return: a generator that yields Category objects.
     |      @rtype: generator
     |  
     |  change_category(self, old_cat, new_cat, summary=None, sort_key=None, in_place=True, include=[], comment='[deprecated name of summary]', oldCat='[deprecated name of old_cat]', newCat='[deprecated name of new_cat]', sortKey='[deprecated name of sort_key]', inPlace='[deprecated name of in_place]')
     |      Remove page from oldCat and add it to newCat.
     |      
     |      @param old_cat: category to be removed
     |      @type old_cat: Category
     |      @param new_cat: category to be added, if any
     |      @type new_cat: Category or None
     |      
     |      @param summary: string to use as an edit summary
     |      
     |      @param sort_key: sortKey to use for the added category.
     |          Unused if newCat is None, or if inPlace=True
     |          If sortKey=True, the sortKey used for oldCat will be used.
     |      
     |      @param in_place: if True, change categories in place rather than
     |                    rearranging them.
     |      
     |      @param include: list of tags not to be disabled by default in relevant
     |          textlib functions, where CategoryLinks can be searched.
     |      @type include: list
     |      
     |      @return: True if page was saved changed, otherwise False.
     |      @rtype: bool
     |  
     |  clear_cache(self)
     |      Clear the cached attributes of the page.
     |  
     |  contributingUsers(self, total=None, step=NotImplemented)
     |      Deprecated; use contributors() instead.
     |      
     |      
     |      Return a set of usernames (or IPs) of users who edited this page.
     |      
     |      @param total: iterate no more than this number of revisions in total
     |      
     |      @rtype: set
     |  
     |  contributors(self, total=None, starttime=None, endtime=None, step=NotImplemented)
     |      Compile contributors of this page with edit counts.
     |      
     |      @param total: iterate no more than this number of revisions in total
     |      @param starttime: retrieve revisions starting at this Timestamp
     |      @param endtime: retrieve revisions ending at this Timestamp
     |      
     |      @return: number of edits for each username
     |      @rtype: L{collections.Counter}
     |  
     |  coordinates(self, primary_only=False)
     |      Return a list of Coordinate objects for points on the page.
     |      
     |      Uses the MediaWiki extension GeoData.
     |      
     |      @param primary_only: Only return the coordinate indicated to be primary
     |      @return: A list of Coordinate objects
     |      @rtype: list
     |  
     |  data_item(self)
     |      Convenience function to get the Wikibase item of a page.
     |      
     |      @rtype: ItemPage
     |  
     |  defaultsort(self, force=False)
     |      Extract value of the {{DEFAULTSORT:}} magic word from the page.
     |      
     |      @param force: force updating from the live site
     |      
     |      @rtype: unicode or None
     |  
     |  delete(self, reason=None, prompt=True, mark=False, quit=False, throttle=NotImplemented)
     |      Delete the page from the wiki. Requires administrator status.
     |      
     |      @param reason: The edit summary for the deletion, or rationale
     |          for deletion if requesting. If None, ask for it.
     |      @param prompt: If true, prompt user for confirmation before deleting.
     |      @param mark: If true, and user does not have sysop rights, place a
     |          speedy-deletion request on the page instead. If false, non-sysops
     |          will be asked before marking pages for deletion.
     |      @param quit: show also the quit option, when asking for confirmation.
     |  
     |  editTime(self)
     |      Return timestamp of last revision to page.
     |      
     |      @rtype: pywikibot.Timestamp
     |  
     |  embeddedin(self, filter_redirects=None, namespaces=None, total=None, content=False, step=NotImplemented)
     |      Return an iterator for pages that embed this page as a template.
     |      
     |      @param filter_redirects: if True, only iterate redirects; if False,
     |          omit redirects; if None, do not filter
     |      @param namespaces: only iterate pages in these namespaces
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each embedding page (default False)
     |  
     |  encoding(self)
     |      DEPRECATED: use self.site.encoding instead.
     |  
     |  exists(self)
     |      Return True if page exists on the wiki, even if it's a redirect.
     |      
     |      If the title includes a section, return False if this section isn't
     |      found.
     |      
     |      @rtype: bool
     |  
     |  expand_text(self, force=False, includecomments=False, refresh='[deprecated name of force]')
     |      Return the page text with all templates and parser words expanded.
     |      
     |      @param force: force updating from the live site
     |      @param includecomments: Also strip comments if includecomments
     |          parameter is not True.
     |      
     |      @rtype unicode or None
     |  
     |  extlinks(self, total=None, step=NotImplemented)
     |      Iterate all external URLs (not interwiki links) from this page.
     |      
     |      @param total: iterate no more than this number of pages in total
     |      @return: a generator that yields unicode objects containing URLs.
     |      @rtype: generator
     |  
     |  fullVersionHistory(self, reverse=False, total=None, reverseOrder='[deprecated name of reverse]', rollback=NotImplemented, step=NotImplemented)
     |      Deprecated; use Page.revisions(content=True) instead.
     |      
     |      Iterate previous versions including wikitext.
     |      
     |              Takes same arguments as getVersionHistory.
     |  
     |  full_url(self)
     |      Return the full URL.
     |  
     |  get(self, force=False, get_redirect=False, sysop=False, throttle=NotImplemented, change_edit_time=NotImplemented, expandtemplates=NotImplemented)
     |      Return the wiki-text of the page.
     |      
     |      This will retrieve the page from the server if it has not been
     |      retrieved yet, or if force is True. This can raise the following
     |      exceptions that should be caught by the calling code:
     |      
     |      @exception NoPage:         The page does not exist
     |      @exception IsRedirectPage: The page is a redirect. The argument of the
     |                                 exception is the title of the page it
     |                                 redirects to.
     |      @exception SectionError:   The section does not exist on a page with
     |                                 a # link
     |      
     |      @param force:           reload all page attributes, including errors.
     |      @param get_redirect:    return the redirect text, do not follow the
     |                              redirect, do not raise an exception.
     |      @param sysop:           if the user has a sysop account, use it to
     |                              retrieve this page
     |      
     |      @rtype: unicode
     |  
     |  getCategoryRedirectTarget(self)
     |      If this is a category redirect, return the target category title.
     |      
     |      @rtype: Category
     |  
     |  getCreator(self)
     |      Get the first revision of the page.
     |      
     |      DEPRECATED: Use Page.oldest_revision.
     |      
     |      @rtype: tuple(username, Timestamp)
     |  
     |  getDeletedRevision(self, timestamp, content=False, retrieveText='[deprecated name of content]')
     |      Return a particular deleted revision by timestamp.
     |      
     |      @return: a list of [date, editor, comment, text, restoration
     |          marker]. text will be None, unless content is True (or has
     |          been retrieved earlier). If timestamp is not found, returns
     |          None.
     |      @rtype: list
     |  
     |  getLatestEditors(self, total=1, limit='[deprecated name of total]')
     |      Get a list of revision informations of the last total edits.
     |      
     |      DEPRECATED: Use Page.revisions.
     |      
     |      @param total: iterate no more than this number of revisions in total
     |      @return: list of dict, each dict containing the username and Timestamp
     |      @rtype: list
     |  
     |  getMovedTarget(self)
     |      Return a Page object for the target this Page was moved to.
     |      
     |      DEPRECATED: Use Page.moved_target().
     |      
     |      If this page was not moved, it will raise a NoPage exception.
     |      This method also works if the source was already deleted.
     |      
     |      @rtype: pywikibot.Page
     |      @raises NoPage: this page was not moved
     |  
     |  getOldVersion(self, oldid, force=False, get_redirect=False, sysop=False, throttle=NotImplemented, change_edit_time=NotImplemented)
     |      Return text of an old revision of this page; same options as get().
     |      
     |      @param oldid: The revid of the revision desired.
     |      @rtype: unicode
     |  
     |  getRedirectTarget(self)
     |      Return a Page object for the target this Page redirects to.
     |      
     |      If this page is not a redirect page, will raise an IsNotRedirectPage
     |      exception. This method also can raise a NoPage exception.
     |      
     |      @rtype: pywikibot.Page
     |  
     |  getReferences(self, follow_redirects=True, with_template_inclusion=True, only_template_inclusion=False, filter_redirects=False, namespaces=None, total=None, content=False, step=NotImplemented, withTemplateInclusion='[deprecated name of with_template_inclusion]', onlyTemplateInclusion='[deprecated name of only_template_inclusion]', redirectsOnly='[deprecated name of filter_redirects]')
     |      Return an iterator all pages that refer to or embed the page.
     |      
     |      If you need a full list of referring pages, use
     |      C{pages = list(s.getReferences())}
     |      
     |      @param follow_redirects: if True, also iterate pages that link to a
     |          redirect pointing to the page.
     |      @param with_template_inclusion: if True, also iterate pages where self
     |          is used as a template.
     |      @param only_template_inclusion: if True, only iterate pages where self
     |          is used as a template.
     |      @param filter_redirects: if True, only iterate redirects to self.
     |      @param namespaces: only iterate pages in these namespaces
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each referring page (default False)
     |  
     |  getRestrictions(self)
     |      DEPRECATED. Use self.protection() instead.
     |  
     |  getTemplates(self, tllimit=NotImplemented)
     |      DEPRECATED. Use templates().
     |  
     |  getVersionHistory(self, reverse=False, total=None, forceReload=NotImplemented, revCount='[deprecated name of total]', step=NotImplemented, getAll=NotImplemented, reverseOrder='[deprecated name of reverse]')
     |      Deprecated; use Page.revisions() instead.
     |      
     |      
     |      Load the version history page and return history information.
     |      
     |      Return value is a list of tuples, where each tuple represents one
     |      edit and is built of revision id, edit date/time, user name, and
     |      edit summary. Starts with the most current revision, unless
     |      reverse is True.
     |      
     |      @param total: iterate no more than this number of revisions in total
     |  
     |  getVersionHistoryTable(self, reverse=False, total=None, forceReload=NotImplemented, reverseOrder='[deprecated name of reverse]', step=NotImplemented)
     |      Return the version history as a wiki table.
     |  
     |  imagelinks(self, total=None, content=False, followRedirects=NotImplemented, loose=NotImplemented, step=NotImplemented)
     |      Iterate FilePage objects for images displayed on this Page.
     |      
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each image description page (default False)
     |      @return: a generator that yields FilePage objects.
     |  
     |  interwiki(self, expand=True)
     |      Iterate interwiki links in the page text, excluding language links.
     |      
     |      @param expand: if True (default), include interwiki links found in
     |          templates transcluded onto this page; if False, only iterate
     |          interwiki links found in this page's own wikitext
     |      @type expand: bool
     |      
     |      @return: a generator that yields Link objects
     |      @rtype: generator
     |  
     |  isAutoTitle(self)
     |      Return True if title of this Page is in the autoFormat dict.
     |  
     |  isCategory(self)
     |      DEPRECATED: use is_categorypage instead.
     |  
     |  isCategoryRedirect(self)
     |      Return True if this is a category redirect page, False otherwise.
     |      
     |      @rtype: bool
     |  
     |  isDisambig(self)
     |      Return True if this is a disambiguation page, False otherwise.
     |      
     |      By default, it uses the the Disambiguator extension's result. The
     |      identification relies on the presense of the __DISAMBIG__ magic word
     |      which may also be transcluded.
     |      
     |      If the Disambiguator extension isn't activated for the given site,
     |      the identification relies on the presence of specific templates.
     |      First load a list of template names from the Family file;
     |      if the value in the Family file is None or no entry was made, look for
     |      the list on [[MediaWiki:Disambiguationspage]]. If this page does not
     |      exist, take the MediaWiki message. 'Template:Disambig' is always
     |      assumed to be default, and will be appended regardless of its
     |      existence.
     |      
     |      @rtype: bool
     |  
     |  isEmpty(self)
     |      Deprecated; use interwiki.page_empty_check(page) instead.
     |      
     |      
     |      Return True if the page text has less than 4 characters.
     |      
     |      Character count ignores language links and category links.
     |      Can raise the same exceptions as get().
     |      
     |      @rtype: bool
     |  
     |  isFlowPage(self)
     |      DEPRECATED: use self.is_flow_page instead.
     |  
     |  isImage(self)
     |      DEPRECATED: use is_filepage instead.
     |  
     |  isIpEdit(self)
     |      Return True if last editor was unregistered.
     |      
     |      @rtype: bool
     |  
     |  isRedirectPage(self)
     |      Return True if this is a redirect, False if not or not existing.
     |  
     |  isStaticRedirect(self, force=False)
     |      Determine whether the page is a static redirect.
     |      
     |      A static redirect must be a valid redirect, and contain the magic word
     |      __STATICREDIRECT__.
     |      
     |      @param force: Bypass local caching
     |      @type force: bool
     |      
     |      @rtype: bool
     |  
     |  isTalkPage(self)
     |      Return True if this page is in any talk namespace.
     |  
     |  is_categorypage(self)
     |      Return True if the page is a Category, False otherwise.
     |  
     |  is_filepage(self)
     |      Return True if this is an file description page, False otherwise.
     |  
     |  is_flow_page(self)
     |      Whether a page is a Flow page.
     |      
     |      @rtype: bool
     |  
     |  iterlanglinks(self, total=None, include_obsolete=False, step=NotImplemented)
     |      Iterate all inter-language links on this page.
     |      
     |      @param total: iterate no more than this number of pages in total
     |      @param include_obsolete: if true, yield even Link object whose site
     |                               is obsolete
     |      @type include_obsolete: bool
     |      
     |      @return: a generator that yields Link objects.
     |      @rtype: generator
     |  
     |  itertemplates(self, total=None, content=False, step=NotImplemented)
     |      Iterate Page objects for templates used on this Page.
     |      
     |      Template parameters are ignored. This method only returns embedded
     |      templates, not template pages that happen to be referenced through
     |      a normal link.
     |      
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each template (default False)
     |      @param content: bool
     |  
     |  langlinks(self, include_obsolete=False)
     |      Return a list of all inter-language Links on this page.
     |      
     |      @param include_obsolete: if true, return even Link objects whose site
     |                               is obsolete
     |      @type include_obsolete: bool
     |      
     |      @return: list of Link objects.
     |      @rtype: list
     |  
     |  lastNonBotUser(self)
     |      Return name or IP address of last human/non-bot user to edit page.
     |      
     |      Determine the most recent human editor out of the last revisions.
     |      If it was not able to retrieve a human user, returns None.
     |      
     |      If the edit was done by a bot which is no longer flagged as 'bot',
     |      i.e. which is not returned by Site.botusers(), it will be returned
     |      as a non-bot edit.
     |      
     |      @rtype: unicode
     |  
     |  latestRevision(self)
     |      Deprecated; use latest_revision_id instead.
     |      
     |      Return the current revision id for this page.
     |  
     |  linkedPages(self, namespaces=None, total=None, content=False, step=NotImplemented)
     |      Iterate Pages that this Page links to.
     |      
     |      Only returns pages from "normal" internal links. Image and category
     |      links are omitted unless prefixed with ":". Embedded templates are
     |      omitted (but links within them are returned). All interwiki and
     |      external links are omitted.
     |      
     |      @param namespaces: only iterate links in these namespaces
     |      @param namespaces: int, or list of ints
     |      @param total: iterate no more than this number of pages in total
     |      @type total: int
     |      @param content: if True, retrieve the content of the current version
     |          of each linked page (default False)
     |      @type content: bool
     |      
     |      @return: a generator that yields Page objects.
     |      @rtype: generator
     |  
     |  loadDeletedRevisions(self, total=None, step=NotImplemented)
     |      Retrieve deleted revisions for this Page.
     |      
     |      Stores all revisions' timestamps, dates, editors and comments in
     |      self._deletedRevs attribute.
     |      
     |      @return: iterator of timestamps (which can be used to retrieve
     |          revisions later on).
     |      @rtype: generator
     |  
     |  markDeletedRevision(self, timestamp, undelete=True)
     |      Mark the revision identified by timestamp for undeletion.
     |      
     |      @param undelete: if False, mark the revision to remain deleted.
     |      @type undelete: bool
     |  
     |  merge_history(self, dest, timestamp=None, reason=None)
     |      Merge revisions from this page into another page.
     |      
     |      See L{APISite.merge_history} for details.
     |      
     |      @param dest: Destination page to which revisions will be merged
     |      @type dest: pywikibot.Page
     |      @param timestamp: Revisions from this page dating up to this timestamp
     |          will be merged into the destination page (if not given or False,
     |          all revisions will be merged)
     |      @type timestamp: pywikibot.Timestamp
     |      @param reason: Optional reason for the history merge
     |      @type reason: str
     |  
     |  move(self, newtitle, reason=None, movetalk=True, sysop=False, noredirect=False, throttle=NotImplemented, deleteAndMove='[deprecated name of noredirect]', movetalkpage='[deprecated name of movetalk]')
     |      Move this page to a new title.
     |      
     |      @param newtitle: The new page title.
     |      @param reason: The edit summary for the move.
     |      @param movetalk: If true, move this page's talk page (if it exists)
     |      @param sysop: Try to move using sysop account, if available
     |      @param noredirect: if move succeeds, delete the old page
     |          (usually requires sysop privileges, depending on wiki settings)
     |  
     |  moved_target(self)
     |      Return a Page object for the target this Page was moved to.
     |      
     |      If this page was not moved, it will raise a NoMoveTarget exception.
     |      This method also works if the source was already deleted.
     |      
     |      @rtype: pywikibot.Page
     |      @raises NoMoveTarget: this page was not moved
     |  
     |  namespace(self)
     |      Return the number of the namespace of the page.
     |      
     |      @return: namespace of the page
     |      @rtype: Namespace
     |  
     |  pageAPInfo(self)
     |      Deprecated; use latest_revision_id instead.
     |      
     |      Return the current revision id for this page.
     |  
     |  page_image(self)
     |      Return the most appropriate image on the page.
     |      
     |      Uses the MediaWiki extension PageImages.
     |      
     |      @return: A FilePage object
     |      @rtype: FilePage
     |  
     |  permalink(self, oldid=None, percent_encoded=True, with_protocol=False)
     |      Return the permalink URL of an old revision of this page.
     |      
     |      @param oldid: The revid of the revision desired.
     |      @param percent_encoded: if false, the link will be provided
     |          without title uncoded.
     |      @param with_protocol: if true, http or https prefixes will be
     |          included before the double slash.
     |      @rtype: unicode
     |  
     |  preloadText(self)
     |      The text returned by EditFormPreloadText.
     |      
     |      See API module "info".
     |      
     |      Application: on Wikisource wikis, text can be preloaded even if
     |      a page does not exist, if an Index page is present.
     |      
     |      @rtype: unicode
     |  
     |  previousRevision(self)
     |      Return the revision id for the previous revision.
     |      
     |      DEPRECATED: Use latest_revision.parent_id instead.
     |      
     |      @rtype: long
     |      
     |      @raise AssertionError: Use on MediaWiki prior to v1.16.
     |  
     |  properties(self, force=False)
     |      Return the properties of the page.
     |      
     |      @param force: force updating from the live site
     |      
     |      @rtype: dict
     |  
     |  protect(self, edit=False, move=False, create=None, upload=None, unprotect=False, reason=None, prompt=None, protections=None, **kwargs, throttle=NotImplemented)
     |      Protect or unprotect a wiki page. Requires administrator status.
     |      
     |      Valid protection levels (in MediaWiki 1.12) are '' (equivalent to
     |      'none'), 'autoconfirmed', and 'sysop'. If None is given, however,
     |      that protection will be skipped.
     |      
     |      @param protections: A dict mapping type of protection to protection
     |          level of that type.
     |      @type protections: dict
     |      @param reason: Reason for the action
     |      @type reason: basestring
     |      @param prompt: Whether to ask user for confirmation (deprecated).
     |                     Defaults to protections is None
     |      @type prompt: bool
     |  
     |  protection(self)
     |      Return a dictionary reflecting page protections.
     |      
     |      @rtype: dict
     |  
     |  purge(self, **kwargs)
     |      Purge the server's cache for this page.
     |      
     |      @rtype: bool
     |  
     |  put(self, newtext, summary=None, watch=None, minor=True, botflag=None, force=False, asynchronous=False, callback=None, **kwargs, comment='[deprecated name of summary]', watchArticle='[deprecated name of watch]', minorEdit='[deprecated name of minor]', async='[deprecated name of asynchronous]')
     |      Save the page with the contents of the first argument as the text.
     |      
     |      This method is maintained primarily for backwards-compatibility.
     |      For new code, using Page.save() is preferred. See save() method
     |      docs for all parameters not listed here.
     |      
     |      @param newtext: The complete text of the revised page.
     |      @type newtext: unicode
     |  
     |  put_async(self, newtext, summary=None, watch=None, minor=True, botflag=None, force=False, callback=None, **kwargs, comment='[deprecated name of summary]', watchArticle='[deprecated name of watch]', minorEdit='[deprecated name of minor]')
     |      Deprecated; use put(asynchronous=True) or save(asynchronous=True) instead.
     |      
     |      
     |      Put page on queue to be saved to wiki asynchronously.
     |      
     |      Asynchronous version of put (takes the same arguments), which places
     |      pages on a queue to be saved by a daemon thread. All arguments are
     |      the same as for .put(). This version is maintained solely for
     |      backwards-compatibility.
     |  
     |  revision_count(self, contributors=None)
     |      Determine number of edits from a set of contributors.
     |      
     |      @param contributors: contributor usernames
     |      @type contributors: iterable of str
     |      
     |      @return: number of edits for all provided usernames
     |      @rtype: int
     |  
     |  revisions(self, reverse=False, total=None, content=False, rollback=False, starttime=None, endtime=None, getText='[deprecated name of content]', reverseOrder='[deprecated name of reverse]', step=NotImplemented)
     |      Generator which loads the version history as Revision instances.
     |  
     |  save(self, summary=None, watch=None, minor=True, botflag=None, force=False, asynchronous=False, callback=None, apply_cosmetic_changes=None, quiet=False, **kwargs, comment='[deprecated name of summary]', sysop=NotImplemented, async='[deprecated name of asynchronous]')
     |      Save the current contents of page's text to the wiki.
     |      
     |      @param summary: The edit summary for the modification (optional, but
     |          most wikis strongly encourage its use)
     |      @type summary: unicode
     |      @param watch: Specify how the watchlist is affected by this edit, set
     |          to one of "watch", "unwatch", "preferences", "nochange":
     |          * watch: add the page to the watchlist
     |          * unwatch: remove the page from the watchlist
     |          * preferences: use the preference settings (Default)
     |          * nochange: don't change the watchlist
     |          If None (default), follow bot account's default settings
     |      
     |          For backward compatibility watch parameter may also be boolean:
     |          if True, add or if False, remove this Page to/from bot
     |          user's watchlist.
     |      @type watch: string, bool (deprecated) or None
     |      @param minor: if True, mark this edit as minor
     |      @type minor: bool
     |      @param botflag: if True, mark this edit as made by a bot (default:
     |          True if user has bot status, False if not)
     |      @param force: if True, ignore botMayEdit() setting
     |      @type force: bool
     |      @param asynchronous: if True, launch a separate thread to save
     |          asynchronously
     |      @param callback: a callable object that will be called after the
     |          page put operation. This object must take two arguments: (1) a
     |          Page object, and (2) an exception instance, which will be None
     |          if the page was saved successfully. The callback is intended for
     |          use by bots that need to keep track of which saves were
     |          successful.
     |      @param apply_cosmetic_changes: Overwrites the cosmetic_changes
     |          configuration value to this value unless it's None.
     |      @type apply_cosmetic_changes: bool or None
     |      @param quiet: enable/disable successful save operation message;
     |          defaults to False.
     |          In asynchronous mode, if True, it is up to the calling bot to
     |          manage the output e.g. via callback.
     |      @type quiet: bool
     |  
     |  section(self)
     |      Return the name of the section this Page refers to.
     |      
     |      The section is the part of the title following a '#' character, if
     |      any. If no section is present, return None.
     |      
     |      @rtype: unicode
     |  
     |  sectionFreeTitle(self, underscore=False)
     |      DEPRECATED: use self.title(with_section=False) instead.
     |  
     |  templates(self, content=False, get_redirect=NotImplemented)
     |      Return a list of Page objects for templates used on this Page.
     |      
     |      Template parameters are ignored. This method only returns embedded
     |      templates, not template pages that happen to be referenced through
     |      a normal link.
     |      
     |      @param content: if True, retrieve the content of the current version
     |          of each template (default False)
     |      @param content: bool
     |  
     |  title(self, underscore=False, with_ns=True, with_section=True, as_url=False, as_link=False, allow_interwiki=True, force_interwiki=False, textlink=False, as_filename=False, insite=None, without_brackets=False, decode=NotImplemented, savetitle='[deprecated name of as_url]', withNamespace='[deprecated name of with_ns]', withSection='[deprecated name of with_section]', forceInterwiki='[deprecated name of force_interwiki]', asUrl='[deprecated name of as_url]', asLink='[deprecated name of as_link]', allowInterwiki='[deprecated name of allow_interwiki]')
     |      Return the title of this Page, as a Unicode string.
     |      
     |      @param underscore: (not used with as_link) if true, replace all ' '
     |          characters with '_'
     |      @param with_ns: if false, omit the namespace prefix. If this
     |          option is false and used together with as_link return a labeled
     |          link like [[link|label]]
     |      @param with_section: if false, omit the section
     |      @param as_url: (not used with as_link) if true, quote title as if in an
     |          URL
     |      @param as_link: if true, return the title in the form of a wikilink
     |      @param allow_interwiki: (only used if as_link is true) if true, format
     |          the link as an interwiki link if necessary
     |      @param force_interwiki: (only used if as_link is true) if true, always
     |          format the link as an interwiki link
     |      @param textlink: (only used if as_link is true) if true, place a ':'
     |          before Category: and Image: links
     |      @param as_filename: (not used with as_link) if true, replace any
     |          characters that are unsafe in filenames
     |      @param insite: (only used if as_link is true) a site object where the
     |          title is to be shown. default is the current family/lang given by
     |          -family and -lang option i.e. config.family and config.mylang
     |      @param without_brackets: (cannot be used with as_link) if true, remove
     |          the last pair of brackets(usually removes disambiguation brackets).
     |      @rtype: unicode
     |  
     |  titleForFilename(self)
     |      DEPRECATED: use self.title(as_filename=True) instead.
     |  
     |  titleWithoutNamespace(self, underscore=False)
     |      DEPRECATED: use self.title(with_ns=False) instead.
     |  
     |  toggleTalkPage(self)
     |      Return other member of the article-talk page pair for this Page.
     |      
     |      If self is a talk page, returns the associated content page;
     |      otherwise, returns the associated talk page. The returned page need
     |      not actually exist on the wiki.
     |      
     |      @return: Page or None if self is a special page.
     |      @rtype: Page or None
     |  
     |  touch(self, callback=None, botflag=False, **kwargs)
     |      Make a touch edit for this page.
     |      
     |      See save() method docs for all parameters.
     |      The following parameters will be overridden by this method:
     |      - summary, watch, minor, force, asynchronous
     |      
     |      Parameter botflag is False by default.
     |      
     |      minor and botflag parameters are set to False which prevents hiding
     |      the edit when it becomes a real edit due to a bug.
     |  
     |  undelete(self, reason=None, comment='[deprecated name of reason]', throttle=NotImplemented)
     |      Undelete revisions based on the markers set by previous calls.
     |      
     |      If no calls have been made since loadDeletedRevisions(), everything
     |      will be restored.
     |      
     |      Simplest case::
     |      
     |          Page(...).undelete('This will restore all revisions')
     |      
     |      More complex::
     |      
     |          pg = Page(...)
     |          revs = pg.loadDeletedRevisions()
     |          for rev in revs:
     |              if ... #decide whether to undelete a revision
     |                  pg.markDeletedRevision(rev) #mark for undeletion
     |          pg.undelete('This will restore only selected revisions.')
     |      
     |      @param reason: Reason for the action.
     |      @type reason: basestring
     |  
     |  urlname(self)
     |      Return the Page title encoded for use in an URL.
     |      
     |      DEPRECATED: use self.title(as_url=True) instead.
     |  
     |  userName(self)
     |      Return name or IP address of last user to edit page.
     |      
     |      @rtype: unicode
     |  
     |  version(self)
     |      Return MediaWiki version number of the page site.
     |      
     |      This is needed to use @need_version() decorator for methods of
     |      Page objects.
     |  
     |  watch(self, unwatch=False)
     |      Add or remove this page to/from bot account's watchlist.
     |      
     |      @param unwatch: True to unwatch, False (default) to watch.
     |      @type unwatch: bool
     |      
     |      @return: True if successful, False otherwise.
     |      @rtype: bool
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from BasePage:
     |  
     |  content_model
     |      Return the content model for this page.
     |      
     |      If it cannot be reliably determined via the API,
     |      None is returned.
     |  
     |  data_repository
     |      Return the Site object for the data repository.
     |  
     |  depth
     |      Return the depth/subpage level of the page.
     |  
     |  image_repository
     |      Return the Site object for the image repository.
     |  
     |  latest_revision
     |      Return the current revision for this page.
     |  
     |  latest_revision_id
     |      Return the current revision id for this page.
     |  
     |  oldest_revision
     |      Return the first revision of this page.
     |      
     |      @rtype: L{Revision}
     |  
     |  pageid
     |      Return pageid of the page.
     |      
     |      @return: pageid or 0 if page does not exist
     |      @rtype: int
     |  
     |  previous_revision_id
     |      Deprecated; use latest_revision.parent_id (0 instead of -1 when no parent) instead.
     |      
     |      
     |      Return the revision id for the previous revision of this Page.
     |      
     |      If the page has only one revision, it shall return -1.
     |      
     |      @rtype: long
     |      
     |      @raise AssertionError: Use on MediaWiki prior to v1.16.
     |  
     |  site
     |      Return the Site object for the wiki on which this Page resides.
     |      
     |      @rtype: pywikibot.Site
     |  
     |  text
     |      Return the current (edited) wikitext, loading it if necessary.
     |      
     |      @return: text of the page
     |      @rtype: unicode
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.ComparableMixin:
     |  
     |  __eq__(self, other)
     |      Compare if self is equal to other.
     |  
     |  __ge__(self, other)
     |      Compare if self is greater equals other.
     |  
     |  __gt__(self, other)
     |      Compare if self is greater than other.
     |  
     |  __le__(self, other)
     |      Compare if self is less equals other.
     |  
     |  __lt__(self, other)
     |      Compare if self is less than other.
     |  
     |  __ne__(self, other)
     |      Compare if self is not equal to other.
    
    class InterwikiRedirectPage(PageRelatedError)
     |  Page is a redirect to another site.
     |  
     |  This is considered invalid in Pywikibot. See bug T75184.
     |  
     |  Method resolution order:
     |      InterwikiRedirectPage
     |      PageRelatedError
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Methods defined here:
     |  
     |  __init__(self, page, target_page)
     |      Initializer.
     |      
     |      @param target_page: Target page of the redirect.
     |      @type reason: Page
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |  
     |  message = 'Page redirects to a page on another Site.\nPage: ...\nTarge...
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from PageRelatedError:
     |  
     |  getPage(self)
     |      Return the page related to the exception.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Error:
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
     |  
     |  args
    
    class InvalidTitle(Error)
     |  Invalid page title.
     |  
     |  Method resolution order:
     |      InvalidTitle
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Methods inherited from Error:
     |  
     |  __init__(self, arg)
     |      Initializer.
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
     |  
     |  args
    
    class IsNotRedirectPage(PageRelatedError)
     |  Page is not a redirect page.
     |  
     |  Method resolution order:
     |      IsNotRedirectPage
     |      PageRelatedError
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Data and other attributes defined here:
     |  
     |  message = 'Page %s is not a redirect page.'
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from PageRelatedError:
     |  
     |  __init__(self, page, message=None)
     |      Initializer.
     |      
     |      @param page: Page that caused the exception
     |      @type page: Page object
     |  
     |  getPage(self)
     |      Return the page related to the exception.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Error:
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
     |  
     |  args
    
    class IsRedirectPage(PageRelatedError)
     |  Page is a redirect page.
     |  
     |  Method resolution order:
     |      IsRedirectPage
     |      PageRelatedError
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Data and other attributes defined here:
     |  
     |  message = 'Page %s is a redirect page.'
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from PageRelatedError:
     |  
     |  __init__(self, page, message=None)
     |      Initializer.
     |      
     |      @param page: Page that caused the exception
     |      @type page: Page object
     |  
     |  getPage(self)
     |      Return the page related to the exception.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Error:
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
     |  
     |  args
    
    class ItemPage(WikibasePage)
     |  Wikibase entity of type 'item'.
     |  
     |  A Wikibase item may be defined by either a 'Q' id (qid),
     |  or by a site & title.
     |  
     |  If an item is defined by site & title, once an item's qid has
     |  been looked up, the item is then defined by the qid.
     |  
     |  Method resolution order:
     |      ItemPage
     |      WikibasePage
     |      BasePage
     |      pywikibot.tools.UnicodeMixin
     |      pywikibot.tools.ComparableMixin
     |      builtins.object
     |  
     |  Methods defined here:
     |  
     |  __init__(self, site, title=None, ns=None)
     |      Initializer.
     |      
     |      @param site: data repository
     |      @type site: pywikibot.site.DataSite
     |      @param title: id number of item, "Q###",
     |                    -1 or None for an empty item.
     |      @type title: str
     |      @type ns: namespace
     |      @type ns: Namespace instance, or int, or None
     |          for default item_namespace
     |  
     |  concept_uri(self)
     |      Return the full concept URI.
     |  
     |  concept_url = call(*a, **kw)
     |  
     |  get(self, force=False, get_redirect=False, *args, **kwargs)
     |      Fetch all item data, and cache it.
     |      
     |      @param force: override caching
     |      @type force: bool
     |      @param get_redirect: return the item content, do not follow the
     |                           redirect, do not raise an exception.
     |      @type get_redirect: bool
     |      @raise NotImplementedError: a value in args or kwargs
     |  
     |  getRedirectTarget(self)
     |      Return the redirect target for this page.
     |  
     |  getSitelink(self, site, force=False)
     |      Return the title for the specific site.
     |      
     |      If the item doesn't have that language, raise NoPage.
     |      
     |      @param site: Site to find the linked page of.
     |      @type site: pywikibot.Site or database name
     |      @param force: override caching
     |      
     |      @rtype: unicode
     |  
     |  isRedirectPage(self)
     |      Return True if item is a redirect, False if not or not existing.
     |  
     |  iterlinks(self, family=None)
     |      Iterate through all the sitelinks.
     |      
     |      @param family: string/Family object which represents what family of
     |                     links to iterate
     |      @type family: str|pywikibot.family.Family
     |      @return: iterator of pywikibot.Page objects
     |      @rtype: iterator
     |  
     |  mergeInto(self, item, **kwargs)
     |      Merge the item into another item.
     |      
     |      @param item: The item to merge into
     |      @type item: ItemPage
     |  
     |  removeSitelink(self, site, **kwargs)
     |      Remove a sitelink.
     |      
     |      A site can either be a Site object, or it can be a dbName.
     |  
     |  removeSitelinks(self, sites, **kwargs)
     |      Remove sitelinks.
     |      
     |      Sites should be a list, with values either
     |      being Site objects, or dbNames.
     |  
     |  setSitelink(self, sitelink, **kwargs)
     |      Set sitelinks. Calls setSitelinks().
     |      
     |      A sitelink can either be a Page object,
     |      or a {'site':dbname,'title':title} dictionary.
     |  
     |  setSitelinks(self, sitelinks, **kwargs)
     |      Set sitelinks.
     |      
     |      Sitelinks should be a list. Each item in the
     |      list can either be a Page object, or a dict
     |      with a value for 'site' and 'title'.
     |  
     |  set_redirect_target(self, target_page, create=False, force=False, keep_section=False, save=True, **kwargs)
     |      Make the item redirect to another item.
     |      
     |      You need to define an extra argument to make this work, like save=True
     |      
     |      @param target_page: target of the redirect, this argument is required.
     |      @type target_page: ItemPage or string
     |      @param force: if true, it sets the redirect target even the page
     |          is not redirect.
     |      @type force: bool
     |  
     |  title(self, **kwargs)
     |      Return ID as title of the ItemPage.
     |      
     |      If the ItemPage was lazy-loaded via ItemPage.fromPage, this method
     |      will fetch the wikibase item ID for the page, potentially raising
     |      NoPage with the page on the linked wiki if it does not exist, or
     |      does not have a corresponding wikibase item ID.
     |      
     |      This method also refreshes the title if the id property was set.
     |      i.e. item.id = 'Q60'
     |      
     |      All optional keyword parameters are passed to the superclass.
     |  
     |  toJSON(self, diffto=None)
     |      Create JSON suitable for Wikibase API.
     |      
     |      When diffto is provided, JSON representing differences
     |      to the provided data is created.
     |      
     |      @param diffto: JSON containing claim data
     |      @type diffto: dict
     |      
     |      @rtype: dict
     |  
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |  
     |  fromPage(page, lazy_load=False) from builtins.type
     |      Get the ItemPage for a Page that links to it.
     |      
     |      @param page: Page to look for corresponding data item
     |      @type page: pywikibot.Page
     |      @param lazy_load: Do not raise NoPage if either page or corresponding
     |                        ItemPage does not exist.
     |      @type lazy_load: bool
     |      @rtype: ItemPage
     |      
     |      @raise NoPage: There is no corresponding ItemPage for the page
     |      @raise WikiBaseError: The site of the page has no data repository.
     |  
     |  from_entity_uri(site, uri, lazy_load=False) from builtins.type
     |      Get the ItemPage from its entity uri.
     |      
     |      @param site: The Wikibase site for the item.
     |      @type site: pywikibot.site.DataSite
     |      @param uri: Entity uri for the Wikibase item.
     |      @type uri: basestring
     |      @param lazy_load: Do not raise NoPage if ItemPage does not exist.
     |      @type lazy_load: bool
     |      @rtype: ItemPage
     |      
     |      @raise TypeError: Site is not a valid DataSite.
     |      @raise ValueError: Site does not match the base of the provided uri.
     |      @raise NoPage: Uri points to non-existent item.
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |  
     |  entity_type = 'item'
     |  
     |  title_pattern = r'^(Q[1-9]\d*|-1)$'
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from WikibasePage:
     |  
     |  __delattr__(self, attr)
     |      Attribute deleter. Deprecates lastrevid.
     |  
     |  __getattribute__(self, name)
     |      Low-level attribute getter. Deprecates lastrevid.
     |  
     |  __setattr__(self, attr, value)
     |      Attribute setter. Deprecates lastrevid.
     |  
     |  addClaim(self, claim, bot=True, **kwargs)
     |      Add a claim to the entity.
     |      
     |      @param claim: The claim to add
     |      @type claim: Claim
     |      @param bot: Whether to flag as bot (if possible)
     |      @type bot: bool
     |      @keyword asynchronous: if True, launch a separate thread to add claim
     |          asynchronously
     |      @type asynchronous: bool
     |      @keyword callback: a callable object that will be called after the
     |          claim has been added. It must take two arguments:
     |          (1) a WikibasePage object, and (2) an exception instance,
     |          which will be None if the entity was saved successfully. This is
     |          intended for use by bots that need to keep track of which saves
     |          were successful.
     |      @type callback: callable
     |  
     |  botMayEdit(self)
     |      Return whether bots may edit this page.
     |      
     |      Because there is currently no system to mark a page that it shouldn't
     |      be edited by bots on Wikibase pages it always returns True. The content
     |      of the page is not text but a dict, the original way (to search for a
     |      template) doesn't apply.
     |      
     |      @return: True
     |      @rtype: bool
     |  
     |  editAliases(self, aliases, **kwargs)
     |      Edit entity aliases.
     |      
     |      Aliases should be a dict, with the key
     |      as a language or a site object. The
     |      value should be a list of strings.
     |  
     |  editDescriptions(self, descriptions, **kwargs)
     |      Edit entity descriptions.
     |      
     |      Descriptions should be a dict, with the key
     |      as a language or a site object. The
     |      value should be the string to set it to.
     |      You can set it to '' to remove the description.
     |  
     |  editEntity(self, data=None, **kwargs)
     |      Edit an entity using Wikibase wbeditentity API.
     |      
     |      This function is wrapped around by:
     |       - editLabels
     |       - editDescriptions
     |       - editAliases
     |       - ItemPage.setSitelinks
     |      
     |      @param data: Data to be saved
     |      @type data: dict, or None to save the current content of the entity.
     |      @keyword asynchronous: if True, launch a separate thread to edit
     |          asynchronously
     |      @type asynchronous: bool
     |      @keyword callback: a callable object that will be called after the
     |          entity has been updated. It must take two arguments: (1) a
     |          WikibasePage object, and (2) an exception instance, which will be
     |          None if the page was saved successfully. This is intended for use
     |          by bots that need to keep track of which saves were successful.
     |      @type callback: callable
     |  
     |  editLabels(self, labels, **kwargs)
     |      Edit entity labels.
     |      
     |      Labels should be a dict, with the key
     |      as a language or a site object. The
     |      value should be the string to set it to.
     |      You can set it to '' to remove the label.
     |  
     |  exists(self)
     |      Determine if an entity exists in the data repository.
     |      
     |      @rtype: bool
     |  
     |  getID(self, numeric=False, force=False)
     |      Get the entity identifier.
     |      
     |      @param numeric: Strip the first letter and return an int
     |      @type numeric: bool
     |      @param force: Force an update of new data
     |      @type force: bool
     |  
     |  getdbName(self, site)
     |      Helper function to obtain a dbName for a Site.
     |      
     |      @param site: The site to look up.
     |      @type site: Site
     |  
     |  namespace(self)
     |      Return the number of the namespace of the entity.
     |      
     |      @return: Namespace id
     |      @rtype: int
     |  
     |  removeClaims(self, claims, **kwargs)
     |      Remove the claims from the entity.
     |      
     |      @param claims: list of claims to be removed
     |      @type claims: list or pywikibot.Claim
     |  
     |  ----------------------------------------------------------------------
     |  Class methods inherited from WikibasePage:
     |  
     |  is_valid_id(entity_id) from builtins.type
     |      Whether the string can be a valid id of the entity type.
     |      
     |      @param entity_id: The ID to test.
     |      @type entity_id: basestring
     |      
     |      @rtype: bool
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from WikibasePage:
     |  
     |  latest_revision_id
     |      Get the revision identifier for the most recent revision of the entity.
     |      
     |      @rtype: long
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from BasePage:
     |  
     |  __hash__(self)
     |      A stable identifier to be used as a key in hash-tables.
     |      
     |      This relies on the fact that the string
     |      representation of an instance can not change after the construction.
     |  
     |  __repr__(self)
     |      Return a more complete string representation.
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  applicable_protections(self)
     |      Return the protection types allowed for that page.
     |      
     |      If the page doesn't exists it only returns "create". Otherwise it
     |      returns all protection types provided by the site, except "create".
     |      It also removes "upload" if that page is not in the File namespace.
     |      
     |      It is possible, that it returns an empty set, but only if original
     |      protection types were removed.
     |      
     |      @return: set of unicode
     |      @rtype: set
     |  
     |  aslink(self, force_interwiki=False, textlink=False, no_interwiki=False, forceInterwiki='[deprecated name of force_interwiki]', noInterwiki='[deprecated name of no_interwiki]')
     |      DEPRECATED: use self.title(as_link=True) instead.
     |  
     |  autoFormat(self)
     |      Return L{date.getAutoFormat} dictName and value, if any.
     |      
     |      Value can be a year, date, etc., and dictName is 'YearBC',
     |      'Year_December', or another dictionary name. Please note that two
     |      entries may have exactly the same autoFormat, but be in two
     |      different namespaces, as some sites have categories with the
     |      same names. Regular titles return (None, None).
     |  
     |  backlinks(self, follow_redirects=True, filter_redirects=None, namespaces=None, total=None, content=False, step=NotImplemented, followRedirects='[deprecated name of follow_redirects]', filterRedirects='[deprecated name of filter_redirects]')
     |      Return an iterator for pages that link to this page.
     |      
     |      @param follow_redirects: if True, also iterate pages that link to a
     |          redirect pointing to the page.
     |      @param filter_redirects: if True, only iterate redirects; if False,
     |          omit redirects; if None, do not filter
     |      @param namespaces: only iterate pages in these namespaces
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each referring page (default False)
     |  
     |  canBeEdited(self)
     |      Determine whether the page may be edited.
     |      
     |      This returns True if and only if:
     |        - page is unprotected, and bot has an account for this site, or
     |        - page is protected, and bot has a sysop account for this site.
     |      
     |      @rtype: bool
     |  
     |  categories(self, with_sort_key=False, total=None, content=False, nofollow_redirects=NotImplemented, get_redirect=NotImplemented, step=NotImplemented, withSortKey='[deprecated name of with_sort_key]')
     |      Iterate categories that the article is in.
     |      
     |      @param with_sort_key: if True, include the sort key in each Category.
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each category description page (default False)
     |      @return: a generator that yields Category objects.
     |      @rtype: generator
     |  
     |  change_category(self, old_cat, new_cat, summary=None, sort_key=None, in_place=True, include=[], comment='[deprecated name of summary]', oldCat='[deprecated name of old_cat]', newCat='[deprecated name of new_cat]', sortKey='[deprecated name of sort_key]', inPlace='[deprecated name of in_place]')
     |      Remove page from oldCat and add it to newCat.
     |      
     |      @param old_cat: category to be removed
     |      @type old_cat: Category
     |      @param new_cat: category to be added, if any
     |      @type new_cat: Category or None
     |      
     |      @param summary: string to use as an edit summary
     |      
     |      @param sort_key: sortKey to use for the added category.
     |          Unused if newCat is None, or if inPlace=True
     |          If sortKey=True, the sortKey used for oldCat will be used.
     |      
     |      @param in_place: if True, change categories in place rather than
     |                    rearranging them.
     |      
     |      @param include: list of tags not to be disabled by default in relevant
     |          textlib functions, where CategoryLinks can be searched.
     |      @type include: list
     |      
     |      @return: True if page was saved changed, otherwise False.
     |      @rtype: bool
     |  
     |  clear_cache(self)
     |      Clear the cached attributes of the page.
     |  
     |  contributingUsers(self, total=None, step=NotImplemented)
     |      Deprecated; use contributors() instead.
     |      
     |      
     |      Return a set of usernames (or IPs) of users who edited this page.
     |      
     |      @param total: iterate no more than this number of revisions in total
     |      
     |      @rtype: set
     |  
     |  contributors(self, total=None, starttime=None, endtime=None, step=NotImplemented)
     |      Compile contributors of this page with edit counts.
     |      
     |      @param total: iterate no more than this number of revisions in total
     |      @param starttime: retrieve revisions starting at this Timestamp
     |      @param endtime: retrieve revisions ending at this Timestamp
     |      
     |      @return: number of edits for each username
     |      @rtype: L{collections.Counter}
     |  
     |  coordinates(self, primary_only=False)
     |      Return a list of Coordinate objects for points on the page.
     |      
     |      Uses the MediaWiki extension GeoData.
     |      
     |      @param primary_only: Only return the coordinate indicated to be primary
     |      @return: A list of Coordinate objects
     |      @rtype: list
     |  
     |  data_item(self)
     |      Convenience function to get the Wikibase item of a page.
     |      
     |      @rtype: ItemPage
     |  
     |  defaultsort(self, force=False)
     |      Extract value of the {{DEFAULTSORT:}} magic word from the page.
     |      
     |      @param force: force updating from the live site
     |      
     |      @rtype: unicode or None
     |  
     |  delete(self, reason=None, prompt=True, mark=False, quit=False, throttle=NotImplemented)
     |      Delete the page from the wiki. Requires administrator status.
     |      
     |      @param reason: The edit summary for the deletion, or rationale
     |          for deletion if requesting. If None, ask for it.
     |      @param prompt: If true, prompt user for confirmation before deleting.
     |      @param mark: If true, and user does not have sysop rights, place a
     |          speedy-deletion request on the page instead. If false, non-sysops
     |          will be asked before marking pages for deletion.
     |      @param quit: show also the quit option, when asking for confirmation.
     |  
     |  editTime(self)
     |      Return timestamp of last revision to page.
     |      
     |      @rtype: pywikibot.Timestamp
     |  
     |  embeddedin(self, filter_redirects=None, namespaces=None, total=None, content=False, step=NotImplemented)
     |      Return an iterator for pages that embed this page as a template.
     |      
     |      @param filter_redirects: if True, only iterate redirects; if False,
     |          omit redirects; if None, do not filter
     |      @param namespaces: only iterate pages in these namespaces
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each embedding page (default False)
     |  
     |  encoding(self)
     |      DEPRECATED: use self.site.encoding instead.
     |  
     |  expand_text(self, force=False, includecomments=False, refresh='[deprecated name of force]')
     |      Return the page text with all templates and parser words expanded.
     |      
     |      @param force: force updating from the live site
     |      @param includecomments: Also strip comments if includecomments
     |          parameter is not True.
     |      
     |      @rtype unicode or None
     |  
     |  extlinks(self, total=None, step=NotImplemented)
     |      Iterate all external URLs (not interwiki links) from this page.
     |      
     |      @param total: iterate no more than this number of pages in total
     |      @return: a generator that yields unicode objects containing URLs.
     |      @rtype: generator
     |  
     |  fullVersionHistory(self, reverse=False, total=None, reverseOrder='[deprecated name of reverse]', rollback=NotImplemented, step=NotImplemented)
     |      Deprecated; use Page.revisions(content=True) instead.
     |      
     |      Iterate previous versions including wikitext.
     |      
     |              Takes same arguments as getVersionHistory.
     |  
     |  full_url(self)
     |      Return the full URL.
     |  
     |  getCategoryRedirectTarget(self)
     |      If this is a category redirect, return the target category title.
     |      
     |      @rtype: Category
     |  
     |  getCreator(self)
     |      Get the first revision of the page.
     |      
     |      DEPRECATED: Use Page.oldest_revision.
     |      
     |      @rtype: tuple(username, Timestamp)
     |  
     |  getDeletedRevision(self, timestamp, content=False, retrieveText='[deprecated name of content]')
     |      Return a particular deleted revision by timestamp.
     |      
     |      @return: a list of [date, editor, comment, text, restoration
     |          marker]. text will be None, unless content is True (or has
     |          been retrieved earlier). If timestamp is not found, returns
     |          None.
     |      @rtype: list
     |  
     |  getLatestEditors(self, total=1, limit='[deprecated name of total]')
     |      Get a list of revision informations of the last total edits.
     |      
     |      DEPRECATED: Use Page.revisions.
     |      
     |      @param total: iterate no more than this number of revisions in total
     |      @return: list of dict, each dict containing the username and Timestamp
     |      @rtype: list
     |  
     |  getMovedTarget(self)
     |      Return a Page object for the target this Page was moved to.
     |      
     |      DEPRECATED: Use Page.moved_target().
     |      
     |      If this page was not moved, it will raise a NoPage exception.
     |      This method also works if the source was already deleted.
     |      
     |      @rtype: pywikibot.Page
     |      @raises NoPage: this page was not moved
     |  
     |  getOldVersion(self, oldid, force=False, get_redirect=False, sysop=False, throttle=NotImplemented, change_edit_time=NotImplemented)
     |      Return text of an old revision of this page; same options as get().
     |      
     |      @param oldid: The revid of the revision desired.
     |      @rtype: unicode
     |  
     |  getReferences(self, follow_redirects=True, with_template_inclusion=True, only_template_inclusion=False, filter_redirects=False, namespaces=None, total=None, content=False, step=NotImplemented, withTemplateInclusion='[deprecated name of with_template_inclusion]', onlyTemplateInclusion='[deprecated name of only_template_inclusion]', redirectsOnly='[deprecated name of filter_redirects]')
     |      Return an iterator all pages that refer to or embed the page.
     |      
     |      If you need a full list of referring pages, use
     |      C{pages = list(s.getReferences())}
     |      
     |      @param follow_redirects: if True, also iterate pages that link to a
     |          redirect pointing to the page.
     |      @param with_template_inclusion: if True, also iterate pages where self
     |          is used as a template.
     |      @param only_template_inclusion: if True, only iterate pages where self
     |          is used as a template.
     |      @param filter_redirects: if True, only iterate redirects to self.
     |      @param namespaces: only iterate pages in these namespaces
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each referring page (default False)
     |  
     |  getRestrictions(self)
     |      DEPRECATED. Use self.protection() instead.
     |  
     |  getTemplates(self, tllimit=NotImplemented)
     |      DEPRECATED. Use templates().
     |  
     |  getVersionHistory(self, reverse=False, total=None, forceReload=NotImplemented, revCount='[deprecated name of total]', step=NotImplemented, getAll=NotImplemented, reverseOrder='[deprecated name of reverse]')
     |      Deprecated; use Page.revisions() instead.
     |      
     |      
     |      Load the version history page and return history information.
     |      
     |      Return value is a list of tuples, where each tuple represents one
     |      edit and is built of revision id, edit date/time, user name, and
     |      edit summary. Starts with the most current revision, unless
     |      reverse is True.
     |      
     |      @param total: iterate no more than this number of revisions in total
     |  
     |  getVersionHistoryTable(self, reverse=False, total=None, forceReload=NotImplemented, reverseOrder='[deprecated name of reverse]', step=NotImplemented)
     |      Return the version history as a wiki table.
     |  
     |  imagelinks(self, total=None, content=False, followRedirects=NotImplemented, loose=NotImplemented, step=NotImplemented)
     |      Iterate FilePage objects for images displayed on this Page.
     |      
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each image description page (default False)
     |      @return: a generator that yields FilePage objects.
     |  
     |  interwiki(self, expand=True)
     |      Iterate interwiki links in the page text, excluding language links.
     |      
     |      @param expand: if True (default), include interwiki links found in
     |          templates transcluded onto this page; if False, only iterate
     |          interwiki links found in this page's own wikitext
     |      @type expand: bool
     |      
     |      @return: a generator that yields Link objects
     |      @rtype: generator
     |  
     |  isAutoTitle(self)
     |      Return True if title of this Page is in the autoFormat dict.
     |  
     |  isCategory(self)
     |      DEPRECATED: use is_categorypage instead.
     |  
     |  isCategoryRedirect(self)
     |      Return True if this is a category redirect page, False otherwise.
     |      
     |      @rtype: bool
     |  
     |  isDisambig(self)
     |      Return True if this is a disambiguation page, False otherwise.
     |      
     |      By default, it uses the the Disambiguator extension's result. The
     |      identification relies on the presense of the __DISAMBIG__ magic word
     |      which may also be transcluded.
     |      
     |      If the Disambiguator extension isn't activated for the given site,
     |      the identification relies on the presence of specific templates.
     |      First load a list of template names from the Family file;
     |      if the value in the Family file is None or no entry was made, look for
     |      the list on [[MediaWiki:Disambiguationspage]]. If this page does not
     |      exist, take the MediaWiki message. 'Template:Disambig' is always
     |      assumed to be default, and will be appended regardless of its
     |      existence.
     |      
     |      @rtype: bool
     |  
     |  isEmpty(self)
     |      Deprecated; use interwiki.page_empty_check(page) instead.
     |      
     |      
     |      Return True if the page text has less than 4 characters.
     |      
     |      Character count ignores language links and category links.
     |      Can raise the same exceptions as get().
     |      
     |      @rtype: bool
     |  
     |  isFlowPage(self)
     |      DEPRECATED: use self.is_flow_page instead.
     |  
     |  isImage(self)
     |      DEPRECATED: use is_filepage instead.
     |  
     |  isIpEdit(self)
     |      Return True if last editor was unregistered.
     |      
     |      @rtype: bool
     |  
     |  isStaticRedirect(self, force=False)
     |      Determine whether the page is a static redirect.
     |      
     |      A static redirect must be a valid redirect, and contain the magic word
     |      __STATICREDIRECT__.
     |      
     |      @param force: Bypass local caching
     |      @type force: bool
     |      
     |      @rtype: bool
     |  
     |  isTalkPage(self)
     |      Return True if this page is in any talk namespace.
     |  
     |  is_categorypage(self)
     |      Return True if the page is a Category, False otherwise.
     |  
     |  is_filepage(self)
     |      Return True if this is an file description page, False otherwise.
     |  
     |  is_flow_page(self)
     |      Whether a page is a Flow page.
     |      
     |      @rtype: bool
     |  
     |  iterlanglinks(self, total=None, include_obsolete=False, step=NotImplemented)
     |      Iterate all inter-language links on this page.
     |      
     |      @param total: iterate no more than this number of pages in total
     |      @param include_obsolete: if true, yield even Link object whose site
     |                               is obsolete
     |      @type include_obsolete: bool
     |      
     |      @return: a generator that yields Link objects.
     |      @rtype: generator
     |  
     |  itertemplates(self, total=None, content=False, step=NotImplemented)
     |      Iterate Page objects for templates used on this Page.
     |      
     |      Template parameters are ignored. This method only returns embedded
     |      templates, not template pages that happen to be referenced through
     |      a normal link.
     |      
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each template (default False)
     |      @param content: bool
     |  
     |  langlinks(self, include_obsolete=False)
     |      Return a list of all inter-language Links on this page.
     |      
     |      @param include_obsolete: if true, return even Link objects whose site
     |                               is obsolete
     |      @type include_obsolete: bool
     |      
     |      @return: list of Link objects.
     |      @rtype: list
     |  
     |  lastNonBotUser(self)
     |      Return name or IP address of last human/non-bot user to edit page.
     |      
     |      Determine the most recent human editor out of the last revisions.
     |      If it was not able to retrieve a human user, returns None.
     |      
     |      If the edit was done by a bot which is no longer flagged as 'bot',
     |      i.e. which is not returned by Site.botusers(), it will be returned
     |      as a non-bot edit.
     |      
     |      @rtype: unicode
     |  
     |  latestRevision(self)
     |      Deprecated; use latest_revision_id instead.
     |      
     |      Return the current revision id for this page.
     |  
     |  linkedPages(self, namespaces=None, total=None, content=False, step=NotImplemented)
     |      Iterate Pages that this Page links to.
     |      
     |      Only returns pages from "normal" internal links. Image and category
     |      links are omitted unless prefixed with ":". Embedded templates are
     |      omitted (but links within them are returned). All interwiki and
     |      external links are omitted.
     |      
     |      @param namespaces: only iterate links in these namespaces
     |      @param namespaces: int, or list of ints
     |      @param total: iterate no more than this number of pages in total
     |      @type total: int
     |      @param content: if True, retrieve the content of the current version
     |          of each linked page (default False)
     |      @type content: bool
     |      
     |      @return: a generator that yields Page objects.
     |      @rtype: generator
     |  
     |  loadDeletedRevisions(self, total=None, step=NotImplemented)
     |      Retrieve deleted revisions for this Page.
     |      
     |      Stores all revisions' timestamps, dates, editors and comments in
     |      self._deletedRevs attribute.
     |      
     |      @return: iterator of timestamps (which can be used to retrieve
     |          revisions later on).
     |      @rtype: generator
     |  
     |  markDeletedRevision(self, timestamp, undelete=True)
     |      Mark the revision identified by timestamp for undeletion.
     |      
     |      @param undelete: if False, mark the revision to remain deleted.
     |      @type undelete: bool
     |  
     |  merge_history(self, dest, timestamp=None, reason=None)
     |      Merge revisions from this page into another page.
     |      
     |      See L{APISite.merge_history} for details.
     |      
     |      @param dest: Destination page to which revisions will be merged
     |      @type dest: pywikibot.Page
     |      @param timestamp: Revisions from this page dating up to this timestamp
     |          will be merged into the destination page (if not given or False,
     |          all revisions will be merged)
     |      @type timestamp: pywikibot.Timestamp
     |      @param reason: Optional reason for the history merge
     |      @type reason: str
     |  
     |  move(self, newtitle, reason=None, movetalk=True, sysop=False, noredirect=False, throttle=NotImplemented, deleteAndMove='[deprecated name of noredirect]', movetalkpage='[deprecated name of movetalk]')
     |      Move this page to a new title.
     |      
     |      @param newtitle: The new page title.
     |      @param reason: The edit summary for the move.
     |      @param movetalk: If true, move this page's talk page (if it exists)
     |      @param sysop: Try to move using sysop account, if available
     |      @param noredirect: if move succeeds, delete the old page
     |          (usually requires sysop privileges, depending on wiki settings)
     |  
     |  moved_target(self)
     |      Return a Page object for the target this Page was moved to.
     |      
     |      If this page was not moved, it will raise a NoMoveTarget exception.
     |      This method also works if the source was already deleted.
     |      
     |      @rtype: pywikibot.Page
     |      @raises NoMoveTarget: this page was not moved
     |  
     |  pageAPInfo(self)
     |      Deprecated; use latest_revision_id instead.
     |      
     |      Return the current revision id for this page.
     |  
     |  page_image(self)
     |      Return the most appropriate image on the page.
     |      
     |      Uses the MediaWiki extension PageImages.
     |      
     |      @return: A FilePage object
     |      @rtype: FilePage
     |  
     |  permalink(self, oldid=None, percent_encoded=True, with_protocol=False)
     |      Return the permalink URL of an old revision of this page.
     |      
     |      @param oldid: The revid of the revision desired.
     |      @param percent_encoded: if false, the link will be provided
     |          without title uncoded.
     |      @param with_protocol: if true, http or https prefixes will be
     |          included before the double slash.
     |      @rtype: unicode
     |  
     |  preloadText(self)
     |      The text returned by EditFormPreloadText.
     |      
     |      See API module "info".
     |      
     |      Application: on Wikisource wikis, text can be preloaded even if
     |      a page does not exist, if an Index page is present.
     |      
     |      @rtype: unicode
     |  
     |  previousRevision(self)
     |      Return the revision id for the previous revision.
     |      
     |      DEPRECATED: Use latest_revision.parent_id instead.
     |      
     |      @rtype: long
     |      
     |      @raise AssertionError: Use on MediaWiki prior to v1.16.
     |  
     |  properties(self, force=False)
     |      Return the properties of the page.
     |      
     |      @param force: force updating from the live site
     |      
     |      @rtype: dict
     |  
     |  protect(self, edit=False, move=False, create=None, upload=None, unprotect=False, reason=None, prompt=None, protections=None, **kwargs, throttle=NotImplemented)
     |      Protect or unprotect a wiki page. Requires administrator status.
     |      
     |      Valid protection levels (in MediaWiki 1.12) are '' (equivalent to
     |      'none'), 'autoconfirmed', and 'sysop'. If None is given, however,
     |      that protection will be skipped.
     |      
     |      @param protections: A dict mapping type of protection to protection
     |          level of that type.
     |      @type protections: dict
     |      @param reason: Reason for the action
     |      @type reason: basestring
     |      @param prompt: Whether to ask user for confirmation (deprecated).
     |                     Defaults to protections is None
     |      @type prompt: bool
     |  
     |  protection(self)
     |      Return a dictionary reflecting page protections.
     |      
     |      @rtype: dict
     |  
     |  purge(self, **kwargs)
     |      Purge the server's cache for this page.
     |      
     |      @rtype: bool
     |  
     |  put(self, newtext, summary=None, watch=None, minor=True, botflag=None, force=False, asynchronous=False, callback=None, **kwargs, comment='[deprecated name of summary]', watchArticle='[deprecated name of watch]', minorEdit='[deprecated name of minor]', async='[deprecated name of asynchronous]')
     |      Save the page with the contents of the first argument as the text.
     |      
     |      This method is maintained primarily for backwards-compatibility.
     |      For new code, using Page.save() is preferred. See save() method
     |      docs for all parameters not listed here.
     |      
     |      @param newtext: The complete text of the revised page.
     |      @type newtext: unicode
     |  
     |  put_async(self, newtext, summary=None, watch=None, minor=True, botflag=None, force=False, callback=None, **kwargs, comment='[deprecated name of summary]', watchArticle='[deprecated name of watch]', minorEdit='[deprecated name of minor]')
     |      Deprecated; use put(asynchronous=True) or save(asynchronous=True) instead.
     |      
     |      
     |      Put page on queue to be saved to wiki asynchronously.
     |      
     |      Asynchronous version of put (takes the same arguments), which places
     |      pages on a queue to be saved by a daemon thread. All arguments are
     |      the same as for .put(). This version is maintained solely for
     |      backwards-compatibility.
     |  
     |  revision_count(self, contributors=None)
     |      Determine number of edits from a set of contributors.
     |      
     |      @param contributors: contributor usernames
     |      @type contributors: iterable of str
     |      
     |      @return: number of edits for all provided usernames
     |      @rtype: int
     |  
     |  revisions(self, reverse=False, total=None, content=False, rollback=False, starttime=None, endtime=None, getText='[deprecated name of content]', reverseOrder='[deprecated name of reverse]', step=NotImplemented)
     |      Generator which loads the version history as Revision instances.
     |  
     |  save(self, summary=None, watch=None, minor=True, botflag=None, force=False, asynchronous=False, callback=None, apply_cosmetic_changes=None, quiet=False, **kwargs, comment='[deprecated name of summary]', sysop=NotImplemented, async='[deprecated name of asynchronous]')
     |      Save the current contents of page's text to the wiki.
     |      
     |      @param summary: The edit summary for the modification (optional, but
     |          most wikis strongly encourage its use)
     |      @type summary: unicode
     |      @param watch: Specify how the watchlist is affected by this edit, set
     |          to one of "watch", "unwatch", "preferences", "nochange":
     |          * watch: add the page to the watchlist
     |          * unwatch: remove the page from the watchlist
     |          * preferences: use the preference settings (Default)
     |          * nochange: don't change the watchlist
     |          If None (default), follow bot account's default settings
     |      
     |          For backward compatibility watch parameter may also be boolean:
     |          if True, add or if False, remove this Page to/from bot
     |          user's watchlist.
     |      @type watch: string, bool (deprecated) or None
     |      @param minor: if True, mark this edit as minor
     |      @type minor: bool
     |      @param botflag: if True, mark this edit as made by a bot (default:
     |          True if user has bot status, False if not)
     |      @param force: if True, ignore botMayEdit() setting
     |      @type force: bool
     |      @param asynchronous: if True, launch a separate thread to save
     |          asynchronously
     |      @param callback: a callable object that will be called after the
     |          page put operation. This object must take two arguments: (1) a
     |          Page object, and (2) an exception instance, which will be None
     |          if the page was saved successfully. The callback is intended for
     |          use by bots that need to keep track of which saves were
     |          successful.
     |      @param apply_cosmetic_changes: Overwrites the cosmetic_changes
     |          configuration value to this value unless it's None.
     |      @type apply_cosmetic_changes: bool or None
     |      @param quiet: enable/disable successful save operation message;
     |          defaults to False.
     |          In asynchronous mode, if True, it is up to the calling bot to
     |          manage the output e.g. via callback.
     |      @type quiet: bool
     |  
     |  section(self)
     |      Return the name of the section this Page refers to.
     |      
     |      The section is the part of the title following a '#' character, if
     |      any. If no section is present, return None.
     |      
     |      @rtype: unicode
     |  
     |  sectionFreeTitle(self, underscore=False)
     |      DEPRECATED: use self.title(with_section=False) instead.
     |  
     |  templates(self, content=False, get_redirect=NotImplemented)
     |      Return a list of Page objects for templates used on this Page.
     |      
     |      Template parameters are ignored. This method only returns embedded
     |      templates, not template pages that happen to be referenced through
     |      a normal link.
     |      
     |      @param content: if True, retrieve the content of the current version
     |          of each template (default False)
     |      @param content: bool
     |  
     |  titleForFilename(self)
     |      DEPRECATED: use self.title(as_filename=True) instead.
     |  
     |  titleWithoutNamespace(self, underscore=False)
     |      DEPRECATED: use self.title(with_ns=False) instead.
     |  
     |  toggleTalkPage(self)
     |      Return other member of the article-talk page pair for this Page.
     |      
     |      If self is a talk page, returns the associated content page;
     |      otherwise, returns the associated talk page. The returned page need
     |      not actually exist on the wiki.
     |      
     |      @return: Page or None if self is a special page.
     |      @rtype: Page or None
     |  
     |  touch(self, callback=None, botflag=False, **kwargs)
     |      Make a touch edit for this page.
     |      
     |      See save() method docs for all parameters.
     |      The following parameters will be overridden by this method:
     |      - summary, watch, minor, force, asynchronous
     |      
     |      Parameter botflag is False by default.
     |      
     |      minor and botflag parameters are set to False which prevents hiding
     |      the edit when it becomes a real edit due to a bug.
     |  
     |  undelete(self, reason=None, comment='[deprecated name of reason]', throttle=NotImplemented)
     |      Undelete revisions based on the markers set by previous calls.
     |      
     |      If no calls have been made since loadDeletedRevisions(), everything
     |      will be restored.
     |      
     |      Simplest case::
     |      
     |          Page(...).undelete('This will restore all revisions')
     |      
     |      More complex::
     |      
     |          pg = Page(...)
     |          revs = pg.loadDeletedRevisions()
     |          for rev in revs:
     |              if ... #decide whether to undelete a revision
     |                  pg.markDeletedRevision(rev) #mark for undeletion
     |          pg.undelete('This will restore only selected revisions.')
     |      
     |      @param reason: Reason for the action.
     |      @type reason: basestring
     |  
     |  urlname(self)
     |      Return the Page title encoded for use in an URL.
     |      
     |      DEPRECATED: use self.title(as_url=True) instead.
     |  
     |  userName(self)
     |      Return name or IP address of last user to edit page.
     |      
     |      @rtype: unicode
     |  
     |  version(self)
     |      Return MediaWiki version number of the page site.
     |      
     |      This is needed to use @need_version() decorator for methods of
     |      Page objects.
     |  
     |  watch(self, unwatch=False)
     |      Add or remove this page to/from bot account's watchlist.
     |      
     |      @param unwatch: True to unwatch, False (default) to watch.
     |      @type unwatch: bool
     |      
     |      @return: True if successful, False otherwise.
     |      @rtype: bool
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from BasePage:
     |  
     |  content_model
     |      Return the content model for this page.
     |      
     |      If it cannot be reliably determined via the API,
     |      None is returned.
     |  
     |  data_repository
     |      Return the Site object for the data repository.
     |  
     |  depth
     |      Return the depth/subpage level of the page.
     |  
     |  image_repository
     |      Return the Site object for the image repository.
     |  
     |  latest_revision
     |      Return the current revision for this page.
     |  
     |  oldest_revision
     |      Return the first revision of this page.
     |      
     |      @rtype: L{Revision}
     |  
     |  pageid
     |      Return pageid of the page.
     |      
     |      @return: pageid or 0 if page does not exist
     |      @rtype: int
     |  
     |  previous_revision_id
     |      Deprecated; use latest_revision.parent_id (0 instead of -1 when no parent) instead.
     |      
     |      
     |      Return the revision id for the previous revision of this Page.
     |      
     |      If the page has only one revision, it shall return -1.
     |      
     |      @rtype: long
     |      
     |      @raise AssertionError: Use on MediaWiki prior to v1.16.
     |  
     |  site
     |      Return the Site object for the wiki on which this Page resides.
     |      
     |      @rtype: pywikibot.Site
     |  
     |  text
     |      Return the current (edited) wikitext, loading it if necessary.
     |      
     |      @return: text of the page
     |      @rtype: unicode
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.ComparableMixin:
     |  
     |  __eq__(self, other)
     |      Compare if self is equal to other.
     |  
     |  __ge__(self, other)
     |      Compare if self is greater equals other.
     |  
     |  __gt__(self, other)
     |      Compare if self is greater than other.
     |  
     |  __le__(self, other)
     |      Compare if self is less equals other.
     |  
     |  __lt__(self, other)
     |      Compare if self is less than other.
     |  
     |  __ne__(self, other)
     |      Compare if self is not equal to other.
    
    class Link(pywikibot.tools.ComparableMixin)
     |  A MediaWiki link (local or interwiki).
     |  
     |  Has the following attributes:
     |  
     |    - site: The Site object for the wiki linked to
     |    - namespace: The namespace of the page linked to (int)
     |    - title: The title of the page linked to (unicode); does not include
     |      namespace or section
     |    - section: The section of the page linked to (unicode or None); this
     |      contains any text following a '#' character in the title
     |    - anchor: The anchor text (unicode or None); this contains any text
     |      following a '|' character inside the link
     |  
     |  Method resolution order:
     |      Link
     |      pywikibot.tools.ComparableMixin
     |      builtins.object
     |  
     |  Methods defined here:
     |  
     |  __hash__(self)
     |      A stable identifier to be used as a key in hash-tables.
     |  
     |  __init__(self, text, source=None, default_namespace=0, defaultNamespace='[deprecated name of default_namespace]')
     |      Initializer.
     |      
     |      @param text: the link text (everything appearing between [[ and ]]
     |          on a wiki page)
     |      @type text: unicode
     |      @param source: the Site on which the link was found (not necessarily
     |          the site to which the link refers)
     |      @type source: Site or BasePage
     |      @param default_namespace: a namespace to use if the link does not
     |          contain one (defaults to 0)
     |      @type default_namespace: int
     |      
     |      @raises UnicodeError: text could not be converted to unicode.
     |  
     |  __repr__(self)
     |      Return a more complete string representation.
     |  
     |  __str__(self)
     |      Return a string representation.
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |      
     |      @rtype: unicode
     |  
     |  astext(self, onsite=None)
     |      Return a text representation of the link.
     |      
     |      @param onsite: if specified, present as a (possibly interwiki) link
     |          from the given site; otherwise, present as an internal link on
     |          the source site.
     |  
     |  canonical_title(self)
     |      Return full page title, including localized namespace.
     |  
     |  ns_title(self, onsite=None)
     |      Return full page title, including namespace.
     |      
     |      @param onsite: site object
     |          if specified, present title using onsite local namespace,
     |          otherwise use self canonical namespace.
     |      
     |      @raise pywikibot.Error: no corresponding namespace is found in onsite
     |  
     |  parse(self)
     |      Parse wikitext of the link.
     |      
     |      Called internally when accessing attributes.
     |  
     |  parse_site(self)
     |      Parse only enough text to determine which site the link points to.
     |      
     |      This method does not parse anything after the first ":"; links
     |      with multiple interwiki prefixes (such as "wikt:fr:Parlais") need
     |      to be re-parsed on the first linked wiki to get the actual site.
     |      
     |      @return: The family name and site code for the linked site. If the site
     |          is not supported by the configured families it returns None instead
     |          of a str.
     |      @rtype: tuple
     |  
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |  
     |  create_separated(link, source, default_namespace=0, section=None, label=None) from builtins.type
     |      Create a new instance but overwrite section or label.
     |      
     |      The returned Link instance is already parsed.
     |      
     |      @param link: The original link text.
     |      @type link: str
     |      @param source: The source of the link.
     |      @type source: Site
     |      @param default_namespace: The namespace this link uses when no
     |          namespace is defined in the link text.
     |      @type default_namespace: int
     |      @param section: The new section replacing the one in link. If None
     |          (default) it doesn't replace it.
     |      @type section: None or str
     |      @param label: The new label replacing the one in link. If None
     |          (default) it doesn't replace it.
     |  
     |  fromPage(page, source=None) from builtins.type
     |      Create a Link to a Page.
     |      
     |      @param page: target Page
     |      @type page: Page
     |      @param source: Link from site source
     |      @param source: Site
     |      
     |      @rtype: Link
     |  
     |  langlinkUnsafe(lang, title, source) from builtins.type
     |      Create a "lang:title" Link linked from source.
     |      
     |      Assumes that the lang & title come clean, no checks are made.
     |      
     |      @param lang: target site code (language)
     |      @type lang: str
     |      @param title: target Page
     |      @type title: unicode
     |      @param source: Link from site source
     |      @param source: Site
     |      
     |      @rtype: Link
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |  
     |  anchor
     |      Return the anchor of the link.
     |      
     |      @rtype: unicode
     |  
     |  namespace
     |      Return the namespace of the link.
     |      
     |      @rtype: Namespace
     |  
     |  section
     |      Return the section of the link.
     |      
     |      @rtype: unicode
     |  
     |  site
     |      Return the site of the link.
     |      
     |      @rtype: pywikibot.Site
     |  
     |  title
     |      Return the title of the link.
     |      
     |      @rtype: unicode
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |  
     |  illegal_titles_pattern = re.compile('[\\x00-\\x1f\\x23\\x3c\\x3e\\x5b\...
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.ComparableMixin:
     |  
     |  __eq__(self, other)
     |      Compare if self is equal to other.
     |  
     |  __ge__(self, other)
     |      Compare if self is greater equals other.
     |  
     |  __gt__(self, other)
     |      Compare if self is greater than other.
     |  
     |  __le__(self, other)
     |      Compare if self is less equals other.
     |  
     |  __lt__(self, other)
     |      Compare if self is less than other.
     |  
     |  __ne__(self, other)
     |      Compare if self is not equal to other.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.ComparableMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
    
    class LockedNoPage(LockedPage)
     |  Title is locked against creation.
     |  
     |  Method resolution order:
     |      LockedNoPage
     |      LockedPage
     |      PageSaveRelatedError
     |      PageRelatedError
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Data and other attributes defined here:
     |  
     |  message = 'Page %s does not exist and is locked preventing creation.'
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from PageSaveRelatedError:
     |  
     |  args
     |      Expose args.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from PageRelatedError:
     |  
     |  __init__(self, page, message=None)
     |      Initializer.
     |      
     |      @param page: Page that caused the exception
     |      @type page: Page object
     |  
     |  getPage(self)
     |      Return the page related to the exception.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Error:
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
    
    class LockedPage(PageSaveRelatedError)
     |  Page is locked.
     |  
     |  Method resolution order:
     |      LockedPage
     |      PageSaveRelatedError
     |      PageRelatedError
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Data and other attributes defined here:
     |  
     |  message = 'Page %s is locked.'
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from PageSaveRelatedError:
     |  
     |  args
     |      Expose args.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from PageRelatedError:
     |  
     |  __init__(self, page, message=None)
     |      Initializer.
     |      
     |      @param page: Page that caused the exception
     |      @type page: Page object
     |  
     |  getPage(self)
     |      Return the page related to the exception.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Error:
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
    
    class NoCreateError(PageSaveRelatedError)
     |  Parameter nocreate doesn't allow page creation.
     |  
     |  Method resolution order:
     |      NoCreateError
     |      PageSaveRelatedError
     |      PageRelatedError
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Data and other attributes defined here:
     |  
     |  message = 'Page %s could not be created due to parameter nocreate'
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from PageSaveRelatedError:
     |  
     |  args
     |      Expose args.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from PageRelatedError:
     |  
     |  __init__(self, page, message=None)
     |      Initializer.
     |      
     |      @param page: Page that caused the exception
     |      @type page: Page object
     |  
     |  getPage(self)
     |      Return the page related to the exception.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Error:
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
    
    class NoMoveTarget(PageRelatedError)
     |  Expected move target page not found.
     |  
     |  Method resolution order:
     |      NoMoveTarget
     |      PageRelatedError
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Data and other attributes defined here:
     |  
     |  message = 'Move target page of %s not found.'
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from PageRelatedError:
     |  
     |  __init__(self, page, message=None)
     |      Initializer.
     |      
     |      @param page: Page that caused the exception
     |      @type page: Page object
     |  
     |  getPage(self)
     |      Return the page related to the exception.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Error:
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
     |  
     |  args
    
    class NoPage(PageRelatedError)
     |  Page does not exist.
     |  
     |  Method resolution order:
     |      NoPage
     |      PageRelatedError
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Data and other attributes defined here:
     |  
     |  message = "Page %s doesn't exist."
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from PageRelatedError:
     |  
     |  __init__(self, page, message=None)
     |      Initializer.
     |      
     |      @param page: Page that caused the exception
     |      @type page: Page object
     |  
     |  getPage(self)
     |      Return the page related to the exception.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Error:
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
     |  
     |  args
    
    NoSuchSite = class SiteDefinitionError(Error)
     |  Site does not exist.
     |  
     |  Method resolution order:
     |      SiteDefinitionError
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Methods inherited from Error:
     |  
     |  __init__(self, arg)
     |      Initializer.
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
     |  
     |  args
    
    class NoUsername(Error)
     |  Username is not in user-config.py.
     |  
     |  Method resolution order:
     |      NoUsername
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Methods inherited from Error:
     |  
     |  __init__(self, arg)
     |      Initializer.
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
     |  
     |  args
    
    class OtherPageSaveError(PageSaveRelatedError)
     |  Saving the page has failed due to uncatchable error.
     |  
     |  Method resolution order:
     |      OtherPageSaveError
     |      PageSaveRelatedError
     |      PageRelatedError
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Methods defined here:
     |  
     |  __init__(self, page, reason)
     |      Initializer.
     |      
     |      @param reason: Details of the problem
     |      @type reason: Exception or basestring
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |  
     |  args
     |      Expose args.
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |  
     |  message = 'Edit to page %(title)s failed:\n%(reason)s'
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from PageRelatedError:
     |  
     |  getPage(self)
     |      Return the page related to the exception.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Error:
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
    
    class Page(BasePage)
     |  Page: A MediaWiki page.
     |  
     |  Method resolution order:
     |      Page
     |      BasePage
     |      pywikibot.tools.UnicodeMixin
     |      pywikibot.tools.ComparableMixin
     |      builtins.object
     |  
     |  Methods defined here:
     |  
     |  __init__(self, source, title='', ns=0, defaultNamespace='[deprecated name of ns]', insite=NotImplemented)
     |      Instantiate a Page object.
     |  
     |  set_redirect_target(self, target_page, create=False, force=False, keep_section=False, save=True, **kwargs)
     |      Change the page's text to point to the redirect page.
     |      
     |      @param target_page: target of the redirect, this argument is required.
     |      @type target_page: pywikibot.Page or string
     |      @param create: if true, it creates the redirect even if the page
     |          doesn't exist.
     |      @type create: bool
     |      @param force: if true, it set the redirect target even the page
     |          doesn't exist or it's not redirect.
     |      @type force: bool
     |      @param keep_section: if the old redirect links to a section
     |          and the new one doesn't it uses the old redirect's section.
     |      @type keep_section: bool
     |      @param save: if true, it saves the page immediately.
     |      @type save: bool
     |      @param kwargs: Arguments which are used for saving the page directly
     |          afterwards, like 'summary' for edit summary.
     |  
     |  templatesWithParams(self, get_redirect=NotImplemented)
     |      Return templates used on this Page.
     |      
     |      The templates are extracted by L{textlib.extract_templates_and_params},
     |      with positional arguments placed first in order, and each named
     |      argument appearing as 'name=value'.
     |      
     |      All parameter keys and values for each template are stripped of
     |      whitespace.
     |      
     |      @return: a list of tuples with one tuple for each template invocation
     |          in the page, with the template Page as the first entry and a list
     |          of parameters as the second entry.
     |      @rtype: list of (Page, list)
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |  
     |  raw_extracted_templates
     |      Extract templates using L{textlib.extract_templates_and_params}.
     |      
     |      Disabled parts and whitespace are stripped, except for
     |      whitespace in anonymous positional arguments.
     |      
     |      This value is cached.
     |      
     |      @rtype: list of (str, OrderedDict)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from BasePage:
     |  
     |  __hash__(self)
     |      A stable identifier to be used as a key in hash-tables.
     |      
     |      This relies on the fact that the string
     |      representation of an instance can not change after the construction.
     |  
     |  __repr__(self)
     |      Return a more complete string representation.
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  applicable_protections(self)
     |      Return the protection types allowed for that page.
     |      
     |      If the page doesn't exists it only returns "create". Otherwise it
     |      returns all protection types provided by the site, except "create".
     |      It also removes "upload" if that page is not in the File namespace.
     |      
     |      It is possible, that it returns an empty set, but only if original
     |      protection types were removed.
     |      
     |      @return: set of unicode
     |      @rtype: set
     |  
     |  aslink(self, force_interwiki=False, textlink=False, no_interwiki=False, forceInterwiki='[deprecated name of force_interwiki]', noInterwiki='[deprecated name of no_interwiki]')
     |      DEPRECATED: use self.title(as_link=True) instead.
     |  
     |  autoFormat(self)
     |      Return L{date.getAutoFormat} dictName and value, if any.
     |      
     |      Value can be a year, date, etc., and dictName is 'YearBC',
     |      'Year_December', or another dictionary name. Please note that two
     |      entries may have exactly the same autoFormat, but be in two
     |      different namespaces, as some sites have categories with the
     |      same names. Regular titles return (None, None).
     |  
     |  backlinks(self, follow_redirects=True, filter_redirects=None, namespaces=None, total=None, content=False, step=NotImplemented, followRedirects='[deprecated name of follow_redirects]', filterRedirects='[deprecated name of filter_redirects]')
     |      Return an iterator for pages that link to this page.
     |      
     |      @param follow_redirects: if True, also iterate pages that link to a
     |          redirect pointing to the page.
     |      @param filter_redirects: if True, only iterate redirects; if False,
     |          omit redirects; if None, do not filter
     |      @param namespaces: only iterate pages in these namespaces
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each referring page (default False)
     |  
     |  botMayEdit(self)
     |      Determine whether the active bot is allowed to edit the page.
     |      
     |      This will be True if the page doesn't contain {{bots}} or {{nobots}}
     |      or any other template from edit_restricted_templates list
     |      in x_family.py file, or it contains them and the active bot is allowed
     |      to edit this page. (This method is only useful on those sites that
     |      recognize the bot-exclusion protocol; on other sites, it will always
     |      return True.)
     |      
     |      The framework enforces this restriction by default. It is possible
     |      to override this by setting ignore_bot_templates=True in
     |      user-config.py, or using page.put(force=True).
     |      
     |      @rtype: bool
     |  
     |  canBeEdited(self)
     |      Determine whether the page may be edited.
     |      
     |      This returns True if and only if:
     |        - page is unprotected, and bot has an account for this site, or
     |        - page is protected, and bot has a sysop account for this site.
     |      
     |      @rtype: bool
     |  
     |  categories(self, with_sort_key=False, total=None, content=False, nofollow_redirects=NotImplemented, get_redirect=NotImplemented, step=NotImplemented, withSortKey='[deprecated name of with_sort_key]')
     |      Iterate categories that the article is in.
     |      
     |      @param with_sort_key: if True, include the sort key in each Category.
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each category description page (default False)
     |      @return: a generator that yields Category objects.
     |      @rtype: generator
     |  
     |  change_category(self, old_cat, new_cat, summary=None, sort_key=None, in_place=True, include=[], comment='[deprecated name of summary]', oldCat='[deprecated name of old_cat]', newCat='[deprecated name of new_cat]', sortKey='[deprecated name of sort_key]', inPlace='[deprecated name of in_place]')
     |      Remove page from oldCat and add it to newCat.
     |      
     |      @param old_cat: category to be removed
     |      @type old_cat: Category
     |      @param new_cat: category to be added, if any
     |      @type new_cat: Category or None
     |      
     |      @param summary: string to use as an edit summary
     |      
     |      @param sort_key: sortKey to use for the added category.
     |          Unused if newCat is None, or if inPlace=True
     |          If sortKey=True, the sortKey used for oldCat will be used.
     |      
     |      @param in_place: if True, change categories in place rather than
     |                    rearranging them.
     |      
     |      @param include: list of tags not to be disabled by default in relevant
     |          textlib functions, where CategoryLinks can be searched.
     |      @type include: list
     |      
     |      @return: True if page was saved changed, otherwise False.
     |      @rtype: bool
     |  
     |  clear_cache(self)
     |      Clear the cached attributes of the page.
     |  
     |  contributingUsers(self, total=None, step=NotImplemented)
     |      Deprecated; use contributors() instead.
     |      
     |      
     |      Return a set of usernames (or IPs) of users who edited this page.
     |      
     |      @param total: iterate no more than this number of revisions in total
     |      
     |      @rtype: set
     |  
     |  contributors(self, total=None, starttime=None, endtime=None, step=NotImplemented)
     |      Compile contributors of this page with edit counts.
     |      
     |      @param total: iterate no more than this number of revisions in total
     |      @param starttime: retrieve revisions starting at this Timestamp
     |      @param endtime: retrieve revisions ending at this Timestamp
     |      
     |      @return: number of edits for each username
     |      @rtype: L{collections.Counter}
     |  
     |  coordinates(self, primary_only=False)
     |      Return a list of Coordinate objects for points on the page.
     |      
     |      Uses the MediaWiki extension GeoData.
     |      
     |      @param primary_only: Only return the coordinate indicated to be primary
     |      @return: A list of Coordinate objects
     |      @rtype: list
     |  
     |  data_item(self)
     |      Convenience function to get the Wikibase item of a page.
     |      
     |      @rtype: ItemPage
     |  
     |  defaultsort(self, force=False)
     |      Extract value of the {{DEFAULTSORT:}} magic word from the page.
     |      
     |      @param force: force updating from the live site
     |      
     |      @rtype: unicode or None
     |  
     |  delete(self, reason=None, prompt=True, mark=False, quit=False, throttle=NotImplemented)
     |      Delete the page from the wiki. Requires administrator status.
     |      
     |      @param reason: The edit summary for the deletion, or rationale
     |          for deletion if requesting. If None, ask for it.
     |      @param prompt: If true, prompt user for confirmation before deleting.
     |      @param mark: If true, and user does not have sysop rights, place a
     |          speedy-deletion request on the page instead. If false, non-sysops
     |          will be asked before marking pages for deletion.
     |      @param quit: show also the quit option, when asking for confirmation.
     |  
     |  editTime(self)
     |      Return timestamp of last revision to page.
     |      
     |      @rtype: pywikibot.Timestamp
     |  
     |  embeddedin(self, filter_redirects=None, namespaces=None, total=None, content=False, step=NotImplemented)
     |      Return an iterator for pages that embed this page as a template.
     |      
     |      @param filter_redirects: if True, only iterate redirects; if False,
     |          omit redirects; if None, do not filter
     |      @param namespaces: only iterate pages in these namespaces
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each embedding page (default False)
     |  
     |  encoding(self)
     |      DEPRECATED: use self.site.encoding instead.
     |  
     |  exists(self)
     |      Return True if page exists on the wiki, even if it's a redirect.
     |      
     |      If the title includes a section, return False if this section isn't
     |      found.
     |      
     |      @rtype: bool
     |  
     |  expand_text(self, force=False, includecomments=False, refresh='[deprecated name of force]')
     |      Return the page text with all templates and parser words expanded.
     |      
     |      @param force: force updating from the live site
     |      @param includecomments: Also strip comments if includecomments
     |          parameter is not True.
     |      
     |      @rtype unicode or None
     |  
     |  extlinks(self, total=None, step=NotImplemented)
     |      Iterate all external URLs (not interwiki links) from this page.
     |      
     |      @param total: iterate no more than this number of pages in total
     |      @return: a generator that yields unicode objects containing URLs.
     |      @rtype: generator
     |  
     |  fullVersionHistory(self, reverse=False, total=None, reverseOrder='[deprecated name of reverse]', rollback=NotImplemented, step=NotImplemented)
     |      Deprecated; use Page.revisions(content=True) instead.
     |      
     |      Iterate previous versions including wikitext.
     |      
     |              Takes same arguments as getVersionHistory.
     |  
     |  full_url(self)
     |      Return the full URL.
     |  
     |  get(self, force=False, get_redirect=False, sysop=False, throttle=NotImplemented, change_edit_time=NotImplemented, expandtemplates=NotImplemented)
     |      Return the wiki-text of the page.
     |      
     |      This will retrieve the page from the server if it has not been
     |      retrieved yet, or if force is True. This can raise the following
     |      exceptions that should be caught by the calling code:
     |      
     |      @exception NoPage:         The page does not exist
     |      @exception IsRedirectPage: The page is a redirect. The argument of the
     |                                 exception is the title of the page it
     |                                 redirects to.
     |      @exception SectionError:   The section does not exist on a page with
     |                                 a # link
     |      
     |      @param force:           reload all page attributes, including errors.
     |      @param get_redirect:    return the redirect text, do not follow the
     |                              redirect, do not raise an exception.
     |      @param sysop:           if the user has a sysop account, use it to
     |                              retrieve this page
     |      
     |      @rtype: unicode
     |  
     |  getCategoryRedirectTarget(self)
     |      If this is a category redirect, return the target category title.
     |      
     |      @rtype: Category
     |  
     |  getCreator(self)
     |      Get the first revision of the page.
     |      
     |      DEPRECATED: Use Page.oldest_revision.
     |      
     |      @rtype: tuple(username, Timestamp)
     |  
     |  getDeletedRevision(self, timestamp, content=False, retrieveText='[deprecated name of content]')
     |      Return a particular deleted revision by timestamp.
     |      
     |      @return: a list of [date, editor, comment, text, restoration
     |          marker]. text will be None, unless content is True (or has
     |          been retrieved earlier). If timestamp is not found, returns
     |          None.
     |      @rtype: list
     |  
     |  getLatestEditors(self, total=1, limit='[deprecated name of total]')
     |      Get a list of revision informations of the last total edits.
     |      
     |      DEPRECATED: Use Page.revisions.
     |      
     |      @param total: iterate no more than this number of revisions in total
     |      @return: list of dict, each dict containing the username and Timestamp
     |      @rtype: list
     |  
     |  getMovedTarget(self)
     |      Return a Page object for the target this Page was moved to.
     |      
     |      DEPRECATED: Use Page.moved_target().
     |      
     |      If this page was not moved, it will raise a NoPage exception.
     |      This method also works if the source was already deleted.
     |      
     |      @rtype: pywikibot.Page
     |      @raises NoPage: this page was not moved
     |  
     |  getOldVersion(self, oldid, force=False, get_redirect=False, sysop=False, throttle=NotImplemented, change_edit_time=NotImplemented)
     |      Return text of an old revision of this page; same options as get().
     |      
     |      @param oldid: The revid of the revision desired.
     |      @rtype: unicode
     |  
     |  getRedirectTarget(self)
     |      Return a Page object for the target this Page redirects to.
     |      
     |      If this page is not a redirect page, will raise an IsNotRedirectPage
     |      exception. This method also can raise a NoPage exception.
     |      
     |      @rtype: pywikibot.Page
     |  
     |  getReferences(self, follow_redirects=True, with_template_inclusion=True, only_template_inclusion=False, filter_redirects=False, namespaces=None, total=None, content=False, step=NotImplemented, withTemplateInclusion='[deprecated name of with_template_inclusion]', onlyTemplateInclusion='[deprecated name of only_template_inclusion]', redirectsOnly='[deprecated name of filter_redirects]')
     |      Return an iterator all pages that refer to or embed the page.
     |      
     |      If you need a full list of referring pages, use
     |      C{pages = list(s.getReferences())}
     |      
     |      @param follow_redirects: if True, also iterate pages that link to a
     |          redirect pointing to the page.
     |      @param with_template_inclusion: if True, also iterate pages where self
     |          is used as a template.
     |      @param only_template_inclusion: if True, only iterate pages where self
     |          is used as a template.
     |      @param filter_redirects: if True, only iterate redirects to self.
     |      @param namespaces: only iterate pages in these namespaces
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each referring page (default False)
     |  
     |  getRestrictions(self)
     |      DEPRECATED. Use self.protection() instead.
     |  
     |  getTemplates(self, tllimit=NotImplemented)
     |      DEPRECATED. Use templates().
     |  
     |  getVersionHistory(self, reverse=False, total=None, forceReload=NotImplemented, revCount='[deprecated name of total]', step=NotImplemented, getAll=NotImplemented, reverseOrder='[deprecated name of reverse]')
     |      Deprecated; use Page.revisions() instead.
     |      
     |      
     |      Load the version history page and return history information.
     |      
     |      Return value is a list of tuples, where each tuple represents one
     |      edit and is built of revision id, edit date/time, user name, and
     |      edit summary. Starts with the most current revision, unless
     |      reverse is True.
     |      
     |      @param total: iterate no more than this number of revisions in total
     |  
     |  getVersionHistoryTable(self, reverse=False, total=None, forceReload=NotImplemented, reverseOrder='[deprecated name of reverse]', step=NotImplemented)
     |      Return the version history as a wiki table.
     |  
     |  imagelinks(self, total=None, content=False, followRedirects=NotImplemented, loose=NotImplemented, step=NotImplemented)
     |      Iterate FilePage objects for images displayed on this Page.
     |      
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each image description page (default False)
     |      @return: a generator that yields FilePage objects.
     |  
     |  interwiki(self, expand=True)
     |      Iterate interwiki links in the page text, excluding language links.
     |      
     |      @param expand: if True (default), include interwiki links found in
     |          templates transcluded onto this page; if False, only iterate
     |          interwiki links found in this page's own wikitext
     |      @type expand: bool
     |      
     |      @return: a generator that yields Link objects
     |      @rtype: generator
     |  
     |  isAutoTitle(self)
     |      Return True if title of this Page is in the autoFormat dict.
     |  
     |  isCategory(self)
     |      DEPRECATED: use is_categorypage instead.
     |  
     |  isCategoryRedirect(self)
     |      Return True if this is a category redirect page, False otherwise.
     |      
     |      @rtype: bool
     |  
     |  isDisambig(self)
     |      Return True if this is a disambiguation page, False otherwise.
     |      
     |      By default, it uses the the Disambiguator extension's result. The
     |      identification relies on the presense of the __DISAMBIG__ magic word
     |      which may also be transcluded.
     |      
     |      If the Disambiguator extension isn't activated for the given site,
     |      the identification relies on the presence of specific templates.
     |      First load a list of template names from the Family file;
     |      if the value in the Family file is None or no entry was made, look for
     |      the list on [[MediaWiki:Disambiguationspage]]. If this page does not
     |      exist, take the MediaWiki message. 'Template:Disambig' is always
     |      assumed to be default, and will be appended regardless of its
     |      existence.
     |      
     |      @rtype: bool
     |  
     |  isEmpty(self)
     |      Deprecated; use interwiki.page_empty_check(page) instead.
     |      
     |      
     |      Return True if the page text has less than 4 characters.
     |      
     |      Character count ignores language links and category links.
     |      Can raise the same exceptions as get().
     |      
     |      @rtype: bool
     |  
     |  isFlowPage(self)
     |      DEPRECATED: use self.is_flow_page instead.
     |  
     |  isImage(self)
     |      DEPRECATED: use is_filepage instead.
     |  
     |  isIpEdit(self)
     |      Return True if last editor was unregistered.
     |      
     |      @rtype: bool
     |  
     |  isRedirectPage(self)
     |      Return True if this is a redirect, False if not or not existing.
     |  
     |  isStaticRedirect(self, force=False)
     |      Determine whether the page is a static redirect.
     |      
     |      A static redirect must be a valid redirect, and contain the magic word
     |      __STATICREDIRECT__.
     |      
     |      @param force: Bypass local caching
     |      @type force: bool
     |      
     |      @rtype: bool
     |  
     |  isTalkPage(self)
     |      Return True if this page is in any talk namespace.
     |  
     |  is_categorypage(self)
     |      Return True if the page is a Category, False otherwise.
     |  
     |  is_filepage(self)
     |      Return True if this is an file description page, False otherwise.
     |  
     |  is_flow_page(self)
     |      Whether a page is a Flow page.
     |      
     |      @rtype: bool
     |  
     |  iterlanglinks(self, total=None, include_obsolete=False, step=NotImplemented)
     |      Iterate all inter-language links on this page.
     |      
     |      @param total: iterate no more than this number of pages in total
     |      @param include_obsolete: if true, yield even Link object whose site
     |                               is obsolete
     |      @type include_obsolete: bool
     |      
     |      @return: a generator that yields Link objects.
     |      @rtype: generator
     |  
     |  itertemplates(self, total=None, content=False, step=NotImplemented)
     |      Iterate Page objects for templates used on this Page.
     |      
     |      Template parameters are ignored. This method only returns embedded
     |      templates, not template pages that happen to be referenced through
     |      a normal link.
     |      
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each template (default False)
     |      @param content: bool
     |  
     |  langlinks(self, include_obsolete=False)
     |      Return a list of all inter-language Links on this page.
     |      
     |      @param include_obsolete: if true, return even Link objects whose site
     |                               is obsolete
     |      @type include_obsolete: bool
     |      
     |      @return: list of Link objects.
     |      @rtype: list
     |  
     |  lastNonBotUser(self)
     |      Return name or IP address of last human/non-bot user to edit page.
     |      
     |      Determine the most recent human editor out of the last revisions.
     |      If it was not able to retrieve a human user, returns None.
     |      
     |      If the edit was done by a bot which is no longer flagged as 'bot',
     |      i.e. which is not returned by Site.botusers(), it will be returned
     |      as a non-bot edit.
     |      
     |      @rtype: unicode
     |  
     |  latestRevision(self)
     |      Deprecated; use latest_revision_id instead.
     |      
     |      Return the current revision id for this page.
     |  
     |  linkedPages(self, namespaces=None, total=None, content=False, step=NotImplemented)
     |      Iterate Pages that this Page links to.
     |      
     |      Only returns pages from "normal" internal links. Image and category
     |      links are omitted unless prefixed with ":". Embedded templates are
     |      omitted (but links within them are returned). All interwiki and
     |      external links are omitted.
     |      
     |      @param namespaces: only iterate links in these namespaces
     |      @param namespaces: int, or list of ints
     |      @param total: iterate no more than this number of pages in total
     |      @type total: int
     |      @param content: if True, retrieve the content of the current version
     |          of each linked page (default False)
     |      @type content: bool
     |      
     |      @return: a generator that yields Page objects.
     |      @rtype: generator
     |  
     |  loadDeletedRevisions(self, total=None, step=NotImplemented)
     |      Retrieve deleted revisions for this Page.
     |      
     |      Stores all revisions' timestamps, dates, editors and comments in
     |      self._deletedRevs attribute.
     |      
     |      @return: iterator of timestamps (which can be used to retrieve
     |          revisions later on).
     |      @rtype: generator
     |  
     |  markDeletedRevision(self, timestamp, undelete=True)
     |      Mark the revision identified by timestamp for undeletion.
     |      
     |      @param undelete: if False, mark the revision to remain deleted.
     |      @type undelete: bool
     |  
     |  merge_history(self, dest, timestamp=None, reason=None)
     |      Merge revisions from this page into another page.
     |      
     |      See L{APISite.merge_history} for details.
     |      
     |      @param dest: Destination page to which revisions will be merged
     |      @type dest: pywikibot.Page
     |      @param timestamp: Revisions from this page dating up to this timestamp
     |          will be merged into the destination page (if not given or False,
     |          all revisions will be merged)
     |      @type timestamp: pywikibot.Timestamp
     |      @param reason: Optional reason for the history merge
     |      @type reason: str
     |  
     |  move(self, newtitle, reason=None, movetalk=True, sysop=False, noredirect=False, throttle=NotImplemented, deleteAndMove='[deprecated name of noredirect]', movetalkpage='[deprecated name of movetalk]')
     |      Move this page to a new title.
     |      
     |      @param newtitle: The new page title.
     |      @param reason: The edit summary for the move.
     |      @param movetalk: If true, move this page's talk page (if it exists)
     |      @param sysop: Try to move using sysop account, if available
     |      @param noredirect: if move succeeds, delete the old page
     |          (usually requires sysop privileges, depending on wiki settings)
     |  
     |  moved_target(self)
     |      Return a Page object for the target this Page was moved to.
     |      
     |      If this page was not moved, it will raise a NoMoveTarget exception.
     |      This method also works if the source was already deleted.
     |      
     |      @rtype: pywikibot.Page
     |      @raises NoMoveTarget: this page was not moved
     |  
     |  namespace(self)
     |      Return the number of the namespace of the page.
     |      
     |      @return: namespace of the page
     |      @rtype: Namespace
     |  
     |  pageAPInfo(self)
     |      Deprecated; use latest_revision_id instead.
     |      
     |      Return the current revision id for this page.
     |  
     |  page_image(self)
     |      Return the most appropriate image on the page.
     |      
     |      Uses the MediaWiki extension PageImages.
     |      
     |      @return: A FilePage object
     |      @rtype: FilePage
     |  
     |  permalink(self, oldid=None, percent_encoded=True, with_protocol=False)
     |      Return the permalink URL of an old revision of this page.
     |      
     |      @param oldid: The revid of the revision desired.
     |      @param percent_encoded: if false, the link will be provided
     |          without title uncoded.
     |      @param with_protocol: if true, http or https prefixes will be
     |          included before the double slash.
     |      @rtype: unicode
     |  
     |  preloadText(self)
     |      The text returned by EditFormPreloadText.
     |      
     |      See API module "info".
     |      
     |      Application: on Wikisource wikis, text can be preloaded even if
     |      a page does not exist, if an Index page is present.
     |      
     |      @rtype: unicode
     |  
     |  previousRevision(self)
     |      Return the revision id for the previous revision.
     |      
     |      DEPRECATED: Use latest_revision.parent_id instead.
     |      
     |      @rtype: long
     |      
     |      @raise AssertionError: Use on MediaWiki prior to v1.16.
     |  
     |  properties(self, force=False)
     |      Return the properties of the page.
     |      
     |      @param force: force updating from the live site
     |      
     |      @rtype: dict
     |  
     |  protect(self, edit=False, move=False, create=None, upload=None, unprotect=False, reason=None, prompt=None, protections=None, **kwargs, throttle=NotImplemented)
     |      Protect or unprotect a wiki page. Requires administrator status.
     |      
     |      Valid protection levels (in MediaWiki 1.12) are '' (equivalent to
     |      'none'), 'autoconfirmed', and 'sysop'. If None is given, however,
     |      that protection will be skipped.
     |      
     |      @param protections: A dict mapping type of protection to protection
     |          level of that type.
     |      @type protections: dict
     |      @param reason: Reason for the action
     |      @type reason: basestring
     |      @param prompt: Whether to ask user for confirmation (deprecated).
     |                     Defaults to protections is None
     |      @type prompt: bool
     |  
     |  protection(self)
     |      Return a dictionary reflecting page protections.
     |      
     |      @rtype: dict
     |  
     |  purge(self, **kwargs)
     |      Purge the server's cache for this page.
     |      
     |      @rtype: bool
     |  
     |  put(self, newtext, summary=None, watch=None, minor=True, botflag=None, force=False, asynchronous=False, callback=None, **kwargs, comment='[deprecated name of summary]', watchArticle='[deprecated name of watch]', minorEdit='[deprecated name of minor]', async='[deprecated name of asynchronous]')
     |      Save the page with the contents of the first argument as the text.
     |      
     |      This method is maintained primarily for backwards-compatibility.
     |      For new code, using Page.save() is preferred. See save() method
     |      docs for all parameters not listed here.
     |      
     |      @param newtext: The complete text of the revised page.
     |      @type newtext: unicode
     |  
     |  put_async(self, newtext, summary=None, watch=None, minor=True, botflag=None, force=False, callback=None, **kwargs, comment='[deprecated name of summary]', watchArticle='[deprecated name of watch]', minorEdit='[deprecated name of minor]')
     |      Deprecated; use put(asynchronous=True) or save(asynchronous=True) instead.
     |      
     |      
     |      Put page on queue to be saved to wiki asynchronously.
     |      
     |      Asynchronous version of put (takes the same arguments), which places
     |      pages on a queue to be saved by a daemon thread. All arguments are
     |      the same as for .put(). This version is maintained solely for
     |      backwards-compatibility.
     |  
     |  revision_count(self, contributors=None)
     |      Determine number of edits from a set of contributors.
     |      
     |      @param contributors: contributor usernames
     |      @type contributors: iterable of str
     |      
     |      @return: number of edits for all provided usernames
     |      @rtype: int
     |  
     |  revisions(self, reverse=False, total=None, content=False, rollback=False, starttime=None, endtime=None, getText='[deprecated name of content]', reverseOrder='[deprecated name of reverse]', step=NotImplemented)
     |      Generator which loads the version history as Revision instances.
     |  
     |  save(self, summary=None, watch=None, minor=True, botflag=None, force=False, asynchronous=False, callback=None, apply_cosmetic_changes=None, quiet=False, **kwargs, comment='[deprecated name of summary]', sysop=NotImplemented, async='[deprecated name of asynchronous]')
     |      Save the current contents of page's text to the wiki.
     |      
     |      @param summary: The edit summary for the modification (optional, but
     |          most wikis strongly encourage its use)
     |      @type summary: unicode
     |      @param watch: Specify how the watchlist is affected by this edit, set
     |          to one of "watch", "unwatch", "preferences", "nochange":
     |          * watch: add the page to the watchlist
     |          * unwatch: remove the page from the watchlist
     |          * preferences: use the preference settings (Default)
     |          * nochange: don't change the watchlist
     |          If None (default), follow bot account's default settings
     |      
     |          For backward compatibility watch parameter may also be boolean:
     |          if True, add or if False, remove this Page to/from bot
     |          user's watchlist.
     |      @type watch: string, bool (deprecated) or None
     |      @param minor: if True, mark this edit as minor
     |      @type minor: bool
     |      @param botflag: if True, mark this edit as made by a bot (default:
     |          True if user has bot status, False if not)
     |      @param force: if True, ignore botMayEdit() setting
     |      @type force: bool
     |      @param asynchronous: if True, launch a separate thread to save
     |          asynchronously
     |      @param callback: a callable object that will be called after the
     |          page put operation. This object must take two arguments: (1) a
     |          Page object, and (2) an exception instance, which will be None
     |          if the page was saved successfully. The callback is intended for
     |          use by bots that need to keep track of which saves were
     |          successful.
     |      @param apply_cosmetic_changes: Overwrites the cosmetic_changes
     |          configuration value to this value unless it's None.
     |      @type apply_cosmetic_changes: bool or None
     |      @param quiet: enable/disable successful save operation message;
     |          defaults to False.
     |          In asynchronous mode, if True, it is up to the calling bot to
     |          manage the output e.g. via callback.
     |      @type quiet: bool
     |  
     |  section(self)
     |      Return the name of the section this Page refers to.
     |      
     |      The section is the part of the title following a '#' character, if
     |      any. If no section is present, return None.
     |      
     |      @rtype: unicode
     |  
     |  sectionFreeTitle(self, underscore=False)
     |      DEPRECATED: use self.title(with_section=False) instead.
     |  
     |  templates(self, content=False, get_redirect=NotImplemented)
     |      Return a list of Page objects for templates used on this Page.
     |      
     |      Template parameters are ignored. This method only returns embedded
     |      templates, not template pages that happen to be referenced through
     |      a normal link.
     |      
     |      @param content: if True, retrieve the content of the current version
     |          of each template (default False)
     |      @param content: bool
     |  
     |  title(self, underscore=False, with_ns=True, with_section=True, as_url=False, as_link=False, allow_interwiki=True, force_interwiki=False, textlink=False, as_filename=False, insite=None, without_brackets=False, decode=NotImplemented, savetitle='[deprecated name of as_url]', withNamespace='[deprecated name of with_ns]', withSection='[deprecated name of with_section]', forceInterwiki='[deprecated name of force_interwiki]', asUrl='[deprecated name of as_url]', asLink='[deprecated name of as_link]', allowInterwiki='[deprecated name of allow_interwiki]')
     |      Return the title of this Page, as a Unicode string.
     |      
     |      @param underscore: (not used with as_link) if true, replace all ' '
     |          characters with '_'
     |      @param with_ns: if false, omit the namespace prefix. If this
     |          option is false and used together with as_link return a labeled
     |          link like [[link|label]]
     |      @param with_section: if false, omit the section
     |      @param as_url: (not used with as_link) if true, quote title as if in an
     |          URL
     |      @param as_link: if true, return the title in the form of a wikilink
     |      @param allow_interwiki: (only used if as_link is true) if true, format
     |          the link as an interwiki link if necessary
     |      @param force_interwiki: (only used if as_link is true) if true, always
     |          format the link as an interwiki link
     |      @param textlink: (only used if as_link is true) if true, place a ':'
     |          before Category: and Image: links
     |      @param as_filename: (not used with as_link) if true, replace any
     |          characters that are unsafe in filenames
     |      @param insite: (only used if as_link is true) a site object where the
     |          title is to be shown. default is the current family/lang given by
     |          -family and -lang option i.e. config.family and config.mylang
     |      @param without_brackets: (cannot be used with as_link) if true, remove
     |          the last pair of brackets(usually removes disambiguation brackets).
     |      @rtype: unicode
     |  
     |  titleForFilename(self)
     |      DEPRECATED: use self.title(as_filename=True) instead.
     |  
     |  titleWithoutNamespace(self, underscore=False)
     |      DEPRECATED: use self.title(with_ns=False) instead.
     |  
     |  toggleTalkPage(self)
     |      Return other member of the article-talk page pair for this Page.
     |      
     |      If self is a talk page, returns the associated content page;
     |      otherwise, returns the associated talk page. The returned page need
     |      not actually exist on the wiki.
     |      
     |      @return: Page or None if self is a special page.
     |      @rtype: Page or None
     |  
     |  touch(self, callback=None, botflag=False, **kwargs)
     |      Make a touch edit for this page.
     |      
     |      See save() method docs for all parameters.
     |      The following parameters will be overridden by this method:
     |      - summary, watch, minor, force, asynchronous
     |      
     |      Parameter botflag is False by default.
     |      
     |      minor and botflag parameters are set to False which prevents hiding
     |      the edit when it becomes a real edit due to a bug.
     |  
     |  undelete(self, reason=None, comment='[deprecated name of reason]', throttle=NotImplemented)
     |      Undelete revisions based on the markers set by previous calls.
     |      
     |      If no calls have been made since loadDeletedRevisions(), everything
     |      will be restored.
     |      
     |      Simplest case::
     |      
     |          Page(...).undelete('This will restore all revisions')
     |      
     |      More complex::
     |      
     |          pg = Page(...)
     |          revs = pg.loadDeletedRevisions()
     |          for rev in revs:
     |              if ... #decide whether to undelete a revision
     |                  pg.markDeletedRevision(rev) #mark for undeletion
     |          pg.undelete('This will restore only selected revisions.')
     |      
     |      @param reason: Reason for the action.
     |      @type reason: basestring
     |  
     |  urlname(self)
     |      Return the Page title encoded for use in an URL.
     |      
     |      DEPRECATED: use self.title(as_url=True) instead.
     |  
     |  userName(self)
     |      Return name or IP address of last user to edit page.
     |      
     |      @rtype: unicode
     |  
     |  version(self)
     |      Return MediaWiki version number of the page site.
     |      
     |      This is needed to use @need_version() decorator for methods of
     |      Page objects.
     |  
     |  watch(self, unwatch=False)
     |      Add or remove this page to/from bot account's watchlist.
     |      
     |      @param unwatch: True to unwatch, False (default) to watch.
     |      @type unwatch: bool
     |      
     |      @return: True if successful, False otherwise.
     |      @rtype: bool
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from BasePage:
     |  
     |  content_model
     |      Return the content model for this page.
     |      
     |      If it cannot be reliably determined via the API,
     |      None is returned.
     |  
     |  data_repository
     |      Return the Site object for the data repository.
     |  
     |  depth
     |      Return the depth/subpage level of the page.
     |  
     |  image_repository
     |      Return the Site object for the image repository.
     |  
     |  latest_revision
     |      Return the current revision for this page.
     |  
     |  latest_revision_id
     |      Return the current revision id for this page.
     |  
     |  oldest_revision
     |      Return the first revision of this page.
     |      
     |      @rtype: L{Revision}
     |  
     |  pageid
     |      Return pageid of the page.
     |      
     |      @return: pageid or 0 if page does not exist
     |      @rtype: int
     |  
     |  previous_revision_id
     |      Deprecated; use latest_revision.parent_id (0 instead of -1 when no parent) instead.
     |      
     |      
     |      Return the revision id for the previous revision of this Page.
     |      
     |      If the page has only one revision, it shall return -1.
     |      
     |      @rtype: long
     |      
     |      @raise AssertionError: Use on MediaWiki prior to v1.16.
     |  
     |  site
     |      Return the Site object for the wiki on which this Page resides.
     |      
     |      @rtype: pywikibot.Site
     |  
     |  text
     |      Return the current (edited) wikitext, loading it if necessary.
     |      
     |      @return: text of the page
     |      @rtype: unicode
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.ComparableMixin:
     |  
     |  __eq__(self, other)
     |      Compare if self is equal to other.
     |  
     |  __ge__(self, other)
     |      Compare if self is greater equals other.
     |  
     |  __gt__(self, other)
     |      Compare if self is greater than other.
     |  
     |  __le__(self, other)
     |      Compare if self is less equals other.
     |  
     |  __lt__(self, other)
     |      Compare if self is less than other.
     |  
     |  __ne__(self, other)
     |      Compare if self is not equal to other.
    
    class PageCreatedConflict(EditConflict)
     |  Page was created by another user.
     |  
     |  Method resolution order:
     |      PageCreatedConflict
     |      EditConflict
     |      PageSaveRelatedError
     |      PageRelatedError
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Data and other attributes defined here:
     |  
     |  message = 'Page %s has been created since last retrieved.'
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from PageSaveRelatedError:
     |  
     |  args
     |      Expose args.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from PageRelatedError:
     |  
     |  __init__(self, page, message=None)
     |      Initializer.
     |      
     |      @param page: Page that caused the exception
     |      @type page: Page object
     |  
     |  getPage(self)
     |      Return the page related to the exception.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Error:
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
    
    class PageDeletedConflict(EditConflict)
     |  Page was deleted since being retrieved.
     |  
     |  Method resolution order:
     |      PageDeletedConflict
     |      EditConflict
     |      PageSaveRelatedError
     |      PageRelatedError
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Data and other attributes defined here:
     |  
     |  message = 'Page %s has been deleted since last retrieved.'
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from PageSaveRelatedError:
     |  
     |  args
     |      Expose args.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from PageRelatedError:
     |  
     |  __init__(self, page, message=None)
     |      Initializer.
     |      
     |      @param page: Page that caused the exception
     |      @type page: Page object
     |  
     |  getPage(self)
     |      Return the page related to the exception.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Error:
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
    
    PageNotSaved = class PageSaveRelatedError(PageRelatedError)
     |  Saving the page has failed.
     |  
     |  Method resolution order:
     |      PageSaveRelatedError
     |      PageRelatedError
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Data descriptors defined here:
     |  
     |  args
     |      Expose args.
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |  
     |  message = 'Page %s was not saved.'
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from PageRelatedError:
     |  
     |  __init__(self, page, message=None)
     |      Initializer.
     |      
     |      @param page: Page that caused the exception
     |      @type page: Page object
     |  
     |  getPage(self)
     |      Return the page related to the exception.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Error:
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
    
    class PageRelatedError(Error)
     |  Abstract Exception, used when the exception concerns a particular Page.
     |  
     |  This class should be used when the Exception concerns a particular
     |  Page, and when a generic message can be written once for all.
     |  
     |  Method resolution order:
     |      PageRelatedError
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Methods defined here:
     |  
     |  __init__(self, page, message=None)
     |      Initializer.
     |      
     |      @param page: Page that caused the exception
     |      @type page: Page object
     |  
     |  getPage(self)
     |      Return the page related to the exception.
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |  
     |  message = None
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Error:
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
     |  
     |  args
    
    class PageSaveRelatedError(PageRelatedError)
     |  Saving the page has failed.
     |  
     |  Method resolution order:
     |      PageSaveRelatedError
     |      PageRelatedError
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Data descriptors defined here:
     |  
     |  args
     |      Expose args.
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |  
     |  message = 'Page %s was not saved.'
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from PageRelatedError:
     |  
     |  __init__(self, page, message=None)
     |      Initializer.
     |      
     |      @param page: Page that caused the exception
     |      @type page: Page object
     |  
     |  getPage(self)
     |      Return the page related to the exception.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Error:
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
    
    class PropertyPage(WikibasePage, Property)
     |  A Wikibase entity in the property namespace.
     |  
     |  Should be created as::
     |  
     |      PropertyPage(DataSite, 'P21')
     |  
     |  Method resolution order:
     |      PropertyPage
     |      WikibasePage
     |      BasePage
     |      pywikibot.tools.UnicodeMixin
     |      pywikibot.tools.ComparableMixin
     |      Property
     |      builtins.object
     |  
     |  Methods defined here:
     |  
     |  __init__(self, source, title='')
     |      Initializer.
     |      
     |      @param source: data repository property is on
     |      @type source: pywikibot.site.DataSite
     |      @param title: page name of property, like "P##"
     |      @type title: str
     |  
     |  get(self, force=False, *args, **kwargs)
     |      Fetch the property entity, and cache it.
     |      
     |      @param force: override caching
     |      @type force: bool
     |      @raise NotImplementedError: a value in args or kwargs
     |  
     |  newClaim(self, *args, **kwargs)
     |      Helper function to create a new claim object for this property.
     |      
     |      @rtype: Claim
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |  
     |  entity_type = 'property'
     |  
     |  title_pattern = r'^P[1-9]\d*$'
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from WikibasePage:
     |  
     |  __delattr__(self, attr)
     |      Attribute deleter. Deprecates lastrevid.
     |  
     |  __getattribute__(self, name)
     |      Low-level attribute getter. Deprecates lastrevid.
     |  
     |  __setattr__(self, attr, value)
     |      Attribute setter. Deprecates lastrevid.
     |  
     |  addClaim(self, claim, bot=True, **kwargs)
     |      Add a claim to the entity.
     |      
     |      @param claim: The claim to add
     |      @type claim: Claim
     |      @param bot: Whether to flag as bot (if possible)
     |      @type bot: bool
     |      @keyword asynchronous: if True, launch a separate thread to add claim
     |          asynchronously
     |      @type asynchronous: bool
     |      @keyword callback: a callable object that will be called after the
     |          claim has been added. It must take two arguments:
     |          (1) a WikibasePage object, and (2) an exception instance,
     |          which will be None if the entity was saved successfully. This is
     |          intended for use by bots that need to keep track of which saves
     |          were successful.
     |      @type callback: callable
     |  
     |  botMayEdit(self)
     |      Return whether bots may edit this page.
     |      
     |      Because there is currently no system to mark a page that it shouldn't
     |      be edited by bots on Wikibase pages it always returns True. The content
     |      of the page is not text but a dict, the original way (to search for a
     |      template) doesn't apply.
     |      
     |      @return: True
     |      @rtype: bool
     |  
     |  editAliases(self, aliases, **kwargs)
     |      Edit entity aliases.
     |      
     |      Aliases should be a dict, with the key
     |      as a language or a site object. The
     |      value should be a list of strings.
     |  
     |  editDescriptions(self, descriptions, **kwargs)
     |      Edit entity descriptions.
     |      
     |      Descriptions should be a dict, with the key
     |      as a language or a site object. The
     |      value should be the string to set it to.
     |      You can set it to '' to remove the description.
     |  
     |  editEntity(self, data=None, **kwargs)
     |      Edit an entity using Wikibase wbeditentity API.
     |      
     |      This function is wrapped around by:
     |       - editLabels
     |       - editDescriptions
     |       - editAliases
     |       - ItemPage.setSitelinks
     |      
     |      @param data: Data to be saved
     |      @type data: dict, or None to save the current content of the entity.
     |      @keyword asynchronous: if True, launch a separate thread to edit
     |          asynchronously
     |      @type asynchronous: bool
     |      @keyword callback: a callable object that will be called after the
     |          entity has been updated. It must take two arguments: (1) a
     |          WikibasePage object, and (2) an exception instance, which will be
     |          None if the page was saved successfully. This is intended for use
     |          by bots that need to keep track of which saves were successful.
     |      @type callback: callable
     |  
     |  editLabels(self, labels, **kwargs)
     |      Edit entity labels.
     |      
     |      Labels should be a dict, with the key
     |      as a language or a site object. The
     |      value should be the string to set it to.
     |      You can set it to '' to remove the label.
     |  
     |  exists(self)
     |      Determine if an entity exists in the data repository.
     |      
     |      @rtype: bool
     |  
     |  getID(self, numeric=False, force=False)
     |      Get the entity identifier.
     |      
     |      @param numeric: Strip the first letter and return an int
     |      @type numeric: bool
     |      @param force: Force an update of new data
     |      @type force: bool
     |  
     |  getdbName(self, site)
     |      Helper function to obtain a dbName for a Site.
     |      
     |      @param site: The site to look up.
     |      @type site: Site
     |  
     |  namespace(self)
     |      Return the number of the namespace of the entity.
     |      
     |      @return: Namespace id
     |      @rtype: int
     |  
     |  removeClaims(self, claims, **kwargs)
     |      Remove the claims from the entity.
     |      
     |      @param claims: list of claims to be removed
     |      @type claims: list or pywikibot.Claim
     |  
     |  set_redirect_target(self, target_page, create=False, force=False, keep_section=False, save=True, **kwargs)
     |      Set target of a redirect for a Wikibase page.
     |      
     |      Has not been implemented in the Wikibase API yet, except for ItemPage.
     |  
     |  toJSON(self, diffto=None)
     |      Create JSON suitable for Wikibase API.
     |      
     |      When diffto is provided, JSON representing differences
     |      to the provided data is created.
     |      
     |      @param diffto: JSON containing claim data
     |      @type diffto: dict
     |      
     |      @rtype: dict
     |  
     |  ----------------------------------------------------------------------
     |  Class methods inherited from WikibasePage:
     |  
     |  is_valid_id(entity_id) from builtins.type
     |      Whether the string can be a valid id of the entity type.
     |      
     |      @param entity_id: The ID to test.
     |      @type entity_id: basestring
     |      
     |      @rtype: bool
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from WikibasePage:
     |  
     |  latest_revision_id
     |      Get the revision identifier for the most recent revision of the entity.
     |      
     |      @rtype: long
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from BasePage:
     |  
     |  __hash__(self)
     |      A stable identifier to be used as a key in hash-tables.
     |      
     |      This relies on the fact that the string
     |      representation of an instance can not change after the construction.
     |  
     |  __repr__(self)
     |      Return a more complete string representation.
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  applicable_protections(self)
     |      Return the protection types allowed for that page.
     |      
     |      If the page doesn't exists it only returns "create". Otherwise it
     |      returns all protection types provided by the site, except "create".
     |      It also removes "upload" if that page is not in the File namespace.
     |      
     |      It is possible, that it returns an empty set, but only if original
     |      protection types were removed.
     |      
     |      @return: set of unicode
     |      @rtype: set
     |  
     |  aslink(self, force_interwiki=False, textlink=False, no_interwiki=False, forceInterwiki='[deprecated name of force_interwiki]', noInterwiki='[deprecated name of no_interwiki]')
     |      DEPRECATED: use self.title(as_link=True) instead.
     |  
     |  autoFormat(self)
     |      Return L{date.getAutoFormat} dictName and value, if any.
     |      
     |      Value can be a year, date, etc., and dictName is 'YearBC',
     |      'Year_December', or another dictionary name. Please note that two
     |      entries may have exactly the same autoFormat, but be in two
     |      different namespaces, as some sites have categories with the
     |      same names. Regular titles return (None, None).
     |  
     |  backlinks(self, follow_redirects=True, filter_redirects=None, namespaces=None, total=None, content=False, step=NotImplemented, followRedirects='[deprecated name of follow_redirects]', filterRedirects='[deprecated name of filter_redirects]')
     |      Return an iterator for pages that link to this page.
     |      
     |      @param follow_redirects: if True, also iterate pages that link to a
     |          redirect pointing to the page.
     |      @param filter_redirects: if True, only iterate redirects; if False,
     |          omit redirects; if None, do not filter
     |      @param namespaces: only iterate pages in these namespaces
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each referring page (default False)
     |  
     |  canBeEdited(self)
     |      Determine whether the page may be edited.
     |      
     |      This returns True if and only if:
     |        - page is unprotected, and bot has an account for this site, or
     |        - page is protected, and bot has a sysop account for this site.
     |      
     |      @rtype: bool
     |  
     |  categories(self, with_sort_key=False, total=None, content=False, nofollow_redirects=NotImplemented, get_redirect=NotImplemented, step=NotImplemented, withSortKey='[deprecated name of with_sort_key]')
     |      Iterate categories that the article is in.
     |      
     |      @param with_sort_key: if True, include the sort key in each Category.
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each category description page (default False)
     |      @return: a generator that yields Category objects.
     |      @rtype: generator
     |  
     |  change_category(self, old_cat, new_cat, summary=None, sort_key=None, in_place=True, include=[], comment='[deprecated name of summary]', oldCat='[deprecated name of old_cat]', newCat='[deprecated name of new_cat]', sortKey='[deprecated name of sort_key]', inPlace='[deprecated name of in_place]')
     |      Remove page from oldCat and add it to newCat.
     |      
     |      @param old_cat: category to be removed
     |      @type old_cat: Category
     |      @param new_cat: category to be added, if any
     |      @type new_cat: Category or None
     |      
     |      @param summary: string to use as an edit summary
     |      
     |      @param sort_key: sortKey to use for the added category.
     |          Unused if newCat is None, or if inPlace=True
     |          If sortKey=True, the sortKey used for oldCat will be used.
     |      
     |      @param in_place: if True, change categories in place rather than
     |                    rearranging them.
     |      
     |      @param include: list of tags not to be disabled by default in relevant
     |          textlib functions, where CategoryLinks can be searched.
     |      @type include: list
     |      
     |      @return: True if page was saved changed, otherwise False.
     |      @rtype: bool
     |  
     |  clear_cache(self)
     |      Clear the cached attributes of the page.
     |  
     |  contributingUsers(self, total=None, step=NotImplemented)
     |      Deprecated; use contributors() instead.
     |      
     |      
     |      Return a set of usernames (or IPs) of users who edited this page.
     |      
     |      @param total: iterate no more than this number of revisions in total
     |      
     |      @rtype: set
     |  
     |  contributors(self, total=None, starttime=None, endtime=None, step=NotImplemented)
     |      Compile contributors of this page with edit counts.
     |      
     |      @param total: iterate no more than this number of revisions in total
     |      @param starttime: retrieve revisions starting at this Timestamp
     |      @param endtime: retrieve revisions ending at this Timestamp
     |      
     |      @return: number of edits for each username
     |      @rtype: L{collections.Counter}
     |  
     |  coordinates(self, primary_only=False)
     |      Return a list of Coordinate objects for points on the page.
     |      
     |      Uses the MediaWiki extension GeoData.
     |      
     |      @param primary_only: Only return the coordinate indicated to be primary
     |      @return: A list of Coordinate objects
     |      @rtype: list
     |  
     |  data_item(self)
     |      Convenience function to get the Wikibase item of a page.
     |      
     |      @rtype: ItemPage
     |  
     |  defaultsort(self, force=False)
     |      Extract value of the {{DEFAULTSORT:}} magic word from the page.
     |      
     |      @param force: force updating from the live site
     |      
     |      @rtype: unicode or None
     |  
     |  delete(self, reason=None, prompt=True, mark=False, quit=False, throttle=NotImplemented)
     |      Delete the page from the wiki. Requires administrator status.
     |      
     |      @param reason: The edit summary for the deletion, or rationale
     |          for deletion if requesting. If None, ask for it.
     |      @param prompt: If true, prompt user for confirmation before deleting.
     |      @param mark: If true, and user does not have sysop rights, place a
     |          speedy-deletion request on the page instead. If false, non-sysops
     |          will be asked before marking pages for deletion.
     |      @param quit: show also the quit option, when asking for confirmation.
     |  
     |  editTime(self)
     |      Return timestamp of last revision to page.
     |      
     |      @rtype: pywikibot.Timestamp
     |  
     |  embeddedin(self, filter_redirects=None, namespaces=None, total=None, content=False, step=NotImplemented)
     |      Return an iterator for pages that embed this page as a template.
     |      
     |      @param filter_redirects: if True, only iterate redirects; if False,
     |          omit redirects; if None, do not filter
     |      @param namespaces: only iterate pages in these namespaces
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each embedding page (default False)
     |  
     |  encoding(self)
     |      DEPRECATED: use self.site.encoding instead.
     |  
     |  expand_text(self, force=False, includecomments=False, refresh='[deprecated name of force]')
     |      Return the page text with all templates and parser words expanded.
     |      
     |      @param force: force updating from the live site
     |      @param includecomments: Also strip comments if includecomments
     |          parameter is not True.
     |      
     |      @rtype unicode or None
     |  
     |  extlinks(self, total=None, step=NotImplemented)
     |      Iterate all external URLs (not interwiki links) from this page.
     |      
     |      @param total: iterate no more than this number of pages in total
     |      @return: a generator that yields unicode objects containing URLs.
     |      @rtype: generator
     |  
     |  fullVersionHistory(self, reverse=False, total=None, reverseOrder='[deprecated name of reverse]', rollback=NotImplemented, step=NotImplemented)
     |      Deprecated; use Page.revisions(content=True) instead.
     |      
     |      Iterate previous versions including wikitext.
     |      
     |              Takes same arguments as getVersionHistory.
     |  
     |  full_url(self)
     |      Return the full URL.
     |  
     |  getCategoryRedirectTarget(self)
     |      If this is a category redirect, return the target category title.
     |      
     |      @rtype: Category
     |  
     |  getCreator(self)
     |      Get the first revision of the page.
     |      
     |      DEPRECATED: Use Page.oldest_revision.
     |      
     |      @rtype: tuple(username, Timestamp)
     |  
     |  getDeletedRevision(self, timestamp, content=False, retrieveText='[deprecated name of content]')
     |      Return a particular deleted revision by timestamp.
     |      
     |      @return: a list of [date, editor, comment, text, restoration
     |          marker]. text will be None, unless content is True (or has
     |          been retrieved earlier). If timestamp is not found, returns
     |          None.
     |      @rtype: list
     |  
     |  getLatestEditors(self, total=1, limit='[deprecated name of total]')
     |      Get a list of revision informations of the last total edits.
     |      
     |      DEPRECATED: Use Page.revisions.
     |      
     |      @param total: iterate no more than this number of revisions in total
     |      @return: list of dict, each dict containing the username and Timestamp
     |      @rtype: list
     |  
     |  getMovedTarget(self)
     |      Return a Page object for the target this Page was moved to.
     |      
     |      DEPRECATED: Use Page.moved_target().
     |      
     |      If this page was not moved, it will raise a NoPage exception.
     |      This method also works if the source was already deleted.
     |      
     |      @rtype: pywikibot.Page
     |      @raises NoPage: this page was not moved
     |  
     |  getOldVersion(self, oldid, force=False, get_redirect=False, sysop=False, throttle=NotImplemented, change_edit_time=NotImplemented)
     |      Return text of an old revision of this page; same options as get().
     |      
     |      @param oldid: The revid of the revision desired.
     |      @rtype: unicode
     |  
     |  getRedirectTarget(self)
     |      Return a Page object for the target this Page redirects to.
     |      
     |      If this page is not a redirect page, will raise an IsNotRedirectPage
     |      exception. This method also can raise a NoPage exception.
     |      
     |      @rtype: pywikibot.Page
     |  
     |  getReferences(self, follow_redirects=True, with_template_inclusion=True, only_template_inclusion=False, filter_redirects=False, namespaces=None, total=None, content=False, step=NotImplemented, withTemplateInclusion='[deprecated name of with_template_inclusion]', onlyTemplateInclusion='[deprecated name of only_template_inclusion]', redirectsOnly='[deprecated name of filter_redirects]')
     |      Return an iterator all pages that refer to or embed the page.
     |      
     |      If you need a full list of referring pages, use
     |      C{pages = list(s.getReferences())}
     |      
     |      @param follow_redirects: if True, also iterate pages that link to a
     |          redirect pointing to the page.
     |      @param with_template_inclusion: if True, also iterate pages where self
     |          is used as a template.
     |      @param only_template_inclusion: if True, only iterate pages where self
     |          is used as a template.
     |      @param filter_redirects: if True, only iterate redirects to self.
     |      @param namespaces: only iterate pages in these namespaces
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each referring page (default False)
     |  
     |  getRestrictions(self)
     |      DEPRECATED. Use self.protection() instead.
     |  
     |  getTemplates(self, tllimit=NotImplemented)
     |      DEPRECATED. Use templates().
     |  
     |  getVersionHistory(self, reverse=False, total=None, forceReload=NotImplemented, revCount='[deprecated name of total]', step=NotImplemented, getAll=NotImplemented, reverseOrder='[deprecated name of reverse]')
     |      Deprecated; use Page.revisions() instead.
     |      
     |      
     |      Load the version history page and return history information.
     |      
     |      Return value is a list of tuples, where each tuple represents one
     |      edit and is built of revision id, edit date/time, user name, and
     |      edit summary. Starts with the most current revision, unless
     |      reverse is True.
     |      
     |      @param total: iterate no more than this number of revisions in total
     |  
     |  getVersionHistoryTable(self, reverse=False, total=None, forceReload=NotImplemented, reverseOrder='[deprecated name of reverse]', step=NotImplemented)
     |      Return the version history as a wiki table.
     |  
     |  imagelinks(self, total=None, content=False, followRedirects=NotImplemented, loose=NotImplemented, step=NotImplemented)
     |      Iterate FilePage objects for images displayed on this Page.
     |      
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each image description page (default False)
     |      @return: a generator that yields FilePage objects.
     |  
     |  interwiki(self, expand=True)
     |      Iterate interwiki links in the page text, excluding language links.
     |      
     |      @param expand: if True (default), include interwiki links found in
     |          templates transcluded onto this page; if False, only iterate
     |          interwiki links found in this page's own wikitext
     |      @type expand: bool
     |      
     |      @return: a generator that yields Link objects
     |      @rtype: generator
     |  
     |  isAutoTitle(self)
     |      Return True if title of this Page is in the autoFormat dict.
     |  
     |  isCategory(self)
     |      DEPRECATED: use is_categorypage instead.
     |  
     |  isCategoryRedirect(self)
     |      Return True if this is a category redirect page, False otherwise.
     |      
     |      @rtype: bool
     |  
     |  isDisambig(self)
     |      Return True if this is a disambiguation page, False otherwise.
     |      
     |      By default, it uses the the Disambiguator extension's result. The
     |      identification relies on the presense of the __DISAMBIG__ magic word
     |      which may also be transcluded.
     |      
     |      If the Disambiguator extension isn't activated for the given site,
     |      the identification relies on the presence of specific templates.
     |      First load a list of template names from the Family file;
     |      if the value in the Family file is None or no entry was made, look for
     |      the list on [[MediaWiki:Disambiguationspage]]. If this page does not
     |      exist, take the MediaWiki message. 'Template:Disambig' is always
     |      assumed to be default, and will be appended regardless of its
     |      existence.
     |      
     |      @rtype: bool
     |  
     |  isEmpty(self)
     |      Deprecated; use interwiki.page_empty_check(page) instead.
     |      
     |      
     |      Return True if the page text has less than 4 characters.
     |      
     |      Character count ignores language links and category links.
     |      Can raise the same exceptions as get().
     |      
     |      @rtype: bool
     |  
     |  isFlowPage(self)
     |      DEPRECATED: use self.is_flow_page instead.
     |  
     |  isImage(self)
     |      DEPRECATED: use is_filepage instead.
     |  
     |  isIpEdit(self)
     |      Return True if last editor was unregistered.
     |      
     |      @rtype: bool
     |  
     |  isRedirectPage(self)
     |      Return True if this is a redirect, False if not or not existing.
     |  
     |  isStaticRedirect(self, force=False)
     |      Determine whether the page is a static redirect.
     |      
     |      A static redirect must be a valid redirect, and contain the magic word
     |      __STATICREDIRECT__.
     |      
     |      @param force: Bypass local caching
     |      @type force: bool
     |      
     |      @rtype: bool
     |  
     |  isTalkPage(self)
     |      Return True if this page is in any talk namespace.
     |  
     |  is_categorypage(self)
     |      Return True if the page is a Category, False otherwise.
     |  
     |  is_filepage(self)
     |      Return True if this is an file description page, False otherwise.
     |  
     |  is_flow_page(self)
     |      Whether a page is a Flow page.
     |      
     |      @rtype: bool
     |  
     |  iterlanglinks(self, total=None, include_obsolete=False, step=NotImplemented)
     |      Iterate all inter-language links on this page.
     |      
     |      @param total: iterate no more than this number of pages in total
     |      @param include_obsolete: if true, yield even Link object whose site
     |                               is obsolete
     |      @type include_obsolete: bool
     |      
     |      @return: a generator that yields Link objects.
     |      @rtype: generator
     |  
     |  itertemplates(self, total=None, content=False, step=NotImplemented)
     |      Iterate Page objects for templates used on this Page.
     |      
     |      Template parameters are ignored. This method only returns embedded
     |      templates, not template pages that happen to be referenced through
     |      a normal link.
     |      
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each template (default False)
     |      @param content: bool
     |  
     |  langlinks(self, include_obsolete=False)
     |      Return a list of all inter-language Links on this page.
     |      
     |      @param include_obsolete: if true, return even Link objects whose site
     |                               is obsolete
     |      @type include_obsolete: bool
     |      
     |      @return: list of Link objects.
     |      @rtype: list
     |  
     |  lastNonBotUser(self)
     |      Return name or IP address of last human/non-bot user to edit page.
     |      
     |      Determine the most recent human editor out of the last revisions.
     |      If it was not able to retrieve a human user, returns None.
     |      
     |      If the edit was done by a bot which is no longer flagged as 'bot',
     |      i.e. which is not returned by Site.botusers(), it will be returned
     |      as a non-bot edit.
     |      
     |      @rtype: unicode
     |  
     |  latestRevision(self)
     |      Deprecated; use latest_revision_id instead.
     |      
     |      Return the current revision id for this page.
     |  
     |  linkedPages(self, namespaces=None, total=None, content=False, step=NotImplemented)
     |      Iterate Pages that this Page links to.
     |      
     |      Only returns pages from "normal" internal links. Image and category
     |      links are omitted unless prefixed with ":". Embedded templates are
     |      omitted (but links within them are returned). All interwiki and
     |      external links are omitted.
     |      
     |      @param namespaces: only iterate links in these namespaces
     |      @param namespaces: int, or list of ints
     |      @param total: iterate no more than this number of pages in total
     |      @type total: int
     |      @param content: if True, retrieve the content of the current version
     |          of each linked page (default False)
     |      @type content: bool
     |      
     |      @return: a generator that yields Page objects.
     |      @rtype: generator
     |  
     |  loadDeletedRevisions(self, total=None, step=NotImplemented)
     |      Retrieve deleted revisions for this Page.
     |      
     |      Stores all revisions' timestamps, dates, editors and comments in
     |      self._deletedRevs attribute.
     |      
     |      @return: iterator of timestamps (which can be used to retrieve
     |          revisions later on).
     |      @rtype: generator
     |  
     |  markDeletedRevision(self, timestamp, undelete=True)
     |      Mark the revision identified by timestamp for undeletion.
     |      
     |      @param undelete: if False, mark the revision to remain deleted.
     |      @type undelete: bool
     |  
     |  merge_history(self, dest, timestamp=None, reason=None)
     |      Merge revisions from this page into another page.
     |      
     |      See L{APISite.merge_history} for details.
     |      
     |      @param dest: Destination page to which revisions will be merged
     |      @type dest: pywikibot.Page
     |      @param timestamp: Revisions from this page dating up to this timestamp
     |          will be merged into the destination page (if not given or False,
     |          all revisions will be merged)
     |      @type timestamp: pywikibot.Timestamp
     |      @param reason: Optional reason for the history merge
     |      @type reason: str
     |  
     |  move(self, newtitle, reason=None, movetalk=True, sysop=False, noredirect=False, throttle=NotImplemented, deleteAndMove='[deprecated name of noredirect]', movetalkpage='[deprecated name of movetalk]')
     |      Move this page to a new title.
     |      
     |      @param newtitle: The new page title.
     |      @param reason: The edit summary for the move.
     |      @param movetalk: If true, move this page's talk page (if it exists)
     |      @param sysop: Try to move using sysop account, if available
     |      @param noredirect: if move succeeds, delete the old page
     |          (usually requires sysop privileges, depending on wiki settings)
     |  
     |  moved_target(self)
     |      Return a Page object for the target this Page was moved to.
     |      
     |      If this page was not moved, it will raise a NoMoveTarget exception.
     |      This method also works if the source was already deleted.
     |      
     |      @rtype: pywikibot.Page
     |      @raises NoMoveTarget: this page was not moved
     |  
     |  pageAPInfo(self)
     |      Deprecated; use latest_revision_id instead.
     |      
     |      Return the current revision id for this page.
     |  
     |  page_image(self)
     |      Return the most appropriate image on the page.
     |      
     |      Uses the MediaWiki extension PageImages.
     |      
     |      @return: A FilePage object
     |      @rtype: FilePage
     |  
     |  permalink(self, oldid=None, percent_encoded=True, with_protocol=False)
     |      Return the permalink URL of an old revision of this page.
     |      
     |      @param oldid: The revid of the revision desired.
     |      @param percent_encoded: if false, the link will be provided
     |          without title uncoded.
     |      @param with_protocol: if true, http or https prefixes will be
     |          included before the double slash.
     |      @rtype: unicode
     |  
     |  preloadText(self)
     |      The text returned by EditFormPreloadText.
     |      
     |      See API module "info".
     |      
     |      Application: on Wikisource wikis, text can be preloaded even if
     |      a page does not exist, if an Index page is present.
     |      
     |      @rtype: unicode
     |  
     |  previousRevision(self)
     |      Return the revision id for the previous revision.
     |      
     |      DEPRECATED: Use latest_revision.parent_id instead.
     |      
     |      @rtype: long
     |      
     |      @raise AssertionError: Use on MediaWiki prior to v1.16.
     |  
     |  properties(self, force=False)
     |      Return the properties of the page.
     |      
     |      @param force: force updating from the live site
     |      
     |      @rtype: dict
     |  
     |  protect(self, edit=False, move=False, create=None, upload=None, unprotect=False, reason=None, prompt=None, protections=None, **kwargs, throttle=NotImplemented)
     |      Protect or unprotect a wiki page. Requires administrator status.
     |      
     |      Valid protection levels (in MediaWiki 1.12) are '' (equivalent to
     |      'none'), 'autoconfirmed', and 'sysop'. If None is given, however,
     |      that protection will be skipped.
     |      
     |      @param protections: A dict mapping type of protection to protection
     |          level of that type.
     |      @type protections: dict
     |      @param reason: Reason for the action
     |      @type reason: basestring
     |      @param prompt: Whether to ask user for confirmation (deprecated).
     |                     Defaults to protections is None
     |      @type prompt: bool
     |  
     |  protection(self)
     |      Return a dictionary reflecting page protections.
     |      
     |      @rtype: dict
     |  
     |  purge(self, **kwargs)
     |      Purge the server's cache for this page.
     |      
     |      @rtype: bool
     |  
     |  put(self, newtext, summary=None, watch=None, minor=True, botflag=None, force=False, asynchronous=False, callback=None, **kwargs, comment='[deprecated name of summary]', watchArticle='[deprecated name of watch]', minorEdit='[deprecated name of minor]', async='[deprecated name of asynchronous]')
     |      Save the page with the contents of the first argument as the text.
     |      
     |      This method is maintained primarily for backwards-compatibility.
     |      For new code, using Page.save() is preferred. See save() method
     |      docs for all parameters not listed here.
     |      
     |      @param newtext: The complete text of the revised page.
     |      @type newtext: unicode
     |  
     |  put_async(self, newtext, summary=None, watch=None, minor=True, botflag=None, force=False, callback=None, **kwargs, comment='[deprecated name of summary]', watchArticle='[deprecated name of watch]', minorEdit='[deprecated name of minor]')
     |      Deprecated; use put(asynchronous=True) or save(asynchronous=True) instead.
     |      
     |      
     |      Put page on queue to be saved to wiki asynchronously.
     |      
     |      Asynchronous version of put (takes the same arguments), which places
     |      pages on a queue to be saved by a daemon thread. All arguments are
     |      the same as for .put(). This version is maintained solely for
     |      backwards-compatibility.
     |  
     |  revision_count(self, contributors=None)
     |      Determine number of edits from a set of contributors.
     |      
     |      @param contributors: contributor usernames
     |      @type contributors: iterable of str
     |      
     |      @return: number of edits for all provided usernames
     |      @rtype: int
     |  
     |  revisions(self, reverse=False, total=None, content=False, rollback=False, starttime=None, endtime=None, getText='[deprecated name of content]', reverseOrder='[deprecated name of reverse]', step=NotImplemented)
     |      Generator which loads the version history as Revision instances.
     |  
     |  save(self, summary=None, watch=None, minor=True, botflag=None, force=False, asynchronous=False, callback=None, apply_cosmetic_changes=None, quiet=False, **kwargs, comment='[deprecated name of summary]', sysop=NotImplemented, async='[deprecated name of asynchronous]')
     |      Save the current contents of page's text to the wiki.
     |      
     |      @param summary: The edit summary for the modification (optional, but
     |          most wikis strongly encourage its use)
     |      @type summary: unicode
     |      @param watch: Specify how the watchlist is affected by this edit, set
     |          to one of "watch", "unwatch", "preferences", "nochange":
     |          * watch: add the page to the watchlist
     |          * unwatch: remove the page from the watchlist
     |          * preferences: use the preference settings (Default)
     |          * nochange: don't change the watchlist
     |          If None (default), follow bot account's default settings
     |      
     |          For backward compatibility watch parameter may also be boolean:
     |          if True, add or if False, remove this Page to/from bot
     |          user's watchlist.
     |      @type watch: string, bool (deprecated) or None
     |      @param minor: if True, mark this edit as minor
     |      @type minor: bool
     |      @param botflag: if True, mark this edit as made by a bot (default:
     |          True if user has bot status, False if not)
     |      @param force: if True, ignore botMayEdit() setting
     |      @type force: bool
     |      @param asynchronous: if True, launch a separate thread to save
     |          asynchronously
     |      @param callback: a callable object that will be called after the
     |          page put operation. This object must take two arguments: (1) a
     |          Page object, and (2) an exception instance, which will be None
     |          if the page was saved successfully. The callback is intended for
     |          use by bots that need to keep track of which saves were
     |          successful.
     |      @param apply_cosmetic_changes: Overwrites the cosmetic_changes
     |          configuration value to this value unless it's None.
     |      @type apply_cosmetic_changes: bool or None
     |      @param quiet: enable/disable successful save operation message;
     |          defaults to False.
     |          In asynchronous mode, if True, it is up to the calling bot to
     |          manage the output e.g. via callback.
     |      @type quiet: bool
     |  
     |  section(self)
     |      Return the name of the section this Page refers to.
     |      
     |      The section is the part of the title following a '#' character, if
     |      any. If no section is present, return None.
     |      
     |      @rtype: unicode
     |  
     |  sectionFreeTitle(self, underscore=False)
     |      DEPRECATED: use self.title(with_section=False) instead.
     |  
     |  templates(self, content=False, get_redirect=NotImplemented)
     |      Return a list of Page objects for templates used on this Page.
     |      
     |      Template parameters are ignored. This method only returns embedded
     |      templates, not template pages that happen to be referenced through
     |      a normal link.
     |      
     |      @param content: if True, retrieve the content of the current version
     |          of each template (default False)
     |      @param content: bool
     |  
     |  title(self, underscore=False, with_ns=True, with_section=True, as_url=False, as_link=False, allow_interwiki=True, force_interwiki=False, textlink=False, as_filename=False, insite=None, without_brackets=False, decode=NotImplemented, savetitle='[deprecated name of as_url]', withNamespace='[deprecated name of with_ns]', withSection='[deprecated name of with_section]', forceInterwiki='[deprecated name of force_interwiki]', asUrl='[deprecated name of as_url]', asLink='[deprecated name of as_link]', allowInterwiki='[deprecated name of allow_interwiki]')
     |      Return the title of this Page, as a Unicode string.
     |      
     |      @param underscore: (not used with as_link) if true, replace all ' '
     |          characters with '_'
     |      @param with_ns: if false, omit the namespace prefix. If this
     |          option is false and used together with as_link return a labeled
     |          link like [[link|label]]
     |      @param with_section: if false, omit the section
     |      @param as_url: (not used with as_link) if true, quote title as if in an
     |          URL
     |      @param as_link: if true, return the title in the form of a wikilink
     |      @param allow_interwiki: (only used if as_link is true) if true, format
     |          the link as an interwiki link if necessary
     |      @param force_interwiki: (only used if as_link is true) if true, always
     |          format the link as an interwiki link
     |      @param textlink: (only used if as_link is true) if true, place a ':'
     |          before Category: and Image: links
     |      @param as_filename: (not used with as_link) if true, replace any
     |          characters that are unsafe in filenames
     |      @param insite: (only used if as_link is true) a site object where the
     |          title is to be shown. default is the current family/lang given by
     |          -family and -lang option i.e. config.family and config.mylang
     |      @param without_brackets: (cannot be used with as_link) if true, remove
     |          the last pair of brackets(usually removes disambiguation brackets).
     |      @rtype: unicode
     |  
     |  titleForFilename(self)
     |      DEPRECATED: use self.title(as_filename=True) instead.
     |  
     |  titleWithoutNamespace(self, underscore=False)
     |      DEPRECATED: use self.title(with_ns=False) instead.
     |  
     |  toggleTalkPage(self)
     |      Return other member of the article-talk page pair for this Page.
     |      
     |      If self is a talk page, returns the associated content page;
     |      otherwise, returns the associated talk page. The returned page need
     |      not actually exist on the wiki.
     |      
     |      @return: Page or None if self is a special page.
     |      @rtype: Page or None
     |  
     |  touch(self, callback=None, botflag=False, **kwargs)
     |      Make a touch edit for this page.
     |      
     |      See save() method docs for all parameters.
     |      The following parameters will be overridden by this method:
     |      - summary, watch, minor, force, asynchronous
     |      
     |      Parameter botflag is False by default.
     |      
     |      minor and botflag parameters are set to False which prevents hiding
     |      the edit when it becomes a real edit due to a bug.
     |  
     |  undelete(self, reason=None, comment='[deprecated name of reason]', throttle=NotImplemented)
     |      Undelete revisions based on the markers set by previous calls.
     |      
     |      If no calls have been made since loadDeletedRevisions(), everything
     |      will be restored.
     |      
     |      Simplest case::
     |      
     |          Page(...).undelete('This will restore all revisions')
     |      
     |      More complex::
     |      
     |          pg = Page(...)
     |          revs = pg.loadDeletedRevisions()
     |          for rev in revs:
     |              if ... #decide whether to undelete a revision
     |                  pg.markDeletedRevision(rev) #mark for undeletion
     |          pg.undelete('This will restore only selected revisions.')
     |      
     |      @param reason: Reason for the action.
     |      @type reason: basestring
     |  
     |  urlname(self)
     |      Return the Page title encoded for use in an URL.
     |      
     |      DEPRECATED: use self.title(as_url=True) instead.
     |  
     |  userName(self)
     |      Return name or IP address of last user to edit page.
     |      
     |      @rtype: unicode
     |  
     |  version(self)
     |      Return MediaWiki version number of the page site.
     |      
     |      This is needed to use @need_version() decorator for methods of
     |      Page objects.
     |  
     |  watch(self, unwatch=False)
     |      Add or remove this page to/from bot account's watchlist.
     |      
     |      @param unwatch: True to unwatch, False (default) to watch.
     |      @type unwatch: bool
     |      
     |      @return: True if successful, False otherwise.
     |      @rtype: bool
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from BasePage:
     |  
     |  content_model
     |      Return the content model for this page.
     |      
     |      If it cannot be reliably determined via the API,
     |      None is returned.
     |  
     |  data_repository
     |      Return the Site object for the data repository.
     |  
     |  depth
     |      Return the depth/subpage level of the page.
     |  
     |  image_repository
     |      Return the Site object for the image repository.
     |  
     |  latest_revision
     |      Return the current revision for this page.
     |  
     |  oldest_revision
     |      Return the first revision of this page.
     |      
     |      @rtype: L{Revision}
     |  
     |  pageid
     |      Return pageid of the page.
     |      
     |      @return: pageid or 0 if page does not exist
     |      @rtype: int
     |  
     |  previous_revision_id
     |      Deprecated; use latest_revision.parent_id (0 instead of -1 when no parent) instead.
     |      
     |      
     |      Return the revision id for the previous revision of this Page.
     |      
     |      If the page has only one revision, it shall return -1.
     |      
     |      @rtype: long
     |      
     |      @raise AssertionError: Use on MediaWiki prior to v1.16.
     |  
     |  site
     |      Return the Site object for the wiki on which this Page resides.
     |      
     |      @rtype: pywikibot.Site
     |  
     |  text
     |      Return the current (edited) wikitext, loading it if necessary.
     |      
     |      @return: text of the page
     |      @rtype: unicode
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.ComparableMixin:
     |  
     |  __eq__(self, other)
     |      Compare if self is equal to other.
     |  
     |  __ge__(self, other)
     |      Compare if self is greater equals other.
     |  
     |  __gt__(self, other)
     |      Compare if self is greater than other.
     |  
     |  __le__(self, other)
     |      Compare if self is less equals other.
     |  
     |  __lt__(self, other)
     |      Compare if self is less than other.
     |  
     |  __ne__(self, other)
     |      Compare if self is not equal to other.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Property:
     |  
     |  getType(self)
     |      Deprecated; use Property.type instead.
     |      
     |      
     |      Return the type of this property.
     |      
     |      It returns 'globecoordinate' for type 'globe-coordinate'
     |      in order to be backwards compatible. See
     |      https://gerrit.wikimedia.org/r/#/c/135405/ for background.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Property:
     |  
     |  type
     |      Return the type of this property.
     |      
     |      @rtype: str
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes inherited from Property:
     |  
     |  types = {'commonsMedia': <class 'pywikibot.page.FilePage'>, 'external-...
     |  
     |  value_types = {'commonsMedia': 'string', 'external-id': 'string', 'geo...
    
    class SectionError(Error)
     |  The section specified by # does not exist.
     |  
     |  Method resolution order:
     |      SectionError
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Methods inherited from Error:
     |  
     |  __init__(self, arg)
     |      Initializer.
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
     |  
     |  args
    
    class Server504Error(ServerError)
     |  Server timed out with HTTP 504 code.
     |  
     |  Method resolution order:
     |      Server504Error
     |      ServerError
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Methods inherited from Error:
     |  
     |  __init__(self, arg)
     |      Initializer.
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
     |  
     |  args
    
    class ServerError(Error)
     |  Got unexpected server response.
     |  
     |  Method resolution order:
     |      ServerError
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Methods inherited from Error:
     |  
     |  __init__(self, arg)
     |      Initializer.
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
     |  
     |  args
    
    class SiteDefinitionError(Error)
     |  Site does not exist.
     |  
     |  Method resolution order:
     |      SiteDefinitionError
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Methods inherited from Error:
     |  
     |  __init__(self, arg)
     |      Initializer.
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
     |  
     |  args
    
    class SpamfilterError(PageSaveRelatedError)
     |  Page save failed because MediaWiki detected a blacklisted spam URL.
     |  
     |  Method resolution order:
     |      SpamfilterError
     |      PageSaveRelatedError
     |      PageRelatedError
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Methods defined here:
     |  
     |  __init__(self, page, url)
     |      Initializer.
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |  
     |  message = 'Edit to page %(title)s rejected by spam filter due to conte...
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from PageSaveRelatedError:
     |  
     |  args
     |      Expose args.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from PageRelatedError:
     |  
     |  getPage(self)
     |      Return the page related to the exception.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Error:
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
    
    class TitleblacklistError(PageSaveRelatedError)
     |  Page save failed because MediaWiki detected a blacklisted page title.
     |  
     |  Method resolution order:
     |      TitleblacklistError
     |      PageSaveRelatedError
     |      PageRelatedError
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Data and other attributes defined here:
     |  
     |  message = 'Page %s is title-blacklisted.'
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from PageSaveRelatedError:
     |  
     |  args
     |      Expose args.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from PageRelatedError:
     |  
     |  __init__(self, page, message=None)
     |      Initializer.
     |      
     |      @param page: Page that caused the exception
     |      @type page: Page object
     |  
     |  getPage(self)
     |      Return the page related to the exception.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Error:
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
    
    class UnicodeMixin(builtins.object)
     |  Mixin class to add __str__ method in Python 2 or 3.
     |  
     |  Methods defined here:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
    
    class UnknownExtension(Error, builtins.NotImplementedError)
     |  Extension is not defined.
     |  
     |  Method resolution order:
     |      UnknownExtension
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.NotImplementedError
     |      builtins.RuntimeError
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Methods inherited from Error:
     |  
     |  __init__(self, arg)
     |      Initializer.
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.NotImplementedError:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
     |  
     |  args
    
    class UnknownFamily(SiteDefinitionError)
     |  Family is not registered.
     |  
     |  Method resolution order:
     |      UnknownFamily
     |      SiteDefinitionError
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Methods inherited from Error:
     |  
     |  __init__(self, arg)
     |      Initializer.
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
     |  
     |  args
    
    class UnknownSite(SiteDefinitionError)
     |  Site does not exist in Family.
     |  
     |  Method resolution order:
     |      UnknownSite
     |      SiteDefinitionError
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Methods inherited from Error:
     |  
     |  __init__(self, arg)
     |      Initializer.
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
     |  
     |  args
    
    class UnsupportedPage(PageRelatedError)
     |  Unsupported page due to namespace restriction.
     |  
     |  Method resolution order:
     |      UnsupportedPage
     |      PageRelatedError
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Data and other attributes defined here:
     |  
     |  message = 'Page %s is not supported due to namespace restriction.'
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from PageRelatedError:
     |  
     |  __init__(self, page, message=None)
     |      Initializer.
     |      
     |      @param page: Page that caused the exception
     |      @type page: Page object
     |  
     |  getPage(self)
     |      Return the page related to the exception.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Error:
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
     |  
     |  args
    
    class User(Page)
     |  A class that represents a Wiki user.
     |  
     |  This class also represents the Wiki page User:<username>
     |  
     |  Method resolution order:
     |      User
     |      Page
     |      BasePage
     |      pywikibot.tools.UnicodeMixin
     |      pywikibot.tools.ComparableMixin
     |      builtins.object
     |  
     |  Methods defined here:
     |  
     |  __init__(self, source, title='', site='[deprecated name of source]', name='[deprecated name of title]')
     |      Initializer for a User object.
     |      
     |      All parameters are the same as for Page() Initializer.
     |  
     |  block(self, expiry, reason, anononly=True, nocreate=True, autoblock=True, noemail=False, reblock=False)
     |      Block user.
     |      
     |      @param expiry: When the block should expire
     |      @type expiry: pywikibot.Timestamp|str
     |      @param reason: Block reason
     |      @type reason: basestring
     |      @param anononly: Whether block should only affect anonymous users
     |      @type anononly: bool
     |      @param nocreate: Whether to block account creation
     |      @type nocreate: bool
     |      @param autoblock: Whether to enable autoblock
     |      @type autoblock: bool
     |      @param noemail: Whether to disable email access
     |      @type noemail: bool
     |      @param reblock: Whether to reblock if a block already is set
     |      @type reblock: bool
     |      @return: None
     |  
     |  contributions(self, total=500, **kwargs, limit='[deprecated name of total]', namespace='[deprecated name of namespaces]')
     |      Yield tuples describing this user edits.
     |      
     |      Each tuple is composed of a pywikibot.Page object,
     |      the revision id (int), the edit timestamp (as a pywikibot.Timestamp
     |      object), and the comment (unicode).
     |      Pages returned are not guaranteed to be unique.
     |      
     |      @param total: limit result to this number of pages
     |      @type total: int
     |      @keyword start: Iterate contributions starting at this Timestamp
     |      @keyword end: Iterate contributions ending at this Timestamp
     |      @keyword reverse: Iterate oldest contributions first (default: newest)
     |      @keyword namespaces: only iterate pages in these namespaces
     |      @type namespaces: iterable of basestring or Namespace key,
     |          or a single instance of those types. May be a '|' separated
     |          list of namespace identifiers.
     |      @keyword showMinor: if True, iterate only minor edits; if False and
     |          not None, iterate only non-minor edits (default: iterate both)
     |      @keyword top_only: if True, iterate only edits which are the latest
     |          revision (default: False)
     |      @return: tuple of pywikibot.Page, revid, pywikibot.Timestamp, comment
     |      @rtype: tuple
     |  
     |  editCount(self, force=False)
     |      Return edit count for a registered user.
     |      
     |      Always returns 0 for 'anonymous' users.
     |      
     |      @param force: if True, forces reloading the data from API
     |      @type force: bool
     |      
     |      @rtype: int or long
     |  
     |  editedPages(self, total=500, limit='[deprecated name of total]')
     |      DEPRECATED. Use contributions().
     |      
     |      Yields pywikibot.Page objects that this user has
     |      edited, with an upper bound of 'total'. Pages returned are not
     |      guaranteed to be unique.
     |      
     |      @param total: limit result to this number of pages.
     |      @type total: int.
     |  
     |  gender(self, force=False)
     |      Return the gender of the user.
     |      
     |      @param force: if True, forces reloading the data from API
     |      @type force: bool
     |      @return: return 'male', 'female', or 'unknown'
     |      @rtype: str
     |  
     |  getUserPage(self, subpage='')
     |      Return a Page object relative to this user's main page.
     |      
     |      @param subpage: subpage part to be appended to the main
     |                          page title (optional)
     |      @type subpage: unicode
     |      @return: Page object of user page or user subpage
     |      @rtype: Page
     |  
     |  getUserTalkPage(self, subpage='')
     |      Return a Page object relative to this user's main talk page.
     |      
     |      @param subpage: subpage part to be appended to the main
     |                          talk page title (optional)
     |      @type subpage: unicode
     |      @return: Page object of user talk page or user talk subpage
     |      @rtype: Page
     |  
     |  getprops(self, force=False)
     |      Return a properties about the user.
     |      
     |      @param force: if True, forces reloading the data from API
     |      @type force: bool
     |      
     |      @rtype: dict
     |  
     |  groups(self, force=False)
     |      Return a list of groups to which this user belongs.
     |      
     |      The list of groups may be empty.
     |      
     |      @param force: if True, forces reloading the data from API
     |      @type force: bool
     |      @return: groups property
     |      @rtype: list
     |  
     |  isAnonymous(self)
     |      Determine if the user is editing as an IP address.
     |      
     |      @rtype: bool
     |  
     |  isBlocked(self, force=False)
     |      Determine whether the user is currently blocked.
     |      
     |      @param force: if True, forces reloading the data from API
     |      @type force: bool
     |      
     |      @rtype: bool
     |  
     |  isEmailable(self, force=False)
     |      Determine whether emails may be send to this user through MediaWiki.
     |      
     |      @param force: if True, forces reloading the data from API
     |      @type force: bool
     |      
     |      @rtype: bool
     |  
     |  isRegistered(self, force=False)
     |      Determine if the user is registered on the site.
     |      
     |      It is possible to have a page named User:xyz and not have
     |      a corresponding user with username xyz.
     |      
     |      The page does not need to exist for this method to return
     |      True.
     |      
     |      @param force: if True, forces reloading the data from API
     |      @type force: bool
     |      
     |      @rtype: bool
     |  
     |  logevents(self, **kwargs)
     |      Yield user activities.
     |      
     |      @keyword logtype: only iterate entries of this type
     |          (see mediawiki api documentation for available types)
     |      @type logtype: basestring
     |      @keyword page: only iterate entries affecting this page
     |      @type page: Page or basestring
     |      @keyword namespace: namespace to retrieve logevents from
     |      @type namespace: int or Namespace
     |      @keyword start: only iterate entries from and after this Timestamp
     |      @type start: Timestamp or ISO date string
     |      @keyword end: only iterate entries up to and through this Timestamp
     |      @type end: Timestamp or ISO date string
     |      @keyword reverse: if True, iterate oldest entries first
     |          (default: newest)
     |      @type reverse: bool
     |      @keyword tag: only iterate entries tagged with this tag
     |      @type tag: basestring
     |      @keyword total: maximum number of events to iterate
     |      @type total: int
     |      @rtype: iterable
     |  
     |  name(self)
     |      The username.
     |      
     |      DEPRECATED: use username instead.
     |      
     |      @rtype: unicode
     |  
     |  registration(self, force=False)
     |      Fetch registration date for this user.
     |      
     |      @param force: if True, forces reloading the data from API
     |      @type force: bool
     |      
     |      @rtype: pywikibot.Timestamp or None
     |  
     |  registrationTime(self, force=False)
     |      DEPRECATED. Fetch registration date for this user.
     |      
     |      @param force: if True, forces reloading the data from API
     |      @type force: bool
     |      
     |      @return: long (MediaWiki's internal timestamp format) or 0
     |      @rtype: int or long
     |  
     |  rights(self, force=False)
     |      Return user rights.
     |      
     |      @param force: if True, forces reloading the data from API
     |      @type force: bool
     |      @return: return user rights
     |      @rtype: list
     |  
     |  sendMail(self, subject, text, ccme=False)
     |      Deprecated; use send_email instead.
     |      
     |      
     |      Send an email to this user via MediaWiki's email interface.
     |      
     |      Outputs 'Email sent' if the email was sent.
     |      
     |      @param subject: the subject header of the mail
     |      @type subject: unicode
     |      @param text: mail body
     |      @type text: unicode
     |      @param ccme: if True, sends a copy of this email to the bot
     |      @type ccme: bool
     |      @raises NotEmailableError: the user of this User is not emailable
     |      @raises UserRightsError: logged in user does not have 'sendemail' right
     |      @return: operation successful indicator
     |      @rtype: bool
     |  
     |  send_email(self, subject, text, ccme=False)
     |      Send an email to this user via MediaWiki's email interface.
     |      
     |      @param subject: the subject header of the mail
     |      @type subject: unicode
     |      @param text: mail body
     |      @type text: unicode
     |      @param ccme: if True, sends a copy of this email to the bot
     |      @type ccme: bool
     |      @raises NotEmailableError: the user of this User is not emailable
     |      @raises UserRightsError: logged in user does not have 'sendemail' right
     |      @return: operation successful indicator
     |      @rtype: bool
     |  
     |  unblock(self, reason=None)
     |      Remove the block for the user.
     |      
     |      @param reason: Reason for the unblock.
     |      @type reason: basestring
     |  
     |  uploadedImages(self, total=10, number='[deprecated name of total]')
     |      Yield tuples describing files uploaded by this user.
     |      
     |      Each tuple is composed of a pywikibot.Page, the timestamp (str in
     |      ISO8601 format), comment (unicode) and a bool for pageid > 0.
     |      Pages returned are not guaranteed to be unique.
     |      
     |      @param total: limit result to this number of pages
     |      @type total: int
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |  
     |  first_edit
     |      Return first user contribution.
     |      
     |      @return: first user contribution entry
     |      @return: tuple of pywikibot.Page, revid, pywikibot.Timestamp, comment
     |      @rtype: tuple or None
     |  
     |  is_thankable
     |      Determine if the user has thanks notifications enabled.
     |      
     |      NOTE: This doesn't accurately determine if thanks is enabled for user.
     |            Privacy of thanks preferences is under discussion, please see
     |            https://phabricator.wikimedia.org/T57401#2216861, and
     |            https://phabricator.wikimedia.org/T120753#1863894
     |      
     |      @rtype: bool
     |  
     |  last_edit
     |      Return last user contribution.
     |      
     |      @return: last user contribution entry
     |      @return: tuple of pywikibot.Page, revid, pywikibot.Timestamp, comment
     |      @rtype: tuple or None
     |  
     |  last_event
     |      Return last user activity.
     |      
     |      @return: last user log entry
     |      @rtype: LogEntry or None
     |  
     |  username
     |      The username.
     |      
     |      Convenience method that returns the title of the page with
     |      namespace prefix omitted, which is the username.
     |      
     |      @rtype: unicode
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Page:
     |  
     |  set_redirect_target(self, target_page, create=False, force=False, keep_section=False, save=True, **kwargs)
     |      Change the page's text to point to the redirect page.
     |      
     |      @param target_page: target of the redirect, this argument is required.
     |      @type target_page: pywikibot.Page or string
     |      @param create: if true, it creates the redirect even if the page
     |          doesn't exist.
     |      @type create: bool
     |      @param force: if true, it set the redirect target even the page
     |          doesn't exist or it's not redirect.
     |      @type force: bool
     |      @param keep_section: if the old redirect links to a section
     |          and the new one doesn't it uses the old redirect's section.
     |      @type keep_section: bool
     |      @param save: if true, it saves the page immediately.
     |      @type save: bool
     |      @param kwargs: Arguments which are used for saving the page directly
     |          afterwards, like 'summary' for edit summary.
     |  
     |  templatesWithParams(self, get_redirect=NotImplemented)
     |      Return templates used on this Page.
     |      
     |      The templates are extracted by L{textlib.extract_templates_and_params},
     |      with positional arguments placed first in order, and each named
     |      argument appearing as 'name=value'.
     |      
     |      All parameter keys and values for each template are stripped of
     |      whitespace.
     |      
     |      @return: a list of tuples with one tuple for each template invocation
     |          in the page, with the template Page as the first entry and a list
     |          of parameters as the second entry.
     |      @rtype: list of (Page, list)
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Page:
     |  
     |  raw_extracted_templates
     |      Extract templates using L{textlib.extract_templates_and_params}.
     |      
     |      Disabled parts and whitespace are stripped, except for
     |      whitespace in anonymous positional arguments.
     |      
     |      This value is cached.
     |      
     |      @rtype: list of (str, OrderedDict)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from BasePage:
     |  
     |  __hash__(self)
     |      A stable identifier to be used as a key in hash-tables.
     |      
     |      This relies on the fact that the string
     |      representation of an instance can not change after the construction.
     |  
     |  __repr__(self)
     |      Return a more complete string representation.
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  applicable_protections(self)
     |      Return the protection types allowed for that page.
     |      
     |      If the page doesn't exists it only returns "create". Otherwise it
     |      returns all protection types provided by the site, except "create".
     |      It also removes "upload" if that page is not in the File namespace.
     |      
     |      It is possible, that it returns an empty set, but only if original
     |      protection types were removed.
     |      
     |      @return: set of unicode
     |      @rtype: set
     |  
     |  aslink(self, force_interwiki=False, textlink=False, no_interwiki=False, forceInterwiki='[deprecated name of force_interwiki]', noInterwiki='[deprecated name of no_interwiki]')
     |      DEPRECATED: use self.title(as_link=True) instead.
     |  
     |  autoFormat(self)
     |      Return L{date.getAutoFormat} dictName and value, if any.
     |      
     |      Value can be a year, date, etc., and dictName is 'YearBC',
     |      'Year_December', or another dictionary name. Please note that two
     |      entries may have exactly the same autoFormat, but be in two
     |      different namespaces, as some sites have categories with the
     |      same names. Regular titles return (None, None).
     |  
     |  backlinks(self, follow_redirects=True, filter_redirects=None, namespaces=None, total=None, content=False, step=NotImplemented, followRedirects='[deprecated name of follow_redirects]', filterRedirects='[deprecated name of filter_redirects]')
     |      Return an iterator for pages that link to this page.
     |      
     |      @param follow_redirects: if True, also iterate pages that link to a
     |          redirect pointing to the page.
     |      @param filter_redirects: if True, only iterate redirects; if False,
     |          omit redirects; if None, do not filter
     |      @param namespaces: only iterate pages in these namespaces
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each referring page (default False)
     |  
     |  botMayEdit(self)
     |      Determine whether the active bot is allowed to edit the page.
     |      
     |      This will be True if the page doesn't contain {{bots}} or {{nobots}}
     |      or any other template from edit_restricted_templates list
     |      in x_family.py file, or it contains them and the active bot is allowed
     |      to edit this page. (This method is only useful on those sites that
     |      recognize the bot-exclusion protocol; on other sites, it will always
     |      return True.)
     |      
     |      The framework enforces this restriction by default. It is possible
     |      to override this by setting ignore_bot_templates=True in
     |      user-config.py, or using page.put(force=True).
     |      
     |      @rtype: bool
     |  
     |  canBeEdited(self)
     |      Determine whether the page may be edited.
     |      
     |      This returns True if and only if:
     |        - page is unprotected, and bot has an account for this site, or
     |        - page is protected, and bot has a sysop account for this site.
     |      
     |      @rtype: bool
     |  
     |  categories(self, with_sort_key=False, total=None, content=False, nofollow_redirects=NotImplemented, get_redirect=NotImplemented, step=NotImplemented, withSortKey='[deprecated name of with_sort_key]')
     |      Iterate categories that the article is in.
     |      
     |      @param with_sort_key: if True, include the sort key in each Category.
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each category description page (default False)
     |      @return: a generator that yields Category objects.
     |      @rtype: generator
     |  
     |  change_category(self, old_cat, new_cat, summary=None, sort_key=None, in_place=True, include=[], comment='[deprecated name of summary]', oldCat='[deprecated name of old_cat]', newCat='[deprecated name of new_cat]', sortKey='[deprecated name of sort_key]', inPlace='[deprecated name of in_place]')
     |      Remove page from oldCat and add it to newCat.
     |      
     |      @param old_cat: category to be removed
     |      @type old_cat: Category
     |      @param new_cat: category to be added, if any
     |      @type new_cat: Category or None
     |      
     |      @param summary: string to use as an edit summary
     |      
     |      @param sort_key: sortKey to use for the added category.
     |          Unused if newCat is None, or if inPlace=True
     |          If sortKey=True, the sortKey used for oldCat will be used.
     |      
     |      @param in_place: if True, change categories in place rather than
     |                    rearranging them.
     |      
     |      @param include: list of tags not to be disabled by default in relevant
     |          textlib functions, where CategoryLinks can be searched.
     |      @type include: list
     |      
     |      @return: True if page was saved changed, otherwise False.
     |      @rtype: bool
     |  
     |  clear_cache(self)
     |      Clear the cached attributes of the page.
     |  
     |  contributingUsers(self, total=None, step=NotImplemented)
     |      Deprecated; use contributors() instead.
     |      
     |      
     |      Return a set of usernames (or IPs) of users who edited this page.
     |      
     |      @param total: iterate no more than this number of revisions in total
     |      
     |      @rtype: set
     |  
     |  contributors(self, total=None, starttime=None, endtime=None, step=NotImplemented)
     |      Compile contributors of this page with edit counts.
     |      
     |      @param total: iterate no more than this number of revisions in total
     |      @param starttime: retrieve revisions starting at this Timestamp
     |      @param endtime: retrieve revisions ending at this Timestamp
     |      
     |      @return: number of edits for each username
     |      @rtype: L{collections.Counter}
     |  
     |  coordinates(self, primary_only=False)
     |      Return a list of Coordinate objects for points on the page.
     |      
     |      Uses the MediaWiki extension GeoData.
     |      
     |      @param primary_only: Only return the coordinate indicated to be primary
     |      @return: A list of Coordinate objects
     |      @rtype: list
     |  
     |  data_item(self)
     |      Convenience function to get the Wikibase item of a page.
     |      
     |      @rtype: ItemPage
     |  
     |  defaultsort(self, force=False)
     |      Extract value of the {{DEFAULTSORT:}} magic word from the page.
     |      
     |      @param force: force updating from the live site
     |      
     |      @rtype: unicode or None
     |  
     |  delete(self, reason=None, prompt=True, mark=False, quit=False, throttle=NotImplemented)
     |      Delete the page from the wiki. Requires administrator status.
     |      
     |      @param reason: The edit summary for the deletion, or rationale
     |          for deletion if requesting. If None, ask for it.
     |      @param prompt: If true, prompt user for confirmation before deleting.
     |      @param mark: If true, and user does not have sysop rights, place a
     |          speedy-deletion request on the page instead. If false, non-sysops
     |          will be asked before marking pages for deletion.
     |      @param quit: show also the quit option, when asking for confirmation.
     |  
     |  editTime(self)
     |      Return timestamp of last revision to page.
     |      
     |      @rtype: pywikibot.Timestamp
     |  
     |  embeddedin(self, filter_redirects=None, namespaces=None, total=None, content=False, step=NotImplemented)
     |      Return an iterator for pages that embed this page as a template.
     |      
     |      @param filter_redirects: if True, only iterate redirects; if False,
     |          omit redirects; if None, do not filter
     |      @param namespaces: only iterate pages in these namespaces
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each embedding page (default False)
     |  
     |  encoding(self)
     |      DEPRECATED: use self.site.encoding instead.
     |  
     |  exists(self)
     |      Return True if page exists on the wiki, even if it's a redirect.
     |      
     |      If the title includes a section, return False if this section isn't
     |      found.
     |      
     |      @rtype: bool
     |  
     |  expand_text(self, force=False, includecomments=False, refresh='[deprecated name of force]')
     |      Return the page text with all templates and parser words expanded.
     |      
     |      @param force: force updating from the live site
     |      @param includecomments: Also strip comments if includecomments
     |          parameter is not True.
     |      
     |      @rtype unicode or None
     |  
     |  extlinks(self, total=None, step=NotImplemented)
     |      Iterate all external URLs (not interwiki links) from this page.
     |      
     |      @param total: iterate no more than this number of pages in total
     |      @return: a generator that yields unicode objects containing URLs.
     |      @rtype: generator
     |  
     |  fullVersionHistory(self, reverse=False, total=None, reverseOrder='[deprecated name of reverse]', rollback=NotImplemented, step=NotImplemented)
     |      Deprecated; use Page.revisions(content=True) instead.
     |      
     |      Iterate previous versions including wikitext.
     |      
     |              Takes same arguments as getVersionHistory.
     |  
     |  full_url(self)
     |      Return the full URL.
     |  
     |  get(self, force=False, get_redirect=False, sysop=False, throttle=NotImplemented, change_edit_time=NotImplemented, expandtemplates=NotImplemented)
     |      Return the wiki-text of the page.
     |      
     |      This will retrieve the page from the server if it has not been
     |      retrieved yet, or if force is True. This can raise the following
     |      exceptions that should be caught by the calling code:
     |      
     |      @exception NoPage:         The page does not exist
     |      @exception IsRedirectPage: The page is a redirect. The argument of the
     |                                 exception is the title of the page it
     |                                 redirects to.
     |      @exception SectionError:   The section does not exist on a page with
     |                                 a # link
     |      
     |      @param force:           reload all page attributes, including errors.
     |      @param get_redirect:    return the redirect text, do not follow the
     |                              redirect, do not raise an exception.
     |      @param sysop:           if the user has a sysop account, use it to
     |                              retrieve this page
     |      
     |      @rtype: unicode
     |  
     |  getCategoryRedirectTarget(self)
     |      If this is a category redirect, return the target category title.
     |      
     |      @rtype: Category
     |  
     |  getCreator(self)
     |      Get the first revision of the page.
     |      
     |      DEPRECATED: Use Page.oldest_revision.
     |      
     |      @rtype: tuple(username, Timestamp)
     |  
     |  getDeletedRevision(self, timestamp, content=False, retrieveText='[deprecated name of content]')
     |      Return a particular deleted revision by timestamp.
     |      
     |      @return: a list of [date, editor, comment, text, restoration
     |          marker]. text will be None, unless content is True (or has
     |          been retrieved earlier). If timestamp is not found, returns
     |          None.
     |      @rtype: list
     |  
     |  getLatestEditors(self, total=1, limit='[deprecated name of total]')
     |      Get a list of revision informations of the last total edits.
     |      
     |      DEPRECATED: Use Page.revisions.
     |      
     |      @param total: iterate no more than this number of revisions in total
     |      @return: list of dict, each dict containing the username and Timestamp
     |      @rtype: list
     |  
     |  getMovedTarget(self)
     |      Return a Page object for the target this Page was moved to.
     |      
     |      DEPRECATED: Use Page.moved_target().
     |      
     |      If this page was not moved, it will raise a NoPage exception.
     |      This method also works if the source was already deleted.
     |      
     |      @rtype: pywikibot.Page
     |      @raises NoPage: this page was not moved
     |  
     |  getOldVersion(self, oldid, force=False, get_redirect=False, sysop=False, throttle=NotImplemented, change_edit_time=NotImplemented)
     |      Return text of an old revision of this page; same options as get().
     |      
     |      @param oldid: The revid of the revision desired.
     |      @rtype: unicode
     |  
     |  getRedirectTarget(self)
     |      Return a Page object for the target this Page redirects to.
     |      
     |      If this page is not a redirect page, will raise an IsNotRedirectPage
     |      exception. This method also can raise a NoPage exception.
     |      
     |      @rtype: pywikibot.Page
     |  
     |  getReferences(self, follow_redirects=True, with_template_inclusion=True, only_template_inclusion=False, filter_redirects=False, namespaces=None, total=None, content=False, step=NotImplemented, withTemplateInclusion='[deprecated name of with_template_inclusion]', onlyTemplateInclusion='[deprecated name of only_template_inclusion]', redirectsOnly='[deprecated name of filter_redirects]')
     |      Return an iterator all pages that refer to or embed the page.
     |      
     |      If you need a full list of referring pages, use
     |      C{pages = list(s.getReferences())}
     |      
     |      @param follow_redirects: if True, also iterate pages that link to a
     |          redirect pointing to the page.
     |      @param with_template_inclusion: if True, also iterate pages where self
     |          is used as a template.
     |      @param only_template_inclusion: if True, only iterate pages where self
     |          is used as a template.
     |      @param filter_redirects: if True, only iterate redirects to self.
     |      @param namespaces: only iterate pages in these namespaces
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each referring page (default False)
     |  
     |  getRestrictions(self)
     |      DEPRECATED. Use self.protection() instead.
     |  
     |  getTemplates(self, tllimit=NotImplemented)
     |      DEPRECATED. Use templates().
     |  
     |  getVersionHistory(self, reverse=False, total=None, forceReload=NotImplemented, revCount='[deprecated name of total]', step=NotImplemented, getAll=NotImplemented, reverseOrder='[deprecated name of reverse]')
     |      Deprecated; use Page.revisions() instead.
     |      
     |      
     |      Load the version history page and return history information.
     |      
     |      Return value is a list of tuples, where each tuple represents one
     |      edit and is built of revision id, edit date/time, user name, and
     |      edit summary. Starts with the most current revision, unless
     |      reverse is True.
     |      
     |      @param total: iterate no more than this number of revisions in total
     |  
     |  getVersionHistoryTable(self, reverse=False, total=None, forceReload=NotImplemented, reverseOrder='[deprecated name of reverse]', step=NotImplemented)
     |      Return the version history as a wiki table.
     |  
     |  imagelinks(self, total=None, content=False, followRedirects=NotImplemented, loose=NotImplemented, step=NotImplemented)
     |      Iterate FilePage objects for images displayed on this Page.
     |      
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each image description page (default False)
     |      @return: a generator that yields FilePage objects.
     |  
     |  interwiki(self, expand=True)
     |      Iterate interwiki links in the page text, excluding language links.
     |      
     |      @param expand: if True (default), include interwiki links found in
     |          templates transcluded onto this page; if False, only iterate
     |          interwiki links found in this page's own wikitext
     |      @type expand: bool
     |      
     |      @return: a generator that yields Link objects
     |      @rtype: generator
     |  
     |  isAutoTitle(self)
     |      Return True if title of this Page is in the autoFormat dict.
     |  
     |  isCategory(self)
     |      DEPRECATED: use is_categorypage instead.
     |  
     |  isCategoryRedirect(self)
     |      Return True if this is a category redirect page, False otherwise.
     |      
     |      @rtype: bool
     |  
     |  isDisambig(self)
     |      Return True if this is a disambiguation page, False otherwise.
     |      
     |      By default, it uses the the Disambiguator extension's result. The
     |      identification relies on the presense of the __DISAMBIG__ magic word
     |      which may also be transcluded.
     |      
     |      If the Disambiguator extension isn't activated for the given site,
     |      the identification relies on the presence of specific templates.
     |      First load a list of template names from the Family file;
     |      if the value in the Family file is None or no entry was made, look for
     |      the list on [[MediaWiki:Disambiguationspage]]. If this page does not
     |      exist, take the MediaWiki message. 'Template:Disambig' is always
     |      assumed to be default, and will be appended regardless of its
     |      existence.
     |      
     |      @rtype: bool
     |  
     |  isEmpty(self)
     |      Deprecated; use interwiki.page_empty_check(page) instead.
     |      
     |      
     |      Return True if the page text has less than 4 characters.
     |      
     |      Character count ignores language links and category links.
     |      Can raise the same exceptions as get().
     |      
     |      @rtype: bool
     |  
     |  isFlowPage(self)
     |      DEPRECATED: use self.is_flow_page instead.
     |  
     |  isImage(self)
     |      DEPRECATED: use is_filepage instead.
     |  
     |  isIpEdit(self)
     |      Return True if last editor was unregistered.
     |      
     |      @rtype: bool
     |  
     |  isRedirectPage(self)
     |      Return True if this is a redirect, False if not or not existing.
     |  
     |  isStaticRedirect(self, force=False)
     |      Determine whether the page is a static redirect.
     |      
     |      A static redirect must be a valid redirect, and contain the magic word
     |      __STATICREDIRECT__.
     |      
     |      @param force: Bypass local caching
     |      @type force: bool
     |      
     |      @rtype: bool
     |  
     |  isTalkPage(self)
     |      Return True if this page is in any talk namespace.
     |  
     |  is_categorypage(self)
     |      Return True if the page is a Category, False otherwise.
     |  
     |  is_filepage(self)
     |      Return True if this is an file description page, False otherwise.
     |  
     |  is_flow_page(self)
     |      Whether a page is a Flow page.
     |      
     |      @rtype: bool
     |  
     |  iterlanglinks(self, total=None, include_obsolete=False, step=NotImplemented)
     |      Iterate all inter-language links on this page.
     |      
     |      @param total: iterate no more than this number of pages in total
     |      @param include_obsolete: if true, yield even Link object whose site
     |                               is obsolete
     |      @type include_obsolete: bool
     |      
     |      @return: a generator that yields Link objects.
     |      @rtype: generator
     |  
     |  itertemplates(self, total=None, content=False, step=NotImplemented)
     |      Iterate Page objects for templates used on this Page.
     |      
     |      Template parameters are ignored. This method only returns embedded
     |      templates, not template pages that happen to be referenced through
     |      a normal link.
     |      
     |      @param total: iterate no more than this number of pages in total
     |      @param content: if True, retrieve the content of the current version
     |          of each template (default False)
     |      @param content: bool
     |  
     |  langlinks(self, include_obsolete=False)
     |      Return a list of all inter-language Links on this page.
     |      
     |      @param include_obsolete: if true, return even Link objects whose site
     |                               is obsolete
     |      @type include_obsolete: bool
     |      
     |      @return: list of Link objects.
     |      @rtype: list
     |  
     |  lastNonBotUser(self)
     |      Return name or IP address of last human/non-bot user to edit page.
     |      
     |      Determine the most recent human editor out of the last revisions.
     |      If it was not able to retrieve a human user, returns None.
     |      
     |      If the edit was done by a bot which is no longer flagged as 'bot',
     |      i.e. which is not returned by Site.botusers(), it will be returned
     |      as a non-bot edit.
     |      
     |      @rtype: unicode
     |  
     |  latestRevision(self)
     |      Deprecated; use latest_revision_id instead.
     |      
     |      Return the current revision id for this page.
     |  
     |  linkedPages(self, namespaces=None, total=None, content=False, step=NotImplemented)
     |      Iterate Pages that this Page links to.
     |      
     |      Only returns pages from "normal" internal links. Image and category
     |      links are omitted unless prefixed with ":". Embedded templates are
     |      omitted (but links within them are returned). All interwiki and
     |      external links are omitted.
     |      
     |      @param namespaces: only iterate links in these namespaces
     |      @param namespaces: int, or list of ints
     |      @param total: iterate no more than this number of pages in total
     |      @type total: int
     |      @param content: if True, retrieve the content of the current version
     |          of each linked page (default False)
     |      @type content: bool
     |      
     |      @return: a generator that yields Page objects.
     |      @rtype: generator
     |  
     |  loadDeletedRevisions(self, total=None, step=NotImplemented)
     |      Retrieve deleted revisions for this Page.
     |      
     |      Stores all revisions' timestamps, dates, editors and comments in
     |      self._deletedRevs attribute.
     |      
     |      @return: iterator of timestamps (which can be used to retrieve
     |          revisions later on).
     |      @rtype: generator
     |  
     |  markDeletedRevision(self, timestamp, undelete=True)
     |      Mark the revision identified by timestamp for undeletion.
     |      
     |      @param undelete: if False, mark the revision to remain deleted.
     |      @type undelete: bool
     |  
     |  merge_history(self, dest, timestamp=None, reason=None)
     |      Merge revisions from this page into another page.
     |      
     |      See L{APISite.merge_history} for details.
     |      
     |      @param dest: Destination page to which revisions will be merged
     |      @type dest: pywikibot.Page
     |      @param timestamp: Revisions from this page dating up to this timestamp
     |          will be merged into the destination page (if not given or False,
     |          all revisions will be merged)
     |      @type timestamp: pywikibot.Timestamp
     |      @param reason: Optional reason for the history merge
     |      @type reason: str
     |  
     |  move(self, newtitle, reason=None, movetalk=True, sysop=False, noredirect=False, throttle=NotImplemented, deleteAndMove='[deprecated name of noredirect]', movetalkpage='[deprecated name of movetalk]')
     |      Move this page to a new title.
     |      
     |      @param newtitle: The new page title.
     |      @param reason: The edit summary for the move.
     |      @param movetalk: If true, move this page's talk page (if it exists)
     |      @param sysop: Try to move using sysop account, if available
     |      @param noredirect: if move succeeds, delete the old page
     |          (usually requires sysop privileges, depending on wiki settings)
     |  
     |  moved_target(self)
     |      Return a Page object for the target this Page was moved to.
     |      
     |      If this page was not moved, it will raise a NoMoveTarget exception.
     |      This method also works if the source was already deleted.
     |      
     |      @rtype: pywikibot.Page
     |      @raises NoMoveTarget: this page was not moved
     |  
     |  namespace(self)
     |      Return the number of the namespace of the page.
     |      
     |      @return: namespace of the page
     |      @rtype: Namespace
     |  
     |  pageAPInfo(self)
     |      Deprecated; use latest_revision_id instead.
     |      
     |      Return the current revision id for this page.
     |  
     |  page_image(self)
     |      Return the most appropriate image on the page.
     |      
     |      Uses the MediaWiki extension PageImages.
     |      
     |      @return: A FilePage object
     |      @rtype: FilePage
     |  
     |  permalink(self, oldid=None, percent_encoded=True, with_protocol=False)
     |      Return the permalink URL of an old revision of this page.
     |      
     |      @param oldid: The revid of the revision desired.
     |      @param percent_encoded: if false, the link will be provided
     |          without title uncoded.
     |      @param with_protocol: if true, http or https prefixes will be
     |          included before the double slash.
     |      @rtype: unicode
     |  
     |  preloadText(self)
     |      The text returned by EditFormPreloadText.
     |      
     |      See API module "info".
     |      
     |      Application: on Wikisource wikis, text can be preloaded even if
     |      a page does not exist, if an Index page is present.
     |      
     |      @rtype: unicode
     |  
     |  previousRevision(self)
     |      Return the revision id for the previous revision.
     |      
     |      DEPRECATED: Use latest_revision.parent_id instead.
     |      
     |      @rtype: long
     |      
     |      @raise AssertionError: Use on MediaWiki prior to v1.16.
     |  
     |  properties(self, force=False)
     |      Return the properties of the page.
     |      
     |      @param force: force updating from the live site
     |      
     |      @rtype: dict
     |  
     |  protect(self, edit=False, move=False, create=None, upload=None, unprotect=False, reason=None, prompt=None, protections=None, **kwargs, throttle=NotImplemented)
     |      Protect or unprotect a wiki page. Requires administrator status.
     |      
     |      Valid protection levels (in MediaWiki 1.12) are '' (equivalent to
     |      'none'), 'autoconfirmed', and 'sysop'. If None is given, however,
     |      that protection will be skipped.
     |      
     |      @param protections: A dict mapping type of protection to protection
     |          level of that type.
     |      @type protections: dict
     |      @param reason: Reason for the action
     |      @type reason: basestring
     |      @param prompt: Whether to ask user for confirmation (deprecated).
     |                     Defaults to protections is None
     |      @type prompt: bool
     |  
     |  protection(self)
     |      Return a dictionary reflecting page protections.
     |      
     |      @rtype: dict
     |  
     |  purge(self, **kwargs)
     |      Purge the server's cache for this page.
     |      
     |      @rtype: bool
     |  
     |  put(self, newtext, summary=None, watch=None, minor=True, botflag=None, force=False, asynchronous=False, callback=None, **kwargs, comment='[deprecated name of summary]', watchArticle='[deprecated name of watch]', minorEdit='[deprecated name of minor]', async='[deprecated name of asynchronous]')
     |      Save the page with the contents of the first argument as the text.
     |      
     |      This method is maintained primarily for backwards-compatibility.
     |      For new code, using Page.save() is preferred. See save() method
     |      docs for all parameters not listed here.
     |      
     |      @param newtext: The complete text of the revised page.
     |      @type newtext: unicode
     |  
     |  put_async(self, newtext, summary=None, watch=None, minor=True, botflag=None, force=False, callback=None, **kwargs, comment='[deprecated name of summary]', watchArticle='[deprecated name of watch]', minorEdit='[deprecated name of minor]')
     |      Deprecated; use put(asynchronous=True) or save(asynchronous=True) instead.
     |      
     |      
     |      Put page on queue to be saved to wiki asynchronously.
     |      
     |      Asynchronous version of put (takes the same arguments), which places
     |      pages on a queue to be saved by a daemon thread. All arguments are
     |      the same as for .put(). This version is maintained solely for
     |      backwards-compatibility.
     |  
     |  revision_count(self, contributors=None)
     |      Determine number of edits from a set of contributors.
     |      
     |      @param contributors: contributor usernames
     |      @type contributors: iterable of str
     |      
     |      @return: number of edits for all provided usernames
     |      @rtype: int
     |  
     |  revisions(self, reverse=False, total=None, content=False, rollback=False, starttime=None, endtime=None, getText='[deprecated name of content]', reverseOrder='[deprecated name of reverse]', step=NotImplemented)
     |      Generator which loads the version history as Revision instances.
     |  
     |  save(self, summary=None, watch=None, minor=True, botflag=None, force=False, asynchronous=False, callback=None, apply_cosmetic_changes=None, quiet=False, **kwargs, comment='[deprecated name of summary]', sysop=NotImplemented, async='[deprecated name of asynchronous]')
     |      Save the current contents of page's text to the wiki.
     |      
     |      @param summary: The edit summary for the modification (optional, but
     |          most wikis strongly encourage its use)
     |      @type summary: unicode
     |      @param watch: Specify how the watchlist is affected by this edit, set
     |          to one of "watch", "unwatch", "preferences", "nochange":
     |          * watch: add the page to the watchlist
     |          * unwatch: remove the page from the watchlist
     |          * preferences: use the preference settings (Default)
     |          * nochange: don't change the watchlist
     |          If None (default), follow bot account's default settings
     |      
     |          For backward compatibility watch parameter may also be boolean:
     |          if True, add or if False, remove this Page to/from bot
     |          user's watchlist.
     |      @type watch: string, bool (deprecated) or None
     |      @param minor: if True, mark this edit as minor
     |      @type minor: bool
     |      @param botflag: if True, mark this edit as made by a bot (default:
     |          True if user has bot status, False if not)
     |      @param force: if True, ignore botMayEdit() setting
     |      @type force: bool
     |      @param asynchronous: if True, launch a separate thread to save
     |          asynchronously
     |      @param callback: a callable object that will be called after the
     |          page put operation. This object must take two arguments: (1) a
     |          Page object, and (2) an exception instance, which will be None
     |          if the page was saved successfully. The callback is intended for
     |          use by bots that need to keep track of which saves were
     |          successful.
     |      @param apply_cosmetic_changes: Overwrites the cosmetic_changes
     |          configuration value to this value unless it's None.
     |      @type apply_cosmetic_changes: bool or None
     |      @param quiet: enable/disable successful save operation message;
     |          defaults to False.
     |          In asynchronous mode, if True, it is up to the calling bot to
     |          manage the output e.g. via callback.
     |      @type quiet: bool
     |  
     |  section(self)
     |      Return the name of the section this Page refers to.
     |      
     |      The section is the part of the title following a '#' character, if
     |      any. If no section is present, return None.
     |      
     |      @rtype: unicode
     |  
     |  sectionFreeTitle(self, underscore=False)
     |      DEPRECATED: use self.title(with_section=False) instead.
     |  
     |  templates(self, content=False, get_redirect=NotImplemented)
     |      Return a list of Page objects for templates used on this Page.
     |      
     |      Template parameters are ignored. This method only returns embedded
     |      templates, not template pages that happen to be referenced through
     |      a normal link.
     |      
     |      @param content: if True, retrieve the content of the current version
     |          of each template (default False)
     |      @param content: bool
     |  
     |  title(self, underscore=False, with_ns=True, with_section=True, as_url=False, as_link=False, allow_interwiki=True, force_interwiki=False, textlink=False, as_filename=False, insite=None, without_brackets=False, decode=NotImplemented, savetitle='[deprecated name of as_url]', withNamespace='[deprecated name of with_ns]', withSection='[deprecated name of with_section]', forceInterwiki='[deprecated name of force_interwiki]', asUrl='[deprecated name of as_url]', asLink='[deprecated name of as_link]', allowInterwiki='[deprecated name of allow_interwiki]')
     |      Return the title of this Page, as a Unicode string.
     |      
     |      @param underscore: (not used with as_link) if true, replace all ' '
     |          characters with '_'
     |      @param with_ns: if false, omit the namespace prefix. If this
     |          option is false and used together with as_link return a labeled
     |          link like [[link|label]]
     |      @param with_section: if false, omit the section
     |      @param as_url: (not used with as_link) if true, quote title as if in an
     |          URL
     |      @param as_link: if true, return the title in the form of a wikilink
     |      @param allow_interwiki: (only used if as_link is true) if true, format
     |          the link as an interwiki link if necessary
     |      @param force_interwiki: (only used if as_link is true) if true, always
     |          format the link as an interwiki link
     |      @param textlink: (only used if as_link is true) if true, place a ':'
     |          before Category: and Image: links
     |      @param as_filename: (not used with as_link) if true, replace any
     |          characters that are unsafe in filenames
     |      @param insite: (only used if as_link is true) a site object where the
     |          title is to be shown. default is the current family/lang given by
     |          -family and -lang option i.e. config.family and config.mylang
     |      @param without_brackets: (cannot be used with as_link) if true, remove
     |          the last pair of brackets(usually removes disambiguation brackets).
     |      @rtype: unicode
     |  
     |  titleForFilename(self)
     |      DEPRECATED: use self.title(as_filename=True) instead.
     |  
     |  titleWithoutNamespace(self, underscore=False)
     |      DEPRECATED: use self.title(with_ns=False) instead.
     |  
     |  toggleTalkPage(self)
     |      Return other member of the article-talk page pair for this Page.
     |      
     |      If self is a talk page, returns the associated content page;
     |      otherwise, returns the associated talk page. The returned page need
     |      not actually exist on the wiki.
     |      
     |      @return: Page or None if self is a special page.
     |      @rtype: Page or None
     |  
     |  touch(self, callback=None, botflag=False, **kwargs)
     |      Make a touch edit for this page.
     |      
     |      See save() method docs for all parameters.
     |      The following parameters will be overridden by this method:
     |      - summary, watch, minor, force, asynchronous
     |      
     |      Parameter botflag is False by default.
     |      
     |      minor and botflag parameters are set to False which prevents hiding
     |      the edit when it becomes a real edit due to a bug.
     |  
     |  undelete(self, reason=None, comment='[deprecated name of reason]', throttle=NotImplemented)
     |      Undelete revisions based on the markers set by previous calls.
     |      
     |      If no calls have been made since loadDeletedRevisions(), everything
     |      will be restored.
     |      
     |      Simplest case::
     |      
     |          Page(...).undelete('This will restore all revisions')
     |      
     |      More complex::
     |      
     |          pg = Page(...)
     |          revs = pg.loadDeletedRevisions()
     |          for rev in revs:
     |              if ... #decide whether to undelete a revision
     |                  pg.markDeletedRevision(rev) #mark for undeletion
     |          pg.undelete('This will restore only selected revisions.')
     |      
     |      @param reason: Reason for the action.
     |      @type reason: basestring
     |  
     |  urlname(self)
     |      Return the Page title encoded for use in an URL.
     |      
     |      DEPRECATED: use self.title(as_url=True) instead.
     |  
     |  userName(self)
     |      Return name or IP address of last user to edit page.
     |      
     |      @rtype: unicode
     |  
     |  version(self)
     |      Return MediaWiki version number of the page site.
     |      
     |      This is needed to use @need_version() decorator for methods of
     |      Page objects.
     |  
     |  watch(self, unwatch=False)
     |      Add or remove this page to/from bot account's watchlist.
     |      
     |      @param unwatch: True to unwatch, False (default) to watch.
     |      @type unwatch: bool
     |      
     |      @return: True if successful, False otherwise.
     |      @rtype: bool
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from BasePage:
     |  
     |  content_model
     |      Return the content model for this page.
     |      
     |      If it cannot be reliably determined via the API,
     |      None is returned.
     |  
     |  data_repository
     |      Return the Site object for the data repository.
     |  
     |  depth
     |      Return the depth/subpage level of the page.
     |  
     |  image_repository
     |      Return the Site object for the image repository.
     |  
     |  latest_revision
     |      Return the current revision for this page.
     |  
     |  latest_revision_id
     |      Return the current revision id for this page.
     |  
     |  oldest_revision
     |      Return the first revision of this page.
     |      
     |      @rtype: L{Revision}
     |  
     |  pageid
     |      Return pageid of the page.
     |      
     |      @return: pageid or 0 if page does not exist
     |      @rtype: int
     |  
     |  previous_revision_id
     |      Deprecated; use latest_revision.parent_id (0 instead of -1 when no parent) instead.
     |      
     |      
     |      Return the revision id for the previous revision of this Page.
     |      
     |      If the page has only one revision, it shall return -1.
     |      
     |      @rtype: long
     |      
     |      @raise AssertionError: Use on MediaWiki prior to v1.16.
     |  
     |  site
     |      Return the Site object for the wiki on which this Page resides.
     |      
     |      @rtype: pywikibot.Site
     |  
     |  text
     |      Return the current (edited) wikitext, loading it if necessary.
     |      
     |      @return: text of the page
     |      @rtype: unicode
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.ComparableMixin:
     |  
     |  __eq__(self, other)
     |      Compare if self is equal to other.
     |  
     |  __ge__(self, other)
     |      Compare if self is greater equals other.
     |  
     |  __gt__(self, other)
     |      Compare if self is greater than other.
     |  
     |  __le__(self, other)
     |      Compare if self is less equals other.
     |  
     |  __lt__(self, other)
     |      Compare if self is less than other.
     |  
     |  __ne__(self, other)
     |      Compare if self is not equal to other.
    
    class UserBlocked(Error)
     |  Your username or IP has been blocked.
     |  
     |  Method resolution order:
     |      UserBlocked
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Methods inherited from Error:
     |  
     |  __init__(self, arg)
     |      Initializer.
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
     |  
     |  args
    
    class WikiBaseError(Error)
     |  Wikibase related error.
     |  
     |  Method resolution order:
     |      WikiBaseError
     |      Error
     |      pywikibot.tools.UnicodeMixin
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Methods inherited from Error:
     |  
     |  __init__(self, arg)
     |      Initializer.
     |  
     |  __unicode__(self)
     |      Return a unicode string representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __str__(self)
     |      Return the unicode representation as the str representation.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from pywikibot.tools.UnicodeMixin:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      helper for pickle
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __suppress_context__
     |  
     |  __traceback__
     |  
     |  args
    
    class WikidataBot(Bot, ExistingPageBot)
     |  Generic Wikidata Bot to be subclassed.
     |  
     |  Source claims (P143) can be created for specific sites
     |  
     |  @cvar use_from_page: If True (default) it will apply ItemPage.fromPage
     |      for every item. If False it assumes that the pages are actually
     |      already ItemPage (page in treat_page_and_item will be None).
     |      If None it'll use ItemPage.fromPage when the page is not in the site's
     |      item namespace.
     |  
     |  @type use_from_page: bool, None
     |  
     |  @cvar treat_missing_item: Whether pages without items should be treated.
     |      Note that this is checked after create_missing_item.
     |  
     |  @type treat_missing_item: bool
     |  
     |  @ivar create_missing_item: If True, new items will be created if the
     |      current page doesn't have one. Subclasses should override this in the
     |      initializer with a bool value or using self.getOption.
     |  
     |  @type create_missing_item: bool
     |  
     |  Method resolution order:
     |      WikidataBot
     |      Bot
     |      ExistingPageBot
     |      CurrentPageBot
     |      BaseBot
     |      OptionHandler
     |      builtins.object
     |  
     |  Methods defined here:
     |  
     |  __init__(self, **kwargs, use_from_page=NotImplemented)
     |      Initializer of the WikidataBot.
     |  
     |  cacheSources(self)
     |      Fetch the sources from the list on Wikidata.
     |      
     |      It is stored internally and reused by getSource()
     |  
     |  create_item_for_page(self, page, data=None, summary=None, **kwargs)
     |      Create an ItemPage with the provided page as the sitelink.
     |      
     |      @param page: the page for which the item will be created
     |      @type page: pywikibot.Page
     |      @param data: additional data to be included in the new item (optional).
     |          Note that data created from the page have higher priority.
     |      @type data: dict
     |      @param summary: optional edit summary to replace the default one
     |      @type summary: str
     |      
     |      @return: pywikibot.ItemPage or None
     |  
     |  getSource(self, site)
     |      Create a Claim usable as a source for Wikibase statements.
     |      
     |      @param site: site that is the source of assertions.
     |      @type site: Site
     |      
     |      @return: pywikibot.Claim or None
     |  
     |  get_property_by_name(self, property_name)
     |      Find given property and return its ID.
     |      
     |      Method first uses site.search() and if the property isn't found, then
     |      asks user to provide the property ID.
     |      
     |      @param property_name: property to find
     |      @type property_name: str
     |  
     |  treat_page(self)
     |      Treat a page.
     |  
     |  treat_page_and_item(self, page, item)
     |      Treat page together with its item (if it exists).
     |      
     |      Must be implemented in subclasses.
     |  
     |  user_add_claim(self, item, claim, source=None, bot=True, **kwargs)
     |      Add a claim to an item, with user confirmation as required.
     |      
     |      @param item: page to be edited
     |      @type item: pywikibot.ItemPage
     |      @param claim: claim to be saved
     |      @type claim: pywikibot.Claim
     |      @param source: site where the claim comes from
     |      @type source: pywikibot.site.APISite
     |      @param bot: whether to flag as bot (if possible)
     |      @type bot: bool
     |      @kwarg ignore_server_errors: if True, server errors will be reported
     |        and ignored (default: False)
     |      @type ignore_server_errors: bool
     |      @kwarg ignore_save_related_errors: if True, errors related to
     |        page save will be reported and ignored (default: False)
     |      @type ignore_save_related_errors: bool
     |      @return: whether the item was saved successfully
     |      @rtype: bool
     |  
     |  user_add_claim_unless_exists(self, item, claim, exists_arg='', source=None, logger_callback=<function log at 0x7f68f7ce27b8>, **kwargs)
     |      Decorator of L{user_add_claim}.
     |      
     |      Before adding a new claim, it checks if we can add it, using provided
     |      filters.
     |      
     |      @see: documentation of L{claimit.py<scripts.claimit>}
     |      @param exists_arg: pattern for merging existing claims with new ones
     |      @type exists_arg: str
     |      @param logger_callback: function logging the output of the method
     |      @type logger_callback: callable
     |      @return: whether the claim could be added
     |      @rtype: bool
     |  
     |  user_edit_entity(self, item, data=None, ignore_save_related_errors=None, ignore_server_errors=None, **kwargs)
     |      Edit entity with data provided, with user confirmation as required.
     |      
     |      @param item: page to be edited
     |      @type item: ItemPage
     |      @param data: data to be saved, or None if the diff should be created
     |        automatically
     |      @param ignore_save_related_errors: Ignore save related errors and
     |          automatically print a message. If None uses this instances default.
     |      @type ignore_save_related_errors: bool or None
     |      @param ignore_server_errors: Ignore server errors and automatically
     |          print a message. If None uses this instances default.
     |      @type ignore_server_errors: bool or None
     |      @kwarg summary: revision comment, passed to ItemPage.editEntity
     |      @type summary: str
     |      @kwarg show_diff: show changes between oldtext and newtext (default:
     |        True)
     |      @type show_diff: bool
     |      @return: whether the item was saved successfully
     |      @rtype: bool
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |  
     |  treat_missing_item = False
     |  
     |  use_from_page = True
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Bot:
     |  
     |  init_page(self, item)
     |      Update site before calling treat.
     |  
     |  run(self)
     |      Check if it automatically updates the site before run.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Bot:
     |  
     |  site
     |      Get the current site.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from ExistingPageBot:
     |  
     |  skip_page(self, page)
     |      Treat page if it exists and handle NoPage from it.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from CurrentPageBot:
     |  
     |  put_current(self, new_text, ignore_save_related_errors=None, ignore_server_errors=None, **kwargs, comment='[deprecated name of summary]')
     |      Call L{Bot.userPut} but use the current page.
     |      
     |      It compares the new_text to the current page text.
     |      
     |      @param new_text: The new text
     |      @type new_text: basestring
     |      @param ignore_save_related_errors: Ignore save related errors and
     |          automatically print a message. If None uses this instances default.
     |      @type ignore_save_related_errors: bool or None
     |      @param ignore_server_errors: Ignore server errors and automatically
     |          print a message. If None uses this instances default.
     |      @type ignore_server_errors: bool or None
     |      @param kwargs: Additional parameters directly given to L{Bot.userPut}.
     |      @return: whether the page was saved successfully
     |      @rtype: bool
     |  
     |  treat(self, page)
     |      Set page to current page and treat that page.
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes inherited from CurrentPageBot:
     |  
     |  ignore_save_related_errors = True
     |  
     |  ignore_server_errors = False
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from BaseBot:
     |  
     |  exit(self)
     |      Cleanup and exit processing.
     |      
     |      Invoked when Bot.run() is finished.
     |      Prints treat and save counters and informs whether the script
     |      terminated gracefully or was halted by exception.
     |      May be overridden by subclasses.
     |  
     |  quit(self)
     |      Cleanup and quit processing.
     |  
     |  setup(self)
     |      Some inital setup before run operation starts.
     |      
     |      This can be used for reading huge parts from life wiki or file
     |      operation which is more than just initialize the instance.
     |      Invoked by run() before running through generator loop.
     |  
     |  stop(self)
     |      Stop iterating.
     |  
     |  teardown(self)
     |      Some cleanups after run operation. Invoked by exit().
     |  
     |  userPut(self, page, oldtext, newtext, **kwargs, comment='[deprecated name of summary]', async='[deprecated name of asynchronous]')
     |      Save a new revision of a page, with user confirmation as required.
     |      
     |      Print differences, ask user for confirmation,
     |      and puts the page if needed.
     |      
     |      Option used:
     |      
     |      * 'always'
     |      
     |      Keyword args used:
     |      
     |      * 'asynchronous' - passed to page.save
     |      * 'summary' - passed to page.save
     |      * 'show_diff' - show changes between oldtext and newtext (enabled)
     |      * 'ignore_save_related_errors' - report and ignore (disabled)
     |      * 'ignore_server_errors' - report and ignore (disabled)
     |      
     |      @return: whether the page was saved successfully
     |      @rtype: bool
     |  
     |  user_confirm(self, question)
     |      Obtain user response if bot option 'always' not enabled.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from BaseBot:
     |  
     |  current_page
     |      Return the current working page as a property.
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes inherited from BaseBot:
     |  
     |  availableOptions = {'always': False}
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from OptionHandler:
     |  
     |  getOption(self, option)
     |      Get the current value of an option.
     |      
     |      @param option: key defined in OptionHandler.availableOptions
     |      @raise Error: No valid option is given with option parameter
     |  
     |  setOptions(self, **kwargs)
     |      Set the instance options.
     |      
     |      @param kwargs: options
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from OptionHandler:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)

FUNCTIONS
    Site(code=None, fam=None, user=None, sysop=None, interface=None, url=None)
        A factory method to obtain a Site object.
        
        Site objects are cached and reused by this method.
        
        By default rely on config settings. These defaults may all be overridden
        using the method parameters.
        
        @param code: language code (override config.mylang)
        @type code: string
        @param fam: family name or object (override config.family)
        @type fam: string or Family
        @param user: bot user name to use on this site (override config.usernames)
        @type user: unicode
        @param sysop: sysop user to use on this site (override config.sysopnames)
        @type sysop: unicode
        @param interface: site class or name of class in pywikibot.site
            (override config.site_interface)
        @type interface: subclass of L{pywikibot.site.BaseSite} or string
        @param url: Instead of code and fam, does try to get a Site based on the
            URL. Still requires that the family supporting that URL exists.
        @type url: string
        @rtype: pywikibot.site.APISite
        @raises ValueError: URL and pair of code and family given
        @raises ValueError: Invalid interface name
        @raises SiteDefinitionError: Unknown URL
    
    TimeStripper = call(*a, **kw)
    
    calledModuleName()
        Return the name of the module calling this function.
        
        This is required because the -help option loads the module's docstring
        and because the module name will be used for the filename of the log.
        
        @rtype: unicode
    
    categoryFormat = call(*a, **kw)
    
    compileLinkR = call(*a, **kw)
    
    critical(text, decoder=None, newline=True, **kwargs)
        Output a critical record to the user via the userinterface.
    
    debug(text, layer, decoder=None, newline=True, **kwargs)
        Output a debug record to the log file.
        
        @param layer: The name of the logger that text will be sent to.
    
    error(text, decoder=None, newline=True, **kwargs)
        Output an error message to the user via the userinterface.
    
    exception(msg=None, decoder=None, newline=True, tb=False, **kwargs)
        Output an error traceback to the user via the userinterface.
        
        Use directly after an 'except' statement::
        
            ...
            except Exception:
                pywikibot.exception()
            ...
        
        or alternatively::
        
            ...
            except Exception as e:
                pywikibot.exception(e)
            ...
        
        @param tb: Set to True in order to output traceback also.
    
    extract_templates_and_params = call(*a, **kw)
    
    getCategoryLinks = call(*a, **kw)
    
    getLanguageLinks = call(*a, **kw)
    
    handleArgs(*args)
        DEPRECATED. Use handle_args().
    
    handle_args(args=None, do_help=True)
        Handle standard command line arguments, and return the rest as a list.
        
        Takes the command line arguments as Unicode strings, processes all
        global parameters such as -lang or -log, initialises the logging layer,
        which emits startup information into log at level 'verbose'.
        
        This makes sure that global arguments are applied first,
        regardless of the order in which the arguments were given.
        
        args may be passed as an argument, thereby overriding sys.argv
        
        @param args: Command line arguments
        @type args: typing.Iterable
        @param do_help: Handle parameter '-help' to show help and invoke sys.exit
        @type do_help: bool
        @return: list of arguments not recognised globally
        @rtype: list of unicode
    
    html2unicode(text, ignore=None, exceptions=None)
        Replace HTML entities with equivalent unicode.
        
        @param ignore: HTML entities to ignore
        @param ignore: list of int
        
        @rtype: unicode
    
    input(question, password=False, default='', force=False)
        Ask the user a question, return the user's answer.
        
        @param question: a string that will be shown to the user. Don't add a
            space after the question mark/colon, this method will do this for you.
        @type question: unicode
        @param password: if True, hides the user's input (for password entry).
        @type password: bool
        @param default: The default answer if none was entered. None to require
            an answer.
        @type default: basestring
        @param force: Automatically use the default
        @type force: bool
        @rtype: unicode
    
    inputChoice(question, answers, hotkeys, default=None)
        Ask the user a question with several options, return the user's choice.
        
        DEPRECATED: Use L{input_choice} instead!
        
        The user's input will be case-insensitive, so the hotkeys should be
        distinctive case-insensitively.
        
        @param question: a string that will be shown to the user. Don't add a
            space after the question mark/colon, this method will do this for you.
        @type question: basestring
        @param answers: a list of strings that represent the options.
        @type answers: list of basestring
        @param hotkeys: a list of one-letter strings, one for each answer.
        @param default: an element of hotkeys, or None. The default choice that
            will be returned when the user just presses Enter.
        @return: a one-letter string in lowercase.
        @rtype: str
    
    input_choice(question, answers, default=None, return_shortcut=True, automatic_quit=True, force=False)
        Ask the user the question and return one of the valid answers.
        
        @param question: The question asked without trailing spaces.
        @type question: basestring
        @param answers: The valid answers each containing a full length answer and
            a shortcut. Each value must be unique.
        @type answers: iterable containing a sequence of length two or instances of
            ChoiceException
        @param default: The result if no answer was entered. It must not be in the
            valid answers and can be disabled by setting it to None. If it should
            be linked with the valid answers it must be its shortcut.
        @type default: basestring
        @param return_shortcut: Whether the shortcut or the index of the answer is
            returned.
        @type return_shortcut: bool
        @param automatic_quit: Adds the option 'Quit' ('q') and throw a
            L{QuitKeyboardInterrupt} if selected.
        @type automatic_quit: bool
        @param force: Automatically use the default
        @type force: bool
        @return: The selected answer shortcut or index. Is -1 if the default is
            selected, it does not return the shortcut and the default is not a
            valid shortcut.
        @rtype: int (if not return shortcut), basestring (otherwise)
    
    input_yn(question, default=None, automatic_quit=True, force=False)
        Ask the user a yes/no question and return the answer as a bool.
        
        @param question: The question asked without trailing spaces.
        @type question: basestring
        @param default: The result if no answer was entered. It must be a bool or
            'y' or 'n' and can be disabled by setting it to None.
        @type default: basestring or bool
        @param automatic_quit: Adds the option 'Quit' ('q') and throw a
            L{QuitKeyboardInterrupt} if selected.
        @type automatic_quit: bool
        @param force: Automatically use the default
        @type force: bool
        @return: Return True if the user selected yes and False if the user
            selected no. If the default is not None it'll return True if default
            is True or 'y' and False if default is False or 'n'.
        @rtype: bool
    
    interwikiFormat = call(*a, **kw)
    
    interwikiSort = call(*a, **kw)
    
    isDisabled = call(*a, **kw)
    
    log(text, decoder=None, newline=True, **kwargs)
        Output a record to the log file.
    
    output(text, decoder=None, newline=True, toStdout=False, **kwargs)
        Output a message to the user via the userinterface.
        
        Works like print, but uses the encoding used by the user's console
        (console_encoding in the configuration file) instead of ASCII.
        
        If decoder is None, text should be a unicode string. Otherwise it
        should be encoded in the given encoding.
        
        If newline is True, a line feed will be added after printing the text.
        
        If toStdout is True, the text will be sent to standard output,
        so that it can be piped to another process. All other text will
        be sent to stderr. See: https://en.wikipedia.org/wiki/Pipeline_%28Unix%29
        
        text can contain special sequences to create colored output. These
        consist of the escape character \03 and the color name in curly braces,
        e. g. \03{lightpurple}. \03{default} resets the color. By using the
        color_format method from pywikibot.tools.formatter, the escape character
        may be omitted.
        
        Other keyword arguments are passed unchanged to the logger; so far, the
        only argument that is useful is "exc_info=True", which causes the
        log message to include an exception traceback.
    
    removeCategoryLinks = call(*a, **kw)
    
    removeCategoryLinksAndSeparator = call(*a, **kw)
    
    removeDisabledParts = call(*a, **kw)
    
    removeHTMLParts = call(*a, **kw)
    
    removeLanguageLinks = call(*a, **kw)
    
    removeLanguageLinksAndSeparator = call(*a, **kw)
    
    replaceCategoryInPlace = call(*a, **kw)
    
    replaceCategoryLinks = call(*a, **kw)
    
    replaceExcept = call(*a, **kw)
    
    replaceLanguageLinks = call(*a, **kw)
    
    showHelp(module_name=None)
        Show help for the Bot.
    
    stdout(text, decoder=None, newline=True, **kwargs)
        Output script results to the user via the userinterface.
    
    translate(code, xdict, parameters=None, fallback=False)
        Return the most appropriate translation from a translation dict.
        
        Given a language code and a dictionary, returns the dictionary's value for
        key 'code' if this key exists; otherwise tries to return a value for an
        alternative language that is most applicable to use on the wiki in
        language 'code' except fallback is False.
        
        The language itself is always checked first, then languages that
        have been defined to be alternatives, and finally English. If none of
        the options gives result, we just take the one language from xdict which
        may not be always the same. When fallback is iterable it'll return None if
        no code applies (instead of returning one).
        
        For PLURAL support have a look at the twtranslate method.
        
        @param code: The language code
        @type code: string or Site object
        @param xdict: dictionary with language codes as keys or extended dictionary
                      with family names as keys containing language dictionaries or
                      a single (unicode) string. May contain PLURAL tags as
                      described in twtranslate
        @type xdict: dict, string, unicode
        @param parameters: For passing (plural) parameters
        @type parameters: dict, string, unicode, int
        @param fallback: Try an alternate language code. If it's iterable it'll
            also try those entries and choose the first match.
        @type fallback: boolean or iterable
        @raise IndexError: If the language supports and requires more plurals than
            defined for the given translation template.
    
    unescape = call(*a, **kw)
    
    unicode2html(x, encoding)
        Convert unicode string to requested HTML encoding.
        
        Attempt to encode the
        string into the desired format; if that doesn't work, encode the unicode
        into HTML &#; entities. If it does work, return it unchanged.
        
        @param x: String to update
        @type x: unicode
        @param encoding: Encoding to use
        @type encoding: str
        
        @rtype: str
    
    url2unicode(title, encodings='utf-8', site2=NotImplemented, site='[deprecated name of encodings]')
        Convert URL-encoded text to unicode using several encoding.
        
        Uses the first encoding that doesn't cause an error.
        
        @param title: URL-encoded character data to convert
        @type title: str
        @param encodings: Encodings to attempt to use during conversion.
        @type encodings: str, list or Site
        @rtype: unicode
        
        @raise UnicodeError: Could not convert using any encoding.
    
    warning(text, decoder=None, newline=True, **kwargs)
        Output a warning message to the user via the userinterface.
        
        @param text: the message the user wants to display.
        @type text: str
        @param decoder: If None, text should be a unicode string. Otherwise it
            should be encoded in the given encoding.
        @type decoder: str
        @param newline: If True, a line feed will be added after printing the text.
        @type newline: bool
        @param kwargs: The keyword arguments can be found in the python doc:
            https://docs.python.org/2/howto/logging-cookbook.html#logging-cookbook.

DATA
    __all__ = ('config', 'ui', 'Site', 'UnicodeMixin', 'translate', 'Page'...
    __release__ = '3.1.dev0'
    __url__ = 'https://www.mediawiki.org/wiki/Manual:Pywikibot'
    ui = <pywikibot.userinterfaces.terminal_interface_unix.UnixUI object>

VERSION
    3.1.dev0

FILE
    /srv/paws/pwb/pywikibot/__init__.py


pywikibot.version
<module 'pywikibot.version' from '/srv/paws/pwb/pywikibot/version.py'>
import pywikibot as pwb
from pywikibot import pagegenerators as pg
site = pwb.Site("wikidata", "wikidata")
repo = site.data_repository()
item = pwb.ItemPage(repo, "Q61668")
x = item.get()["claims"]["P1082"][0].qualifiers["P585"][0].getTarget()
"P585" in item.get()["claims"]["P1082"][0].qualifiers
True
def pointInTime(claim):
    return claim.qualifiers["P585"][0].getTarget().toTimestr()
latest = None
secondLatest = None
for claim in item.get()["claims"]["P1082"]:
    if "P585" in claim.qualifiers:
        if latest == None:
            latest = claim
        else:
            if pointInTime(claim) > pointInTime(latest):
                secondLatest = latest
                latest = claim
def refUrlSource(claim):
    if len(claim.sources) == 1 and "P854" in claim.sources[0] and len(claim.sources[0]["P854"]) == 1:
        return claim.sources[0]["P854"][0]
    else:
        return None
source = refUrlSource(latest)
source.toJSON()
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-13-ceeec51c17cb> in <module>()
----> 1 source.toJSON()

AttributeError: 'NoneType' object has no attribute 'toJSON'