diff --git a/requirements.prod.in b/requirements.prod.in index 05409af61..234cae653 100644 --- a/requirements.prod.in +++ b/requirements.prod.in @@ -12,7 +12,7 @@ django-vite djangorestframework environs[django] furl -opensafely-pipeline@https://github.com/opensafely-core/pipeline/archive/refs/tags/v2024.03.19.153938.zip +opensafely-pipeline[fastparser]@https://github.com/opensafely-core/pipeline/archive/refs/tags/v2024.10.11.170331.zip gunicorn incuna-mail interactive_templates@https://github.com/opensafely-core/interactive-templates/archive/refs/tags/v2024.07.09.130747.zip diff --git a/requirements.prod.txt b/requirements.prod.txt index 06f92cc44..722c198cd 100644 --- a/requirements.prod.txt +++ b/requirements.prod.txt @@ -536,8 +536,8 @@ oauthlib==3.2.2 \ # via # requests-oauthlib # social-auth-core -opensafely-pipeline @ https://github.com/opensafely-core/pipeline/archive/refs/tags/v2024.03.19.153938.zip \ - --hash=sha256:f1fb0829c832f4c52a495d7fe167e0656c2a77fde4e58426268c60754a5f6e89 +opensafely-pipeline @ https://github.com/opensafely-core/pipeline/archive/refs/tags/v2024.10.11.170331.zip \ + --hash=sha256:62439268076be091abac17578ce6e2d3da7e98ff2480f70fb246b338f273db57 # via -r requirements.prod.in opentelemetry-api==1.22.0 \ --hash=sha256:15ae4ca925ecf9cfdfb7a709250846fbb08072260fca08ade78056c502b86bed \ @@ -716,51 +716,6 @@ pycparser==2.21 \ --hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \ --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206 # via cffi -pydantic==1.10.18 \ - --hash=sha256:069b9c9fc645474d5ea3653788b544a9e0ccd3dca3ad8c900c4c6eac844b4620 \ - --hash=sha256:06a189b81ffc52746ec9c8c007f16e5167c8b0a696e1a726369327e3db7b2a82 \ - --hash=sha256:11d9d9b87b50338b1b7de4ebf34fd29fdb0d219dc07ade29effc74d3d2609c62 \ - --hash=sha256:15fdbe568beaca9aacfccd5ceadfb5f1a235087a127e8af5e48df9d8a45ae85c \ - --hash=sha256:19a3bd00b9dafc2cd7250d94d5b578edf7a0bd7daf102617153ff9a8fa37871c \ - --hash=sha256:23e8ec1ce4e57b4f441fc91e3c12adba023fedd06868445a5b5f1d48f0ab3682 \ - --hash=sha256:24a4a159d0f7a8e26bf6463b0d3d60871d6a52eac5bb6a07a7df85c806f4c048 \ - --hash=sha256:2ce3fcf75b2bae99aa31bd4968de0474ebe8c8258a0110903478bd83dfee4e3b \ - --hash=sha256:335a32d72c51a313b33fa3a9b0fe283503272ef6467910338e123f90925f0f03 \ - --hash=sha256:3445426da503c7e40baccefb2b2989a0c5ce6b163679dd75f55493b460f05a8f \ - --hash=sha256:34a3613c7edb8c6fa578e58e9abe3c0f5e7430e0fc34a65a415a1683b9c32d9a \ - --hash=sha256:3d5492dbf953d7d849751917e3b2433fb26010d977aa7a0765c37425a4026ff1 \ - --hash=sha256:44ae8a3e35a54d2e8fa88ed65e1b08967a9ef8c320819a969bfa09ce5528fafe \ - --hash=sha256:467a14ee2183bc9c902579bb2f04c3d3dac00eff52e252850509a562255b2a33 \ - --hash=sha256:46f379b8cb8a3585e3f61bf9ae7d606c70d133943f339d38b76e041ec234953f \ - --hash=sha256:49e26c51ca854286bffc22b69787a8d4063a62bf7d83dc21d44d2ff426108518 \ - --hash=sha256:65f7361a09b07915a98efd17fdec23103307a54db2000bb92095457ca758d485 \ - --hash=sha256:6951f3f47cb5ca4da536ab161ac0163cab31417d20c54c6de5ddcab8bc813c3f \ - --hash=sha256:72fa46abace0a7743cc697dbb830a41ee84c9db8456e8d77a46d79b537efd7ec \ - --hash=sha256:74fe19dda960b193b0eb82c1f4d2c8e5e26918d9cda858cbf3f41dd28549cb70 \ - --hash=sha256:7a4c5eec138a9b52c67f664c7d51d4c7234c5ad65dd8aacd919fb47445a62c86 \ - --hash=sha256:80b982d42515632eb51f60fa1d217dfe0729f008e81a82d1544cc392e0a50ddf \ - --hash=sha256:941a2eb0a1509bd7f31e355912eb33b698eb0051730b2eaf9e70e2e1589cae1d \ - --hash=sha256:9f463abafdc92635da4b38807f5b9972276be7c8c5121989768549fceb8d2588 \ - --hash=sha256:a00e63104346145389b8e8f500bc6a241e729feaf0559b88b8aa513dd2065481 \ - --hash=sha256:aad8771ec8dbf9139b01b56f66386537c6fe4e76c8f7a47c10261b69ad25c2c9 \ - --hash=sha256:ae6fa2008e1443c46b7b3a5eb03800121868d5ab6bc7cda20b5df3e133cde8b3 \ - --hash=sha256:b661ce52c7b5e5f600c0c3c5839e71918346af2ef20062705ae76b5c16914cab \ - --hash=sha256:b74be007703547dc52e3c37344d130a7bfacca7df112a9e5ceeb840a9ce195c7 \ - --hash=sha256:baebdff1907d1d96a139c25136a9bb7d17e118f133a76a2ef3b845e831e3403a \ - --hash=sha256:c20f682defc9ef81cd7eaa485879ab29a86a0ba58acf669a78ed868e72bb89e0 \ - --hash=sha256:c3e742f62198c9eb9201781fbebe64533a3bbf6a76a91b8d438d62b813079dbc \ - --hash=sha256:c5ae6b7c8483b1e0bf59e5f1843e4fd8fd405e11df7de217ee65b98eb5462861 \ - --hash=sha256:c6d0a9f9eccaf7f438671a64acf654ef0d045466e63f9f68a579e2383b63f357 \ - --hash=sha256:cbfbca662ed3729204090c4d09ee4beeecc1a7ecba5a159a94b5a4eb24e3759a \ - --hash=sha256:d5389eb3b48a72da28c6e061a247ab224381435256eb541e175798483368fdd3 \ - --hash=sha256:e306e280ebebc65040034bff1a0a81fd86b2f4f05daac0131f29541cafd80b80 \ - --hash=sha256:e405ffcc1254d76bb0e760db101ee8916b620893e6edfbfee563b3c6f7a67c02 \ - --hash=sha256:e9ee4e6ca1d9616797fa2e9c0bfb8815912c7d67aca96f77428e316741082a1b \ - --hash=sha256:ef0fe7ad7cbdb5f372463d42e6ed4ca9c443a52ce544472d8842a0576d830da5 \ - --hash=sha256:efbc8a7f9cb5fe26122acba1852d8dcd1e125e723727c59dcd244da7bdaa54f2 \ - --hash=sha256:fcb20d4cb355195c75000a49bb4a31d75e4295200df620f454bbc6bdf60ca890 \ - --hash=sha256:fe734914977eed33033b70bfc097e1baaffb589517863955430bf2e0846ac30f - # via opensafely-pipeline pygments==2.18.0 \ --hash=sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199 \ --hash=sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a @@ -841,6 +796,64 @@ requests-oauthlib==1.3.1 \ --hash=sha256:2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5 \ --hash=sha256:75beac4a47881eeb94d5ea5d6ad31ef88856affe2332b9aafb52c6452ccf0d7a # via social-auth-core +ruamel-yaml==0.18.6 \ + --hash=sha256:57b53ba33def16c4f3d807c0ccbc00f8a6081827e81ba2491691b76882d0c636 \ + --hash=sha256:8b27e6a217e786c6fbe5634d8f3f11bc63e0f80f6a5890f28863d9c45aac311b + # via opensafely-pipeline +ruamel-yaml-clib==0.2.8 \ + --hash=sha256:024cfe1fc7c7f4e1aff4a81e718109e13409767e4f871443cbff3dba3578203d \ + --hash=sha256:03d1162b6d1df1caa3a4bd27aa51ce17c9afc2046c31b0ad60a0a96ec22f8001 \ + --hash=sha256:07238db9cbdf8fc1e9de2489a4f68474e70dffcb32232db7c08fa61ca0c7c462 \ + --hash=sha256:09b055c05697b38ecacb7ac50bdab2240bfca1a0c4872b0fd309bb07dc9aa3a9 \ + --hash=sha256:1707814f0d9791df063f8c19bb51b0d1278b8e9a2353abbb676c2f685dee6afe \ + --hash=sha256:1758ce7d8e1a29d23de54a16ae867abd370f01b5a69e1a3ba75223eaa3ca1a1b \ + --hash=sha256:184565012b60405d93838167f425713180b949e9d8dd0bbc7b49f074407c5a8b \ + --hash=sha256:1b617618914cb00bf5c34d4357c37aa15183fa229b24767259657746c9077615 \ + --hash=sha256:1dc67314e7e1086c9fdf2680b7b6c2be1c0d8e3a8279f2e993ca2a7545fecf62 \ + --hash=sha256:25ac8c08322002b06fa1d49d1646181f0b2c72f5cbc15a85e80b4c30a544bb15 \ + --hash=sha256:25c515e350e5b739842fc3228d662413ef28f295791af5e5110b543cf0b57d9b \ + --hash=sha256:305889baa4043a09e5b76f8e2a51d4ffba44259f6b4c72dec8ca56207d9c6fe1 \ + --hash=sha256:3213ece08ea033eb159ac52ae052a4899b56ecc124bb80020d9bbceeb50258e9 \ + --hash=sha256:3f215c5daf6a9d7bbed4a0a4f760f3113b10e82ff4c5c44bec20a68c8014f675 \ + --hash=sha256:46d378daaac94f454b3a0e3d8d78cafd78a026b1d71443f4966c696b48a6d899 \ + --hash=sha256:4ecbf9c3e19f9562c7fdd462e8d18dd902a47ca046a2e64dba80699f0b6c09b7 \ + --hash=sha256:53a300ed9cea38cf5a2a9b069058137c2ca1ce658a874b79baceb8f892f915a7 \ + --hash=sha256:56f4252222c067b4ce51ae12cbac231bce32aee1d33fbfc9d17e5b8d6966c312 \ + --hash=sha256:5c365d91c88390c8d0a8545df0b5857172824b1c604e867161e6b3d59a827eaa \ + --hash=sha256:700e4ebb569e59e16a976857c8798aee258dceac7c7d6b50cab63e080058df91 \ + --hash=sha256:75e1ed13e1f9de23c5607fe6bd1aeaae21e523b32d83bb33918245361e9cc51b \ + --hash=sha256:77159f5d5b5c14f7c34073862a6b7d34944075d9f93e681638f6d753606c6ce6 \ + --hash=sha256:7f67a1ee819dc4562d444bbafb135832b0b909f81cc90f7aa00260968c9ca1b3 \ + --hash=sha256:840f0c7f194986a63d2c2465ca63af8ccbbc90ab1c6001b1978f05119b5e7334 \ + --hash=sha256:84b554931e932c46f94ab306913ad7e11bba988104c5cff26d90d03f68258cd5 \ + --hash=sha256:87ea5ff66d8064301a154b3933ae406b0863402a799b16e4a1d24d9fbbcbe0d3 \ + --hash=sha256:955eae71ac26c1ab35924203fda6220f84dce57d6d7884f189743e2abe3a9fbe \ + --hash=sha256:a1a45e0bb052edf6a1d3a93baef85319733a888363938e1fc9924cb00c8df24c \ + --hash=sha256:a5aa27bad2bb83670b71683aae140a1f52b0857a2deff56ad3f6c13a017a26ed \ + --hash=sha256:a6a9ffd280b71ad062eae53ac1659ad86a17f59a0fdc7699fd9be40525153337 \ + --hash=sha256:a75879bacf2c987c003368cf14bed0ffe99e8e85acfa6c0bfffc21a090f16880 \ + --hash=sha256:aa2267c6a303eb483de8d02db2871afb5c5fc15618d894300b88958f729ad74f \ + --hash=sha256:aab7fd643f71d7946f2ee58cc88c9b7bfc97debd71dcc93e03e2d174628e7e2d \ + --hash=sha256:b16420e621d26fdfa949a8b4b47ade8810c56002f5389970db4ddda51dbff248 \ + --hash=sha256:b42169467c42b692c19cf539c38d4602069d8c1505e97b86387fcf7afb766e1d \ + --hash=sha256:bba64af9fa9cebe325a62fa398760f5c7206b215201b0ec825005f1b18b9bccf \ + --hash=sha256:beb2e0404003de9a4cab9753a8805a8fe9320ee6673136ed7f04255fe60bb512 \ + --hash=sha256:bef08cd86169d9eafb3ccb0a39edb11d8e25f3dae2b28f5c52fd997521133069 \ + --hash=sha256:c2a72e9109ea74e511e29032f3b670835f8a59bbdc9ce692c5b4ed91ccf1eedb \ + --hash=sha256:c58ecd827313af6864893e7af0a3bb85fd529f862b6adbefe14643947cfe2942 \ + --hash=sha256:c69212f63169ec1cfc9bb44723bf2917cbbd8f6191a00ef3410f5a7fe300722d \ + --hash=sha256:cabddb8d8ead485e255fe80429f833172b4cadf99274db39abc080e068cbcc31 \ + --hash=sha256:d176b57452ab5b7028ac47e7b3cf644bcfdc8cacfecf7e71759f7f51a59e5c92 \ + --hash=sha256:da09ad1c359a728e112d60116f626cc9f29730ff3e0e7db72b9a2dbc2e4beed5 \ + --hash=sha256:e2b4c44b60eadec492926a7270abb100ef9f72798e18743939bdbf037aab8c28 \ + --hash=sha256:e79e5db08739731b0ce4850bed599235d601701d5694c36570a99a0c5ca41a9d \ + --hash=sha256:ebc06178e8821efc9692ea7544aa5644217358490145629914d8020042c24aa1 \ + --hash=sha256:edaef1c1200c4b4cb914583150dcaa3bc30e592e907c01117c08b13a07255ec2 \ + --hash=sha256:f481f16baec5290e45aebdc2a5168ebc6d35189ae6fea7a58787613a25f6e875 \ + --hash=sha256:fff3573c2db359f091e1589c3d7c5fc2f86f5bdb6f24252c2d8e539d4e45f412 + # via + # opensafely-pipeline + # ruamel-yaml ruyaml==0.91.0 \ --hash=sha256:50e0ee3389c77ad340e209472e0effd41ae0275246df00cdad0a067532171755 \ --hash=sha256:6ce9de9f4d082d696d3bde264664d1bcdca8f5a9dff9d1a1f1a127969ab871ab @@ -899,7 +912,6 @@ typing-extensions==4.9.0 \ # dj-database-url # opentelemetry-sdk # psycopg - # pydantic # slippers urllib3==2.2.3 \ --hash=sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac \ diff --git a/tests/unit/jobserver/test_pipeline_config.py b/tests/unit/jobserver/test_pipeline_config.py index de404493d..54bd88a35 100644 --- a/tests/unit/jobserver/test_pipeline_config.py +++ b/tests/unit/jobserver/test_pipeline_config.py @@ -45,7 +45,7 @@ def link_func(path): def test_check_cohortextractor_permission(): - config = Pipeline( + config = Pipeline.build( **{ "version": 3, "expectations": {"population_size": 1000}, @@ -70,7 +70,7 @@ def test_check_cohortextractor_permission(): def test_check_cohortextractor_permission_no_cohort_extractor_actions(): - config = Pipeline( + config = Pipeline.build( **{ "version": 3, "expectations": {"population_size": 1000}, @@ -89,7 +89,7 @@ def test_check_cohortextractor_permission_no_cohort_extractor_actions(): def test_check_sqlrunner_permission(): - config = Pipeline( + config = Pipeline.build( **{ "version": 3, "expectations": {"population_size": 1000}, @@ -111,7 +111,7 @@ def test_check_sqlrunner_permission(): def test_check_sqlrunner_permission_no_sqlrunner_actions(): - config = Pipeline( + config = Pipeline.build( **{ "version": 3, "expectations": {"population_size": 1000}, @@ -130,7 +130,7 @@ def test_check_sqlrunner_permission_no_sqlrunner_actions(): def test_get_actions_missing_needs(): - dummy = Pipeline( + dummy = Pipeline.build( **{ "version": 3, "expectations": {"population_size": 1000}, @@ -152,7 +152,7 @@ def test_get_actions_missing_needs(): def test_get_actions_no_run_all(): - dummy = Pipeline( + dummy = Pipeline.build( **{ "version": 3, "expectations": {"population_size": 1000}, @@ -180,7 +180,7 @@ def test_get_actions_no_run_all(): def test_get_actions_success(): - content = Pipeline( + content = Pipeline.build( **{ "version": 3, "expectations": {"population_size": 1000}, @@ -551,7 +551,7 @@ def test_render_definition(): ], ) def test_get_database_actions(actions, expected_db_actions): - content = Pipeline( + content = Pipeline.build( **{ "version": 3, "expectations": {"population_size": 1000},