pyFAI.gui.utils package

pyFAI.gui.utils.FilterBuilder module

This module provides helper to build filter descriptions.

class pyFAI.gui.utils.FilterBuilder.FilterBuilder

Bases: object

Helper to create extension filters for file dialog

COMPRESSED_IMAGE_EXTENSIONS = ['gz', 'bz2']

List of compressed file extension supported by fabio by default.

__init__()
addFileFormat(description, extensions)

Add a file format to the filters

Parameters:
  • description (str) – Description of the file format

  • extensions (Union[str,List]) – Description of the file format

addImageFormat(description, extensions, compressedExtensions=True)

Add an image format to the filters

Parameters:
  • description (str) – Description of the file format

  • extensions (Union[str,List]) – Description of the file format

  • compressedExtensions (bool) – Includes derived compressed files like gz and bz2.

getFilters()

Returns the filters as supported by qt.QFileDialog.setNameFilters().

Return type:

List[str]

pyFAI.gui.utils.ProxyAction module

class pyFAI.gui.utils.ProxyAction.CustomProxyAction(parent, source)

Bases: ProxyAction

Create a QAction synchronized with a source action.

Some properties of the source can be overrided.

__init__(parent, source)
forceIconText(iconText)

Override the iconText of the the source action.

Property can be removed by using None. In this case the text set back using the sourceAction.

forceText(text)

Override the text of the the source action.

Property can be removed by using None. In this case the text set back using the sourceAction.

setIconText(self, text: str)
setText(self, text: str)
pyFAI.gui.utils.ProxyAction.LooseVersion(version)
class pyFAI.gui.utils.ProxyAction.ProxyAction(parent, source)

Bases: QAction

Create a QAction synchronized with a source action.

This allow to intercept all the gettes and setters by inheritance.

__init__(parent, source)
hover(self)
sourceAction()
toggle(self)
trigger(self)

pyFAI.gui.utils.colorutils module

pyFAI.gui.utils.colorutils.getFreeColorRange(colormap)

Returns a list of 10 colors in range not covered by colormap.

Return type:

List[qt.QColor]

pyFAI.gui.utils.eventutils module

This module provides convenient functions about Qt events.

class pyFAI.gui.utils.eventutils.QtProxifier(target)

Bases: QObject

Provide a safe Qt object from an unsafe object.

__init__(target)
class pyFAI.gui.utils.eventutils.SimulatedSignal

Bases: object

Simulated signal to create signal at runtime.

__init__()
connect(func)
disconnect(func)
emit(*args, **kwargs)
subs()
pyFAI.gui.utils.eventutils.createCloseSignal(widget)

Create a Qt close signal to the widget as sigClosed attribute

pyFAI.gui.utils.eventutils.createHideSignal(widget)

Create a Qt hidden signal to the widget as sigHidden attribute

pyFAI.gui.utils.eventutils.createShowSignal(widget)

Create a Qt shown signal to the widget as sigShown attribute

pyFAI.gui.utils.imageutils module

This module provides convenient functions to use with Qt objects.

pyFAI.gui.utils.imageutils.convertArrayToQImage(image)

Convert an array-like RGB888 image to a QImage.

The created QImage is using a copy of the array data.

Limitation: Only supports RGB888 and RGBA8888 format.

Parameters:

image (numpy.ndarray of uint8 of dimension HxWx3) – Array-like image data

Returns:

Corresponding Qt image

Return type:

QImage

pyFAI.gui.utils.imageutils.maskArrayToRgba(mask, falseColor, trueColor)

Returns an RGBA uint8 numpy array using colors to map True (usually masked pixels) and Flase (valid pixel) from the mask array.

pyFAI.gui.utils.projecturl module

Module with GUI for diffraction mapping experiments

pyFAI.gui.utils.projecturl.get_documentation_url(subpath)

Returns the URL to the documentation

pyFAI.gui.utils.timeutils module

This module provides convenient functions about time.

class pyFAI.gui.utils.timeutils.Timer(seconds)

Bases: object

Kind of context manager to call a code while the amount of seconds is not finished.

timer = Timer(seconds=10)
while not timer.isTimeout():
    print("Tick")
__init__(seconds)
isTimeout()

Returns True if the timeout was reached.

pyFAI.gui.utils.tree module

Module with list <-> tree conversion

class pyFAI.gui.utils.tree.DataSet(path, h5=None, nframes=None, shape=None)

Bases: object

__init__(path, h5=None, nframes=None, shape=None)
as_tuple()
is_hdf5()

Return True if the object is hdf5

pyFAI.gui.utils.tree.DataSetNT

alias of DataSet

class pyFAI.gui.utils.tree.ListDataSet(iterable=(), /)

Bases: list

as_tree(sep='/')

Convert the list into a tree

Parameters:

sep – separator in the filenames

Returns:

Root of the tree

commonroot()
Returns:

common directory

empty()

pyFAI.gui.utils.units module

