Skip to main content

sopel-wolfram

Wolfram|Alpha plugin for the Sopel IRC bot framework

Installing

Releases are hosted on PyPI, so after installing Sopel, all you need is pip:

$ pip install sopel-wolfram

Requirements

  • Sopel 8.x
  • wolframalpha 5.1.4+

You will also need a Wolfram|Alpha App ID; see details below in the "Configuring" section.

Configuring

The easiest way to configure sopel-wolfram is via Sopel's configuration wizard—simply run sopel-plugins configure wolfram and enter the values for which it prompts you.

However, you can manually add the following section to your Sopel bot's configuration file if desired:

[wolfram]
app_id = yourappidgoeshere

The app_id setting is required, and you will need to get your own App ID from Wolfram|Alpha at https://developer.wolframalpha.com/

Optional settings:

  • condense: if True, multi-line results will be output as a single message with | separating the lines (default: False, which mimics the Rizon bot called Internets)
  • max_public: the number of lines over which results will be sent in NOTICE instead of to the channel; has no effect if condense is True (default: 5)
  • units: measurement system displayed in results, either metric (the default) or nonmetric

Example usage

<User> .wa 2+2
<Sopel> [W|A] 2+2 = 4

<User> .wa python language release date
<Sopel> [W|A] Python | date introduced = 1991

<User> .wa airspeed velocity of an unladen swallow
<Sopel> [W|A] estimated average cruising airspeed of an unladen European
        swallow = 25 mph  (miles per hour)(asked, but not answered, about a
        general swallow in the 1975 film Monty Python and the Holy Grail)

Changelog

Ticket numbers in changelog entries can be looked up by visiting https://github.com/dgw/sopel-wolfram/issue/<number>

0.7.0 "Aru hi fui ni..."

Added:

  • New condense setting for single-line output (#29)
    Replaces newlines with | separator, uses as much of the IRC line as possible but gracefully truncates the response instead of falling back to NOTICE.

Updated:

  • wolframalpha library unbundled, now that upstream has made a new release

0.6.1 "Mirai to wa?"

Updated:

  • wolframalpha library now bundled, for bug-fixing reasons
    Should upstream resume development, sopel-wolfram will switch back.

Meta:

  • Future-proofed, PEP639-compliant license metadata (#27)
  • Updated build/publish workflow (#27)

0.6.0 "Bocchi de Skip"

First release as sopel-wolfram, replacing the old sopel_modules.wolfram package for Sopel 7 and older.

Updated:

  • Sopel 8.x and Python 3.8+ now required (#25)
  • Upgraded to wolframalpha 5.x (#25)
  • Modernized packaging & package metadata (#25)
  • Streamlined documentation (#25)

0.5.0 "ALIVE"

That's "ALIVE" as in "This project isn't DEAD" (despite the last release being over two years old).

Updated:

  • Sopel 7.x now supported & required (#23)
  • Dropped support for Sopel 6.x (#23)
  • Dropped support for wolframalpha 2.x (#23)
  • Internal refactoring to take advantage of new Sopel features (#23)

Meta:

  • No more ZIP releases; PyPI only allows one file type now (#22)

0.4.1 "Kibou ni tsuite"

This release named in memory of LuckyNumber78, who changed lives every day simply by being her excitable, fun-loving self. She is missed by many.

Fixed:

  • max_public setting could cause errors because it was treated as a string (#21)

0.4.0 "Mirai no kajitsu"

Added:

  • Support for wolframalpha 3.0 with transitional fallback to 2.4 (#11, #19; see README notes)
  • New configuration option max_public, a number defining the maximum number of lines that can be sent without using NOTICEs. Default: 5 (#13)
  • New configuration option units, to specify whether the API should return metric (default) or nonmetric measurements (#18; see #16)

Updated:

  • Threshold for using NOTICEs is now 5 lines, up from the previous default of 3

Fixed:

  • Non-ASCII text in output is no longer \:encoded (#15)

0.3.1 "Nusumareta kuchibiru"

Updates:

  • Unicode-encode query to avoid UnicodeEncodeError on non-ASCII characters (#10)

0.3.0 "So long!"

Updates:

  • Results longer than 3 lines will be sent via NOTICE instead of flooding channels (#8)

0.2.1 "Mae shika mukanee"

Updates:

  • Output now split into multiple messages when line breaks are present (#4)
  • Tell pip we do not want wolframalpha 3.0 yet (#6)

0.2.0 "Miraibashi"

Updates:

  • Try a lot harder to give useful output (#3)
  • Tell user to try again if an unspecified error occurs (empty error message)

Meta:

  • Cleanup: PEP8 & unused imports
  • Refactor to make future addition of integration tests easier

0.1.2 "Switch"

Updates:

  • Shorten some error messages
  • Identify as "[W|A]" instead of "[Wolfram]" in output for brevity
  • Ensure all module output is prefixed
  • Add more examples to help output and README

Meta:

  • README now includes installation instructions and where to get help/report bugs

0.1.1 "Already"

Updates:

  • Now outputs error if app_id is missing (#1)

Meta:

  • README reformatted (thanks @maxpowa)
  • Begin maintaining version history in NEWS file

0.1.0 "Beginner"


Metadata

Release files for sopel-wolfram 0.7.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 sopel-wolfram 0.7.0
File Size Uploaded Provenance Actions
sopel_wolfram-0.7.0.tar.gz 6.7 kB With provenance Details for sopel_wolfram-0.7.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for sopel-wolfram 0.7.0
File Interpreter ABI Platform Actions
sopel_wolfram-0.7.0-py3-none-any.whl Python 3 none any Details for sopel_wolfram-0.7.0-py3-none-any.whl

Total release size: 13.6 kB

Release files / sopel_wolfram-0.7.0.tar.gz

Download URL sopel_wolfram-0.7.0.tar.gz
Size 6.7 kB
Tags Source
SHA-256 checksum
How to use checksums
299ab67c95f595b2ee076968f39f872d3895b56aa5900ddeeda2f7a7dc27436e
BLAKE2b-256 checksum
How to use checksums
709ae6e114a2d6ba8ab7778289dacd294a7a39b47208fada48822ca47d8d63ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release files / sopel_wolfram-0.7.0-py3-none-any.whl

Download URL sopel_wolfram-0.7.0-py3-none-any.whl
Size 6.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b0811e00fc5da395367ac895acd192e6a3384322f61b22c1d6207264a2b25fcc
BLAKE2b-256 checksum
How to use checksums
ee19422ad7c6385ba8da9c311947a0b8a4aec1c3e0de50f81937d814bc92d7bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Security for sopel-wolfram 0.7.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.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for sopel_wolfram-0.7.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

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