Skip to content
V. Armando Solé edited this page Feb 9, 2014 · 5 revisions

Welcome to the fisx (pronounced Physics) library wiki!

Overview

This project intends to provide a library to assist on the quantification of X-ray Fluorescence Experiments. It has its origin on the Python modules supplied with the ESRF PyMca package. Some of those modules were among the first Python modules developed at the ESRF and their readability is in some cases very poor. In addition to that, there are other points motivating this development:

  • License clarification. PyMca source code is split in a lot of modules distributed under different licenses. Those modules using PyQt cannot be freely distributed under a license other than GPL. Most of the remaining modules use other licenses (LGPL, BSD, MIT, public domain, ...) Despite each PyMca file carrying its own license, this seem to have prevented collaboration in some cases. Hopefully the use of a very permissive license (MIT), encourages collaboration.
  • Improvements. While Python is great for scripting, some problems in which nested loops cannot be avoided and they need specific approaches. In particular, the calculation of secondary fluorescence intensities from multilayers using polychromatic X-ray beams its particularly badly tailored to Python. From the Python programmer point of view, this issue can be solved implemented those loops in Cython. However, this would provide a Python only solution. It seems preferable to use a better suited programming language that can be easily wrapped or used on its own.

API

  • Coding style. The coding style is capital CamelCase for the classes and lower camelCase for methods and members. In case of doubt, please take a look at the convention used by Qt. The use of tabs for indentation is discouraged and four spaces will be used instead of tabs. Line endings follow the Unix style (no CR characters at the end of lines). Windows developers should take care to disable autocrlf when performing git checkouts. Data files may get added CR characters preventing their correct use.

  • Documentation. C++ programmers documentation will use Doxygen. Other language wrappers should use the "de-facto" standard documentation tool the language (or the choice of the person providing the wrapper :-) ). A Python wrapper is also developed as part of the project because of its expected use by PyMca.

Roadmap

PyMca is expected to start using this library during summer 2014. The goal for fisx is to reach production status in October 2014 at latest.

Clone this wiki locally