7. Spécificités Euclid🔗

Le consortium Euclid a mis en place un référentiel de développement propre, EDEN, visant à standardiser les formats utilisés, les règles de codage en vigueur, les outils accessibles aux développeurs, etc., dans le cadre du SGS. Ce référentiel est incarné dans les environnements de production CODEEN et de développement LODEEN, livrés sous forme de machine virtuelle.

Note

Python est avec C++ l’un des deux langages de programmation officiels d’Euclid.

Attention

les contraintes de développement imposées par Euclid ne s’appliquent qu’aux codes développés dans le cadre du SGS. Un code d’analyse post-SGS n’est pas tenu de s’y plier, mais il peut certainement gagner à s’en inspirer (développement continu, tests, documentation, style, etc.).

7.2. Librairies EDEN🔗

EDEN est un environnement contraint incluant un nombre restreint de bibliothèques Python officiellement supportées. Dans sa version v2.1 (printemps 2020), il contient notamment:

  • pile numérique usuelle: numpy, scipy et matplotlib, ainsi que pandas;

  • quelques bibliothèques spécialisées, p.ex. pyFFTW (Fastest Fourier Transform in the West), scikit-learn (machine learning), emcee (MCMC), iminuit (minimisation);

  • cython pour de l’optimisation statique de code;

  • entrées/sorties FITS: fitsio (plus rapide que astropy.io.fits);

  • librairies astronomiques: healpy (une interface à HEALPix, pour l’analyse et la visualisation de données sur une sphère), astropy et pyEphem (éphémérides)

  • GUI: PyQt

  • tests: PyTest

Attention

Dans le cadre du SGS, vous ne devez donc pas développer de code dépendant d’autres bibliothèques que celles-ci.

Toutefois, si une librairie absolument cruciale manque, il est possible de demander son inclusion via une procédure de Change requests, qui sera examinée et arbitrée par le CCB.

7.3. Git et GitLab🔗

Le développement du code est géré par git, et hébergé par le euclid-gitlab.