From 041dbe47621f1ca9d70929e469f7dcaaba87f5e6 Mon Sep 17 00:00:00 2001 From: Nicolas Perriault Date: Thu, 11 Jul 2024 14:52:54 +0200 Subject: [PATCH 1/3] fix(textile): distribution step had no inland road transports added. --- src/Data/Textile/Step.elm | 11 +- tests/Data/Textile/LifeCycleTest.elm | 4 +- tests/Data/Textile/SimulatorTest.elm | 2 +- tests/e2e-textile.json | 672 +++++++++++++-------------- 4 files changed, 346 insertions(+), 343 deletions(-) diff --git a/src/Data/Textile/Step.elm b/src/Data/Textile/Step.elm index cc58a0bb5..a386fe5d3 100644 --- a/src/Data/Textile/Step.elm +++ b/src/Data/Textile/Step.elm @@ -38,6 +38,7 @@ import Data.Transport as Transport exposing (Transport) import Data.Unit as Unit import Energy exposing (Energy) import Json.Encode as Encode +import Length import Mass exposing (Mass) import Quantity import Static.Db exposing (Db) @@ -221,10 +222,12 @@ computeTransportImpacts impacts { airTransport, seaTransport } roadProcess mass computeTransportSummary : Step -> Transport -> Transport computeTransportSummary step transport = let - ( noTransports, defaultInland ) = - ( Transport.default step.transport.impacts - , Transport.default step.transport.impacts - ) + noTransports = + Transport.default step.transport.impacts + + defaultInland = + Transport.default step.transport.impacts + |> Transport.add { noTransports | road = Length.kilometers 500 } in case step.label of Label.Distribution -> diff --git a/tests/Data/Textile/LifeCycleTest.elm b/tests/Data/Textile/LifeCycleTest.elm index c1b588124..1f9d74521 100644 --- a/tests/Data/Textile/LifeCycleTest.elm +++ b/tests/Data/Textile/LifeCycleTest.elm @@ -31,7 +31,7 @@ suite = |> Result.andThen (lifeCycleToTransports db tShirtCotonFrance) |> Result.map LifeCycle.computeTotalTransportImpacts |> Result.map (\{ road, sea } -> ( Length.inKilometers road, Length.inKilometers sea )) - |> Expect.equal (Ok ( 2000, 21549 )) + |> Expect.equal (Ok ( 2500, 21549 )) |> asTest "should compute default distances" , let tShirtCotonEnnoblementIndia = @@ -46,7 +46,7 @@ suite = |> Result.andThen (lifeCycleToTransports db tShirtCotonEnnoblementIndia) |> Result.map LifeCycle.computeTotalTransportImpacts |> Result.map (\{ road, sea } -> ( Length.inKilometers road, Length.inKilometers sea )) - |> Expect.equal (Ok ( 1000, 45471 )) + |> Expect.equal (Ok ( 1500, 45471 )) |> asTest "should compute custom distances" ] ] diff --git a/tests/Data/Textile/SimulatorTest.elm b/tests/Data/Textile/SimulatorTest.elm index 88c1eab74..7c14b93bf 100644 --- a/tests/Data/Textile/SimulatorTest.elm +++ b/tests/Data/Textile/SimulatorTest.elm @@ -47,7 +47,7 @@ suite = [ { tShirtCotonFrance | countrySpinning = Nothing } - |> expectImpact db ecs 1469.1531378179673 + |> expectImpact db ecs 1471.1431913678628 |> asTest "should compute a simulation ecs impact" , describe "disabled steps" [ { tShirtCotonFrance | disabledSteps = [ Label.Ennobling ] } diff --git a/tests/e2e-textile.json b/tests/e2e-textile.json index 72612dcb2..8f4a7e902 100644 --- a/tests/e2e-textile.json +++ b/tests/e2e-textile.json @@ -10,27 +10,27 @@ "countryMaking=FR" ], "impacts": { - "acd": 0.0414446685749946, - "cch": 6.048874393344061, - "etf": 133.45735497327883, - "etf-c": 281.03257869705175, - "fru": 108.41610613408756, - "fwe": 0.0015967563755970645, - "htc": 9.202232406694513e-10, - "htc-c": 1.5167242473017484e-9, - "htn": 2.2684998010224684e-8, - "htn-c": 3.378964481489889e-8, - "ior": 13.313345405119325, - "ldu": 105.51839908615344, - "mru": 0.000052078700426912154, - "ozd": 0.000030370478290087493, - "pco": 0.016994499640779308, - "pma": 3.6240125804991626e-7, - "swe": 0.02536100942287826, - "tre": 0.12574953428356123, - "wtu": 13.97456474348671, - "ecs": 1469.1531378179673, - "pef": 939.757440532827 + "acd": 0.041534870067531905, + "cch": 6.067777205881373, + "etf": 133.65645343559225, + "etf-c": 281.29264799632034, + "fru": 108.68581289752039, + "fwe": 0.0015983421964925867, + "htc": 9.306515988784067e-10, + "htc-c": 1.5283072906748826e-9, + "htn": 2.2901938308732143e-8, + "htn-c": 3.3853886876092924e-8, + "ior": 13.31360395097679, + "ldu": 105.73125765928776, + "mru": 0.000052137692964225585, + "ozd": 0.000030370813215460624, + "pco": 0.017119208596003188, + "pma": 3.6426618342305054e-7, + "swe": 0.025395516885564826, + "tre": 0.1261150318477403, + "wtu": 13.977094827606113, + "ecs": 1471.1431913678628, + "pef": 941.5376554453319 } }, { @@ -45,27 +45,27 @@ "countryMaking=FR" ], "impacts": { - "acd": 0.03999283350554488, - "cch": 5.591496973560117, - "etf": 132.02731216356787, - "etf-c": 279.6313964116634, - "fru": 105.51519866597374, - "fwe": 0.0021399640093722767, - "htc": 9.132619864558306e-10, - "htc-c": 1.493391231958824e-9, - "htn": 2.2556947321763515e-8, - "htn-c": 3.3337697852860114e-8, - "ior": 13.299228897821145, - "ldu": 103.94093137151837, - "mru": 0.00005200935295978153, - "ozd": 0.000030381656157113567, - "pco": 0.015366462287409441, - "pma": 2.9198939677060944e-7, - "swe": 0.024843458237795588, - "tre": 0.11892004198055697, - "wtu": 14.11834524471008, - "ecs": 1445.545062184085, - "pef": 916.5851663113473 + "acd": 0.0400830349980822, + "cch": 5.610399786097431, + "etf": 132.2264106258813, + "etf-c": 279.891465710932, + "fru": 105.78490542940658, + "fwe": 0.002141549830267799, + "htc": 9.236903446647859e-10, + "htc-c": 1.504974275331958e-9, + "htn": 2.277388762027098e-8, + "htn-c": 3.340193991405414e-8, + "ior": 13.299487443678606, + "ldu": 104.1537899446527, + "mru": 0.00005206834549709496, + "ozd": 0.0000303819910824867, + "pco": 0.015491171242633321, + "pma": 2.938543221437438e-7, + "swe": 0.02487796570048215, + "tre": 0.11928553954473607, + "wtu": 14.120875328829483, + "ecs": 1447.5351157339805, + "pef": 918.3653812238522 } }, { @@ -80,27 +80,27 @@ "countryMaking=FR" ], "impacts": { - "acd": 0.05726100108538642, - "cch": 11.430678438438557, - "etf": 15.277459947025957, - "etf-c": 34.84265300567465, - "fru": 206.01535100674178, - "fwe": 0.0011795776587754671, - "htc": 1.154092004935306e-9, - "htc-c": 9.46355705568073e-10, - "htn": 1.6726140174842664e-8, - "htn-c": 8.465101714748085e-9, - "ior": 13.251490281828953, - "ldu": 21.306122733566685, - "mru": 0.00007180961970512356, - "ozd": 0.000051345605385998686, - "pco": 0.03355570801711961, - "pma": 5.336713519599066e-7, - "swe": 0.011700116042033405, - "tre": 0.07875433537173472, - "wtu": 1.164646515699395, - "ecs": 1617.374306804295, - "pef": 1143.2791117460363 + "acd": 0.057405122707008045, + "cch": 11.460880865465585, + "etf": 15.595574342296226, + "etf-c": 35.2581850339179, + "fru": 206.44628152701202, + "fwe": 0.0011821114425592508, + "htc": 1.1707541670974682e-9, + "htc-c": 9.648627939464513e-10, + "htn": 1.7072761796464283e-8, + "htn-c": 8.567746025558896e-9, + "ior": 13.251903379741115, + "ldu": 21.64622267951263, + "mru": 0.00007190387646188032, + "ozd": 0.00005134614052113382, + "pco": 0.033754964773876364, + "pma": 5.366510816896363e-7, + "swe": 0.011755251177168538, + "tre": 0.07933831796632933, + "wtu": 1.1686890189426382, + "ecs": 1620.5539631121571, + "pef": 1146.1234932835043 } }, { @@ -116,27 +116,27 @@ "countryMaking=FR" ], "impacts": { - "acd": 0.03136758199562056, - "cch": 5.73617958103508, - "etf": 73.59235960432358, - "etf-c": 150.75526890312173, - "fru": 115.00637146175967, - "fwe": 0.0012020066613822507, - "htc": 9.285876200879071e-10, - "htc-c": 1.4260328317647246e-9, - "htn": 1.6450048443954115e-8, - "htn-c": 1.8946423613892236e-8, - "ior": 13.307040510287745, - "ldu": 60.43084658264571, - "mru": 0.000051638439899460184, - "ozd": 0.00003306021378271851, - "pco": 0.014406513880314486, - "pma": 2.9841384996321926e-7, - "swe": 0.015247390003884994, - "tre": 0.0802112463977537, - "wtu": 6.938926153229093, - "ecs": 1264.253322580562, - "pef": 808.6650530625744 + "acd": 0.031457783488157864, + "cch": 5.755082393572394, + "etf": 73.79145806663702, + "etf-c": 151.0153382023904, + "fru": 115.2760782251925, + "fwe": 0.001203592482277773, + "htc": 9.390159782968624e-10, + "htc-c": 1.4376158751378587e-9, + "htn": 1.6666988742461577e-8, + "htn-c": 1.9010665675086265e-8, + "ior": 13.307299056145208, + "ldu": 60.64370515578004, + "mru": 0.000051697432436773615, + "ozd": 0.000033060548708091644, + "pco": 0.014531222835538364, + "pma": 3.002787753363536e-7, + "swe": 0.01528189746657156, + "tre": 0.0805767439619328, + "wtu": 6.941456237348495, + "ecs": 1266.2433761304576, + "pef": 810.4452679750791 } }, { @@ -151,27 +151,27 @@ "disabledSteps=ennobling" ], "impacts": { - "acd": 0.03285061747828521, - "cch": 3.467462533557159, - "etf": 131.19165884805642, - "etf-c": 251.917120164505, - "fru": 83.19386944418443, - "fwe": 0.0012812928247882068, - "htc": 6.877700085487217e-10, - "htc-c": 1.2672109600073182e-9, - "htn": 1.772755177044944e-8, - "htn-c": 3.327076914892387e-8, - "ior": 12.844016464249076, - "ldu": 100.36714158360871, - "mru": 0.000015799120970367426, - "ozd": 1.771166191843897e-7, - "pco": 0.013530668136250815, - "pma": 2.8119502121058356e-7, - "swe": 0.02256153447477876, - "tre": 0.11731038150597263, - "wtu": 13.893385126239512, - "ecs": 1211.9684170584155, - "pef": 711.1273507916327 + "acd": 0.032940818970822516, + "cch": 3.4863653460944724, + "etf": 131.39075731036985, + "etf-c": 252.17718946377363, + "fru": 83.46357620761727, + "fwe": 0.0012828786456837292, + "htc": 6.98198366757677e-10, + "htc-c": 1.2787940033804528e-9, + "htn": 1.7944492068956902e-8, + "htn-c": 3.333501121011789e-8, + "ior": 12.84427501010654, + "ldu": 100.58000015674304, + "mru": 0.000015858113507680858, + "ozd": 1.7745154455752405e-7, + "pco": 0.013655377091474694, + "pma": 2.830599465837179e-7, + "swe": 0.02259604193746533, + "tre": 0.11767587907015173, + "wtu": 13.895915210358915, + "ecs": 1213.958470608311, + "pef": 712.9075657041376 } }, { @@ -188,27 +188,27 @@ "airTransportRatio=1" ], "impacts": { - "acd": 0.17722447021175042, - "cch": 29.220539830763823, - "etf": 398.0046362304084, - "etf-c": 927.7108872905228, - "fru": 305.7735885010402, - "fwe": 0.005856123911524636, - "htc": 4.293770543739464e-9, - "htc-c": 6.2789577774944456e-9, - "htn": 1.2409315049478433e-7, - "htn-c": 9.004875552369704e-8, - "ior": 16.32624483164245, - "ldu": 274.3683670172822, - "mru": 0.00014282364800809327, - "ozd": 0.00008057387845328036, - "pco": 0.09732511847581189, - "pma": 0.000001964238741109258, - "swe": 0.07968554841428832, - "tre": 0.5001375997947459, - "wtu": 35.02468574572376, - "ecs": 5024.788688895064, - "pef": 3043.3311917520828 + "acd": 0.17744978711315887, + "cch": 29.26775770963706, + "etf": 398.5019700032957, + "etf-c": 928.3605218698889, + "fru": 306.4472967792092, + "fwe": 0.00586008517913027, + "htc": 4.319819839514111e-9, + "htc-c": 6.307891394536699e-9, + "htn": 1.2463505190323504e-7, + "htn-c": 9.020922761524635e-8, + "ior": 16.326890660772733, + "ldu": 274.90007256657793, + "mru": 0.00014297100716302284, + "ozd": 0.00008057471507299866, + "pco": 0.09763663256031894, + "pma": 0.0000019688971918134832, + "swe": 0.07977174559738691, + "tre": 0.5010505866679853, + "wtu": 35.03100571558291, + "ecs": 5029.759700869327, + "pef": 3047.778041761364 } }, { @@ -224,27 +224,27 @@ "fading=true" ], "impacts": { - "acd": 0.19765495767367622, - "cch": 27.714300828756784, - "etf": 391.55199166555997, - "etf-c": 984.5710735849585, - "fru": 283.18635414809796, - "fwe": 0.013010486351602946, - "htc": 4.166350461842815e-9, - "htc-c": 6.058019344719065e-9, - "htn": 1.0808654876338244e-7, - "htn-c": 9.655709496179501e-8, - "ior": 16.250956157882147, - "ldu": 314.33702358990746, - "mru": 0.00014643102143022628, - "ozd": 0.00008275031953862176, - "pco": 0.08218189933890796, - "pma": 0.0000019579238422117716, - "swe": 0.0865174249238061, - "tre": 0.4693534112163854, - "wtu": 40.98087480750406, - "ecs": 4965.610570161154, - "pef": 3154.4908547939185 + "acd": 0.19788027457508467, + "cch": 27.761518707630024, + "etf": 392.04932543844734, + "etf-c": 985.2207081643247, + "fru": 283.86006242626695, + "fwe": 0.013014447619208582, + "htc": 4.192399757617463e-9, + "htc-c": 6.086952961761317e-9, + "htn": 1.0862845017183316e-7, + "htn-c": 9.671756705334432e-8, + "ior": 16.251601987012425, + "ldu": 314.86872913920325, + "mru": 0.00014657838058515583, + "ozd": 0.00008275115615834008, + "pco": 0.08249341342341501, + "pma": 0.000001962582292915997, + "swe": 0.08660362210690468, + "tre": 0.4702663980896249, + "wtu": 40.98719477736321, + "ecs": 4970.581582135417, + "pef": 3158.9377048031997 } }, { @@ -260,27 +260,27 @@ "fading=false" ], "impacts": { - "acd": 0.16919839778952084, - "cch": 23.777660767811263, - "etf": 382.96933902601796, - "etf-c": 975.3936690299714, - "fru": 245.73287357468237, - "fwe": 0.011027564651083278, - "htc": 3.2119930442141052e-9, - "htc-c": 4.9521349275326085e-9, - "htn": 8.562723921230658e-8, - "htn-c": 9.505431109586212e-8, - "ior": 16.22469041121089, - "ldu": 295.0145579973466, - "mru": 0.00014397650264865014, - "ozd": 0.00008270664080826244, - "pco": 0.07011875405995191, - "pma": 0.0000015299021421205005, - "swe": 0.07993753303348655, - "tre": 0.43009685281144183, - "wtu": 40.61586633690124, - "ecs": 4662.742937425237, - "pef": 2818.6043491275173 + "acd": 0.1694237146909293, + "cch": 23.824878646684503, + "etf": 383.4666727989053, + "etf-c": 976.0433036093375, + "fru": 246.4065818528514, + "fwe": 0.01103152591868891, + "htc": 3.238042339988753e-9, + "htc-c": 4.981068544574863e-9, + "htn": 8.616914062075728e-8, + "htn-c": 9.521478318741142e-8, + "ior": 16.22533624034117, + "ldu": 295.54626354664236, + "mru": 0.00014412386180357971, + "ozd": 0.00008270747742798075, + "pco": 0.07043026814445895, + "pma": 0.0000015345605928247258, + "swe": 0.08002373021658514, + "tre": 0.4310098396846813, + "wtu": 40.62218630676039, + "ecs": 4667.7139493995, + "pef": 2823.0511991367985 } }, { @@ -296,27 +296,27 @@ "reparability=1.15" ], "impacts": { - "acd": 0.0414446685749946, - "cch": 6.048874393344061, - "etf": 133.45735497327883, - "etf-c": 281.03257869705175, - "fru": 108.41610613408756, - "fwe": 0.0015967563755970645, - "htc": 9.202232406694513e-10, - "htc-c": 1.5167242473017484e-9, - "htn": 2.2684998010224684e-8, - "htn-c": 3.378964481489889e-8, - "ior": 13.313345405119325, - "ldu": 105.51839908615344, - "mru": 0.000052078700426912154, - "ozd": 0.000030370478290087493, - "pco": 0.016994499640779308, - "pma": 3.6240125804991626e-7, - "swe": 0.02536100942287826, - "tre": 0.12574953428356123, - "wtu": 13.97456474348671, - "ecs": 1469.1531378179673, - "pef": 939.757440532827 + "acd": 0.041534870067531905, + "cch": 6.067777205881373, + "etf": 133.65645343559225, + "etf-c": 281.29264799632034, + "fru": 108.68581289752039, + "fwe": 0.0015983421964925867, + "htc": 9.306515988784067e-10, + "htc-c": 1.5283072906748826e-9, + "htn": 2.2901938308732143e-8, + "htn-c": 3.3853886876092924e-8, + "ior": 13.31360395097679, + "ldu": 105.73125765928776, + "mru": 0.000052137692964225585, + "ozd": 0.000030370813215460624, + "pco": 0.017119208596003188, + "pma": 3.6426618342305054e-7, + "swe": 0.025395516885564826, + "tre": 0.1261150318477403, + "wtu": 13.977094827606113, + "ecs": 1471.1431913678628, + "pef": 941.5376554453319 } }, { @@ -331,27 +331,27 @@ "makingWaste=0" ], "impacts": { - "acd": 0.03556277405549819, - "cch": 5.274011521794696, - "etf": 113.66496753834603, - "etf-c": 239.18693472401281, - "fru": 99.89354028951128, - "fwe": 0.001379642414386105, - "htc": 7.975127330222743e-10, - "htc-c": 1.3184705161562507e-9, - "htn": 1.934041722376756e-8, - "htn-c": 2.878076729242554e-8, - "ior": 13.16583070424621, - "ldu": 91.14088216514263, - "mru": 0.00004479823453750349, - "ozd": 0.000025826455410885885, - "pco": 0.01467685700279186, - "pma": 3.1336217874581686e-7, - "swe": 0.02167050815279059, - "tre": 0.10759516484280496, - "wtu": 11.891846278042784, - "ecs": 1299.6317469908283, - "pef": 837.4947256106926 + "acd": 0.035652975548035495, + "cch": 5.292914334332009, + "etf": 113.86406600065946, + "etf-c": 239.44700402328147, + "fru": 100.16324705294412, + "fwe": 0.0013812282352816273, + "htc": 8.079410912312296e-10, + "htc-c": 1.3300535595293852e-9, + "htn": 1.9557357522275022e-8, + "htn-c": 2.8845009353619564e-8, + "ior": 13.166089250103674, + "ldu": 91.35374073827697, + "mru": 0.000044857227074816925, + "ozd": 0.00002582679033625902, + "pco": 0.01480156595801574, + "pma": 3.152271041189512e-7, + "swe": 0.02170501561547716, + "tre": 0.10796066240698404, + "wtu": 11.894376362162188, + "ecs": 1301.6218005407243, + "pef": 839.2749405231974 } }, { @@ -366,27 +366,27 @@ "makingWaste=0.25" ], "impacts": { - "acd": 0.046673019258991415, - "cch": 6.737641390276829, - "etf": 151.05058824877455, - "etf-c": 318.2287066730863, - "fru": 115.99172021815534, - "fwe": 0.0017897465633401396, - "htc": 1.029299247466942e-9, - "htc-c": 1.6929497860977452e-9, - "htn": 2.5657958709297684e-8, - "htn-c": 3.824198039043076e-8, - "ior": 13.444469583673206, - "ldu": 118.29841412705193, - "mru": 0.00005855022566194208, - "ozd": 0.00003440960973826669, - "pco": 0.019054626430101487, - "pma": 4.059915507646712e-7, - "swe": 0.028641454996289513, - "tre": 0.1418867515642335, - "wtu": 15.825870046103532, - "ecs": 1619.8388185532008, - "pef": 1030.657631574724 + "acd": 0.04676322075152872, + "cch": 6.756544202814142, + "etf": 151.24968671108797, + "etf-c": 318.488775972355, + "fru": 116.26142698158817, + "fwe": 0.001791332384235662, + "htc": 1.0397276056758974e-9, + "htc-c": 1.7045328294708795e-9, + "htn": 2.5874899007805143e-8, + "htn-c": 3.830622245162478e-8, + "ior": 13.44472812953067, + "ldu": 118.51127270018625, + "mru": 0.00005860921819925552, + "ozd": 0.000034409944663639815, + "pco": 0.019179335385325368, + "pma": 4.0785647613780557e-7, + "swe": 0.02867596245897608, + "tre": 0.14225224912841258, + "wtu": 15.828400130222937, + "ecs": 1621.8288721030963, + "pef": 1032.437846487229 } }, { @@ -402,27 +402,27 @@ "surfaceMass=300" ], "impacts": { - "acd": 0.07267634397534148, - "cch": 10.566370145958176, - "etf": 235.05735479215312, - "etf-c": 495.31278142778234, - "fru": 175.24855963490427, - "fwe": 0.002796540073534118, - "htc": 1.5919968071366613e-9, - "htc-c": 2.6127190836195204e-9, - "htn": 3.997288100353046e-8, - "htn-c": 5.951291773435012e-8, - "ior": 22.763840053174576, - "ldu": 185.72468717008135, - "mru": 0.00009102947573620496, - "ozd": 0.00005359060692221132, - "pco": 0.029737143509036355, - "pma": 6.332899101003791e-7, - "swe": 0.04461787851377972, - "tre": 0.22089877023652157, - "wtu": 24.630629375675866, - "ecs": 2562.0424840947135, - "pef": 1622.08056836771 + "acd": 0.0728355230798191, + "cch": 10.599728050435786, + "etf": 235.40870501976505, + "etf-c": 495.7717272500212, + "fru": 175.7245127468446, + "fwe": 0.002799338580996805, + "htc": 1.6103997922112883e-9, + "htc-c": 2.6331597483956397e-9, + "htn": 4.0355716824425985e-8, + "htn-c": 5.96262860776337e-8, + "ior": 22.7642963105701, + "ldu": 186.10031994620073, + "mru": 0.00009113358021381689, + "ozd": 0.00005359119796698744, + "pco": 0.029957218135902026, + "pma": 6.365809548764985e-7, + "swe": 0.04467877403616778, + "tre": 0.22154376593801411, + "wtu": 24.635094230004224, + "ecs": 2565.554343300412, + "pef": 1625.2221240956594 } }, { @@ -438,27 +438,27 @@ "printing=pigment" ], "impacts": { - "acd": 0.07394588489266214, - "cch": 10.83602593808956, - "etf": 235.61657846444567, - "etf-c": 507.65662917666367, - "fru": 184.38310752368184, - "fwe": 0.002896826121073032, - "htc": 1.6498750628912446e-9, - "htc-c": 2.681280684984667e-9, - "htn": 4.10706733454279e-8, - "htn-c": 5.987239547781978e-8, - "ior": 23.04193808555303, - "ldu": 186.97988567823194, - "mru": 0.00009158624796893748, - "ozd": 0.00005360116790855931, - "pco": 0.030507001264879974, - "pma": 6.483034674210423e-7, - "swe": 0.0456672457563599, - "tre": 0.22289894843837044, - "wtu": 24.6477403557429, - "ecs": 2615.2682471286835, - "pef": 1654.264703386901 + "acd": 0.07410506399713974, + "cch": 10.86938384256717, + "etf": 235.9679286920576, + "etf-c": 508.1155749989025, + "fru": 184.85906063562214, + "fwe": 0.002899624628535719, + "htc": 1.6682780479658716e-9, + "htc-c": 2.7017213497607865e-9, + "htn": 4.1453509166323423e-8, + "htn-c": 5.998576382110337e-8, + "ior": 23.04239434294855, + "ldu": 187.35551845435134, + "mru": 0.00009169035244654943, + "ozd": 0.000053601758953335424, + "pco": 0.030727075891745646, + "pma": 6.515945121971616e-7, + "swe": 0.04572814127874796, + "tre": 0.22354394413986298, + "wtu": 24.65220521007126, + "ecs": 2618.7801063343823, + "pef": 1657.4062591148506 } }, { @@ -474,27 +474,27 @@ "printing=substantive" ], "impacts": { - "acd": 0.07446448136980308, - "cch": 10.865459053092978, - "etf": 235.71998929884572, - "etf-c": 500.6037735496913, - "fru": 185.257732233438, - "fwe": 0.002922149679109287, - "htc": 1.6609112981200832e-9, - "htc-c": 2.69366950581472e-9, - "htn": 4.1291958055739324e-8, - "htn-c": 5.968008004359814e-8, - "ior": 23.082521039967514, - "ldu": 187.14773137416543, - "mru": 0.00009181908475489009, - "ozd": 0.000053599886340053184, - "pco": 0.030583985163537, - "pma": 6.516506209819572e-7, - "swe": 0.045725416514139174, - "tre": 0.22317352611139882, - "wtu": 24.650544818224496, - "ecs": 2603.8607504048723, - "pef": 1658.8381379248804 + "acd": 0.07462366047428069, + "cch": 10.89881695757059, + "etf": 236.07133952645765, + "etf-c": 501.0627193719301, + "fru": 185.7336853453783, + "fwe": 0.0029249481865719733, + "htc": 1.6793142831947102e-9, + "htc-c": 2.7141101705908394e-9, + "htn": 4.167479387663484e-8, + "htn-c": 5.979344838688172e-8, + "ior": 23.082977297363037, + "ldu": 187.5233641502848, + "mru": 0.00009192318923250202, + "ozd": 0.0000536004773848293, + "pco": 0.030804059790402676, + "pma": 6.549416657580768e-7, + "swe": 0.045786312036527235, + "tre": 0.22381852181289136, + "wtu": 24.655009672552854, + "ecs": 2607.3726096105706, + "pef": 1661.9796936528298 } }, { @@ -510,27 +510,27 @@ "printing=pigment;0.5" ], "impacts": { - "acd": 0.07565313052469849, - "cch": 11.182825403800452, - "etf": 236.45541397288443, - "etf-c": 526.1724007999856, - "fru": 196.82181516999697, - "fwe": 0.002983897665138724, - "htc": 1.73669244652312e-9, - "htc-c": 2.784123087032387e-9, - "htn": 4.271736185827405e-8, - "htn-c": 6.04116120930243e-8, - "ior": 23.458213102307457, - "ldu": 188.58627379319242, - "mru": 0.00009215383538378021, - "ozd": 0.000053609923385912195, - "pco": 0.0314264920250721, - "pma": 6.670176721207272e-7, - "swe": 0.04594982938891271, - "tre": 0.2256601688992288, - "wtu": 24.67340682584345, - "ecs": 2688.6163069018926, - "pef": 1694.7748529334613 + "acd": 0.07581230962917611, + "cch": 11.216183308278064, + "etf": 236.80676420049636, + "etf-c": 526.6313466222243, + "fru": 197.2977682819373, + "fwe": 0.0029866961726014107, + "htc": 1.755095431597747e-9, + "htc-c": 2.8045637518085064e-9, + "htn": 4.3100197679169574e-8, + "htn-c": 6.052498043630789e-8, + "ior": 23.45866935970298, + "ldu": 188.96190656931182, + "mru": 0.00009225793986139216, + "ozd": 0.000053610514430688304, + "pco": 0.03164656665193777, + "pma": 6.703087168968466e-7, + "swe": 0.046010724911300774, + "tre": 0.22630516460072134, + "wtu": 24.67787168017181, + "ecs": 2692.1281661075914, + "pef": 1697.916408661411 } }, { @@ -545,27 +545,27 @@ "upcycled=true" ], "impacts": { - "acd": 0.0028783103726423317, - "cch": 1.034447974270687, - "etf": 2.148056729627463, - "etf-c": 2.9423659495513848, - "fru": 74.16903603999697, - "fwe": 0.0001791955931726597, - "htc": 1.4699590611006234e-10, - "htc-c": 2.8471813917534933e-10, - "htn": 4.71319645111522e-10, - "htn-c": 5.598702944994033e-10, - "ior": 13.355660450532385, - "ldu": 10.346336411626782, - "mru": 0.000004769965172754928, - "ozd": 8.310895092724175e-8, - "pco": 0.00189779033199731, - "pma": 4.4226576928059735e-8, - "swe": 0.0009493384564102386, - "tre": 0.006135195458220896, - "wtu": 0.1324275226503942, - "ecs": 318.5020583098391, - "pef": 308.9809122920371 + "acd": 0.002968511865179645, + "cch": 1.0533507868080005, + "etf": 2.3471551919408955, + "etf-c": 3.202435248820042, + "fru": 74.4387428034298, + "fwe": 0.0001807814140681821, + "htc": 1.5742426431901755e-10, + "htc-c": 2.963011825484837e-10, + "htn": 6.882599436189848e-10, + "htn-c": 6.241123556934332e-10, + "ior": 13.35591899638985, + "ldu": 10.55919498476111, + "mru": 0.00000482895771006836, + "ozd": 8.344387630037608e-8, + "pco": 0.0020224992872211905, + "pma": 4.609150230119406e-8, + "swe": 0.000983845919096806, + "tre": 0.0065006930224, + "wtu": 0.13495760676979718, + "ecs": 320.49211185973485, + "pef": 310.761127204542 } } ] From f0150b126f6b4e6c525e3e750374f557868cc2b0 Mon Sep 17 00:00:00 2001 From: Nicolas Perriault Date: Mon, 16 Sep 2024 17:11:01 +0200 Subject: [PATCH 2/3] fix: split transport for distribution/warehouse. --- src/Data/Textile/Step.elm | 11 +-- tests/e2e-textile.json | 184 +++++++++++++++++++------------------- 2 files changed, 94 insertions(+), 101 deletions(-) diff --git a/src/Data/Textile/Step.elm b/src/Data/Textile/Step.elm index a386fe5d3..0c6809631 100644 --- a/src/Data/Textile/Step.elm +++ b/src/Data/Textile/Step.elm @@ -224,15 +224,12 @@ computeTransportSummary step transport = let noTransports = Transport.default step.transport.impacts - - defaultInland = - Transport.default step.transport.impacts - |> Transport.add { noTransports | road = Length.kilometers 500 } in case step.label of Label.Distribution -> - -- Product Distribution leverages no transports + -- Add default road transport to materialize transport to/from a warehouse noTransports + |> Transport.add { noTransports | road = Length.kilometers 500 } Label.EndOfLife -> -- End of life leverages no transports @@ -242,10 +239,6 @@ computeTransportSummary step transport = -- Air transport only applies between the Making and the Distribution steps transport |> Formula.transportRatio step.airTransportRatio - -- Added intermediary inland transport distances to materialize - -- transport to the "distribution" step - -- Also ensure we don't add unnecessary air transport - |> Transport.add { defaultInland | air = Quantity.zero } Label.Use -> -- Product Use leverages no transports diff --git a/tests/e2e-textile.json b/tests/e2e-textile.json index 8f4a7e902..737c72eae 100644 --- a/tests/e2e-textile.json +++ b/tests/e2e-textile.json @@ -10,24 +10,24 @@ "countryMaking=FR" ], "impacts": { - "acd": 0.041534870067531905, + "acd": 0.04153487006753191, "cch": 6.067777205881373, "etf": 133.65645343559225, - "etf-c": 281.29264799632034, + "etf-c": 281.2926479963204, "fru": 108.68581289752039, "fwe": 0.0015983421964925867, - "htc": 9.306515988784067e-10, + "htc": 9.306515988784065e-10, "htc-c": 1.5283072906748826e-9, - "htn": 2.2901938308732143e-8, + "htn": 2.290193830873215e-8, "htn-c": 3.3853886876092924e-8, "ior": 13.31360395097679, "ldu": 105.73125765928776, "mru": 0.000052137692964225585, "ozd": 0.000030370813215460624, - "pco": 0.017119208596003188, + "pco": 0.01711920859600319, "pma": 3.6426618342305054e-7, - "swe": 0.025395516885564826, - "tre": 0.1261150318477403, + "swe": 0.02539551688556483, + "tre": 0.12611503184774034, "wtu": 13.977094827606113, "ecs": 1471.1431913678628, "pef": 941.5376554453319 @@ -45,24 +45,24 @@ "countryMaking=FR" ], "impacts": { - "acd": 0.0400830349980822, + "acd": 0.040083034998082204, "cch": 5.610399786097431, "etf": 132.2264106258813, - "etf-c": 279.891465710932, + "etf-c": 279.89146571093204, "fru": 105.78490542940658, "fwe": 0.002141549830267799, - "htc": 9.236903446647859e-10, + "htc": 9.236903446647858e-10, "htc-c": 1.504974275331958e-9, "htn": 2.277388762027098e-8, - "htn-c": 3.340193991405414e-8, + "htn-c": 3.3401939914054145e-8, "ior": 13.299487443678606, "ldu": 104.1537899446527, "mru": 0.00005206834549709496, "ozd": 0.0000303819910824867, - "pco": 0.015491171242633321, + "pco": 0.015491171242633323, "pma": 2.938543221437438e-7, - "swe": 0.02487796570048215, - "tre": 0.11928553954473607, + "swe": 0.024877965700482157, + "tre": 0.11928553954473609, "wtu": 14.120875328829483, "ecs": 1447.5351157339805, "pef": 918.3653812238522 @@ -85,7 +85,7 @@ "etf": 15.595574342296226, "etf-c": 35.2581850339179, "fru": 206.44628152701202, - "fwe": 0.0011821114425592508, + "fwe": 0.001182111442559251, "htc": 1.1707541670974682e-9, "htc-c": 9.648627939464513e-10, "htn": 1.7072761796464283e-8, @@ -93,11 +93,11 @@ "ior": 13.251903379741115, "ldu": 21.64622267951263, "mru": 0.00007190387646188032, - "ozd": 0.00005134614052113382, + "ozd": 0.000051346140521133825, "pco": 0.033754964773876364, "pma": 5.366510816896363e-7, - "swe": 0.011755251177168538, - "tre": 0.07933831796632933, + "swe": 0.01175525117716854, + "tre": 0.07933831796632931, "wtu": 1.1686890189426382, "ecs": 1620.5539631121571, "pef": 1146.1234932835043 @@ -116,25 +116,25 @@ "countryMaking=FR" ], "impacts": { - "acd": 0.031457783488157864, + "acd": 0.03145778348815787, "cch": 5.755082393572394, - "etf": 73.79145806663702, - "etf-c": 151.0153382023904, + "etf": 73.791458066637, + "etf-c": 151.01533820239038, "fru": 115.2760782251925, "fwe": 0.001203592482277773, - "htc": 9.390159782968624e-10, + "htc": 9.390159782968622e-10, "htc-c": 1.4376158751378587e-9, "htn": 1.6666988742461577e-8, "htn-c": 1.9010665675086265e-8, "ior": 13.307299056145208, - "ldu": 60.64370515578004, + "ldu": 60.64370515578003, "mru": 0.000051697432436773615, "ozd": 0.000033060548708091644, - "pco": 0.014531222835538364, + "pco": 0.014531222835538368, "pma": 3.002787753363536e-7, "swe": 0.01528189746657156, "tre": 0.0805767439619328, - "wtu": 6.941456237348495, + "wtu": 6.941456237348496, "ecs": 1266.2433761304576, "pef": 810.4452679750791 } @@ -151,24 +151,24 @@ "disabledSteps=ennobling" ], "impacts": { - "acd": 0.032940818970822516, + "acd": 0.03294081897082252, "cch": 3.4863653460944724, "etf": 131.39075731036985, - "etf-c": 252.17718946377363, + "etf-c": 252.1771894637737, "fru": 83.46357620761727, "fwe": 0.0012828786456837292, "htc": 6.98198366757677e-10, - "htc-c": 1.2787940033804528e-9, + "htc-c": 1.2787940033804526e-9, "htn": 1.7944492068956902e-8, - "htn-c": 3.333501121011789e-8, + "htn-c": 3.33350112101179e-8, "ior": 12.84427501010654, "ldu": 100.58000015674304, "mru": 0.000015858113507680858, "ozd": 1.7745154455752405e-7, - "pco": 0.013655377091474694, + "pco": 0.013655377091474696, "pma": 2.830599465837179e-7, "swe": 0.02259604193746533, - "tre": 0.11767587907015173, + "tre": 0.11767587907015174, "wtu": 13.895915210358915, "ecs": 1213.958470608311, "pef": 712.9075657041376 @@ -192,21 +192,21 @@ "cch": 29.26775770963706, "etf": 398.5019700032957, "etf-c": 928.3605218698889, - "fru": 306.4472967792092, + "fru": 306.44729677920924, "fwe": 0.00586008517913027, "htc": 4.319819839514111e-9, "htc-c": 6.307891394536699e-9, "htn": 1.2463505190323504e-7, "htn-c": 9.020922761524635e-8, "ior": 16.326890660772733, - "ldu": 274.90007256657793, + "ldu": 274.900072566578, "mru": 0.00014297100716302284, "ozd": 0.00008057471507299866, "pco": 0.09763663256031894, "pma": 0.0000019688971918134832, "swe": 0.07977174559738691, "tre": 0.5010505866679853, - "wtu": 35.03100571558291, + "wtu": 35.031005715582914, "ecs": 5029.759700869327, "pef": 3047.778041761364 } @@ -229,20 +229,20 @@ "etf": 392.04932543844734, "etf-c": 985.2207081643247, "fru": 283.86006242626695, - "fwe": 0.013014447619208582, + "fwe": 0.013014447619208579, "htc": 4.192399757617463e-9, - "htc-c": 6.086952961761317e-9, + "htc-c": 6.086952961761318e-9, "htn": 1.0862845017183316e-7, "htn-c": 9.671756705334432e-8, "ior": 16.251601987012425, "ldu": 314.86872913920325, "mru": 0.00014657838058515583, "ozd": 0.00008275115615834008, - "pco": 0.08249341342341501, + "pco": 0.082493413423415, "pma": 0.000001962582292915997, "swe": 0.08660362210690468, - "tre": 0.4702663980896249, - "wtu": 40.98719477736321, + "tre": 0.47026639808962484, + "wtu": 40.987194777363214, "ecs": 4970.581582135417, "pef": 3158.9377048031997 } @@ -267,8 +267,8 @@ "fru": 246.4065818528514, "fwe": 0.01103152591868891, "htc": 3.238042339988753e-9, - "htc-c": 4.981068544574863e-9, - "htn": 8.616914062075728e-8, + "htc-c": 4.981068544574862e-9, + "htn": 8.61691406207573e-8, "htn-c": 9.521478318741142e-8, "ior": 16.22533624034117, "ldu": 295.54626354664236, @@ -277,8 +277,8 @@ "pco": 0.07043026814445895, "pma": 0.0000015345605928247258, "swe": 0.08002373021658514, - "tre": 0.4310098396846813, - "wtu": 40.62218630676039, + "tre": 0.43100983968468126, + "wtu": 40.6221863067604, "ecs": 4667.7139493995, "pef": 2823.0511991367985 } @@ -296,24 +296,24 @@ "reparability=1.15" ], "impacts": { - "acd": 0.041534870067531905, + "acd": 0.04153487006753191, "cch": 6.067777205881373, "etf": 133.65645343559225, - "etf-c": 281.29264799632034, + "etf-c": 281.2926479963204, "fru": 108.68581289752039, "fwe": 0.0015983421964925867, - "htc": 9.306515988784067e-10, + "htc": 9.306515988784065e-10, "htc-c": 1.5283072906748826e-9, - "htn": 2.2901938308732143e-8, + "htn": 2.290193830873215e-8, "htn-c": 3.3853886876092924e-8, "ior": 13.31360395097679, "ldu": 105.73125765928776, "mru": 0.000052137692964225585, "ozd": 0.000030370813215460624, - "pco": 0.017119208596003188, + "pco": 0.01711920859600319, "pma": 3.6426618342305054e-7, - "swe": 0.025395516885564826, - "tre": 0.1261150318477403, + "swe": 0.02539551688556483, + "tre": 0.12611503184774034, "wtu": 13.977094827606113, "ecs": 1471.1431913678628, "pef": 941.5376554453319 @@ -331,27 +331,27 @@ "makingWaste=0" ], "impacts": { - "acd": 0.035652975548035495, + "acd": 0.0356529755480355, "cch": 5.292914334332009, "etf": 113.86406600065946, - "etf-c": 239.44700402328147, + "etf-c": 239.4470040232815, "fru": 100.16324705294412, "fwe": 0.0013812282352816273, - "htc": 8.079410912312296e-10, - "htc-c": 1.3300535595293852e-9, + "htc": 8.079410912312295e-10, + "htc-c": 1.330053559529385e-9, "htn": 1.9557357522275022e-8, - "htn-c": 2.8845009353619564e-8, + "htn-c": 2.884500935361957e-8, "ior": 13.166089250103674, - "ldu": 91.35374073827697, + "ldu": 91.35374073827695, "mru": 0.000044857227074816925, "ozd": 0.00002582679033625902, - "pco": 0.01480156595801574, + "pco": 0.014801565958015742, "pma": 3.152271041189512e-7, "swe": 0.02170501561547716, - "tre": 0.10796066240698404, - "wtu": 11.894376362162188, + "tre": 0.10796066240698407, + "wtu": 11.89437636216219, "ecs": 1301.6218005407243, - "pef": 839.2749405231974 + "pef": 839.2749405231975 } }, { @@ -366,24 +366,24 @@ "makingWaste=0.25" ], "impacts": { - "acd": 0.04676322075152872, + "acd": 0.04676322075152873, "cch": 6.756544202814142, "etf": 151.24968671108797, "etf-c": 318.488775972355, "fru": 116.26142698158817, "fwe": 0.001791332384235662, - "htc": 1.0397276056758974e-9, + "htc": 1.0397276056758972e-9, "htc-c": 1.7045328294708795e-9, - "htn": 2.5874899007805143e-8, - "htn-c": 3.830622245162478e-8, + "htn": 2.587489900780515e-8, + "htn-c": 3.830622245162479e-8, "ior": 13.44472812953067, "ldu": 118.51127270018625, "mru": 0.00005860921819925552, "ozd": 0.000034409944663639815, - "pco": 0.019179335385325368, - "pma": 4.0785647613780557e-7, - "swe": 0.02867596245897608, - "tre": 0.14225224912841258, + "pco": 0.01917933538532537, + "pma": 4.0785647613780546e-7, + "swe": 0.028675962458976082, + "tre": 0.1422522491284126, "wtu": 15.828400130222937, "ecs": 1621.8288721030963, "pef": 1032.437846487229 @@ -403,26 +403,26 @@ ], "impacts": { "acd": 0.0728355230798191, - "cch": 10.599728050435786, + "cch": 10.599728050435788, "etf": 235.40870501976505, "etf-c": 495.7717272500212, - "fru": 175.7245127468446, - "fwe": 0.002799338580996805, + "fru": 175.72451274684457, + "fwe": 0.0027993385809968042, "htc": 1.6103997922112883e-9, "htc-c": 2.6331597483956397e-9, "htn": 4.0355716824425985e-8, "htn-c": 5.96262860776337e-8, "ior": 22.7642963105701, - "ldu": 186.10031994620073, + "ldu": 186.10031994620076, "mru": 0.00009113358021381689, - "ozd": 0.00005359119796698744, + "ozd": 0.000053591197966987444, "pco": 0.029957218135902026, "pma": 6.365809548764985e-7, "swe": 0.04467877403616778, "tre": 0.22154376593801411, "wtu": 24.635094230004224, "ecs": 2565.554343300412, - "pef": 1625.2221240956594 + "pef": 1625.2221240956599 } }, { @@ -442,23 +442,23 @@ "cch": 10.86938384256717, "etf": 235.9679286920576, "etf-c": 508.1155749989025, - "fru": 184.85906063562214, - "fwe": 0.002899624628535719, + "fru": 184.85906063562211, + "fwe": 0.0028996246285357186, "htc": 1.6682780479658716e-9, "htc-c": 2.7017213497607865e-9, "htn": 4.1453509166323423e-8, "htn-c": 5.998576382110337e-8, "ior": 23.04239434294855, - "ldu": 187.35551845435134, + "ldu": 187.35551845435137, "mru": 0.00009169035244654943, - "ozd": 0.000053601758953335424, + "ozd": 0.00005360175895333543, "pco": 0.030727075891745646, "pma": 6.515945121971616e-7, "swe": 0.04572814127874796, "tre": 0.22354394413986298, "wtu": 24.65220521007126, "ecs": 2618.7801063343823, - "pef": 1657.4062591148506 + "pef": 1657.406259114851 } }, { @@ -475,26 +475,26 @@ ], "impacts": { "acd": 0.07462366047428069, - "cch": 10.89881695757059, + "cch": 10.898816957570592, "etf": 236.07133952645765, "etf-c": 501.0627193719301, - "fru": 185.7336853453783, - "fwe": 0.0029249481865719733, + "fru": 185.73368534537826, + "fwe": 0.002924948186571973, "htc": 1.6793142831947102e-9, "htc-c": 2.7141101705908394e-9, "htn": 4.167479387663484e-8, "htn-c": 5.979344838688172e-8, "ior": 23.082977297363037, - "ldu": 187.5233641502848, + "ldu": 187.52336415028483, "mru": 0.00009192318923250202, - "ozd": 0.0000536004773848293, + "ozd": 0.00005360047738482931, "pco": 0.030804059790402676, - "pma": 6.549416657580768e-7, + "pma": 6.549416657580766e-7, "swe": 0.045786312036527235, "tre": 0.22381852181289136, "wtu": 24.655009672552854, "ecs": 2607.3726096105706, - "pef": 1661.9796936528298 + "pef": 1661.9796936528303 } }, { @@ -511,7 +511,7 @@ ], "impacts": { "acd": 0.07581230962917611, - "cch": 11.216183308278064, + "cch": 11.216183308278065, "etf": 236.80676420049636, "etf-c": 526.6313466222243, "fru": 197.2977682819373, @@ -521,16 +521,16 @@ "htn": 4.3100197679169574e-8, "htn-c": 6.052498043630789e-8, "ior": 23.45866935970298, - "ldu": 188.96190656931182, + "ldu": 188.96190656931185, "mru": 0.00009225793986139216, - "ozd": 0.000053610514430688304, + "ozd": 0.00005361051443068832, "pco": 0.03164656665193777, "pma": 6.703087168968466e-7, "swe": 0.046010724911300774, "tre": 0.22630516460072134, "wtu": 24.67787168017181, "ecs": 2692.1281661075914, - "pef": 1697.916408661411 + "pef": 1697.9164086614112 } }, { @@ -560,9 +560,9 @@ "mru": 0.00000482895771006836, "ozd": 8.344387630037608e-8, "pco": 0.0020224992872211905, - "pma": 4.609150230119406e-8, + "pma": 4.609150230119407e-8, "swe": 0.000983845919096806, - "tre": 0.0065006930224, + "tre": 0.006500693022400001, "wtu": 0.13495760676979718, "ecs": 320.49211185973485, "pef": 310.761127204542 From 735a052de01681b92d0af34639bd549fc3641ff0 Mon Sep 17 00:00:00 2001 From: Nicolas Perriault Date: Thu, 19 Sep 2024 08:34:10 +0200 Subject: [PATCH 3/3] fix: fix github CI python build setup. --- .github/workflows/node.js.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml index d758a4031..db35ece7c 100644 --- a/.github/workflows/node.js.yml +++ b/.github/workflows/node.js.yml @@ -53,9 +53,7 @@ jobs: uses: actions/cache@v4 with: path: ~/.local/share/virtualenvs - key: ${{ runner.os }}-${{ matrix.python-version }}-pipenv-${{ hashFiles('Pipfile.lock') }} - restore-keys: | - ${{ runner.os }}-pipenv- + key: ${{ runner.os }}-python-${{ steps.setup-python.outputs.python-version }}-pipenv-${{ hashFiles('Pipfile.lock') }} - name: Install Node dependencies run: npm ci --prefer-offline --no-audit