Skip to main content

Wheatley

PyPI version Tests and Linting

A bot for Ringing Room that can fill in any set of bells to increase the scope of potential practices, designed to be a 'ninja helper with no ego'.

If you just want to use Wheatley for normal ringing without caring about how it works, then check out how to use Wheatley directly inside Ringing Room - no installation required, just a flick of a switch. If you want more control than the Ringing Room interface provides or are interested in how Wheatley works, then this is the place to go. This repository contains Wheatley's source code, and documentation of the 'classic' command line version.

Contributing

Contributions are very welcome! To keep this readme short, all contribution info is in CONTRIBUTING.md. If you have any issues/suggestions, either make an issue, or drop me a message on Facebook.

Quickstart

(This quickstart refers to the command-line Wheatley, not the integrated version). Also, if anything here doesn't work or is confusing, please let us know. For help with what parameters Wheatley has and what they do, run wheatley --help.

Step 1: Install Python

Installation is very platform specific, so I've split this by OS.

Windows

  1. Download the latest version of Python from python.org - the first link should be to the latest build of Python 3. At the bottom of the linked page is a list of downloads - most likely you need "Windows installer (64-bit)" (the recommended option).
  2. When the file has downloaded, run it. Before starting the installation, tick the "Add to PATH" option (this will make your life way easier later on). Start the install, and then wait for it to complete.
  3. In order to run Wheatley, you'll need to open a 'command prompt'. To do this, press the START button in Windows, type 'cmd' then click on the Command Prompt application. This creates a black window, into which you can type and then run commands (including Wheatley).
  4. Test Python by typing py --version and then pressing enter. If all is well, this will print a version string - otherwise something has gone wrong.

MacOS

Instructions should be here.

Linux

Almost all Linux distros come with Python installed, so this step can probably be skipped.

Step 2: Install Wheatley

Once Python is installed, installing Wheatley should be done through Python's package manager pip. The exact commands vary from system to system (and I can't keep track of them all), but one of the following should work:

# Should work on Windows
py -m pip install --upgrade wheatley
# Should work on MacOS and Linux
python3 -m pip install --upgrade wheatley

Step 3: Run Wheatley

NOTE: The name of the Wheatley command will sometimes vary. If you're getting errors like 'wheatley not found', then try replacing the wheatley prefix with py -m wheatley (Windows) or python3 -m wheatley (MacOS/Linux). So therefore, a complete command would look like:

py -m wheatley [ID NUMBER] --method "Plain Bob Major"
# or 
python3 -m wheatley [ID NUMBER] --method "Plain Bob Major"

Examples

  • Join a ringingroom.com tower with (9 digit) ID [ID NUMBER] and ring Plain Bob Major (tower bell style – wait for Go and That's all):

    wheatley [ID NUMBER] --method "Plain Bob Major"
    
  • Ring 'up, down and in' rather than waiting for 'go':

    wheatley [ID NUMBER] --use-up-down-in --method [METHOD TITLE]
    # or
    wheatley [ID NUMBER] -u --method [METHOD TITLE]
    
  • Ring full handbell style, i.e. 'up, down and in' and standing at rounds (-H is equivalent to -us):

    wheatley [ID NUMBER] --use-up-down-in --stop-at-rounds --method [METHOD TITLE]
    # or
    wheatley [ID NUMBER] -us --method [METHOD TITLE]
    # or
    wheatley [ID NUMBER] -H --method [METHOD TITLE]
    
  • Join a server other than ringingroom.com:

    wheatley [ID NUMBER] --url otherwebsite.com --method [METHOD TITLE]
    
  • Ring rows and make calls taken from a composition from complib.org, in this case https://complib.org/composition/65034:

    wheatley [ID NUMBER] --comp 65034
    
  • Ring rows but don't send the calls to Ringing Room taken from a composition from complib.org, in this case https://complib.org/composition/65034:

    wheatley [ID NUMBER] --comp 65034 --no-calls
    
  • Ring compositions with substituted methods by copying the id and query string or full url from complib.org):

     wheatley [ID NUMBER] --comp 68549?substitutedmethodid=28000
     # or 
     wheatley [ID NUMBER] --comp https://complib.org/composition/68549?substitutedmethodid=28000
    
  • Ring private compositions by copying the share link from complib.org:

     wheatley [ID NUMBER] --comp 51155?accessKey=9e1fcd2b11435552cf236be93c7ff73058870995
     # or
     wheatley [ID NUMBER] --comp https://complib.org/composition/51155?accessKey=9e1fcd2b11435552cf236be93c7ff73058870995
    
  • Combine method substitution and private composition

     wheatley [ID NUMBER] --comp 51155?substitutedmethodid=27600&accessKey=9e1fcd2b11435552cf236be93c7ff73058870995
    
  • Ring rows specified by place notation, in this case Plain Bob Minor:

    wheatley [ID NUMBER] --place-notation 6:x16x16x16,12
    
  • Ring at a peal speed of 3 hours 30 minutes (i.e. quite slowly):

    wheatley [ID NUMBER] --method [METHOD TITLE] --peal-speed 3h30
    # or
    wheatley [ID NUMBER] --method [METHOD TITLE] -S 3h30
    
  • Make Wheatley push on with the rhythm rather than waiting for people to ring.

    wheatley [ID NUMBER] --method [METHOD TITLE] --keep-going
    # or
    wheatley [ID NUMBER] --method [METHOD TITLE] -k
    
  • Completely ignore other users' changes in rhythm (useful if he's ringing most of the bells and you don't want him to randomly change speed when you make mistakes):

    wheatley [ID NUMBER] --method [METHOD TITLE] --inertia 1.0
    # or
    wheatley [ID NUMBER] --method [METHOD TITLE] -I 1.0
    
  • Start from a different row

    wheatley [ID NUMBER] --method [METHOD TITLE] --start-row 13572468
    

Metadata

Release files for wheatley 0.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wheatley 0.8.0
File Size Uploaded Provenance Actions
wheatley-0.8.0.tar.gz 43.3 kB Without provenance Details for wheatley-0.8.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for wheatley 0.8.0
File Interpreter ABI Platform Actions
wheatley-0.8.0-py3-none-any.whl Python 3 none any Details for wheatley-0.8.0-py3-none-any.whl

Total release size: 93.8 kB

Release files / wheatley-0.8.0.tar.gz

Download URL wheatley-0.8.0.tar.gz
Size 43.3 kB
Tags Source
SHA-256 checksum
How to use checksums
201830e4d939151e46de082200b9aa9d8b28d1eb5ed145d8f9bd62614e3bfede
BLAKE2b-256 checksum
How to use checksums
67944c5595de9bcd9fc00e2fbecdeb519b32de2041dd144830ccfee3bdc6bfe6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.10.12

Release files / wheatley-0.8.0-py3-none-any.whl

Download URL wheatley-0.8.0-py3-none-any.whl
Size 50.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0340e0ddeefec935f89e9f46a01d573a244d457a4055aa7286fd77c9bbf43ef3
BLAKE2b-256 checksum
How to use checksums
18c710093218976bd8fa5c95df5b85f498c875185fd16414562183f12a119161
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.10.12

Security for wheatley 0.8.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page