Go to file
Isaac Smith 9331558340 Align with original methods
Rewrote the results method a bit so it returned something similar to the original result, which will make the transition easier.
2016-05-14 19:13:58 -04:00
docs Merge with latest skeleton 2016-04-29 10:06:30 -04:00
wolframalpha Align with original methods 2016-05-14 19:13:58 -04:00
.gitignore Add gitignore. Make .hgignore empty - there's nothing here that's project specific. 2016-01-01 08:30:19 -05:00
.hgtags Added tag 2.4 for changeset 877f5698c7e7 2016-04-29 10:35:06 -04:00
.travis.yml Add password for deployment 2016-04-29 10:12:34 -04:00
CHANGES.rst It's a change. :D 2016-05-14 18:50:56 -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 Explained limitations, offered alternative 2016-05-14 18:37:44 -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])

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.