While looking at the source of the pywikipediabot in the past, I noticed that it contained a bunch of Wikibase specific code (sometimes even Wikidata specific). The code I saw often did a poor job at separating different concerns, and did some weird things to represent parts of the Wikibase data model.

I figured it'd be a lot nicer if there was a clean and correct implementation of the Wikibase data model that can then be used by pywikipediabot, and other Python projects that need to interact with a Wikibase instance. I went ahead and created what is essentially my first ever Python project [0] to do exactly this. (This is far from fully implemented, and only linked to here to give you an idea of what I am talking about.)

Since I'm not following pywikipediabot development closely, I'm not aware of how much interest there is for having such a component. I'm also not sure on what exactly would need to be implemented to serve the needs to the pywikipediabot codebase, or on how to proceed to then starting with the refactorings required to make use of it.

What is essentially needed for this to go forward is a pywikipediabot developer that takes charge of this project. If that happens I'll happily make the contributions required to ensure the data model implementation is done both correctly and cleanly.

[0] https://github.com/JeroenDeDauw/WikibaseDataModelPython


Jeroen De Dauw
Don't panic. Don't be evil. ~=[,,_,,]:3