iRODS has a Python API named python-irodsclient. It can be used to automate operations on iRODS entities such as data objects, collections, users and groups, as well as associated metadata. It is also commonly used to query iRODS using the GenQuery functionality.
This page shows how to run a demo Python script that connects to iRODS using python-irodsclient and performs a GenQuery.
For further information about python-irodsclient, see the python-irodsclient README. The test cases in the python-irodsclient repository also can be used to see examples of how functionality can be used.
In order to use the Python-irodsclient you would need to have Python installed on your PC/laptop (preferably version
3.6 or higher, although some older versions can also be made to work), as well as
pip. Use of
recommended, in order to isolate python-irodsclient’s dependencies from those of other Python software on
You also need a CA bundle. A common choice is to either use your system’s CA bundle or to download the curl CA bundle.
Finally, you need an account on a Yoda environment and a
yoda_environment.json file containing the
Python-irodsclient is most commonly used on Linux, but works on Windows and macOS as well.
- Download the example script and put it in a local directory.
- Adjust the
ca_file(or equivalent) parameters to point to your OS CA Bundle. Alternatively, download the curl CA bundle and put the
cacert.pemfile in the same directory as the script.
- Put the
irods_environment.jsonfile of the environment in the same directory as the script.
- Create and activate a virtualenv for the script that has
python-irodsclient(on Windows, replace
python -m pip install python-irodsclient==1.1.5
- If you are on Linux or MacOS, ensure the script is executable:
chmod +x demo-python-api.py
- The example script is configured for Yoda 1.8 and higher. If you still use Yoda 1.7, set
Falsein the script.
You can now run the script. It will first prompt for your password. If you have enabled data access passwords, enter a valid data access password here. Otherwise enter your account password.
After entering the password, the script should perform a GenQuery to retrieve a list of group collections that you have access to and show the results, for example: