I’ve been meaning to make these docs happen for over half a year, and I finally did it! (Blog post coming about everything that went wrong with configuring sphinx.) The module index contains automatically-generated docs based on the docstrings of all of the classes in the package. The ones you probably care about the most are wiki_client, auth_credentials, and cargo_client.
You can also use the PageModifier and TemplateModifier classes to easily perform edits on your wiki that would otherwise be extremely difficult to do in AWB or PWB. At my EMWCon 2021 talk in April this year I gave an example of using the
TemplateModifier class to make an edit to a template on all pages on a wiki (it’s really easy!).
You can also check out my example_wiki_scripts repo for some simple example scripts using these classes. (That repo uses mwrogue instead of
mwcleric, but the functionality is mostly the same, just extended for use on my esports wikis.)
In addition to providing
mwcleric improves the architecture of
mwclient by putting all client actions directly on the
Site object, instead of using a client object attached to the page object. This way:
- The page object acts as a simple data container and so
- There is no confusion about whether a method on a page object is “expensive” or not; it never will be. Furthermore,
- If a site object needs to be thrown away and recreated, there are no cumbersome references to worry about left behind on existing page objects
And so the architecture is a significant improvement. Notably, the third bullet point represents a situation that arises a lot when working with the Fandom wiki farm, since tokens expire frequently and sessions need to be re-established. My site methods also take care of this automatically (both on Fandom and on any wiki farm).
mwclient client is still exposed as
WikiClient.client so if you need any method from that library, you may still use it directly.
With pip you can simply:
pip install mwcleric
If you want to contribute patches, including documentation updates, or tickets, feel free! You can also star the repo if you find the library helpful :)