class pyFAI.gui.utils.units.Dimentionality(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

Bases: Enum

ANGLE = 'Angle'
LENGTH = 'Length'
PIXEL = 'Pixel'
SCATTERING_VECTOR = 'Scattering vector'
WAVELENGTH = 'Wavelength'
property fullname
class pyFAI.gui.utils.units.Unit(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

Bases: Enum

ANGSTROM = (('Ångström', 'Å', <Dimentionality.WAVELENGTH: 'Wavelength'>, 1),)
CENTIMETER = (('Centimeter', 'cm', <Dimentionality.LENGTH: 'Length'>, 1),)
DEGREE = (('Degree', 'deg', <Dimentionality.ANGLE: 'Angle'>, 1),)
ENERGY = (('Energy', 'keV', <Dimentionality.WAVELENGTH: 'Wavelength'>, -1),)
INV_ANGSTROM = (('Inverse Ångström', 'Å⁻¹', <Dimentionality.SCATTERING_VECTOR: 'Scattering vector'>, 1),)
INV_NANOMETER = (('Inverse nanometer', 'nm⁻¹', <Dimentionality.SCATTERING_VECTOR: 'Scattering vector'>, 1),)
METER = (('Meter', 'm', <Dimentionality.LENGTH: 'Length'>, 1),)
METER_WL = (('Meter', 'm', <Dimentionality.WAVELENGTH: 'Wavelength'>, 1),)
MILLIMETER = (('Millimeter', 'mm', <Dimentionality.LENGTH: 'Length'>, 1),)
PIXEL = (('Pixel', 'px', <Dimentionality.PIXEL: 'Pixel'>, 1),)
RADIAN = (('Radian', 'rad', <Dimentionality.ANGLE: 'Angle'>, 1),)
property dimensionality
property direction
property fullname
classmethod get_units(dimensionality)
property symbol
pyFAI.gui.utils.units.convert(value, inputUnit, outputUnit)

pyFAI.gui.utils.unitutils module

pyFAI.gui.utils.unitutils.from2ThRad(twoTheta, unit, wavelength=None, directDist=None, ai=None)

Convert a two theta angle to this unit.

The directDist argument can be extracted from an azimuthal integrator the following way:

directDist = ai.getFit2D()["directDist"]
Parameters:
  • unit – instance of pyFAI.units.Unit

  • wavelength – wavelength in m

  • directDist – distance from sample to beam-center on the detector in _mm_

  • ai – instance of pyFAI.azimuthalIntegrator.AzimuthalIntegrator

pyFAI.gui.utils.unitutils.tthToRad(twoTheta: ndarray, unit: Unit, wavelength: float = None, directDist: float = None)

Convert a two theta angle from original unit to radian.

The directDist argument can be extracted from an azimuthal integrator the following way:

directDist = ai.getFit2D()["directDist"]
Parameters:
  • unit – instance of pyFAI.units.Unit

  • wavelength – wavelength in m

  • directDist – distance from sample to beam-center on the detector in _mm_

  • ai – instance of pyFAI.azimuthalIntegrator.AzimuthalIntegrator

pyFAI.gui.utils.validators module

class pyFAI.gui.utils.validators.AdvancedDoubleValidator(parent=None)

Bases: DoubleValidator

Validate double values and provides features to allow or disable other things.

__init__(parent=None)
setAllowEmpty(allow)

Allow the field to be empty. Default is false.

An empty field is represented as a None value.

Parameters:

allow (bool) – New state.

setIncludedBound(minBoundIncluded, maxBoundIncluded)

Allow the include or exclude boundary ranges. Default including both boundaries.

toText(value)

Convert the input string into an interpreted value

Parameters:

value (object) – Input object

Return type:

str

toValue(text)

Convert the input string into an interpreted value

Parameters:

text (str) – Input string

Return type:

Tuple[object,bool]

Returns:

A tuple containing the resulting object and True if the string is valid

validate(inputText, pos)

Reimplemented from QDoubleValidator.validate.

Allow to provide an empty value.

Parameters:
  • inputText (str) – Text to validate

  • pos (int) – Position of the cursor

class pyFAI.gui.utils.validators.DoubleValidator(parent=None)

Bases: QDoubleValidator

Double validator with extra feature.

The default locale used is not the default one. It uses locale C with RejectGroupSeparator option. This allows to have consistant rendering of double using dot separator without any comma.

QLocale provides an API to support or not groups on numbers. Unfortunatly the default Qt QDoubleValidator do not filter out the group character in case the locale rejected it. This implementation reject the group character from the validation, and remove it from the fixup. Only if the locale is defined to reject it.

This validator also allow to type a dot anywhere in the text. The last dot replace the previous one. In this way, it became convenient to fix the location of the dot, without complex manual manipulation of the text.

__init__(parent=None)
fixup(inputText)

Remove group characters from the input text if the locale is defined to do so.

Parameters:

inputText (str) – Text to validate

toText(value)

Convert the input string into an interpreted value

Parameters:

value (object) – Input object

Return type:

str

toValue(text)

Convert the input string into an interpreted value

Parameters:

text (str) – Input string

Return type:

Tuple[object,bool]

Returns:

A tuple containing the resulting object and True if the string is valid

validate(inputText, pos)

Reimplemented from QDoubleValidator.validate.

Parameters:
  • inputText (str) – Text to validate

  • pos (int) – Position of the cursor

class pyFAI.gui.utils.validators.IntegerAndEmptyValidator

Bases: QIntValidator

Validate double values or empty string.

toText(value)

Convert the input string into an interpreted value

Parameters:

value (object) – Input object

Return type:

str

toValue(text)

Convert the input string into an interpreted value

Parameters:

text (str) – Input string

Return type:

Tuple[object,bool]

Returns:

A tuple containing the resulting object and True if the string is valid

validate(inputText, pos)

Reimplemented from QIntValidator.validate.

Allow to provide an empty value.

Parameters:
  • inputText (str) – Text to validate

  • pos (int) – Position of the cursor

Module contents

Module providing gui util tools

class pyFAI.gui.utils.Event(width, height)

Bases: object

Dummy class for dummy things

__init__(width, height)
pyFAI.gui.utils.maximize_fig(fig=None)

Try to set the figure fullscreen

pyFAI.gui.utils.update_fig(fig=None)

Update a matplotlib figure with a Qt4 backend

Parameters:

fig – pylab figure