PyAims advanced examples¶
This section is intended for examples of advanced manipulations with PyAims: beginners do not need look at them, but at the PyAims examples instead.
Manipulating and tricking the plugins loader¶
Download source: pluginstricks.py
#!/usr/bin/env python
'''Maniupulate the plugins loader to avoid loading some of them, or to load additional plugins afterwards
'''
from __future__ import absolute_import
from soma import aims
dicomfile = 'toto.dcm'
pl = aims.carto.PluginLoader
pluginfiles = pl.pluginFiles()
# remove aimsdata plugins
todel = []
i = 0
for f in pluginfiles:
if f.filename.endswith('aimsdata.plugins'):
todel.append(i)
i += 1
todel.reverse()
for i in todel:
del pluginfiles[i]
# try to read an object which needs a specific IO plugin
vol = aims.read(dicomfile) # Fails
# now set back plugins
import os
import glob
aimspath = glob.glob(
os.path.join(aims.carto.Paths.globalShared(), 'aims-*', 'plugins', 'aimsdata.plugins'))[0]
pluginfiles.append(pl.PluginFile(aimspath))
pl.load()
vol = aims.read(dicomfile) # succeeds