From f56990369682fdd75f96215f64a3b17d770f6b55 Mon Sep 17 00:00:00 2001 From: Laura Mendoza Date: Wed, 20 Nov 2019 16:25:51 +0100 Subject: [PATCH 01/11] [meetings] created agenda and report file for meeting Nov 2019 --- Notes_Upgrades/meetings/nov_2019.rst | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 Notes_Upgrades/meetings/nov_2019.rst diff --git a/Notes_Upgrades/meetings/nov_2019.rst b/Notes_Upgrades/meetings/nov_2019.rst new file mode 100644 index 000000000..e527abd68 --- /dev/null +++ b/Notes_Upgrades/meetings/nov_2019.rst @@ -0,0 +1,14 @@ +Meeting on the xx of November 2019 +================================== + + +Agenda +------ + +- [ ] How to package Tofu + - pip wheel + - where to set the requirements ? +- [ ] Which testing package to use ? + - nose2 + - pytest +- [ ] Travis ? From 4648b1cbeef0add2a28624de33adf9d8b2a9c964 Mon Sep 17 00:00:00 2001 From: Laura Mendoza Date: Wed, 20 Nov 2019 17:33:21 +0100 Subject: [PATCH 02/11] [meetings] small update --- Notes_Upgrades/meetings/nov_2019.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Notes_Upgrades/meetings/nov_2019.rst b/Notes_Upgrades/meetings/nov_2019.rst index e527abd68..bf95e2ed9 100644 --- a/Notes_Upgrades/meetings/nov_2019.rst +++ b/Notes_Upgrades/meetings/nov_2019.rst @@ -11,4 +11,6 @@ Agenda - [ ] Which testing package to use ? - nose2 - pytest -- [ ] Travis ? +- [ ] Travis + - platforms / matrix +- [ ] tutorials as tests ? From 959de9f1ac5266fcc9f0242b55a15f03ee07cab7 Mon Sep 17 00:00:00 2001 From: "Laura S. Mendoza" Date: Thu, 21 Nov 2019 18:01:22 +0100 Subject: [PATCH 03/11] Update nov_2019.rst Added on point to the agenda --- Notes_Upgrades/meetings/nov_2019.rst | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Notes_Upgrades/meetings/nov_2019.rst b/Notes_Upgrades/meetings/nov_2019.rst index bf95e2ed9..1c62265e5 100644 --- a/Notes_Upgrades/meetings/nov_2019.rst +++ b/Notes_Upgrades/meetings/nov_2019.rst @@ -5,12 +5,14 @@ Meeting on the xx of November 2019 Agenda ------ -- [ ] How to package Tofu +- How to package Tofu - pip wheel - where to set the requirements ? -- [ ] Which testing package to use ? +- Which testing package to use ? - nose2 - pytest -- [ ] Travis +- Travis - platforms / matrix -- [ ] tutorials as tests ? +- tutorials as tests ? +- matplotlib blog + From faeb7afef4af2e5998288de2fa769d5701a16821 Mon Sep 17 00:00:00 2001 From: VEZINET Didier Date: Wed, 27 Nov 2019 11:27:27 +0100 Subject: [PATCH 04/11] [Issue287] IMAS version check operational in imas2tofu.__init__, made non-critical --- tofu/imas2tofu/__init__.py | 66 +++++++++++++++++++++++++++++++++++++- tofu/version.py | 2 +- 2 files changed, 66 insertions(+), 2 deletions(-) diff --git a/tofu/imas2tofu/__init__.py b/tofu/imas2tofu/__init__.py index 184fc8773..27d26e50a 100644 --- a/tofu/imas2tofu/__init__.py +++ b/tofu/imas2tofu/__init__.py @@ -6,13 +6,13 @@ """ import warnings import traceback +import itertools as itt try: try: from tofu.imas2tofu._core import * except Exception: from ._core import * - del warnings, traceback except Exception as err: if str(err) == 'imas not available': msg = "" @@ -26,5 +26,69 @@ msg += "\n\n => the optional sub-package tofu.imas2tofu is not usable\n" raise Exception(msg) + +# ----------------------------------------------- +# Check IMAS version vs latest available in linux modules +# ----------------------------------------------- + +_KEYSTR = 'IMAS/' + +# extract all IMAS versions from a str returned by modules +def extractIMAS(ss, keystr=_KEYSTR): + if not keystr in ss: + raise Exception + ls = ss[ss.index(keystr):].split('\n') + ls = itt.chain.from_iterable([s.split(' ') for s in ls]) + ls = [s for s in ls if keystr in s] + ls = [s[len(keystr):s.index('(')] if '(' in s else s[len(keystr):] + for s in ls] + return sorted(ls) + +# Compare current and latest available IMAS versions +def check_IMAS_version(verb=True, keystr=_KEYSTR): + import subprocess + + # Get currently loaded IMAS + cmd = "module list" + proc = subprocess.run(cmd, check=True, shell=True, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + lcur = extractIMAS(proc.stdout.decode(), keystr=keystr) + if len(lcur) != 1: + msg = ("You seem to have no / several IMAS version loaded:\n" + + "\t- module list: {}".format(lcur)) + raise Exception(msg) + + # Get all available IMAS + cmd = "module av IMAS" + proc = subprocess.run(cmd, check=True, shell=True, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + lav = extractIMAS(proc.stdout.decode(), keystr=keystr) + if len(lav) == 0: + msg = "There is not available IMAS version" + raise Exception(msg) + + # Compare and warn + if lcur[0] not in lav: + msg = "The current IMAS version is not available!" + raise Exception(msg) + + msg = None + if lav.index(lcur[0]) != len(lav)-1: + msg = ("\nYou do not seem to be using the latest IMAS version:\n" + + "'module list' vs 'module av IMAS' suggests:\n" + + "\t- Current version: {}\n".format(lcur[0]) + + "\t- Latest version : {}".format(lav[-1])) + warnings.warn(msg) + return lcur[0], lav + +# Try comparing and warning +try: + _, _ = check_IMAS_version(verb=True) +except Exception as err: + # This warning is an optional luxury, should not block anything + pass + + __all__ = ['MultiIDSLoader', 'load_Config', 'load_Plasma2D', 'load_Cam', 'load_Data'] +del warnings, traceback, itt, _KEYSTR diff --git a/tofu/version.py b/tofu/version.py index a9ed57da4..382360f86 100644 --- a/tofu/version.py +++ b/tofu/version.py @@ -1,2 +1,2 @@ # Do not edit, pipeline versioning governed by git tags! -__version__ = '1.4.2a3' +__version__ = '1.4.2a3-1-g88f9524' From 7a705e84cfd7acf116dab3ade698c88ed40ec040 Mon Sep 17 00:00:00 2001 From: VEZINET Didier Date: Wed, 27 Nov 2019 11:43:12 +0100 Subject: [PATCH 05/11] [Issue287] PEP8 Compliance 1 --- tofu/imas2tofu/__init__.py | 5 ++++- tofu/version.py | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/tofu/imas2tofu/__init__.py b/tofu/imas2tofu/__init__.py index 27d26e50a..842ecaef4 100644 --- a/tofu/imas2tofu/__init__.py +++ b/tofu/imas2tofu/__init__.py @@ -33,9 +33,10 @@ _KEYSTR = 'IMAS/' + # extract all IMAS versions from a str returned by modules def extractIMAS(ss, keystr=_KEYSTR): - if not keystr in ss: + if keystr not in ss: raise Exception ls = ss[ss.index(keystr):].split('\n') ls = itt.chain.from_iterable([s.split(' ') for s in ls]) @@ -44,6 +45,7 @@ def extractIMAS(ss, keystr=_KEYSTR): for s in ls] return sorted(ls) + # Compare current and latest available IMAS versions def check_IMAS_version(verb=True, keystr=_KEYSTR): import subprocess @@ -81,6 +83,7 @@ def check_IMAS_version(verb=True, keystr=_KEYSTR): warnings.warn(msg) return lcur[0], lav + # Try comparing and warning try: _, _ = check_IMAS_version(verb=True) diff --git a/tofu/version.py b/tofu/version.py index 382360f86..53c102bb6 100644 --- a/tofu/version.py +++ b/tofu/version.py @@ -1,2 +1,2 @@ # Do not edit, pipeline versioning governed by git tags! -__version__ = '1.4.2a3-1-g88f9524' +__version__ = '1.4.2a3-2-gfaeb7af' From 1ab5297e964f8710e8c9144b03b7d12b71e4cc37 Mon Sep 17 00:00:00 2001 From: VEZINET Didier Date: Wed, 27 Nov 2019 12:10:43 +0100 Subject: [PATCH 06/11] [Issue288] Files removed --- Debug_JINTRACMesh.pdf | Bin Debug_JINTRACMesh.svg | 21 ------- TODO_EndOfVisit_20181212.txt | 118 ----------------------------------- XICS_mask.npz | Bin 4287706 -> 0 bytes tofu/version.py | 2 +- 5 files changed, 1 insertion(+), 140 deletions(-) delete mode 100644 Debug_JINTRACMesh.pdf delete mode 100644 Debug_JINTRACMesh.svg delete mode 100644 TODO_EndOfVisit_20181212.txt delete mode 100644 XICS_mask.npz diff --git a/Debug_JINTRACMesh.pdf b/Debug_JINTRACMesh.pdf deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/Debug_JINTRACMesh.svg b/Debug_JINTRACMesh.svg deleted file mode 100644 index 890803549..000000000 --- a/Debug_JINTRACMesh.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - diff --git a/TODO_EndOfVisit_20181212.txt b/TODO_EndOfVisit_20181212.txt deleted file mode 100644 index a2e89a891..000000000 --- a/TODO_EndOfVisit_20181212.txt +++ /dev/null @@ -1,118 +0,0 @@ -Salut Laura, - -Alors les prochaines étapers que je vois (ton avis est évidemment bienvenu): - - -######################### -* Function principale (kIn kOut, indout, vect): -x - Terminer proprement l'optimisation CPU -x - Comprendre et terminer optimisation / profilage mémoire (résidu?) -x - Terminer parallélisation -x - La connecter à la partie orientée objet, en sortant les calculs - preliminaires (limites des boites...) qui ne changeront pas si la - caméra bouge et qu'on refait le calcul (pour optimisation de la - position) - - -######################### -* Autres fonctions nécessaire (inspirées de la principale): - -x 0/ Calculer, pour N points (R,Z) (donc cercle plat en 3D), le point le - long de la LOS le plus proche du cercle: (projection de la ligne - (hyperbole) ou en 3D pbm 4d), retourner k et distance - -x 0.1/ Same as 0/ but give back bool when dist < eps => True - (eps as parameter). - -x 1/ Calculer uniquement kIn / kOut pour N (~1-100) polygones - (ex.: des surfaces de flux) - TODO: pas de structs !! - -x 2/ Calculer, pour N polygones, et lorsque les lignes de visée ne les - traversent pas, la distance la plus courte d entre une ligne et un - polygone (et le paramètre k du point associé sur la ligne). - Retourner d=0 si la ligne traverse (i.e. si il existe un kIn et/ou - un kout) - > parametres entrées: (nvert, poly, vin, lims si lin, los_origin, - los_direction) - - >> Only did it for toroidal polygons... is it really necessary ? - - o Interface Python: - qui appelle une des deux (si il existe un parametre epislon) - x vectoriser à plusieurs polys - x version true/false si >0 et < eps (tableau booleen nlos*npoly) - o Interface Python : - qui appelle une des deux avex une variable pour choisir si LOS/poly ou l'inverse - x plein LOS, plein poly, pour chaque ligne: tableau d'indice (de taille nlos) - indiquant le poly pourlequel la LOS est le plus proche. (min(distance) mais - pour laquelle la LOS ne passe pas à l'intérieur). - Poly sont ordonnees : du plus petit au plus grand - x plein LOS, plein poly, pour chaque poly: tableau d'indice (de taille npoly) - indiquant la LOS pourlequel le poly est le plus proche. (min(distance) mais - pour laquelle la LOS ne passe pas à l'intérieur). - -> 2.1/ Ask Didier (vignetting algo ?) - > In : (list los_orig, list los_dirc, list contour3d, ncontour, list nvert...) - > Out : (list bool[ncontour * nlos]) - > contour 'simple' 3d = sans recoupe. - > 1. bbox - los - triangulation du polygon - - 3/ Calculer, pour N points de l'espace (~10-100) s'il sont visibles par - M autres points (~10^4-10^6), dans une configuration donnée (ex.: des - points le long d'une trajectoire dans la chambre à vide, on veut savoir - quels sont les points du plasma - échantilloné - qui rayonnent - dessus). Retourner un tableau 2D (N,M) de booleens. Je calculerai - l'angle solide et le vecteur directeur vectoriellement ensuite en me - basant sur ce booleen. Un fonction qui retourne ce tableau est donc - suffisante. - - 4/ Idem, mais pour N polygons 3D plans (ou quasi-plans), attention, le - polygone a un sens (i.e.: une face visible, l'autre ne compte pas), - seuls les points du bon coté doivent être comptés comme le voyant - - Eventuellement retourner plutot un tableau d'entier (flags) avec - code (0=pas vu, 1=partiellement, 2=entier), avec tests sur le centre - de masse et les sommets) - - Non-prioritaire : mattre un flag pour désactiver le calcul - d'un seul côté - - 5/ Idem mais calculer aussi l'angle solide associé et le vecteur - directeur vers le centre de masse du polygon - Prioritaire : uniquement pour les polygones vu en entier - - 6/ Pour les fonction 3/ et 5/, dans le cas ou le champ par lequel on - eut multiplier l'angle solide est axisymmétrique (toroidalement - invariant), on peut le multiplier par l'intégrale toroidale de l'angle - solideau lieu de faire un calcul détaillé dans tout le volume. Dans ce - cas, le calcul doit aller plus vite et économiser pas mal de mémoire - puisqu'on écrase sur une dimension). Il fut alors: - - Echantilloner le volume qui nous intéresse (fonction - sample_V() existante, s'en inspirer), en faisant une boucle sur - le grand rayon R (car c'est lui qui détermine le nombre - d'échantillonages toroidaux), c'est cette boucle supérieure - que l'on pourra ensuite parallliser.. - - En déduire un échantillonage (phi,Z), pour chaque point de - l'échantillonage voir si le point / polygone est visible, le - cas échéant calculer l'angle solide (et le vecteur ? à - discuter), puis l'intégrer sur phi. - - A la fin on obtient une carte 2D (R,Z) de l'angle solide - intégré en phi - - 7/ Faire la même chose que 5/ mais en intercalant un nombre arbitraire - d'ouvertires polygonles et de grilles polygonales, calculer l'angle - solide correspondant à l'intersection de tous ces polygones vu du - plasma (i.e. : les photons doivent passer à travers toutes les - ouvertures / griles avant d'atteindre les détecteurs). - - 7/ On va commencer à gérer: - - Les réflexions (spéculaires et diffusives) - - Les réflexions sur un cristal à simple ou double courbure - (pour les spectromètres) - - - 8/ S'attaquer aux maillages (an 2) - -J'arrive ;-) -A toute -Didier diff --git a/XICS_mask.npz b/XICS_mask.npz deleted file mode 100644 index 6f349523fff06f9a23e5f1c81f7de1a20497fbc8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4287706 zcmeF(!HT5^UdG`r6a?2^KwL#32m`~6xO3x1l-am&C2^8r1j!7E2%=ua+>f{8&TFu$ zx+`_MJM~p3?<6_DubzULuI_XG>GwRpuBvqCh{uU^0X>8oG$g9Cv(GmK2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAVA<61a7Wjgbf4;5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK;UhGo43E~djtp&AV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfWTD<++4*9BM1;6K!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7e?%N4kJxi8%- zCqRGz0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly 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 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfWTD=+;}5EfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oQL|0$24%S&Sh-fB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5;&h`^0E0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5;&7c3C@LoQ|#AV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+z*Py{cq2f7009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5O~1?SM^6(j3GdP009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ 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 Date: Wed, 27 Nov 2019 16:01:34 +0100 Subject: [PATCH 07/11] Update nov_2019.rst --- Notes_Upgrades/meetings/nov_2019.rst | 41 ++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/Notes_Upgrades/meetings/nov_2019.rst b/Notes_Upgrades/meetings/nov_2019.rst index 1c62265e5..27612c9ce 100644 --- a/Notes_Upgrades/meetings/nov_2019.rst +++ b/Notes_Upgrades/meetings/nov_2019.rst @@ -16,3 +16,44 @@ Agenda - tutorials as tests ? - matplotlib blog +Present +-------- + +- Didier Vezinet (@Didou09) +- Florian Lebourdais (@flothesof) +- Laura Mendoza (@lasofivec) + +Summary of meeting 27/11/2019 +------------------------------ + +- Summary of the recent problems with setuptools, travis, distribution (pypi) + **Assignee**: Laura + +- Documentation problems: + - More and more users asking for doc (mostly on IMAS). + - docstring: + Didier will update docstring of main user functions + **Assignee**: Didier + - website: + - add tutorials/cases with different configurations (ITER, WEST, JET, ...) [FLORIAN] + - add tutorial for only plot_touch: different types of shading, saving/exports and plotting selected pixels for plot_touch + - add tutorial for reflexions (number and types) + - 2d radiations with ITER data (best case) or fake data -> update the tutorial called Computing a camera image with custom emissivity + - sinogram: to be added to an existing tutorial + - how to build cameras: add more comments on how to create a camera (in the 5 minutes to Tofu) what are the different parameters. Maybe separate camera 1D and camera 2D and go into details on how it works. + + **Assignee**: Laura + Didier + Florian ? + Deadline: December ? + +- Which tool for tests: + - pytest : it looks like transition nose to pytest will be easy (pytest support nose tests and nose functions not used). Will have to clean imports from nose. + http://doc.pytest.org/en/latest/nose.html + Assignee: Florian + Deadline: next release. + +- Adding Tofu to conda-forge: + Florian proposes to add tofu to the conda-forge. For the next release ? + **Assignee**: - + Deadline: next release ? + +- matplotlib blog : we will re discuss this, once the tutorial are updated and that we have more examples/images From 4d0b7ad11f9f088ccac7e6bb7ec73ccc26de3ce2 Mon Sep 17 00:00:00 2001 From: "Laura S. Mendoza" Date: Wed, 27 Nov 2019 16:04:24 +0100 Subject: [PATCH 08/11] Update and rename nov_2019.rst to nov_2019.md --- .../meetings/{nov_2019.rst => nov_2019.md} | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) rename Notes_Upgrades/meetings/{nov_2019.rst => nov_2019.md} (88%) diff --git a/Notes_Upgrades/meetings/nov_2019.rst b/Notes_Upgrades/meetings/nov_2019.md similarity index 88% rename from Notes_Upgrades/meetings/nov_2019.rst rename to Notes_Upgrades/meetings/nov_2019.md index 27612c9ce..8a0db0a8e 100644 --- a/Notes_Upgrades/meetings/nov_2019.rst +++ b/Notes_Upgrades/meetings/nov_2019.md @@ -1,5 +1,5 @@ -Meeting on the xx of November 2019 -================================== +Meeting November 2019 +===================== Agenda @@ -30,10 +30,11 @@ Summary of meeting 27/11/2019 **Assignee**: Laura - Documentation problems: - - More and more users asking for doc (mostly on IMAS). - - docstring: - Didier will update docstring of main user functions - **Assignee**: Didier + + - More and more users asking for doc (mostly on IMAS). + - docstring: + Didier will update docstring of main user functions + **Assignee**: Didier - website: - add tutorials/cases with different configurations (ITER, WEST, JET, ...) [FLORIAN] - add tutorial for only plot_touch: different types of shading, saving/exports and plotting selected pixels for plot_touch From 0b2870b9aef3ceee1e9b6699467c1dcfb4d26039 Mon Sep 17 00:00:00 2001 From: Laura Mendoza Date: Wed, 27 Nov 2019 16:08:54 +0100 Subject: [PATCH 09/11] [quick fix] took out wheel deployment and add skip if already in pypi --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index d5bd833db..ed1bca620 100644 --- a/.travis.yml +++ b/.travis.yml @@ -59,8 +59,9 @@ deploy: skip_cleanup: true - provider: pypi user: "Didou09" - distributions: "sdist bdist_wheel" + distributions: "sdist" skip_cleanup: true + skip_existing: true on: tags: true all_branches: true From 0351d8483f2d6c2e418ccfad9ea29fc681e287f3 Mon Sep 17 00:00:00 2001 From: flothesof Date: Wed, 27 Nov 2019 17:23:32 +0100 Subject: [PATCH 10/11] fix typo in tutorial causing newline --- examples/tutorials/tuto_plot_basic.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/examples/tutorials/tuto_plot_basic.py b/examples/tutorials/tuto_plot_basic.py index 5f4a63265..ca804088d 100644 --- a/examples/tutorials/tuto_plot_basic.py +++ b/examples/tutorials/tuto_plot_basic.py @@ -2,8 +2,7 @@ Getting started: 5 minutes tutorial for `tofu` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -This is a tutorial that aims to get a new user a little familiar with tofu's - structure. +This is a tutorial that aims to get a new user a little familiar with tofu's structure. """ # The following imports matplotlib, preferably using a From e870666338f8d14e98db873b20abcaef95b9d787 Mon Sep 17 00:00:00 2001 From: flothesof Date: Wed, 27 Nov 2019 17:23:46 +0100 Subject: [PATCH 11/11] add fusion machine tutorial --- .gitignore | 3 ++ .../tuto_plot_gallery_fusion_machines.py | 38 +++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 examples/tutorials/tuto_plot_gallery_fusion_machines.py diff --git a/.gitignore b/.gitignore index a94e3bed3..e382e1279 100644 --- a/.gitignore +++ b/.gitignore @@ -70,3 +70,6 @@ doc/source/auto_examples/ # do not commit nose tests files *.noseids + +# no pip wheel metadata +pip-wheel-metadata/ diff --git a/examples/tutorials/tuto_plot_gallery_fusion_machines.py b/examples/tutorials/tuto_plot_gallery_fusion_machines.py new file mode 100644 index 000000000..ebadfeb12 --- /dev/null +++ b/examples/tutorials/tuto_plot_gallery_fusion_machines.py @@ -0,0 +1,38 @@ +""" +A gallery of Fusion Machines +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +This tutorial functions as a gallery of fusion machines that can easily be loaded with `tofu`. +""" + +############################################################################### +# We start by importing `tofu`. + +import tofu as tf + +############################################################################### +# `tofu` provides a geometry helper function that allows creating a configuration with a single call. +# +# Calling with empty arguments results in a default configuration. At the time of writing, this is ITER. +# By printing the `config` object, a text representation of its components is printed. This allows inspecting +# component names, number of sections, color or visibility. + +config = tf.geom.utils.create_config() +print(config) + +############################################################################### +# To get a list of all available built-in configs, one has to know some details about `tofu`. +# Configurations can either be accessed by names (ITER, WEST, JET). + +print(tf.geom.utils._DCONFIG_TABLE.keys()) + +############################################################################### +# With that being said, let's create a gallery of the "top 3" fusion machines provided by `tofu` to accelerate +# diagnostic development. + +import matplotlib.pyplot as plt + +fig, ax = plt.subplots() +for fusion_machine in ['ITER', 'WEST', 'JET']: + config = tf.geom.utils.create_config(fusion_machine) + config.plot() \ No newline at end of file