Skip to main content

Establishes a connection to a Wikibase instance and provides methods for interacting with it.

Project description

WBMaker

PyPI version License: MIT

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

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 instance
  • WB_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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wbmaker-0.1.0.tar.gz (8.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wbmaker-0.1.0-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

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

Hashes for wbmaker-0.1.0.tar.gz
Algorithm Hash digest
SHA256 96017323744982903fd4573dcd8879991a5d6415943d3d626922d44ee3fea1c4
MD5 9857deda3a2b7b7a69941a9928ae6f3f
BLAKE2b-256 6cdc2dd5ba6658bf7618f45dd24f63893aeaa22cf2ba4e42abbf8a869ba8f0d1

See more details on using hashes here.

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

Hashes for wbmaker-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4e6dcc055d782f9256f6b1557f8d18ce31b9bac028fc53e990fe5960e85c7390
MD5 18b78263a3d0c466b3ddd2a2af5d2c6b
BLAKE2b-256 4ccb7730c7d71482e77c29404bb05b502081130c2f4acfc2db1aaa35311d0033

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page