Coverage for tests/utils.py: 100%
53 statements
« prev ^ index » next coverage.py v7.16.0, created at 2026-11-09 00:25 +0000
« prev ^ index » next coverage.py v7.16.0, created at 2026-11-09 00:25 +0000
1import base64 1abcdefg
2import json 1abcdefg
3import os 1abcdefg
4import sys 1abcdefg
5from collections.abc import Generator, Mapping, Sequence 1abcdefg
6from contextlib import contextmanager 1abcdefg
7from pathlib import Path 1abcdefg
8from textwrap import dedent 1abcdefg
9from typing import Any 1abcdefg
11from rich.console import detect_legacy_windows 1abcdefg
12from typer import Typer 1abcdefg
13from typer.testing import CliRunner, Result 1abcdefg
16@contextmanager 1abcdefg
17def changing_dir(directory: str | Path) -> Generator[None, None, None]: 1abcdefg
18 initial_dir = os.getcwd() 2o zcAcp q BcCcDcr s EcFcGcHcIcJcKcLct McNcu VgWgXgYgZg0g1g2g3g4g5g6g7g8g9g;d=d!g?d#g$g%g'g(g)g*g+g,g-g.g/gh :g;g@d[d=g]d^d?g@g[g]g_d`d{d|d^g_g`g{g|g}d~daebecedeeefege}g~gahbhchdhv ehfhghhhheieihjhkhjekeOcPclhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhQcRcScw x y z A B C D E F G H I J K L M N O PhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#hP TcUcQ R VcWcXcS T YcZc0c1c2c3c4c5cU 6c7cV $h%h'h(h)h*h+h,h-h.h/h:h;h=h?hleme@hne[h]h^h_h`h{h|h}h~haibicii dieioepefiqeregihiiijiseteuevekiliminioiwexeyezeAeBeCeDeEepiqirisitiuiW viwixiyiFeGeziAiBiHeIe8c9cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i!c#c$cX Y Z 0 1 2 3 4 5 6 7 8 9 ! # $ % ' ( 6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i) %c'c* + (c)c*c, - +c,c-c.c/c:c;c=c. ?c@c/ ]i^i_i`i{i|i}i~iajbjcjdjejfjgjJeKehjLeijjjkjljmjnjojpjqjrjsjtjj ujvjMeNewjOePexjyjzjAjQeReSeTeBjCjDjEjFjUeVeWeXeYeZe0e1e2eGjHjIjJjKjLj: MjNjOjPj3e4eQjRjSj5e6e[c]cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j^c_c`c; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebfb:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikgb{c|chbib}c~cadjbkbbdcdddedfdgdhdidlbjdkdmbjkkklkmknkokpkqkrksktkukvkwkxk7e8eyk9ezkAkBkCkDkEkFkGkHkIkJkKkk LkMk!e#eNk$e%eOkPkQkRk'e(e)e*eSkTkUkVkWk+e,e-e.e/e:e;e=e?eXkYkZk0k1k2knb3k4k5k6k@e[e7k8k9k]e^eldmd!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblclndodpdobpbqbrbsbtbubvbwbxbybzbAbBbCbDbEbFbGbdlelflglhliljlklllmlnlolplqlrlsltlulvlwlxlylzlHbqdrdIbJbsdtdudKbLbvdwdxdydzdAdBdCdMbDdEdNbAlBlClDlElFlGlHlIlJlKlLlMlNlOl_e`ePl{eQlRlSlTlUlVlWlXlYlZl0l1ll 2l3l|e}e4l~eaf5l6l7l8lbfcfdfef9l!l#l$l%lffgfhfifjfkflfmfnf'l(l)l*l+l,lOb-l.l/l:lofpf;l=l?lqfrfFdGd@l[l]l^l_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmmmnmompmqmrmsmtmHdIdJdPbQbRbSbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7bumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmQm8bKdLd9b!bMdNdOd#b$bPdQdRdSdTdUdVdWd%bXdYd'bRmSmTmUmVmWmXmYmZm0m1m2m3m4m5msftf6muf7m8m9m!m#m$m%m'm(m)m*m+mm ,m-mvfwf.mxfyf/m:m;m=mzfAfBfCf?m@m[m]m^mDfEfFfGfHfIfJfKfLf_m`m{m|m}m~m(banbncndnMfNfenfngnOfPfZd0dhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKn1d2d3d)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_b`b{b|bLnMnNnOnPnQnRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n}b4d5d~bac6d7d8dbccc9d!d#d$d%d'd(d)ddc*d+dec8n9n!n#n$n%n'n(n)n*n+n,n-n.n/nQfRf:nSf;n=n?n@n[n]n^n_n`n{n|n}nn ~naoTfUfboVfWfcodoeofoXfYfZf0fgohoiojoko1f2f3f4f5f6f7f8f9flomonooopoqofcrosotouo!f#fvowoxo$f%f,d-dyozoAoBoCoDoEoFoGoHoIoJoKoLoMoNoOoPoQoRoSoToUoVoWoXoYoZo0o1o.d/d:dgchcicjckclcmcncocpcqcrcsctcucvcwcxcyc2o3o4o5o6o7o8o9o!o#o$o%o'o(o)o*o+o,o-o.o/o:o;o
19 os.chdir(directory) 2o zcAcp q BcCcDcr s EcFcGcHcIcJcKcLct McNcu VgWgXgYgZg0g1g2g3g4g5g6g7g8g9g;d=d!g?d#g$g%g'g(g)g*g+g,g-g.g/gh :g;g@d[d=g]d^d?g@g[g]g_d`d{d|d^g_g`g{g|g}d~daebecedeeefege}g~gahbhchdhv ehfhghhhheieihjhkhjekeOcPclhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhQcRcScw x y z A B C D E F G H I J K L M N O PhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#hP TcUcQ R VcWcXcS T YcZc0c1c2c3c4c5cU 6c7cV $h%h'h(h)h*h+h,h-h.h/h:h;h=h?hleme@hne[h]h^h_h`h{h|h}h~haibicii dieioepefiqeregihiiijiseteuevekiliminioiwexeyezeAeBeCeDeEepiqirisitiuiW viwixiyiFeGeziAiBiHeIe8c9cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i!c#c$cX Y Z 0 1 2 3 4 5 6 7 8 9 ! # $ % ' ( 6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i) %c'c* + (c)c*c, - +c,c-c.c/c:c;c=c. ?c@c/ ]i^i_i`i{i|i}i~iajbjcjdjejfjgjJeKehjLeijjjkjljmjnjojpjqjrjsjtjj ujvjMeNewjOePexjyjzjAjQeReSeTeBjCjDjEjFjUeVeWeXeYeZe0e1e2eGjHjIjJjKjLj: MjNjOjPj3e4eQjRjSj5e6e[c]cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j^c_c`c; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebfb:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikgb{c|chbib}c~cadjbkbbdcdddedfdgdhdidlbjdkdmbjkkklkmknkokpkqkrksktkukvkwkxk7e8eyk9ezkAkBkCkDkEkFkGkHkIkJkKkk LkMk!e#eNk$e%eOkPkQkRk'e(e)e*eSkTkUkVkWk+e,e-e.e/e:e;e=e?eXkYkZk0k1k2knb3k4k5k6k@e[e7k8k9k]e^eldmd!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblclndodpdobpbqbrbsbtbubvbwbxbybzbAbBbCbDbEbFbGbdlelflglhliljlklllmlnlolplqlrlsltlulvlwlxlylzlHbqdrdIbJbsdtdudKbLbvdwdxdydzdAdBdCdMbDdEdNbAlBlClDlElFlGlHlIlJlKlLlMlNlOl_e`ePl{eQlRlSlTlUlVlWlXlYlZl0l1ll 2l3l|e}e4l~eaf5l6l7l8lbfcfdfef9l!l#l$l%lffgfhfifjfkflfmfnf'l(l)l*l+l,lOb-l.l/l:lofpf;l=l?lqfrfFdGd@l[l]l^l_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmmmnmompmqmrmsmtmHdIdJdPbQbRbSbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7bumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmQm8bKdLd9b!bMdNdOd#b$bPdQdRdSdTdUdVdWd%bXdYd'bRmSmTmUmVmWmXmYmZm0m1m2m3m4m5msftf6muf7m8m9m!m#m$m%m'm(m)m*m+mm ,m-mvfwf.mxfyf/m:m;m=mzfAfBfCf?m@m[m]m^mDfEfFfGfHfIfJfKfLf_m`m{m|m}m~m(banbncndnMfNfenfngnOfPfZd0dhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKn1d2d3d)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_b`b{b|bLnMnNnOnPnQnRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n}b4d5d~bac6d7d8dbccc9d!d#d$d%d'd(d)ddc*d+dec8n9n!n#n$n%n'n(n)n*n+n,n-n.n/nQfRf:nSf;n=n?n@n[n]n^n_n`n{n|n}nn ~naoTfUfboVfWfcodoeofoXfYfZf0fgohoiojoko1f2f3f4f5f6f7f8f9flomonooopoqofcrosotouo!f#fvowoxo$f%f,d-dyozoAoBoCoDoEoFoGoHoIoJoKoLoMoNoOoPoQoRoSoToUoVoWoXoYoZo0o1o.d/d:dgchcicjckclcmcncocpcqcrcsctcucvcwcxcyc2o3o4o5o6o7o8o9o!o#o$o%o'o(o)o*o+o,o-o.o/o:o;o
20 try: 2o zcAcp q BcCcDcr s EcFcGcHcIcJcKcLct McNcu VgWgXgYgZg0g1g2g3g4g5g6g7g8g9g;d=d!g?d#g$g%g'g(g)g*g+g,g-g.g/gh :g;g@d[d=g]d^d?g@g[g]g_d`d{d|d^g_g`g{g|g}d~daebecedeeefege}g~gahbhchdhv ehfhghhhheieihjhkhjekeOcPclhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhQcRcScw x y z A B C D E F G H I J K L M N O PhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#hP TcUcQ R VcWcXcS T YcZc0c1c2c3c4c5cU 6c7cV $h%h'h(h)h*h+h,h-h.h/h:h;h=h?hleme@hne[h]h^h_h`h{h|h}h~haibicii dieioepefiqeregihiiijiseteuevekiliminioiwexeyezeAeBeCeDeEepiqirisitiuiW viwixiyiFeGeziAiBiHeIe8c9cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i!c#c$cX Y Z 0 1 2 3 4 5 6 7 8 9 ! # $ % ' ( 6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i) %c'c* + (c)c*c, - +c,c-c.c/c:c;c=c. ?c@c/ ]i^i_i`i{i|i}i~iajbjcjdjejfjgjJeKehjLeijjjkjljmjnjojpjqjrjsjtjj ujvjMeNewjOePexjyjzjAjQeReSeTeBjCjDjEjFjUeVeWeXeYeZe0e1e2eGjHjIjJjKjLj: MjNjOjPj3e4eQjRjSj5e6e[c]cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j^c_c`c; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebfb:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikgb{c|chbib}c~cadjbkbbdcdddedfdgdhdidlbjdkdmbjkkklkmknkokpkqkrksktkukvkwkxk7e8eyk9ezkAkBkCkDkEkFkGkHkIkJkKkk LkMk!e#eNk$e%eOkPkQkRk'e(e)e*eSkTkUkVkWk+e,e-e.e/e:e;e=e?eXkYkZk0k1k2knb3k4k5k6k@e[e7k8k9k]e^eldmd!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblclndodpdobpbqbrbsbtbubvbwbxbybzbAbBbCbDbEbFbGbdlelflglhliljlklllmlnlolplqlrlsltlulvlwlxlylzlHbqdrdIbJbsdtdudKbLbvdwdxdydzdAdBdCdMbDdEdNbAlBlClDlElFlGlHlIlJlKlLlMlNlOl_e`ePl{eQlRlSlTlUlVlWlXlYlZl0l1ll 2l3l|e}e4l~eaf5l6l7l8lbfcfdfef9l!l#l$l%lffgfhfifjfkflfmfnf'l(l)l*l+l,lOb-l.l/l:lofpf;l=l?lqfrfFdGd@l[l]l^l_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmmmnmompmqmrmsmtmHdIdJdPbQbRbSbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7bumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmQm8bKdLd9b!bMdNdOd#b$bPdQdRdSdTdUdVdWd%bXdYd'bRmSmTmUmVmWmXmYmZm0m1m2m3m4m5msftf6muf7m8m9m!m#m$m%m'm(m)m*m+mm ,m-mvfwf.mxfyf/m:m;m=mzfAfBfCf?m@m[m]m^mDfEfFfGfHfIfJfKfLf_m`m{m|m}m~m(banbncndnMfNfenfngnOfPfZd0dhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKn1d2d3d)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_b`b{b|bLnMnNnOnPnQnRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n}b4d5d~bac6d7d8dbccc9d!d#d$d%d'd(d)ddc*d+dec8n9n!n#n$n%n'n(n)n*n+n,n-n.n/nQfRf:nSf;n=n?n@n[n]n^n_n`n{n|n}nn ~naoTfUfboVfWfcodoeofoXfYfZf0fgohoiojoko1f2f3f4f5f6f7f8f9flomonooopoqofcrosotouo!f#fvowoxo$f%f,d-dyozoAoBoCoDoEoFoGoHoIoJoKoLoMoNoOoPoQoRoSoToUoVoWoXoYoZo0o1o.d/d:dgchcicjckclcmcncocpcqcrcsctcucvcwcxcyc2o3o4o5o6o7o8o9o!o#o$o%o'o(o)o*o+o,o-o.o/o:o;o
21 yield 2o zcAcp q BcCcDcr s EcFcGcHcIcJcKcLct McNcu VgWgXgYgZg0g1g2g3g4g5g6g7g8g9g;d=d!g?d#g$g%g'g(g)g*g+g,g-g.g/gh :g;g@d[d=g]d^d?g@g[g]g_d`d{d|d^g_g`g{g|g}d~daebecedeeefege}g~gahbhchdhv ehfhghhhheieihjhkhjekeOcPclhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhQcRcScw x y z A B C D E F G H I J K L M N O PhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#hP TcUcQ R VcWcXcS T YcZc0c1c2c3c4c5cU 6c7cV $h%h'h(h)h*h+h,h-h.h/h:h;h=h?hleme@hne[h]h^h_h`h{h|h}h~haibicii dieioepefiqeregihiiijiseteuevekiliminioiwexeyezeAeBeCeDeEepiqirisitiuiW viwixiyiFeGeziAiBiHeIe8c9cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i!c#c$cX Y Z 0 1 2 3 4 5 6 7 8 9 ! # $ % ' ( 6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i) %c'c* + (c)c*c, - +c,c-c.c/c:c;c=c. ?c@c/ ]i^i_i`i{i|i}i~iajbjcjdjejfjgjJeKehjLeijjjkjljmjnjojpjqjrjsjtjj ujvjMeNewjOePexjyjzjAjQeReSeTeBjCjDjEjFjUeVeWeXeYeZe0e1e2eGjHjIjJjKjLj: MjNjOjPj3e4eQjRjSj5e6e[c]cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j^c_c`c; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebfb:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikgb{c|chbib}c~cadjbkbbdcdddedfdgdhdidlbjdkdmbjkkklkmknkokpkqkrksktkukvkwkxk7e8eyk9ezkAkBkCkDkEkFkGkHkIkJkKkk LkMk!e#eNk$e%eOkPkQkRk'e(e)e*eSkTkUkVkWk+e,e-e.e/e:e;e=e?eXkYkZk0k1k2knb3k4k5k6k@e[e7k8k9k]e^eldmd!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblclndodpdobpbqbrbsbtbubvbwbxbybzbAbBbCbDbEbFbGbdlelflglhliljlklllmlnlolplqlrlsltlulvlwlxlylzlHbqdrdIbJbsdtdudKbLbvdwdxdydzdAdBdCdMbDdEdNbAlBlClDlElFlGlHlIlJlKlLlMlNlOl_e`ePl{eQlRlSlTlUlVlWlXlYlZl0l1ll 2l3l|e}e4l~eaf5l6l7l8lbfcfdfef9l!l#l$l%lffgfhfifjfkflfmfnf'l(l)l*l+l,lOb-l.l/l:lofpf;l=l?lqfrfFdGd@l[l]l^l_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmmmnmompmqmrmsmtmHdIdJdPbQbRbSbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7bumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmQm8bKdLd9b!bMdNdOd#b$bPdQdRdSdTdUdVdWd%bXdYd'bRmSmTmUmVmWmXmYmZm0m1m2m3m4m5msftf6muf7m8m9m!m#m$m%m'm(m)m*m+mm ,m-mvfwf.mxfyf/m:m;m=mzfAfBfCf?m@m[m]m^mDfEfFfGfHfIfJfKfLf_m`m{m|m}m~m(banbncndnMfNfenfngnOfPfZd0dhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKn1d2d3d)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_b`b{b|bLnMnNnOnPnQnRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n}b4d5d~bac6d7d8dbccc9d!d#d$d%d'd(d)ddc*d+dec8n9n!n#n$n%n'n(n)n*n+n,n-n.n/nQfRf:nSf;n=n?n@n[n]n^n_n`n{n|n}nn ~naoTfUfboVfWfcodoeofoXfYfZf0fgohoiojoko1f2f3f4f5f6f7f8f9flomonooopoqofcrosotouo!f#fvowoxo$f%f,d-dyozoAoBoCoDoEoFoGoHoIoJoKoLoMoNoOoPoQoRoSoToUoVoWoXoYoZo0o1o.d/d:dgchcicjckclcmcncocpcqcrcsctcucvcwcxcyc2o3o4o5o6o7o8o9o!o#o$o%o'o(o)o*o+o,o-o.o/o:o;o
22 finally:
23 os.chdir(initial_dir) 2o zcAcp q BcCcDcr s EcFcGcHcIcJcKcLct McNcu VgWgXgYgZg0g1g2g3g4g5g6g7g8g9g;d=d!g?d#g$g%g'g(g)g*g+g,g-g.g/gh :g;g@d[d=g]d^d?g@g[g]g_d`d{d|d^g_g`g{g|g}d~daebecedeeefege}g~gahbhchdhv ehfhghhhheieihjhkhjekeOcPclhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhQcRcScw x y z A B C D E F G H I J K L M N O PhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#hP TcUcQ R VcWcXcS T YcZc0c1c2c3c4c5cU 6c7cV $h%h'h(h)h*h+h,h-h.h/h:h;h=h?hleme@hne[h]h^h_h`h{h|h}h~haibicii dieioepefiqeregihiiijiseteuevekiliminioiwexeyezeAeBeCeDeEepiqirisitiuiW viwixiyiFeGeziAiBiHeIe8c9cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i!c#c$cX Y Z 0 1 2 3 4 5 6 7 8 9 ! # $ % ' ( 6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i) %c'c* + (c)c*c, - +c,c-c.c/c:c;c=c. ?c@c/ ]i^i_i`i{i|i}i~iajbjcjdjejfjgjJeKehjLeijjjkjljmjnjojpjqjrjsjtjj ujvjMeNewjOePexjyjzjAjQeReSeTeBjCjDjEjFjUeVeWeXeYeZe0e1e2eGjHjIjJjKjLj: MjNjOjPj3e4eQjRjSj5e6e[c]cTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j^c_c`c; = ? @ [ ] ^ _ ` { | } ~ abbbcbdbebfb:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkhkikgb{c|chbib}c~cadjbkbbdcdddedfdgdhdidlbjdkdmbjkkklkmknkokpkqkrksktkukvkwkxk7e8eyk9ezkAkBkCkDkEkFkGkHkIkJkKkk LkMk!e#eNk$e%eOkPkQkRk'e(e)e*eSkTkUkVkWk+e,e-e.e/e:e;e=e?eXkYkZk0k1k2knb3k4k5k6k@e[e7k8k9k]e^eldmd!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblclndodpdobpbqbrbsbtbubvbwbxbybzbAbBbCbDbEbFbGbdlelflglhliljlklllmlnlolplqlrlsltlulvlwlxlylzlHbqdrdIbJbsdtdudKbLbvdwdxdydzdAdBdCdMbDdEdNbAlBlClDlElFlGlHlIlJlKlLlMlNlOl_e`ePl{eQlRlSlTlUlVlWlXlYlZl0l1ll 2l3l|e}e4l~eaf5l6l7l8lbfcfdfef9l!l#l$l%lffgfhfifjfkflfmfnf'l(l)l*l+l,lOb-l.l/l:lofpf;l=l?lqfrfFdGd@l[l]l^l_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmmmnmompmqmrmsmtmHdIdJdPbQbRbSbTbUbVbWbXbYbZb0b1b2b3b4b5b6b7bumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmQm8bKdLd9b!bMdNdOd#b$bPdQdRdSdTdUdVdWd%bXdYd'bRmSmTmUmVmWmXmYmZm0m1m2m3m4m5msftf6muf7m8m9m!m#m$m%m'm(m)m*m+mm ,m-mvfwf.mxfyf/m:m;m=mzfAfBfCf?m@m[m]m^mDfEfFfGfHfIfJfKfLf_m`m{m|m}m~m(banbncndnMfNfenfngnOfPfZd0dhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKn1d2d3d)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_b`b{b|bLnMnNnOnPnQnRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n}b4d5d~bac6d7d8dbccc9d!d#d$d%d'd(d)ddc*d+dec8n9n!n#n$n%n'n(n)n*n+n,n-n.n/nQfRf:nSf;n=n?n@n[n]n^n_n`n{n|n}nn ~naoTfUfboVfWfcodoeofoXfYfZf0fgohoiojoko1f2f3f4f5f6f7f8f9flomonooopoqofcrosotouo!f#fvowoxo$f%f,d-dyozoAoBoCoDoEoFoGoHoIoJoKoLoMoNoOoPoQoRoSoToUoVoWoXoYoZo0o1o.d/d:dgchcicjckclcmcncocpcqcrcsctcucvcwcxcyc2o3o4o5o6o7o8o9o!o#o$o%o'o(o)o*o+o,o-o.o/o:o;o
26def build_logs_response(*logs: dict[str, Any]) -> str: 1abcdefg
27 """Helper to create NDJSON build logs response."""
28 return "\n".join(json.dumps(log) for log in logs) 2xDyDzDADBDCDDDEDFDGDHD;d=d?dh @d[d]d^d'f_d`d{d|d}d~daebecedeeefegeheiejeke(f)f*f^u+f_u,f`u-f.f{u|u/f}u:fIDJDKDLDMDNDODPDQDRDSDlemenei oepeqere;fseteuevewexeyezeAeBeCeDeEeFeGeHeIe=f?f@f~u[fav]fbv^f_fcvdv`fev{fTDUDVDWDXDYDZD0D1D2D3DJeKeLej MeNeOePe|fQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5e6e}f~fagfvbggvcghvdgegivjvfgkvgg4D5D6D7D8D9D!D#D$D%D'D7e8e9ek !e#e$e%ehg'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^eigjgkglvlgmvmgnvngogovpvpgqvqg(D)D*D+D,D-D.D/D:D;D=D_e`e{el |e}e~eafrgbfcfdfefffgfhfifjfkflfmfnfofpfqfrfsgtgugrvvgsvwgtvxgyguvvvzgwvAg?D@D[D]D^D_D`D{D|D}D~Dsftfufm vfwfxfyfBgzfAfBfCfDfEfFfGfHfIfJfKfLfMfNfOfPfCgDgEgxvFgyvGgzvHgIgAvBvJgCvKgaEbEcEdEeEfEgEhEiEjEkEQfRfSfn TfUfVfWfLgXfYfZf0f1f2f3f4f5f6f7f8f9f!f#f$f%fMgNgOgDvPgEvQgFvRgSgGvHvTgIvUg
31class _SnapshotResult(Result): 1abcdefg
32 @property 1abcdefg
33 def output(self) -> str: 1abcdefg
34 output = dedent(super().output.replace("\u200b", "")).strip() 2=o?o@o[o]o^o_o`o{o|o}oo ~oapbpcpdpepfpgpp q hpr s ipjpkplpmpnpopppt qprpsptpupvpwpu h 'f(fxpypzpAp)f*fBp+f,fCpDp-fEpFp.f/f:fGpHpIpJpKpLpMpNpOpPpQpRpSpTpUpVpw Wpx y z A B C XpYpZp0pD 1pE 2pF G H I J K L M 3p4pN O 5p6p7p8p9p!p#p$p%p'p(p)pP *p+p,p-p.p/p:p;pQ R =pS T ?p@p[p]p^p_p`p{pU |p}p~paqbqcqdqV i ;f=feqfqgqhq?f@fiq[f]fjqkq^flqmq_f`f{fnqoqpqqqrqsqtquqvqwqxqyqzqAqBqCqX DqY Z 0 1 2 3 EqFqGqHq4 Iq5 Jq6 7 8 9 ! # $ % KqLq' ( MqNqOqPqQqRqSqTqUqVqWqXq) YqZq0q1q2q3q4q5q* + 6q, - 7q8q9q!q#q$q%q'q. (q)q*q+q,q-q.q/ j |f}f/q:q;q=q~fag?qbgcg@q[qdg]q^qegfggg_q`q{q|q}q~qarbrcrdrerfrgrhrirjr; kr= ? @ [ ] ^ lrmrnror_ pr` qr{ | } ~ abbbcbdbrrsrebfbtrurvrwrxryrzrArBrCrDrErgbFrGrHrIrJrKrLrMrhbibNrjbkbOrPrQrRrSrTrUrVrlbWrXrYrZr0r1r2rmbk hgig3r4r5r6rjgkg7rlgmg8r9rng!r#rogpgqg$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@rob[rpbqbrbsbtbub]r^r_r`rvb{rwb|rxbybzbAbBbCbDbEb}r~rFbGbasbscsdsesfsgshsisjskslsHbmsnsospsqsrssstsIbJbusKbLbvswsxsyszsAsBsCsMbDsEsFsGsHsIsJsNbl rgsgKsLsMsNstgugOsvgwgPsQsxgRsSsygzgAgTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8sPb9sQbRbSbTbUbVb!s#s$s%sWb'sXb(sYbZb0b1b2b3b4b5b)s*s6b7b+s,s-s.s/s:s;s=s?s@s[s]s8b^s_s`s{s|s}s~sat9b!bbt#b$bctdtetftgthtitjt%bktltmtntotptqt'bm BgCgrtstttutDgEgvtFgGgwtxtHgytztIgJgKgAtBtCtDtEtFtGtHtItJtKtLtMtNtOtPt)bQt*b+b,b-b.b/bRtStTtUt:bVt;bWt=b?b@b[b]b^b_b`bXtYt{b|bZt0t1t2t3t4t5t6t7t8t9t!t}b#t$t%t't(t)t*t+t~bac,tbccc-t.t/t:t;t=t?t@tdc[t]t^t_t`t{t|tecn LgMg}t~taubuNgOgcuPgQgdueuRgfuguSgTgUghuiujukulumunuoupuqurusutuuuvuwugcxuhcicjckclcmcyuzuAuBuncCuocDupcqcrcsctcucvcwcEuFuxcycGu
35 return "\n".join(line.rstrip() for line in output.splitlines()) 2=o?o@o[o]o^o_o`o{o|o}oo ~oapbpcpdpepfpgpp q hpr s ipjpkplpmpnpopppt qprpsptpupvpwpu h 'f(fxpypzpAp)f*fBp+f,fCpDp-fEpFp.f/f:fGpHpIpJpKpLpMpNpOpPpQpRpSpTpUpVpw Wpx y z A B C XpYpZp0pD 1pE 2pF G H I J K L M 3p4pN O 5p6p7p8p9p!p#p$p%p'p(p)pP *p+p,p-p.p/p:p;pQ R =pS T ?p@p[p]p^p_p`p{pU |p}p~paqbqcqdqV i ;f=feqfqgqhq?f@fiq[f]fjqkq^flqmq_f`f{fnqoqpqqqrqsqtquqvqwqxqyqzqAqBqCqX DqY Z 0 1 2 3 EqFqGqHq4 Iq5 Jq6 7 8 9 ! # $ % KqLq' ( MqNqOqPqQqRqSqTqUqVqWqXq) YqZq0q1q2q3q4q5q* + 6q, - 7q8q9q!q#q$q%q'q. (q)q*q+q,q-q.q/ j |f}f/q:q;q=q~fag?qbgcg@q[qdg]q^qegfggg_q`q{q|q}q~qarbrcrdrerfrgrhrirjr; kr= ? @ [ ] ^ lrmrnror_ pr` qr{ | } ~ abbbcbdbrrsrebfbtrurvrwrxryrzrArBrCrDrErgbFrGrHrIrJrKrLrMrhbibNrjbkbOrPrQrRrSrTrUrVrlbWrXrYrZr0r1r2rmbk hgig3r4r5r6rjgkg7rlgmg8r9rng!r#rogpgqg$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@rob[rpbqbrbsbtbub]r^r_r`rvb{rwb|rxbybzbAbBbCbDbEb}r~rFbGbasbscsdsesfsgshsisjskslsHbmsnsospsqsrssstsIbJbusKbLbvswsxsyszsAsBsCsMbDsEsFsGsHsIsJsNbl rgsgKsLsMsNstgugOsvgwgPsQsxgRsSsygzgAgTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8sPb9sQbRbSbTbUbVb!s#s$s%sWb'sXb(sYbZb0b1b2b3b4b5b)s*s6b7b+s,s-s.s/s:s;s=s?s@s[s]s8b^s_s`s{s|s}s~sat9b!bbt#b$bctdtetftgthtitjt%bktltmtntotptqt'bm BgCgrtstttutDgEgvtFgGgwtxtHgytztIgJgKgAtBtCtDtEtFtGtHtItJtKtLtMtNtOtPt)bQt*b+b,b-b.b/bRtStTtUt:bVt;bWt=b?b@b[b]b^b_b`bXtYt{b|bZt0t1t2t3t4t5t6t7t8t9t!t}b#t$t%t't(t)t*t+t~bac,tbccc-t.t/t:t;t=t?t@tdc[t]t^t_t`t{t|tecn LgMg}t~taubuNgOgcuPgQgdueuRgfuguSgTgUghuiujukulumunuoupuqurusutuuuvuwugcxuhcicjckclcmcyuzuAuBuncCuocDupcqcrcsctcucvcwcEuFuxcycGu
38class SnapshotCliRunner(CliRunner): 1abcdefg
39 """Return normalized CLI output suitable for inline snapshots."""
41 terminal_width = 80 1abcdefg
43 def invoke( 1abcdefg
44 self,
45 app: Typer,
46 args: str | Sequence[str] | None = None,
47 input: bytes | str | None = None,
48 env: Mapping[str, str | None] | None = None,
49 catch_exceptions: bool = True,
50 color: bool = False,
51 **extra: Any,
52 ) -> _SnapshotResult:
53 env = { 2JvKvLvMv=oNvOvPv?o@oQv[oRv]o^o_o`oSvTv{o|o}oUvVvWvXvo ~oapYvZv0v1vbpcp2v3v4vdpep5vfpzcgpAc6v7vp q BcCc8v9vDchpr s Ecip!v#v$v%vjpkpFclpGcmpHc'v(vIcnpopJc)v*vKc+vLc,v-v.v/vppt :vMcqprpNc;v=v?v@v[vsptpup]vvpwp^v_v`v{vu h 'f(fxp|vypzpAp}v)f*f~vBp^u+f_u,fCpOcawDpbwcw`u-fPcdwEpFpewfw.fgw{u|u/f}u:fGpHphwIpJpiwjwkwKpLpMpNplwOpmwPpQpRpnwowpwqwQcSprwRcswtwuwScvwTpUpwwxwywzwAwBwCwDwEwVpw Wpx y z A B C FwGwXpYpHwIwZp0pD JwKwLw1pE 2pF G H I J K L MwNwOwPwQwRwSwM 3p4pN O Tw5pUwVwWwXw6pYwZw0w7p8p1w9p2w!p#p$p%p3w4w'p(p)p5w6w7w8wP *p+p9w!w#w$w,p-p%w'w(w.p/p)w:pTc;pUc*w+wQ R VcWc,w-wXc=pS T Yc?p.w/w:w;w@p[pZc]p0c^p1c=w?w2c_p`p3c@w[w4c]w5c^w_w`w{w{pU |w6c|p}p7c}w~waxbxcx~paqbqdxcqdqexfxgxhxV i ;f=feqixfqgqhqjx?f@fkxiq~u[fav]fjq8clxkqmxnxbv^f9coxlqmqpxqx_frxcvdv`fev{fnqoqsxpqqqtxuxvxrqsqtquqwxvqxxwqxqyqyxzxAxBx!czqCx#cDxExFx$cGxAqBqHxIxJxKxLxMxNxOxPxCqX DqY Z 0 1 2 3 QxRxEqFqSxTxGqHq4 UxVxWxIq5 Jq6 7 8 9 ! # $ XxYxZx0x1x2x3x% KqLq' ( 4xMq5x6x7x8xNq9x!x#xOqPq$xQq%xRqSqTqUq'x(xVqWqXq)x*x+x,x) YqZq-x.x/x:x0q1q;x=x?x2q3q@x4q%c5q'c[x]x* + (c)c^x_x*c6q, - +c7q`x{x|x}x8q9q,c!q-c#q.c~xay/c$q%q:cbycy;cdy=ceyfygyhy'q. iy?c(q)q@cjykylymyny*q+q,qoy-q.qpyqyrysy/ j |f}f/qty:q;q=quy~fagvy?qfvbggvcg@q[cwy[qxyyyhvdg]czy]q^qAyByegCyivjvfgkvgg_q`qDy{q|qEyFyGy}q~qarbrHycrIydrerfrJyKyLyMy^cgrNy_cOyPyQy`cRyhrirSyTyUyVyWyXyYyZy0yjr; kr= ? @ [ ] ^ 1y2ylrmr3y4ynror_ 5y6y7ypr` qr{ | } ~ abbbcb8y9y!y#y$y%y'ydbrrsrebfb(ytr)y*y+y,yur-y.y/yvrwr:yxr;yyrzrArBr=y?yCrDrEr@y[y]y^ygbFrGr_y`y{y|yHrIr}y~yazJrKrbzLr{cMr|cczdzhbib}c~cezfzadNrjbkbbdOrgzhzizjzPrQrcdRrddSredkzlzfdTrUrgdmznzhdozidpzqzrzszVrlbtzjdWrXrkduzvzwzxzyzYrZr0rzz1r2rAzBzCzDzmbk hgig3rEz4r5r6rFzjgkgGz7rlvlgmvmg8rldHz9rIzJznvngmdKz!r#rLzMzogNzovpvpgqvqg$r%rOz'r(rPzQzRz)r*r+r,rSz-rTz.r/r:rUzVzWzXznd;rYzodZz0z1zpd2z=r?r3z4z5z6z7z8z9z!z#z@rob[rpbqbrbsbtbub$z%z]r^r'z(z_r`rvb)z*z+z{rwb|rxbybzbAbBbCbDb,z-z.z/z:z;z=zEb}r~rFbGb?zas@z[z]z^zbs_z`z{zcsds|zes}zfsgshsis~zaAjskslsbAcAdAeAHbmsnsfAgAhAiAospsjAkAlAqsrsmAssqdtsrdnAoAIbJbsdtdpAqAudusKbLbvdvsrAsAtAuAwsxswdysxdzsydvAwAzdAsBsAdxAyABdzACdAABACADACsMbEADdDsEsEdFAGAHAIAJAFsGsHsKAIsJsLAMANAOANbl rgsgKsPALsMsNsQAtgugRAOsrvvgsvwgPsFdSAQsTAUAtvxgGdVARsSsWAXAygYAuvvvzgwvAgTsUsZAVsWs0A1A2AXsYsZs0s3A1s4A2s3s4s5A6A7A8AHd5s9AId!A#A$AJd%A6s7s'A(A)A*A+A,A-A.A/A8sPb9sQbRbSbTbUbVb:A;A!s#s=A?A$s%sWb@A[A]A'sXb(sYbZb0b1b2b3b4b^A_A`A{A|A}A~A5b)s*s6b7baB+sbBcBdBeB,sfBgBhB-s.siB/sjB:s;s=s?skBlB@s[s]smBnBoBpB8b^s_sqBrBsBtB`s{suBvBwB|s}sxB~sKdatLdyBzB9b!bMdNdABBBOdbt#b$bPdctCBDBEBFBdtetQdftRdgtSdGBHBTdhtitUdIBJBVdKBWdLBMBNBOBjt%bPBXdktltYdQBRBSBTBUBmtntotVBptqtWBXBYBZB'bm BgCgrt0Bstttut1BDgEg2BvtxvFgyvGgwtZd3Bxt4B5BzvHg0d6Bytzt7B8BIg9BAvBvJgCvKgAtBt!BCtDt#B$B%BEtFtGtHt'BIt(BJtKtLt)B*B+B,B1dMt-B2d.B/B:B3d;BNtOt=B?B@B[B]B^B_B`B{BPt)bQt*b+b,b-b.b/b|B}BRtSt~BaCTtUt:bbCcCdCVt;bWt=b?b@b[b]b^b_beCfCgChCiCjCkC`bXtYt{b|blCZtmCnCoCpC0tqCrCsC1t2ttC3tuC4t5t6t7tvCwC8t9t!txCyCzCAC}b#t$tBCCCDCEC%t'tFCGCHC(t)tIC*t4d+t5dJCKC~bac6d7dLCMC8d,tbccc9d-tNCOCPCQC.t/t!d:t#d;t$dRCSC%d=t?t'dTCUC(dVC)dWCXCYCZC@tdc0C*d[t]t+d1C2C3C4C5C^t_t`t6C{t|t7C8C9C!Cecn LgMg}t#C~taubu$CNgOg%CcuDvPgEvQgdu,d'Ceu(C)CFvRg-d*Cfugu+C,CSg-CGvHvTgIvUghuiu.Cjuku/C:C;Clumunuou=Cpu?Cqurusu@C[C]C^C.dtu_C/d`C{C|C:d}Cuuvu~CaDbDcDdDeDfDgDhDwugcxuhcicjckclcmciDjDyuzukDlDAuBuncmDnDoDCuocDupcqcrcsctcucvcpDqDrDsDtDuDvDwcEuFuxcycwDGu
54 **(env or {}),
55 # Rich reserves the final column on legacy Windows terminals.
56 "COLUMNS": str(self.terminal_width + int(detect_legacy_windows())),
57 }
58 result = super().invoke( 2JvKvLvMv=oNvOvPv?o@oQv[oRv]o^o_o`oSvTv{o|o}oUvVvWvXvo ~oapYvZv0v1vbpcp2v3v4vdpep5vfpzcgpAc6v7vp q BcCc8v9vDchpr s Ecip!v#v$v%vjpkpFclpGcmpHc'v(vIcnpopJc)v*vKc+vLc,v-v.v/vppt :vMcqprpNc;v=v?v@v[vsptpup]vvpwp^v_v`v{vu h 'f(fxp|vypzpAp}v)f*f~vBp^u+f_u,fCpOcawDpbwcw`u-fPcdwEpFpewfw.fgw{u|u/f}u:fGpHphwIpJpiwjwkwKpLpMpNplwOpmwPpQpRpnwowpwqwQcSprwRcswtwuwScvwTpUpwwxwywzwAwBwCwDwEwVpw Wpx y z A B C FwGwXpYpHwIwZp0pD JwKwLw1pE 2pF G H I J K L MwNwOwPwQwRwSwM 3p4pN O Tw5pUwVwWwXw6pYwZw0w7p8p1w9p2w!p#p$p%p3w4w'p(p)p5w6w7w8wP *p+p9w!w#w$w,p-p%w'w(w.p/p)w:pTc;pUc*w+wQ R VcWc,w-wXc=pS T Yc?p.w/w:w;w@p[pZc]p0c^p1c=w?w2c_p`p3c@w[w4c]w5c^w_w`w{w{pU |w6c|p}p7c}w~waxbxcx~paqbqdxcqdqexfxgxhxV i ;f=feqixfqgqhqjx?f@fkxiq~u[fav]fjq8clxkqmxnxbv^f9coxlqmqpxqx_frxcvdv`fev{fnqoqsxpqqqtxuxvxrqsqtquqwxvqxxwqxqyqyxzxAxBx!czqCx#cDxExFx$cGxAqBqHxIxJxKxLxMxNxOxPxCqX DqY Z 0 1 2 3 QxRxEqFqSxTxGqHq4 UxVxWxIq5 Jq6 7 8 9 ! # $ XxYxZx0x1x2x3x% KqLq' ( 4xMq5x6x7x8xNq9x!x#xOqPq$xQq%xRqSqTqUq'x(xVqWqXq)x*x+x,x) YqZq-x.x/x:x0q1q;x=x?x2q3q@x4q%c5q'c[x]x* + (c)c^x_x*c6q, - +c7q`x{x|x}x8q9q,c!q-c#q.c~xay/c$q%q:cbycy;cdy=ceyfygyhy'q. iy?c(q)q@cjykylymyny*q+q,qoy-q.qpyqyrysy/ j |f}f/qty:q;q=quy~fagvy?qfvbggvcg@q[cwy[qxyyyhvdg]czy]q^qAyByegCyivjvfgkvgg_q`qDy{q|qEyFyGy}q~qarbrHycrIydrerfrJyKyLyMy^cgrNy_cOyPyQy`cRyhrirSyTyUyVyWyXyYyZy0yjr; kr= ? @ [ ] ^ 1y2ylrmr3y4ynror_ 5y6y7ypr` qr{ | } ~ abbbcb8y9y!y#y$y%y'ydbrrsrebfb(ytr)y*y+y,yur-y.y/yvrwr:yxr;yyrzrArBr=y?yCrDrEr@y[y]y^ygbFrGr_y`y{y|yHrIr}y~yazJrKrbzLr{cMr|cczdzhbib}c~cezfzadNrjbkbbdOrgzhzizjzPrQrcdRrddSredkzlzfdTrUrgdmznzhdozidpzqzrzszVrlbtzjdWrXrkduzvzwzxzyzYrZr0rzz1r2rAzBzCzDzmbk hgig3rEz4r5r6rFzjgkgGz7rlvlgmvmg8rldHz9rIzJznvngmdKz!r#rLzMzogNzovpvpgqvqg$r%rOz'r(rPzQzRz)r*r+r,rSz-rTz.r/r:rUzVzWzXznd;rYzodZz0z1zpd2z=r?r3z4z5z6z7z8z9z!z#z@rob[rpbqbrbsbtbub$z%z]r^r'z(z_r`rvb)z*z+z{rwb|rxbybzbAbBbCbDb,z-z.z/z:z;z=zEb}r~rFbGb?zas@z[z]z^zbs_z`z{zcsds|zes}zfsgshsis~zaAjskslsbAcAdAeAHbmsnsfAgAhAiAospsjAkAlAqsrsmAssqdtsrdnAoAIbJbsdtdpAqAudusKbLbvdvsrAsAtAuAwsxswdysxdzsydvAwAzdAsBsAdxAyABdzACdAABACADACsMbEADdDsEsEdFAGAHAIAJAFsGsHsKAIsJsLAMANAOANbl rgsgKsPALsMsNsQAtgugRAOsrvvgsvwgPsFdSAQsTAUAtvxgGdVARsSsWAXAygYAuvvvzgwvAgTsUsZAVsWs0A1A2AXsYsZs0s3A1s4A2s3s4s5A6A7A8AHd5s9AId!A#A$AJd%A6s7s'A(A)A*A+A,A-A.A/A8sPb9sQbRbSbTbUbVb:A;A!s#s=A?A$s%sWb@A[A]A'sXb(sYbZb0b1b2b3b4b^A_A`A{A|A}A~A5b)s*s6b7baB+sbBcBdBeB,sfBgBhB-s.siB/sjB:s;s=s?skBlB@s[s]smBnBoBpB8b^s_sqBrBsBtB`s{suBvBwB|s}sxB~sKdatLdyBzB9b!bMdNdABBBOdbt#b$bPdctCBDBEBFBdtetQdftRdgtSdGBHBTdhtitUdIBJBVdKBWdLBMBNBOBjt%bPBXdktltYdQBRBSBTBUBmtntotVBptqtWBXBYBZB'bm BgCgrt0Bstttut1BDgEg2BvtxvFgyvGgwtZd3Bxt4B5BzvHg0d6Bytzt7B8BIg9BAvBvJgCvKgAtBt!BCtDt#B$B%BEtFtGtHt'BIt(BJtKtLt)B*B+B,B1dMt-B2d.B/B:B3d;BNtOt=B?B@B[B]B^B_B`B{BPt)bQt*b+b,b-b.b/b|B}BRtSt~BaCTtUt:bbCcCdCVt;bWt=b?b@b[b]b^b_beCfCgChCiCjCkC`bXtYt{b|blCZtmCnCoCpC0tqCrCsC1t2ttC3tuC4t5t6t7tvCwC8t9t!txCyCzCAC}b#t$tBCCCDCEC%t'tFCGCHC(t)tIC*t4d+t5dJCKC~bac6d7dLCMC8d,tbccc9d-tNCOCPCQC.t/t!d:t#d;t$dRCSC%d=t?t'dTCUC(dVC)dWCXCYCZC@tdc0C*d[t]t+d1C2C3C4C5C^t_t`t6C{t|t7C8C9C!Cecn LgMg}t#C~taubu$CNgOg%CcuDvPgEvQgdu,d'Ceu(C)CFvRg-d*Cfugu+C,CSg-CGvHvTgIvUghuiu.Cjuku/C:C;Clumunuou=Cpu?Cqurusu@C[C]C^C.dtu_C/d`C{C|C:d}Cuuvu~CaDbDcDdDeDfDgDhDwugcxuhcicjckclcmciDjDyuzukDlDAuBuncmDnDoDCuocDupcqcrcsctcucvcpDqDrDsDtDuDvDwcEuFuxcycwDGu
59 app,
60 args,
61 input=input,
62 env=env,
63 catch_exceptions=catch_exceptions,
64 color=color,
65 **extra,
66 )
67 return _SnapshotResult( 2JvKvLvMv=oNvOvPv?o@oQv[oRv]o^o_o`oSvTv{o|o}oUvVvWvXvo ~oapYvZv0v1vbpcp2v3v4vdpep5vfpzcgpAc6v7vp q BcCc8v9vDchpr s Ecip!v#v$v%vjpkpFclpGcmpHc'v(vIcnpopJc)v*vKc+vLc,v-v.v/vppt :vMcqprpNc;v=v?v@v[vsptpup]vvpwp^v_v`v{vu h 'f(fxp|vypzpAp}v)f*f~vBp^u+f_u,fCpOcawDpbwcw`u-fPcdwEpFpewfw.fgw{u|u/f}u:fGpHphwIpJpiwjwkwKpLpMpNplwOpmwPpQpRpnwowpwqwQcSprwRcswtwuwScvwTpUpwwxwywzwAwBwCwDwEwVpw Wpx y z A B C FwGwXpYpHwIwZp0pD JwKwLw1pE 2pF G H I J K L MwNwOwPwQwRwSwM 3p4pN O Tw5pUwVwWwXw6pYwZw0w7p8p1w9p2w!p#p$p%p3w4w'p(p)p5w6w7w8wP *p+p9w!w#w$w,p-p%w'w(w.p/p)w:pTc;pUc*w+wQ R VcWc,w-wXc=pS T Yc?p.w/w:w;w@p[pZc]p0c^p1c=w?w2c_p`p3c@w[w4c]w5c^w_w`w{w{pU |w6c|p}p7c}w~waxbxcx~paqbqdxcqdqexfxgxhxV i ;f=feqixfqgqhqjx?f@fkxiq~u[fav]fjq8clxkqmxnxbv^f9coxlqmqpxqx_frxcvdv`fev{fnqoqsxpqqqtxuxvxrqsqtquqwxvqxxwqxqyqyxzxAxBx!czqCx#cDxExFx$cGxAqBqHxIxJxKxLxMxNxOxPxCqX DqY Z 0 1 2 3 QxRxEqFqSxTxGqHq4 UxVxWxIq5 Jq6 7 8 9 ! # $ XxYxZx0x1x2x3x% KqLq' ( 4xMq5x6x7x8xNq9x!x#xOqPq$xQq%xRqSqTqUq'x(xVqWqXq)x*x+x,x) YqZq-x.x/x:x0q1q;x=x?x2q3q@x4q%c5q'c[x]x* + (c)c^x_x*c6q, - +c7q`x{x|x}x8q9q,c!q-c#q.c~xay/c$q%q:cbycy;cdy=ceyfygyhy'q. iy?c(q)q@cjykylymyny*q+q,qoy-q.qpyqyrysy/ j |f}f/qty:q;q=quy~fagvy?qfvbggvcg@q[cwy[qxyyyhvdg]czy]q^qAyByegCyivjvfgkvgg_q`qDy{q|qEyFyGy}q~qarbrHycrIydrerfrJyKyLyMy^cgrNy_cOyPyQy`cRyhrirSyTyUyVyWyXyYyZy0yjr; kr= ? @ [ ] ^ 1y2ylrmr3y4ynror_ 5y6y7ypr` qr{ | } ~ abbbcb8y9y!y#y$y%y'ydbrrsrebfb(ytr)y*y+y,yur-y.y/yvrwr:yxr;yyrzrArBr=y?yCrDrEr@y[y]y^ygbFrGr_y`y{y|yHrIr}y~yazJrKrbzLr{cMr|cczdzhbib}c~cezfzadNrjbkbbdOrgzhzizjzPrQrcdRrddSredkzlzfdTrUrgdmznzhdozidpzqzrzszVrlbtzjdWrXrkduzvzwzxzyzYrZr0rzz1r2rAzBzCzDzmbk hgig3rEz4r5r6rFzjgkgGz7rlvlgmvmg8rldHz9rIzJznvngmdKz!r#rLzMzogNzovpvpgqvqg$r%rOz'r(rPzQzRz)r*r+r,rSz-rTz.r/r:rUzVzWzXznd;rYzodZz0z1zpd2z=r?r3z4z5z6z7z8z9z!z#z@rob[rpbqbrbsbtbub$z%z]r^r'z(z_r`rvb)z*z+z{rwb|rxbybzbAbBbCbDb,z-z.z/z:z;z=zEb}r~rFbGb?zas@z[z]z^zbs_z`z{zcsds|zes}zfsgshsis~zaAjskslsbAcAdAeAHbmsnsfAgAhAiAospsjAkAlAqsrsmAssqdtsrdnAoAIbJbsdtdpAqAudusKbLbvdvsrAsAtAuAwsxswdysxdzsydvAwAzdAsBsAdxAyABdzACdAABACADACsMbEADdDsEsEdFAGAHAIAJAFsGsHsKAIsJsLAMANAOANbl rgsgKsPALsMsNsQAtgugRAOsrvvgsvwgPsFdSAQsTAUAtvxgGdVARsSsWAXAygYAuvvvzgwvAgTsUsZAVsWs0A1A2AXsYsZs0s3A1s4A2s3s4s5A6A7A8AHd5s9AId!A#A$AJd%A6s7s'A(A)A*A+A,A-A.A/A8sPb9sQbRbSbTbUbVb:A;A!s#s=A?A$s%sWb@A[A]A'sXb(sYbZb0b1b2b3b4b^A_A`A{A|A}A~A5b)s*s6b7baB+sbBcBdBeB,sfBgBhB-s.siB/sjB:s;s=s?skBlB@s[s]smBnBoBpB8b^s_sqBrBsBtB`s{suBvBwB|s}sxB~sKdatLdyBzB9b!bMdNdABBBOdbt#b$bPdctCBDBEBFBdtetQdftRdgtSdGBHBTdhtitUdIBJBVdKBWdLBMBNBOBjt%bPBXdktltYdQBRBSBTBUBmtntotVBptqtWBXBYBZB'bm BgCgrt0Bstttut1BDgEg2BvtxvFgyvGgwtZd3Bxt4B5BzvHg0d6Bytzt7B8BIg9BAvBvJgCvKgAtBt!BCtDt#B$B%BEtFtGtHt'BIt(BJtKtLt)B*B+B,B1dMt-B2d.B/B:B3d;BNtOt=B?B@B[B]B^B_B`B{BPt)bQt*b+b,b-b.b/b|B}BRtSt~BaCTtUt:bbCcCdCVt;bWt=b?b@b[b]b^b_beCfCgChCiCjCkC`bXtYt{b|blCZtmCnCoCpC0tqCrCsC1t2ttC3tuC4t5t6t7tvCwC8t9t!txCyCzCAC}b#t$tBCCCDCEC%t'tFCGCHC(t)tIC*t4d+t5dJCKC~bac6d7dLCMC8d,tbccc9d-tNCOCPCQC.t/t!d:t#d;t$dRCSC%d=t?t'dTCUC(dVC)dWCXCYCZC@tdc0C*d[t]t+d1C2C3C4C5C^t_t`t6C{t|t7C8C9C!Cecn LgMg}t#C~taubu$CNgOg%CcuDvPgEvQgdu,d'Ceu(C)CFvRg-d*Cfugu+C,CSg-CGvHvTgIvUghuiu.Cjuku/C:C;Clumunuou=Cpu?Cqurusu@C[C]C^C.dtu_C/d`C{C|C:d}Cuuvu~CaDbDcDdDeDfDgDhDwugcxuhcicjckclcmciDjDyuzukDlDAuBuncmDnDoDCuocDupcqcrcsctcucvcpDqDrDsDtDuDvDwcEuFuxcycwDGu
68 runner=result.runner,
69 stdout_bytes=result.stdout_bytes,
70 stderr_bytes=result.stderr_bytes,
71 output_bytes=result.output_bytes,
72 return_value=result.return_value,
73 exit_code=result.exit_code,
74 exception=result.exception,
75 exc_info=result.exc_info,
76 )
79if sys.platform == "win32": 1abcdefg
81 class Keys: 1cd
82 RIGHT_ARROW = "\xe0M" 1cd
83 DOWN_ARROW = "\xe0P" 1cd
84 ENTER = "\r" 1cd
85 CTRL_C = "\x03" 1cd
86 TAB = "\t" 1cd
87 BACKSPACE = "\x08" 1cd
89else:
91 class Keys: 1abefg
92 RIGHT_ARROW = "\x1b[C" 1abefg
93 DOWN_ARROW = "\x1b[B" 1abefg
94 ENTER = "\r" 1abefg
95 CTRL_C = "\x03" 1abefg
96 TAB = "\t" 1abefg
97 BACKSPACE = "\x7f" 1abefg
100def create_jwt_token(payload: dict[str, Any]) -> str: 1abcdefg
101 # Note: This creates a JWT with an invalid signature, but that's OK for our tests
102 # since we only parse the payload, not verify the signature.
104 header = {"alg": "HS256", "typ": "JWT"} 2a HuIuJuKuLuMuNuv b OuPuQuRuSuTuUuW c VuWuXuYuZu0u1u: d 2u3u4u5u6u7u8unbe 9u!u#u$u%u'u(uObf )u*u+u,u-u.u/u(bg :u;u=u?u@u[u]ufc
105 header_encoded = ( 2a HuIuJuKuLuMuNuv b OuPuQuRuSuTuUuW c VuWuXuYuZu0u1u: d 2u3u4u5u6u7u8unbe 9u!u#u$u%u'u(uObf )u*u+u,u-u.u/u(bg :u;u=u?u@u[u]ufc
106 base64.urlsafe_b64encode(json.dumps(header).encode()).decode().rstrip("=")
107 )
109 payload_encoded = ( 2a HuIuJuKuLuMuNuv b OuPuQuRuSuTuUuW c VuWuXuYuZu0u1u: d 2u3u4u5u6u7u8unbe 9u!u#u$u%u'u(uObf )u*u+u,u-u.u/u(bg :u;u=u?u@u[u]ufc
110 base64.urlsafe_b64encode(json.dumps(payload).encode()).decode().rstrip("=")
111 )
113 signature = base64.urlsafe_b64encode(b"signature").decode().rstrip("=") 2a HuIuJuKuLuMuNuv b OuPuQuRuSuTuUuW c VuWuXuYuZu0u1u: d 2u3u4u5u6u7u8unbe 9u!u#u$u%u'u(uObf )u*u+u,u-u.u/u(bg :u;u=u?u@u[u]ufc
115 return f"{header_encoded}.{payload_encoded}.{signature}" 2a HuIuJuKuLuMuNuv b OuPuQuRuSuTuUuW c VuWuXuYuZu0u1u: d 2u3u4u5u6u7u8unbe 9u!u#u$u%u'u(uObf )u*u+u,u-u.u/u(bg :u;u=u?u@u[u]ufc