Go to file
2016-09-03 12:01:16 -04:00
docs Merge with latest skeleton 2016-04-29 10:06:30 -04:00
wolframalpha Remove key from the code. Each client must acquire their own key. 2016-09-03 12:01:16 -04:00
.gitignore Add gitignore. Make .hgignore empty - there's nothing here that's project specific. 2016-01-01 08:30:19 -05:00
.travis.yml Add password for deployment 2016-04-29 10:12:34 -04:00
CHANGES.rst Provide an interface to supply multiple parameters (even with the same name) to the query. Renamed 'query' to 'input' for clarity and to align with the API. 2016-09-03 11:18:40 -04:00
conftest.py Bypass tests on Python 2.7 when pmxbot is involved. 2015-12-11 12:35:36 -05:00
pytest.ini Update project skeleton 2015-11-24 20:10:37 -05:00
README.rst Update example 2016-05-14 19:28:50 -04:00
setup.cfg Learning from lessons in the keyring 8.4 release (https://github.com/jaraco/keyring/issues/210), always clean the build artifacts before cutting a release. 2016-02-15 04:59:44 -05:00
setup.py Add dependency 2016-05-14 17:28:10 -04:00

wolframalpha
============

Python Client built against the `Wolfram|Alpha <http://wolframalpha.com>`_
v2.0 API. This project is hosted on `Github
<https://github.com/jaraco/wolframalpha>`_.

Installation
============

This library is released to PyPI - the Python Package Index, so the easiest way to install it is to use
pip::

    pip install wolframalpha

or easy_install::

    easy_install wolframalpha

If you don't have these tools or you prefer not to use setuptools, you may
also simply extract the 'wolframalpha' directory an appropriate location in
your Python path.

Usage
=====

Basic usage is pretty simple. Create the client with your App ID (request from
Wolfram Alpha)::

    import wolframalpha
    client = wolframalpha.Client(app_id)

Then, you can send queries, which return Result objects::

    res = client.query('temperature in Washington, DC on October 3, 2012')

Result objects have `pods` (a Pod is an answer group from Wolfram Alpha)::

    for pod in res.pods:
        do_something_with(pod)

Pod objects have `subpods` (a Subpod is a specific response with the plaintext reply and some additional info)::
    
    for pod in res.pods:
        for sub in pod:
            print(sub.text)

You may also query for simply the pods which have 'Result' titles or are marked as 'primary'::

    print(res.results[0].text[0])

The interface as it is now does not have code built for accessing every piece of information that the Wolfram Alpha API could return. As such, every class has a copy of the original structure that it is supposed to parse. This copy is placed in a variable called node for every class but the Result class, whose variable is named tree. If there is information from the Wolfram Alpha API that you need for your program that this interface does not provide an exact function for then you can still gain access to that information through the previously mentioned variables; you'll just have to handle the API directly until the functionality you seek is built. 

For more information, read the source.