Python ICAT

python-icat is a Python package that provides a collection of modules for writing programs that access an ICAT service using the SOAP interface. It is based on Suds and extends it with ICAT specific features.


See the online documentation.

System requirements


  • Python 2.7, or 3.3 and newer.

Required Library packages

  • Suds, either the original version or the fork by Jurko Gospodnetić. The latter is recommended as the original version is not maintained any more and contains bugs. Python 3 requires the jurko fork.

Optional library packages

Only needed to use certain extra features, not required to install or use python-icat itself.

  • PyYAML. (Only needed to use the YAML backend of and and to run the example scripts.)
  • lxml. (Only needed to use the XML backend of and
  • Requests. (Only needed for the example scripts using the ICAT RESTful interface, and
  • setuptools_scm. (The version number is managed using this package. All source distributions add a static text file with the version number and fall back using that if setuptools_scm is not available. So this package is only needed to build out of the plain development source tree as cloned from GitHub.)
  • pytest >= 3.1.0. (Only if you want to run the tests.)
  • pytest-dependency >= 0.2. (Only if you want to run the tests.)
  • distutils-pytest. (Only if you want to run the tests.)


Current Release:

Old versions can also be found here.


python-icat uses the distutils Python standard library package and
follows its conventions of packaging source distributions. See the documentation on Installing Python Modules for details or to customize the install process.

  1. Download the sources, unpack, and change into the source directory.
  2. python build
  3. python install

The last step might require admin privileges in order to write into the site-packages directory of your Python installation.

Additional Resources


Rolf Krahl

Copyright 2013-2019 Helmholtz-Zentrum Berlin für Materialien und Energie GmbH

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.