Establishes a connection to a Wikibase instance and provides methods for interacting with it.
Project description
WBMaker
This alpha package helps establish an authenticated connection with a Wikibase instance and provides functions for building items using the wikibaseintegrator package and working with Wikimedia pages (e.g., "item talk" pages) using the mwclient package. While it is simple enough to work with these packages separately, wbmaker provides a lightweight layer of abstraction for many of the tasks needed in developing bot-based applications and data processing pipelines.
Features
- 🔐 Easy authentication with Wikibase instances (including Wikidata)
- 🔧 Simplified item creation and editing
- 📝 MediaWiki page management (talk pages, etc.)
- 🔍 SPARQL query execution with result formatting
- 🧩 Property mapping and caching
- 🌐 Path analysis for Wikidata classification
Installation
pip install wbmaker
Or install from source:
git clone https://github.com/skybristol/wbmaker
cd wbmaker
poetry install
Environment Variables
The WB class operates on a set of environment variables that set up and authorize interactions with a Wikibase instance, including Wikidata. These variables are required by one or both of the underlying packages, wikibaseintegrator and mwclient used in wbmaker. Instantiating the class will prompt for the following basic variables and set them if not supplied in the operating environment.
Required Variables
WB_URL: base URL for the Wikibase instance (e.g., https://www.wikidata.org/)WB_SPARQL_ENDPOINT: SPARQL endpoint for the Wikibase instance (e.g., https://query.wikidata.org/sparql)MEDIAWIKI_API: Mediawiki API URL for the Wikibase instance (e.g., https://www.wikidata.org/w/api.php)WB_BOT_USER_AGENT: the user agent string to use in actions; link to code and/or contact information encouraged (e.g., "MyBot/1.0")
Optional Variables (for editing)
If you will be making edits, the following are also required. If these are not provided, the login section of the class will not be invoked, and you will be limited to read-only operations.
WB_BOT_USER: bot user name authorized to operate on the Wikibase instanceWB_BOT_PASS: bot user's password
Using .env file
You can create a .env file in your project root:
WB_URL=https://www.wikidata.org/
WB_SPARQL_ENDPOINT=https://query.wikidata.org/sparql
MEDIAWIKI_API=https://www.wikidata.org/w/api.php
WB_BOT_USER_AGENT=MyBot/1.0 (https://github.com/myusername/mybot)
WB_BOT_USER=MyBotUsername
WB_BOT_PASS=MyBotPassword
Basic Usage
from wbmaker import WB, Item
# Initialize connection (read-only if no credentials provided)
wb = WB()
# Run a SPARQL query
query = """
SELECT ?item ?itemLabel WHERE {
?item wdt:P31 wd:Q5. # instances of human
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
LIMIT 10
"""
results = wb.sparql_query(query, output='dataframe')
print(results)
# Create or update an item
item_data = {
'qid': 'Q123456', # Leave empty for new items
'label': 'Example Item',
'description': 'An example item for demonstration',
'aliases': ['Demo Item', 'Test Item'],
'claims': [
{
'property_name': 'instance of',
'value': 'Q5', # human
}
]
}
item = Item(item_data, wb=wb, commit=True, summary='Created example item')
Development Status
This package is in alpha status. Additional functionality is planned based on common patterns in Wikidata/Wikibase bot development.
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Links
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wbmaker-0.1.0.tar.gz.
File metadata
- Download URL: wbmaker-0.1.0.tar.gz
- Upload date:
- Size: 8.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.2 CPython/3.12.12 Linux/6.11.0-1018-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
96017323744982903fd4573dcd8879991a5d6415943d3d626922d44ee3fea1c4
|
|
| MD5 |
9857deda3a2b7b7a69941a9928ae6f3f
|
|
| BLAKE2b-256 |
6cdc2dd5ba6658bf7618f45dd24f63893aeaa22cf2ba4e42abbf8a869ba8f0d1
|
File details
Details for the file wbmaker-0.1.0-py3-none-any.whl.
File metadata
- Download URL: wbmaker-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.2 CPython/3.12.12 Linux/6.11.0-1018-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e6dcc055d782f9256f6b1557f8d18ce31b9bac028fc53e990fe5960e85c7390
|
|
| MD5 |
18b78263a3d0c466b3ddd2a2af5d2c6b
|
|
| BLAKE2b-256 |
4ccb7730c7d71482e77c29404bb05b502081130c2f4acfc2db1aaa35311d0033
|