An implementation of a webservice client for InterMine webservices, written in Python
This software is intended for people who make use of InterMine datawarehouses (ie. Biologists) and who want a quicker, more automated way to perform queries. Some examples of sites that are powered by InterMine software, and thus offer a compatible webservice API, are:
See the InterMine registry for the full list of available InterMines.
Queries here refer to database queries over the integrated datawarehouse. Instead of using SQL, InterMine services use a flexible and powerful sub-set of database query language to enable wide-ranging and arbitrary queries.
This package is compatible with both Python 2.7 and 3.x. We plan to drop 2.7 support next year.
The easiest way to install is to use pip:
pip install intermine
The client is also available via bioconda.
If you would like to run the test suite against a local mock server, you can do so by executing the following command: (from the source directory)
python setup.py test
If you want to run the suite against a live server (e.g. as deployed by the testmodel/setup.sh in the InterMine distribution, then you can run:
python setup.py livetest
By default this will use the location http://localhost:8080/intermine-demo/service. If you want it to use a different service, set the service URL in the TESTMODEL_URL shell environment variable.
Once downloaded, you can install the module with the command (from the source directory):
python setup.py install
We have detailed tutorials:
Extensive documentation is available by using the "pydoc" command, eg:
pydoc intermine.query.Query
Also see:
- Documentation on PyPi: http://packages.python.org/intermine/
Please run autopep8 on your files so your code will follow the pep8 conventions. Do it as follows:
autopep8 <filenames> --in-place
For example:
autopep8 file1.py file2.py --in-place
1.11.00 Added Query Manager
1.10.00 Added registry features
1.09.09 Add Python 3 support
1.09.06 Dual license under BSD as well as LGPL
1.07.00 Provide ListManagers as context managers, where users need to create
temporary lists and clean up after themselves.
Added ID resolution.
1.05.00 Allowed constraints to be added on root paths implicitly, eg:
q.where('LOOKUP', 'eve') or q.where('IN', 'My List')
1.01.00 Added widget listing requests.
1.00.00 Added widget enrichment requests.
0.99.08 Added simpler constraint definition with kwargs.
0.99.07 Fixed bugs with lazy reference fetching handling empty collections and null references.
0.99.06 Fixed bug whereby constraint codes in xml were being ignored when queries were deserialised.
0.99.05 Allow template parameters of the form 'A = "zen"', where only the value is being replaced.
0.99.04 Merged 'list.to_query and 'list.to_attribute_query' in response to the changes in list upload behaviour.
0.99.03 Allow query construction from Columns with "where" and "filter"
Allow list and query objects as the value in an add_constraint call with "IN" and "NOT IN" operators.
Ensure lists and queries share the same overloading
0.99.02 Allow sort-orders which are not in the view but are on selected classes
0.99.01 Better representation of multiple sort-orders.
0.99.00 Fixed bug with subclasses not being included in clones
Added support for new json format for ws versions >= 8.
0.98.16 Fixed bug with XML parsing and subclasses where the subclass is mentioned in the first view.
better result format documentation and tests
added len() to results iterators
added ability to parse xml from the service object (see new_query())
improved service.select() - now accepts plain class names which work equally well for results and lists
Allowed lists to be generated from queries with unambiguous selected classes.
Fixed questionable constraint parsing bug which lead to failed template parsing
0.98.15 Added lazy-reference fetching for result objects, and list-tagging support
0.98.14 Added status property to list objects
0.98.13 Added query column summary support
Copyright (C) 2002-2018 InterMine
All code in this project is dual licensed under the LGPL version 3 license and the BSD 2-clause license
InterMine: extensive web services for modern biology.
Kalderimis A, Lyne R, Butano D, Contrino S, Lyne M, Heimbach J, Hu F, Smith R, Stěpán R, Sullivan J, Micklem G.