From b3e74148bb4804b0aa418da496aaf29987c3d3ee Mon Sep 17 00:00:00 2001 From: Charles Marcoin Date: Fri, 10 Jan 2025 16:04:16 +0100 Subject: [PATCH 1/3] handle new predictions format --- README.md | 7 ++++ pkg/core/entreprise.go | 4 +- pkg/ops/imports/predictions.go | 38 +++++++++++------- ...etEtablissement-VAF-03889351603035.json.gz | Bin 5985 -> 6458 bytes ...etEtablissement-VaF-02176220713665.json.gz | Bin 3741 -> 4193 bytes ...etEtablissement-vAF-02052333785743.json.gz | Bin 3328 -> 3752 bytes ...etEtablissement-vaF-00785301892202.json.gz | Bin 2438 -> 2887 bytes 7 files changed, 32 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index d399593e..1eca64ac 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,13 @@ db_url = "postgres://postgres:toto@localhost:5432/datapilogs" par l'exécution des tests. C'est pratique dans le cas où de nouvelles features nécessitent de modifier les golden sources. __ATTENTION : __Ce cas de figure est rare. Il ne faut pas utiliser ce flag si l'on est pas sûr que le code est correct. + ### Configuration des tests sur macOS + Si vous développez en local sur macOS avec architecture arm64, il est possible que les tests ne fonctionnent pas. + Pour résoudre ce problème, il faut ajouter la variable d'environnement `GOARCH=amd64` avant de lancer les tests. Et il faut également s'assurer que la version de go utilisée est la version 1.21.13 sans quoi certaines librairies utilisées dans les tests ne fonctionneront pas. + ```bash + go1.21.13 env -w GOARCH=amd64 + ``` + ## Gestion des droits ### zone d'attribution diff --git a/pkg/core/entreprise.go b/pkg/core/entreprise.go index 8d7f9c99..991078cf 100644 --- a/pkg/core/entreprise.go +++ b/pkg/core/entreprise.go @@ -223,8 +223,8 @@ type EtablissementScore struct { Alert string `json:"alert"` MacroRadar map[string]float64 `json:"macroRadar,omitempty"` ExplSelection *EtablissementScoreExplSelection `json:"explSelection,omitempty"` - MacroExpl map[string]float64 `json:"-"` - MicroExpl map[string]float64 `json:"-"` + MacroExpl map[string]float64 `json:"macroExpl,omitempty"` + MicroExpl map[string]interface{} `json:"microExpl,omitempty"` AlertPreRedressements string `json:"alertPreRedressements"` Redressements []string `json:"redressements"` } diff --git a/pkg/ops/imports/predictions.go b/pkg/ops/imports/predictions.go index 1daa3f67..a9c5ff7a 100644 --- a/pkg/ops/imports/predictions.go +++ b/pkg/ops/imports/predictions.go @@ -45,10 +45,9 @@ type score struct { SelectConcerning [][]string `json:"select_concerning"` SelectReassuring [][]string `json:"select_reassuring"` } `json:"expl_selection"` - MacroExpl map[string]float64 `json:"macro_expl"` - MicroExpl map[string]float64 `json:"micro_expl"` - MacroRadar map[string]float64 `json:"macro_radar"` - AlertPreRedressements string `json:"alert_pre_redressements"` + MacroExpl map[string]float64 `json:"macro_expl"` + MicroExpl map[string]interface{} `json:"micro_expl"` + AlertPreRedressements string `json:"alert_pre_redressements"` } type scoreFile struct { @@ -63,9 +62,10 @@ type scoreFile struct { SelectConcerning [][]string `json:"selectConcerning"` SelectReassuring [][]string `json:"selectReassuring"` } `json:"explSelection"` - MacroRadar map[string]float64 `json:"macroRadar"` - Redressements []string `json:"redressements"` - AlertPreRedressements string `json:"alertPreRedressements"` + MacroExpl map[string]float64 `json:"macroExpl"` + MicroExpl map[string]interface{} `json:"microExpl"` + Redressements []string `json:"redressements"` + AlertPreRedressements string `json:"alertPreRedressements"` } func refreshVtablesHandler(c *gin.Context) { @@ -75,6 +75,7 @@ func refreshVtablesHandler(c *gin.Context) { func importPredictions(batchNumber string, algo string) error { filename := viper.GetString("source.listPath") + file, err := os.Open(filename) if err != nil { return errors.New("open file: " + err.Error()) @@ -108,7 +109,8 @@ func importPredictions(batchNumber string, algo string) error { algo text, expl_selection_concerning jsonb default '{}', expl_selection_reassuring jsonb default '{}', - macro_radar jsonb default '{}', + macro_expl jsonb default '{}', + micro_expl jsonb default '{}', alert_pre_redressements text, redressements text[] default '{}' );`) @@ -123,12 +125,12 @@ func importPredictions(batchNumber string, algo string) error { batch.Queue(`insert into score (siret, siren, libelle_liste, batch, algo, periode, score, diff, alert, expl_selection_concerning, - expl_selection_reassuring, macro_radar, + expl_selection_reassuring, macro_expl, micro_expl, redressements, alert_pre_redressements) select e.siret, t.siren, t.libelle_liste, batch, $1, $2, score, diff, alert, expl_selection_concerning, - expl_selection_reassuring, macro_radar, + expl_selection_reassuring, macro_expl, micro_expl, redressements, alert_pre_redressements from tmp_score t inner join etablissement e on e.siren = t.siren and e.siege`, algo, now) @@ -145,6 +147,7 @@ func importPredictions(batchNumber string, algo string) error { if err != nil { return errors.New("commit: " + err.Error()) } + return nil } @@ -192,8 +195,8 @@ func sqlDeletePredictions(ctx context.Context, tx pgx.Tx, batchNumber string, al func queueScoreToBatch(s scoreFile, batchNumber string, batch *pgx.Batch) { sqlScore := `insert into tmp_score (siren, libelle_liste, batch, algo, score, diff, alert, - expl_selection_concerning, expl_selection_reassuring, macro_radar, alert_pre_redressements, redressements) - values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12)` + expl_selection_concerning, expl_selection_reassuring, macro_expl, micro_expl, alert_pre_redressements, redressements) + values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13)` if s.ExplSelection.SelectConcerning == nil { s.ExplSelection.SelectConcerning = make([][]string, 0) @@ -202,9 +205,13 @@ func queueScoreToBatch(s scoreFile, batchNumber string, batch *pgx.Batch) { s.ExplSelection.SelectReassuring = make([][]string, 0) } - if s.MacroRadar == nil { - s.MacroRadar = make(map[string]float64) + if s.MacroExpl == nil { + s.MacroExpl = make(map[string]float64) } + if s.MicroExpl == nil { + s.MicroExpl = make(map[string]interface{}) + } + if s.Redressements == nil { s.Redressements = make([]string, 0) } @@ -219,7 +226,8 @@ func queueScoreToBatch(s scoreFile, batchNumber string, batch *pgx.Batch) { s.Alert, s.ExplSelection.SelectConcerning, s.ExplSelection.SelectReassuring, - s.MacroRadar, + s.MacroExpl, + s.MicroExpl, s.AlertPreRedressements, s.Redressements, ) diff --git a/test/data/getEtablissement-VAF-03889351603035.json.gz b/test/data/getEtablissement-VAF-03889351603035.json.gz index bd104a333d076c3358ee4aa7ab6da22691b1852e..b9c1f599b449a14d6d4bacaf2f1cb8a3a6bd7862 100644 GIT binary patch literal 6458 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 U009600RRC1|LEa>1P8_e0G!dx*#H0l literal 5985 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 P00960@AX7eQNaNKi@&UG diff --git a/test/data/getEtablissement-VaF-02176220713665.json.gz b/test/data/getEtablissement-VaF-02176220713665.json.gz index b90e899c9adfbc852b2fef17248cb3650f3f8ffd..3dac349bb36ec2f166b9fe90812a0d6f0ac222a8 100644 GIT binary patch literal 4193 zcmV-n5T5TJiwFP!00000|Lk4ca^p6WzRy#rbd#Hi)i?v*E7_L)JMk%!JxM0}mx`7k z54I#y0ZDJNTk}5a`@Df)Y>U(hlqgE_$P?Scsj0G!6T81|d}tg9{_l6ST0JsW2lazm z9WW9cV-WQpX6bP*9TCpiBvS{m)njWST|cO$&8%;zR;zc?oJGl6t!{l2g+V9m8Go2& z)US?@Z+`u)-8ucab$xzvaeH-ibTX};HXZwM691T3(>H%4S%prs^Fu8Pd*-WOZNZW}xYwO^AosG{NTOEX>>`BXsxG0en zCDMFi5RO(7ZX^F*=Tm!D`>AAUDpH&^05t&J032lhKRWgOL28-L+25b17V8^7GuZFb zQZvKVYIWaQ9qaC$8TvtYR<4c#;RZqt0tL@V9p=vz-JYJ;NGmw`J->cXlN<}=Bw8IM z!`P3z`p@yOeo#XUyV-X-(1WziFzJr9jnifu6okhW0ANZH1&&!xik|N4AnxATB<}XJ zc0&`-kisD3wD9L2cF>$O5N?nnbk}H3mNmz~P^s#a1KyxIRoFwIlw^bfJdcL3NWEW?4UQ{N<2qz)Kw^Uo-QQuo;jQ$$|;#Cp8fpyba>aXe>XHyq(?f4 zqfRm!`S!2k;eKsYH_y!ni69X|Zjni-*NwJ}^-}1<(I}Z%;ltTY`|A9>)p7HO=1vcX zx|_yc4<g%y@;|!!Mj=}{}9Ouh4AM{@~4Dzkm zz-ZgmgMseFX0R&Ba*1v(yjIxttGP<)V@)bS{h&7Rhmqdod=I`gnQL^jZ15OCoKZ}q z0Fa!!bmjJmU3$ZDac9`z_uKffTRd%PY{OodwpBMl_bv=fxS)Z^==-8)-rF!4XRh~C>+#}Gt^O8QxiT~wDuo0`}8>WZRYZ|{`XEZH65o98-;P$`>VIq?h1ubM$pF+ z3L|JUh5gGKaoDTpuqtGF`y?jzI1B7F&#x{U$F0V7 z`|3mM^61@f8}cnqK4ja5QRDhA`}7z*J?d(8tKzka*It;{1hD)v&D%QISvDDzu*GCB zWx|SQDxP^Mo~e#?X1NM+iuXn{*H`VEG}& zFI%0)#aX*~*lOPH!jk=`$JjT+S4fn&G(g;fD37e(yp+gz#gP?9Rvh`tIFfS7_IM<) z)xNnsd-t`Og!h3gb@|QgFq17V z>poq&U9O1tpyIvP#e3g$NLVrBWOJEP^b%`|h4&D>x9Kw9;@I|~A2r&a%%<-c;Ogkj zD`Us^On%jTc>2Z)h&}EhU$vW;r#pp%Z)b+O3=SJ{5*7zQoYn80%He*lc`Rq}unbxUb^A z9k?(1Is3r;9EKSaPI~kLo!isq&Bv2pKK}f#`6KF94@}=Jb8+52ZMCm%+%h>f?3Th^ z_xn~ykz4AbdGXWX`A=8BEv^Giv5CSU(A{yEbVqLCMVY`nXg}%pb*zJ#3ojb*ZQLE0 zzz=#xXXt~+C1n2uVwf>Of5_o5FvDrd`uR!w<4-r2hbJGFfp7|4{`lk1N1f(r=a;o& zJEbosHc2g#jYwJ7iS@}*%egXe)q^KP)xu~q_|hhss&p=W^L~Y%z z6`795Yc70PChnzM9_l@-XC#qQ6iO)yRw*ib#&sCQ{&3Q~AhUtBZuR}NfomH+=%A+? z&EZ%_jiaZ(V_oZi-~69sw#!o=`mu?VeySz%1XGAmU=&HB_^d=2+%Jj%#Q=&5EGbu# zPARb-WPNq+?b89M`GvEKSv%7%`Q<}v2Ak8`X+Ed9cD6B-A+R=vU$?h4|uuLjI}jke=%ZDJH<3Psvp#TpEa2crND~(be_vgb46*c zEX`GAxd=*gQE6^r&&zUg+H7fVd0kSPOG|Utz>7@KIuwKHEP5))4d0Hhc}c)t26xdP!S4vL6HBEy1vxg-P( zbLoLw7b_vbBg`$wxj@7dxpD+c?xo`DPtEi}C$fJTY?mhysc|fZamdwM-l?+M7 zs7Ga9UPcw=o}!3?(-`6sN#x}vp%el2)KaS;02ZLq3??PhdO2ICL+-U7+c22SA!p{E zPeWer7s4g=q*7`LS;`S-9%0CZkufDaPFD)=O{x`CI{q-7M15^k5EiLhDJ5X36L5-= z$B1$r0xL%8QV)6=NJe20`$2r+|5rE})1$A8%h&iNr?4~SpQ(u!hrWqe^t6SA=H5F0 z4H4=P$!Z-e7hJYr&w0O9iyHGaS2eG^m_0ZJk@M?Z4C#pL5XT~MK50p(0TUeN0gpdE z)+0aYFM7f}oHhMLRvk-8K@yO#xZ!vXV{Sr?6kaJ%Kd8x-#AXtQ(>i31UcK+fx)b|x zGI`5$78;16;jXXm++w7Gcu}!|2^NKTgFsQCPqAM=sA0}2@g!yW{#hSoxv=;NcsOOGhbFAEA3}v~~b;n|J zF(M@;lCsU_B2*OFOOY~zAxz6GhEM~u%@#`|B)rLD>sG6#7Gq2h44Wt?1-L(Zmd$65_2SKV(%p|Mob6O2igx7%D|gplOQgM3)$3QXA=f$0kf%%!I| zrc@#f2#Ez1J0cUzs0Vl@kgn&hu9Rz}X1hsU*vD63mQr|tIi@TXy1<)LhnIjo-~h|U zaK&CD_3|udKT<2=QN*Z3j0++c1F7pCN+{-0v=rgHG84Q;W?Urmykkba&^mK{M~ib4 zO`5szO)Z^lEmXMk)v<5;QFrW{*+L+A6c`g63*eA_lffw;`9Z9gmsqLdL@CAuRZI~^*|hxU zymGC{{={b8fJvk{!H5ebBqF>_IRIdYODZU0gd;|$vPjUHSW4&%K870F>1C0zS1XQFAV1+nMC%|qa5BJ@^9>#um0`l0;?ZZtP zAXq9Us06NXIze)6Gu`?ENaswFAW)QZ#i__2-MY8BYeu86+Y9YDv{SREKodn7P3K|~ zQMCx7JL?!`EUe=NFvb;Eh+?5I7P%XrhUSmN^i!v|x}Qu|J}0#l zlLDj!fv}R4(Pz8yI5hpJdpEGln|+hVfCR|^abQ3YbKPic!+tXBlRbZIVt?2*!Gn%s zGp&vZ6;g4;ASED@+t|$JsT1d!Jxo$2fl9@JQ6y-ddV<)$GsE;*x)%oF$o!EwcvHfV zBupa81?KB&28*X5B{|~)5rMEwJ$3hd)J61Pjme*gEHp?5xL zojg50Sfg#p$c4N9F!tSVP|ZiMk#D24V)p^ojbbG$z%MY0eO0`m2rmHKMXN}qKfC^e z?#;%I^>D3Q=6#EB9X~zx^ytp&?9@O3UPvL_CC|pIZ0q7J;&mB5Y=R4Q3qr{q;99po z@fP8_>cwF>TF_Nrg4Wu-p0|irM~~wT-UaFl@mjZY_ImM}Pw@)AEKq(tsNf`0!5O5& r(>TQ^dkW9=6dc*flCDo%)1>b{|33f#0RR6100960!Z_hbz^ecNt-3pf literal 3741 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 S|Nj910RR6?e!c37O#lECZ(1Y( literal 3328 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 K?xwxiNB{su(39!_ diff --git a/test/data/getEtablissement-vaF-00785301892202.json.gz b/test/data/getEtablissement-vaF-00785301892202.json.gz index 03200ca7b5bf22b4a345ca68a59834d926f1bb3d..dda655a00c96b0e2e3634bcfc6e612f3e0b6d13f 100644 GIT binary patch literal 2887 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 literal 2438 zcmV;133>J(iwFP!00000|J+&IZrnH$eV?xo^s+Bwf%l8wocOZw*pBTU2b;M-pu5=# z7iy`OVtZ$?$p37Te&@s?)I5H5k6)vuvXPoP zQ{-h-n#D3RbMyFB51P1wm62xtv{)>(T`y;F4(iT%@|#Pm^I}nbX?qa$4dT8*(jCl; z#m>N8sXpoM=+tWESLR2dB3{DeS0Rq zr+|wD1OE?7z%daFKOZ;7~A8$OOT5L!1h8ec272e@Cb5-pK>@RiNyX~V~BAeq#%1lIs^PAxa9%hd*PNl z`x|mFw!b05;0fS_!i4($%_v8R(LMZ)0Bg>*>gTVUOIPe) zR&d5 z7f8dEU$OCvj}N1{%1ZrIoIfaQswhk=F-#C7kQ0UkqMXxC1`uw)eKy{4|Gs--i#=n@ zgxcQF(iYRgn~F`I-WR#)1eVIQtvq?H%4qhN>d#KtJebnl_flu_pNhOsFfX#K_@|!j zdajn7gihbqF}8F^n`LdAE{*=wGv|{nR?8}=PtI>IJ{h#LKEgp=gDb9<05)N%S@o2U% zxhb7h>pc}8#l0tE!$VV`R=d8X=k(}ga&>k7!{tR=I9WY6vq0zlo13$n@KJZwJnQ0*XgoYrHerMGN|dygI23_rk&0=Ankc~KWx}rpC!@l-AQzJ^Zw%G<1hJ}>xhtF zatr|CQFymh=#B?Y@9kqfII^ExU03$6i_)oVZ5kk6i>&^%G4OsmHBRNGK0e}1IpbEd z>R?YOgPb5P5S55?OlqAX|I{i0%(-`<&lNyjOxBfs?SairbhOtUTF=_-vb`?P3Vty0 zrYkubyi@Cst{X1FBA3O=MwyDr&JuR#;r+l}k!R}X#X{%dy04B-Z}kJ(j^L%XrkJ&N z?IuJw!)1_jZSFlf(41LI*{GC{O2w#Dj!7XHl@2wO)>1SmMPRrYwU&<0#iLR(Djnw8 zONV*((qW#xbeLx^9p)KG<3cp5YG9o$GX3I8)XKWF6^(A}M&% z*6bKa0Y!q_=O^L=t?A0VI;p2BVCi zgtB%;5COn(xJF-jF`4i%MMh8}0u#VR(15^#0!X@wkPr?9Ndh&`8?6UG4`SduEpIxH-T+^O7Ms=pVu+STQs zmkQ899+cxXUW6K5+3ZioMf+=0Nz%4`&1m~;lU$4Tv4hHH6t!<0h_tq3)A>TU*{gzs z_UvprZA3P0HHw;Pq%DYP``&=s&XR2L1pS0M0gpOILzC&K<*{CVPQzHJTFHFQ`s>D%m9Wo`wV>aNJF8_Zp;%xEA;d_u&wTZI ztKO{SC=n3QE=hsIX~(03PTE3IP750(*a3(OQ?AWiDiiq}rbTeC-1Kwx1qf(Rk7u7M z)H6L-tITz3S)a#m)&z$W$8yu&0Ev{5eNGSB#hG3X83yYdD4_yPc>aF;3nGgS|IT8Gy# zT|))RYozP=@#|DC?yatx(>;7a2~mn)%-2}a{TlhYDjuGq3#L8i@g8&yRo1VOuJ=<{ zjI#w&`7LY>b}3#XTNAx>Ped1x-^kZc&*wGrbyPh5*Nt!`QuIw+4Rz06BUk4ulaElv zzA>zZ%8=Jc)jHW8V(Oa?_rV6`9y}!gP+x;cE*Jn91uB0ub4L%>WFy>>KbpJWnW?74 z>v<+0e<1IBi|=`b?|qQ&f86eU*6w+=u7 Date: Thu, 16 Jan 2025 10:28:16 +0100 Subject: [PATCH 2/3] add sireneUL logs --- pkg/ops/imports/imports.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/pkg/ops/imports/imports.go b/pkg/ops/imports/imports.go index 1cd05e21..890ebaef 100644 --- a/pkg/ops/imports/imports.go +++ b/pkg/ops/imports/imports.go @@ -515,25 +515,29 @@ func importUnitesLegales(ctx context.Context) error { if viper.GetString("source.sireneULPath") == "" || viper.GetString("source.geoSirenePath") == "" { return utils.NewJSONerror(http.StatusConflict, "not supported, missing parameters in server configuration") } - slog.Info("Truncate entreprise table", slog.String("status", "start")) - + slog.Info("Truncate entreprise table and drop index", slog.String("status", "start")) err := TruncateEntreprise(ctx) if err != nil { return err } - slog.Info("Truncate entreprise table", slog.String("status", "end")) err = DropEntrepriseIndex(ctx) if err != nil { return err } + slog.Info("Truncate entreprise table and drop index", slog.String("status", "end")) + slog.Info("Insert sireneUL", slog.String("status", "start")) err = InsertSireneUL(ctx) if err != nil { return err } + slog.Info("Insert sireneUL", slog.String("status", "end")) - return CreateEntrepriseIndex(ctx) + slog.Info("Create entreprise index", slog.String("status", "start")) + err = CreateEntrepriseIndex(ctx) + slog.Info("Create entreprise index", slog.String("status", "end")) + return err } func importStockEtablissement(ctx context.Context) error { From 5e07886a5517b178fccd456297586b955ec2d2f5 Mon Sep 17 00:00:00 2001 From: Josquin Cornec Date: Thu, 16 Jan 2025 15:56:51 +0100 Subject: [PATCH 3/3] add prediction logs --- pkg/ops/imports/predictions.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkg/ops/imports/predictions.go b/pkg/ops/imports/predictions.go index a9c5ff7a..179d9e85 100644 --- a/pkg/ops/imports/predictions.go +++ b/pkg/ops/imports/predictions.go @@ -118,10 +118,13 @@ func importPredictions(batchNumber string, algo string) error { return errors.New("create tmp_score: " + err.Error()) } + slog.Info("Inserting into tmp_score", slog.String("status", "start")) batch := &pgx.Batch{} for _, s := range scores { queueScoreToBatch(s, batchNumber, batch) } + slog.Info("Inserting into tmp_score", slog.String("status", "end")) + slog.Info("Inserting into score", slog.String("status", "start")) batch.Queue(`insert into score (siret, siren, libelle_liste, batch, algo, periode, score, diff, alert, expl_selection_concerning, @@ -134,9 +137,12 @@ func importPredictions(batchNumber string, algo string) error { redressements, alert_pre_redressements from tmp_score t inner join etablissement e on e.siren = t.siren and e.siege`, algo, now) + slog.Info("Inserting into score", slog.String("status", "end")) + slog.Info("Inserting into liste", slog.String("status", "start")) batch.Queue(`insert into liste (libelle, batch, algo) values ($1, $2, $3)`, toLibelle(batchNumber), batchNumber, algo) batch.Queue("drop table if exists tmp_score;") + slog.Info("Inserting into liste", slog.String("status", "end")) results := tx.SendBatch(context.Background(), batch) err = results.Close()