<!-- 
RSS generated by JIRA (8.3.4#803005-sha1:1f96e09b3c60279a408a2ae47be3c745f571388b) at Sat Feb 10 15:31:09 JST 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>PFS-JIRA</title>
    <link>https://pfspipe.ipmu.jp/jira</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.3.4</version>
        <build-number>803005</build-number>
        <build-date>13-09-2019</build-date>
    </build-info>


<item>
            <title>[REDMINE1D-282] [RM-8219] [Parameters] Refacto object structure</title>
                <link>https://pfspipe.ipmu.jp/jira/browse/REDMINE1D-282</link>
                <project id="11002" key="REDMINE1D">1D Redmine </project>
                    <description>&lt;p&gt;&lt;em&gt;&lt;font color=&quot;#505f79&quot;&gt; Created on 2023-08-17 16:17:07 by Fanny Dufresne. % Done: 100&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;Refacto parameters as explained here &lt;a href=&quot;https://projets.lam.fr/projects/amazed/wiki/2023-07-24&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;https://projets.lam.fr/projects/amazed/wiki/2023-07-24&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;&lt;a name=&quot;MRs&quot;&gt;&lt;/a&gt;MRs&lt;/h2&gt;

&lt;p&gt;MR cpf-redshift : &lt;a href=&quot;https://gitlab.lam.fr/CPF/cpf-redshift/-/merge_requests/555&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;https://gitlab.lam.fr/CPF/cpf-redshift/-/merge_requests/555&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;MR pyamazed : &lt;a href=&quot;https://gitlab.lam.fr/CPF/pyamazed/-/merge_requests/128&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;https://gitlab.lam.fr/CPF/pyamazed/-/merge_requests/128&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;MR amazed output analyzer : &lt;a href=&quot;https://gitlab.lam.fr/amazed/amazed-output-analyzer/-/merge_requests/25&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;https://gitlab.lam.fr/amazed/amazed-output-analyzer/-/merge_requests/25&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;MR dataset-tools : &lt;a href=&quot;https://gitlab.lam.fr/amazed/dataset-tools/-/merge_requests/88&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;https://gitlab.lam.fr/amazed/dataset-tools/-/merge_requests/88&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;MR vizu: &lt;a href=&quot;https://gitlab.lam.fr/amazed/amazed-web-ui/-/merge_requests/27&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;https://gitlab.lam.fr/amazed/amazed-web-ui/-/merge_requests/27&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;&lt;a name=&quot;Modificationdudataset&quot;&gt;&lt;/a&gt;Modification du dataset&lt;/h2&gt;

&lt;p&gt;Dataset se8 modifi&#233;. Nouveaux fits dans /net/CESAM/amazed/fdufresne/datasetTmp&lt;/p&gt;

&lt;h2&gt;&lt;a name=&quot;Modificationspr%C3%A9sentes&quot;&gt;&lt;/a&gt;Modifications pr&#233;sentes&lt;/h2&gt;

&lt;p&gt;1. Ajout d&apos;un &quot;&#233;tage&quot; contenant le type de solver (stage) (RedshiftSolver / LineMeasSolve / ClassificationSolver ...)&lt;br/&gt;
2. Renommage de nombreux param&#232;tres&lt;/p&gt;

&lt;h3&gt;&lt;a name=&quot;python&quot;&gt;&lt;/a&gt;python&lt;/h3&gt;

&lt;p&gt;En pratique, dans le python les modifications (hors renommage brut) concernent l&apos;initialisation de l&apos;objet parameters:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;R&#233;cup&#233;ration du json &quot;brut&quot;. Celui-ci peut &#234;tre au format &quot;v1&quot; (ancien format) ou &quot;v2&quot; (nouveau) format. La disctinciton ancien  / nouveau se fait selon la pr&#233;sence d&apos;un nouveau param&#232;tre &quot;version&quot; dans le fichier de param&#232;tres. On est donc retro compatibles sur le fichier json d&apos;entr&#233;e (pour le moment).&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Application du json schema check sur ce fichier. 2 json schema cohabitent actuellement (v1 / v2). Modification du cmakelist pour copier tout le contenu de auxdir plut&#244;t que les fichiers 1 &#224; 1 dans ressources.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Conversion du json &quot;brut&quot; (raw) en &quot;treed&quot;. Que l&apos;on ait en entr&#233;e un parameters v1 ou v2 on se retrouve donc avec le m&#234;me &quot;treed&quot; format (voir ParametersConverter.py)&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Application des &quot;custom checks&quot; sur ce &quot;treed&quot; parameters. NB: Les messages d&apos;erreur affich&#233;s &#224; l&apos;utilisateur ont &#233;t&#233; renomm&#233;s =&amp;gt; pour les fichiers en param&#232;tres &quot;v1&quot; &#231;a peut &#234;tre le nouveau nom qui s&apos;affiche et non l&apos;ancien&lt;/li&gt;
&lt;/ul&gt;



&lt;h3&gt;&lt;a name=&quot;c&quot;&gt;&lt;/a&gt;c++&lt;/h3&gt;

&lt;p&gt;Les principales modifications dans le c++ conernent l&apos;ajout d&apos;un &#233;tage (&quot;scope&quot;) contenant le solver utilis&#233; (stage) (RedshiftSolver / ClassificationSolver etc)&lt;/p&gt;

&lt;p&gt;Le &quot;renommage brut&quot; des param&#232;tres a &#233;t&#233; fait &#224; l&apos;aide du script rename_params_code.py et du fichier rename_parameters_v1_to_treed.csv (utilis&#233; &#233;galement pour la conversion param&#232;tres v1 -&amp;gt; treed) + corrections manuelles.&lt;/p&gt;

&lt;h2&gt;&lt;a name=&quot;Modificationdessorties&quot;&gt;&lt;/a&gt;Modification des sorties&lt;/h2&gt;

&lt;p&gt;Les r&#233;sultats dont les m&#234;mes, SAUF:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;au niveau des noms des attributs:&lt;/li&gt;
&lt;/ul&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;&amp;lt;methodName&amp;gt;WarningFlags commen&#231;ait avant par une majuscule, maintenant par une minuscule. Ex: LineMeasSolveWarningFlags   &amp;gt;    lineMeasSolveWarningFlags&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
	&lt;li&gt;au niveau des valeurs des attributs:&lt;/li&gt;
&lt;/ul&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Pour tout ce qui est &quot;continuumName&quot;, &quot;firstPassContinuumName&quot; etc:&lt;/li&gt;
	&lt;li&gt;fromspectrum devient fromSpectrum&lt;/li&gt;
	&lt;li&gt;nocontinuum devient noContinuum&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Ces modifications se retrouvent dans le results.hdf5 et dans le redshift.csv&lt;/p&gt;</description>
                <environment></environment>
        <key id="23799">REDMINE1D-282</key>
            <summary>[RM-8219] [Parameters] Refacto object structure</summary>
                <type id="3" iconUrl="https://pfspipe.ipmu.jp/jira/secure/viewavatar?size=xsmall&amp;avatarId=10518&amp;avatarType=issuetype">Task</type>
                                            <priority id="10000" iconUrl="https://pfspipe.ipmu.jp/jira/images/icons/priorities/medium.svg">Normal</priority>
                        <status id="10002" iconUrl="https://pfspipe.ipmu.jp/jira/images/icons/statuses/generic.png" description="The issue is resolved, reviewed, and merged">Done</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10000">Done</resolution>
                                        <assignee username="r2j.migrate">Redmine-Jira Migtation</assignee>
                                    <reporter username="r2j.migrate">Redmine-Jira Migtation</reporter>
                        <labels>
                    </labels>
                <created>Thu, 17 Aug 2023 18:15:24 +0000</created>
                <updated>Tue, 6 Feb 2024 18:43:11 +0000</updated>
                            <resolved>Tue, 6 Feb 2024 18:43:11 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                <comments>
                            <comment id="37091" author="r2j.migrate" created="Tue, 6 Feb 2024 18:42:07 +0000"  >&lt;p&gt;Comment by Fanny Dufresne on 2023-10-11 09:24:47:&lt;br/&gt;
Je propose de s&#233;parer ce ticket en 2 &#233;tapes :&lt;br/&gt;
1. Refacto de objects : passage de &lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&amp;lt;object_type&amp;gt;: 
{...}
&lt;p&gt;&#224;:&lt;/p&gt;&lt;/li&gt;
	&lt;li&gt;solvers  : [
{name: &amp;lt;object_type&amp;gt;, ...}
&lt;p&gt;, ...]&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;2. Refacto des solvers : ajouter de la description des stages - besoin de quelques clarifications l&#224; dessus&lt;/p&gt;</comment>
                            <comment id="37092" author="r2j.migrate" created="Tue, 6 Feb 2024 18:42:15 +0000"  >&lt;p&gt;Comment by Didier Vibert on 2023-10-11 09:32:10:&lt;br/&gt;
Fanny Dufresne wrote in #note-6:&lt;br/&gt;
&amp;gt; Je propose de s&#233;parer ce ticket en 2 &#233;tapes :&lt;br/&gt;
&amp;gt; 1. Refacto de objects : passage de &lt;br/&gt;
&amp;gt; * &amp;lt;object_type&amp;gt;: &lt;/p&gt;
{...}
&lt;p&gt;&amp;gt; &#224;:&lt;br/&gt;
&amp;gt; * solvers  : [&lt;/p&gt;
{name: &amp;lt;object_type&amp;gt;, ...}
&lt;p&gt;, ...]&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; 2. Refacto des solvers : ajouter de la description des stages - besoin de quelques clarifications l&#224; dessus&lt;/p&gt;

&lt;p&gt;ok p moi&lt;/p&gt;</comment>
                            <comment id="37093" author="r2j.migrate" created="Tue, 6 Feb 2024 18:42:21 +0000"  >&lt;p&gt;Comment by Didier Vibert on 2023-10-13 14:09:16:&lt;br/&gt;
je mets ici un point du checker &#224; corriger (peut-&#234;tre une issue d&#233;di&#233;e, &#224; toi de voir @fdufresne)&lt;/p&gt;

&lt;p&gt;dans le json shema, @&quot;additionalProperties&quot;: false@ n&apos;est appliqu&#233; qu&apos;au niveau o&#249; il est mis, mais ne s&apos;applique pas aux niveaux en dessous: il faudrait donc le r&#233;p&#233;ter dans chaque section properties... &#224; moins qu&apos;il y ait un moyen de le d&#233;finir globalement pour toutes les properties  ?&lt;/p&gt;</comment>
                            <comment id="37094" author="r2j.migrate" created="Tue, 6 Feb 2024 18:42:26 +0000"  >&lt;p&gt;Comment by Didier Vibert on 2023-10-13 15:02:52:&lt;br/&gt;
encore un truc, avec la nouvelle structure d&#233;finie ici (&lt;a href=&quot;https://projets.lam.fr/projects/amazed/wiki/2023-07-24&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;https://projets.lam.fr/projects/amazed/wiki/2023-07-24&lt;/a&gt;), on rajoute un niveau (stages) &#224; l&apos;arbre des scopes.&lt;/p&gt;

&lt;p&gt;On peut soit supprimer ce niveau lors de la conversion du json en input vers le json stock&#233; dans la classe parameters et pass&#233; au C++, mais c&apos;est peut-&#234;tre dommage voire impossible pour l&apos;utilisation des param&#232;tres en python. &lt;/p&gt;

&lt;p&gt;une solution pour facilement prendre en compte ce niveau sans trop modifier le C++ consiste &#224; binder en python via swig la classe @CAutoscope@ et de s&apos;en servir dans le run @Context.run@ pour pousser des noms dans la chaine scope (et les d&#233;piler automatiquement &#224; la destruction de l&apos;objet). D&apos;ailleurs dans la classe CAutoscope, on pourrait utiliser directement le singleton CProcessFlowContext pour r&#233;cup&#233;rer la scopestack plut&#244;t que de le prendre comme argument...&lt;/p&gt;

&lt;p&gt;Autre solution d&#233;finir en python un contextmanager qui push le nom en entr&#233;e et le pop en sortie, et l&apos;utiliser avec des with statement dans le  @Context.run@.&lt;/p&gt;

&lt;p&gt;Ensuite, avec &#231;a on peut donc pousser des scope dans la scopstack du contexte, et &#231;a devrait donc &#234;tre l&apos;api python dans @Context.run@  qui pousse les scopes SpectrumModel et stage, =&amp;gt; il faut modifier le constructeur C++ des methodSolve pour qu&apos;ils ne poussent que le nom de leur m&#233;thode, et plus besoin de leur passer en argument l&apos;object type. Celui-ci pourra &#234;tre r&#233;cup&#233;r&#233; directement dans le scopeStore.&lt;/p&gt;

&lt;p&gt;=&amp;gt; attention aussi, ce niveau suppl&#233;mentaire dans l&apos;arbre, va se r&#233;percuter dans le resultStore. il faudra modifier certainement un peu le code python pour en tenir compte&lt;/p&gt;</comment>
                            <comment id="37095" author="r2j.migrate" created="Tue, 6 Feb 2024 18:42:34 +0000"  >&lt;p&gt;Comment by Fanny Dufresne on 2023-10-17 09:31:05:&lt;br/&gt;
Je suis tout &#224; fait partante pour rajouter les stages &#224; l&apos;arbre des scopes. Par contre je n&apos;ai pas compris grand chose &#224; l&apos;impl&#233;mentation propos&#233;e, je passerai en discuter&lt;/p&gt;</comment>
                            <comment id="37096" author="r2j.migrate" created="Tue, 6 Feb 2024 18:42:44 +0000"  >&lt;p&gt;Comment by Fanny Dufresne on 2023-10-18 09:27:23:&lt;br/&gt;
A priori les pattern properties marchent tr&#232;s bien, y compris au niveau de la doc. Je suis tr&#232;s partante pour les utilisera&lt;/p&gt;</comment>
                            <comment id="37097" author="r2j.migrate" created="Tue, 6 Feb 2024 18:42:53 +0000"  >&lt;p&gt;Comment by Pierre-yves Chabaud on 2024-01-23 10:14:06:&lt;br/&gt;
Merged @develop@ (@d7a0cecc@)&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                            <attachment id="17138" name="parameters.drawio" size="231533" author="r2j.migrate" created="Tue, 6 Feb 2024 18:43:03 +0000"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10500" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|zzsz9r:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    </customfields>
    </item>
</channel>
</rss>