From 921c08ad684ad5c074a5652ec4f0c3b824616f1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Paulo=20Carvalho?= Date: Sat, 15 Aug 2026 10:50:20 -0300 Subject: [PATCH 1/4] feat: dados de 2026 --- data/2026/inscritos.csv | 180 +++++++++++++++++++++++++++++++++ poetry.lock | 125 +++++++++++++---------- pyproject.toml | 1 + scripts/event3-excel-to-csv.py | 0 scripts/pretix-excel-to-csv.py | 76 ++++++++++++++ 5 files changed, 327 insertions(+), 55 deletions(-) create mode 100644 data/2026/inscritos.csv mode change 100644 => 100755 scripts/event3-excel-to-csv.py create mode 100755 scripts/pretix-excel-to-csv.py diff --git a/data/2026/inscritos.csv b/data/2026/inscritos.csv new file mode 100644 index 0000000..ef5626d --- /dev/null +++ b/data/2026/inscritos.csv @@ -0,0 +1,180 @@ +Produto,Preço,País,Estado,Cupom,Tamanho de camisa,Ano de nascimento,Como você se define?,"Você possui alguma deficiência? Se sim, qual?",Você programa em Python?,Como você classificaria seu nível de conhecimento em Python?,Você trabalha com Python?,Termo de consentimento para tratamento de dados pessoais,Direitos de conteúdo e imagem,Você concorda em compartilhar seus dados com os patrocinadores?,Provedores de pagamento +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,GG - 60cm tórax - 76cm comprimento,1988,Uma pessoa negra,Não,Há mais de três anos,Intermediário,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1964,Uma pessoa amarela,Não,Há mais de dez anos,Intermediário,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,P - 49cm tórax - 66cm comprimento,2006,Uma pessoa branca,Não,Há mais de três anos,Avançado,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2000,Uma pessoa branca,Não respondeu,Comecei no último ano,Intermediário,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,P - 49cm tórax - 66cm comprimento,2006,Prefiro não responder,Não respondeu,Há mais de um ano,Iniciante,"Não, mas pretendo",Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1990,Uma pessoa negra,Não,Há mais de um ano,Iniciante,"Não, mas pretendo",Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1983,Uma pessoa parda,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,4G - 68cm tórax - 80cm comprimento,1995,Uma pessoa parda,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1968,Uma pessoa branca,NAO,Comecei no último ano,Intermediário,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,P - 49cm tórax - 66cm comprimento,2003,Uma pessoa parda,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,PP - 46cm tórax - 63cm comprimento,1999,Uma pessoa branca,Não respondeu,Há mais de três anos,Intermediário,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2004,Uma pessoa parda,Não respondeu,Há mais de um ano,Iniciante,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1994,Uma pessoa branca,Não respondeu,"Não programo em Python, mas sei programar em outras linguagens",Iniciante,Não,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2000,Uma pessoa branca,Não respondeu,"Não programo em Python, mas sei programar em outras linguagens",Iniciante,"Não, mas pretendo",Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1993,Uma pessoa negra,Não,Há mais de três anos,Intermediário,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,GG - 60cm tórax - 76cm comprimento,1991,Uma pessoa branca,Não respondeu,Há mais de dez anos,Avançado,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1995,Uma pessoa negra,NAO,"Não programo em Python, mas sei programar em outras linguagens",Iniciante,Não,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2006,Uma pessoa parda,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1991,Uma pessoa negra,TEA,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (1º lote),0,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,M - 52cm tórax - 70cm comprimento,1999,Uma pessoa parda,nao,Há mais de cinco anos,Intermediário,Sim,Sim,Sim,Não respondeu,Não respondeu +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,GG - 60cm tórax - 76cm comprimento,1982,Uma pessoa branca,TEA,Há mais de dez anos,Avançado,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,GG - 60cm tórax - 76cm comprimento,1990,Uma pessoa negra,Não respondeu,Há mais de cinco anos,Intermediário,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1983,Uma pessoa parda,Não respondeu,Há mais de dez anos,Avançado,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1997,Uma pessoa parda,Não respondeu,Comecei no último ano,Iniciante,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1992,Uma pessoa branca,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1996,Uma pessoa parda,Não respondeu,Há mais de um ano,Intermediário,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,P - 49cm tórax - 66cm comprimento,1994,Uma pessoa branca,Sim multiplas,Há mais de cinco anos,Intermediário,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1985,Uma pessoa branca,Não respondeu,Há mais de três anos,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe +Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1998,Uma pessoa branca,Não respondeu,Há mais de dez anos,Avançado,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (1º lote),0,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,M - 52cm tórax - 70cm comprimento,1997,Uma pessoa negra,Não,"Não programo em Python, mas sei programar em outras linguagens",Iniciante,Não,Sim,Sim,Não respondeu,Não respondeu +Ingresso (1º lote),0,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,M - 52cm tórax - 70cm comprimento,2003,Uma pessoa parda,Não respondeu,Há mais de cinco anos,Intermediário,Sim,Sim,Sim,Não respondeu,Não respondeu +Ingresso (1º lote),0,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,G - 56cm tórax - 73cm comprimento,1993,Uma pessoa negra,Não,Há mais de três anos,Intermediário,Sim,Sim,Sim,Não respondeu,Não respondeu +Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2001,Uma pessoa parda,não,Há mais de um ano,Intermediário,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe +Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1998,Uma pessoa branca,"Sim, possuo baixa mobilidade",Há mais de cinco anos,Avançado,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1993,Uma pessoa branca,Não respondeu,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe +Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1993,Uma pessoa parda,Não respondeu,Não sei programar,Ainda vou aprender,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2003,Uma pessoa parda,Não respondeu,Há mais de cinco anos,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2000,Uma pessoa branca,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1982,Uma pessoa parda,Não respondeu,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,GG - 60cm tórax - 76cm comprimento,2008,Uma pessoa branca,Não respondeu,Comecei no último ano,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,P - 49cm tórax - 66cm comprimento,2007,Uma pessoa branca,Não respondeu,Há mais de um ano,Intermediário,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,P - 49cm tórax - 66cm comprimento,1992,Uma pessoa negra,Não,"Não programo em Python, mas sei programar em outras linguagens",Iniciante,Não,Sim,Sim,Não,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2007,Uma pessoa parda,Não,Há mais de um ano,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2005,Uma pessoa branca,Não respondeu,Há mais de um ano,Intermediário,Não,Sim,Sim,Não,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2026,Uma pessoa amarela,Não respondeu,Há mais de cinco anos,Avançado,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (1º lote),0,Não respondeu,Não respondeu,MICHELLY-D8M9W2PW83A96C7P,P - 49cm tórax - 66cm comprimento,2006,Uma pessoa parda,Não respondeu,Comecei no último ano,Iniciante,Não,Sim,Sim,Não,Não respondeu +Meia entrada (1º lote),0,Não respondeu,Não respondeu,KAILLANY-DSUW2HYDQRYC34CU,P - 49cm tórax - 66cm comprimento,2006,Uma pessoa parda,Não respondeu,Comecei no último ano,Iniciante,Não,Sim,Sim,Não,Não respondeu +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2004,Uma pessoa parda,Não respondeu,Há mais de um ano,Intermediário,"Não, mas pretendo",Sim,Sim,Não,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2006,Uma pessoa parda,Não,Há mais de um ano,Intermediário,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (1º lote),0,Não respondeu,Não respondeu,CDC-WG3RFSA4WN6HVESQ,PP - 46cm tórax - 63cm comprimento,1992,Uma pessoa parda,Não,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu +Ingresso (1º lote),0,Não respondeu,Não respondeu,CDC-WG3RFSA4WN6HVESQ,G - 56cm tórax - 73cm comprimento,1991,Uma pessoa branca,Não,Há mais de um ano,Iniciante,Sim,Sim,Sim,Sim,Não respondeu +Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2006,Uma pessoa branca,não,Comecei no último ano,Intermediário,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe +Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1997,Uma pessoa parda,Não respondeu,Há mais de dez anos,Avançado,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2006,Uma pessoa branca,Não,Há mais de um ano,Iniciante,Não,Sim,Sim,Não,Cartão de Crédito via Stripe +Ingresso (2º lote),260,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1996,Uma pessoa branca,Não respondeu,Há mais de dez anos,Avançado,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,GG - 60cm tórax - 76cm comprimento,2005,Uma pessoa negra,Não respondeu,"Não programo em Python, mas sei programar em outras linguagens",Ainda vou aprender,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1991,Uma pessoa negra,Não,Não sei programar,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2002,Uma pessoa parda,Não respondeu,Comecei no último ano,Intermediário,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2009,Prefiro não responder,Não,Comecei no último ano,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2004,Uma pessoa negra,Não respondeu,Há mais de três anos,Intermediário,"Não, mas pretendo",Sim,Sim,Não,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2003,Uma pessoa parda,Não respondeu,Comecei no último ano,Iniciante,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,G - 56cm tórax - 73cm comprimento,2005,Uma pessoa branca,Não,Há mais de cinco anos,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2005,Uma pessoa parda,Não,Há mais de três anos,Intermediário,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,P - 49cm tórax - 66cm comprimento,2002,Uma pessoa parda,Não,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,3G - 64cm tórax - 78cm comprimento,2004,Uma pessoa parda,"Sim, Autismo, TDAH",Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,M - 52cm tórax - 70cm comprimento,2006,Outro,Não respondeu,Comecei no último ano,Iniciante,Não,Sim,Sim,Não,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,M - 52cm tórax - 70cm comprimento,2005,Uma pessoa parda,Não respondeu,Comecei no último ano,Intermediário,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,G - 56cm tórax - 73cm comprimento,2005,Uma pessoa branca,Não,Comecei no último ano,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,GG - 60cm tórax - 76cm comprimento,2007,Uma pessoa parda,não,"Não programo em Python, mas sei programar em outras linguagens",Ainda vou aprender,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,M - 52cm tórax - 70cm comprimento,2004,Uma pessoa negra,não,"Não programo em Python, mas sei programar em outras linguagens",Intermediário,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2006,Uma pessoa branca,Não,Há mais de três anos,Intermediário,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,PP - 46cm tórax - 63cm comprimento,1999,Uma pessoa parda,Não respondeu,Há mais de um ano,Iniciante,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe +Ingresso (2º lote),0,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,P - 49cm tórax - 66cm comprimento,1997,Uma pessoa branca,Não respondeu,Há mais de dez anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu +Ingresso (2º lote),0,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,G - 56cm tórax - 73cm comprimento,1996,Uma pessoa parda,Não,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu +Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,GG - 60cm tórax - 76cm comprimento,2001,Uma pessoa negra,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,G - 56cm tórax - 73cm comprimento,2001,Uma pessoa parda,Não,Há mais de um ano,Intermediário,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,M - 52cm tórax - 70cm comprimento,2004,Uma pessoa branca,Não respondeu,Há mais de três anos,Avançado,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,G - 56cm tórax - 73cm comprimento,2004,Uma pessoa branca,Não respondeu,Não sei programar,Ainda vou aprender,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,PP - 46cm tórax - 63cm comprimento,2002,Uma pessoa branca,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,PP - 46cm tórax - 63cm comprimento,2005,Uma pessoa negra,Não respondeu,Comecei no último ano,Iniciante,Não,Sim,Sim,Não,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,P - 49cm tórax - 66cm comprimento,2001,Uma pessoa parda,Não se aplica,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,G - 56cm tórax - 73cm comprimento,2000,Uma pessoa branca,Não respondeu,Comecei no último ano,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,P - 49cm tórax - 66cm comprimento,2003,Uma pessoa branca,Não respondeu,Comecei no último ano,Iniciante,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,P - 49cm tórax - 66cm comprimento,2001,Uma pessoa parda,Não,Há mais de três anos,Avançado,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,M - 52cm tórax - 70cm comprimento,2005,Uma pessoa branca,Não respondeu,Há mais de três anos,Intermediário,Não,Sim,Sim,Não,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,PP - 46cm tórax - 63cm comprimento,2005,Prefiro não responder,Não respondeu,"Não programo em Python, mas sei programar em outras linguagens",Ainda vou aprender,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe +Ingresso (2º lote),0,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,M - 52cm tórax - 70cm comprimento,1993,Uma pessoa parda,Não respondeu,Há mais de cinco anos,Iniciante,Não,Sim,Sim,Não,Não respondeu +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,GG - 60cm tórax - 76cm comprimento,1994,Uma pessoa branca,Não respondeu,"Não programo em Python, mas sei programar em outras linguagens",Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2006,Uma pessoa parda,Não,Comecei no último ano,Intermediário,Não,Sim,Sim,Não,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,PP - 46cm tórax - 63cm comprimento,2005,Uma pessoa parda,Não,"Não programo em Python, mas sei programar em outras linguagens",Iniciante,"Não, mas pretendo",Sim,Sim,Não,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,G - 56cm tórax - 73cm comprimento,2003,Uma pessoa parda,Nenhuma,Não sei programar,Ainda vou aprender,Não,Sim,Sim,Não,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,G - 56cm tórax - 73cm comprimento,2005,Uma pessoa negra,Não respondeu,Há mais de três anos,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2007,Uma pessoa branca,Não respondeu,Há mais de três anos,Avançado,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe +Ingresso (2º lote),260,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2002,Uma pessoa branca,Não respondeu,Há mais de um ano,Iniciante,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe +Ingresso (2º lote),0,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,P - 49cm tórax - 66cm comprimento,1991,Uma pessoa branca,Não,Comecei no último ano,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,GG - 60cm tórax - 76cm comprimento,2002,Uma pessoa parda,Não,Comecei no último ano,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe +Ingresso (2º lote),0,Não respondeu,Não respondeu,VALHA-MEU-PY,3G - 64cm tórax - 78cm comprimento,1992,Uma pessoa indígena,Múltipla,Há mais de dez anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu +Ingresso (2º lote),0,Não respondeu,Não respondeu,VALHA-MEU-PY,G - 56cm tórax - 73cm comprimento,1998,Uma pessoa parda,Não respondeu,Há mais de cinco anos,Avançado,Não,Sim,Sim,Sim,Não respondeu +Ingresso (2º lote),0,Não respondeu,Não respondeu,VALHA-MEU-PY,P - 49cm tórax - 66cm comprimento,1988,Uma pessoa parda,Não respondeu,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2006,Uma pessoa parda,Não respondeu,Há mais de um ano,Intermediário,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2005,Uma pessoa branca,Não respondeu,Há mais de um ano,Intermediário,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (2º lote),0,Não respondeu,Não respondeu,VALHA-MEU-PY,GG - 60cm tórax - 76cm comprimento,2006,Uma pessoa branca,Não respondeu,Há mais de três anos,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,PP - 46cm tórax - 63cm comprimento,2006,Uma pessoa parda,Não,Há mais de três anos,Intermediário,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,GG - 60cm tórax - 76cm comprimento,2001,Prefiro não responder,Não,Não sei programar,Ainda vou aprender,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe +Ingresso (2º lote),260,Não respondeu,Não respondeu,Não respondeu,P - 49cm tórax - 66cm comprimento,1987,Uma pessoa parda,Não respondeu,Há mais de dez anos,Avançado,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1987,Uma pessoa negra,Não respondeu,Há mais de três anos,Iniciante,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2007,Uma pessoa parda,TEA,Há mais de três anos,Ainda vou aprender,"Não, mas pretendo",Sim,Sim,Não,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,P - 49cm tórax - 66cm comprimento,2004,Uma pessoa branca,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2001,Uma pessoa parda,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1998,Uma pessoa amarela,Não respondeu,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2004,Uma pessoa branca,Não respondeu,Há mais de três anos,Intermediário,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe +Ingresso (2º lote),260,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1997,Uma pessoa negra,Não respondeu,Há mais de dez anos,Avançado,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe +Ingresso (2º lote),260,Não respondeu,Não respondeu,Não respondeu,GG - 60cm tórax - 76cm comprimento,1992,Uma pessoa branca,Não respondeu,Não sei programar,Ainda vou aprender,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe +Ingresso (2º lote),260,Não respondeu,Não respondeu,Não respondeu,GG - 60cm tórax - 76cm comprimento,1988,Uma pessoa branca,Não respondeu,Há mais de um ano,Intermediário,Não,Sim,Sim,Não,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1994,Uma pessoa parda,Autismo,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe +Ingresso (3º lote),0,Não respondeu,Não respondeu,VALHA-MEU-PY,4G - 68cm tórax - 80cm comprimento,1998,Uma pessoa negra,Nao,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu +Ingresso (3º lote),0,Não respondeu,Não respondeu,VALHA-MEU-PY,4G - 68cm tórax - 80cm comprimento,1998,Uma pessoa negra,Nao,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,3G - 64cm tórax - 78cm comprimento,1992,Uma pessoa branca,Não respondeu,Comecei no último ano,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,P - 49cm tórax - 66cm comprimento,1998,Uma pessoa parda,Não respondeu,Não sei programar,Ainda vou aprender,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe +Ingresso (3º lote),0,Não respondeu,Não respondeu,VALHA-MEU-PY,GG - 60cm tórax - 76cm comprimento,1990,Uma pessoa parda,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu +Ingresso (3º lote),0,Não respondeu,Não respondeu,VALHA-MEU-PY,G - 56cm tórax - 73cm comprimento,1992,Uma pessoa negra,Não respondeu,Há mais de dez anos,Avançado,Sim,Sim,Sim,Não,Não respondeu +Ingresso (3º lote),0,Não respondeu,Não respondeu,VALHA-MEU-PY,G - 56cm tórax - 73cm comprimento,2003,Uma pessoa branca,Não,Há mais de três anos,Intermediário,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1991,Uma pessoa branca,Não respondeu,Há mais de um ano,Intermediário,Não,Sim,Sim,Não,Cartão de Crédito via Stripe +Ingresso (3º lote),0,Não respondeu,Não respondeu,VALHA-MEU-PY,M - 52cm tórax - 70cm comprimento,2001,Uma pessoa negra,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2004,Uma pessoa branca,Não respondeu,Há mais de um ano,Intermediário,Não,Sim,Sim,Não,Cartão de Crédito via Stripe +Ingresso (3º lote),0,Não respondeu,Não respondeu,VALHA-MEU-PY,G - 56cm tórax - 73cm comprimento,1988,Uma pessoa branca,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Não,Não respondeu +Ingresso (3º lote),0,Não respondeu,Não respondeu,KEYNOTE-ZWU2FNTUNLKKNZXV,M - 52cm tórax - 70cm comprimento,1993,Uma pessoa negra,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu +Ingresso (3º lote),0,Não respondeu,Não respondeu,KEYNOTE-ZWU2FNTUNLKKNZXV,P - 49cm tórax - 66cm comprimento,1990,Uma pessoa parda,Não,Há mais de cinco anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu +Ingresso (3º lote),0,Não respondeu,Não respondeu,KEYNOTE-ZWU2FNTUNLKKNZXV,P - 49cm tórax - 66cm comprimento,1996,Uma pessoa parda,Não respondeu,Há mais de dez anos,Avançado,Sim,Sim,Sim,Não,Não respondeu +Ingresso (3º lote),0,Não respondeu,Não respondeu,VALHA-MEU-PY,P - 49cm tórax - 66cm comprimento,1995,Uma pessoa branca,Não respondeu,Há mais de cinco anos,Intermediário,Não,Sim,Sim,Sim,Não respondeu +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1997,Uma pessoa branca,Não respondeu,Há mais de um ano,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe +Ingresso (3º lote),0,Não respondeu,Não respondeu,VALHA-MEU-PY,GG - 60cm tórax - 76cm comprimento,2004,Uma pessoa branca,Não respondeu,Há mais de um ano,Avançado,Sim,Sim,Sim,Sim,Não respondeu +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,P - 49cm tórax - 66cm comprimento,1997,Uma pessoa negra,Física e auditiva,Há mais de um ano,Intermediário,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe +Ingresso (3º lote),0,Não respondeu,Não respondeu,VALHA-MEU-PY,M - 52cm tórax - 70cm comprimento,1983,Uma pessoa branca,Não,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu +Meia entrada (3º lote),126,Não respondeu,Não respondeu,ALUNOS_DA_NAY,G - 56cm tórax - 73cm comprimento,1966,Uma pessoa branca,Nao,Não sei programar,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe +Ingresso (3º lote),0,Não respondeu,Não respondeu,VALHA-MEU-PY,3G - 64cm tórax - 78cm comprimento,1974,Uma pessoa branca,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu +Ingresso (3º lote),0,Não respondeu,Não respondeu,LABCODES_8WPL3,4G - 68cm tórax - 80cm comprimento,1984,Uma pessoa parda,Não,Há mais de um ano,Intermediário,Sim,Sim,Sim,Sim,Não respondeu +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2003,Uma pessoa branca,Não,Há mais de um ano,Intermediário,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe +Ingresso (3º lote),252,Não respondeu,Não respondeu,PYLADIES,G - 56cm tórax - 73cm comprimento,1995,Uma pessoa parda,Não respondeu,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (3º lote),126,Não respondeu,Não respondeu,PYLADIES_MEIA,P - 49cm tórax - 66cm comprimento,1992,Uma pessoa branca,Não,Há mais de um ano,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe +Ingresso (3º lote),0,Não respondeu,Não respondeu,CDC-WG3RFSA4WN6HVESQ,PP - 46cm tórax - 63cm comprimento,1993,Uma pessoa parda,Não respondeu,Há mais de dez anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu +Ingresso (3º lote),0,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,3G - 64cm tórax - 78cm comprimento,2025,Uma pessoa negra,Não,Há mais de cinco anos,Intermediário,Sim,Sim,Sim,Não,Não respondeu +Ingresso (3º lote),280,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1985,Prefiro não responder,Não,Há mais de dez anos,Avançado,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,P - 49cm tórax - 66cm comprimento,2004,Uma pessoa branca,Não respondeu,Há mais de três anos,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2003,Uma pessoa branca,Não,"Não programo em Python, mas sei programar em outras linguagens",Iniciante,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1999,Uma pessoa parda,sim,Comecei no último ano,Iniciante,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1995,Uma pessoa parda,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe +Ingresso (3º lote),280,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1994,Uma pessoa parda,Não,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe +Ingresso (3º lote),0,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,GG - 60cm tórax - 76cm comprimento,2001,Uma pessoa parda,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu +Ingresso (3º lote),0,Não respondeu,Não respondeu,CDC-WG3RFSA4WN6HVESQ,G - 56cm tórax - 73cm comprimento,2000,Uma pessoa negra,Não respondeu,Não sei programar,Ainda vou aprender,Não,Sim,Sim,Sim,Não respondeu +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1989,Uma pessoa parda,NÃO,Há mais de um ano,Iniciante,"Não, mas pretendo",Sim,Sim,Não,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1995,Uma pessoa negra,Não respondeu,Há mais de um ano,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe +Ingresso (3º lote),252,Não respondeu,Não respondeu,ARTEMISIA10,3G - 64cm tórax - 78cm comprimento,1999,Uma pessoa branca,Não,Comecei no último ano,Iniciante,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (3º lote),126,Não respondeu,Não respondeu,PYLADIES_MEIA,P - 49cm tórax - 66cm comprimento,2000,Uma pessoa parda,"TEA, TDAH, FIBROMIALGIA",Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (3º lote),0,Não respondeu,Não respondeu,MATHEUS-S36WN,G - 56cm tórax - 73cm comprimento,1999,Uma pessoa parda,NÃO,Há mais de três anos,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu +Meia entrada (3º lote),0,Não respondeu,Não respondeu,MATHEUS-S36WN,G - 56cm tórax - 73cm comprimento,1993,Uma pessoa branca,NÃO,"Não programo em Python, mas sei programar em outras linguagens",Ainda vou aprender,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,P - 49cm tórax - 66cm comprimento,1998,Uma pessoa branca,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,3G - 64cm tórax - 78cm comprimento,2004,Uma pessoa branca,NÃO,Há mais de três anos,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (3º lote),126,Não respondeu,Não respondeu,ALUNOS_DA_NAY,M - 52cm tórax - 70cm comprimento,2001,Uma pessoa branca,Nao,Não sei programar,Ainda vou aprender,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2002,Uma pessoa branca,Não,Comecei no último ano,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe +Ingresso (3º lote),280,Não respondeu,Não respondeu,Não respondeu,P - 49cm tórax - 66cm comprimento,2008,Uma pessoa branca,Não respondeu,Comecei no último ano,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,3G - 64cm tórax - 78cm comprimento,1997,Uma pessoa parda,Não,Há mais de um ano,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,GG - 60cm tórax - 76cm comprimento,1986,Uma pessoa parda,Não respondeu,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2005,Uma pessoa branca,Não respondeu,Há mais de três anos,Intermediário,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2002,Uma pessoa branca,Não respondeu,Comecei no último ano,Iniciante,"Não, mas pretendo",Sim,Sim,Não,Cartão de Crédito via Stripe +Meia entrada (3º lote),0,Não respondeu,Não respondeu,PYLADIES_FOR_62XE7,P - 49cm tórax - 66cm comprimento,1996,Uma pessoa parda,Não,Há mais de cinco anos,Intermediário,Não,Sim,Sim,Sim,Não respondeu +Ingresso (3º lote),0,Não respondeu,Não respondeu,PYLADIES_FOR_62XE7,M - 52cm tórax - 70cm comprimento,2006,Uma pessoa branca,Não possuo,Há mais de um ano,Avançado,Sim,Sim,Sim,Sim,Não respondeu +Ingresso (3º lote),0,Não respondeu,Não respondeu,PYLADIES_FOR_62XE7,M - 52cm tórax - 70cm comprimento,1985,Uma pessoa parda,Não respondeu,Comecei no último ano,Iniciante,Não,Sim,Sim,Sim,Não respondeu +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,GG - 60cm tórax - 76cm comprimento,1993,Uma pessoa parda,N,Não sei programar,Iniciante,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe +Ingresso (3º lote),280,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1983,Uma pessoa parda,Não respondeu,Comecei no último ano,Iniciante,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe +Meia entrada (3º lote),0,Não respondeu,Não respondeu,VALHA-MEU-PY,G - 56cm tórax - 73cm comprimento,1997,Uma pessoa parda,NÃO,Há mais de um ano,Intermediário,Não,Sim,Sim,Sim,Não respondeu +"Compre um, doe um (3º lote)",0,Não respondeu,Não respondeu,VALHA-MEU-PY,P - 49cm tórax - 66cm comprimento,2002,Uma pessoa negra,não,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu +Ingresso (3º lote),0,Não respondeu,Não respondeu,PYLADIES_FOR_62XE7,M - 52cm tórax - 70cm comprimento,2002,Uma pessoa branca,Não respondeu,Comecei no último ano,Iniciante,Sim,Sim,Sim,Sim,Não respondeu +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,3G - 64cm tórax - 78cm comprimento,1999,Uma pessoa parda,Nao,Há mais de três anos,Intermediário,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe +Ingresso (3º lote),252,Não respondeu,Não respondeu,ARIANA10,3G - 64cm tórax - 78cm comprimento,1987,Uma pessoa parda,"Sim, visão monocular",Há mais de dez anos,Avançado,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1995,Uma pessoa branca,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe +Ingresso (3º lote),280,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2002,Uma pessoa branca,Não respondeu,Há mais de três anos,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2002,Uma pessoa branca,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe +Ingresso (3º lote),0,Não respondeu,Não respondeu,PYLADIES_FOR_62XE7,G - 56cm tórax - 73cm comprimento,1993,Uma pessoa parda,Não,Há mais de um ano,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu diff --git a/poetry.lock b/poetry.lock index a7ee062..29675f4 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.1.3 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.4.1 and should not be changed by hand. [[package]] name = "asttokens" @@ -581,63 +581,78 @@ files = [ [[package]] name = "numpy" -version = "2.3.1" +version = "2.5.2" description = "Fundamental package for array computing in Python" optional = false -python-versions = ">=3.11" +python-versions = ">=3.12" groups = ["main"] files = [ - {file = "numpy-2.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6ea9e48336a402551f52cd8f593343699003d2353daa4b72ce8d34f66b722070"}, - {file = "numpy-2.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5ccb7336eaf0e77c1635b232c141846493a588ec9ea777a7c24d7166bb8533ae"}, - {file = "numpy-2.3.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:0bb3a4a61e1d327e035275d2a993c96fa786e4913aa089843e6a2d9dd205c66a"}, - {file = "numpy-2.3.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:e344eb79dab01f1e838ebb67aab09965fb271d6da6b00adda26328ac27d4a66e"}, - {file = "numpy-2.3.1-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:467db865b392168ceb1ef1ffa6f5a86e62468c43e0cfb4ab6da667ede10e58db"}, - {file = "numpy-2.3.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:afed2ce4a84f6b0fc6c1ce734ff368cbf5a5e24e8954a338f3bdffa0718adffb"}, - {file = "numpy-2.3.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0025048b3c1557a20bc80d06fdeb8cc7fc193721484cca82b2cfa072fec71a93"}, - {file = "numpy-2.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a5ee121b60aa509679b682819c602579e1df14a5b07fe95671c8849aad8f2115"}, - {file = "numpy-2.3.1-cp311-cp311-win32.whl", hash = "sha256:a8b740f5579ae4585831b3cf0e3b0425c667274f82a484866d2adf9570539369"}, - {file = "numpy-2.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:d4580adadc53311b163444f877e0789f1c8861e2698f6b2a4ca852fda154f3ff"}, - {file = "numpy-2.3.1-cp311-cp311-win_arm64.whl", hash = "sha256:ec0bdafa906f95adc9a0c6f26a4871fa753f25caaa0e032578a30457bff0af6a"}, - {file = "numpy-2.3.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2959d8f268f3d8ee402b04a9ec4bb7604555aeacf78b360dc4ec27f1d508177d"}, - {file = "numpy-2.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:762e0c0c6b56bdedfef9a8e1d4538556438288c4276901ea008ae44091954e29"}, - {file = "numpy-2.3.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:867ef172a0976aaa1f1d1b63cf2090de8b636a7674607d514505fb7276ab08fc"}, - {file = "numpy-2.3.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:4e602e1b8682c2b833af89ba641ad4176053aaa50f5cacda1a27004352dde943"}, - {file = "numpy-2.3.1-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:8e333040d069eba1652fb08962ec5b76af7f2c7bce1df7e1418c8055cf776f25"}, - {file = "numpy-2.3.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:e7cbf5a5eafd8d230a3ce356d892512185230e4781a361229bd902ff403bc660"}, - {file = "numpy-2.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5f1b8f26d1086835f442286c1d9b64bb3974b0b1e41bb105358fd07d20872952"}, - {file = "numpy-2.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ee8340cb48c9b7a5899d1149eece41ca535513a9698098edbade2a8e7a84da77"}, - {file = "numpy-2.3.1-cp312-cp312-win32.whl", hash = "sha256:e772dda20a6002ef7061713dc1e2585bc1b534e7909b2030b5a46dae8ff077ab"}, - {file = "numpy-2.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:cfecc7822543abdea6de08758091da655ea2210b8ffa1faf116b940693d3df76"}, - {file = "numpy-2.3.1-cp312-cp312-win_arm64.whl", hash = "sha256:7be91b2239af2658653c5bb6f1b8bccafaf08226a258caf78ce44710a0160d30"}, - {file = "numpy-2.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:25a1992b0a3fdcdaec9f552ef10d8103186f5397ab45e2d25f8ac51b1a6b97e8"}, - {file = "numpy-2.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7dea630156d39b02a63c18f508f85010230409db5b2927ba59c8ba4ab3e8272e"}, - {file = "numpy-2.3.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:bada6058dd886061f10ea15f230ccf7dfff40572e99fef440a4a857c8728c9c0"}, - {file = "numpy-2.3.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:a894f3816eb17b29e4783e5873f92faf55b710c2519e5c351767c51f79d8526d"}, - {file = "numpy-2.3.1-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:18703df6c4a4fee55fd3d6e5a253d01c5d33a295409b03fda0c86b3ca2ff41a1"}, - {file = "numpy-2.3.1-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:5902660491bd7a48b2ec16c23ccb9124b8abfd9583c5fdfa123fe6b421e03de1"}, - {file = "numpy-2.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:36890eb9e9d2081137bd78d29050ba63b8dab95dff7912eadf1185e80074b2a0"}, - {file = "numpy-2.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a780033466159c2270531e2b8ac063704592a0bc62ec4a1b991c7c40705eb0e8"}, - {file = "numpy-2.3.1-cp313-cp313-win32.whl", hash = "sha256:39bff12c076812595c3a306f22bfe49919c5513aa1e0e70fac756a0be7c2a2b8"}, - {file = "numpy-2.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:8d5ee6eec45f08ce507a6570e06f2f879b374a552087a4179ea7838edbcbfa42"}, - {file = "numpy-2.3.1-cp313-cp313-win_arm64.whl", hash = "sha256:0c4d9e0a8368db90f93bd192bfa771ace63137c3488d198ee21dfb8e7771916e"}, - {file = "numpy-2.3.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:b0b5397374f32ec0649dd98c652a1798192042e715df918c20672c62fb52d4b8"}, - {file = "numpy-2.3.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:c5bdf2015ccfcee8253fb8be695516ac4457c743473a43290fd36eba6a1777eb"}, - {file = "numpy-2.3.1-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:d70f20df7f08b90a2062c1f07737dd340adccf2068d0f1b9b3d56e2038979fee"}, - {file = "numpy-2.3.1-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:2fb86b7e58f9ac50e1e9dd1290154107e47d1eef23a0ae9145ded06ea606f992"}, - {file = "numpy-2.3.1-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:23ab05b2d241f76cb883ce8b9a93a680752fbfcbd51c50eff0b88b979e471d8c"}, - {file = "numpy-2.3.1-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:ce2ce9e5de4703a673e705183f64fd5da5bf36e7beddcb63a25ee2286e71ca48"}, - {file = "numpy-2.3.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c4913079974eeb5c16ccfd2b1f09354b8fed7e0d6f2cab933104a09a6419b1ee"}, - {file = "numpy-2.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:010ce9b4f00d5c036053ca684c77441f2f2c934fd23bee058b4d6f196efd8280"}, - {file = "numpy-2.3.1-cp313-cp313t-win32.whl", hash = "sha256:6269b9edfe32912584ec496d91b00b6d34282ca1d07eb10e82dfc780907d6c2e"}, - {file = "numpy-2.3.1-cp313-cp313t-win_amd64.whl", hash = "sha256:2a809637460e88a113e186e87f228d74ae2852a2e0c44de275263376f17b5bdc"}, - {file = "numpy-2.3.1-cp313-cp313t-win_arm64.whl", hash = "sha256:eccb9a159db9aed60800187bc47a6d3451553f0e1b08b068d8b277ddfbb9b244"}, - {file = "numpy-2.3.1-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:ad506d4b09e684394c42c966ec1527f6ebc25da7f4da4b1b056606ffe446b8a3"}, - {file = "numpy-2.3.1-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:ebb8603d45bc86bbd5edb0d63e52c5fd9e7945d3a503b77e486bd88dde67a19b"}, - {file = "numpy-2.3.1-pp311-pypy311_pp73-macosx_14_0_x86_64.whl", hash = "sha256:15aa4c392ac396e2ad3d0a2680c0f0dee420f9fed14eef09bdb9450ee6dcb7b7"}, - {file = "numpy-2.3.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c6e0bf9d1a2f50d2b65a7cf56db37c095af17b59f6c132396f7c6d5dd76484df"}, - {file = "numpy-2.3.1-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:eabd7e8740d494ce2b4ea0ff05afa1b7b291e978c0ae075487c51e8bd93c0c68"}, - {file = "numpy-2.3.1-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:e610832418a2bc09d974cc9fecebfa51e9532d6190223bc5ef6a7402ebf3b5cb"}, - {file = "numpy-2.3.1.tar.gz", hash = "sha256:1ec9ae20a4226da374362cca3c62cd753faf2f951440b0e3b98e93c235441d2b"}, + {file = "numpy-2.5.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:14e373cfc6387177e8409dac3c7159be8eb05cd77096cd7c950268b86f62831c"}, + {file = "numpy-2.5.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4bbd96c833ecc8cc069ce518078fc8c60cb9cbfb0fea5b7a803ad65035596d03"}, + {file = "numpy-2.5.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:6e8172ddfcf5cf74b811d372b570b83c60bd2de87a6fbfbebdadb4a9bd9c6cbb"}, + {file = "numpy-2.5.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:65f188481f1669e26f62b701e8205d19e460fa4a9b52a1414ba382330e4a3414"}, + {file = "numpy-2.5.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8ee9c4eeb8454b3660a8b53493563c3e121c2fc94fbd72b848ef814ed7b676a9"}, + {file = "numpy-2.5.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3cdec01fa790a186d430433fdd4d4ffb70eed6f0eeb4bf05c8dbe2dce0a9bcb8"}, + {file = "numpy-2.5.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7999d4ddb0c4025018373fd787510d46e04c769467af22869707b3c1cfd459ab"}, + {file = "numpy-2.5.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c1f017dc0875c9209d219f97feceb7d54c2661bb243deb4114478e1295808af7"}, + {file = "numpy-2.5.2-cp312-cp312-win32.whl", hash = "sha256:d6a48072864e3324e194a8fbb3c657bcc5b5c869dbc64c9537b1d5c862572c0a"}, + {file = "numpy-2.5.2-cp312-cp312-win_amd64.whl", hash = "sha256:28ac63476ec7651484215ee7fa15a1f78b57c14621f01e392afe17b9a1390ce4"}, + {file = "numpy-2.5.2-cp312-cp312-win_arm64.whl", hash = "sha256:27650bb0e7140fa3d37b9923b4803645e0b125d190f326eecfd3f4dad8e8ade1"}, + {file = "numpy-2.5.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8e4cb9a754c8a0c62eaa88273a5fba3391f4a610d1dee893c0755da31c083f15"}, + {file = "numpy-2.5.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:52c808f96484f5571a5cc863775ce50247c17dfb3b0361f8ed6b4b0456f80080"}, + {file = "numpy-2.5.2-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:29d81e97f668489cba8ebfd796b9bdd453525d35dd9e162e2daec94bf3fc7740"}, + {file = "numpy-2.5.2-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:afb3f0632d6b2e3ba04dbce8d1e48d321b369138b73830b5ca371a0e8d479d56"}, + {file = "numpy-2.5.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0aadf13b60048d501e05fa699efaf7734e2494f3498a4c2a5521d822640324f3"}, + {file = "numpy-2.5.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:29b86ff8a6cc556b47ec6b64b194815cc80e6bf5eedcc6cddfd65318cb0b4eee"}, + {file = "numpy-2.5.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6950c4b7dd562453090548ba7f5da7e59f57f85663f15d5dcc60e249192f7e59"}, + {file = "numpy-2.5.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b9727f472d2f3888053b8a75ab0cb94745a9de224bb5846dbadc0092101bc71d"}, + {file = "numpy-2.5.2-cp313-cp313-win32.whl", hash = "sha256:4f9744f9fbdcea0bc552e8f19e1f141f811a3f9bc2be2cc6e86d982cab23e3f4"}, + {file = "numpy-2.5.2-cp313-cp313-win_amd64.whl", hash = "sha256:85aaccb24182c25df891ad0ec333585967e115269d5f1b17f2c9ae005bc96657"}, + {file = "numpy-2.5.2-cp313-cp313-win_arm64.whl", hash = "sha256:bd68ece1553d2023c09a4226d9e41c586ad2d20594d1a456186c33513d2cb3f2"}, + {file = "numpy-2.5.2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:d787cf769c3baeb5f6235e778edb52c08dfa923789b5958f28e6450f96107cb1"}, + {file = "numpy-2.5.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:24b9dc2e3d84aa58523798805194e23e736f3f6ce2d1a5b92583ae734e6dbda8"}, + {file = "numpy-2.5.2-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:9e9413326d726c2545bfa65d2c0876871e8d8386e77f992c1d426e180bbd4323"}, + {file = "numpy-2.5.2-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:60e902ac295855348a5ca2ea4c89108989a9f5fddfad3dfc0a8f36b10358567e"}, + {file = "numpy-2.5.2-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:50e500dc868e9313530ce12ba470fe50ff3afe3d62993ed6eff652dacd555b65"}, + {file = "numpy-2.5.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:318b9a4c845dbea06708a29c84ee429cc3065048db34cdb799047643492050ee"}, + {file = "numpy-2.5.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:34c319e2963be042673fb46570501b2f06c41924e17e3563d58646b4380dfb68"}, + {file = "numpy-2.5.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f06571a052127dc1b4e8b83029b4d1b20daa2b64a31cdd181fc6bc774e9000eb"}, + {file = "numpy-2.5.2-cp314-cp314-win32.whl", hash = "sha256:2cc779226e476d1e1f08c74068c419e60f41a9e0e069c92f6671d31d5c985e98"}, + {file = "numpy-2.5.2-cp314-cp314-win_amd64.whl", hash = "sha256:7587f53dfbd5edc0f7b87c6217b4c6d2d1f2ef9c3da70bc1315e7db5f8d7ec9d"}, + {file = "numpy-2.5.2-cp314-cp314-win_arm64.whl", hash = "sha256:3e4c367352d3747784248a227fbec218e193b56f7e6692e3b64fc805478ecfdf"}, + {file = "numpy-2.5.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:b879fb674276e331513fb136b78dbc6bd3c848309e0d841cfd63be3896c4cfc1"}, + {file = "numpy-2.5.2-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:fd0d703772bba096843785bd38371e31bb4a0c1151497ad5739d182114a73f7f"}, + {file = "numpy-2.5.2-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:3a2f061cebd9e3d23bdcfaaded5e2293a4c6a5b60fa42df85d410a725ce621bf"}, + {file = "numpy-2.5.2-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6df895598c0edcb41030126c89e0f353b07d93238116143b7405e937359736c4"}, + {file = "numpy-2.5.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1ab3d4a901f844ea836c3e80bf463c6a27d7f3c14e8e292fcf28d348b25b9bce"}, + {file = "numpy-2.5.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:cebc2d6dbb605a7703d59751dea4bd6b0ab127a5a4338a6f432df1936fef8b26"}, + {file = "numpy-2.5.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:eaca7ff36f0f52e2111ec71f169d8fd3e889e7ddc0d2592e0d703fd8d3ce8fac"}, + {file = "numpy-2.5.2-cp314-cp314t-win32.whl", hash = "sha256:ddf47472af2e4280d79bac82304f5e80150211f1b9e614b760061d5fdfbb6eba"}, + {file = "numpy-2.5.2-cp314-cp314t-win_amd64.whl", hash = "sha256:44ef9675d908e65f9953063837c3277730f3f4437615a4cdab67b366cabaf884"}, + {file = "numpy-2.5.2-cp314-cp314t-win_arm64.whl", hash = "sha256:eaa088384c46f519dacb93b7ec483a6d6b19a4a2085ae4f25ab9b1c43d387d1e"}, + {file = "numpy-2.5.2-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:078f9b027b478c9379b9677babbf0f8b8f1ecfada27636d7b9a93990c638739f"}, + {file = "numpy-2.5.2-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:50a68f4bacd8a2b33d8da3d2269d0d78500f86ea582e4786dc10f5ef2c2c6842"}, + {file = "numpy-2.5.2-cp315-cp315-macosx_14_0_arm64.whl", hash = "sha256:e79aba74ffaf5f78a050d777c184cddf8fdffabab38acf5f3ef1fecbc17895d6"}, + {file = "numpy-2.5.2-cp315-cp315-macosx_14_0_x86_64.whl", hash = "sha256:9a0731745a72a184490a582fb4af2533512bd071ace67785b5fdffc0ae58dce8"}, + {file = "numpy-2.5.2-cp315-cp315-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4ec954036759bcee3aa484f8603bd9c14f3e776293b85578b8734c2d72777c69"}, + {file = "numpy-2.5.2-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dc649493697006bc90614a5f0bbc8cb3cb1866715c474e473694968d7e6b99ab"}, + {file = "numpy-2.5.2-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:cf7de32f486e4ac9e2d93b810f9e9ac72a728dd46a32a0bb403222f27f653514"}, + {file = "numpy-2.5.2-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:2ffa7bacab3e2ee1b19ed31766bb60bb380b68c23f051e199c5cc598afd68710"}, + {file = "numpy-2.5.2-cp315-cp315-win32.whl", hash = "sha256:6b588cc8f902d6bff201c19fd00c43ab8545671e3554d014e12e14139e5e8617"}, + {file = "numpy-2.5.2-cp315-cp315-win_amd64.whl", hash = "sha256:07d4e89f3a9ab0a9ba24264ccdb642b3dd951b2281e8883a5481a4aa79cc31a7"}, + {file = "numpy-2.5.2-cp315-cp315-win_arm64.whl", hash = "sha256:a610dc7e3c52edd39c2bc2375ff9c3fd59cb3ad00e4472d36f83bc1457145788"}, + {file = "numpy-2.5.2-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:40f4d451aed46a8046a1aae41c4e55fb3612273df9c502480135e1501576a34b"}, + {file = "numpy-2.5.2-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:c081cbe16ba1ab53078e5ff29013621e33c509eedab055775d956427712c236e"}, + {file = "numpy-2.5.2-cp315-cp315t-macosx_14_0_arm64.whl", hash = "sha256:0090ccdd57ec2703e9b49d0bf554767370581c1dd0a6b2bb2b2d9def317d042a"}, + {file = "numpy-2.5.2-cp315-cp315t-macosx_14_0_x86_64.whl", hash = "sha256:6a9bb119fb8dd21ba30b3f0e555b7e2b081bd9883af21ec9c1c633d161cda3a8"}, + {file = "numpy-2.5.2-cp315-cp315t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a839318485284a6fb31be4f8f2c91c8f2cb22f4543c4a8903f12b0671ffe07cc"}, + {file = "numpy-2.5.2-cp315-cp315t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba0a474801b8dc67b66bf465548abc90e82b44d2611b5770f33008dcabffe8ec"}, + {file = "numpy-2.5.2-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:0a4035ae1129ff8777f08bfbd44f1e5d8e9c049ce0c2dd78fc0d92c13e7251c0"}, + {file = "numpy-2.5.2-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:77843ca236b777e67f8d6b3660ea116e499612703a0ecd7093f316201eb9d8e2"}, + {file = "numpy-2.5.2-cp315-cp315t-win32.whl", hash = "sha256:7354826bc6f8f69402e9b7fe28d15fcd34feebd74f856f111585c5b0c9fb0251"}, + {file = "numpy-2.5.2-cp315-cp315t-win_amd64.whl", hash = "sha256:e5651f3f87add730ee6608d915009e19c911fba0cb000c7e3ea994b7d768eb12"}, + {file = "numpy-2.5.2-cp315-cp315t-win_arm64.whl", hash = "sha256:5f8e00be2ec6f45f4e8a41a527f68d44a7d96fee92a650e4d8b1326f77f61e6e"}, + {file = "numpy-2.5.2.tar.gz", hash = "sha256:d482d171c406ae88c5b19cad3b6a1c4c5209f886ab74bc44c2c865c23f52d860"}, ] [[package]] @@ -1138,4 +1153,4 @@ type = ["pytest-mypy"] [metadata] lock-version = "2.1" python-versions = ">=3.13,<4.0" -content-hash = "105637c3527b7635ff206e8cf0d6b8672c6bacfe0b658abe9cf6fc3894ad30ca" +content-hash = "a91ad51be4c2db3ab6dd023afcd5108c874ca6a3ae57648c57423e39b4ccfd37" diff --git a/pyproject.toml b/pyproject.toml index 499f41d..a4cf38e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,6 +16,7 @@ dependencies = [ "rich (>=14.0.0,<15.0.0)", "dash (>=3.1.0,<4.0.0)", "dash-bootstrap-components (>=2.0.3,<3.0.0)", + "numpy (>=2.5.2,<3.0.0)", ] [tool.poetry] diff --git a/scripts/event3-excel-to-csv.py b/scripts/event3-excel-to-csv.py old mode 100644 new mode 100755 diff --git a/scripts/pretix-excel-to-csv.py b/scripts/pretix-excel-to-csv.py new file mode 100755 index 0000000..63d2429 --- /dev/null +++ b/scripts/pretix-excel-to-csv.py @@ -0,0 +1,76 @@ +import re + +from pathlib import Path +from pandas import read_excel, DataFrame +from typer import Typer +from rich.console import Console + + +EMPTY_CELL_TEXT = 'Não respondeu' +SHEET_NAME = 'Posição dos pedidos' +COLUMNS_TO_REMOVE = [ + r'.*do.evento', + r'.*do.pedido', + r'.*id.*', + r'status', + r'email', + r'.*telefone.*', + r'varia.*o', + r'ID da Variante', + r'taxa.*', + r'regra.*', + r'valor.*', + r'nome.do.*', + r'zona.do.*', + r'fileira.do.*', + r'n.mero.do.*', + r'empresa.*', + r'endere.o', + r'c.digo.*', + r'voucher.*', + r'segredo.*', + r'Bloqueado', + r'v.lido.*', + r'coment.rio.*', + r'.*fatura.*', + r'.*acompanhamento', + r'.*vendas', + r'.*check-in', + r'.*link.*', +] + + +cli = Typer() +console = Console() + + +def get_columns_to_remove(excel_content: DataFrame): + for column_to_remove in COLUMNS_TO_REMOVE: + for column_name in excel_content.columns: + if re.match(column_to_remove, column_name, re.IGNORECASE): + yield column_name + + +@cli.command() +def convert(excel: Path): + # Reading the Excel file + console.print(f'Reading the file [bold]{excel}[/bold]...') + excel_content = read_excel(excel, sheet_name=SHEET_NAME) + + # Removing columns with sensive data + columns_to_remove = list(get_columns_to_remove(excel_content)) + console.print(f'Removing columns [bold]{", ".join(columns_to_remove)}[/bold]...') + excel_content.drop(columns=columns_to_remove, inplace=True) + + # Filling empty cells with a default text + console.print(f'Filling empty cells...') + excel_content.fillna(EMPTY_CELL_TEXT, inplace=True) + + # Writting the output CSV file + output_path = excel.with_suffix('.csv') + console.print(f'Saving data to [bold]{output_path}[/bold]...') + excel_content.to_csv(output_path, index=False) + + +if __name__ == '__main__': + cli() \ No newline at end of file From 3f41da89ce673dc2fe0eeb9fb624b33753104186 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Paulo=20Carvalho?= Date: Sat, 15 Aug 2026 10:59:17 -0300 Subject: [PATCH 2/4] =?UTF-8?q?fix:=20mantendo=20coluna=20"Em=20qual=20UF?= =?UTF-8?q?=20voc=C3=AA=20reside=3F"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/2026/inscritos.csv | 360 ++++++++++++++++----------------- scripts/pretix-excel-to-csv.py | 5 +- 2 files changed, 182 insertions(+), 183 deletions(-) diff --git a/data/2026/inscritos.csv b/data/2026/inscritos.csv index ef5626d..2a92589 100644 --- a/data/2026/inscritos.csv +++ b/data/2026/inscritos.csv @@ -1,180 +1,180 @@ -Produto,Preço,País,Estado,Cupom,Tamanho de camisa,Ano de nascimento,Como você se define?,"Você possui alguma deficiência? Se sim, qual?",Você programa em Python?,Como você classificaria seu nível de conhecimento em Python?,Você trabalha com Python?,Termo de consentimento para tratamento de dados pessoais,Direitos de conteúdo e imagem,Você concorda em compartilhar seus dados com os patrocinadores?,Provedores de pagamento -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,GG - 60cm tórax - 76cm comprimento,1988,Uma pessoa negra,Não,Há mais de três anos,Intermediário,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1964,Uma pessoa amarela,Não,Há mais de dez anos,Intermediário,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,P - 49cm tórax - 66cm comprimento,2006,Uma pessoa branca,Não,Há mais de três anos,Avançado,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2000,Uma pessoa branca,Não respondeu,Comecei no último ano,Intermediário,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,P - 49cm tórax - 66cm comprimento,2006,Prefiro não responder,Não respondeu,Há mais de um ano,Iniciante,"Não, mas pretendo",Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1990,Uma pessoa negra,Não,Há mais de um ano,Iniciante,"Não, mas pretendo",Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1983,Uma pessoa parda,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,4G - 68cm tórax - 80cm comprimento,1995,Uma pessoa parda,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1968,Uma pessoa branca,NAO,Comecei no último ano,Intermediário,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,P - 49cm tórax - 66cm comprimento,2003,Uma pessoa parda,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,PP - 46cm tórax - 63cm comprimento,1999,Uma pessoa branca,Não respondeu,Há mais de três anos,Intermediário,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2004,Uma pessoa parda,Não respondeu,Há mais de um ano,Iniciante,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1994,Uma pessoa branca,Não respondeu,"Não programo em Python, mas sei programar em outras linguagens",Iniciante,Não,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2000,Uma pessoa branca,Não respondeu,"Não programo em Python, mas sei programar em outras linguagens",Iniciante,"Não, mas pretendo",Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1993,Uma pessoa negra,Não,Há mais de três anos,Intermediário,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,GG - 60cm tórax - 76cm comprimento,1991,Uma pessoa branca,Não respondeu,Há mais de dez anos,Avançado,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1995,Uma pessoa negra,NAO,"Não programo em Python, mas sei programar em outras linguagens",Iniciante,Não,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2006,Uma pessoa parda,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1991,Uma pessoa negra,TEA,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Ingresso (1º lote),0,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,M - 52cm tórax - 70cm comprimento,1999,Uma pessoa parda,nao,Há mais de cinco anos,Intermediário,Sim,Sim,Sim,Não respondeu,Não respondeu -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,GG - 60cm tórax - 76cm comprimento,1982,Uma pessoa branca,TEA,Há mais de dez anos,Avançado,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,GG - 60cm tórax - 76cm comprimento,1990,Uma pessoa negra,Não respondeu,Há mais de cinco anos,Intermediário,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1983,Uma pessoa parda,Não respondeu,Há mais de dez anos,Avançado,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1997,Uma pessoa parda,Não respondeu,Comecei no último ano,Iniciante,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1992,Uma pessoa branca,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1996,Uma pessoa parda,Não respondeu,Há mais de um ano,Intermediário,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,P - 49cm tórax - 66cm comprimento,1994,Uma pessoa branca,Sim multiplas,Há mais de cinco anos,Intermediário,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1985,Uma pessoa branca,Não respondeu,Há mais de três anos,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe -Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1998,Uma pessoa branca,Não respondeu,Há mais de dez anos,Avançado,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Ingresso (1º lote),0,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,M - 52cm tórax - 70cm comprimento,1997,Uma pessoa negra,Não,"Não programo em Python, mas sei programar em outras linguagens",Iniciante,Não,Sim,Sim,Não respondeu,Não respondeu -Ingresso (1º lote),0,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,M - 52cm tórax - 70cm comprimento,2003,Uma pessoa parda,Não respondeu,Há mais de cinco anos,Intermediário,Sim,Sim,Sim,Não respondeu,Não respondeu -Ingresso (1º lote),0,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,G - 56cm tórax - 73cm comprimento,1993,Uma pessoa negra,Não,Há mais de três anos,Intermediário,Sim,Sim,Sim,Não respondeu,Não respondeu -Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2001,Uma pessoa parda,não,Há mais de um ano,Intermediário,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe -Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1998,Uma pessoa branca,"Sim, possuo baixa mobilidade",Há mais de cinco anos,Avançado,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1993,Uma pessoa branca,Não respondeu,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe -Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1993,Uma pessoa parda,Não respondeu,Não sei programar,Ainda vou aprender,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2003,Uma pessoa parda,Não respondeu,Há mais de cinco anos,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2000,Uma pessoa branca,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1982,Uma pessoa parda,Não respondeu,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,GG - 60cm tórax - 76cm comprimento,2008,Uma pessoa branca,Não respondeu,Comecei no último ano,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,P - 49cm tórax - 66cm comprimento,2007,Uma pessoa branca,Não respondeu,Há mais de um ano,Intermediário,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,P - 49cm tórax - 66cm comprimento,1992,Uma pessoa negra,Não,"Não programo em Python, mas sei programar em outras linguagens",Iniciante,Não,Sim,Sim,Não,Cartão de Crédito via Stripe -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2007,Uma pessoa parda,Não,Há mais de um ano,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2005,Uma pessoa branca,Não respondeu,Há mais de um ano,Intermediário,Não,Sim,Sim,Não,Cartão de Crédito via Stripe -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2026,Uma pessoa amarela,Não respondeu,Há mais de cinco anos,Avançado,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (1º lote),0,Não respondeu,Não respondeu,MICHELLY-D8M9W2PW83A96C7P,P - 49cm tórax - 66cm comprimento,2006,Uma pessoa parda,Não respondeu,Comecei no último ano,Iniciante,Não,Sim,Sim,Não,Não respondeu -Meia entrada (1º lote),0,Não respondeu,Não respondeu,KAILLANY-DSUW2HYDQRYC34CU,P - 49cm tórax - 66cm comprimento,2006,Uma pessoa parda,Não respondeu,Comecei no último ano,Iniciante,Não,Sim,Sim,Não,Não respondeu -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2004,Uma pessoa parda,Não respondeu,Há mais de um ano,Intermediário,"Não, mas pretendo",Sim,Sim,Não,Cartão de Crédito via Stripe -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2006,Uma pessoa parda,Não,Há mais de um ano,Intermediário,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (1º lote),0,Não respondeu,Não respondeu,CDC-WG3RFSA4WN6HVESQ,PP - 46cm tórax - 63cm comprimento,1992,Uma pessoa parda,Não,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu -Ingresso (1º lote),0,Não respondeu,Não respondeu,CDC-WG3RFSA4WN6HVESQ,G - 56cm tórax - 73cm comprimento,1991,Uma pessoa branca,Não,Há mais de um ano,Iniciante,Sim,Sim,Sim,Sim,Não respondeu -Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2006,Uma pessoa branca,não,Comecei no último ano,Intermediário,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe -Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1997,Uma pessoa parda,Não respondeu,Há mais de dez anos,Avançado,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2006,Uma pessoa branca,Não,Há mais de um ano,Iniciante,Não,Sim,Sim,Não,Cartão de Crédito via Stripe -Ingresso (2º lote),260,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1996,Uma pessoa branca,Não respondeu,Há mais de dez anos,Avançado,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe -Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,GG - 60cm tórax - 76cm comprimento,2005,Uma pessoa negra,Não respondeu,"Não programo em Python, mas sei programar em outras linguagens",Ainda vou aprender,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1991,Uma pessoa negra,Não,Não sei programar,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2002,Uma pessoa parda,Não respondeu,Comecei no último ano,Intermediário,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2009,Prefiro não responder,Não,Comecei no último ano,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2004,Uma pessoa negra,Não respondeu,Há mais de três anos,Intermediário,"Não, mas pretendo",Sim,Sim,Não,Cartão de Crédito via Stripe -Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2003,Uma pessoa parda,Não respondeu,Comecei no último ano,Iniciante,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,G - 56cm tórax - 73cm comprimento,2005,Uma pessoa branca,Não,Há mais de cinco anos,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2005,Uma pessoa parda,Não,Há mais de três anos,Intermediário,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,P - 49cm tórax - 66cm comprimento,2002,Uma pessoa parda,Não,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,3G - 64cm tórax - 78cm comprimento,2004,Uma pessoa parda,"Sim, Autismo, TDAH",Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,M - 52cm tórax - 70cm comprimento,2006,Outro,Não respondeu,Comecei no último ano,Iniciante,Não,Sim,Sim,Não,Cartão de Crédito via Stripe -Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,M - 52cm tórax - 70cm comprimento,2005,Uma pessoa parda,Não respondeu,Comecei no último ano,Intermediário,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe -Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,G - 56cm tórax - 73cm comprimento,2005,Uma pessoa branca,Não,Comecei no último ano,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,GG - 60cm tórax - 76cm comprimento,2007,Uma pessoa parda,não,"Não programo em Python, mas sei programar em outras linguagens",Ainda vou aprender,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,M - 52cm tórax - 70cm comprimento,2004,Uma pessoa negra,não,"Não programo em Python, mas sei programar em outras linguagens",Intermediário,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2006,Uma pessoa branca,Não,Há mais de três anos,Intermediário,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,PP - 46cm tórax - 63cm comprimento,1999,Uma pessoa parda,Não respondeu,Há mais de um ano,Iniciante,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe -Ingresso (2º lote),0,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,P - 49cm tórax - 66cm comprimento,1997,Uma pessoa branca,Não respondeu,Há mais de dez anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu -Ingresso (2º lote),0,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,G - 56cm tórax - 73cm comprimento,1996,Uma pessoa parda,Não,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu -Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,GG - 60cm tórax - 76cm comprimento,2001,Uma pessoa negra,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,G - 56cm tórax - 73cm comprimento,2001,Uma pessoa parda,Não,Há mais de um ano,Intermediário,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,M - 52cm tórax - 70cm comprimento,2004,Uma pessoa branca,Não respondeu,Há mais de três anos,Avançado,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe -Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,G - 56cm tórax - 73cm comprimento,2004,Uma pessoa branca,Não respondeu,Não sei programar,Ainda vou aprender,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,PP - 46cm tórax - 63cm comprimento,2002,Uma pessoa branca,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe -Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,PP - 46cm tórax - 63cm comprimento,2005,Uma pessoa negra,Não respondeu,Comecei no último ano,Iniciante,Não,Sim,Sim,Não,Cartão de Crédito via Stripe -Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,P - 49cm tórax - 66cm comprimento,2001,Uma pessoa parda,Não se aplica,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,G - 56cm tórax - 73cm comprimento,2000,Uma pessoa branca,Não respondeu,Comecei no último ano,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,P - 49cm tórax - 66cm comprimento,2003,Uma pessoa branca,Não respondeu,Comecei no último ano,Iniciante,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,P - 49cm tórax - 66cm comprimento,2001,Uma pessoa parda,Não,Há mais de três anos,Avançado,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,M - 52cm tórax - 70cm comprimento,2005,Uma pessoa branca,Não respondeu,Há mais de três anos,Intermediário,Não,Sim,Sim,Não,Cartão de Crédito via Stripe -Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,PP - 46cm tórax - 63cm comprimento,2005,Prefiro não responder,Não respondeu,"Não programo em Python, mas sei programar em outras linguagens",Ainda vou aprender,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe -Ingresso (2º lote),0,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,M - 52cm tórax - 70cm comprimento,1993,Uma pessoa parda,Não respondeu,Há mais de cinco anos,Iniciante,Não,Sim,Sim,Não,Não respondeu -Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,GG - 60cm tórax - 76cm comprimento,1994,Uma pessoa branca,Não respondeu,"Não programo em Python, mas sei programar em outras linguagens",Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2006,Uma pessoa parda,Não,Comecei no último ano,Intermediário,Não,Sim,Sim,Não,Cartão de Crédito via Stripe -Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,PP - 46cm tórax - 63cm comprimento,2005,Uma pessoa parda,Não,"Não programo em Python, mas sei programar em outras linguagens",Iniciante,"Não, mas pretendo",Sim,Sim,Não,Cartão de Crédito via Stripe -Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,G - 56cm tórax - 73cm comprimento,2003,Uma pessoa parda,Nenhuma,Não sei programar,Ainda vou aprender,Não,Sim,Sim,Não,Cartão de Crédito via Stripe -Meia entrada (2º lote),110,Não respondeu,Não respondeu,UERN-MV4KG,G - 56cm tórax - 73cm comprimento,2005,Uma pessoa negra,Não respondeu,Há mais de três anos,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2007,Uma pessoa branca,Não respondeu,Há mais de três anos,Avançado,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe -Ingresso (2º lote),260,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2002,Uma pessoa branca,Não respondeu,Há mais de um ano,Iniciante,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe -Ingresso (2º lote),0,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,P - 49cm tórax - 66cm comprimento,1991,Uma pessoa branca,Não,Comecei no último ano,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu -Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,GG - 60cm tórax - 76cm comprimento,2002,Uma pessoa parda,Não,Comecei no último ano,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe -Ingresso (2º lote),0,Não respondeu,Não respondeu,VALHA-MEU-PY,3G - 64cm tórax - 78cm comprimento,1992,Uma pessoa indígena,Múltipla,Há mais de dez anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu -Ingresso (2º lote),0,Não respondeu,Não respondeu,VALHA-MEU-PY,G - 56cm tórax - 73cm comprimento,1998,Uma pessoa parda,Não respondeu,Há mais de cinco anos,Avançado,Não,Sim,Sim,Sim,Não respondeu -Ingresso (2º lote),0,Não respondeu,Não respondeu,VALHA-MEU-PY,P - 49cm tórax - 66cm comprimento,1988,Uma pessoa parda,Não respondeu,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu -Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2006,Uma pessoa parda,Não respondeu,Há mais de um ano,Intermediário,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2005,Uma pessoa branca,Não respondeu,Há mais de um ano,Intermediário,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (2º lote),0,Não respondeu,Não respondeu,VALHA-MEU-PY,GG - 60cm tórax - 76cm comprimento,2006,Uma pessoa branca,Não respondeu,Há mais de três anos,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu -Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,PP - 46cm tórax - 63cm comprimento,2006,Uma pessoa parda,Não,Há mais de três anos,Intermediário,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe -Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,GG - 60cm tórax - 76cm comprimento,2001,Prefiro não responder,Não,Não sei programar,Ainda vou aprender,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe -Ingresso (2º lote),260,Não respondeu,Não respondeu,Não respondeu,P - 49cm tórax - 66cm comprimento,1987,Uma pessoa parda,Não respondeu,Há mais de dez anos,Avançado,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe -Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1987,Uma pessoa negra,Não respondeu,Há mais de três anos,Iniciante,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe -Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2007,Uma pessoa parda,TEA,Há mais de três anos,Ainda vou aprender,"Não, mas pretendo",Sim,Sim,Não,Cartão de Crédito via Stripe -Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,P - 49cm tórax - 66cm comprimento,2004,Uma pessoa branca,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2001,Uma pessoa parda,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1998,Uma pessoa amarela,Não respondeu,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2004,Uma pessoa branca,Não respondeu,Há mais de três anos,Intermediário,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe -Ingresso (2º lote),260,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1997,Uma pessoa negra,Não respondeu,Há mais de dez anos,Avançado,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe -Ingresso (2º lote),260,Não respondeu,Não respondeu,Não respondeu,GG - 60cm tórax - 76cm comprimento,1992,Uma pessoa branca,Não respondeu,Não sei programar,Ainda vou aprender,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe -Ingresso (2º lote),260,Não respondeu,Não respondeu,Não respondeu,GG - 60cm tórax - 76cm comprimento,1988,Uma pessoa branca,Não respondeu,Há mais de um ano,Intermediário,Não,Sim,Sim,Não,Cartão de Crédito via Stripe -Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1994,Uma pessoa parda,Autismo,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe -Ingresso (3º lote),0,Não respondeu,Não respondeu,VALHA-MEU-PY,4G - 68cm tórax - 80cm comprimento,1998,Uma pessoa negra,Nao,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu -Ingresso (3º lote),0,Não respondeu,Não respondeu,VALHA-MEU-PY,4G - 68cm tórax - 80cm comprimento,1998,Uma pessoa negra,Nao,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu -Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,3G - 64cm tórax - 78cm comprimento,1992,Uma pessoa branca,Não respondeu,Comecei no último ano,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,P - 49cm tórax - 66cm comprimento,1998,Uma pessoa parda,Não respondeu,Não sei programar,Ainda vou aprender,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe -Ingresso (3º lote),0,Não respondeu,Não respondeu,VALHA-MEU-PY,GG - 60cm tórax - 76cm comprimento,1990,Uma pessoa parda,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu -Ingresso (3º lote),0,Não respondeu,Não respondeu,VALHA-MEU-PY,G - 56cm tórax - 73cm comprimento,1992,Uma pessoa negra,Não respondeu,Há mais de dez anos,Avançado,Sim,Sim,Sim,Não,Não respondeu -Ingresso (3º lote),0,Não respondeu,Não respondeu,VALHA-MEU-PY,G - 56cm tórax - 73cm comprimento,2003,Uma pessoa branca,Não,Há mais de três anos,Intermediário,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe -Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1991,Uma pessoa branca,Não respondeu,Há mais de um ano,Intermediário,Não,Sim,Sim,Não,Cartão de Crédito via Stripe -Ingresso (3º lote),0,Não respondeu,Não respondeu,VALHA-MEU-PY,M - 52cm tórax - 70cm comprimento,2001,Uma pessoa negra,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu -Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2004,Uma pessoa branca,Não respondeu,Há mais de um ano,Intermediário,Não,Sim,Sim,Não,Cartão de Crédito via Stripe -Ingresso (3º lote),0,Não respondeu,Não respondeu,VALHA-MEU-PY,G - 56cm tórax - 73cm comprimento,1988,Uma pessoa branca,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Não,Não respondeu -Ingresso (3º lote),0,Não respondeu,Não respondeu,KEYNOTE-ZWU2FNTUNLKKNZXV,M - 52cm tórax - 70cm comprimento,1993,Uma pessoa negra,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu -Ingresso (3º lote),0,Não respondeu,Não respondeu,KEYNOTE-ZWU2FNTUNLKKNZXV,P - 49cm tórax - 66cm comprimento,1990,Uma pessoa parda,Não,Há mais de cinco anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu -Ingresso (3º lote),0,Não respondeu,Não respondeu,KEYNOTE-ZWU2FNTUNLKKNZXV,P - 49cm tórax - 66cm comprimento,1996,Uma pessoa parda,Não respondeu,Há mais de dez anos,Avançado,Sim,Sim,Sim,Não,Não respondeu -Ingresso (3º lote),0,Não respondeu,Não respondeu,VALHA-MEU-PY,P - 49cm tórax - 66cm comprimento,1995,Uma pessoa branca,Não respondeu,Há mais de cinco anos,Intermediário,Não,Sim,Sim,Sim,Não respondeu -Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1997,Uma pessoa branca,Não respondeu,Há mais de um ano,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe -Ingresso (3º lote),0,Não respondeu,Não respondeu,VALHA-MEU-PY,GG - 60cm tórax - 76cm comprimento,2004,Uma pessoa branca,Não respondeu,Há mais de um ano,Avançado,Sim,Sim,Sim,Sim,Não respondeu -Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,P - 49cm tórax - 66cm comprimento,1997,Uma pessoa negra,Física e auditiva,Há mais de um ano,Intermediário,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe -Ingresso (3º lote),0,Não respondeu,Não respondeu,VALHA-MEU-PY,M - 52cm tórax - 70cm comprimento,1983,Uma pessoa branca,Não,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu -Meia entrada (3º lote),126,Não respondeu,Não respondeu,ALUNOS_DA_NAY,G - 56cm tórax - 73cm comprimento,1966,Uma pessoa branca,Nao,Não sei programar,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe -Ingresso (3º lote),0,Não respondeu,Não respondeu,VALHA-MEU-PY,3G - 64cm tórax - 78cm comprimento,1974,Uma pessoa branca,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu -Ingresso (3º lote),0,Não respondeu,Não respondeu,LABCODES_8WPL3,4G - 68cm tórax - 80cm comprimento,1984,Uma pessoa parda,Não,Há mais de um ano,Intermediário,Sim,Sim,Sim,Sim,Não respondeu -Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2003,Uma pessoa branca,Não,Há mais de um ano,Intermediário,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe -Ingresso (3º lote),252,Não respondeu,Não respondeu,PYLADIES,G - 56cm tórax - 73cm comprimento,1995,Uma pessoa parda,Não respondeu,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (3º lote),126,Não respondeu,Não respondeu,PYLADIES_MEIA,P - 49cm tórax - 66cm comprimento,1992,Uma pessoa branca,Não,Há mais de um ano,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe -Ingresso (3º lote),0,Não respondeu,Não respondeu,CDC-WG3RFSA4WN6HVESQ,PP - 46cm tórax - 63cm comprimento,1993,Uma pessoa parda,Não respondeu,Há mais de dez anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu -Ingresso (3º lote),0,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,3G - 64cm tórax - 78cm comprimento,2025,Uma pessoa negra,Não,Há mais de cinco anos,Intermediário,Sim,Sim,Sim,Não,Não respondeu -Ingresso (3º lote),280,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1985,Prefiro não responder,Não,Há mais de dez anos,Avançado,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe -Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,P - 49cm tórax - 66cm comprimento,2004,Uma pessoa branca,Não respondeu,Há mais de três anos,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2003,Uma pessoa branca,Não,"Não programo em Python, mas sei programar em outras linguagens",Iniciante,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1999,Uma pessoa parda,sim,Comecei no último ano,Iniciante,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1995,Uma pessoa parda,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe -Ingresso (3º lote),280,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1994,Uma pessoa parda,Não,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe -Ingresso (3º lote),0,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,GG - 60cm tórax - 76cm comprimento,2001,Uma pessoa parda,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu -Ingresso (3º lote),0,Não respondeu,Não respondeu,CDC-WG3RFSA4WN6HVESQ,G - 56cm tórax - 73cm comprimento,2000,Uma pessoa negra,Não respondeu,Não sei programar,Ainda vou aprender,Não,Sim,Sim,Sim,Não respondeu -Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1989,Uma pessoa parda,NÃO,Há mais de um ano,Iniciante,"Não, mas pretendo",Sim,Sim,Não,Cartão de Crédito via Stripe -Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1995,Uma pessoa negra,Não respondeu,Há mais de um ano,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe -Ingresso (3º lote),252,Não respondeu,Não respondeu,ARTEMISIA10,3G - 64cm tórax - 78cm comprimento,1999,Uma pessoa branca,Não,Comecei no último ano,Iniciante,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (3º lote),126,Não respondeu,Não respondeu,PYLADIES_MEIA,P - 49cm tórax - 66cm comprimento,2000,Uma pessoa parda,"TEA, TDAH, FIBROMIALGIA",Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (3º lote),0,Não respondeu,Não respondeu,MATHEUS-S36WN,G - 56cm tórax - 73cm comprimento,1999,Uma pessoa parda,NÃO,Há mais de três anos,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu -Meia entrada (3º lote),0,Não respondeu,Não respondeu,MATHEUS-S36WN,G - 56cm tórax - 73cm comprimento,1993,Uma pessoa branca,NÃO,"Não programo em Python, mas sei programar em outras linguagens",Ainda vou aprender,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu -Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,P - 49cm tórax - 66cm comprimento,1998,Uma pessoa branca,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,3G - 64cm tórax - 78cm comprimento,2004,Uma pessoa branca,NÃO,Há mais de três anos,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (3º lote),126,Não respondeu,Não respondeu,ALUNOS_DA_NAY,M - 52cm tórax - 70cm comprimento,2001,Uma pessoa branca,Nao,Não sei programar,Ainda vou aprender,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2002,Uma pessoa branca,Não,Comecei no último ano,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe -Ingresso (3º lote),280,Não respondeu,Não respondeu,Não respondeu,P - 49cm tórax - 66cm comprimento,2008,Uma pessoa branca,Não respondeu,Comecei no último ano,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,3G - 64cm tórax - 78cm comprimento,1997,Uma pessoa parda,Não,Há mais de um ano,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,GG - 60cm tórax - 76cm comprimento,1986,Uma pessoa parda,Não respondeu,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2005,Uma pessoa branca,Não respondeu,Há mais de três anos,Intermediário,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe -Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,2002,Uma pessoa branca,Não respondeu,Comecei no último ano,Iniciante,"Não, mas pretendo",Sim,Sim,Não,Cartão de Crédito via Stripe -Meia entrada (3º lote),0,Não respondeu,Não respondeu,PYLADIES_FOR_62XE7,P - 49cm tórax - 66cm comprimento,1996,Uma pessoa parda,Não,Há mais de cinco anos,Intermediário,Não,Sim,Sim,Sim,Não respondeu -Ingresso (3º lote),0,Não respondeu,Não respondeu,PYLADIES_FOR_62XE7,M - 52cm tórax - 70cm comprimento,2006,Uma pessoa branca,Não possuo,Há mais de um ano,Avançado,Sim,Sim,Sim,Sim,Não respondeu -Ingresso (3º lote),0,Não respondeu,Não respondeu,PYLADIES_FOR_62XE7,M - 52cm tórax - 70cm comprimento,1985,Uma pessoa parda,Não respondeu,Comecei no último ano,Iniciante,Não,Sim,Sim,Sim,Não respondeu -Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,GG - 60cm tórax - 76cm comprimento,1993,Uma pessoa parda,N,Não sei programar,Iniciante,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe -Ingresso (3º lote),280,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,1983,Uma pessoa parda,Não respondeu,Comecei no último ano,Iniciante,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe -Meia entrada (3º lote),0,Não respondeu,Não respondeu,VALHA-MEU-PY,G - 56cm tórax - 73cm comprimento,1997,Uma pessoa parda,NÃO,Há mais de um ano,Intermediário,Não,Sim,Sim,Sim,Não respondeu -"Compre um, doe um (3º lote)",0,Não respondeu,Não respondeu,VALHA-MEU-PY,P - 49cm tórax - 66cm comprimento,2002,Uma pessoa negra,não,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu -Ingresso (3º lote),0,Não respondeu,Não respondeu,PYLADIES_FOR_62XE7,M - 52cm tórax - 70cm comprimento,2002,Uma pessoa branca,Não respondeu,Comecei no último ano,Iniciante,Sim,Sim,Sim,Sim,Não respondeu -Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,3G - 64cm tórax - 78cm comprimento,1999,Uma pessoa parda,Nao,Há mais de três anos,Intermediário,Não,Sim,Sim,Sim,Cartão de Crédito via Stripe -Ingresso (3º lote),252,Não respondeu,Não respondeu,ARIANA10,3G - 64cm tórax - 78cm comprimento,1987,Uma pessoa parda,"Sim, visão monocular",Há mais de dez anos,Avançado,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe -Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,M - 52cm tórax - 70cm comprimento,1995,Uma pessoa branca,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Cartão de Crédito via Stripe -Ingresso (3º lote),280,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2002,Uma pessoa branca,Não respondeu,Há mais de três anos,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Cartão de Crédito via Stripe -Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,G - 56cm tórax - 73cm comprimento,2002,Uma pessoa branca,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Não,Cartão de Crédito via Stripe -Ingresso (3º lote),0,Não respondeu,Não respondeu,PYLADIES_FOR_62XE7,G - 56cm tórax - 73cm comprimento,1993,Uma pessoa parda,Não,Há mais de um ano,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu +Produto,Preço,Cidade,País,Estado,Cupom,Em qual UF você reside?,Tamanho de camisa,Ano de nascimento,Como você se define?,Como você se identifica?,Com qual das opções abaixo você se identifica?,"Você possui alguma deficiência? Se sim, qual?",Você programa em Python?,Como você classificaria seu nível de conhecimento em Python?,Você trabalha com Python?,Termo de consentimento para tratamento de dados pessoais,Direitos de conteúdo e imagem,Você concorda em compartilhar seus dados com os patrocinadores?,IVA ID,Provedores de pagamento +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,GG - 60cm tórax - 76cm comprimento,1988,Uma pessoa negra,Homem,Heterossexual / Cisgênero,Não,Há mais de três anos,Intermediário,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,SP - São Paulo,M - 52cm tórax - 70cm comprimento,1964,Uma pessoa amarela,Homem,Heterossexual / Cisgênero,Não,Há mais de dez anos,Intermediário,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,P - 49cm tórax - 66cm comprimento,2006,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não,Há mais de três anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,M - 52cm tórax - 70cm comprimento,2000,Uma pessoa branca,Mulher,Heterossexual / Cisgênero,Não respondeu,Comecei no último ano,Intermediário,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,P - 49cm tórax - 66cm comprimento,2006,Prefiro não responder,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de um ano,Iniciante,"Não, mas pretendo",Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,1990,Uma pessoa negra,Mulher,Parte da comunidade LGBTQIA+,Não,Há mais de um ano,Iniciante,"Não, mas pretendo",Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,M - 52cm tórax - 70cm comprimento,1983,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,4G - 68cm tórax - 80cm comprimento,1995,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,M - 52cm tórax - 70cm comprimento,1968,Uma pessoa branca,Homem,Heterossexual / Cisgênero,NAO,Comecei no último ano,Intermediário,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,P - 49cm tórax - 66cm comprimento,2003,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe +Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,PP - 46cm tórax - 63cm comprimento,1999,Uma pessoa branca,Mulher,Heterossexual / Cisgênero,Não respondeu,Há mais de três anos,Intermediário,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,G - 56cm tórax - 73cm comprimento,2004,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de um ano,Iniciante,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe +Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,M - 52cm tórax - 70cm comprimento,1994,Uma pessoa branca,Mulher,Heterossexual / Cisgênero,Não respondeu,"Não programo em Python, mas sei programar em outras linguagens",Iniciante,Não,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe +Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,G - 56cm tórax - 73cm comprimento,2000,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,"Não programo em Python, mas sei programar em outras linguagens",Iniciante,"Não, mas pretendo",Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PB - Paraíba,G - 56cm tórax - 73cm comprimento,1993,Uma pessoa negra,Homem,Heterossexual / Cisgênero,Não,Há mais de três anos,Intermediário,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe +Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,GG - 60cm tórax - 76cm comprimento,1991,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de dez anos,Avançado,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,BA - Bahia,M - 52cm tórax - 70cm comprimento,1995,Uma pessoa negra,Mulher,Parte da comunidade LGBTQIA+,NAO,"Não programo em Python, mas sei programar em outras linguagens",Iniciante,Não,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,G - 56cm tórax - 73cm comprimento,2006,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,M - 52cm tórax - 70cm comprimento,1991,Uma pessoa negra,Mulher,Parte da comunidade LGBTQIA+,TEA,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe +Ingresso (1º lote),0,Não respondeu,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,PE - Pernambuco,M - 52cm tórax - 70cm comprimento,1999,Uma pessoa parda,Homem,Heterossexual / Cisgênero,nao,Há mais de cinco anos,Intermediário,Sim,Sim,Sim,Não respondeu,Não respondeu,Não respondeu +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,RN - Rio Grande do Norte,GG - 60cm tórax - 76cm comprimento,1982,Uma pessoa branca,Homem,Heterossexual / Cisgênero,TEA,Há mais de dez anos,Avançado,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PE - Pernambuco,GG - 60cm tórax - 76cm comprimento,1990,Uma pessoa negra,Mulher,Parte da comunidade LGBTQIA+,Não respondeu,Há mais de cinco anos,Intermediário,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe +Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,Não respondeu,ES - Espírito Santo,M - 52cm tórax - 70cm comprimento,1983,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de dez anos,Avançado,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe +Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,M - 52cm tórax - 70cm comprimento,1997,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Comecei no último ano,Iniciante,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,M - 52cm tórax - 70cm comprimento,1992,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,1996,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de um ano,Intermediário,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,P - 49cm tórax - 66cm comprimento,1994,Uma pessoa branca,Mulher,Prefiro não responder,Sim multiplas,Há mais de cinco anos,Intermediário,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,1985,Uma pessoa branca,Mulher,Heterossexual / Cisgênero,Não respondeu,Há mais de três anos,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,1998,Uma pessoa branca,Homem,Prefiro não responder,Não respondeu,Há mais de dez anos,Avançado,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe +Ingresso (1º lote),0,Não respondeu,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,CE - Ceará,M - 52cm tórax - 70cm comprimento,1997,Uma pessoa negra,Mulher,Heterossexual / Cisgênero,Não,"Não programo em Python, mas sei programar em outras linguagens",Iniciante,Não,Sim,Sim,Não respondeu,Não respondeu,Não respondeu +Ingresso (1º lote),0,Não respondeu,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,MA - Maranhão,M - 52cm tórax - 70cm comprimento,2003,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de cinco anos,Intermediário,Sim,Sim,Sim,Não respondeu,Não respondeu,Não respondeu +Ingresso (1º lote),0,Não respondeu,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,CE - Ceará,G - 56cm tórax - 73cm comprimento,1993,Uma pessoa negra,Homem,Heterossexual / Cisgênero,Não,Há mais de três anos,Intermediário,Sim,Sim,Sim,Não respondeu,Não respondeu,Não respondeu +Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,G - 56cm tórax - 73cm comprimento,2001,Uma pessoa parda,Homem,Heterossexual / Cisgênero,não,Há mais de um ano,Intermediário,Sim,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,Não respondeu,SP - São Paulo,G - 56cm tórax - 73cm comprimento,1998,Uma pessoa branca,Mulher,Heterossexual / Cisgênero,"Sim, possuo baixa mobilidade",Há mais de cinco anos,Avançado,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,M - 52cm tórax - 70cm comprimento,1993,Uma pessoa branca,Não-binárie,Parte da comunidade LGBTQIA+,Não respondeu,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,1993,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Não sei programar,Ainda vou aprender,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,2003,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de cinco anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,M - 52cm tórax - 70cm comprimento,2000,Uma pessoa branca,Homem,Parte da comunidade LGBTQIA+,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,BA - Bahia,G - 56cm tórax - 73cm comprimento,1982,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,GG - 60cm tórax - 76cm comprimento,2008,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,Comecei no último ano,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,P - 49cm tórax - 66cm comprimento,2007,Uma pessoa branca,Mulher,Prefiro não responder,Não respondeu,Há mais de um ano,Intermediário,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,BA - Bahia,P - 49cm tórax - 66cm comprimento,1992,Uma pessoa negra,Mulher,Parte da comunidade LGBTQIA+,Não,"Não programo em Python, mas sei programar em outras linguagens",Iniciante,Não,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,2007,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não,Há mais de um ano,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,RN - Rio Grande do Norte,G - 56cm tórax - 73cm comprimento,2005,Uma pessoa branca,Homem,Prefiro não responder,Não respondeu,Há mais de um ano,Intermediário,Não,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,RN - Rio Grande do Norte,G - 56cm tórax - 73cm comprimento,2026,Uma pessoa amarela,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de cinco anos,Avançado,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),0,Não respondeu,Não respondeu,Não respondeu,MICHELLY-D8M9W2PW83A96C7P,PI - Piauí,P - 49cm tórax - 66cm comprimento,2006,Uma pessoa parda,Mulher,Parte da comunidade LGBTQIA+,Não respondeu,Comecei no último ano,Iniciante,Não,Sim,Sim,Não,Não respondeu,Não respondeu +Meia entrada (1º lote),0,Não respondeu,Não respondeu,Não respondeu,KAILLANY-DSUW2HYDQRYC34CU,PI - Piauí,P - 49cm tórax - 66cm comprimento,2006,Uma pessoa parda,Mulher,Prefiro não responder,Não respondeu,Comecei no último ano,Iniciante,Não,Sim,Sim,Não,Não respondeu,Não respondeu +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,M - 52cm tórax - 70cm comprimento,2004,Uma pessoa parda,Mulher,Heterossexual / Cisgênero,Não respondeu,Há mais de um ano,Intermediário,"Não, mas pretendo",Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,RN - Rio Grande do Norte,M - 52cm tórax - 70cm comprimento,2006,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não,Há mais de um ano,Intermediário,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),0,Não respondeu,Não respondeu,Não respondeu,CDC-WG3RFSA4WN6HVESQ,RN - Rio Grande do Norte,PP - 46cm tórax - 63cm comprimento,1992,Uma pessoa parda,Mulher,Parte da comunidade LGBTQIA+,Não,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu +Ingresso (1º lote),0,Não respondeu,Não respondeu,Não respondeu,CDC-WG3RFSA4WN6HVESQ,PE - Pernambuco,G - 56cm tórax - 73cm comprimento,1991,Uma pessoa branca,Homem,Prefiro não responder,Não,Há mais de um ano,Iniciante,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu +Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,2006,Uma pessoa branca,Homem,Heterossexual / Cisgênero,não,Comecei no último ano,Intermediário,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,M - 52cm tórax - 70cm comprimento,1997,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de dez anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,G - 56cm tórax - 73cm comprimento,2006,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não,Há mais de um ano,Iniciante,Não,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Ingresso (2º lote),260,Não respondeu,Não respondeu,Não respondeu,Não respondeu,SP - São Paulo,G - 56cm tórax - 73cm comprimento,1996,Uma pessoa branca,Mulher,Parte da comunidade LGBTQIA+,Não respondeu,Há mais de dez anos,Avançado,Sim,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,RN - Rio Grande do Norte,GG - 60cm tórax - 76cm comprimento,2005,Uma pessoa negra,Homem,Heterossexual / Cisgênero,Não respondeu,"Não programo em Python, mas sei programar em outras linguagens",Ainda vou aprender,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,1991,Uma pessoa negra,Mulher,Heterossexual / Cisgênero,Não,Não sei programar,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,G - 56cm tórax - 73cm comprimento,2002,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Comecei no último ano,Intermediário,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,M - 52cm tórax - 70cm comprimento,2009,Prefiro não responder,Homem,Prefiro não responder,Não,Comecei no último ano,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,G - 56cm tórax - 73cm comprimento,2004,Uma pessoa negra,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de três anos,Intermediário,"Não, mas pretendo",Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,G - 56cm tórax - 73cm comprimento,2003,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Comecei no último ano,Iniciante,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,G - 56cm tórax - 73cm comprimento,2005,Uma pessoa branca,Homem,Parte da comunidade LGBTQIA+,Não,Há mais de cinco anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,M - 52cm tórax - 70cm comprimento,2005,Uma pessoa parda,Homem,Parte da comunidade LGBTQIA+,Não,Há mais de três anos,Intermediário,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,P - 49cm tórax - 66cm comprimento,2002,Uma pessoa parda,Mulher,Parte da comunidade LGBTQIA+,Não,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,SP - São Paulo,3G - 64cm tórax - 78cm comprimento,2004,Uma pessoa parda,Mulher,Parte da comunidade LGBTQIA+,"Sim, Autismo, TDAH",Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,M - 52cm tórax - 70cm comprimento,2006,Outro,Homem,Prefiro não responder,Não respondeu,Comecei no último ano,Iniciante,Não,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,M - 52cm tórax - 70cm comprimento,2005,Uma pessoa parda,Mulher,Heterossexual / Cisgênero,Não respondeu,Comecei no último ano,Intermediário,Sim,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,G - 56cm tórax - 73cm comprimento,2005,Uma pessoa branca,Homem,Parte da comunidade LGBTQIA+,Não,Comecei no último ano,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,GG - 60cm tórax - 76cm comprimento,2007,Uma pessoa parda,Homem,Heterossexual / Cisgênero,não,"Não programo em Python, mas sei programar em outras linguagens",Ainda vou aprender,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,M - 52cm tórax - 70cm comprimento,2004,Uma pessoa negra,Mulher,Heterossexual / Cisgênero,não,"Não programo em Python, mas sei programar em outras linguagens",Intermediário,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,M - 52cm tórax - 70cm comprimento,2006,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não,Há mais de três anos,Intermediário,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,PP - 46cm tórax - 63cm comprimento,1999,Uma pessoa parda,Homem,Parte da comunidade LGBTQIA+,Não respondeu,Há mais de um ano,Iniciante,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (2º lote),0,Não respondeu,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,CE - Ceará,P - 49cm tórax - 66cm comprimento,1997,Uma pessoa branca,Mulher,Heterossexual / Cisgênero,Não respondeu,Há mais de dez anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu +Ingresso (2º lote),0,Não respondeu,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,CE - Ceará,G - 56cm tórax - 73cm comprimento,1996,Uma pessoa parda,Mulher,Parte da comunidade LGBTQIA+,Não,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu +Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,GG - 60cm tórax - 76cm comprimento,2001,Uma pessoa negra,Homem,Parte da comunidade LGBTQIA+,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,G - 56cm tórax - 73cm comprimento,2001,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não,Há mais de um ano,Intermediário,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,M - 52cm tórax - 70cm comprimento,2004,Uma pessoa branca,Mulher,Parte da comunidade LGBTQIA+,Não respondeu,Há mais de três anos,Avançado,Sim,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,G - 56cm tórax - 73cm comprimento,2004,Uma pessoa branca,Mulher,Parte da comunidade LGBTQIA+,Não respondeu,Não sei programar,Ainda vou aprender,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,PP - 46cm tórax - 63cm comprimento,2002,Uma pessoa branca,Mulher,Parte da comunidade LGBTQIA+,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,PP - 46cm tórax - 63cm comprimento,2005,Uma pessoa negra,Mulher,Heterossexual / Cisgênero,Não respondeu,Comecei no último ano,Iniciante,Não,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,BA - Bahia,P - 49cm tórax - 66cm comprimento,2001,Uma pessoa parda,Mulher,Parte da comunidade LGBTQIA+,Não se aplica,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,G - 56cm tórax - 73cm comprimento,2000,Uma pessoa branca,Mulher,Heterossexual / Cisgênero,Não respondeu,Comecei no último ano,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,P - 49cm tórax - 66cm comprimento,2003,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,Comecei no último ano,Iniciante,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,P - 49cm tórax - 66cm comprimento,2001,Uma pessoa parda,Homem,Parte da comunidade LGBTQIA+,Não,Há mais de três anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,M - 52cm tórax - 70cm comprimento,2005,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de três anos,Intermediário,Não,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,PP - 46cm tórax - 63cm comprimento,2005,Prefiro não responder,Mulher,Parte da comunidade LGBTQIA+,Não respondeu,"Não programo em Python, mas sei programar em outras linguagens",Ainda vou aprender,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (2º lote),0,Não respondeu,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,RN - Rio Grande do Norte,M - 52cm tórax - 70cm comprimento,1993,Uma pessoa parda,Mulher,Heterossexual / Cisgênero,Não respondeu,Há mais de cinco anos,Iniciante,Não,Sim,Sim,Não,Não respondeu,Não respondeu +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,GG - 60cm tórax - 76cm comprimento,1994,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,"Não programo em Python, mas sei programar em outras linguagens",Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,M - 52cm tórax - 70cm comprimento,2006,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não,Comecei no último ano,Intermediário,Não,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,PP - 46cm tórax - 63cm comprimento,2005,Uma pessoa parda,Mulher,Heterossexual / Cisgênero,Não,"Não programo em Python, mas sei programar em outras linguagens",Iniciante,"Não, mas pretendo",Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,G - 56cm tórax - 73cm comprimento,2003,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Nenhuma,Não sei programar,Ainda vou aprender,Não,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,G - 56cm tórax - 73cm comprimento,2005,Uma pessoa negra,Mulher,Parte da comunidade LGBTQIA+,Não respondeu,Há mais de três anos,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,M - 52cm tórax - 70cm comprimento,2007,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de três anos,Avançado,Sim,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Ingresso (2º lote),260,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,M - 52cm tórax - 70cm comprimento,2002,Uma pessoa branca,Homem,Parte da comunidade LGBTQIA+,Não respondeu,Há mais de um ano,Iniciante,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (2º lote),0,Não respondeu,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,CE - Ceará,P - 49cm tórax - 66cm comprimento,1991,Uma pessoa branca,Mulher,Heterossexual / Cisgênero,Não,Comecei no último ano,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Não respondeu +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,GG - 60cm tórax - 76cm comprimento,2002,Uma pessoa parda,Mulher,Parte da comunidade LGBTQIA+,Não,Comecei no último ano,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (2º lote),0,Não respondeu,Não respondeu,Não respondeu,VALHA-MEU-PY,PA - Pará,3G - 64cm tórax - 78cm comprimento,1992,Uma pessoa indígena,Mulher,Parte da comunidade LGBTQIA+,Múltipla,Há mais de dez anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu +Ingresso (2º lote),0,Não respondeu,Não respondeu,Não respondeu,VALHA-MEU-PY,AL - Alagoas,G - 56cm tórax - 73cm comprimento,1998,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de cinco anos,Avançado,Não,Sim,Sim,Sim,Não respondeu,Não respondeu +Ingresso (2º lote),0,Não respondeu,Não respondeu,Não respondeu,VALHA-MEU-PY,CE - Ceará,P - 49cm tórax - 66cm comprimento,1988,Uma pessoa parda,Mulher,Heterossexual / Cisgênero,Não respondeu,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,M - 52cm tórax - 70cm comprimento,2006,Uma pessoa parda,Mulher,Parte da comunidade LGBTQIA+,Não respondeu,Há mais de um ano,Intermediário,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,M - 52cm tórax - 70cm comprimento,2005,Uma pessoa branca,Homem,Parte da comunidade LGBTQIA+,Não respondeu,Há mais de um ano,Intermediário,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),0,Não respondeu,Não respondeu,Não respondeu,VALHA-MEU-PY,MG - Minas Gerais,GG - 60cm tórax - 76cm comprimento,2006,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de três anos,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Não respondeu +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,BA - Bahia,PP - 46cm tórax - 63cm comprimento,2006,Uma pessoa parda,Mulher,Parte da comunidade LGBTQIA+,Não,Há mais de três anos,Intermediário,Sim,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,GG - 60cm tórax - 76cm comprimento,2001,Prefiro não responder,Prefiro não responder,Parte da comunidade LGBTQIA+,Não,Não sei programar,Ainda vou aprender,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (2º lote),260,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PE - Pernambuco,P - 49cm tórax - 66cm comprimento,1987,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de dez anos,Avançado,Sim,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PE - Pernambuco,G - 56cm tórax - 73cm comprimento,1987,Uma pessoa negra,Mulher,Parte da comunidade LGBTQIA+,Não respondeu,Há mais de três anos,Iniciante,Sim,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PE - Pernambuco,M - 52cm tórax - 70cm comprimento,2007,Uma pessoa parda,Mulher,Prefiro não responder,TEA,Há mais de três anos,Ainda vou aprender,"Não, mas pretendo",Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,P - 49cm tórax - 66cm comprimento,2004,Uma pessoa branca,Mulher,Heterossexual / Cisgênero,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,G - 56cm tórax - 73cm comprimento,2001,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,M - 52cm tórax - 70cm comprimento,1998,Uma pessoa amarela,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,M - 52cm tórax - 70cm comprimento,2004,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de três anos,Intermediário,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (2º lote),260,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PB - Paraíba,G - 56cm tórax - 73cm comprimento,1997,Uma pessoa negra,Mulher,Parte da comunidade LGBTQIA+,Não respondeu,Há mais de dez anos,Avançado,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (2º lote),260,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PB - Paraíba,GG - 60cm tórax - 76cm comprimento,1992,Uma pessoa branca,Mulher,Parte da comunidade LGBTQIA+,Não respondeu,Não sei programar,Ainda vou aprender,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (2º lote),260,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,GG - 60cm tórax - 76cm comprimento,1988,Uma pessoa branca,Homem,Parte da comunidade LGBTQIA+,Não respondeu,Há mais de um ano,Intermediário,Não,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,1994,Uma pessoa parda,Mulher,Parte da comunidade LGBTQIA+,Autismo,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,VALHA-MEU-PY,ES - Espírito Santo,4G - 68cm tórax - 80cm comprimento,1998,Uma pessoa negra,Homem,Heterossexual / Cisgênero,Nao,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu +Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,VALHA-MEU-PY,ES - Espírito Santo,4G - 68cm tórax - 80cm comprimento,1998,Uma pessoa negra,Homem,Heterossexual / Cisgênero,Nao,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,3G - 64cm tórax - 78cm comprimento,1992,Uma pessoa branca,Mulher,Heterossexual / Cisgênero,Não respondeu,Comecei no último ano,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,P - 49cm tórax - 66cm comprimento,1998,Uma pessoa parda,Mulher,Heterossexual / Cisgênero,Não respondeu,Não sei programar,Ainda vou aprender,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,VALHA-MEU-PY,CE - Ceará,GG - 60cm tórax - 76cm comprimento,1990,Uma pessoa parda,Mulher,Heterossexual / Cisgênero,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu +Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,VALHA-MEU-PY,BA - Bahia,G - 56cm tórax - 73cm comprimento,1992,Uma pessoa negra,Homem,Parte da comunidade LGBTQIA+,Não respondeu,Há mais de dez anos,Avançado,Sim,Sim,Sim,Não,Não respondeu,Não respondeu +Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,VALHA-MEU-PY,CE - Ceará,G - 56cm tórax - 73cm comprimento,2003,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não,Há mais de três anos,Intermediário,Sim,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,M - 52cm tórax - 70cm comprimento,1991,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de um ano,Intermediário,Não,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,VALHA-MEU-PY,PE - Pernambuco,M - 52cm tórax - 70cm comprimento,2001,Uma pessoa negra,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,M - 52cm tórax - 70cm comprimento,2004,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de um ano,Intermediário,Não,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,VALHA-MEU-PY,CE - Ceará,G - 56cm tórax - 73cm comprimento,1988,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Não,Não respondeu,Não respondeu +Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,KEYNOTE-ZWU2FNTUNLKKNZXV,BA - Bahia,M - 52cm tórax - 70cm comprimento,1993,Uma pessoa negra,Mulher,Heterossexual / Cisgênero,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu +Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,KEYNOTE-ZWU2FNTUNLKKNZXV,PE - Pernambuco,P - 49cm tórax - 66cm comprimento,1990,Uma pessoa parda,Mulher,Heterossexual / Cisgênero,Não,Há mais de cinco anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu +Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,KEYNOTE-ZWU2FNTUNLKKNZXV,RN - Rio Grande do Norte,P - 49cm tórax - 66cm comprimento,1996,Uma pessoa parda,Mulher,Heterossexual / Cisgênero,Não respondeu,Há mais de dez anos,Avançado,Sim,Sim,Sim,Não,Não respondeu,Não respondeu +Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,VALHA-MEU-PY,CE - Ceará,P - 49cm tórax - 66cm comprimento,1995,Uma pessoa branca,Mulher,Parte da comunidade LGBTQIA+,Não respondeu,Há mais de cinco anos,Intermediário,Não,Sim,Sim,Sim,Não respondeu,Não respondeu +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,1997,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de um ano,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,VALHA-MEU-PY,CE - Ceará,GG - 60cm tórax - 76cm comprimento,2004,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de um ano,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,P - 49cm tórax - 66cm comprimento,1997,Uma pessoa negra,Homem,Heterossexual / Cisgênero,Física e auditiva,Há mais de um ano,Intermediário,Sim,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,VALHA-MEU-PY,CE - Ceará,M - 52cm tórax - 70cm comprimento,1983,Uma pessoa branca,Mulher,Parte da comunidade LGBTQIA+,Não,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu +Meia entrada (3º lote),126,Não respondeu,Não respondeu,Não respondeu,ALUNOS_DA_NAY,CE - Ceará,G - 56cm tórax - 73cm comprimento,1966,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Nao,Não sei programar,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,VALHA-MEU-PY,SC - Santa Catarina,3G - 64cm tórax - 78cm comprimento,1974,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu +Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,LABCODES_8WPL3,CE - Ceará,4G - 68cm tórax - 80cm comprimento,1984,Uma pessoa parda,Mulher,Parte da comunidade LGBTQIA+,Não,Há mais de um ano,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,2003,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não,Há mais de um ano,Intermediário,Sim,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Ingresso (3º lote),252,Não respondeu,Não respondeu,Não respondeu,PYLADIES,CE - Ceará,G - 56cm tórax - 73cm comprimento,1995,Uma pessoa parda,Mulher,Parte da comunidade LGBTQIA+,Não respondeu,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (3º lote),126,Não respondeu,Não respondeu,Não respondeu,PYLADIES_MEIA,CE - Ceará,P - 49cm tórax - 66cm comprimento,1992,Uma pessoa branca,Mulher,Heterossexual / Cisgênero,Não,Há mais de um ano,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,CDC-WG3RFSA4WN6HVESQ,SP - São Paulo,PP - 46cm tórax - 63cm comprimento,1993,Uma pessoa parda,Mulher,Heterossexual / Cisgênero,Não respondeu,Há mais de dez anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu +Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,RN - Rio Grande do Norte,3G - 64cm tórax - 78cm comprimento,2025,Uma pessoa negra,Homem,Parte da comunidade LGBTQIA+,Não,Há mais de cinco anos,Intermediário,Sim,Sim,Sim,Não,Não respondeu,Não respondeu +Ingresso (3º lote),280,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,1985,Prefiro não responder,Prefiro não responder,Prefiro não responder,Não,Há mais de dez anos,Avançado,Sim,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,P - 49cm tórax - 66cm comprimento,2004,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de três anos,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,M - 52cm tórax - 70cm comprimento,2003,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não,"Não programo em Python, mas sei programar em outras linguagens",Iniciante,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,1999,Uma pessoa parda,Mulher,Parte da comunidade LGBTQIA+,sim,Comecei no último ano,Iniciante,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,RN - Rio Grande do Norte,M - 52cm tórax - 70cm comprimento,1995,Uma pessoa parda,Homem,Parte da comunidade LGBTQIA+,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (3º lote),280,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,M - 52cm tórax - 70cm comprimento,1994,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,SC - Santa Catarina,GG - 60cm tórax - 76cm comprimento,2001,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu +Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,CDC-WG3RFSA4WN6HVESQ,SC - Santa Catarina,G - 56cm tórax - 73cm comprimento,2000,Uma pessoa negra,Mulher,Heterossexual / Cisgênero,Não respondeu,Não sei programar,Ainda vou aprender,Não,Sim,Sim,Sim,Não respondeu,Não respondeu +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,M - 52cm tórax - 70cm comprimento,1989,Uma pessoa parda,Homem,Heterossexual / Cisgênero,NÃO,Há mais de um ano,Iniciante,"Não, mas pretendo",Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,M - 52cm tórax - 70cm comprimento,1995,Uma pessoa negra,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de um ano,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (3º lote),252,Não respondeu,Não respondeu,Não respondeu,ARTEMISIA10,RN - Rio Grande do Norte,3G - 64cm tórax - 78cm comprimento,1999,Uma pessoa branca,Mulher,Heterossexual / Cisgênero,Não,Comecei no último ano,Iniciante,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (3º lote),126,Não respondeu,Não respondeu,Não respondeu,PYLADIES_MEIA,CE - Ceará,P - 49cm tórax - 66cm comprimento,2000,Uma pessoa parda,Mulher,Parte da comunidade LGBTQIA+,"TEA, TDAH, FIBROMIALGIA",Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (3º lote),0,Não respondeu,Não respondeu,Não respondeu,MATHEUS-S36WN,PI - Piauí,G - 56cm tórax - 73cm comprimento,1999,Uma pessoa parda,Homem,Parte da comunidade LGBTQIA+,NÃO,Há mais de três anos,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Não respondeu +Meia entrada (3º lote),0,Não respondeu,Não respondeu,Não respondeu,MATHEUS-S36WN,PI - Piauí,G - 56cm tórax - 73cm comprimento,1993,Uma pessoa branca,Homem,Parte da comunidade LGBTQIA+,NÃO,"Não programo em Python, mas sei programar em outras linguagens",Ainda vou aprender,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Não respondeu +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,P - 49cm tórax - 66cm comprimento,1998,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,3G - 64cm tórax - 78cm comprimento,2004,Uma pessoa branca,Homem,Heterossexual / Cisgênero,NÃO,Há mais de três anos,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (3º lote),126,Não respondeu,Não respondeu,Não respondeu,ALUNOS_DA_NAY,CE - Ceará,M - 52cm tórax - 70cm comprimento,2001,Uma pessoa branca,Mulher,Heterossexual / Cisgênero,Nao,Não sei programar,Ainda vou aprender,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,M - 52cm tórax - 70cm comprimento,2002,Uma pessoa branca,Outro,Parte da comunidade LGBTQIA+,Não,Comecei no último ano,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (3º lote),280,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,P - 49cm tórax - 66cm comprimento,2008,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,Comecei no último ano,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PA - Pará,3G - 64cm tórax - 78cm comprimento,1997,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não,Há mais de um ano,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,GG - 60cm tórax - 76cm comprimento,1986,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,G - 56cm tórax - 73cm comprimento,2005,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de três anos,Intermediário,Sim,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,M - 52cm tórax - 70cm comprimento,2002,Uma pessoa branca,Mulher,Heterossexual / Cisgênero,Não respondeu,Comecei no último ano,Iniciante,"Não, mas pretendo",Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (3º lote),0,Não respondeu,Não respondeu,Não respondeu,PYLADIES_FOR_62XE7,CE - Ceará,P - 49cm tórax - 66cm comprimento,1996,Uma pessoa parda,Mulher,Heterossexual / Cisgênero,Não,Há mais de cinco anos,Intermediário,Não,Sim,Sim,Sim,Não respondeu,Não respondeu +Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,PYLADIES_FOR_62XE7,CE - Ceará,M - 52cm tórax - 70cm comprimento,2006,Uma pessoa branca,Mulher,Heterossexual / Cisgênero,Não possuo,Há mais de um ano,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu +Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,PYLADIES_FOR_62XE7,CE - Ceará,M - 52cm tórax - 70cm comprimento,1985,Uma pessoa parda,Mulher,Heterossexual / Cisgênero,Não respondeu,Comecei no último ano,Iniciante,Não,Sim,Sim,Sim,Não respondeu,Não respondeu +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,GG - 60cm tórax - 76cm comprimento,1993,Uma pessoa parda,Homem,Heterossexual / Cisgênero,N,Não sei programar,Iniciante,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (3º lote),280,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,1983,Uma pessoa parda,Homem,Prefiro não responder,Não respondeu,Comecei no último ano,Iniciante,Sim,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (3º lote),0,Não respondeu,Não respondeu,Não respondeu,VALHA-MEU-PY,PI - Piauí,G - 56cm tórax - 73cm comprimento,1997,Uma pessoa parda,Homem,Prefiro não responder,NÃO,Há mais de um ano,Intermediário,Não,Sim,Sim,Sim,Não respondeu,Não respondeu +"Compre um, doe um (3º lote)",0,Não respondeu,Não respondeu,Não respondeu,VALHA-MEU-PY,CE - Ceará,P - 49cm tórax - 66cm comprimento,2002,Uma pessoa negra,Mulher,Parte da comunidade LGBTQIA+,não,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu +Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,PYLADIES_FOR_62XE7,CE - Ceará,M - 52cm tórax - 70cm comprimento,2002,Uma pessoa branca,Mulher,Parte da comunidade LGBTQIA+,Não respondeu,Comecei no último ano,Iniciante,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,3G - 64cm tórax - 78cm comprimento,1999,Uma pessoa parda,Homem,Parte da comunidade LGBTQIA+,Nao,Há mais de três anos,Intermediário,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (3º lote),252,Não respondeu,Não respondeu,Não respondeu,ARIANA10,CE - Ceará,3G - 64cm tórax - 78cm comprimento,1987,Uma pessoa parda,Homem,Heterossexual / Cisgênero,"Sim, visão monocular",Há mais de dez anos,Avançado,Sim,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,SC - Santa Catarina,M - 52cm tórax - 70cm comprimento,1995,Uma pessoa branca,Mulher,Parte da comunidade LGBTQIA+,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (3º lote),280,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,2002,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de três anos,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,2002,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,PYLADIES_FOR_62XE7,CE - Ceará,G - 56cm tórax - 73cm comprimento,1993,Uma pessoa parda,Mulher,Parte da comunidade LGBTQIA+,Não,Há mais de um ano,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Não respondeu diff --git a/scripts/pretix-excel-to-csv.py b/scripts/pretix-excel-to-csv.py index 63d2429..b7b1473 100755 --- a/scripts/pretix-excel-to-csv.py +++ b/scripts/pretix-excel-to-csv.py @@ -11,12 +11,11 @@ COLUMNS_TO_REMOVE = [ r'.*do.evento', r'.*do.pedido', - r'.*id.*', + r'.*id\s.*', r'status', r'email', r'.*telefone.*', r'varia.*o', - r'ID da Variante', r'taxa.*', r'regra.*', r'valor.*', @@ -29,7 +28,7 @@ r'c.digo.*', r'voucher.*', r'segredo.*', - r'Bloqueado', + r'bloqueado', r'v.lido.*', r'coment.rio.*', r'.*fatura.*', From f5d5cdd1a0e1fa0e93ff0c494f14b5f6aa7cf561 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Paulo=20Carvalho?= Date: Sat, 15 Aug 2026 11:31:01 -0300 Subject: [PATCH 3/4] =?UTF-8?q?feat:=20script=20para=20gerar=20gr=C3=A1fic?= =?UTF-8?q?os?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- poetry.lock | 1538 +++++++++++++++++++++++++++----------- pyproject.toml | 2 + scripts/csv_to_graphs.py | 22 + 3 files changed, 1124 insertions(+), 438 deletions(-) create mode 100755 scripts/csv_to_graphs.py diff --git a/poetry.lock b/poetry.lock index a7ee062..e8a34ea 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,20 +1,20 @@ -# This file is automatically @generated by Poetry 2.1.3 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.4.1 and should not be changed by hand. [[package]] name = "asttokens" -version = "3.0.0" +version = "3.0.2" description = "Annotate AST trees with source code positions" optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "asttokens-3.0.0-py3-none-any.whl", hash = "sha256:e3078351a059199dd5138cb1c706e6430c05eff2ff136af5eb4790f9d28932e2"}, - {file = "asttokens-3.0.0.tar.gz", hash = "sha256:0dcd8baa8d62b0c1d118b399b2ddba3c4aff271d0d7a9e0d4c1681c79035bbc7"}, + {file = "asttokens-3.0.2-py3-none-any.whl", hash = "sha256:9da13157f5b28becde0bd374fc677dcd3c290614264eff096f167c469cd9f933"}, + {file = "asttokens-3.0.2.tar.gz", hash = "sha256:3ecdbd8f2cc195f53ccada3a613538bb5f9ef6f6869129f13e03c30a677b8fe2"}, ] [package.extras] -astroid = ["astroid (>=2,<4)"] -test = ["astroid (>=2,<4)", "pytest", "pytest-cov", "pytest-xdist"] +astroid = ["astroid (>=2,<5)"] +test = ["astroid (>=2,<5)", "pytest (<9.0)", "pytest-cov", "pytest-xdist"] [[package]] name = "blinker" @@ -30,128 +30,208 @@ files = [ [[package]] name = "certifi" -version = "2025.6.15" +version = "2026.7.22" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.7" groups = ["main"] files = [ - {file = "certifi-2025.6.15-py3-none-any.whl", hash = "sha256:2e0c7ce7cb5d8f8634ca55d2ba7e6ec2689a2fd6537d8dec1296a477a4910057"}, - {file = "certifi-2025.6.15.tar.gz", hash = "sha256:d747aa5a8b9bbbb1bb8c22bb13e22bd1f18e9796defa16bab421f7f7a317323b"}, + {file = "certifi-2026.7.22-py3-none-any.whl", hash = "sha256:62f22742b58a1a33014a2b6b706588a8d7e2a88ae7bd1a6ebe8c992928483775"}, + {file = "certifi-2026.7.22.tar.gz", hash = "sha256:741e2c3b351ddf169a738da9f2c048608ff7f2c5cc02f1ebc6b118bb090d5d55"}, ] [[package]] name = "charset-normalizer" -version = "3.4.2" +version = "3.5.1" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.7" groups = ["main"] files = [ - {file = "charset_normalizer-3.4.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7c48ed483eb946e6c04ccbe02c6b4d1d48e51944b6db70f697e089c193404941"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2d318c11350e10662026ad0eb71bb51c7812fc8590825304ae0bdd4ac283acd"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9cbfacf36cb0ec2897ce0ebc5d08ca44213af24265bd56eca54bee7923c48fd6"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18dd2e350387c87dabe711b86f83c9c78af772c748904d372ade190b5c7c9d4d"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8075c35cd58273fee266c58c0c9b670947c19df5fb98e7b66710e04ad4e9ff86"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5bf4545e3b962767e5c06fe1738f951f77d27967cb2caa64c28be7c4563e162c"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7a6ab32f7210554a96cd9e33abe3ddd86732beeafc7a28e9955cdf22ffadbab0"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:b33de11b92e9f75a2b545d6e9b6f37e398d86c3e9e9653c4864eb7e89c5773ef"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8755483f3c00d6c9a77f490c17e6ab0c8729e39e6390328e42521ef175380ae6"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:68a328e5f55ec37c57f19ebb1fdc56a248db2e3e9ad769919a58672958e8f366"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:21b2899062867b0e1fde9b724f8aecb1af14f2778d69aacd1a5a1853a597a5db"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-win32.whl", hash = "sha256:e8082b26888e2f8b36a042a58307d5b917ef2b1cacab921ad3323ef91901c71a"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-win_amd64.whl", hash = "sha256:f69a27e45c43520f5487f27627059b64aaf160415589230992cec34c5e18a509"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:be1e352acbe3c78727a16a455126d9ff83ea2dfdcbc83148d2982305a04714c2"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa88ca0b1932e93f2d961bf3addbb2db902198dca337d88c89e1559e066e7645"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d524ba3f1581b35c03cb42beebab4a13e6cdad7b36246bd22541fa585a56cccd"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28a1005facc94196e1fb3e82a3d442a9d9110b8434fc1ded7a24a2983c9888d8"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fdb20a30fe1175ecabed17cbf7812f7b804b8a315a25f24678bcdf120a90077f"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0f5d9ed7f254402c9e7d35d2f5972c9bbea9040e99cd2861bd77dc68263277c7"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:efd387a49825780ff861998cd959767800d54f8308936b21025326de4b5a42b9"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f0aa37f3c979cf2546b73e8222bbfa3dc07a641585340179d768068e3455e544"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e70e990b2137b29dc5564715de1e12701815dacc1d056308e2b17e9095372a82"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0c8c57f84ccfc871a48a47321cfa49ae1df56cd1d965a09abe84066f6853b9c0"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6b66f92b17849b85cad91259efc341dce9c1af48e2173bf38a85c6329f1033e5"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-win32.whl", hash = "sha256:daac4765328a919a805fa5e2720f3e94767abd632ae410a9062dff5412bae65a"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:e53efc7c7cee4c1e70661e2e112ca46a575f90ed9ae3fef200f2a25e954f4b28"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0c29de6a1a95f24b9a1aa7aefd27d2487263f00dfd55a77719b530788f75cff7"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cddf7bd982eaa998934a91f69d182aec997c6c468898efe6679af88283b498d3"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcbe676a55d7445b22c10967bceaaf0ee69407fbe0ece4d032b6eb8d4565982a"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d41c4d287cfc69060fa91cae9683eacffad989f1a10811995fa309df656ec214"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e594135de17ab3866138f496755f302b72157d115086d100c3f19370839dd3a"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cf713fe9a71ef6fd5adf7a79670135081cd4431c2943864757f0fa3a65b1fafd"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a370b3e078e418187da8c3674eddb9d983ec09445c99a3a263c2011993522981"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a955b438e62efdf7e0b7b52a64dc5c3396e2634baa62471768a64bc2adb73d5c"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:7222ffd5e4de8e57e03ce2cef95a4c43c98fcb72ad86909abdfc2c17d227fc1b"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:bee093bf902e1d8fc0ac143c88902c3dfc8941f7ea1d6a8dd2bcb786d33db03d"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dedb8adb91d11846ee08bec4c8236c8549ac721c245678282dcb06b221aab59f"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-win32.whl", hash = "sha256:db4c7bf0e07fc3b7d89ac2a5880a6a8062056801b83ff56d8464b70f65482b6c"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:5a9979887252a82fefd3d3ed2a8e3b937a7a809f65dcb1e068b090e165bbe99e"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:926ca93accd5d36ccdabd803392ddc3e03e6d4cd1cf17deff3b989ab8e9dbcf0"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eba9904b0f38a143592d9fc0e19e2df0fa2e41c3c3745554761c5f6447eedabf"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3fddb7e2c84ac87ac3a947cb4e66d143ca5863ef48e4a5ecb83bd48619e4634e"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98f862da73774290f251b9df8d11161b6cf25b599a66baf087c1ffe340e9bfd1"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c9379d65defcab82d07b2a9dfbfc2e95bc8fe0ebb1b176a3190230a3ef0e07c"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e635b87f01ebc977342e2697d05b56632f5f879a4f15955dfe8cef2448b51691"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1c95a1e2902a8b722868587c0e1184ad5c55631de5afc0eb96bc4b0d738092c0"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ef8de666d6179b009dce7bcb2ad4c4a779f113f12caf8dc77f0162c29d20490b"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:32fc0341d72e0f73f80acb0a2c94216bd704f4f0bce10aedea38f30502b271ff"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:289200a18fa698949d2b39c671c2cc7a24d44096784e76614899a7ccf2574b7b"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4a476b06fbcf359ad25d34a057b7219281286ae2477cc5ff5e3f70a246971148"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-win32.whl", hash = "sha256:aaeeb6a479c7667fbe1099af9617c83aaca22182d6cf8c53966491a0f1b7ffb7"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-win_amd64.whl", hash = "sha256:aa6af9e7d59f9c12b33ae4e9450619cf2488e2bbe9b44030905877f0b2324980"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cad5f45b3146325bb38d6855642f6fd609c3f7cad4dbaf75549bf3b904d3184"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b2680962a4848b3c4f155dc2ee64505a9c57186d0d56b43123b17ca3de18f0fa"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:36b31da18b8890a76ec181c3cf44326bf2c48e36d393ca1b72b3f484113ea344"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f4074c5a429281bf056ddd4c5d3b740ebca4d43ffffe2ef4bf4d2d05114299da"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c9e36a97bee9b86ef9a1cf7bb96747eb7a15c2f22bdb5b516434b00f2a599f02"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:1b1bde144d98e446b056ef98e59c256e9294f6b74d7af6846bf5ffdafd687a7d"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:915f3849a011c1f593ab99092f3cecfcb4d65d8feb4a64cf1bf2d22074dc0ec4"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:fb707f3e15060adf5b7ada797624a6c6e0138e2a26baa089df64c68ee98e040f"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:25a23ea5c7edc53e0f29bae2c44fcb5a1aa10591aae107f2a2b2583a9c5cbc64"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:770cab594ecf99ae64c236bc9ee3439c3f46be49796e265ce0cc8bc17b10294f"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-win32.whl", hash = "sha256:6a0289e4589e8bdfef02a80478f1dfcb14f0ab696b5a00e1f4b8a14a307a3c58"}, - {file = "charset_normalizer-3.4.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6fc1f5b51fa4cecaa18f2bd7a003f3dd039dd615cd69a2afd6d3b19aed6775f2"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:76af085e67e56c8816c3ccf256ebd136def2ed9654525348cfa744b6802b69eb"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e45ba65510e2647721e35323d6ef54c7974959f6081b58d4ef5d87c60c84919a"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:046595208aae0120559a67693ecc65dd75d46f7bf687f159127046628178dc45"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75d10d37a47afee94919c4fab4c22b9bc2a8bf7d4f46f87363bcf0573f3ff4f5"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6333b3aa5a12c26b2a4d4e7335a28f1475e0e5e17d69d55141ee3cab736f66d1"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e8323a9b031aa0393768b87f04b4164a40037fb2a3c11ac06a03ffecd3618027"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:24498ba8ed6c2e0b56d4acbf83f2d989720a93b41d712ebd4f4979660db4417b"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:844da2b5728b5ce0e32d863af26f32b5ce61bc4273a9c720a9f3aa9df73b1455"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:65c981bdbd3f57670af8b59777cbfae75364b483fa8a9f420f08094531d54a01"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:3c21d4fca343c805a52c0c78edc01e3477f6dd1ad7c47653241cf2a206d4fc58"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:dc7039885fa1baf9be153a0626e337aa7ec8bf96b0128605fb0d77788ddc1681"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-win32.whl", hash = "sha256:8272b73e1c5603666618805fe821edba66892e2870058c94c53147602eab29c7"}, - {file = "charset_normalizer-3.4.2-cp38-cp38-win_amd64.whl", hash = "sha256:70f7172939fdf8790425ba31915bfbe8335030f05b9913d7ae00a87d4395620a"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:005fa3432484527f9732ebd315da8da8001593e2cf46a3d817669f062c3d9ed4"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e92fca20c46e9f5e1bb485887d074918b13543b1c2a1185e69bb8d17ab6236a7"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:50bf98d5e563b83cc29471fa114366e6806bc06bc7a25fd59641e41445327836"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:721c76e84fe669be19c5791da68232ca2e05ba5185575086e384352e2c309597"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82d8fd25b7f4675d0c47cf95b594d4e7b158aca33b76aa63d07186e13c0e0ab7"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3daeac64d5b371dea99714f08ffc2c208522ec6b06fbc7866a450dd446f5c0f"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dccab8d5fa1ef9bfba0590ecf4d46df048d18ffe3eec01eeb73a42e0d9e7a8ba"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:aaf27faa992bfee0264dc1f03f4c75e9fcdda66a519db6b957a3f826e285cf12"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:eb30abc20df9ab0814b5a2524f23d75dcf83cde762c161917a2b4b7b55b1e518"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:c72fbbe68c6f32f251bdc08b8611c7b3060612236e960ef848e0a517ddbe76c5"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:982bb1e8b4ffda883b3d0a521e23abcd6fd17418f6d2c4118d257a10199c0ce3"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-win32.whl", hash = "sha256:43e0933a0eff183ee85833f341ec567c0980dae57c464d8a508e1b2ceb336471"}, - {file = "charset_normalizer-3.4.2-cp39-cp39-win_amd64.whl", hash = "sha256:d11b54acf878eef558599658b0ffca78138c8c3655cf4f3a4a673c437e67732e"}, - {file = "charset_normalizer-3.4.2-py3-none-any.whl", hash = "sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0"}, - {file = "charset_normalizer-3.4.2.tar.gz", hash = "sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63"}, + {file = "charset_normalizer-3.5.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d1ee1e296209fdce05b81b663250eefa02213a2da7b41bf26f7829b8ba3545aa"}, + {file = "charset_normalizer-3.5.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e9fbdce1e47394b09bc9f26ab117dfc8d6491977a11d86f592bb42c779db2fda"}, + {file = "charset_normalizer-3.5.1-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:00668ebb0609751758682eb0b5857e7c35b9f00e84dfdef062e103244ec94d45"}, + {file = "charset_normalizer-3.5.1-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ba2f37ee79e6338845261a3c5b1784e5d1acdff2c0785b284f1b633033d136ab"}, + {file = "charset_normalizer-3.5.1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ce854f5f478050ade5a238731c4ca985a7d3b3cb53ff600a9b5c3b689b5f0a7a"}, + {file = "charset_normalizer-3.5.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:96eefc178f8636b9c760c5829345307fd81cfae9ab1e80997dbddeb0f54ee9a3"}, + {file = "charset_normalizer-3.5.1-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:366ec70f5547c640d3ce1985722490f23faf4eb5216a7eeba78277490e78dacb"}, + {file = "charset_normalizer-3.5.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:950f23cb393f85543777b0433f082cddd25b51ab398eac7971146495679efe5f"}, + {file = "charset_normalizer-3.5.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:c1dcc36dcb96abc02236e182d17e0f71430152a6c2c7447421da2d2dc144edea"}, + {file = "charset_normalizer-3.5.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:07ffd07412fc5d5e84cd8952acf9ff7e4ed7a708e69d1bada19d8ba91711353f"}, + {file = "charset_normalizer-3.5.1-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:f5542f9b941279d82d41eb0aa9f98eba36fe4df5c7086c651df7944935b37182"}, + {file = "charset_normalizer-3.5.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:a545775cfe815855ea32d7c27731d79da358ef2055b4a25830231b1622dd18aa"}, + {file = "charset_normalizer-3.5.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:494b70049a4d69aec6e8137c13af4cf8db8c9f9820a1392ac293b0dd2987a818"}, + {file = "charset_normalizer-3.5.1-cp310-cp310-win32.whl", hash = "sha256:94fbf1c0c6cc0d3d5e50f9a9313a8cdca90dd696d34b381cd1704f8c9e939f20"}, + {file = "charset_normalizer-3.5.1-cp310-cp310-win_amd64.whl", hash = "sha256:be47f99644b208bff7766314013f9acf57b056b04191d570d68ad14022cf5b1d"}, + {file = "charset_normalizer-3.5.1-cp310-cp310-win_arm64.whl", hash = "sha256:a6d095662e73e74f0a49988e0593373e243e3a52e27bfeea0a859e88acf4a0f5"}, + {file = "charset_normalizer-3.5.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:eda059b6bc8bc0812d626fd91a7ce01bf583df0a61296eff390fd94141a34e30"}, + {file = "charset_normalizer-3.5.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aa2bb0b37202dca27175591f761108b5d34096ade1191ffe4808bdf6b1571488"}, + {file = "charset_normalizer-3.5.1-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0b2b1b3fa5670c127b246df1d0c059defd41f689a868a3b9d79df9b1cac42d22"}, + {file = "charset_normalizer-3.5.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6e5e4d73d588ca5ed09df1b7dcd1b203d1df3c542e3f50d126c947d432b10731"}, + {file = "charset_normalizer-3.5.1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b54e7e13267d49ffbfe68e25b3cbd774dab38fa37238f71265e91b36146eb21c"}, + {file = "charset_normalizer-3.5.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c7b742bf31c88566b4bb6335a7f393bb322e580b6bb98df7bd0c25e6e3519ce8"}, + {file = "charset_normalizer-3.5.1-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:6ba32c4d2abf1d2fe7cf27d280f4cca5664233b0f885549c7761719eb977f486"}, + {file = "charset_normalizer-3.5.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0722590aabf9dc6a6c0343d523c05458fa2b5047dbe6302fd526bb570600753f"}, + {file = "charset_normalizer-3.5.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:aa1099b956fb795e686d073568f6dc002a0bb89765ea6d5b055dd7d9bf1b116c"}, + {file = "charset_normalizer-3.5.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:bd6c173f04743d483881bffa1478d5a4624475b8cd1d2194956a75548e191c18"}, + {file = "charset_normalizer-3.5.1-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:f298e218441525d3794428b4c8b8fb8662c6d3ea79925d4807ee6b9a96a3bca5"}, + {file = "charset_normalizer-3.5.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:6e2912d4babbc65196ac13c2f53468dc57fb8b9c25ef913e8c59ddf7c6dc0e1b"}, + {file = "charset_normalizer-3.5.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3d27167433c0d5f18dc850f07d0b3816221984fecdc405d6c157a6f0b8f8e9e6"}, + {file = "charset_normalizer-3.5.1-cp311-cp311-win32.whl", hash = "sha256:ac00177c4831ffa650f8609e4bdddd5fe09c03b1c0c47acece7e6ea20421598b"}, + {file = "charset_normalizer-3.5.1-cp311-cp311-win_amd64.whl", hash = "sha256:f9b1e28d0e8dbfa858abdba91d6b547beaf2df1a59bec6da6faae7b96a4991a9"}, + {file = "charset_normalizer-3.5.1-cp311-cp311-win_arm64.whl", hash = "sha256:ae31a1a1db2ee6cc2942fccaf695c934bc7f3db9f2133a3fef1f367cf1a4ab10"}, + {file = "charset_normalizer-3.5.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:5b6d1386bf0096d26d3a863dc0a487a5b4eb9aa93cf5ba69683d29dde6b9d60f"}, + {file = "charset_normalizer-3.5.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4582c27e8c889d64811987b5967fbd3ae0c823fe1fd933b543d55ac20bb475fa"}, + {file = "charset_normalizer-3.5.1-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:1d1c7a53a6c2103925cdd6d7229f8c567379f211c869793df679f2e9f738c369"}, + {file = "charset_normalizer-3.5.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e6621fb2a4988d6e53eedc455e5903e2679f3967b8acb3d639f1b63c14a2e893"}, + {file = "charset_normalizer-3.5.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7c0c10730342b0c9b35dd1d619beb8214e520bd96a1f870f452680b238aab3e0"}, + {file = "charset_normalizer-3.5.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b9af956078716df40d985fb0dfeb2c2120c5ca92ba4ff4b388acfd01cdc14d08"}, + {file = "charset_normalizer-3.5.1-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f9f8405c2c758532c74fed975dbee57be1f31a6e865c031870c79a6ed3212ada"}, + {file = "charset_normalizer-3.5.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:96fef3e886d6a9874b14f27fc193fbdc69d5d8035783d86aa4e1cea594e695f9"}, + {file = "charset_normalizer-3.5.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:5d8531a6569d025f68e2321e7638fb7978f23db58e5f69f56913837aae03816e"}, + {file = "charset_normalizer-3.5.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:aae2ee51122d3ae968a3837d97dc24a0aeebb0dea23694422cd172bd30017cd6"}, + {file = "charset_normalizer-3.5.1-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:7235dc28fc6dd9d832ac7c7bce95367dedb85929f17368a0c2bee1e080b9acbf"}, + {file = "charset_normalizer-3.5.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:4abdc5f9ad448c1ecbfae2974b820535d6bc6e7eef63babbab3d81cf46968c71"}, + {file = "charset_normalizer-3.5.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ba501e667c17d8411f98e67a022d9604ef179aff0e459b7e292c796837c13573"}, + {file = "charset_normalizer-3.5.1-cp312-cp312-win32.whl", hash = "sha256:cfa1c0cc3a8f9f53f1243a5a99ac36fd003880199383b37672e86ddda9cb07e2"}, + {file = "charset_normalizer-3.5.1-cp312-cp312-win_amd64.whl", hash = "sha256:3617ac3cfd8b9888f145ad89dd6e692285834b0201c6074a5eeaad3fd4d668c2"}, + {file = "charset_normalizer-3.5.1-cp312-cp312-win_arm64.whl", hash = "sha256:88e85ab89cb822c1e635f51d6d32e488f94e002e70e2f492bdb8b945543f345a"}, + {file = "charset_normalizer-3.5.1-cp313-cp313-android_24_arm64_v8a.whl", hash = "sha256:4f298bdadb8f0b9e5672877f647d1be9373ef5320c9e2f049795e26cad28b6a9"}, + {file = "charset_normalizer-3.5.1-cp313-cp313-android_24_x86_64.whl", hash = "sha256:88ca277405c2d3b71c4e1c2ee0e7966e807bcba86a69d11e19ba199d18ae4491"}, + {file = "charset_normalizer-3.5.1-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:9362dd90aa7dab48c0054a21187791ccf05473f7dba5d92b8033ae62164675e7"}, + {file = "charset_normalizer-3.5.1-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:977cdbd483a9cff38179bea4fd754289a6f2195c7abd414aba85410b3e66cc5e"}, + {file = "charset_normalizer-3.5.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e90251c0c7bdd54a100a0dce3c07b7e637278c93af29dbf78ebb89a58c4bac7d"}, + {file = "charset_normalizer-3.5.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:94d78ecec2605a8d0398b0f365d5f12a63248438516f5dac536a5eff7337df4a"}, + {file = "charset_normalizer-3.5.1-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d59b75732e9b6f27388e10c14b0259cc5f2e48c78627d185e6a177b58ad3cffe"}, + {file = "charset_normalizer-3.5.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0d929fc574b4d6fd9e7c0f5c2ede8716a41911923aa7fa5fce38e0818aa4a1ac"}, + {file = "charset_normalizer-3.5.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:394fea06235c8543390050ed5f529187074b029fb027213f6c46ac11ab5d950e"}, + {file = "charset_normalizer-3.5.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:62b55f6722735a6c472f88361cde6640608773d9443cebdbb51abf436a1fcdd3"}, + {file = "charset_normalizer-3.5.1-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fa48b1b63d639f9483e0633e092f5851e2348c352f1f9bb6c8182f87884ef876"}, + {file = "charset_normalizer-3.5.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c71fb0d56c920c269cd3e2e3fe7c610e3f1fdb21a6ce60efa6430ff63676cea6"}, + {file = "charset_normalizer-3.5.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:485a0d363cafefcd2538a73c7c838daa2035f09b2c9f9b5e3133f80c6aeb84c2"}, + {file = "charset_normalizer-3.5.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:5c0ea61a470e070686aa30892fed79e297d2c8d0ab46b8bcdf027d38c51da591"}, + {file = "charset_normalizer-3.5.1-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:90b7481fb62fbe172c558bc6fd1c4c98d82004a54a7551f20e11ac9bf0b8708c"}, + {file = "charset_normalizer-3.5.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:35fe081843b35aad20ffeccec3eeffbe637b15d14f3fb22cc1b59cd8ec17e93c"}, + {file = "charset_normalizer-3.5.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fd0350afdc3aabd5576f60ea109228bd5538139713c7b094c5cd27c73a98bc6f"}, + {file = "charset_normalizer-3.5.1-cp313-cp313-pyemscripten_2025_0_wasm32.whl", hash = "sha256:9d9a0dc7cbe9bec24c3f767c9122c41fe5a1bc43f47cd099d00d393e09769de4"}, + {file = "charset_normalizer-3.5.1-cp313-cp313-win32.whl", hash = "sha256:d63600d620ad0064c3a748b950ac5ea38a80190e5498532efefa4b7b3f1da1f3"}, + {file = "charset_normalizer-3.5.1-cp313-cp313-win_amd64.whl", hash = "sha256:aea996a6aba25260827c9ea511d1addfde2da9eb686ac961838509086188b7e6"}, + {file = "charset_normalizer-3.5.1-cp313-cp313-win_arm64.whl", hash = "sha256:fd0a274c0e5f9a21565cd9d3dd749b61f96b7aa1e20a93aa1ba4029518f2e5c0"}, + {file = "charset_normalizer-3.5.1-cp314-cp314-android_24_arm64_v8a.whl", hash = "sha256:774d157f112367ff4abd29019f38f023c24e00e56edc7829c20e358a5a913ad8"}, + {file = "charset_normalizer-3.5.1-cp314-cp314-android_24_x86_64.whl", hash = "sha256:26422d45fd13551cf564c58932f7d72b4f58b93b0fcf18c35ba6be12b46bb102"}, + {file = "charset_normalizer-3.5.1-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:09a7bba9f739468c8e78c36a75c33768e53cb1959fc638f510454c14683f00d5"}, + {file = "charset_normalizer-3.5.1-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:4c9548dc78002099910abaebc0a72ac58b7d30931869e0351c09b507dff4ece3"}, + {file = "charset_normalizer-3.5.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:c428c6c31eb5f4277d7f8eccaf767fbd548ddd5ce3c8b4f4cbbfab3d96b5904c"}, + {file = "charset_normalizer-3.5.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2f06b7eae9dbe77fe1d644ca244dad508de8d302870a43f3c559b521270938a0"}, + {file = "charset_normalizer-3.5.1-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6b7430cf5728e68f6c462254009a6ef4086e1bea43cf2f57aa9c55fb4f50ff96"}, + {file = "charset_normalizer-3.5.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ab743e9bc90c1f73552ec33e10e3331315acd2c397b36065b591b0181de533cc"}, + {file = "charset_normalizer-3.5.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f6f7deae3feb4edfa2efaf7c574fe88cbf055038a6abdb40188e4fff66d5699f"}, + {file = "charset_normalizer-3.5.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:15f024313246a4ed976c60f440bb8d257815513a681d212ff74fd46f7d715a90"}, + {file = "charset_normalizer-3.5.1-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:823f82903d189af463d7df250ef1f7f696f3cee08cc8d91deb565e8d425f6506"}, + {file = "charset_normalizer-3.5.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:01e93745f7f219b703b60ba7afead36cfc4242782be5af484673fc500df12da5"}, + {file = "charset_normalizer-3.5.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:329fc3ccb63ad22d867d84c2adea759a64079a37ba4a343433b02c7a2816871e"}, + {file = "charset_normalizer-3.5.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:bb57753e36e4855b8ca375069482250a6246372331a3e4f3407eaebb007443f5"}, + {file = "charset_normalizer-3.5.1-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:fce8cbd4997efeb450bd298b54f755dcdff18d496f7a5ddbb4867c6d7c88fdc3"}, + {file = "charset_normalizer-3.5.1-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:6c9cdde8becb25a7fde49924511aa2644d6f8081cc8df8e9452724303348d8e3"}, + {file = "charset_normalizer-3.5.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:9ac4444d8d4fd4c4bd08bf451ed3167aa9e7ec6cdb41b648794f1d1103652e36"}, + {file = "charset_normalizer-3.5.1-cp314-cp314-pyemscripten_2026_0_wasm32.whl", hash = "sha256:f03ac127268b43ef4fe9e6ab6794a6794b49485a0cc0c1db79876d2f33f75bc7"}, + {file = "charset_normalizer-3.5.1-cp314-cp314-win32.whl", hash = "sha256:1f5883d77fd409a261abb5dc8ccbe335720d798b1de4abb3b1d47ccbbc76b53b"}, + {file = "charset_normalizer-3.5.1-cp314-cp314-win_amd64.whl", hash = "sha256:c658c50ac0c98cd755a2dd50b7977d3bca7df401dcc47fbdfa87db53ef7d4e8b"}, + {file = "charset_normalizer-3.5.1-cp314-cp314-win_arm64.whl", hash = "sha256:4bea7f8ebe90bbd7f0e4a2de42ca6924ba23e3e76418c408ff82f1d46fabd687"}, + {file = "charset_normalizer-3.5.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:fbc597639158fd7c14d55e808718848319540f51b0e6746e3eefa59723a4a348"}, + {file = "charset_normalizer-3.5.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e71c909f353863b2b89c83de2ebed71ea6d0df8a6ef65a128193c5e650766bef"}, + {file = "charset_normalizer-3.5.1-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7ac76cf9afd34929d76eb7fcb63be476a4853d8a96f0dcf2d0db68a0cbdf9885"}, + {file = "charset_normalizer-3.5.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a3a370082ce34d0612f421e15fe011c53bb1feff21a26d06ad4fb244dab5a375"}, + {file = "charset_normalizer-3.5.1-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:256dd4d85d9e4dc595e2bc983c980e73f62ddeb3165c58b4c3dfe78c5c8548c1"}, + {file = "charset_normalizer-3.5.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:58d4aa13a59c969dbfdf9e6a9560e242cbfd9e8a8f50c2747714df1a423adf65"}, + {file = "charset_normalizer-3.5.1-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0c6dfb5ca6723eeed15aa8e564a014d69fcb8812f94eef11fe3631e0508199f5"}, + {file = "charset_normalizer-3.5.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:c010f5581d9c612804cc59fcf7b524b707fbcb72828551237ab545bb5c7034af"}, + {file = "charset_normalizer-3.5.1-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:52ec005752a56ae79547a05c0139ca2501a0c866390b6115008456b9f0e7cde1"}, + {file = "charset_normalizer-3.5.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:2bced4061f000f7187254a02ad3433ae17eaf991747ceea2f478422590a5bba9"}, + {file = "charset_normalizer-3.5.1-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:9eea3ab2597a5e65fe65296e2d6a84570845a6b55532d90333d740d48bbc850a"}, + {file = "charset_normalizer-3.5.1-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:496846868fea80e479324862fa877f02411f2fd0f83b79ccee2607aa68b2a032"}, + {file = "charset_normalizer-3.5.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:85d5855daafc240cc045c026d7a15fd198a09b0fc8ff6f5ecbb5297b509cb11e"}, + {file = "charset_normalizer-3.5.1-cp314-cp314t-win32.whl", hash = "sha256:58d3e12c88e0950bca850ae1f7c256055c097639c2edb9eb123af9807d8b15e4"}, + {file = "charset_normalizer-3.5.1-cp314-cp314t-win_amd64.whl", hash = "sha256:acaf604462bf330b0d07e7a07c1d6e4adac79e5fb13e9c5140590542cafacc00"}, + {file = "charset_normalizer-3.5.1-cp314-cp314t-win_arm64.whl", hash = "sha256:fdb8a068947befafba9952162645dc2fecaeb400e64584829ed5e9b2fbe21a7f"}, + {file = "charset_normalizer-3.5.1-cp315-cp315-macosx_10_15_universal2.whl", hash = "sha256:9085f87b0e38a2b92b8923059b4e8789fe40d9279712d15dcc670048d77079af"}, + {file = "charset_normalizer-3.5.1-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2679de311c7946dde5d3b6f44941844133ff5c7cb86099c0061ab1e8901c20a8"}, + {file = "charset_normalizer-3.5.1-cp315-cp315-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:baf3775a2635e5a11fbd5e4e64ee69c7e86875d224a5c72aca4c141064589a90"}, + {file = "charset_normalizer-3.5.1-cp315-cp315-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8ac8c94b6539074e0f40899301273ac8402b9b3e01c7b7ba269ff30340aaaf20"}, + {file = "charset_normalizer-3.5.1-cp315-cp315-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8fe532b3c966d1fb794e0698e4589d0444017ae77fc0b31edea13c0e35bcc449"}, + {file = "charset_normalizer-3.5.1-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5c84bec0ab5ae0c64bfe73a7d2adcb5ce73b467523fc27fd6a28ab2aa6cbe35a"}, + {file = "charset_normalizer-3.5.1-cp315-cp315-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:854066be00447fa8de2ccbbe893e2ffc4b123ef16d897af794c1e18bd4a714b0"}, + {file = "charset_normalizer-3.5.1-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:21b82d8082f6f5e7f456ef0bd16323d08de1266efbfeb476e64b2a91d1471a4e"}, + {file = "charset_normalizer-3.5.1-cp315-cp315-musllinux_1_2_armv7l.whl", hash = "sha256:838648accb3a7fd9803fd45c87bce8509648eb0c11bc34e216141300977244f2"}, + {file = "charset_normalizer-3.5.1-cp315-cp315-musllinux_1_2_ppc64le.whl", hash = "sha256:195ce897c6153c0700078142cf8efe3e6454ca4cf4357499e4078dfd83396626"}, + {file = "charset_normalizer-3.5.1-cp315-cp315-musllinux_1_2_riscv64.whl", hash = "sha256:978eab16f55b4ab2c2a745be9a0a840bf8f09a7f227d9c76eb30214d078865a5"}, + {file = "charset_normalizer-3.5.1-cp315-cp315-musllinux_1_2_s390x.whl", hash = "sha256:cc0329df4caaceb950d2f580b5ac716a377f7059624a0bafaeaf8a218c6ed774"}, + {file = "charset_normalizer-3.5.1-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:687c9ca3035544b113bea2055e180af96fb63c0c476e22a9180f51925186e7b7"}, + {file = "charset_normalizer-3.5.1-cp315-cp315-win32.whl", hash = "sha256:706bfd38730a5ac7a365793269a00f4e988178cec121391f4248d84ad8c972e9"}, + {file = "charset_normalizer-3.5.1-cp315-cp315-win_amd64.whl", hash = "sha256:92caef967d287a407085d61176fce4012b1dd62daed4eb6d5ceb26d3d2538712"}, + {file = "charset_normalizer-3.5.1-cp315-cp315-win_arm64.whl", hash = "sha256:5fc45d653ea8c9a20479167e11d4a0f8cb2fa3470737ab6f9c827532313187b7"}, + {file = "charset_normalizer-3.5.1-cp315-cp315t-macosx_10_15_universal2.whl", hash = "sha256:59171c6e45bf07d0d5cab3b0bf81d945035530f6873398b3b531c31184d46663"}, + {file = "charset_normalizer-3.5.1-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9dbdd9205662134957cf0c324f639bdc5031c0ca056e2369e238db75187c0f11"}, + {file = "charset_normalizer-3.5.1-cp315-cp315t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e4b018dc5a0eee4676e38fe84a47a427816c590b93b55d9025274ec4d6ffc2dc"}, + {file = "charset_normalizer-3.5.1-cp315-cp315t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ced3fdd71aaa83ce593746c2edb42b7a59cb4c19c8b5c407781c72e493aae55a"}, + {file = "charset_normalizer-3.5.1-cp315-cp315t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:19a3dd5aa73cef1c99687c4fc57db016a9c17104ae1185da88ba566a5d3bebe4"}, + {file = "charset_normalizer-3.5.1-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cc5d36d96478aa9c60654bd932525bf32964c62a7281eafdf16d85003a8d6004"}, + {file = "charset_normalizer-3.5.1-cp315-cp315t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:04368edf83514385ffc3e1cfd4546e595f4f1272dd23ba437a93a9cc3741d47b"}, + {file = "charset_normalizer-3.5.1-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:9b5db6052055d34d41230fb78d7c439c23dc536a9896f6cb039e8dd92cfc1263"}, + {file = "charset_normalizer-3.5.1-cp315-cp315t-musllinux_1_2_armv7l.whl", hash = "sha256:252d099029bcbea642f2a06c4ed5046bdf8b5a8150b64afa5e027e88b106e5ee"}, + {file = "charset_normalizer-3.5.1-cp315-cp315t-musllinux_1_2_ppc64le.whl", hash = "sha256:6199d5606e2bbf2b096cf64d03f8b6790c91081d5ac866b8e7bb6422738cc60c"}, + {file = "charset_normalizer-3.5.1-cp315-cp315t-musllinux_1_2_riscv64.whl", hash = "sha256:77efcff2b23071c349402ac1066667a3d011f62398d81408c9b88ad991747c9e"}, + {file = "charset_normalizer-3.5.1-cp315-cp315t-musllinux_1_2_s390x.whl", hash = "sha256:a5cbd90ecf0fc62e64726917ad083b73001f0563657a87ec3c0b504e277dc90d"}, + {file = "charset_normalizer-3.5.1-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:4d26f14f041e83dd8edfd61f4cd4fa7285d31798b5bf1f28e70c367ba6c41d61"}, + {file = "charset_normalizer-3.5.1-cp315-cp315t-win32.whl", hash = "sha256:ac13b004224fb341e1e25a1ed5e19d32f57cdb2a403e01f003b46f051a550f6f"}, + {file = "charset_normalizer-3.5.1-cp315-cp315t-win_amd64.whl", hash = "sha256:35aea775dc2bd5f54cd84a1cd2696cc3207c479cb9cf0bd346f0d343e4300ddb"}, + {file = "charset_normalizer-3.5.1-cp315-cp315t-win_arm64.whl", hash = "sha256:fb78f6e7fcd8ad785d28cd577168bc1aaee827b25bb8755638f694794ea98f0a"}, + {file = "charset_normalizer-3.5.1-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:41876ee62a3dddf48ff1121ad8f0798032aa03f2fd35f21f34a4cab14f18d8d2"}, + {file = "charset_normalizer-3.5.1-cp37-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:a6dac12ff6b846103483683f60c5f8fee205121adc58ffd87e90a90a3af69e99"}, + {file = "charset_normalizer-3.5.1-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cee5dd7c6fb5dd52a0fe2a740f9bc6e3593f5f8b1788bde49de02086f30182b2"}, + {file = "charset_normalizer-3.5.1-cp37-abi3-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:343fb4f2821043bd87095f7b08a1a181febc8e36ac64212143bbfd0a0e1bc235"}, + {file = "charset_normalizer-3.5.1-cp37-abi3-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ae4a097991662cd4fff0ddc74e0fe7874f82e00042fa0ea00855645ed0c79598"}, + {file = "charset_normalizer-3.5.1-cp37-abi3-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4b599739b93b2cbeded49645ae3c8d1405c29ddfbceac1545c87a3f9580a9e96"}, + {file = "charset_normalizer-3.5.1-cp37-abi3-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b39b69b347e5e47a3b5b8cfc005c68c1ba347474e3960236c4944a8ecd174962"}, + {file = "charset_normalizer-3.5.1-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:a2028475ba855475b8b4d3cfeb4994269c967aea8b9892dfba907f4263a863a3"}, + {file = "charset_normalizer-3.5.1-cp37-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:36047af20e17097c3bb9476c2b7655f2f7aa51322c0ba58c07695bedf755a950"}, + {file = "charset_normalizer-3.5.1-cp37-abi3-musllinux_1_2_ppc64le.whl", hash = "sha256:4c4fb141a727957c93edfe5c32a26ceb6b5f6461d67146e2d39f51e16170bea8"}, + {file = "charset_normalizer-3.5.1-cp37-abi3-musllinux_1_2_riscv64.whl", hash = "sha256:2f293479cce755c75f1697e87c409b7ae4c555c7dfecb6e988ad13abba943031"}, + {file = "charset_normalizer-3.5.1-cp37-abi3-musllinux_1_2_s390x.whl", hash = "sha256:3588e376b3ea2eea84976f67273d679f229e24c66dce7b82ae45aef04ff6e072"}, + {file = "charset_normalizer-3.5.1-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:e199fb99720074809a7720f1c0b4d919eea8b87e88713e0f8f602f7bef543d9d"}, + {file = "charset_normalizer-3.5.1-cp37-abi3-win32.whl", hash = "sha256:dd732602a7009217f658d5863d12d79d373a4de0eebc111094bcdd3bb8e0a6cc"}, + {file = "charset_normalizer-3.5.1-cp37-abi3-win_amd64.whl", hash = "sha256:70055ff39b97c99e7ae40ea3e393fb62aa2e44dbd9b29f8d14f42fb0025c3959"}, + {file = "charset_normalizer-3.5.1-cp37-abi3-win_arm64.whl", hash = "sha256:87e4f41d375c0b9be2fb5251aee4b8a689169e134535aed81bf085c3b647451e"}, + {file = "charset_normalizer-3.5.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:85de3134b5379856e323ba37c19c9256d39425f7b76a63af52b09fb4664c2e8f"}, + {file = "charset_normalizer-3.5.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3e5e1224c0a6a90e05843e07adfec669edebec17801c67072f51e59561d63c0b"}, + {file = "charset_normalizer-3.5.1-cp39-cp39-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:5e2d0e146dcb57034f8b97dc58d2d512cb90aba253960ce449f695fec6a82c6f"}, + {file = "charset_normalizer-3.5.1-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e06efa066f7dbadbc84ebc126a97c452a6451dfcf589d89d788484949e1cf795"}, + {file = "charset_normalizer-3.5.1-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:994e883d17c559cdfd38c84003c8b27d25424a1077272a17e7cd27bfe0bf57b2"}, + {file = "charset_normalizer-3.5.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:789b8982559ae28dad2356519f841655756cdcd96616410590ae0b17454ee64f"}, + {file = "charset_normalizer-3.5.1-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a951ad59cad9145664a730d3036b40b844e74d2d3683da40111463cd3a83845d"}, + {file = "charset_normalizer-3.5.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:55261ac0d2941c42f196dd576f543d87a8ee03cd6f5e30dfb4d807b2e3b9121a"}, + {file = "charset_normalizer-3.5.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:5ca0555312ae2fe82715cada7fac375530c2f3349e1eaa1bcb33d0283ac79a18"}, + {file = "charset_normalizer-3.5.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:2e9cf9253119d8e5d111f05d71626786fd3d6193817316eab1ca088cdb8593cf"}, + {file = "charset_normalizer-3.5.1-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:433c5a81eade63b47e522303bad236f59dba55ea6951746f5558355eeed8c75d"}, + {file = "charset_normalizer-3.5.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:13e3afe97712e8887cd516e960c63f0b93122971e5b5e4b2622fe7701771e838"}, + {file = "charset_normalizer-3.5.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb12fb2ba69ffa05f8695f61c69e591dc4b4a12ac3757ac8af8adb259bf56d17"}, + {file = "charset_normalizer-3.5.1-cp39-cp39-win32.whl", hash = "sha256:56490c595a28b1bb27dfc583e816152a9767721ef58b2c03b13f954d2f707420"}, + {file = "charset_normalizer-3.5.1-cp39-cp39-win_amd64.whl", hash = "sha256:012a22b88a77ca2e59b98ac5889b0deb604147666032f45e6d6e217634d2550d"}, + {file = "charset_normalizer-3.5.1-cp39-cp39-win_arm64.whl", hash = "sha256:29880d17a8eb0b5cfdfd8944b468322928059aa35f1f5fa8ff22b149ec0b42f8"}, + {file = "charset_normalizer-3.5.1-py3-none-any.whl", hash = "sha256:6df0ec430f9a831772c23ca5a224cba36517a58a84bb32c32bb59a9fa67c47f6"}, + {file = "charset_normalizer-3.5.1.tar.gz", hash = "sha256:6117b84ea48435e5356dc737f5121485c30920ba43375fa7b434fd753df0eac3"}, ] [[package]] name = "click" -version = "8.2.1" +version = "8.4.2" description = "Composable command line interface toolkit" optional = false python-versions = ">=3.10" groups = ["main"] files = [ - {file = "click-8.2.1-py3-none-any.whl", hash = "sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b"}, - {file = "click-8.2.1.tar.gz", hash = "sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202"}, + {file = "click-8.4.2-py3-none-any.whl", hash = "sha256:e6f9f66136c816745b9d65817da91d61d957fb16e02e4dcd0552553c5a197b76"}, + {file = "click-8.4.2.tar.gz", hash = "sha256:9a6cea6e60b17ebe0a44c5cc636d94f09bd66142c1cd7d8b4cd731c4917a15f6"}, ] [package.dependencies] @@ -170,16 +250,124 @@ files = [ {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] +[[package]] +name = "contourpy" +version = "1.3.3" +description = "Python library for calculating contours of 2D quadrilateral grids" +optional = false +python-versions = ">=3.11" +groups = ["main"] +files = [ + {file = "contourpy-1.3.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:709a48ef9a690e1343202916450bc48b9e51c049b089c7f79a267b46cffcdaa1"}, + {file = "contourpy-1.3.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:23416f38bfd74d5d28ab8429cc4d63fa67d5068bd711a85edb1c3fb0c3e2f381"}, + {file = "contourpy-1.3.3-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:929ddf8c4c7f348e4c0a5a3a714b5c8542ffaa8c22954862a46ca1813b667ee7"}, + {file = "contourpy-1.3.3-cp311-cp311-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9e999574eddae35f1312c2b4b717b7885d4edd6cb46700e04f7f02db454e67c1"}, + {file = "contourpy-1.3.3-cp311-cp311-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0bf67e0e3f482cb69779dd3061b534eb35ac9b17f163d851e2a547d56dba0a3a"}, + {file = "contourpy-1.3.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:51e79c1f7470158e838808d4a996fa9bac72c498e93d8ebe5119bc1e6becb0db"}, + {file = "contourpy-1.3.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:598c3aaece21c503615fd59c92a3598b428b2f01bfb4b8ca9c4edeecc2438620"}, + {file = "contourpy-1.3.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:322ab1c99b008dad206d406bb61d014cf0174df491ae9d9d0fac6a6fda4f977f"}, + {file = "contourpy-1.3.3-cp311-cp311-win32.whl", hash = "sha256:fd907ae12cd483cd83e414b12941c632a969171bf90fc937d0c9f268a31cafff"}, + {file = "contourpy-1.3.3-cp311-cp311-win_amd64.whl", hash = "sha256:3519428f6be58431c56581f1694ba8e50626f2dd550af225f82fb5f5814d2a42"}, + {file = "contourpy-1.3.3-cp311-cp311-win_arm64.whl", hash = "sha256:15ff10bfada4bf92ec8b31c62bf7c1834c244019b4a33095a68000d7075df470"}, + {file = "contourpy-1.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b08a32ea2f8e42cf1d4be3169a98dd4be32bafe4f22b6c4cb4ba810fa9e5d2cb"}, + {file = "contourpy-1.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:556dba8fb6f5d8742f2923fe9457dbdd51e1049c4a43fd3986a0b14a1d815fc6"}, + {file = "contourpy-1.3.3-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92d9abc807cf7d0e047b95ca5d957cf4792fcd04e920ca70d48add15c1a90ea7"}, + {file = "contourpy-1.3.3-cp312-cp312-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b2e8faa0ed68cb29af51edd8e24798bb661eac3bd9f65420c1887b6ca89987c8"}, + {file = "contourpy-1.3.3-cp312-cp312-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:626d60935cf668e70a5ce6ff184fd713e9683fb458898e4249b63be9e28286ea"}, + {file = "contourpy-1.3.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4d00e655fcef08aba35ec9610536bfe90267d7ab5ba944f7032549c55a146da1"}, + {file = "contourpy-1.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:451e71b5a7d597379ef572de31eeb909a87246974d960049a9848c3bc6c41bf7"}, + {file = "contourpy-1.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:459c1f020cd59fcfe6650180678a9993932d80d44ccde1fa1868977438f0b411"}, + {file = "contourpy-1.3.3-cp312-cp312-win32.whl", hash = "sha256:023b44101dfe49d7d53932be418477dba359649246075c996866106da069af69"}, + {file = "contourpy-1.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:8153b8bfc11e1e4d75bcb0bff1db232f9e10b274e0929de9d608027e0d34ff8b"}, + {file = "contourpy-1.3.3-cp312-cp312-win_arm64.whl", hash = "sha256:07ce5ed73ecdc4a03ffe3e1b3e3c1166db35ae7584be76f65dbbe28a7791b0cc"}, + {file = "contourpy-1.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:177fb367556747a686509d6fef71d221a4b198a3905fe824430e5ea0fda54eb5"}, + {file = "contourpy-1.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d002b6f00d73d69333dac9d0b8d5e84d9724ff9ef044fd63c5986e62b7c9e1b1"}, + {file = "contourpy-1.3.3-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:348ac1f5d4f1d66d3322420f01d42e43122f43616e0f194fc1c9f5d830c5b286"}, + {file = "contourpy-1.3.3-cp313-cp313-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:655456777ff65c2c548b7c454af9c6f33f16c8884f11083244b5819cc214f1b5"}, + {file = "contourpy-1.3.3-cp313-cp313-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:644a6853d15b2512d67881586bd03f462c7ab755db95f16f14d7e238f2852c67"}, + {file = "contourpy-1.3.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4debd64f124ca62069f313a9cb86656ff087786016d76927ae2cf37846b006c9"}, + {file = "contourpy-1.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a15459b0f4615b00bbd1e91f1b9e19b7e63aea7483d03d804186f278c0af2659"}, + {file = "contourpy-1.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ca0fdcd73925568ca027e0b17ab07aad764be4706d0a925b89227e447d9737b7"}, + {file = "contourpy-1.3.3-cp313-cp313-win32.whl", hash = "sha256:b20c7c9a3bf701366556e1b1984ed2d0cedf999903c51311417cf5f591d8c78d"}, + {file = "contourpy-1.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:1cadd8b8969f060ba45ed7c1b714fe69185812ab43bd6b86a9123fe8f99c3263"}, + {file = "contourpy-1.3.3-cp313-cp313-win_arm64.whl", hash = "sha256:fd914713266421b7536de2bfa8181aa8c699432b6763a0ea64195ebe28bff6a9"}, + {file = "contourpy-1.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:88df9880d507169449d434c293467418b9f6cbe82edd19284aa0409e7fdb933d"}, + {file = "contourpy-1.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:d06bb1f751ba5d417047db62bca3c8fde202b8c11fb50742ab3ab962c81e8216"}, + {file = "contourpy-1.3.3-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e4e6b05a45525357e382909a4c1600444e2a45b4795163d3b22669285591c1ae"}, + {file = "contourpy-1.3.3-cp313-cp313t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ab3074b48c4e2cf1a960e6bbeb7f04566bf36b1861d5c9d4d8ac04b82e38ba20"}, + {file = "contourpy-1.3.3-cp313-cp313t-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6c3d53c796f8647d6deb1abe867daeb66dcc8a97e8455efa729516b997b8ed99"}, + {file = "contourpy-1.3.3-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:50ed930df7289ff2a8d7afeb9603f8289e5704755c7e5c3bbd929c90c817164b"}, + {file = "contourpy-1.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4feffb6537d64b84877da813a5c30f1422ea5739566abf0bd18065ac040e120a"}, + {file = "contourpy-1.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2b7e9480ffe2b0cd2e787e4df64270e3a0440d9db8dc823312e2c940c167df7e"}, + {file = "contourpy-1.3.3-cp313-cp313t-win32.whl", hash = "sha256:283edd842a01e3dcd435b1c5116798d661378d83d36d337b8dde1d16a5fc9ba3"}, + {file = "contourpy-1.3.3-cp313-cp313t-win_amd64.whl", hash = "sha256:87acf5963fc2b34825e5b6b048f40e3635dd547f590b04d2ab317c2619ef7ae8"}, + {file = "contourpy-1.3.3-cp313-cp313t-win_arm64.whl", hash = "sha256:3c30273eb2a55024ff31ba7d052dde990d7d8e5450f4bbb6e913558b3d6c2301"}, + {file = "contourpy-1.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fde6c716d51c04b1c25d0b90364d0be954624a0ee9d60e23e850e8d48353d07a"}, + {file = "contourpy-1.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:cbedb772ed74ff5be440fa8eee9bd49f64f6e3fc09436d9c7d8f1c287b121d77"}, + {file = "contourpy-1.3.3-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:22e9b1bd7a9b1d652cd77388465dc358dafcd2e217d35552424aa4f996f524f5"}, + {file = "contourpy-1.3.3-cp314-cp314-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a22738912262aa3e254e4f3cb079a95a67132fc5a063890e224393596902f5a4"}, + {file = "contourpy-1.3.3-cp314-cp314-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:afe5a512f31ee6bd7d0dda52ec9864c984ca3d66664444f2d72e0dc4eb832e36"}, + {file = "contourpy-1.3.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f64836de09927cba6f79dcd00fdd7d5329f3fccc633468507079c829ca4db4e3"}, + {file = "contourpy-1.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:1fd43c3be4c8e5fd6e4f2baeae35ae18176cf2e5cced681cca908addf1cdd53b"}, + {file = "contourpy-1.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6afc576f7b33cf00996e5c1102dc2a8f7cc89e39c0b55df93a0b78c1bd992b36"}, + {file = "contourpy-1.3.3-cp314-cp314-win32.whl", hash = "sha256:66c8a43a4f7b8df8b71ee1840e4211a3c8d93b214b213f590e18a1beca458f7d"}, + {file = "contourpy-1.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:cf9022ef053f2694e31d630feaacb21ea24224be1c3ad0520b13d844274614fd"}, + {file = "contourpy-1.3.3-cp314-cp314-win_arm64.whl", hash = "sha256:95b181891b4c71de4bb404c6621e7e2390745f887f2a026b2d99e92c17892339"}, + {file = "contourpy-1.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:33c82d0138c0a062380332c861387650c82e4cf1747aaa6938b9b6516762e772"}, + {file = "contourpy-1.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ea37e7b45949df430fe649e5de8351c423430046a2af20b1c1961cae3afcda77"}, + {file = "contourpy-1.3.3-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d304906ecc71672e9c89e87c4675dc5c2645e1f4269a5063b99b0bb29f232d13"}, + {file = "contourpy-1.3.3-cp314-cp314t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ca658cd1a680a5c9ea96dc61cdbae1e85c8f25849843aa799dfd3cb370ad4fbe"}, + {file = "contourpy-1.3.3-cp314-cp314t-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ab2fd90904c503739a75b7c8c5c01160130ba67944a7b77bbf36ef8054576e7f"}, + {file = "contourpy-1.3.3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b7301b89040075c30e5768810bc96a8e8d78085b47d8be6e4c3f5a0b4ed478a0"}, + {file = "contourpy-1.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:2a2a8b627d5cc6b7c41a4beff6c5ad5eb848c88255fda4a8745f7e901b32d8e4"}, + {file = "contourpy-1.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:fd6ec6be509c787f1caf6b247f0b1ca598bef13f4ddeaa126b7658215529ba0f"}, + {file = "contourpy-1.3.3-cp314-cp314t-win32.whl", hash = "sha256:e74a9a0f5e3fff48fb5a7f2fd2b9b70a3fe014a67522f79b7cca4c0c7e43c9ae"}, + {file = "contourpy-1.3.3-cp314-cp314t-win_amd64.whl", hash = "sha256:13b68d6a62db8eafaebb8039218921399baf6e47bf85006fd8529f2a08ef33fc"}, + {file = "contourpy-1.3.3-cp314-cp314t-win_arm64.whl", hash = "sha256:b7448cb5a725bb1e35ce88771b86fba35ef418952474492cf7c764059933ff8b"}, + {file = "contourpy-1.3.3-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:cd5dfcaeb10f7b7f9dc8941717c6c2ade08f587be2226222c12b25f0483ed497"}, + {file = "contourpy-1.3.3-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:0c1fc238306b35f246d61a1d416a627348b5cf0648648a031e14bb8705fcdfe8"}, + {file = "contourpy-1.3.3-pp311-pypy311_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:70f9aad7de812d6541d29d2bbf8feb22ff7e1c299523db288004e3157ff4674e"}, + {file = "contourpy-1.3.3-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5ed3657edf08512fc3fe81b510e35c2012fbd3081d2e26160f27ca28affec989"}, + {file = "contourpy-1.3.3-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:3d1a3799d62d45c18bafd41c5fa05120b96a28079f2393af559b843d1a966a77"}, + {file = "contourpy-1.3.3.tar.gz", hash = "sha256:083e12155b210502d0bca491432bb04d56dc3432f95a979b429f2848c3dbe880"}, +] + +[package.dependencies] +numpy = ">=1.25" + +[package.extras] +bokeh = ["bokeh", "selenium"] +docs = ["furo", "sphinx (>=7.2)", "sphinx-copybutton"] +mypy = ["bokeh", "contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.17.0)", "types-Pillow"] +test = ["Pillow", "contourpy[test-no-images]", "matplotlib"] +test-no-images = ["pytest", "pytest-cov", "pytest-rerunfailures", "pytest-xdist", "wurlitzer"] + +[[package]] +name = "cycler" +version = "0.12.1" +description = "Composable style cycles" +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30"}, + {file = "cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c"}, +] + +[package.extras] +docs = ["ipython", "matplotlib", "numpydoc", "sphinx"] +tests = ["pytest", "pytest-cov", "pytest-xdist"] + [[package]] name = "dash" -version = "3.1.0" +version = "3.4.0" description = "A Python framework for building reactive web-apps. Developed by Plotly." optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "dash-3.1.0-py3-none-any.whl", hash = "sha256:e946d9b67af6709df4463e9a266a03e1f4ce42eed6d2e8e3af5799ea5173b41f"}, - {file = "dash-3.1.0.tar.gz", hash = "sha256:ba53c46a6b12948ff6b8e1e4bda882a274277b131ec4698159447cfd027a7a51"}, + {file = "dash-3.4.0-py3-none-any.whl", hash = "sha256:62b1c2eca3cfbe05f5e6ed8666e2c9a204aa08e2ceef89f01ce9bcccb3c18e95"}, + {file = "dash-3.4.0.tar.gz", hash = "sha256:3944beb32000ee8b22cd7fbb33545a0a43e25916c63aa41ba59ee5611997815e"}, ] [package.dependencies] @@ -190,28 +378,30 @@ plotly = ">=5.0.0" requests = "*" retrying = "*" setuptools = "*" -typing-extensions = ">=4.1.1" +typing_extensions = ">=4.1.1" Werkzeug = "<3.2" [package.extras] +ag-grid = ["dash-ag-grid"] async = ["flask[async]"] celery = ["celery[redis] (>=5.1.2,<5.4.0)", "kombu (<5.4.0)", "redis (>=3.5.3,<=5.0.4)"] -ci = ["black (==22.3.0)", "flake8 (==7.0.0)", "flaky (==3.8.1)", "flask-talisman (==1.0.0)", "ipython (<9.0.0)", "jupyterlab (<4.0.0)", "mimesis (<=11.1.0)", "mock (==4.0.3)", "mypy (==1.15.0) ; python_version >= \"3.12\"", "numpy (<=1.26.3)", "openpyxl", "orjson (==3.10.3)", "pandas (>=1.4.0)", "pyarrow", "pylint (==3.0.3)", "pyright (==1.1.398) ; python_version >= \"3.7\"", "pytest-mock", "pytest-rerunfailures", "pytest-sugar (==0.9.6)", "pyzmq (==25.1.2)", "xlrd (>=2.0.1)"] +ci = ["black (==22.3.0)", "flake8 (==7.0.0)", "flaky (==3.8.1)", "flask-talisman (==1.0.0)", "ipython (<9.0.0)", "jupyterlab (<4.0.0)", "mimesis (<=11.1.0)", "mock (==4.0.3)", "mypy (==1.15.0) ; python_version >= \"3.12\"", "numpy (<=1.26.3)", "openpyxl", "orjson (>=3.10.11)", "pandas (>=1.4.0)", "pyarrow", "pylint (==3.0.3)", "pyright (==1.1.398) ; python_version >= \"3.7\"", "pytest-mock", "pytest-rerunfailures", "pyzmq (>=26.0.0)", "xlrd (>=2.0.1)"] +cloud = ["plotly-cloud"] compress = ["flask-compress"] dev = ["PyYAML (>=5.4.1)", "coloredlogs (>=15.0.1)", "fire (>=0.4.0)"] diskcache = ["diskcache (>=5.2.1)", "multiprocess (>=0.70.12)", "psutil (>=5.8.0)"] -testing = ["beautifulsoup4 (>=4.8.2)", "cryptography", "dash-testing-stub (>=0.0.2)", "lxml (>=4.6.2)", "multiprocess (>=0.70.12)", "percy (>=2.0.2)", "psutil (>=5.8.0)", "pytest (>=6.0.2)", "requests[security] (>=2.21.0)", "selenium (>=3.141.0,<=4.2.0)", "waitress (>=1.4.4)"] +testing = ["beautifulsoup4 (>=4.8.2)", "cryptography", "dash_testing_stub (>=0.0.2)", "lxml (>=4.6.2)", "multiprocess (>=0.70.12)", "percy (>=2.0.2)", "psutil (>=5.8.0)", "pytest (>=6.0.2)", "requests[security] (>=2.21.0)", "selenium (>=3.141.0,<=4.2.0)", "waitress (>=1.4.4)"] [[package]] name = "dash-bootstrap-components" -version = "2.0.3" +version = "2.0.4" description = "Bootstrap themed components for use in Plotly Dash" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "dash_bootstrap_components-2.0.3-py3-none-any.whl", hash = "sha256:82754d3d001ad5482b8a82b496c7bf98a1c68d2669d607a89dda7ec627304af5"}, - {file = "dash_bootstrap_components-2.0.3.tar.gz", hash = "sha256:5c161b04a6e7ed19a7d54e42f070c29fd6c385d5a7797e7a82999aa2fc15b1de"}, + {file = "dash_bootstrap_components-2.0.4-py3-none-any.whl", hash = "sha256:767cf0084586c1b2b614ccf50f79fe4525fdbbf8e3a161ed60016e584a14f5d1"}, + {file = "dash_bootstrap_components-2.0.4.tar.gz", hash = "sha256:c3206c0923774bbc6a6ddaa7822b8d9aa5326b0d3c1e7cd795cc975025fe2484"}, ] [package.dependencies] @@ -220,18 +410,6 @@ dash = ">=3.0.4" [package.extras] pandas = ["numpy (>=2.0.2)", "pandas (>=2.2.3)"] -[[package]] -name = "decorator" -version = "5.2.1" -description = "Decorators for Humans" -optional = false -python-versions = ">=3.8" -groups = ["main"] -files = [ - {file = "decorator-5.2.1-py3-none-any.whl", hash = "sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a"}, - {file = "decorator-5.2.1.tar.gz", hash = "sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360"}, -] - [[package]] name = "et-xmlfile" version = "2.0.0" @@ -246,14 +424,14 @@ files = [ [[package]] name = "executing" -version = "2.2.0" +version = "2.2.1" description = "Get the currently executing AST node of a frame, and other information" optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "executing-2.2.0-py2.py3-none-any.whl", hash = "sha256:11387150cad388d62750327a53d3339fad4888b39a6fe233c3afbb54ecffd3aa"}, - {file = "executing-2.2.0.tar.gz", hash = "sha256:5d108c028108fe2551d1a7b2e8b713341e2cb4fc0aa7dcf966fa4327a5226755"}, + {file = "executing-2.2.1-py2.py3-none-any.whl", hash = "sha256:760643d3452b4d777d295bb167ccc74c64a81df23fb5e08eff250c425a4b2017"}, + {file = "executing-2.2.1.tar.gz", hash = "sha256:3632cc370565f6648cc328b32435bd120a1e4ebb20c77e3fdde9a13cd1e533c4"}, ] [package.extras] @@ -261,14 +439,14 @@ tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipyth [[package]] name = "flask" -version = "3.1.1" +version = "3.1.3" description = "A simple framework for building complex web applications." optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "flask-3.1.1-py3-none-any.whl", hash = "sha256:07aae2bb5eaf77993ef57e357491839f5fd9f4dc281593a81a9e4d79a24f295c"}, - {file = "flask-3.1.1.tar.gz", hash = "sha256:284c7b8f2f58cb737f0cf1c30fd7eaf0ccfcde196099d24ecede3fc2005aa59e"}, + {file = "flask-3.1.3-py3-none-any.whl", hash = "sha256:f4bcbefc124291925f1a26446da31a5178f9483862233b23c0c96a20701f670c"}, + {file = "flask-3.1.3.tar.gz", hash = "sha256:0ef0e52b8a9cd932855379197dd8f94047b359ca0a78695144304cb45f87c9eb"}, ] [package.dependencies] @@ -283,76 +461,149 @@ werkzeug = ">=3.1.0" async = ["asgiref (>=3.2)"] dotenv = ["python-dotenv"] +[[package]] +name = "fonttools" +version = "4.63.0" +description = "Tools to manipulate font files" +optional = false +python-versions = ">=3.10" +groups = ["main"] +files = [ + {file = "fonttools-4.63.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e3297a6a4059b4acc3a1e9a8b04741f240a80044eef08ebd32e8b5bcdddce75b"}, + {file = "fonttools-4.63.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b1cd75a03ad8cb5bc40c90bfde68c0c47de423aa19e5c0f362b43520645eea94"}, + {file = "fonttools-4.63.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c0425b277a59cff3d80ca42162a8de360f318438a2ac83570842a678d826d579"}, + {file = "fonttools-4.63.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d7e5c9973aa04c95650c96e5f5ad865fbf42d62079163ecfab1e01cbc2504c22"}, + {file = "fonttools-4.63.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cb014d58140a38135f16064c74c652ed57aa0b75cbf8bb59cac821f7edb5334e"}, + {file = "fonttools-4.63.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:032038247a96c1690f9f31e377c389383c902531b085aa4e4dabd6f57f870e69"}, + {file = "fonttools-4.63.0-cp310-cp310-win32.whl", hash = "sha256:a8b33a82979e0a6a34ff435cc81317be1f95ec1ebb7a3a2d1c8a6a54f02ae44e"}, + {file = "fonttools-4.63.0-cp310-cp310-win_amd64.whl", hash = "sha256:0c18358a155d75034911c5ee397a5b44cd19dd325dbb8b35fb60bf421d6a72ac"}, + {file = "fonttools-4.63.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2b8ae05d9eacf6081414d759c0a352769ac28ce31280d6bb8e77b03f9e3c449f"}, + {file = "fonttools-4.63.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:79cdc9f567aec74a72918fd060283911406750cbc9fd28c1316023deb6ce31a9"}, + {file = "fonttools-4.63.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2c14b4fd138c4bafcca294765c547914e1aa431ae1ca94ab99d8db08c958bd3b"}, + {file = "fonttools-4.63.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d76ac49f929aecaf82d83250b8347e099d7aecba0f4726c1d9b6df3b8bb5fe18"}, + {file = "fonttools-4.63.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:dcf076a4474fe0d7367e5bbf5b052c7284fa1feca729c04176ce513521afd8a0"}, + {file = "fonttools-4.63.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7dd683fef0663e9f0f45cf541d788d24caa3ec9db50796b588e1757d8b3bc007"}, + {file = "fonttools-4.63.0-cp311-cp311-win32.whl", hash = "sha256:afefc1ed0a59785a7fb06ea7e1678e849c193e1e387db783579bc7b3056fcfcb"}, + {file = "fonttools-4.63.0-cp311-cp311-win_amd64.whl", hash = "sha256:063e08bd17bd5a90127a14123de0d6a952dbc847695fd98b63c043d58057f90c"}, + {file = "fonttools-4.63.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:37dd23e621e3b0aef1baa70a303b80aaf38449632cfc8fd2a55fb285bbccfc02"}, + {file = "fonttools-4.63.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a9faff9e0c1f76f9fd55899d2ce785832efebab37eb8ae13995853aef178bef0"}, + {file = "fonttools-4.63.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ef3048ef05dbb552b89817713d9cac912e00d0fde4a3105c00d29e52e10c89af"}, + {file = "fonttools-4.63.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:58dc6bb86a78d782f00f9190ca02c119cf5bbe2807536e361e18d42019f877d8"}, + {file = "fonttools-4.63.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ee08ebfa58f6e1aeff5697ab9582105bb620008c1caafb681e4c557e7483027b"}, + {file = "fonttools-4.63.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:27fdc65af8da6f88b9c6121c47a464cbe359fcfff7ff6fc2d37a1f395d755b78"}, + {file = "fonttools-4.63.0-cp312-cp312-win32.whl", hash = "sha256:af2fd1664d00a397d75f806985ddb36282091c2131a73a6485c23b4a34722263"}, + {file = "fonttools-4.63.0-cp312-cp312-win_amd64.whl", hash = "sha256:59ac449f8cca9b4ffa08d2e7bbadad87ce710d69d1eda5c3c1ce579baa987272"}, + {file = "fonttools-4.63.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:cd7e9857e5e63738b9d9fd707bc1f59c8b09e5177726d23664db393c59bb08bd"}, + {file = "fonttools-4.63.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c2a2a42198b696a6f48fad91709afb55176e66a5e566131219dba372fb7f8c59"}, + {file = "fonttools-4.63.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1e874792a8212b44583ea02189d9e693906b2f78b261f372f95d6c563210ac1d"}, + {file = "fonttools-4.63.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:22135da48a348785c5e2d5d2d9d6bec5ed44adacbaeb9db12d9493bf6c6bfa68"}, + {file = "fonttools-4.63.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ccf41f2efdf56994d22d73bef4ced1052161958169428d06ba9724ea9e9a64be"}, + {file = "fonttools-4.63.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9ced0bd02ac751dd6319b0da88aaef24414e3b0dbc32bb4f24944821a3741a27"}, + {file = "fonttools-4.63.0-cp313-cp313-win32.whl", hash = "sha256:85be818f5506e8a7753153def2c9550178f0ecae6a47b5e0e8dbb23f7cc90380"}, + {file = "fonttools-4.63.0-cp313-cp313-win_amd64.whl", hash = "sha256:ba04cb5891d4c0c21b6da95eda8d7b090021508a294fff33464fc7d241e0856b"}, + {file = "fonttools-4.63.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:fd1e3094f42d806d3d7c79162fc59e5910fcbe3a7360c385b8da969bc4493745"}, + {file = "fonttools-4.63.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:6e528da43bc3791085f8cb6141b1d13e459226790240340fcbb4625649238b03"}, + {file = "fonttools-4.63.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b2248c5decb223562f7902ff6325077a073f608ee8e33e88ad88db734eb9f49"}, + {file = "fonttools-4.63.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:308f957cdeaf8abe4e5f2f124902ef405448af92c90f80e302a3b771c2e6116b"}, + {file = "fonttools-4.63.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:bf00f21eb5fb721dbaf73d1e9da6d02a1af7768f2ebcf9798be98beab8ba90f6"}, + {file = "fonttools-4.63.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:c1aaa4b9c75798400ac043ce04d74e7830376c85095a5a6ed7cba2f17a266bf4"}, + {file = "fonttools-4.63.0-cp314-cp314-win32.whl", hash = "sha256:22693918177bd9ceabec4736d338045f357769416fc6b0b2508eefef75b08616"}, + {file = "fonttools-4.63.0-cp314-cp314-win_amd64.whl", hash = "sha256:7d782fac32985914c351556f68ac0855391572bcd87de50e05970d3cd4c96fc5"}, + {file = "fonttools-4.63.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:6db5140a60a5d731d21ec076745b40a310607731b0a565b50776393188649001"}, + {file = "fonttools-4.63.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:7d76edbff9014094dbf03bd2d074709dfa6ec7aba13d838c937a2b33d2d6a86e"}, + {file = "fonttools-4.63.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0eac00b9118c3c2f87d272e45341871c5b3066baa3c86897fa634a7c3fb59096"}, + {file = "fonttools-4.63.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:51394295f1a51de8b5f30bdb1e1b9a4231536c7064ef5c6e211eec19fa36036f"}, + {file = "fonttools-4.63.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:9e12f105d2b6342c559c298afb674006bb2893afc7102dcf8a1b55b0486b4e40"}, + {file = "fonttools-4.63.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:796f27556dbe094c4824f75ca85267e4df776c79036c8441469a4df37038c196"}, + {file = "fonttools-4.63.0-cp314-cp314t-win32.whl", hash = "sha256:948428a275741f0b64b113c955425a953314f4b9ab9997f73a72c83e68e569c8"}, + {file = "fonttools-4.63.0-cp314-cp314t-win_amd64.whl", hash = "sha256:6d4741eb179121cab9eea4cb2393d24492373a260d7945006358c08cfbf45419"}, + {file = "fonttools-4.63.0-py3-none-any.whl", hash = "sha256:445af2eab030a16b9171ea8bdda7ebf7d96bda2df88ee182a464252f6e05e20d"}, + {file = "fonttools-4.63.0.tar.gz", hash = "sha256:caeb583deeb5168e694b65cda8b4ee62abedfa66cf88488734466f2366b9c4e0"}, +] + +[package.extras] +all = ["brotli (>=1.0.1) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\"", "lxml (>=4.0)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres ; platform_python_implementation == \"PyPy\"", "pycairo", "scipy ; platform_python_implementation != \"PyPy\"", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.45.0)", "unicodedata2 (>=17.0.0) ; python_version <= \"3.14\"", "xattr ; sys_platform == \"darwin\"", "zopfli (>=0.1.4)"] +graphite = ["lz4 (>=1.7.4.2)"] +interpolatable = ["munkres ; platform_python_implementation == \"PyPy\"", "pycairo", "scipy ; platform_python_implementation != \"PyPy\""] +lxml = ["lxml (>=4.0)"] +pathops = ["skia-pathops (>=0.5.0)"] +plot = ["matplotlib"] +repacker = ["uharfbuzz (>=0.45.0)"] +symfont = ["sympy"] +type1 = ["xattr ; sys_platform == \"darwin\""] +unicode = ["unicodedata2 (>=17.0.0) ; python_version <= \"3.14\""] +woff = ["brotli (>=1.0.1) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\"", "zopfli (>=0.1.4)"] + [[package]] name = "idna" -version = "3.10" +version = "3.18" description = "Internationalized Domain Names in Applications (IDNA)" optional = false -python-versions = ">=3.6" +python-versions = ">=3.9" groups = ["main"] files = [ - {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, - {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, + {file = "idna-3.18-py3-none-any.whl", hash = "sha256:7f952cbe720b688055e3f87de14f5c3e5fdaa8bc3928985c4077ca689de849a2"}, + {file = "idna-3.18.tar.gz", hash = "sha256:ffb385a7e039654cef1ab9ef32c6fafe283c0c0467bba1d9029738ce4a14a848"}, ] [package.extras] -all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] +all = ["mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] [[package]] name = "importlib-metadata" -version = "8.7.0" +version = "9.0.0" description = "Read metadata from Python packages" optional = false -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] files = [ - {file = "importlib_metadata-8.7.0-py3-none-any.whl", hash = "sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd"}, - {file = "importlib_metadata-8.7.0.tar.gz", hash = "sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000"}, + {file = "importlib_metadata-9.0.0-py3-none-any.whl", hash = "sha256:2d21d1cc5a017bd0559e36150c21c830ab1dc304dedd1b7ea85d20f45ef3edd7"}, + {file = "importlib_metadata-9.0.0.tar.gz", hash = "sha256:a4f57ab599e6a2e3016d7595cfd72eb4661a5106e787a95bcc90c7105b831efc"}, ] [package.dependencies] zipp = ">=3.20" [package.extras] -check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] +check = ["pytest-checkdocs (>=2.14)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -enabler = ["pytest-enabler (>=2.2)"] +enabler = ["pytest-enabler (>=3.4)"] perf = ["ipython"] -test = ["flufl.flake8", "importlib_resources (>=1.3) ; python_version < \"3.9\"", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-perf (>=0.9.2)"] -type = ["pytest-mypy"] +test = ["packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-perf (>=0.9.2)"] +type = ["pytest-mypy (>=1.0.1) ; platform_python_implementation != \"PyPy\""] [[package]] name = "ipython" -version = "9.3.0" +version = "9.16.1" description = "IPython: Productive Interactive Computing" optional = false python-versions = ">=3.11" groups = ["main"] files = [ - {file = "ipython-9.3.0-py3-none-any.whl", hash = "sha256:1a0b6dd9221a1f5dddf725b57ac0cb6fddc7b5f470576231ae9162b9b3455a04"}, - {file = "ipython-9.3.0.tar.gz", hash = "sha256:79eb896f9f23f50ad16c3bc205f686f6e030ad246cc309c6279a242b14afe9d8"}, + {file = "ipython-9.16.1-py3-none-any.whl", hash = "sha256:4acae635506f6d352d94c4899a19d5f85f8bc4d230932342dca556fdab1c69b4"}, + {file = "ipython-9.16.1.tar.gz", hash = "sha256:5a3d1f9a47ff216d6cf9cf863124f6a2c1a198d1354c546a4d24a370a283b64c"}, ] [package.dependencies] -colorama = {version = "*", markers = "sys_platform == \"win32\""} -decorator = "*" -ipython-pygments-lexers = "*" -jedi = ">=0.16" -matplotlib-inline = "*" -pexpect = {version = ">4.3", markers = "sys_platform != \"win32\" and sys_platform != \"emscripten\""} +colorama = {version = ">=0.4.4", markers = "sys_platform == \"win32\""} +ipython-pygments-lexers = ">=1.0.0" +jedi = ">=0.18.2" +matplotlib-inline = ">=0.1.6" +pexpect = {version = ">4.6", markers = "sys_platform != \"win32\" and sys_platform != \"emscripten\""} prompt_toolkit = ">=3.0.41,<3.1.0" -pygments = ">=2.4.0" -stack_data = "*" +psutil = {version = ">=7", markers = "sys_platform != \"emscripten\" and sys_platform != \"cygwin\""} +pygments = ">=2.14.0" +stack_data = ">=0.6.0" traitlets = ">=5.13.0" [package.extras] -all = ["ipython[doc,matplotlib,test,test-extra]"] +all = ["argcomplete (>=3.0)", "ipython[doc,matplotlib,test,test-extra]"] black = ["black"] -doc = ["docrepr", "exceptiongroup", "intersphinx_registry", "ipykernel", "ipython[test]", "matplotlib", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "sphinx_toml (==0.0.4)", "typing_extensions"] -matplotlib = ["matplotlib"] -test = ["packaging", "pytest", "pytest-asyncio (<0.22)", "testpath"] -test-extra = ["curio", "ipykernel", "ipython[test]", "jupyter_ai", "matplotlib (!=3.2.0)", "nbclient", "nbformat", "numpy (>=1.23)", "pandas", "trio"] +doc = ["docrepr", "exceptiongroup", "intersphinx_registry", "ipykernel", "ipython[matplotlib,test]", "setuptools (>=80.0)", "sphinx (>=8.0)", "sphinx-rtd-theme (>=0.1.8)", "sphinx_toml (==0.0.4)", "typing_extensions"] +matplotlib = ["matplotlib (>3.9)"] +test = ["packaging (>=23.0.0)", "pytest (>=7.0.0)", "pytest-asyncio (>=1.0.0)", "setuptools (>=80.0)", "testpath (>=0.2)"] +test-extra = ["curio", "ipykernel (>6.30)", "ipython[matplotlib]", "ipython[test]", "jupyter_ai", "nbclient", "nbformat", "numpy (>=2.0)", "pandas (>2.1)", "trio (>=0.22.0)"] [[package]] name = "ipython-pygments-lexers" @@ -383,23 +634,22 @@ files = [ [[package]] name = "jedi" -version = "0.19.2" +version = "0.20.0" description = "An autocompletion tool for Python that can be used for text editors." optional = false -python-versions = ">=3.6" +python-versions = ">=3.10" groups = ["main"] files = [ - {file = "jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9"}, - {file = "jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0"}, + {file = "jedi-0.20.0-py2.py3-none-any.whl", hash = "sha256:7bdd9c2634f56713299976f4cbd59cb3fa92165cc5e05ea811fb253480728b67"}, + {file = "jedi-0.20.0.tar.gz", hash = "sha256:c3f4ccbd276696f4b19c54618d4fb18f9fc24b0aef02acf704b23f487daa1011"}, ] [package.dependencies] -parso = ">=0.8.4,<0.9.0" +parso = ">=0.8.6,<0.9.0" [package.extras] -docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alabaster (==0.7.12)", "babel (==2.9.1)", "chardet (==4.0.0)", "commonmark (==0.8.1)", "docutils (==0.17.1)", "future (==0.18.2)", "idna (==2.10)", "imagesize (==1.2.0)", "mock (==1.0.1)", "packaging (==20.9)", "pyparsing (==2.4.7)", "pytz (==2021.1)", "readthedocs-sphinx-ext (==2.1.4)", "recommonmark (==0.5.0)", "requests (==2.25.1)", "six (==1.15.0)", "snowballstemmer (==2.1.0)", "sphinx (==1.8.5)", "sphinx-rtd-theme (==0.4.3)", "sphinxcontrib-serializinghtml (==1.1.4)", "sphinxcontrib-websupport (==1.2.4)", "urllib3 (==1.26.4)"] -qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] -testing = ["Django", "attrs", "colorama", "docopt", "pytest (<9.0.0)"] +dev = ["Django", "attrs", "colorama", "docopt", "flake8 (==7.1.2)", "pytest (<9.0.0)", "types-setuptools (==80.9.0.20250529)", "typing-extensions", "zuban (==0.7.0)"] +docs = ["Jinja2 (==3.1.6)", "MarkupSafe (==3.0.3)", "Pygments (==2.20.0)", "Sphinx (==9.1.0)", "alabaster (==1.0.0)", "babel (==2.18.0)", "certifi (==2026.4.22)", "charset-normalizer (==3.4.7)", "docutils (==0.22.4)", "idna (==3.13)", "imagesize (==2.0.0)", "iniconfig (==2.3.0)", "packaging (==26.2)", "pluggy (==1.6.0)", "pytest (==9.0.3)", "requests (==2.33.1)", "roman-numerals (==4.1.0)", "snowballstemmer (==3.0.1)", "sphinx-rtd-theme (==3.1.0)", "sphinxcontrib-applehelp (==2.0.0)", "sphinxcontrib-devhelp (==2.0.0)", "sphinxcontrib-htmlhelp (==2.1.0)", "sphinxcontrib-jquery (==4.1)", "sphinxcontrib-jsmath (==1.0.1)", "sphinxcontrib-qthelp (==2.0.0)", "sphinxcontrib-serializinghtml (==2.0.0)", "urllib3 (==2.6.3)"] [[package]] name = "jinja2" @@ -419,16 +669,143 @@ MarkupSafe = ">=2.0" [package.extras] i18n = ["Babel (>=2.7)"] +[[package]] +name = "kiwisolver" +version = "1.5.0" +description = "A fast implementation of the Cassowary constraint solver" +optional = false +python-versions = ">=3.10" +groups = ["main"] +files = [ + {file = "kiwisolver-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:32cc0a5365239a6ea0c6ed461e8838d053b57e397443c0ca894dcc8e388d4374"}, + {file = "kiwisolver-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cc0b66c1eec9021353a4b4483afb12dfd50e3669ffbb9152d6842eb34c7e29fd"}, + {file = "kiwisolver-1.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:86e0287879f75621ae85197b0877ed2f8b7aa57b511c7331dce2eb6f4de7d476"}, + {file = "kiwisolver-1.5.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:62f59da443c4f4849f73a51a193b1d9d258dcad0c41bc4d1b8fb2bcc04bfeb22"}, + {file = "kiwisolver-1.5.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9190426b7aa26c5229501fa297b8d0653cfd3f5a36f7990c264e157cbf886b3b"}, + {file = "kiwisolver-1.5.0-cp310-cp310-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c8277104ded0a51e699c8c3aff63ce2c56d4ed5519a5f73e0fd7057f959a2b9e"}, + {file = "kiwisolver-1.5.0-cp310-cp310-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8f9baf6f0a6e7571c45c8863010b45e837c3ee1c2c77fcd6ef423be91b21fedb"}, + {file = "kiwisolver-1.5.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cff8e5383db4989311f99e814feeb90c4723eb4edca425b9d5d9c3fefcdd9537"}, + {file = "kiwisolver-1.5.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:ebae99ed6764f2b5771c522477b311be313e8841d2e0376db2b10922daebbba4"}, + {file = "kiwisolver-1.5.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:d5cd5189fc2b6a538b75ae45433140c4823463918f7b1617c31e68b085c0022c"}, + {file = "kiwisolver-1.5.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f42c23db5d1521218a3276bb08666dcb662896a0be7347cba864eca45ff64ede"}, + {file = "kiwisolver-1.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:94eff26096eb5395136634622515b234ecb6c9979824c1f5004c6e3c3c85ccd2"}, + {file = "kiwisolver-1.5.0-cp310-cp310-win_arm64.whl", hash = "sha256:dd952e03bfbb096cfe2dd35cd9e00f269969b67536cb4370994afc20ff2d0875"}, + {file = "kiwisolver-1.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9eed0f7edbb274413b6ee781cca50541c8c0facd3d6fd289779e494340a2b85c"}, + {file = "kiwisolver-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3c4923e404d6bcd91b6779c009542e5647fef32e4a5d75e115e3bbac6f2335eb"}, + {file = "kiwisolver-1.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0df54df7e686afa55e6f21fb86195224a6d9beb71d637e8d7920c95cf0f89aac"}, + {file = "kiwisolver-1.5.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2517e24d7315eb51c10664cdb865195df38ab74456c677df67bb47f12d088a27"}, + {file = "kiwisolver-1.5.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ff710414307fefa903e0d9bdf300972f892c23477829f49504e59834f4195398"}, + {file = "kiwisolver-1.5.0-cp311-cp311-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6176c1811d9d5a04fa391c490cc44f451e240697a16977f11c6f722efb9041db"}, + {file = "kiwisolver-1.5.0-cp311-cp311-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:50847dca5d197fcbd389c805aa1a1cf32f25d2e7273dc47ab181a517666b68cc"}, + {file = "kiwisolver-1.5.0-cp311-cp311-manylinux_2_39_riscv64.whl", hash = "sha256:01808c6d15f4c3e8559595d6d1fe6411c68e4a3822b4b9972b44473b24f4e679"}, + {file = "kiwisolver-1.5.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f1f9f4121ec58628c96baa3de1a55a4e3a333c5102c8e94b64e23bf7b2083309"}, + {file = "kiwisolver-1.5.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:b7d335370ae48a780c6e6a6bbfa97342f563744c39c35562f3f367665f5c1de2"}, + {file = "kiwisolver-1.5.0-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:800ee55980c18545af444d93fdd60c56b580db5cc54867d8cbf8a1dc0829938c"}, + {file = "kiwisolver-1.5.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:c438f6ca858697c9ab67eb28246c92508af972e114cac34e57a6d4ba17a3ac08"}, + {file = "kiwisolver-1.5.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:8c63c91f95173f9c2a67c7c526b2cea976828a0e7fced9cdcead2802dc10f8a4"}, + {file = "kiwisolver-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:beb7f344487cdcb9e1efe4b7a29681b74d34c08f0043a327a74da852a6749e7b"}, + {file = "kiwisolver-1.5.0-cp311-cp311-win_arm64.whl", hash = "sha256:ad4ae4ffd1ee9cd11357b4c66b612da9888f4f4daf2f36995eda64bd45370cac"}, + {file = "kiwisolver-1.5.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:4e9750bc21b886308024f8a54ccb9a2cc38ac9fa813bf4348434e3d54f337ff9"}, + {file = "kiwisolver-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:72ec46b7eba5b395e0a7b63025490d3214c11013f4aacb4f5e8d6c3041829588"}, + {file = "kiwisolver-1.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ed3a984b31da7481b103f68776f7128a89ef26ed40f4dc41a2223cda7fb24819"}, + {file = "kiwisolver-1.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bb5136fb5352d3f422df33f0c879a1b0c204004324150cc3b5e3c4f310c9049f"}, + {file = "kiwisolver-1.5.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b2af221f268f5af85e776a73d62b0845fc8baf8ef0abfae79d29c77d0e776aaf"}, + {file = "kiwisolver-1.5.0-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b0f172dc8ffaccb8522d7c5d899de00133f2f1ca7b0a49b7da98e901de87bf2d"}, + {file = "kiwisolver-1.5.0-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6ab8ba9152203feec73758dad83af9a0bbe05001eb4639e547207c40cfb52083"}, + {file = "kiwisolver-1.5.0-cp312-cp312-manylinux_2_39_riscv64.whl", hash = "sha256:cdee07c4d7f6d72008d3f73b9bf027f4e11550224c7c50d8df1ae4a37c1402a6"}, + {file = "kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7c60d3c9b06fb23bd9c6139281ccbdc384297579ae037f08ae90c69f6845c0b1"}, + {file = "kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:e315e5ec90d88e140f57696ff85b484ff68bb311e36f2c414aa4286293e6dee0"}, + {file = "kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:1465387ac63576c3e125e5337a6892b9e99e0627d52317f3ca79e6930d889d15"}, + {file = "kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:530a3fd64c87cffa844d4b6b9768774763d9caa299e9b75d8eca6a4423b31314"}, + {file = "kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1d9daea4ea6b9be74fe2f01f7fbade8d6ffab263e781274cffca0dba9be9eec9"}, + {file = "kiwisolver-1.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:f18c2d9782259a6dc132fdc7a63c168cbc74b35284b6d75c673958982a378384"}, + {file = "kiwisolver-1.5.0-cp312-cp312-win_arm64.whl", hash = "sha256:f7c7553b13f69c1b29a5bde08ddc6d9d0c8bfb84f9ed01c30db25944aeb852a7"}, + {file = "kiwisolver-1.5.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:fd40bb9cd0891c4c3cb1ddf83f8bbfa15731a248fdc8162669405451e2724b09"}, + {file = "kiwisolver-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c0e1403fd7c26d77c1f03e096dc58a5c726503fa0db0456678b8668f76f521e3"}, + {file = "kiwisolver-1.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:dda366d548e89a90d88a86c692377d18d8bd64b39c1fb2b92cb31370e2896bbd"}, + {file = "kiwisolver-1.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:332b4f0145c30b5f5ad9374881133e5aa64320428a57c2c2b61e9d891a51c2f3"}, + {file = "kiwisolver-1.5.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0c50b89ffd3e1a911c69a1dd3de7173c0cd10b130f56222e57898683841e4f96"}, + {file = "kiwisolver-1.5.0-cp313-cp313-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4db576bb8c3ef9365f8b40fe0f671644de6736ae2c27a2c62d7d8a1b4329f099"}, + {file = "kiwisolver-1.5.0-cp313-cp313-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0b85aad90cea8ac6797a53b5d5f2e967334fa4d1149f031c4537569972596cb8"}, + {file = "kiwisolver-1.5.0-cp313-cp313-manylinux_2_39_riscv64.whl", hash = "sha256:d36ca54cb4c6c4686f7cbb7b817f66f5911c12ddb519450bbe86707155028f87"}, + {file = "kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:38f4a703656f493b0ad185211ccfca7f0386120f022066b018eb5296d8613e23"}, + {file = "kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:3ac2360e93cb41be81121755c6462cff3beaa9967188c866e5fce5cf13170859"}, + {file = "kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c95cab08d1965db3d84a121f1c7ce7479bdd4072c9b3dafd8fecce48a2e6b902"}, + {file = "kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fc20894c3d21194d8041a28b65622d5b86db786da6e3cfe73f0c762951a61167"}, + {file = "kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7a32f72973f0f950c1920475d5c5ea3d971b81b6f0ec53b8d0a956cc965f22e0"}, + {file = "kiwisolver-1.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:0bf3acf1419fa93064a4c2189ac0b58e3be7872bf6ee6177b0d4c63dc4cea276"}, + {file = "kiwisolver-1.5.0-cp313-cp313-win_arm64.whl", hash = "sha256:fa8eb9ecdb7efb0b226acec134e0d709e87a909fa4971a54c0c4f6e88635484c"}, + {file = "kiwisolver-1.5.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:db485b3847d182b908b483b2ed133c66d88d49cacf98fd278fadafe11b4478d1"}, + {file = "kiwisolver-1.5.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:be12f931839a3bdfe28b584db0e640a65a8bcbc24560ae3fdb025a449b3d754e"}, + {file = "kiwisolver-1.5.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:16b85d37c2cbb3253226d26e64663f755d88a03439a9c47df6246b35defbdfb7"}, + {file = "kiwisolver-1.5.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4432b835675f0ea7414aab3d37d119f7226d24869b7a829caeab49ebda407b0c"}, + {file = "kiwisolver-1.5.0-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b0feb50971481a2cc44d94e88bdb02cdd497618252ae226b8eb1201b957e368"}, + {file = "kiwisolver-1.5.0-cp313-cp313t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:56fa888f10d0f367155e76ce849fa1166fc9730d13bd2d65a2aa13b6f5424489"}, + {file = "kiwisolver-1.5.0-cp313-cp313t-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:940dda65d5e764406b9fb92761cbf462e4e63f712ab60ed98f70552e496f3bf1"}, + {file = "kiwisolver-1.5.0-cp313-cp313t-manylinux_2_39_riscv64.whl", hash = "sha256:89fc958c702ee9a745e4700378f5d23fddbc46ff89e8fdbf5395c24d5c1452a3"}, + {file = "kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9027d773c4ff81487181a925945743413f6069634d0b122d0b37684ccf4f1e18"}, + {file = "kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:5b233ea3e165e43e35dba1d2b8ecc21cf070b45b65ae17dd2747d2713d942021"}, + {file = "kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:ce9bf03dad3b46408c08649c6fbd6ca28a9fce0eb32fdfffa6775a13103b5310"}, + {file = "kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:fc4d3f1fb9ca0ae9f97b095963bc6326f1dbfd3779d6679a1e016b9baaa153d3"}, + {file = "kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f443b4825c50a51ee68585522ab4a1d1257fac65896f282b4c6763337ac9f5d2"}, + {file = "kiwisolver-1.5.0-cp313-cp313t-win_arm64.whl", hash = "sha256:893ff3a711d1b515ba9da14ee090519bad4610ed1962fbe298a434e8c5f8db53"}, + {file = "kiwisolver-1.5.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8df31fe574b8b3993cc61764f40941111b25c2d9fea13d3ce24a49907cd2d615"}, + {file = "kiwisolver-1.5.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:1d49a49ac4cbfb7c1375301cd1ec90169dfeae55ff84710d782260ce77a75a02"}, + {file = "kiwisolver-1.5.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0cbe94b69b819209a62cb27bdfa5dc2a8977d8de2f89dfd97ba4f53ed3af754e"}, + {file = "kiwisolver-1.5.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:80aa065ffd378ff784822a6d7c3212f2d5f5e9c3589614b5c228b311fd3063ac"}, + {file = "kiwisolver-1.5.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e7f886f47ab881692f278ae901039a234e4025a68e6dfab514263a0b1c4ae05"}, + {file = "kiwisolver-1.5.0-cp314-cp314-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5060731cc3ed12ca3a8b57acd4aeca5bbc2f49216dd0bec1650a1acd89486bcd"}, + {file = "kiwisolver-1.5.0-cp314-cp314-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7a4aa69609f40fce3cbc3f87b2061f042eee32f94b8f11db707b66a26461591a"}, + {file = "kiwisolver-1.5.0-cp314-cp314-manylinux_2_39_riscv64.whl", hash = "sha256:d168fda2dbff7b9b5f38e693182d792a938c31db4dac3a80a4888de603c99554"}, + {file = "kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:413b820229730d358efd838ecbab79902fe97094565fdc80ddb6b0a18c18a581"}, + {file = "kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:5124d1ea754509b09e53738ec185584cc609aae4a3b510aaf4ed6aa047ef9303"}, + {file = "kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:e4415a8db000bf49a6dd1c478bf70062eaacff0f462b92b0ba68791a905861f9"}, + {file = "kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:d618fd27420381a4f6044faa71f46d8bfd911bd077c555f7138ed88729bfbe79"}, + {file = "kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5092eb5b1172947f57d6ea7d89b2f29650414e4293c47707eb499ec07a0ac796"}, + {file = "kiwisolver-1.5.0-cp314-cp314-win_amd64.whl", hash = "sha256:d76e2d8c75051d58177e762164d2e9ab92886534e3a12e795f103524f221dd8e"}, + {file = "kiwisolver-1.5.0-cp314-cp314-win_arm64.whl", hash = "sha256:fa6248cd194edff41d7ea9425ced8ca3a6f838bfb295f6f1d6e6bb694a8518df"}, + {file = "kiwisolver-1.5.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:d1ffeb80b5676463d7a7d56acbe8e37a20ce725570e09549fe738e02ca6b7e1e"}, + {file = "kiwisolver-1.5.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:bc4d8e252f532ab46a1de9349e2d27b91fce46736a9eedaa37beaca66f574ed4"}, + {file = "kiwisolver-1.5.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6783e069732715ad0c3ce96dbf21dbc2235ab0593f2baf6338101f70371f4028"}, + {file = "kiwisolver-1.5.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e7c4c09a490dc4d4a7f8cbee56c606a320f9dc28cf92a7157a39d1ce7676a657"}, + {file = "kiwisolver-1.5.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2a075bd7bd19c70cf67c8badfa36cf7c5d8de3c9ddb8420c51e10d9c50e94920"}, + {file = "kiwisolver-1.5.0-cp314-cp314t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:bdd3e53429ff02aa319ba59dfe4ceeec345bf46cf180ec2cf6fd5b942e7975e9"}, + {file = "kiwisolver-1.5.0-cp314-cp314t-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3cdcb35dc9d807259c981a85531048ede628eabcffb3239adf3d17463518992d"}, + {file = "kiwisolver-1.5.0-cp314-cp314t-manylinux_2_39_riscv64.whl", hash = "sha256:70d593af6a6ca332d1df73d519fddb5148edb15cd90d5f0155e3746a6d4fcc65"}, + {file = "kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:377815a8616074cabbf3f53354e1d040c35815a134e01d7614b7692e4bf8acfa"}, + {file = "kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:0255a027391d52944eae1dbb5d4cc5903f57092f3674e8e544cdd2622826b3f0"}, + {file = "kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:012b1eb16e28718fa782b5e61dc6f2da1f0792ca73bd05d54de6cb9561665fc9"}, + {file = "kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:0e3aafb33aed7479377e5e9a82e9d4bf87063741fc99fc7ae48b0f16e32bdd6f"}, + {file = "kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e7a116ae737f0000343218c4edf5bd45893bfeaff0993c0b215d7124c9f77646"}, + {file = "kiwisolver-1.5.0-cp314-cp314t-win_amd64.whl", hash = "sha256:1dd9b0b119a350976a6d781e7278ec7aca0b201e1a9e2d23d9804afecb6ca681"}, + {file = "kiwisolver-1.5.0-cp314-cp314t-win_arm64.whl", hash = "sha256:58f812017cd2985c21fbffb4864d59174d4903dd66fa23815e74bbc7a0e2dd57"}, + {file = "kiwisolver-1.5.0-graalpy312-graalpy250_312_native-macosx_10_13_x86_64.whl", hash = "sha256:5ae8e62c147495b01a0f4765c878e9bfdf843412446a247e28df59936e99e797"}, + {file = "kiwisolver-1.5.0-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:f6764a4ccab3078db14a632420930f6186058750df066b8ea2a7106df91d3203"}, + {file = "kiwisolver-1.5.0-graalpy312-graalpy250_312_native-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c31c13da98624f957b0fb1b5bae5383b2333c2c3f6793d9825dd5ce79b525cb7"}, + {file = "kiwisolver-1.5.0-graalpy312-graalpy250_312_native-win_amd64.whl", hash = "sha256:1f1489f769582498610e015a8ef2d36f28f505ab3096d0e16b4858a9ec214f57"}, + {file = "kiwisolver-1.5.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:295d9ffe712caa9f8a3081de8d32fc60191b4b51c76f02f951fd8407253528f4"}, + {file = "kiwisolver-1.5.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:51e8c4084897de9f05898c2c2a39af6318044ae969d46ff7a34ed3f96274adca"}, + {file = "kiwisolver-1.5.0-pp310-pypy310_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b83af57bdddef03c01a9138034c6ff03181a3028d9a1003b301eb1a55e161a3f"}, + {file = "kiwisolver-1.5.0-pp310-pypy310_pp73-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bf4679a3d71012a7c2bf360e5cd878fbd5e4fcac0896b56393dec239d81529ed"}, + {file = "kiwisolver-1.5.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:41024ed50e44ab1a60d3fe0a9d15a4ccc9f5f2b1d814ff283c8d01134d5b81bc"}, + {file = "kiwisolver-1.5.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:ec4c85dc4b687c7f7f15f553ff26a98bfe8c58f5f7f0ac8905f0ba4c7be60232"}, + {file = "kiwisolver-1.5.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:12e91c215a96e39f57989c8912ae761286ac5a9584d04030ceb3368a357f017a"}, + {file = "kiwisolver-1.5.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:be4a51a55833dc29ab5d7503e7bcb3b3af3402d266018137127450005cdfe737"}, + {file = "kiwisolver-1.5.0-pp311-pypy311_pp73-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:daae526907e262de627d8f70058a0f64acc9e2641c164c99c8f594b34a799a16"}, + {file = "kiwisolver-1.5.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:59cd8683f575d96df5bb48f6add94afc055012c29e28124fcae2b63661b9efb1"}, + {file = "kiwisolver-1.5.0.tar.gz", hash = "sha256:d4193f3d9dc3f6f79aaed0e5637f45d98850ebf01f7ca20e69457f3e8946b66a"}, +] + [[package]] name = "markdown-it-py" -version = "3.0.0" +version = "4.2.0" description = "Python port of markdown-it. Markdown parsing, done right!" optional = false -python-versions = ">=3.8" +python-versions = ">=3.10" groups = ["main"] files = [ - {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, - {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, + {file = "markdown_it_py-4.2.0-py3-none-any.whl", hash = "sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a"}, + {file = "markdown_it_py-4.2.0.tar.gz", hash = "sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49"}, ] [package.dependencies] @@ -436,100 +813,197 @@ mdurl = ">=0.1,<1.0" [package.extras] benchmarking = ["psutil", "pytest", "pytest-benchmark"] -code-style = ["pre-commit (>=3.0,<4.0)"] -compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] +compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "markdown-it-pyrs", "mistletoe (>=1.0,<2.0)", "mistune (>=3.0,<4.0)", "panflute (>=2.3,<3.0)"] linkify = ["linkify-it-py (>=1,<3)"] -plugins = ["mdit-py-plugins"] +plugins = ["mdit-py-plugins (>=0.5.0)"] profiling = ["gprof2dot"] -rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] -testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] +rtd = ["ipykernel", "jupyter_sphinx", "mdit-py-plugins (>=0.5.0)", "myst-parser", "pyyaml", "sphinx", "sphinx-book-theme (>=1.0,<2.0)", "sphinx-copybutton", "sphinx-design"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions", "pytest-timeout", "requests"] [[package]] name = "markupsafe" -version = "3.0.2" +version = "3.0.3" description = "Safely add untrusted strings to HTML/XML markup." optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, - {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, - {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, - {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, - {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, - {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, - {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, - {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, + {file = "markupsafe-3.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2f981d352f04553a7171b8e44369f2af4055f888dfb147d55e42d29e29e74559"}, + {file = "markupsafe-3.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c1493fb6e50ab01d20a22826e57520f1284df32f2d8601fdd90b6304601419"}, + {file = "markupsafe-3.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1ba88449deb3de88bd40044603fafffb7bc2b055d626a330323a9ed736661695"}, + {file = "markupsafe-3.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f42d0984e947b8adf7dd6dde396e720934d12c506ce84eea8476409563607591"}, + {file = "markupsafe-3.0.3-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c0c0b3ade1c0b13b936d7970b1d37a57acde9199dc2aecc4c336773e1d86049c"}, + {file = "markupsafe-3.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f"}, + {file = "markupsafe-3.0.3-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:d2ee202e79d8ed691ceebae8e0486bd9a2cd4794cec4824e1c99b6f5009502f6"}, + {file = "markupsafe-3.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:177b5253b2834fe3678cb4a5f0059808258584c559193998be2601324fdeafb1"}, + {file = "markupsafe-3.0.3-cp310-cp310-win32.whl", hash = "sha256:2a15a08b17dd94c53a1da0438822d70ebcd13f8c3a95abe3a9ef9f11a94830aa"}, + {file = "markupsafe-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:c4ffb7ebf07cfe8931028e3e4c85f0357459a3f9f9490886198848f4fa002ec8"}, + {file = "markupsafe-3.0.3-cp310-cp310-win_arm64.whl", hash = "sha256:e2103a929dfa2fcaf9bb4e7c091983a49c9ac3b19c9061b6d5427dd7d14d81a1"}, + {file = "markupsafe-3.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad"}, + {file = "markupsafe-3.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a"}, + {file = "markupsafe-3.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50"}, + {file = "markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bf2a864d67e76e5c9a34dc26ec616a66b9888e25e7b9460e1c76d3293bd9dbf"}, + {file = "markupsafe-3.0.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc51efed119bc9cfdf792cdeaa4d67e8f6fcccab66ed4bfdd6bde3e59bfcbb2f"}, + {file = "markupsafe-3.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:068f375c472b3e7acbe2d5318dea141359e6900156b5b2ba06a30b169086b91a"}, + {file = "markupsafe-3.0.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:7be7b61bb172e1ed687f1754f8e7484f1c8019780f6f6b0786e76bb01c2ae115"}, + {file = "markupsafe-3.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a"}, + {file = "markupsafe-3.0.3-cp311-cp311-win32.whl", hash = "sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19"}, + {file = "markupsafe-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01"}, + {file = "markupsafe-3.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c"}, + {file = "markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e"}, + {file = "markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce"}, + {file = "markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d"}, + {file = "markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d"}, + {file = "markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a"}, + {file = "markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b"}, + {file = "markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f"}, + {file = "markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b"}, + {file = "markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d"}, + {file = "markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c"}, + {file = "markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f"}, + {file = "markupsafe-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795"}, + {file = "markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219"}, + {file = "markupsafe-3.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6"}, + {file = "markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676"}, + {file = "markupsafe-3.0.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9"}, + {file = "markupsafe-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1"}, + {file = "markupsafe-3.0.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc"}, + {file = "markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12"}, + {file = "markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed"}, + {file = "markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5"}, + {file = "markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485"}, + {file = "markupsafe-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73"}, + {file = "markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37"}, + {file = "markupsafe-3.0.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19"}, + {file = "markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025"}, + {file = "markupsafe-3.0.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6"}, + {file = "markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f"}, + {file = "markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb"}, + {file = "markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009"}, + {file = "markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354"}, + {file = "markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218"}, + {file = "markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287"}, + {file = "markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe"}, + {file = "markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026"}, + {file = "markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737"}, + {file = "markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97"}, + {file = "markupsafe-3.0.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d"}, + {file = "markupsafe-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda"}, + {file = "markupsafe-3.0.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf"}, + {file = "markupsafe-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe"}, + {file = "markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9"}, + {file = "markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581"}, + {file = "markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4"}, + {file = "markupsafe-3.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab"}, + {file = "markupsafe-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175"}, + {file = "markupsafe-3.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634"}, + {file = "markupsafe-3.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50"}, + {file = "markupsafe-3.0.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e"}, + {file = "markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5"}, + {file = "markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523"}, + {file = "markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc"}, + {file = "markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d"}, + {file = "markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9"}, + {file = "markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa"}, + {file = "markupsafe-3.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:15d939a21d546304880945ca1ecb8a039db6b4dc49b2c5a400387cdae6a62e26"}, + {file = "markupsafe-3.0.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f71a396b3bf33ecaa1626c255855702aca4d3d9fea5e051b41ac59a9c1c41edc"}, + {file = "markupsafe-3.0.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0f4b68347f8c5eab4a13419215bdfd7f8c9b19f2b25520968adfad23eb0ce60c"}, + {file = "markupsafe-3.0.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e8fc20152abba6b83724d7ff268c249fa196d8259ff481f3b1476383f8f24e42"}, + {file = "markupsafe-3.0.3-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:949b8d66bc381ee8b007cd945914c721d9aba8e27f71959d750a46f7c282b20b"}, + {file = "markupsafe-3.0.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:3537e01efc9d4dccdf77221fb1cb3b8e1a38d5428920e0657ce299b20324d758"}, + {file = "markupsafe-3.0.3-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:591ae9f2a647529ca990bc681daebdd52c8791ff06c2bfa05b65163e28102ef2"}, + {file = "markupsafe-3.0.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a320721ab5a1aba0a233739394eb907f8c8da5c98c9181d1161e77a0c8e36f2d"}, + {file = "markupsafe-3.0.3-cp39-cp39-win32.whl", hash = "sha256:df2449253ef108a379b8b5d6b43f4b1a8e81a061d6537becd5582fba5f9196d7"}, + {file = "markupsafe-3.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:7c3fb7d25180895632e5d3148dbdc29ea38ccb7fd210aa27acbd1201a1902c6e"}, + {file = "markupsafe-3.0.3-cp39-cp39-win_arm64.whl", hash = "sha256:38664109c14ffc9e7437e86b4dceb442b0096dfe3541d7864d9cbe1da4cf36c8"}, + {file = "markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698"}, +] + +[[package]] +name = "matplotlib" +version = "3.11.1" +description = "Python plotting package" +optional = false +python-versions = ">=3.11" +groups = ["main"] +files = [ + {file = "matplotlib-3.11.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:b7cf158e7add54a8d51ac9b5a84abd6d4e13ed4951b4f25f1c5139f41c2addb2"}, + {file = "matplotlib-3.11.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d2ace7273b9a5061a3b420918a16fae1f2dc5dfee1abcc13aba71b5d94b1820c"}, + {file = "matplotlib-3.11.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:aee55e9041211bf84302ab55ec3965df18dd90ae19f8b58332a7feaf208bfe83"}, + {file = "matplotlib-3.11.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96f4bdeea33a8d15a071dbfe6d119451b1d719c733ac666d65357082901a9099"}, + {file = "matplotlib-3.11.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b4c78ceb2f11bcac7389d305cda17aeb1f4586a857854ab5780bd3dd8dbfc407"}, + {file = "matplotlib-3.11.1-cp311-cp311-win_amd64.whl", hash = "sha256:7f33a781e12b1e53b278deb2f5373c2e55ec4f10727be3440c0cfb5cda9f944f"}, + {file = "matplotlib-3.11.1-cp311-cp311-win_arm64.whl", hash = "sha256:67e4c3cd578c65ebd81bdc09a1b6592ceafee6dfafe116dc85dfcb647b5bbb18"}, + {file = "matplotlib-3.11.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e15ef41507f3d525f46154ac9e3ae785dacde9f20e593a25de8986267892ef74"}, + {file = "matplotlib-3.11.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:21a67b961a6d597bca54fae826cd20695ba4a6e4d05424a08da6e13e3176fd6b"}, + {file = "matplotlib-3.11.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ba8f811b8ddfac493734d6af0b2dff96919d0c28ca0d641858dab4262777c6ea"}, + {file = "matplotlib-3.11.1-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c52f7ad20ef476806ed212380b1d54d20310c8b86bdc2c9a68b51f0024a44472"}, + {file = "matplotlib-3.11.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8b14eb22961fe865efb0e4ff167e333e428908b00115a8d800ccb65ee108e481"}, + {file = "matplotlib-3.11.1-cp312-cp312-win_amd64.whl", hash = "sha256:88a2a27dd9691ae448dfae4b26f59036be90c3c28757edd3553a29559d00859f"}, + {file = "matplotlib-3.11.1-cp312-cp312-win_arm64.whl", hash = "sha256:480194afceca4df2f137c2721227d3cba67121fbf4397b69cee7f83714b0a58a"}, + {file = "matplotlib-3.11.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6771b0cd7838c6a857a7209814158c0ad09bfef878db3033dd82d70ad101f191"}, + {file = "matplotlib-3.11.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2abdee5ffa2fe11b2d19f7a5c63b785fb7c28cc46c7bc1814156341d9d1a33e1"}, + {file = "matplotlib-3.11.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b0a19dcf73406d3746d25a5ed42d713604c9a3e024d129b102852b0d941cb9f3"}, + {file = "matplotlib-3.11.1-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7389b77ed2ab0552f46d9a90b81b7b8e6dfcdc42adc36c37a0865799843e0e3e"}, + {file = "matplotlib-3.11.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c90be0b73568da4f662afac580956a76e308437e641b4a45aa08925eeb67d95f"}, + {file = "matplotlib-3.11.1-cp313-cp313-win_amd64.whl", hash = "sha256:68408341f2312836fbbdf6b3c78047f65b2d8752f5fd221c3e72d348f5b34f8b"}, + {file = "matplotlib-3.11.1-cp313-cp313-win_arm64.whl", hash = "sha256:0c1f44890d435c1b4ef52f701ad5828cb450ea97bcc83918fda6be74965d6cd2"}, + {file = "matplotlib-3.11.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:5e510088c27a89d53580a752f959146893563e63c330e161d159b0fee652af6f"}, + {file = "matplotlib-3.11.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:1524e2bdd48a93557aa47ddcfe9c225dfdd57d5a01a5c49128c20f0632980ee1"}, + {file = "matplotlib-3.11.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:11664c551345553db92e61cae6cf1376f138f8c47cafdf13b64b18f3e3e9e464"}, + {file = "matplotlib-3.11.1-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5e1f8922ba31959cf6a9dfb51be64b7f7bc582801a3957dc0c2f3afcd3537adf"}, + {file = "matplotlib-3.11.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:83235693abde86e5e0129998f80ee39fc7f58e6d56a88fafb28a9278833e9d5f"}, + {file = "matplotlib-3.11.1-cp313-cp313t-win_amd64.whl", hash = "sha256:9a076f4fc5cdc43fdf510f5981418d25c2db4973418d9f22d8bb3dc8045ada78"}, + {file = "matplotlib-3.11.1-cp313-cp313t-win_arm64.whl", hash = "sha256:216fbb93a74add02ddb4cb38ef5348f59ac00b3e84567eaf16598772d40e150a"}, + {file = "matplotlib-3.11.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:30c492d4ba9448595b6fd8708c6725963f8148e25c0d8842948da5b05f0ee8d3"}, + {file = "matplotlib-3.11.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ac104be2768ffdd8655db9e71b768cbb45f2b9aa7b450cf1595e8f65d3822319"}, + {file = "matplotlib-3.11.1-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6be943cb68bc6660ead58c55b3aa6366cba2ef7feb06460fbcce32360376f19f"}, + {file = "matplotlib-3.11.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5af0dcda57d471440a7b5b623e70e0a61003518443d9098f211a96ecfbbc25be"}, + {file = "matplotlib-3.11.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:3d3fd84082b1afbd9398466c81309e20045be20d48fe0fb18c43504d164cbbb2"}, + {file = "matplotlib-3.11.1-cp314-cp314-win_amd64.whl", hash = "sha256:9601a1e90be21e4884c53b4f3dc3ee0544654946f9975258d691f1c2e2f119c6"}, + {file = "matplotlib-3.11.1-cp314-cp314-win_arm64.whl", hash = "sha256:ae30c6109848ac0f9fa36c5d6270938487614c47ba31860bd5361266dabc5685"}, + {file = "matplotlib-3.11.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:dadfe80797174e2984aae3be0b77594a3c72d2c0a40fbd4a0de48d2728caf3ae"}, + {file = "matplotlib-3.11.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:89b193b255f4f6f7948dbcee3691f4f341ab05d9a8874a67b45ddb4182922eda"}, + {file = "matplotlib-3.11.1-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:191163532cdefcb1571ca38a6d7e6474baccde64495783e6ba47aa07ec4b9bbb"}, + {file = "matplotlib-3.11.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9fdf1c818ab05d0e74002091ddaf414478a3a449ec9d51c8976d45be7e3a01e2"}, + {file = "matplotlib-3.11.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:b937b9dba5f5f6c1e31c47abe2186c865c0914fd18f2ce0dfc39c9adcef5951d"}, + {file = "matplotlib-3.11.1-cp314-cp314t-win_amd64.whl", hash = "sha256:f2912f647f3fbe1ccf085f91e213936f9101bead81a5e670565b1f1b3712f4fb"}, + {file = "matplotlib-3.11.1-cp314-cp314t-win_arm64.whl", hash = "sha256:54d47b8ae8b579633a3902ca5b4ad6c1e132a5626d64447b2e22a66394e79987"}, + {file = "matplotlib-3.11.1-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:427258425f9a3fc4ed79a91f9e9b9aaf5a82cb6571e85dc14063cc6fbb993741"}, + {file = "matplotlib-3.11.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:1ac697e591c11b6ad04679a73c2d2f9980fe9d9f0311fb414a2e329706343dfb"}, + {file = "matplotlib-3.11.1-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e4b9ac2f1f607ecda2af90a5232beee2af7582fce1cc30c4b6a1b012dc21ee99"}, + {file = "matplotlib-3.11.1.tar.gz", hash = "sha256:69647db5746941c793d6e445a4cd349323ffb87d9cc958c2ad84a659b4832d30"}, ] +[package.dependencies] +contourpy = ">=1.0.1" +cycler = ">=0.10" +fonttools = ">=4.28.2" +kiwisolver = ">=1.3.1" +numpy = ">=1.25" +packaging = ">=20.0" +pillow = ">=9" +pyparsing = ">=3" +python-dateutil = ">=2.7" + [[package]] name = "matplotlib-inline" -version = "0.1.7" +version = "0.2.2" description = "Inline Matplotlib backend for Jupyter" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" groups = ["main"] files = [ - {file = "matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca"}, - {file = "matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90"}, + {file = "matplotlib_inline-0.2.2-py3-none-any.whl", hash = "sha256:3c821cf1c209f59fb2d2d64abbf5b23b67bcb2210d663f9918dd851c6da1fcf6"}, + {file = "matplotlib_inline-0.2.2.tar.gz", hash = "sha256:72f3fe8fce36b70d4a5b612f899090cd0401deddc4ea90e1572b9f4bfb058c79"}, ] [package.dependencies] traitlets = "*" +[package.extras] +test = ["flake8", "matplotlib", "nbdime", "nbval", "notebook", "pytest"] + [[package]] name = "mdurl" version = "0.1.2" @@ -544,28 +1018,29 @@ files = [ [[package]] name = "narwhals" -version = "1.44.0" +version = "2.24.0" description = "Extremely lightweight compatibility layer between dataframe libraries" optional = false -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] files = [ - {file = "narwhals-1.44.0-py3-none-any.whl", hash = "sha256:a170ea0bab4cf1f323d9f8bf17f2d7042c3d73802bea321996b39bf075d57de5"}, - {file = "narwhals-1.44.0.tar.gz", hash = "sha256:8cf0616d4f6f21225b3b56fcde96ccab6d05023561a0f162402aa9b8c33ad31d"}, + {file = "narwhals-2.24.0-py3-none-any.whl", hash = "sha256:42fdedf44e5b2ca7505630d45b4ac3058f38d8485cba9fe1652ca23152df7489"}, + {file = "narwhals-2.24.0.tar.gz", hash = "sha256:b5c0f684ccd9d7475b564111e319a4964abcf2baf79d3cf6b1003d06ac9b828d"}, ] [package.extras] -cudf = ["cudf (>=24.10.0)"] +cudf = ["cudf-cu12 (>=24.10.0) ; sys_platform == \"linux\""] dask = ["dask[dataframe] (>=2024.8)"] -duckdb = ["duckdb (>=1.0)"] -ibis = ["ibis-framework (>=6.0.0)", "packaging", "pyarrow-hotfix", "rich"] -modin = ["modin"] -pandas = ["pandas (>=1.1.3)"] -polars = ["polars (>=0.20.3)"] -pyarrow = ["pyarrow (>=11.0.0)"] +duckdb = ["duckdb (>=1.1)"] +ibis = ["ibis-framework (>=6.0.0)", "packaging (>=21.3)", "pyarrow-hotfix (>=0.7)"] +modin = ["modin (>=0.22.0)"] +pandas = ["pandas (>=1.3.4)"] +polars = ["polars (>=0.20.4)"] +pyarrow = ["pyarrow (>=13.0.0)"] pyspark = ["pyspark (>=3.5.0)"] pyspark-connect = ["pyspark[connect] (>=3.5.0)"] -sqlframe = ["sqlframe (>=3.22.0)"] +sql = ["narwhals[duckdb]", "sqlparse (>=0.5.5)"] +sqlframe = ["sqlframe (>=3.22.0,!=3.39.3)"] [[package]] name = "nest-asyncio" @@ -581,63 +1056,78 @@ files = [ [[package]] name = "numpy" -version = "2.3.1" +version = "2.5.2" description = "Fundamental package for array computing in Python" optional = false -python-versions = ">=3.11" +python-versions = ">=3.12" groups = ["main"] files = [ - {file = "numpy-2.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6ea9e48336a402551f52cd8f593343699003d2353daa4b72ce8d34f66b722070"}, - {file = "numpy-2.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5ccb7336eaf0e77c1635b232c141846493a588ec9ea777a7c24d7166bb8533ae"}, - {file = "numpy-2.3.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:0bb3a4a61e1d327e035275d2a993c96fa786e4913aa089843e6a2d9dd205c66a"}, - {file = "numpy-2.3.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:e344eb79dab01f1e838ebb67aab09965fb271d6da6b00adda26328ac27d4a66e"}, - {file = "numpy-2.3.1-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:467db865b392168ceb1ef1ffa6f5a86e62468c43e0cfb4ab6da667ede10e58db"}, - {file = "numpy-2.3.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:afed2ce4a84f6b0fc6c1ce734ff368cbf5a5e24e8954a338f3bdffa0718adffb"}, - {file = "numpy-2.3.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0025048b3c1557a20bc80d06fdeb8cc7fc193721484cca82b2cfa072fec71a93"}, - {file = "numpy-2.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a5ee121b60aa509679b682819c602579e1df14a5b07fe95671c8849aad8f2115"}, - {file = "numpy-2.3.1-cp311-cp311-win32.whl", hash = "sha256:a8b740f5579ae4585831b3cf0e3b0425c667274f82a484866d2adf9570539369"}, - {file = "numpy-2.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:d4580adadc53311b163444f877e0789f1c8861e2698f6b2a4ca852fda154f3ff"}, - {file = "numpy-2.3.1-cp311-cp311-win_arm64.whl", hash = "sha256:ec0bdafa906f95adc9a0c6f26a4871fa753f25caaa0e032578a30457bff0af6a"}, - {file = "numpy-2.3.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2959d8f268f3d8ee402b04a9ec4bb7604555aeacf78b360dc4ec27f1d508177d"}, - {file = "numpy-2.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:762e0c0c6b56bdedfef9a8e1d4538556438288c4276901ea008ae44091954e29"}, - {file = "numpy-2.3.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:867ef172a0976aaa1f1d1b63cf2090de8b636a7674607d514505fb7276ab08fc"}, - {file = "numpy-2.3.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:4e602e1b8682c2b833af89ba641ad4176053aaa50f5cacda1a27004352dde943"}, - {file = "numpy-2.3.1-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:8e333040d069eba1652fb08962ec5b76af7f2c7bce1df7e1418c8055cf776f25"}, - {file = "numpy-2.3.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:e7cbf5a5eafd8d230a3ce356d892512185230e4781a361229bd902ff403bc660"}, - {file = "numpy-2.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5f1b8f26d1086835f442286c1d9b64bb3974b0b1e41bb105358fd07d20872952"}, - {file = "numpy-2.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ee8340cb48c9b7a5899d1149eece41ca535513a9698098edbade2a8e7a84da77"}, - {file = "numpy-2.3.1-cp312-cp312-win32.whl", hash = "sha256:e772dda20a6002ef7061713dc1e2585bc1b534e7909b2030b5a46dae8ff077ab"}, - {file = "numpy-2.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:cfecc7822543abdea6de08758091da655ea2210b8ffa1faf116b940693d3df76"}, - {file = "numpy-2.3.1-cp312-cp312-win_arm64.whl", hash = "sha256:7be91b2239af2658653c5bb6f1b8bccafaf08226a258caf78ce44710a0160d30"}, - {file = "numpy-2.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:25a1992b0a3fdcdaec9f552ef10d8103186f5397ab45e2d25f8ac51b1a6b97e8"}, - {file = "numpy-2.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7dea630156d39b02a63c18f508f85010230409db5b2927ba59c8ba4ab3e8272e"}, - {file = "numpy-2.3.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:bada6058dd886061f10ea15f230ccf7dfff40572e99fef440a4a857c8728c9c0"}, - {file = "numpy-2.3.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:a894f3816eb17b29e4783e5873f92faf55b710c2519e5c351767c51f79d8526d"}, - {file = "numpy-2.3.1-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:18703df6c4a4fee55fd3d6e5a253d01c5d33a295409b03fda0c86b3ca2ff41a1"}, - {file = "numpy-2.3.1-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:5902660491bd7a48b2ec16c23ccb9124b8abfd9583c5fdfa123fe6b421e03de1"}, - {file = "numpy-2.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:36890eb9e9d2081137bd78d29050ba63b8dab95dff7912eadf1185e80074b2a0"}, - {file = "numpy-2.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a780033466159c2270531e2b8ac063704592a0bc62ec4a1b991c7c40705eb0e8"}, - {file = "numpy-2.3.1-cp313-cp313-win32.whl", hash = "sha256:39bff12c076812595c3a306f22bfe49919c5513aa1e0e70fac756a0be7c2a2b8"}, - {file = "numpy-2.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:8d5ee6eec45f08ce507a6570e06f2f879b374a552087a4179ea7838edbcbfa42"}, - {file = "numpy-2.3.1-cp313-cp313-win_arm64.whl", hash = "sha256:0c4d9e0a8368db90f93bd192bfa771ace63137c3488d198ee21dfb8e7771916e"}, - {file = "numpy-2.3.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:b0b5397374f32ec0649dd98c652a1798192042e715df918c20672c62fb52d4b8"}, - {file = "numpy-2.3.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:c5bdf2015ccfcee8253fb8be695516ac4457c743473a43290fd36eba6a1777eb"}, - {file = "numpy-2.3.1-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:d70f20df7f08b90a2062c1f07737dd340adccf2068d0f1b9b3d56e2038979fee"}, - {file = "numpy-2.3.1-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:2fb86b7e58f9ac50e1e9dd1290154107e47d1eef23a0ae9145ded06ea606f992"}, - {file = "numpy-2.3.1-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:23ab05b2d241f76cb883ce8b9a93a680752fbfcbd51c50eff0b88b979e471d8c"}, - {file = "numpy-2.3.1-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:ce2ce9e5de4703a673e705183f64fd5da5bf36e7beddcb63a25ee2286e71ca48"}, - {file = "numpy-2.3.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c4913079974eeb5c16ccfd2b1f09354b8fed7e0d6f2cab933104a09a6419b1ee"}, - {file = "numpy-2.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:010ce9b4f00d5c036053ca684c77441f2f2c934fd23bee058b4d6f196efd8280"}, - {file = "numpy-2.3.1-cp313-cp313t-win32.whl", hash = "sha256:6269b9edfe32912584ec496d91b00b6d34282ca1d07eb10e82dfc780907d6c2e"}, - {file = "numpy-2.3.1-cp313-cp313t-win_amd64.whl", hash = "sha256:2a809637460e88a113e186e87f228d74ae2852a2e0c44de275263376f17b5bdc"}, - {file = "numpy-2.3.1-cp313-cp313t-win_arm64.whl", hash = "sha256:eccb9a159db9aed60800187bc47a6d3451553f0e1b08b068d8b277ddfbb9b244"}, - {file = "numpy-2.3.1-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:ad506d4b09e684394c42c966ec1527f6ebc25da7f4da4b1b056606ffe446b8a3"}, - {file = "numpy-2.3.1-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:ebb8603d45bc86bbd5edb0d63e52c5fd9e7945d3a503b77e486bd88dde67a19b"}, - {file = "numpy-2.3.1-pp311-pypy311_pp73-macosx_14_0_x86_64.whl", hash = "sha256:15aa4c392ac396e2ad3d0a2680c0f0dee420f9fed14eef09bdb9450ee6dcb7b7"}, - {file = "numpy-2.3.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c6e0bf9d1a2f50d2b65a7cf56db37c095af17b59f6c132396f7c6d5dd76484df"}, - {file = "numpy-2.3.1-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:eabd7e8740d494ce2b4ea0ff05afa1b7b291e978c0ae075487c51e8bd93c0c68"}, - {file = "numpy-2.3.1-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:e610832418a2bc09d974cc9fecebfa51e9532d6190223bc5ef6a7402ebf3b5cb"}, - {file = "numpy-2.3.1.tar.gz", hash = "sha256:1ec9ae20a4226da374362cca3c62cd753faf2f951440b0e3b98e93c235441d2b"}, + {file = "numpy-2.5.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:14e373cfc6387177e8409dac3c7159be8eb05cd77096cd7c950268b86f62831c"}, + {file = "numpy-2.5.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4bbd96c833ecc8cc069ce518078fc8c60cb9cbfb0fea5b7a803ad65035596d03"}, + {file = "numpy-2.5.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:6e8172ddfcf5cf74b811d372b570b83c60bd2de87a6fbfbebdadb4a9bd9c6cbb"}, + {file = "numpy-2.5.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:65f188481f1669e26f62b701e8205d19e460fa4a9b52a1414ba382330e4a3414"}, + {file = "numpy-2.5.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8ee9c4eeb8454b3660a8b53493563c3e121c2fc94fbd72b848ef814ed7b676a9"}, + {file = "numpy-2.5.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3cdec01fa790a186d430433fdd4d4ffb70eed6f0eeb4bf05c8dbe2dce0a9bcb8"}, + {file = "numpy-2.5.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7999d4ddb0c4025018373fd787510d46e04c769467af22869707b3c1cfd459ab"}, + {file = "numpy-2.5.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c1f017dc0875c9209d219f97feceb7d54c2661bb243deb4114478e1295808af7"}, + {file = "numpy-2.5.2-cp312-cp312-win32.whl", hash = "sha256:d6a48072864e3324e194a8fbb3c657bcc5b5c869dbc64c9537b1d5c862572c0a"}, + {file = "numpy-2.5.2-cp312-cp312-win_amd64.whl", hash = "sha256:28ac63476ec7651484215ee7fa15a1f78b57c14621f01e392afe17b9a1390ce4"}, + {file = "numpy-2.5.2-cp312-cp312-win_arm64.whl", hash = "sha256:27650bb0e7140fa3d37b9923b4803645e0b125d190f326eecfd3f4dad8e8ade1"}, + {file = "numpy-2.5.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8e4cb9a754c8a0c62eaa88273a5fba3391f4a610d1dee893c0755da31c083f15"}, + {file = "numpy-2.5.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:52c808f96484f5571a5cc863775ce50247c17dfb3b0361f8ed6b4b0456f80080"}, + {file = "numpy-2.5.2-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:29d81e97f668489cba8ebfd796b9bdd453525d35dd9e162e2daec94bf3fc7740"}, + {file = "numpy-2.5.2-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:afb3f0632d6b2e3ba04dbce8d1e48d321b369138b73830b5ca371a0e8d479d56"}, + {file = "numpy-2.5.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0aadf13b60048d501e05fa699efaf7734e2494f3498a4c2a5521d822640324f3"}, + {file = "numpy-2.5.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:29b86ff8a6cc556b47ec6b64b194815cc80e6bf5eedcc6cddfd65318cb0b4eee"}, + {file = "numpy-2.5.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6950c4b7dd562453090548ba7f5da7e59f57f85663f15d5dcc60e249192f7e59"}, + {file = "numpy-2.5.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b9727f472d2f3888053b8a75ab0cb94745a9de224bb5846dbadc0092101bc71d"}, + {file = "numpy-2.5.2-cp313-cp313-win32.whl", hash = "sha256:4f9744f9fbdcea0bc552e8f19e1f141f811a3f9bc2be2cc6e86d982cab23e3f4"}, + {file = "numpy-2.5.2-cp313-cp313-win_amd64.whl", hash = "sha256:85aaccb24182c25df891ad0ec333585967e115269d5f1b17f2c9ae005bc96657"}, + {file = "numpy-2.5.2-cp313-cp313-win_arm64.whl", hash = "sha256:bd68ece1553d2023c09a4226d9e41c586ad2d20594d1a456186c33513d2cb3f2"}, + {file = "numpy-2.5.2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:d787cf769c3baeb5f6235e778edb52c08dfa923789b5958f28e6450f96107cb1"}, + {file = "numpy-2.5.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:24b9dc2e3d84aa58523798805194e23e736f3f6ce2d1a5b92583ae734e6dbda8"}, + {file = "numpy-2.5.2-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:9e9413326d726c2545bfa65d2c0876871e8d8386e77f992c1d426e180bbd4323"}, + {file = "numpy-2.5.2-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:60e902ac295855348a5ca2ea4c89108989a9f5fddfad3dfc0a8f36b10358567e"}, + {file = "numpy-2.5.2-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:50e500dc868e9313530ce12ba470fe50ff3afe3d62993ed6eff652dacd555b65"}, + {file = "numpy-2.5.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:318b9a4c845dbea06708a29c84ee429cc3065048db34cdb799047643492050ee"}, + {file = "numpy-2.5.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:34c319e2963be042673fb46570501b2f06c41924e17e3563d58646b4380dfb68"}, + {file = "numpy-2.5.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f06571a052127dc1b4e8b83029b4d1b20daa2b64a31cdd181fc6bc774e9000eb"}, + {file = "numpy-2.5.2-cp314-cp314-win32.whl", hash = "sha256:2cc779226e476d1e1f08c74068c419e60f41a9e0e069c92f6671d31d5c985e98"}, + {file = "numpy-2.5.2-cp314-cp314-win_amd64.whl", hash = "sha256:7587f53dfbd5edc0f7b87c6217b4c6d2d1f2ef9c3da70bc1315e7db5f8d7ec9d"}, + {file = "numpy-2.5.2-cp314-cp314-win_arm64.whl", hash = "sha256:3e4c367352d3747784248a227fbec218e193b56f7e6692e3b64fc805478ecfdf"}, + {file = "numpy-2.5.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:b879fb674276e331513fb136b78dbc6bd3c848309e0d841cfd63be3896c4cfc1"}, + {file = "numpy-2.5.2-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:fd0d703772bba096843785bd38371e31bb4a0c1151497ad5739d182114a73f7f"}, + {file = "numpy-2.5.2-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:3a2f061cebd9e3d23bdcfaaded5e2293a4c6a5b60fa42df85d410a725ce621bf"}, + {file = "numpy-2.5.2-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6df895598c0edcb41030126c89e0f353b07d93238116143b7405e937359736c4"}, + {file = "numpy-2.5.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1ab3d4a901f844ea836c3e80bf463c6a27d7f3c14e8e292fcf28d348b25b9bce"}, + {file = "numpy-2.5.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:cebc2d6dbb605a7703d59751dea4bd6b0ab127a5a4338a6f432df1936fef8b26"}, + {file = "numpy-2.5.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:eaca7ff36f0f52e2111ec71f169d8fd3e889e7ddc0d2592e0d703fd8d3ce8fac"}, + {file = "numpy-2.5.2-cp314-cp314t-win32.whl", hash = "sha256:ddf47472af2e4280d79bac82304f5e80150211f1b9e614b760061d5fdfbb6eba"}, + {file = "numpy-2.5.2-cp314-cp314t-win_amd64.whl", hash = "sha256:44ef9675d908e65f9953063837c3277730f3f4437615a4cdab67b366cabaf884"}, + {file = "numpy-2.5.2-cp314-cp314t-win_arm64.whl", hash = "sha256:eaa088384c46f519dacb93b7ec483a6d6b19a4a2085ae4f25ab9b1c43d387d1e"}, + {file = "numpy-2.5.2-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:078f9b027b478c9379b9677babbf0f8b8f1ecfada27636d7b9a93990c638739f"}, + {file = "numpy-2.5.2-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:50a68f4bacd8a2b33d8da3d2269d0d78500f86ea582e4786dc10f5ef2c2c6842"}, + {file = "numpy-2.5.2-cp315-cp315-macosx_14_0_arm64.whl", hash = "sha256:e79aba74ffaf5f78a050d777c184cddf8fdffabab38acf5f3ef1fecbc17895d6"}, + {file = "numpy-2.5.2-cp315-cp315-macosx_14_0_x86_64.whl", hash = "sha256:9a0731745a72a184490a582fb4af2533512bd071ace67785b5fdffc0ae58dce8"}, + {file = "numpy-2.5.2-cp315-cp315-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4ec954036759bcee3aa484f8603bd9c14f3e776293b85578b8734c2d72777c69"}, + {file = "numpy-2.5.2-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dc649493697006bc90614a5f0bbc8cb3cb1866715c474e473694968d7e6b99ab"}, + {file = "numpy-2.5.2-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:cf7de32f486e4ac9e2d93b810f9e9ac72a728dd46a32a0bb403222f27f653514"}, + {file = "numpy-2.5.2-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:2ffa7bacab3e2ee1b19ed31766bb60bb380b68c23f051e199c5cc598afd68710"}, + {file = "numpy-2.5.2-cp315-cp315-win32.whl", hash = "sha256:6b588cc8f902d6bff201c19fd00c43ab8545671e3554d014e12e14139e5e8617"}, + {file = "numpy-2.5.2-cp315-cp315-win_amd64.whl", hash = "sha256:07d4e89f3a9ab0a9ba24264ccdb642b3dd951b2281e8883a5481a4aa79cc31a7"}, + {file = "numpy-2.5.2-cp315-cp315-win_arm64.whl", hash = "sha256:a610dc7e3c52edd39c2bc2375ff9c3fd59cb3ad00e4472d36f83bc1457145788"}, + {file = "numpy-2.5.2-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:40f4d451aed46a8046a1aae41c4e55fb3612273df9c502480135e1501576a34b"}, + {file = "numpy-2.5.2-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:c081cbe16ba1ab53078e5ff29013621e33c509eedab055775d956427712c236e"}, + {file = "numpy-2.5.2-cp315-cp315t-macosx_14_0_arm64.whl", hash = "sha256:0090ccdd57ec2703e9b49d0bf554767370581c1dd0a6b2bb2b2d9def317d042a"}, + {file = "numpy-2.5.2-cp315-cp315t-macosx_14_0_x86_64.whl", hash = "sha256:6a9bb119fb8dd21ba30b3f0e555b7e2b081bd9883af21ec9c1c633d161cda3a8"}, + {file = "numpy-2.5.2-cp315-cp315t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a839318485284a6fb31be4f8f2c91c8f2cb22f4543c4a8903f12b0671ffe07cc"}, + {file = "numpy-2.5.2-cp315-cp315t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba0a474801b8dc67b66bf465548abc90e82b44d2611b5770f33008dcabffe8ec"}, + {file = "numpy-2.5.2-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:0a4035ae1129ff8777f08bfbd44f1e5d8e9c049ce0c2dd78fc0d92c13e7251c0"}, + {file = "numpy-2.5.2-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:77843ca236b777e67f8d6b3660ea116e499612703a0ecd7093f316201eb9d8e2"}, + {file = "numpy-2.5.2-cp315-cp315t-win32.whl", hash = "sha256:7354826bc6f8f69402e9b7fe28d15fcd34feebd74f856f111585c5b0c9fb0251"}, + {file = "numpy-2.5.2-cp315-cp315t-win_amd64.whl", hash = "sha256:e5651f3f87add730ee6608d915009e19c911fba0cb000c7e3ea994b7d768eb12"}, + {file = "numpy-2.5.2-cp315-cp315t-win_arm64.whl", hash = "sha256:5f8e00be2ec6f45f4e8a41a527f68d44a7d96fee92a650e4d8b1326f77f61e6e"}, + {file = "numpy-2.5.2.tar.gz", hash = "sha256:d482d171c406ae88c5b19cad3b6a1c4c5209f886ab74bc44c2c865c23f52d860"}, ] [[package]] @@ -657,66 +1147,79 @@ et-xmlfile = "*" [[package]] name = "packaging" -version = "25.0" +version = "26.3" description = "Core utilities for Python packages" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" groups = ["main"] files = [ - {file = "packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484"}, - {file = "packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f"}, + {file = "packaging-26.3-py3-none-any.whl", hash = "sha256:d7193f7c8e4e93f444fde0262bf90af30e16fa0ad0ad44cb553c87339b23cd1c"}, + {file = "packaging-26.3.tar.gz", hash = "sha256:94edc256424af38762eb31306eed28beb9f0efc50a8837492c9d6fd6004aed79"}, ] [[package]] name = "pandas" -version = "2.3.0" +version = "2.3.3" description = "Powerful data structures for data analysis, time series, and statistics" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "pandas-2.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:625466edd01d43b75b1883a64d859168e4556261a5035b32f9d743b67ef44634"}, - {file = "pandas-2.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a6872d695c896f00df46b71648eea332279ef4077a409e2fe94220208b6bb675"}, - {file = "pandas-2.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f4dd97c19bd06bc557ad787a15b6489d2614ddaab5d104a0310eb314c724b2d2"}, - {file = "pandas-2.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:034abd6f3db8b9880aaee98f4f5d4dbec7c4829938463ec046517220b2f8574e"}, - {file = "pandas-2.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:23c2b2dc5213810208ca0b80b8666670eb4660bbfd9d45f58592cc4ddcfd62e1"}, - {file = "pandas-2.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:39ff73ec07be5e90330cc6ff5705c651ace83374189dcdcb46e6ff54b4a72cd6"}, - {file = "pandas-2.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:40cecc4ea5abd2921682b57532baea5588cc5f80f0231c624056b146887274d2"}, - {file = "pandas-2.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8adff9f138fc614347ff33812046787f7d43b3cef7c0f0171b3340cae333f6ca"}, - {file = "pandas-2.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e5f08eb9a445d07720776df6e641975665c9ea12c9d8a331e0f6890f2dcd76ef"}, - {file = "pandas-2.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fa35c266c8cd1a67d75971a1912b185b492d257092bdd2709bbdebe574ed228d"}, - {file = "pandas-2.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14a0cc77b0f089d2d2ffe3007db58f170dae9b9f54e569b299db871a3ab5bf46"}, - {file = "pandas-2.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c06f6f144ad0a1bf84699aeea7eff6068ca5c63ceb404798198af7eb86082e33"}, - {file = "pandas-2.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ed16339bc354a73e0a609df36d256672c7d296f3f767ac07257801aa064ff73c"}, - {file = "pandas-2.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:fa07e138b3f6c04addfeaf56cc7fdb96c3b68a3fe5e5401251f231fce40a0d7a"}, - {file = "pandas-2.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2eb4728a18dcd2908c7fccf74a982e241b467d178724545a48d0caf534b38ebf"}, - {file = "pandas-2.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b9d8c3187be7479ea5c3d30c32a5d73d62a621166675063b2edd21bc47614027"}, - {file = "pandas-2.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ff730713d4c4f2f1c860e36c005c7cefc1c7c80c21c0688fd605aa43c9fcf09"}, - {file = "pandas-2.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba24af48643b12ffe49b27065d3babd52702d95ab70f50e1b34f71ca703e2c0d"}, - {file = "pandas-2.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:404d681c698e3c8a40a61d0cd9412cc7364ab9a9cc6e144ae2992e11a2e77a20"}, - {file = "pandas-2.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6021910b086b3ca756755e86ddc64e0ddafd5e58e076c72cb1585162e5ad259b"}, - {file = "pandas-2.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:094e271a15b579650ebf4c5155c05dcd2a14fd4fdd72cf4854b2f7ad31ea30be"}, - {file = "pandas-2.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2c7e2fc25f89a49a11599ec1e76821322439d90820108309bf42130d2f36c983"}, - {file = "pandas-2.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c6da97aeb6a6d233fb6b17986234cc723b396b50a3c6804776351994f2a658fd"}, - {file = "pandas-2.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb32dc743b52467d488e7a7c8039b821da2826a9ba4f85b89ea95274f863280f"}, - {file = "pandas-2.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:213cd63c43263dbb522c1f8a7c9d072e25900f6975596f883f4bebd77295d4f3"}, - {file = "pandas-2.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1d2b33e68d0ce64e26a4acc2e72d747292084f4e8db4c847c6f5f6cbe56ed6d8"}, - {file = "pandas-2.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:430a63bae10b5086995db1b02694996336e5a8ac9a96b4200572b413dfdfccb9"}, - {file = "pandas-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:4930255e28ff5545e2ca404637bcc56f031893142773b3468dc021c6c32a1390"}, - {file = "pandas-2.3.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:f925f1ef673b4bd0271b1809b72b3270384f2b7d9d14a189b12b7fc02574d575"}, - {file = "pandas-2.3.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e78ad363ddb873a631e92a3c063ade1ecfb34cae71e9a2be6ad100f875ac1042"}, - {file = "pandas-2.3.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:951805d146922aed8357e4cc5671b8b0b9be1027f0619cea132a9f3f65f2f09c"}, - {file = "pandas-2.3.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a881bc1309f3fce34696d07b00f13335c41f5f5a8770a33b09ebe23261cfc67"}, - {file = "pandas-2.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:e1991bbb96f4050b09b5f811253c4f3cf05ee89a589379aa36cd623f21a31d6f"}, - {file = "pandas-2.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:bb3be958022198531eb7ec2008cfc78c5b1eed51af8600c6c5d9160d89d8d249"}, - {file = "pandas-2.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9efc0acbbffb5236fbdf0409c04edce96bec4bdaa649d49985427bd1ec73e085"}, - {file = "pandas-2.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:75651c14fde635e680496148a8526b328e09fe0572d9ae9b638648c46a544ba3"}, - {file = "pandas-2.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf5be867a0541a9fb47a4be0c5790a4bccd5b77b92f0a59eeec9375fafc2aa14"}, - {file = "pandas-2.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84141f722d45d0c2a89544dd29d35b3abfc13d2250ed7e68394eda7564bd6324"}, - {file = "pandas-2.3.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f95a2aef32614ed86216d3c450ab12a4e82084e8102e355707a1d96e33d51c34"}, - {file = "pandas-2.3.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:e0f51973ba93a9f97185049326d75b942b9aeb472bec616a129806facb129ebb"}, - {file = "pandas-2.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:b198687ca9c8529662213538a9bb1e60fa0bf0f6af89292eb68fea28743fcd5a"}, - {file = "pandas-2.3.0.tar.gz", hash = "sha256:34600ab34ebf1131a7613a260a61dbe8b62c188ec0ea4c296da7c9a06b004133"}, + {file = "pandas-2.3.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:376c6446ae31770764215a6c937f72d917f214b43560603cd60da6408f183b6c"}, + {file = "pandas-2.3.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e19d192383eab2f4ceb30b412b22ea30690c9e618f78870357ae1d682912015a"}, + {file = "pandas-2.3.3-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5caf26f64126b6c7aec964f74266f435afef1c1b13da3b0636c7518a1fa3e2b1"}, + {file = "pandas-2.3.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dd7478f1463441ae4ca7308a70e90b33470fa593429f9d4c578dd00d1fa78838"}, + {file = "pandas-2.3.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4793891684806ae50d1288c9bae9330293ab4e083ccd1c5e383c34549c6e4250"}, + {file = "pandas-2.3.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:28083c648d9a99a5dd035ec125d42439c6c1c525098c58af0fc38dd1a7a1b3d4"}, + {file = "pandas-2.3.3-cp310-cp310-win_amd64.whl", hash = "sha256:503cf027cf9940d2ceaa1a93cfb5f8c8c7e6e90720a2850378f0b3f3b1e06826"}, + {file = "pandas-2.3.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:602b8615ebcc4a0c1751e71840428ddebeb142ec02c786e8ad6b1ce3c8dec523"}, + {file = "pandas-2.3.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8fe25fc7b623b0ef6b5009149627e34d2a4657e880948ec3c840e9402e5c1b45"}, + {file = "pandas-2.3.3-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b468d3dad6ff947df92dcb32ede5b7bd41a9b3cceef0a30ed925f6d01fb8fa66"}, + {file = "pandas-2.3.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b98560e98cb334799c0b07ca7967ac361a47326e9b4e5a7dfb5ab2b1c9d35a1b"}, + {file = "pandas-2.3.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37b5848ba49824e5c30bedb9c830ab9b7751fd049bc7914533e01c65f79791"}, + {file = "pandas-2.3.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:db4301b2d1f926ae677a751eb2bd0e8c5f5319c9cb3f88b0becbbb0b07b34151"}, + {file = "pandas-2.3.3-cp311-cp311-win_amd64.whl", hash = "sha256:f086f6fe114e19d92014a1966f43a3e62285109afe874f067f5abbdcbb10e59c"}, + {file = "pandas-2.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d21f6d74eb1725c2efaa71a2bfc661a0689579b58e9c0ca58a739ff0b002b53"}, + {file = "pandas-2.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3fd2f887589c7aa868e02632612ba39acb0b8948faf5cc58f0850e165bd46f35"}, + {file = "pandas-2.3.3-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ecaf1e12bdc03c86ad4a7ea848d66c685cb6851d807a26aa245ca3d2017a1908"}, + {file = "pandas-2.3.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b3d11d2fda7eb164ef27ffc14b4fcab16a80e1ce67e9f57e19ec0afaf715ba89"}, + {file = "pandas-2.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a68e15f780eddf2b07d242e17a04aa187a7ee12b40b930bfdd78070556550e98"}, + {file = "pandas-2.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:371a4ab48e950033bcf52b6527eccb564f52dc826c02afd9a1bc0ab731bba084"}, + {file = "pandas-2.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:a16dcec078a01eeef8ee61bf64074b4e524a2a3f4b3be9326420cabe59c4778b"}, + {file = "pandas-2.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:56851a737e3470de7fa88e6131f41281ed440d29a9268dcbf0002da5ac366713"}, + {file = "pandas-2.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bdcd9d1167f4885211e401b3036c0c8d9e274eee67ea8d0758a256d60704cfe8"}, + {file = "pandas-2.3.3-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e32e7cc9af0f1cc15548288a51a3b681cc2a219faa838e995f7dc53dbab1062d"}, + {file = "pandas-2.3.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:318d77e0e42a628c04dc56bcef4b40de67918f7041c2b061af1da41dcff670ac"}, + {file = "pandas-2.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4e0a175408804d566144e170d0476b15d78458795bb18f1304fb94160cabf40c"}, + {file = "pandas-2.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:93c2d9ab0fc11822b5eece72ec9587e172f63cff87c00b062f6e37448ced4493"}, + {file = "pandas-2.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:f8bfc0e12dc78f777f323f55c58649591b2cd0c43534e8355c51d3fede5f4dee"}, + {file = "pandas-2.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:75ea25f9529fdec2d2e93a42c523962261e567d250b0013b16210e1d40d7c2e5"}, + {file = "pandas-2.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:74ecdf1d301e812db96a465a525952f4dde225fdb6d8e5a521d47e1f42041e21"}, + {file = "pandas-2.3.3-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6435cb949cb34ec11cc9860246ccb2fdc9ecd742c12d3304989017d53f039a78"}, + {file = "pandas-2.3.3-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:900f47d8f20860de523a1ac881c4c36d65efcb2eb850e6948140fa781736e110"}, + {file = "pandas-2.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a45c765238e2ed7d7c608fc5bc4a6f88b642f2f01e70c0c23d2224dd21829d86"}, + {file = "pandas-2.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c4fc4c21971a1a9f4bdb4c73978c7f7256caa3e62b323f70d6cb80db583350bc"}, + {file = "pandas-2.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:ee15f284898e7b246df8087fc82b87b01686f98ee67d85a17b7ab44143a3a9a0"}, + {file = "pandas-2.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1611aedd912e1ff81ff41c745822980c49ce4a7907537be8692c8dbc31924593"}, + {file = "pandas-2.3.3-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6d2cefc361461662ac48810cb14365a365ce864afe85ef1f447ff5a1e99ea81c"}, + {file = "pandas-2.3.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ee67acbbf05014ea6c763beb097e03cd629961c8a632075eeb34247120abcb4b"}, + {file = "pandas-2.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c46467899aaa4da076d5abc11084634e2d197e9460643dd455ac3db5856b24d6"}, + {file = "pandas-2.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6253c72c6a1d990a410bc7de641d34053364ef8bcd3126f7e7450125887dffe3"}, + {file = "pandas-2.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:1b07204a219b3b7350abaae088f451860223a52cfb8a6c53358e7948735158e5"}, + {file = "pandas-2.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:2462b1a365b6109d275250baaae7b760fd25c726aaca0054649286bcfbb3e8ec"}, + {file = "pandas-2.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0242fe9a49aa8b4d78a4fa03acb397a58833ef6199e9aa40a95f027bb3a1b6e7"}, + {file = "pandas-2.3.3-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a21d830e78df0a515db2b3d2f5570610f5e6bd2e27749770e8bb7b524b89b450"}, + {file = "pandas-2.3.3-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2e3ebdb170b5ef78f19bfb71b0dc5dc58775032361fa188e814959b74d726dd5"}, + {file = "pandas-2.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:d051c0e065b94b7a3cea50eb1ec32e912cd96dba41647eb24104b6c6c14c5788"}, + {file = "pandas-2.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:3869faf4bd07b3b66a9f462417d0ca3a9df29a9f6abd5d0d0dbab15dac7abe87"}, + {file = "pandas-2.3.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c503ba5216814e295f40711470446bc3fd00f0faea8a086cbc688808e26f92a2"}, + {file = "pandas-2.3.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a637c5cdfa04b6d6e2ecedcb81fc52ffb0fd78ce2ebccc9ea964df9f658de8c8"}, + {file = "pandas-2.3.3-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:854d00d556406bffe66a4c0802f334c9ad5a96b4f1f868adf036a21b11ef13ff"}, + {file = "pandas-2.3.3-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bf1f8a81d04ca90e32a0aceb819d34dbd378a98bf923b6398b9a3ec0bf44de29"}, + {file = "pandas-2.3.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:23ebd657a4d38268c7dfbdf089fbc31ea709d82e4923c5ffd4fbd5747133ce73"}, + {file = "pandas-2.3.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5554c929ccc317d41a5e3d1234f3be588248e61f08a74dd17c9eabb535777dc9"}, + {file = "pandas-2.3.3-cp39-cp39-win_amd64.whl", hash = "sha256:d3e28b3e83862ccf4d85ff19cf8c20b2ae7e503881711ff2d534dc8f761131aa"}, + {file = "pandas-2.3.3.tar.gz", hash = "sha256:e05e1af93b977f7eafa636d043f9f94c7ee3ac81af99c13508215942e64c993b"}, ] [package.dependencies] @@ -752,18 +1255,18 @@ xml = ["lxml (>=4.9.2)"] [[package]] name = "parso" -version = "0.8.4" +version = "0.8.7" description = "A Python Parser" optional = false python-versions = ">=3.6" groups = ["main"] files = [ - {file = "parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18"}, - {file = "parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d"}, + {file = "parso-0.8.7-py2.py3-none-any.whl", hash = "sha256:a8926eb2a1b915486941fdbd31e86a4baf88fe8c210f25f2f35ecec5b574ca1c"}, + {file = "parso-0.8.7.tar.gz", hash = "sha256:eaaac4c9fdd5e9e8852dc778d2d7405897ec510f2a298071453e5e3a07914bb1"}, ] [package.extras] -qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] +qa = ["flake8 (==5.0.4)", "types-setuptools (==67.2.0.1)", "zuban (==0.5.1)"] testing = ["docopt", "pytest"] [[package]] @@ -782,16 +1285,121 @@ files = [ [package.dependencies] ptyprocess = ">=0.5" +[[package]] +name = "pillow" +version = "12.3.0" +description = "Python Imaging Library (fork)" +optional = false +python-versions = ">=3.10" +groups = ["main"] +files = [ + {file = "pillow-12.3.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:6c0016e7b354317c4e9e525b937ac8596c38d2d232b419529b9cd7a1cd46e39a"}, + {file = "pillow-12.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:bcc33feacfaefce60c12fd500a277533bdc02b10a19f7f6d348763d8140bbba7"}, + {file = "pillow-12.3.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5594fc43d548a7ed94949d139aa1341b270f1863f11cfd37f5a6c8b778a6b67f"}, + {file = "pillow-12.3.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f0606c8bf2cdefea14a43530f7657cbbb7ecf1c4222512492ef4a4434a9501ec"}, + {file = "pillow-12.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:85f998ea1848bc6757289e739cfbdda3a04adfd58b02fc018ce54d754a5ce468"}, + {file = "pillow-12.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:25b9b82bb22e6e2b3cd07b39c68b7b862001226cb3dff7130d1cb914121b39ed"}, + {file = "pillow-12.3.0-cp310-cp310-win32.whl", hash = "sha256:37dc8f7bbb66efe481bb60defacef820c950c24713fb44962ed6aa2a50966de1"}, + {file = "pillow-12.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:300557495eb45ebb8aec96c2da9c4be642fbf7cd937278b4013ba894ea8eb0eb"}, + {file = "pillow-12.3.0-cp310-cp310-win_arm64.whl", hash = "sha256:514435a37670e3e5e08f3945b68718b6ed329bb84367777e16f9f4dfe1e61a0f"}, + {file = "pillow-12.3.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:00808c5e14ef63ac5161091d242999076604ff74b883423a11e5d7bbb38bf756"}, + {file = "pillow-12.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:37d6d0a00072fd2948eb22bce7e1475f34569d90c87c59f7a2ec59541b77f7a6"}, + {file = "pillow-12.3.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bcb46e2f9feff8d06323983bd83ed00c201fdcab3d74973e7072a889b3979fcd"}, + {file = "pillow-12.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:23d27a3e0307ec2244cc51e7287b919aa68d097504ebe19df4e76a98a3eea5bd"}, + {file = "pillow-12.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4f883547d4b7f0495ebe7056b0cc2aea76094e7a4abc8e933540f3271df27d9c"}, + {file = "pillow-12.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:236ff70b9312fb68943c703aa842ca6a758abfa45ac187a5e7c1452e96ef72b5"}, + {file = "pillow-12.3.0-cp311-cp311-win32.whl", hash = "sha256:10e41f0fbf1eec8cfd234b8fe17a4caac7c9d0db4c204d3c173a8f9f6ef3232b"}, + {file = "pillow-12.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:8e95e1385e4998ae9694eeaa4730ba5457ff61185b3a55e2e7bea0880aef452a"}, + {file = "pillow-12.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:ebaea975e03d3141d9d3a507df75c9b3ec90fa9d2ffd07567b3a978d9d790b26"}, + {file = "pillow-12.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ba09209fbe443b4acccebe845d8a138b89a8f4fbaeedd44953490b5315d5e965"}, + {file = "pillow-12.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ffd0c5368496f41b0944be820fcb7a838aa6e623d250b01acf2643939c3f99d7"}, + {file = "pillow-12.3.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d9c7f76c0673154f044e9d78c8655fb4213f6ca31a836df48b40fe5d187717b9"}, + {file = "pillow-12.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:78cb2c6865a35ab8ff8b75fd122f6033b92a62c82801110e48ddd6c936a45d91"}, + {file = "pillow-12.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e491916b378fba47242221bb9ead245211b70d504f495d105d17b14a24b4907c"}, + {file = "pillow-12.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0dd2064cbc55aaec028ef5fbb60fa47bb6c3e7918e07ff17935284b227a9d2df"}, + {file = "pillow-12.3.0-cp312-cp312-win32.whl", hash = "sha256:dbce0b29841537a2fa4a214c2bbf14de3587c9680caa9b4e217568472490b28f"}, + {file = "pillow-12.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:a2b55dd6b2a4c4b7d87ffa56bdb33fdc5fdb9a462173861a7bc097f17d91cb09"}, + {file = "pillow-12.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:331b624368d4f1d069149002f25f44bc61c8919ce8ddb3c45bdad8f6e2d89510"}, + {file = "pillow-12.3.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:21900ce7ba264168cd50defae43cd75d25c833ad4ad6e73ffc5596d12e25ac89"}, + {file = "pillow-12.3.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:4e8c2a84d977f50b9daed6eeaf3baef67d00d5d74d932288f02cb94518ee3ace"}, + {file = "pillow-12.3.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:ae26d61dfa7a47befdc7572b521024e8745f3d809bd95ca9505a7bba9ef849ec"}, + {file = "pillow-12.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7a743ff716f746fc19a9557f60dab1600d4613255f8a7aeb3cdde4db7eb15a66"}, + {file = "pillow-12.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d69141514cc30b774ceea5e3ed3a6635c8d8a96edf664689b890f4089111fb35"}, + {file = "pillow-12.3.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f7401aebd7f581d7f83a439d87d474999317ee099218e5ad25d125290990ba65"}, + {file = "pillow-12.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0847a763afefb695bc912d7c131e7e0632d4edc1d8698f58ddabec8e46b8b6d3"}, + {file = "pillow-12.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:571b9fcb07b97ef3a492028fb3d2dc0993ca23a06138b0315286566d29ef718a"}, + {file = "pillow-12.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:756c768d0c9c2955feb7a56c37ea24aea2e369f8d36a88da270b6a9f19e62b5e"}, + {file = "pillow-12.3.0-cp313-cp313-win32.whl", hash = "sha256:a876864214e136f0eb367788dbd7df045f4806801518e2cfe9e13229cfe06d8f"}, + {file = "pillow-12.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:1cca606cd25738df4ed873d5ad46bbdb3d83b5cbca291f6b4ff13a4df6b0bbe8"}, + {file = "pillow-12.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:b629de27fda84b42cde7edef0d85f13b958b47f6e9bbcbba9b673c562a89bd8b"}, + {file = "pillow-12.3.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:9cf95fe4d0f84c82d282745d9bb08ad9f926efa00be4697e767b814ce40d4330"}, + {file = "pillow-12.3.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:8728f216dcdb6e6d555cf971cb34076139ad74b31fc2c14da4fafc741c5f6217"}, + {file = "pillow-12.3.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:a45650e8ce7fafffd731db8550230db6b0d306d181a90b67d3e6bca2f1990930"}, + {file = "pillow-12.3.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:ba54cfebe86920a559a7c4d6b9050791c20513650a1952ebe3368c7dc70306f8"}, + {file = "pillow-12.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:e158cb00350dc278f3b91551101aa7d12415a66ebf2c91d8d5ac14e56ddd3ad0"}, + {file = "pillow-12.3.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e9aeb04d6aef139de265b29683e119b638208f88cf73cdd1658aa07221165321"}, + {file = "pillow-12.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:251bf95b67017e27b13d82f5b326234ca62d70f9cf4c2b9032de2358a3b12c7b"}, + {file = "pillow-12.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:fe3cca2e4e8a592be0f269a1ca4835c25199d9f3ce815c8491048f785b0a0198"}, + {file = "pillow-12.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:23aceaa007d6172b02c277f0cd359c79492bbb14f7072b4ede9fbcaf20648130"}, + {file = "pillow-12.3.0-cp314-cp314-win32.whl", hash = "sha256:af8d94b0db561cf68b88a267c5c44b49e134f525d0dc2cb7ed413a66bc23559a"}, + {file = "pillow-12.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:fdafc9cce40277e0f7a0feabce0ee50dd2fa1800f3b38015e51296b5e814048d"}, + {file = "pillow-12.3.0-cp314-cp314-win_arm64.whl", hash = "sha256:e91206ee562682b51b98ef4b26a6ef48fd84e15fd4c4bc5ec768eb641d206838"}, + {file = "pillow-12.3.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:164b31cd1a0490ab6efae01aa5df49da7061be0af1b30e035b6e9a1bfe34ee6e"}, + {file = "pillow-12.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5afb51d599ea772b8365ae807ae557f18bccfe46ab261fd1c2a9ed700fc6eb17"}, + {file = "pillow-12.3.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3edce1d53195db527e0191f84b71d02022de0540bf43a16ed734ed7537b07385"}, + {file = "pillow-12.3.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bf16ba1b4d0b6b7c8e534936632270cf70eb00dbe09005bc345b2677b726855c"}, + {file = "pillow-12.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:24870b09b224f7ae3c39ed07d10e819d06f8720bc551847b1d623832b5b0e28d"}, + {file = "pillow-12.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:30f2aa603c41533cc25c05acd0da21636e84a315768feb631c937177db558931"}, + {file = "pillow-12.3.0-cp314-cp314t-win32.whl", hash = "sha256:4b0a7fe987b14c31ebda6083f74f22b561fd3739bc0ac51e019622e3d72668c7"}, + {file = "pillow-12.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:962864dc93511324d51ddbb5b9f8731bf71675b93ca612a07441896f4688fb8c"}, + {file = "pillow-12.3.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0740a512dc522224c77d9aa5a8d70d8b7d73fb91f2c21125d8d025d3b8990e45"}, + {file = "pillow-12.3.0-cp315-cp315-ios_13_0_arm64_iphoneos.whl", hash = "sha256:0feb2e9d6ad6c9e3c06effe9d00f3f1e618a6643273576b016f591e9315a7139"}, + {file = "pillow-12.3.0-cp315-cp315-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:9e881fca225083806662a5c43d627d215f258ff43c890f831966c7d7ba9c7402"}, + {file = "pillow-12.3.0-cp315-cp315-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:4998562bf62a445225f22e07c896bb04b35b1b1f2eb6d760584c9c51d7a5f78c"}, + {file = "pillow-12.3.0-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:dc624f6bc473dacdf7ef7eb8678d0d08edf15cd94fad6ae5c7d6cc67a4e4902f"}, + {file = "pillow-12.3.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:71d6097b330eea8fd15097780c8e89cb1a8ce7838669f48c5bacd6f663dd4701"}, + {file = "pillow-12.3.0-cp315-cp315-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:28ce87c5ab450a9dd970b52e5aca5fe63ed432d18a2eaddd1979a00a1ba24ace"}, + {file = "pillow-12.3.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6b02afb9b97f65fbca5f31db6a2a3ba21aa93030225f150fa3f249717e938fb4"}, + {file = "pillow-12.3.0-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:1182d52bc2d5e5d7d0949503aa7e36d12f42205dc287e4883f407b1988820d39"}, + {file = "pillow-12.3.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:e795b7eb908249c4e43c7c99fac7c2c75dab0c43566e37db472a355f63693d71"}, + {file = "pillow-12.3.0-cp315-cp315-win32.whl", hash = "sha256:57b3d78c95ba9059768b10e28b813002261d3f3dfc55cc48b0c988f625175827"}, + {file = "pillow-12.3.0-cp315-cp315-win_amd64.whl", hash = "sha256:fa4ecea169a355be7a3ade2c783e2ed12f0e40d2c5621cda8b3297faf7fbb9f5"}, + {file = "pillow-12.3.0-cp315-cp315-win_arm64.whl", hash = "sha256:877c3f311ff35410f690861c4409e7ccbf0cd2f878e50628a28e5a0bb689e658"}, + {file = "pillow-12.3.0-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:e9871b1ffbfa9656b60aeee92ed5136a5742696006fa322b29ea3d8da0ecc9cf"}, + {file = "pillow-12.3.0-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:53aa02d20d10c3d814d536aa4e5ac9b84ca0ff5a88377963b085ad6822f93e64"}, + {file = "pillow-12.3.0-cp315-cp315t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:446c34dcc4324b084a53b705127dc15717b22c5e140ae0a3c38349d4efec071e"}, + {file = "pillow-12.3.0-cp315-cp315t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cf1845d02ad822a369a49f2bb9345b1614744267682e7a03527dc3bf6eea1777"}, + {file = "pillow-12.3.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:186941b6aef820ad110fb01fb06eb925374dc3a21b17e37ec9a53b250c6fe2d1"}, + {file = "pillow-12.3.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:f13c32a3abd6079a66d9526e18dad9b6d280384d49d7c54040cd57b6424041d9"}, + {file = "pillow-12.3.0-cp315-cp315t-win32.whl", hash = "sha256:1657923d2d45afb66526e5b933e5b3052e6bdea196c90d3abb2424e18c77dae8"}, + {file = "pillow-12.3.0-cp315-cp315t-win_amd64.whl", hash = "sha256:8cd2f7bdda092d99c9fc2fb7391354f306d01443d22785d0cbfafa2e2c8bb418"}, + {file = "pillow-12.3.0-cp315-cp315t-win_arm64.whl", hash = "sha256:06ff022112bc9cbf83b60f8e028d94ad87b60621706487e65f673de61610ab59"}, + {file = "pillow-12.3.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b3c777e849237620b022f7f297dd67705f9f5cf1685f09f02e46f93e92725468"}, + {file = "pillow-12.3.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:b343699e8308bdc51978310e1c959c584e7869cc8c40780058c87da7781a1e94"}, + {file = "pillow-12.3.0-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fbd139c8447d25dd750ab79ee274cc5e1fe80fc56340ab10b18a195e1b6eca3e"}, + {file = "pillow-12.3.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e7e480451b9fa137494bccd3a7d69adbe8ac65a87d97be61e11f1b1050a5bac3"}, + {file = "pillow-12.3.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:04f01d28a6aaff387bf842a13be313df23ba0597a44f1a976c9feb3c6ff4711a"}, + {file = "pillow-12.3.0.tar.gz", hash = "sha256:3b8182a766685eaa002637e28b4ec8d6b18819a0c71f579bf0dbaa5830297cce"}, +] + +[package.extras] +docs = ["furo", "olefile", "sphinx (>=8.2)", "sphinx-autobuild", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"] +fpx = ["olefile"] +mic = ["olefile"] +test-arrow = ["arro3-compute", "arro3-core", "nanoarrow", "pyarrow"] +tests = ["coverage (>=7.4.2)", "defusedxml", "markdown2", "olefile", "packaging", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "setuptools", "trove-classifiers (>=2024.10.12)"] +xmp = ["defusedxml"] + [[package]] name = "plotly" -version = "6.2.0" +version = "6.9.0" description = "An open-source interactive data visualization library for Python" optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "plotly-6.2.0-py3-none-any.whl", hash = "sha256:32c444d4c940887219cb80738317040363deefdfee4f354498cc0b6dab8978bd"}, - {file = "plotly-6.2.0.tar.gz", hash = "sha256:9dfa23c328000f16c928beb68927444c1ab9eae837d1fe648dbcda5360c7953d"}, + {file = "plotly-6.9.0-py3-none-any.whl", hash = "sha256:36bebe2f1bb13884774fe61689c329071446f6ce4a8927fb1f0d6fb24f581236"}, + {file = "plotly-6.9.0.tar.gz", hash = "sha256:967ad33e8c704fed051800d11d985eb206a9c795c14206b30a6f463ed9c67d0d"}, ] [package.dependencies] @@ -799,27 +1407,66 @@ narwhals = ">=1.15.1" packaging = "*" [package.extras] -dev = ["plotly[dev-optional]"] -dev-build = ["build", "jupyter", "plotly[dev-core]"] +dev = ["anywidget", "build", "colorcet", "fiona (<=1.9.6) ; python_version <= \"3.8\"", "geopandas", "inflect", "jupyterlab", "kaleido (>=1.3.0)", "numpy (>=1.22)", "orjson", "pandas", "pdfrw", "pillow", "plotly-geo", "polars[timezone]", "pyarrow", "pyshp", "pytest", "pytz", "requests", "ruff (==0.11.12)", "scikit-image", "scipy", "shapely", "statsmodels", "vaex ; python_version <= \"3.9\"", "xarray"] +dev-build = ["build", "jupyterlab", "pytest", "requests", "ruff (==0.11.12)"] dev-core = ["pytest", "requests", "ruff (==0.11.12)"] -dev-optional = ["anywidget", "colorcet", "fiona (<=1.9.6) ; python_version <= \"3.8\"", "geopandas", "inflect", "numpy", "orjson", "pandas", "pdfrw", "pillow", "plotly-geo", "plotly[dev-build]", "plotly[kaleido]", "polars[timezone]", "pyarrow", "pyshp", "pytz", "scikit-image", "scipy", "shapely", "statsmodels", "vaex ; python_version <= \"3.9\"", "xarray"] -express = ["numpy"] -kaleido = ["kaleido (>=1.0.0)"] +dev-optional = ["anywidget", "build", "colorcet", "fiona (<=1.9.6) ; python_version <= \"3.8\"", "geopandas", "inflect", "jupyterlab", "kaleido (>=1.3.0)", "numpy (>=1.22)", "orjson", "pandas", "pdfrw", "pillow", "plotly-geo", "polars[timezone]", "pyarrow", "pyshp", "pytest", "pytz", "requests", "ruff (==0.11.12)", "scikit-image", "scipy", "shapely", "statsmodels", "vaex ; python_version <= \"3.9\"", "xarray"] +dev-pandas1 = ["numpy (>=1,<2)", "pandas (>=1,<2)", "setuptools (<82)"] +dev-pandas2 = ["pandas (>=2,<3)"] +dev-pandas3 = ["pandas (>=3) ; python_version >= \"3.11\""] +express = ["numpy (>=1.22)"] +kaleido = ["kaleido (>=1.3.0)"] [[package]] name = "prompt-toolkit" -version = "3.0.51" +version = "3.0.53" description = "Library for building powerful interactive command lines in Python" optional = false -python-versions = ">=3.8" +python-versions = ">=3.10" groups = ["main"] files = [ - {file = "prompt_toolkit-3.0.51-py3-none-any.whl", hash = "sha256:52742911fde84e2d423e2f9a4cf1de7d7ac4e51958f648d9540e0fb8db077b07"}, - {file = "prompt_toolkit-3.0.51.tar.gz", hash = "sha256:931a162e3b27fc90c86f1b48bb1fb2c528c2761475e57c9c06de13311c7b54ed"}, + {file = "prompt_toolkit-3.0.53-py3-none-any.whl", hash = "sha256:01c0891d7f9237d5e339f7d3e42cdae80b7534abb1c7c0e3352efba6231492f2"}, + {file = "prompt_toolkit-3.0.53.tar.gz", hash = "sha256:9ec8a0ad96d5c56148b3f914aa79c1564c3fde5d2e6b876e7bc327e353cf8fa6"}, ] [package.dependencies] -wcwidth = "*" +wcwidth = ">=0.1.4" + +[[package]] +name = "psutil" +version = "7.2.2" +description = "Cross-platform lib for process and system monitoring." +optional = false +python-versions = ">=3.6" +groups = ["main"] +markers = "sys_platform != \"emscripten\" and sys_platform != \"cygwin\"" +files = [ + {file = "psutil-7.2.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:2edccc433cbfa046b980b0df0171cd25bcaeb3a68fe9022db0979e7aa74a826b"}, + {file = "psutil-7.2.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e78c8603dcd9a04c7364f1a3e670cea95d51ee865e4efb3556a3a63adef958ea"}, + {file = "psutil-7.2.2-cp313-cp313t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1a571f2330c966c62aeda00dd24620425d4b0cc86881c89861fbc04549e5dc63"}, + {file = "psutil-7.2.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:917e891983ca3c1887b4ef36447b1e0873e70c933afc831c6b6da078ba474312"}, + {file = "psutil-7.2.2-cp313-cp313t-win_amd64.whl", hash = "sha256:ab486563df44c17f5173621c7b198955bd6b613fb87c71c161f827d3fb149a9b"}, + {file = "psutil-7.2.2-cp313-cp313t-win_arm64.whl", hash = "sha256:ae0aefdd8796a7737eccea863f80f81e468a1e4cf14d926bd9b6f5f2d5f90ca9"}, + {file = "psutil-7.2.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:eed63d3b4d62449571547b60578c5b2c4bcccc5387148db46e0c2313dad0ee00"}, + {file = "psutil-7.2.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7b6d09433a10592ce39b13d7be5a54fbac1d1228ed29abc880fb23df7cb694c9"}, + {file = "psutil-7.2.2-cp314-cp314t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1fa4ecf83bcdf6e6c8f4449aff98eefb5d0604bf88cb883d7da3d8d2d909546a"}, + {file = "psutil-7.2.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e452c464a02e7dc7822a05d25db4cde564444a67e58539a00f929c51eddda0cf"}, + {file = "psutil-7.2.2-cp314-cp314t-win_amd64.whl", hash = "sha256:c7663d4e37f13e884d13994247449e9f8f574bc4655d509c3b95e9ec9e2b9dc1"}, + {file = "psutil-7.2.2-cp314-cp314t-win_arm64.whl", hash = "sha256:11fe5a4f613759764e79c65cf11ebdf26e33d6dd34336f8a337aa2996d71c841"}, + {file = "psutil-7.2.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ed0cace939114f62738d808fdcecd4c869222507e266e574799e9c0faa17d486"}, + {file = "psutil-7.2.2-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:1a7b04c10f32cc88ab39cbf606e117fd74721c831c98a27dc04578deb0c16979"}, + {file = "psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:076a2d2f923fd4821644f5ba89f059523da90dc9014e85f8e45a5774ca5bc6f9"}, + {file = "psutil-7.2.2-cp36-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b0726cecd84f9474419d67252add4ac0cd9811b04d61123054b9fb6f57df6e9e"}, + {file = "psutil-7.2.2-cp36-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fd04ef36b4a6d599bbdb225dd1d3f51e00105f6d48a28f006da7f9822f2606d8"}, + {file = "psutil-7.2.2-cp36-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b58fabe35e80b264a4e3bb23e6b96f9e45a3df7fb7eed419ac0e5947c61e47cc"}, + {file = "psutil-7.2.2-cp37-abi3-win_amd64.whl", hash = "sha256:eb7e81434c8d223ec4a219b5fc1c47d0417b12be7ea866e24fb5ad6e84b3d988"}, + {file = "psutil-7.2.2-cp37-abi3-win_arm64.whl", hash = "sha256:8c233660f575a5a89e6d4cb65d9f938126312bca76d8fe087b947b3a1aaac9ee"}, + {file = "psutil-7.2.2.tar.gz", hash = "sha256:0746f5f8d406af344fd547f1c8daa5f5c33dbc293bb8d6a16d80b4bb88f59372"}, +] + +[package.extras] +dev = ["abi3audit", "black", "check-manifest", "colorama ; os_name == \"nt\"", "coverage", "packaging", "psleak", "pylint", "pyperf", "pypinfo", "pyreadline3 ; os_name == \"nt\"", "pytest", "pytest-cov", "pytest-instafail", "pytest-xdist", "pywin32 ; os_name == \"nt\" and implementation_name != \"pypy\"", "requests", "rstcheck", "ruff", "setuptools", "sphinx", "sphinx_rtd_theme", "toml-sort", "twine", "validate-pyproject[all]", "virtualenv", "vulture", "wheel", "wheel ; os_name == \"nt\" and implementation_name != \"pypy\"", "wmi ; os_name == \"nt\" and implementation_name != \"pypy\""] +test = ["psleak", "pytest", "pytest-instafail", "pytest-xdist", "pywin32 ; os_name == \"nt\" and implementation_name != \"pypy\"", "setuptools", "wheel ; os_name == \"nt\" and implementation_name != \"pypy\"", "wmi ; os_name == \"nt\" and implementation_name != \"pypy\""] [[package]] name = "ptyprocess" @@ -851,19 +1498,34 @@ tests = ["pytest"] [[package]] name = "pygments" -version = "2.19.2" +version = "2.20.0" description = "Pygments is a syntax highlighting package written in Python." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" groups = ["main"] files = [ - {file = "pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b"}, - {file = "pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887"}, + {file = "pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176"}, + {file = "pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f"}, ] [package.extras] windows-terminal = ["colorama (>=0.4.6)"] +[[package]] +name = "pyparsing" +version = "3.3.2" +description = "pyparsing - Classes and methods to define and execute parsing grammars" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "pyparsing-3.3.2-py3-none-any.whl", hash = "sha256:850ba148bd908d7e2411587e247a1e4f0327839c40e2e5e6d05a007ecc69911d"}, + {file = "pyparsing-3.3.2.tar.gz", hash = "sha256:c777f4d763f140633dcb6d8a3eda953bf7a214dc4eff598413c070bcdc117cbc"}, +] + +[package.extras] +diagrams = ["jinja2", "railroad-diagrams"] + [[package]] name = "python-dateutil" version = "2.9.0.post0" @@ -881,60 +1543,60 @@ six = ">=1.5" [[package]] name = "pytz" -version = "2025.2" +version = "2026.3.post1" description = "World timezone definitions, modern and historical" optional = false python-versions = "*" groups = ["main"] files = [ - {file = "pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00"}, - {file = "pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3"}, + {file = "pytz-2026.3.post1-py2.py3-none-any.whl", hash = "sha256:dd95840dd199baea12d9cc096a1d452caa6596a1c1e4b5f3dbd1541855d5e815"}, + {file = "pytz-2026.3.post1.tar.gz", hash = "sha256:2211d3fcf9a797d3405cac96ac7f61d80e6a644f72a3309607282fe8a2010c5d"}, ] [[package]] name = "requests" -version = "2.32.4" +version = "2.34.2" description = "Python HTTP for Humans." optional = false -python-versions = ">=3.8" +python-versions = ">=3.10" groups = ["main"] files = [ - {file = "requests-2.32.4-py3-none-any.whl", hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c"}, - {file = "requests-2.32.4.tar.gz", hash = "sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422"}, + {file = "requests-2.34.2-py3-none-any.whl", hash = "sha256:2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0"}, + {file = "requests-2.34.2.tar.gz", hash = "sha256:f288924cae4e29463698d6d60bc6a4da69c89185ad1e0bcc4104f584e960b9ed"}, ] [package.dependencies] -certifi = ">=2017.4.17" +certifi = ">=2023.5.7" charset_normalizer = ">=2,<4" idna = ">=2.5,<4" -urllib3 = ">=1.21.1,<3" +urllib3 = ">=1.26,<3" [package.extras] socks = ["PySocks (>=1.5.6,!=1.5.7)"] -use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<8)"] [[package]] name = "retrying" -version = "1.4.0" +version = "1.4.2" description = "Retrying" optional = false python-versions = ">=3.6" groups = ["main"] files = [ - {file = "retrying-1.4.0-py3-none-any.whl", hash = "sha256:6509d829c70271937605bce361c8f76e91f9123d355d14df7dc6972b1518064a"}, - {file = "retrying-1.4.0.tar.gz", hash = "sha256:efa99c78bf4fbdbe6f0cba4101470fbc684b93d30ca45ffa1288443a9805172f"}, + {file = "retrying-1.4.2-py3-none-any.whl", hash = "sha256:bbc004aeb542a74f3569aeddf42a2516efefcdaff90df0eb38fbfbf19f179f59"}, + {file = "retrying-1.4.2.tar.gz", hash = "sha256:d102e75d53d8d30b88562d45361d6c6c934da06fab31bd81c0420acb97a8ba39"}, ] [[package]] name = "rich" -version = "14.0.0" +version = "14.3.4" description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" optional = false python-versions = ">=3.8.0" groups = ["main"] files = [ - {file = "rich-14.0.0-py3-none-any.whl", hash = "sha256:1c9491e1951aac09caffd42f448ee3d04e58923ffe14993f6e83068dc395d7e0"}, - {file = "rich-14.0.0.tar.gz", hash = "sha256:82f1bc23a6a21ebca4ae0c45af9bdbc492ed20231dcb63f297d6d1021a9d5725"}, + {file = "rich-14.3.4-py3-none-any.whl", hash = "sha256:07e7adb4690f68864777b1450859253bed81a99a31ac321ac1817b2313558952"}, + {file = "rich-14.3.4.tar.gz", hash = "sha256:817e02727f2b25b40ef56f5aa2217f400c8489f79ca8f46ea2b70dd5e14558a9"}, ] [package.dependencies] @@ -946,24 +1608,24 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"] [[package]] name = "setuptools" -version = "80.9.0" -description = "Easily download, build, install, upgrade, and uninstall Python packages" +version = "84.0.0" +description = "Most extensible Python build backend with support for C/C++ extension modules" optional = false -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] files = [ - {file = "setuptools-80.9.0-py3-none-any.whl", hash = "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922"}, - {file = "setuptools-80.9.0.tar.gz", hash = "sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c"}, + {file = "setuptools-84.0.0-py3-none-any.whl", hash = "sha256:51a52592b3b99e102b609654876bd65f19f999935166d1352678931132b0c670"}, + {file = "setuptools-84.0.0.tar.gz", hash = "sha256:f4695c21257f0d9b537ec2692c941d02ee143b7cc1276941349a546573b2ef73"}, ] [package.extras] -check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\"", "ruff (>=0.8.0) ; sys_platform != \"cygwin\""] -core = ["importlib_metadata (>=6) ; python_version < \"3.10\"", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more_itertools", "more_itertools (>=8.8)", "packaging (>=24.2)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1) ; python_version < \"3.11\"", "wheel (>=0.43.0)"] +check = ["pytest-checkdocs (>=2.14)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\"", "ruff (>=0.13.0) ; sys_platform != \"cygwin\""] +core = ["importlib_metadata (>=6) ; python_version < \"3.10\"", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more_itertools", "more_itertools (>=8.8)", "packaging (>=24.2)", "tomli (>=2.0.1) ; python_version < \"3.11\"", "wheel (>=0.43.0)"] cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] -enabler = ["pytest-enabler (>=2.2)"] +enabler = ["pytest-enabler (>=3.4)"] test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21) ; python_version >= \"3.9\" and sys_platform != \"cygwin\"", "jaraco.envs (>=2.2)", "jaraco.path (>=3.7.2)", "jaraco.test (>=5.5)", "packaging (>=24.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf ; sys_platform != \"cygwin\"", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] -type = ["importlib_metadata (>=7.0.2) ; python_version < \"3.10\"", "jaraco.develop (>=7.21) ; sys_platform != \"cygwin\"", "mypy (==1.14.*)", "pytest-mypy"] +type = ["importlib_metadata (>=7.0.2) ; python_version < \"3.10\"", "jaraco.develop (>=7.21) ; sys_platform != \"cygwin\"", "mypy (==1.18.*)", "pytest-mypy (>=1.0.1) ; platform_python_implementation != \"PyPy\""] [[package]] name = "shellingham" @@ -1011,30 +1673,30 @@ tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] [[package]] name = "traitlets" -version = "5.14.3" +version = "5.16.1" description = "Traitlets Python configuration system" optional = false -python-versions = ">=3.8" +python-versions = ">=3.10" groups = ["main"] files = [ - {file = "traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f"}, - {file = "traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7"}, + {file = "traitlets-5.16.1-py3-none-any.whl", hash = "sha256:f775618166caa0396c8e337099240f2bd3e5e917d203b2e6fbe21a58d3cb1f6b"}, + {file = "traitlets-5.16.1.tar.gz", hash = "sha256:ed900c2b631aa3a112811139fa97b8d2c3bad5e989656bba4b7e52c7852c18c1"}, ] [package.extras] docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] -test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,<8.2)", "pytest-mock", "pytest-mypy-testing"] +test = ["argcomplete (>=3.0.3) ; python_version < \"3.12\"", "argcomplete (>=3.5.2) ; python_version >= \"3.12\"", "mypy (>=2.0) ; implementation_name != \"pypy\"", "pre-commit", "pytest (>=7.0,<10.0)", "pytest-mock", "pytest-mypy-testing ; implementation_name != \"pypy\""] [[package]] name = "typer" -version = "0.16.0" +version = "0.16.1" description = "Typer, build great CLIs. Easy to code. Based on Python type hints." optional = false python-versions = ">=3.7" groups = ["main"] files = [ - {file = "typer-0.16.0-py3-none-any.whl", hash = "sha256:1f79bed11d4d02d4310e3c1b7ba594183bcedb0ac73b27a9e5f28f6fb5b98855"}, - {file = "typer-0.16.0.tar.gz", hash = "sha256:af377ffaee1dbe37ae9440cb4e8f11686ea5ce4e9bae01b84ae7c63b87f1dd3b"}, + {file = "typer-0.16.1-py3-none-any.whl", hash = "sha256:90ee01cb02d9b8395ae21ee3368421faf21fa138cb2a541ed369c08cec5237c9"}, + {file = "typer-0.16.1.tar.gz", hash = "sha256:d358c65a464a7a90f338e3bb7ff0c74ac081449e53884b12ba658cbd72990614"}, ] [package.dependencies] @@ -1045,97 +1707,97 @@ typing-extensions = ">=3.7.4.3" [[package]] name = "typing-extensions" -version = "4.14.0" +version = "4.16.0" description = "Backported and Experimental Type Hints for Python 3.9+" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "typing_extensions-4.14.0-py3-none-any.whl", hash = "sha256:a1514509136dd0b477638fc68d6a91497af5076466ad0fa6c338e44e359944af"}, - {file = "typing_extensions-4.14.0.tar.gz", hash = "sha256:8676b788e32f02ab42d9e7c61324048ae4c6d844a399eebace3d4979d75ceef4"}, + {file = "typing_extensions-4.16.0-py3-none-any.whl", hash = "sha256:481caa481374e813c1b176ada14e97f1f67a4539ce9cfeb3f350d78d6370c2e8"}, + {file = "typing_extensions-4.16.0.tar.gz", hash = "sha256:dc983d19a509c94dba722ee6abd33940f7c05a89e243c47e907eb4db6f1a43e5"}, ] [[package]] name = "tzdata" -version = "2025.2" +version = "2026.3" description = "Provider of IANA time zone data" optional = false python-versions = ">=2" groups = ["main"] files = [ - {file = "tzdata-2025.2-py2.py3-none-any.whl", hash = "sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8"}, - {file = "tzdata-2025.2.tar.gz", hash = "sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9"}, + {file = "tzdata-2026.3-py2.py3-none-any.whl", hash = "sha256:dc096730c87af6cab1b171c9d532be840741ff5d459015e7f6947bd7d7e54931"}, + {file = "tzdata-2026.3.tar.gz", hash = "sha256:4a1518b8993086a7982523e071643f3c0e5f213e75b21318e78bcabfff9d1415"}, ] [[package]] name = "urllib3" -version = "2.5.0" +version = "2.7.0" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] files = [ - {file = "urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc"}, - {file = "urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760"}, + {file = "urllib3-2.7.0-py3-none-any.whl", hash = "sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897"}, + {file = "urllib3-2.7.0.tar.gz", hash = "sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c"}, ] [package.extras] -brotli = ["brotli (>=1.0.9) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\""] +brotli = ["brotli (>=1.2.0) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=1.2.0.0) ; platform_python_implementation != \"CPython\""] h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] -zstd = ["zstandard (>=0.18.0)"] +zstd = ["backports-zstd (>=1.0.0) ; python_version < \"3.14\""] [[package]] name = "wcwidth" -version = "0.2.13" +version = "0.8.2" description = "Measures the displayed width of unicode strings in a terminal" optional = false -python-versions = "*" +python-versions = ">=3.8" groups = ["main"] files = [ - {file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"}, - {file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"}, + {file = "wcwidth-0.8.2-py3-none-any.whl", hash = "sha256:d63947694a0539a1d51e01eda7caf800c291020e6cdd7e28ad7b14dd33ad4f85"}, + {file = "wcwidth-0.8.2.tar.gz", hash = "sha256:91fbef97204b96a3d4d421609b80340b760cf33e26da123ff243d76b1fda8dda"}, ] [[package]] name = "werkzeug" -version = "3.1.3" +version = "3.1.8" description = "The comprehensive WSGI web application library." optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "werkzeug-3.1.3-py3-none-any.whl", hash = "sha256:54b78bf3716d19a65be4fceccc0d1d7b89e608834989dfae50ea87564639213e"}, - {file = "werkzeug-3.1.3.tar.gz", hash = "sha256:60723ce945c19328679790e3282cc758aa4a6040e4bb330f53d30fa546d44746"}, + {file = "werkzeug-3.1.8-py3-none-any.whl", hash = "sha256:63a77fb8892bf28ebc3178683445222aa500e48ebad5ec77b0ad80f8726b1f50"}, + {file = "werkzeug-3.1.8.tar.gz", hash = "sha256:9bad61a4268dac112f1c5cd4630a56ede601b6ed420300677a869083d70a4c44"}, ] [package.dependencies] -MarkupSafe = ">=2.1.1" +markupsafe = ">=2.1.1" [package.extras] watchdog = ["watchdog (>=2.3)"] [[package]] name = "zipp" -version = "3.23.0" +version = "4.1.0" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] files = [ - {file = "zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e"}, - {file = "zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166"}, + {file = "zipp-4.1.0-py3-none-any.whl", hash = "sha256:25ad4e16390cd314347dd8f1de67a2ac538ae658ed4ab9db16029c07c188e97f"}, + {file = "zipp-4.1.0.tar.gz", hash = "sha256:4cb57381f544315db7688e976e922a2b18cdb513d21cc194eb42232ba2a3e602"}, ] [package.extras] -check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] +check = ["pytest-checkdocs (>=2.14)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -enabler = ["pytest-enabler (>=2.2)"] +enabler = ["pytest-enabler (>=3.4)"] test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more_itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"] -type = ["pytest-mypy"] +type = ["pytest-mypy (>=1.0.1) ; platform_python_implementation != \"PyPy\""] [metadata] lock-version = "2.1" python-versions = ">=3.13,<4.0" -content-hash = "105637c3527b7635ff206e8cf0d6b8672c6bacfe0b658abe9cf6fc3894ad30ca" +content-hash = "f1a2ee56aab730c1d5f72d98ca51bb0508bb6d8d799d51c6973c867f58683488" diff --git a/pyproject.toml b/pyproject.toml index 499f41d..0279259 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,6 +16,8 @@ dependencies = [ "rich (>=14.0.0,<15.0.0)", "dash (>=3.1.0,<4.0.0)", "dash-bootstrap-components (>=2.0.3,<3.0.0)", + "numpy (>=2.5.2,<3.0.0)", + "matplotlib (>=3.11.1,<4.0.0)", ] [tool.poetry] diff --git a/scripts/csv_to_graphs.py b/scripts/csv_to_graphs.py new file mode 100755 index 0000000..562cc43 --- /dev/null +++ b/scripts/csv_to_graphs.py @@ -0,0 +1,22 @@ +from pathlib import Path +from pandas import read_csv, DataFrame +from typer import Typer +from rich.console import Console + + +cli = Typer() +console = Console() + +@cli.command() +def main(csv: Path): + console.print(f'Reading the file [bold]{csv}[/bold]...') + csv_content = read_csv(csv) + + for column in csv_content.columns: + count = csv_content[column].value_counts() + plot = count.plot(kind='bar', title=column) + plot.get_figure().savefig(f'graphs/{column}.png') + + +if __name__ == '__main__': + cli() \ No newline at end of file From 74327e391bf4531af8df1bfbdedd15a7c52cd6f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Paulo=20Carvalho?= Date: Sat, 15 Aug 2026 15:23:38 -0300 Subject: [PATCH 4/4] =?UTF-8?q?feat:=20gr=C3=A1ficos=20dos=20dados?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/2026/inscritos.csv | 60 +++++------ ...65es abaixo voc\303\252 se identifica.png" | Bin 0 -> 31020 bytes ...\303\255vel de conhecimento em Python.png" | Bin 0 -> 31029 bytes "graphs/2026/Como voc\303\252 se define.png" | Bin 0 -> 39956 bytes .../2026/Como voc\303\252 se identifica.png" | Bin 0 -> 28004 bytes ...lguma defici\303\252ncia Se sim, qual.png" | Bin 0 -> 37825 bytes .../2026/Voc\303\252 programa em Python.png" | Bin 0 -> 51176 bytes .../2026/Voc\303\252 trabalha com Python.png" | Bin 0 -> 23005 bytes scripts/csv-to-graphs.py | 94 ++++++++++++++++++ scripts/csv_to_graphs.py | 22 ---- 10 files changed, 124 insertions(+), 52 deletions(-) create mode 100644 "graphs/2026/Com qual das op\303\247\303\265es abaixo voc\303\252 se identifica.png" create mode 100644 "graphs/2026/Como voc\303\252 classificaria seu n\303\255vel de conhecimento em Python.png" create mode 100644 "graphs/2026/Como voc\303\252 se define.png" create mode 100644 "graphs/2026/Como voc\303\252 se identifica.png" create mode 100644 "graphs/2026/Voc\303\252 possui alguma defici\303\252ncia Se sim, qual.png" create mode 100644 "graphs/2026/Voc\303\252 programa em Python.png" create mode 100644 "graphs/2026/Voc\303\252 trabalha com Python.png" create mode 100755 scripts/csv-to-graphs.py delete mode 100755 scripts/csv_to_graphs.py diff --git a/data/2026/inscritos.csv b/data/2026/inscritos.csv index 2a92589..427eccf 100644 --- a/data/2026/inscritos.csv +++ b/data/2026/inscritos.csv @@ -7,7 +7,7 @@ Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não re Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,1990,Uma pessoa negra,Mulher,Parte da comunidade LGBTQIA+,Não,Há mais de um ano,Iniciante,"Não, mas pretendo",Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,M - 52cm tórax - 70cm comprimento,1983,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,4G - 68cm tórax - 80cm comprimento,1995,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,M - 52cm tórax - 70cm comprimento,1968,Uma pessoa branca,Homem,Heterossexual / Cisgênero,NAO,Comecei no último ano,Intermediário,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,M - 52cm tórax - 70cm comprimento,1968,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não,Comecei no último ano,Intermediário,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,P - 49cm tórax - 66cm comprimento,2003,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,PP - 46cm tórax - 63cm comprimento,1999,Uma pessoa branca,Mulher,Heterossexual / Cisgênero,Não respondeu,Há mais de três anos,Intermediário,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,G - 56cm tórax - 73cm comprimento,2004,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de um ano,Iniciante,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe @@ -15,24 +15,24 @@ Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,Não respon Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,G - 56cm tórax - 73cm comprimento,2000,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,"Não programo em Python, mas sei programar em outras linguagens",Iniciante,"Não, mas pretendo",Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PB - Paraíba,G - 56cm tórax - 73cm comprimento,1993,Uma pessoa negra,Homem,Heterossexual / Cisgênero,Não,Há mais de três anos,Intermediário,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,GG - 60cm tórax - 76cm comprimento,1991,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de dez anos,Avançado,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,BA - Bahia,M - 52cm tórax - 70cm comprimento,1995,Uma pessoa negra,Mulher,Parte da comunidade LGBTQIA+,NAO,"Não programo em Python, mas sei programar em outras linguagens",Iniciante,Não,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,BA - Bahia,M - 52cm tórax - 70cm comprimento,1995,Uma pessoa negra,Mulher,Parte da comunidade LGBTQIA+,Não,"Não programo em Python, mas sei programar em outras linguagens",Iniciante,Não,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,G - 56cm tórax - 73cm comprimento,2006,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,M - 52cm tórax - 70cm comprimento,1991,Uma pessoa negra,Mulher,Parte da comunidade LGBTQIA+,TEA,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe -Ingresso (1º lote),0,Não respondeu,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,PE - Pernambuco,M - 52cm tórax - 70cm comprimento,1999,Uma pessoa parda,Homem,Heterossexual / Cisgênero,nao,Há mais de cinco anos,Intermediário,Sim,Sim,Sim,Não respondeu,Não respondeu,Não respondeu +Ingresso (1º lote),0,Não respondeu,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,PE - Pernambuco,M - 52cm tórax - 70cm comprimento,1999,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não,Há mais de cinco anos,Intermediário,Sim,Sim,Sim,Não respondeu,Não respondeu,Não respondeu Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,RN - Rio Grande do Norte,GG - 60cm tórax - 76cm comprimento,1982,Uma pessoa branca,Homem,Heterossexual / Cisgênero,TEA,Há mais de dez anos,Avançado,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PE - Pernambuco,GG - 60cm tórax - 76cm comprimento,1990,Uma pessoa negra,Mulher,Parte da comunidade LGBTQIA+,Não respondeu,Há mais de cinco anos,Intermediário,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,Não respondeu,ES - Espírito Santo,M - 52cm tórax - 70cm comprimento,1983,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de dez anos,Avançado,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,M - 52cm tórax - 70cm comprimento,1997,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Comecei no último ano,Iniciante,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,M - 52cm tórax - 70cm comprimento,1992,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,1996,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de um ano,Intermediário,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,P - 49cm tórax - 66cm comprimento,1994,Uma pessoa branca,Mulher,Prefiro não responder,Sim multiplas,Há mais de cinco anos,Intermediário,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,P - 49cm tórax - 66cm comprimento,1994,Uma pessoa branca,Mulher,Prefiro não responder,Múltiplas,Há mais de cinco anos,Intermediário,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,1985,Uma pessoa branca,Mulher,Heterossexual / Cisgênero,Não respondeu,Há mais de três anos,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,1998,Uma pessoa branca,Homem,Prefiro não responder,Não respondeu,Há mais de dez anos,Avançado,Sim,Sim,Sim,Não respondeu,Não respondeu,Cartão de Crédito via Stripe Ingresso (1º lote),0,Não respondeu,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,CE - Ceará,M - 52cm tórax - 70cm comprimento,1997,Uma pessoa negra,Mulher,Heterossexual / Cisgênero,Não,"Não programo em Python, mas sei programar em outras linguagens",Iniciante,Não,Sim,Sim,Não respondeu,Não respondeu,Não respondeu Ingresso (1º lote),0,Não respondeu,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,MA - Maranhão,M - 52cm tórax - 70cm comprimento,2003,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de cinco anos,Intermediário,Sim,Sim,Sim,Não respondeu,Não respondeu,Não respondeu Ingresso (1º lote),0,Não respondeu,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,CE - Ceará,G - 56cm tórax - 73cm comprimento,1993,Uma pessoa negra,Homem,Heterossexual / Cisgênero,Não,Há mais de três anos,Intermediário,Sim,Sim,Sim,Não respondeu,Não respondeu,Não respondeu -Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,G - 56cm tórax - 73cm comprimento,2001,Uma pessoa parda,Homem,Heterossexual / Cisgênero,não,Há mais de um ano,Intermediário,Sim,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe -Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,Não respondeu,SP - São Paulo,G - 56cm tórax - 73cm comprimento,1998,Uma pessoa branca,Mulher,Heterossexual / Cisgênero,"Sim, possuo baixa mobilidade",Há mais de cinco anos,Avançado,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,G - 56cm tórax - 73cm comprimento,2001,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não,Há mais de um ano,Intermediário,Sim,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,Não respondeu,SP - São Paulo,G - 56cm tórax - 73cm comprimento,1998,Uma pessoa branca,Mulher,Heterossexual / Cisgênero,"Baixa mobilidade",Há mais de cinco anos,Avançado,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,M - 52cm tórax - 70cm comprimento,1993,Uma pessoa branca,Não-binárie,Parte da comunidade LGBTQIA+,Não respondeu,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,1993,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Não sei programar,Ainda vou aprender,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,2003,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de cinco anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe @@ -50,7 +50,7 @@ Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não re Meia entrada (1º lote),110,Não respondeu,Não respondeu,Não respondeu,Não respondeu,RN - Rio Grande do Norte,M - 52cm tórax - 70cm comprimento,2006,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não,Há mais de um ano,Intermediário,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Meia entrada (1º lote),0,Não respondeu,Não respondeu,Não respondeu,CDC-WG3RFSA4WN6HVESQ,RN - Rio Grande do Norte,PP - 46cm tórax - 63cm comprimento,1992,Uma pessoa parda,Mulher,Parte da comunidade LGBTQIA+,Não,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu Ingresso (1º lote),0,Não respondeu,Não respondeu,Não respondeu,CDC-WG3RFSA4WN6HVESQ,PE - Pernambuco,G - 56cm tórax - 73cm comprimento,1991,Uma pessoa branca,Homem,Prefiro não responder,Não,Há mais de um ano,Iniciante,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu -Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,2006,Uma pessoa branca,Homem,Heterossexual / Cisgênero,não,Comecei no último ano,Intermediário,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,2006,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não,Comecei no último ano,Intermediário,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Ingresso (1º lote),220,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,M - 52cm tórax - 70cm comprimento,1997,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de dez anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,G - 56cm tórax - 73cm comprimento,2006,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não,Há mais de um ano,Iniciante,Não,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe Ingresso (2º lote),260,Não respondeu,Não respondeu,Não respondeu,Não respondeu,SP - São Paulo,G - 56cm tórax - 73cm comprimento,1996,Uma pessoa branca,Mulher,Parte da comunidade LGBTQIA+,Não respondeu,Há mais de dez anos,Avançado,Sim,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe @@ -63,12 +63,12 @@ Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não re Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,G - 56cm tórax - 73cm comprimento,2005,Uma pessoa branca,Homem,Parte da comunidade LGBTQIA+,Não,Há mais de cinco anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,M - 52cm tórax - 70cm comprimento,2005,Uma pessoa parda,Homem,Parte da comunidade LGBTQIA+,Não,Há mais de três anos,Intermediário,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,P - 49cm tórax - 66cm comprimento,2002,Uma pessoa parda,Mulher,Parte da comunidade LGBTQIA+,Não,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,SP - São Paulo,3G - 64cm tórax - 78cm comprimento,2004,Uma pessoa parda,Mulher,Parte da comunidade LGBTQIA+,"Sim, Autismo, TDAH",Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,SP - São Paulo,3G - 64cm tórax - 78cm comprimento,2004,Uma pessoa parda,Mulher,Parte da comunidade LGBTQIA+,"TEA e TDAH",Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,M - 52cm tórax - 70cm comprimento,2006,Outro,Homem,Prefiro não responder,Não respondeu,Comecei no último ano,Iniciante,Não,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,M - 52cm tórax - 70cm comprimento,2005,Uma pessoa parda,Mulher,Heterossexual / Cisgênero,Não respondeu,Comecei no último ano,Intermediário,Sim,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,G - 56cm tórax - 73cm comprimento,2005,Uma pessoa branca,Homem,Parte da comunidade LGBTQIA+,Não,Comecei no último ano,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,GG - 60cm tórax - 76cm comprimento,2007,Uma pessoa parda,Homem,Heterossexual / Cisgênero,não,"Não programo em Python, mas sei programar em outras linguagens",Ainda vou aprender,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,M - 52cm tórax - 70cm comprimento,2004,Uma pessoa negra,Mulher,Heterossexual / Cisgênero,não,"Não programo em Python, mas sei programar em outras linguagens",Intermediário,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,GG - 60cm tórax - 76cm comprimento,2007,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não,"Não programo em Python, mas sei programar em outras linguagens",Ainda vou aprender,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,M - 52cm tórax - 70cm comprimento,2004,Uma pessoa negra,Mulher,Heterossexual / Cisgênero,Não,"Não programo em Python, mas sei programar em outras linguagens",Intermediário,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,M - 52cm tórax - 70cm comprimento,2006,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não,Há mais de três anos,Intermediário,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,PP - 46cm tórax - 63cm comprimento,1999,Uma pessoa parda,Homem,Parte da comunidade LGBTQIA+,Não respondeu,Há mais de um ano,Iniciante,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Ingresso (2º lote),0,Não respondeu,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,CE - Ceará,P - 49cm tórax - 66cm comprimento,1997,Uma pessoa branca,Mulher,Heterossexual / Cisgênero,Não respondeu,Há mais de dez anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu @@ -79,7 +79,7 @@ Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,G - 56cm tórax - 73cm comprimento,2004,Uma pessoa branca,Mulher,Parte da comunidade LGBTQIA+,Não respondeu,Não sei programar,Ainda vou aprender,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,PP - 46cm tórax - 63cm comprimento,2002,Uma pessoa branca,Mulher,Parte da comunidade LGBTQIA+,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,PP - 46cm tórax - 63cm comprimento,2005,Uma pessoa negra,Mulher,Heterossexual / Cisgênero,Não respondeu,Comecei no último ano,Iniciante,Não,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe -Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,BA - Bahia,P - 49cm tórax - 66cm comprimento,2001,Uma pessoa parda,Mulher,Parte da comunidade LGBTQIA+,Não se aplica,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,BA - Bahia,P - 49cm tórax - 66cm comprimento,2001,Uma pessoa parda,Mulher,Parte da comunidade LGBTQIA+,Não,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,G - 56cm tórax - 73cm comprimento,2000,Uma pessoa branca,Mulher,Heterossexual / Cisgênero,Não respondeu,Comecei no último ano,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,P - 49cm tórax - 66cm comprimento,2003,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,Comecei no último ano,Iniciante,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,P - 49cm tórax - 66cm comprimento,2001,Uma pessoa parda,Homem,Parte da comunidade LGBTQIA+,Não,Há mais de três anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe @@ -89,13 +89,13 @@ Ingresso (2º lote),0,Não respondeu,Não respondeu,Não respondeu,ORG-BMVTHEH93 Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,GG - 60cm tórax - 76cm comprimento,1994,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,"Não programo em Python, mas sei programar em outras linguagens",Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,M - 52cm tórax - 70cm comprimento,2006,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não,Comecei no último ano,Intermediário,Não,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,PP - 46cm tórax - 63cm comprimento,2005,Uma pessoa parda,Mulher,Heterossexual / Cisgênero,Não,"Não programo em Python, mas sei programar em outras linguagens",Iniciante,"Não, mas pretendo",Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe -Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,G - 56cm tórax - 73cm comprimento,2003,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Nenhuma,Não sei programar,Ainda vou aprender,Não,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,G - 56cm tórax - 73cm comprimento,2003,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não,Não sei programar,Ainda vou aprender,Não,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe Meia entrada (2º lote),110,Não respondeu,Não respondeu,Não respondeu,UERN-MV4KG,RN - Rio Grande do Norte,G - 56cm tórax - 73cm comprimento,2005,Uma pessoa negra,Mulher,Parte da comunidade LGBTQIA+,Não respondeu,Há mais de três anos,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,M - 52cm tórax - 70cm comprimento,2007,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de três anos,Avançado,Sim,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe Ingresso (2º lote),260,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,M - 52cm tórax - 70cm comprimento,2002,Uma pessoa branca,Homem,Parte da comunidade LGBTQIA+,Não respondeu,Há mais de um ano,Iniciante,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Ingresso (2º lote),0,Não respondeu,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,CE - Ceará,P - 49cm tórax - 66cm comprimento,1991,Uma pessoa branca,Mulher,Heterossexual / Cisgênero,Não,Comecei no último ano,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Não respondeu Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,GG - 60cm tórax - 76cm comprimento,2002,Uma pessoa parda,Mulher,Parte da comunidade LGBTQIA+,Não,Comecei no último ano,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Ingresso (2º lote),0,Não respondeu,Não respondeu,Não respondeu,VALHA-MEU-PY,PA - Pará,3G - 64cm tórax - 78cm comprimento,1992,Uma pessoa indígena,Mulher,Parte da comunidade LGBTQIA+,Múltipla,Há mais de dez anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu +Ingresso (2º lote),0,Não respondeu,Não respondeu,Não respondeu,VALHA-MEU-PY,PA - Pará,3G - 64cm tórax - 78cm comprimento,1992,Uma pessoa indígena,Mulher,Parte da comunidade LGBTQIA+,Múltiplas,Há mais de dez anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu Ingresso (2º lote),0,Não respondeu,Não respondeu,Não respondeu,VALHA-MEU-PY,AL - Alagoas,G - 56cm tórax - 73cm comprimento,1998,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de cinco anos,Avançado,Não,Sim,Sim,Sim,Não respondeu,Não respondeu Ingresso (2º lote),0,Não respondeu,Não respondeu,Não respondeu,VALHA-MEU-PY,CE - Ceará,P - 49cm tórax - 66cm comprimento,1988,Uma pessoa parda,Mulher,Heterossexual / Cisgênero,Não respondeu,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,M - 52cm tórax - 70cm comprimento,2006,Uma pessoa parda,Mulher,Parte da comunidade LGBTQIA+,Não respondeu,Há mais de um ano,Intermediário,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe @@ -113,9 +113,9 @@ Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não re Ingresso (2º lote),260,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PB - Paraíba,G - 56cm tórax - 73cm comprimento,1997,Uma pessoa negra,Mulher,Parte da comunidade LGBTQIA+,Não respondeu,Há mais de dez anos,Avançado,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Ingresso (2º lote),260,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PB - Paraíba,GG - 60cm tórax - 76cm comprimento,1992,Uma pessoa branca,Mulher,Parte da comunidade LGBTQIA+,Não respondeu,Não sei programar,Ainda vou aprender,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Ingresso (2º lote),260,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,GG - 60cm tórax - 76cm comprimento,1988,Uma pessoa branca,Homem,Parte da comunidade LGBTQIA+,Não respondeu,Há mais de um ano,Intermediário,Não,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe -Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,1994,Uma pessoa parda,Mulher,Parte da comunidade LGBTQIA+,Autismo,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,VALHA-MEU-PY,ES - Espírito Santo,4G - 68cm tórax - 80cm comprimento,1998,Uma pessoa negra,Homem,Heterossexual / Cisgênero,Nao,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu -Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,VALHA-MEU-PY,ES - Espírito Santo,4G - 68cm tórax - 80cm comprimento,1998,Uma pessoa negra,Homem,Heterossexual / Cisgênero,Nao,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu +Meia entrada (2º lote),130,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,1994,Uma pessoa parda,Mulher,Parte da comunidade LGBTQIA+,TEA,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,VALHA-MEU-PY,ES - Espírito Santo,4G - 68cm tórax - 80cm comprimento,1998,Uma pessoa negra,Homem,Heterossexual / Cisgênero,Não,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu +Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,VALHA-MEU-PY,ES - Espírito Santo,4G - 68cm tórax - 80cm comprimento,1998,Uma pessoa negra,Homem,Heterossexual / Cisgênero,Não,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,3G - 64cm tórax - 78cm comprimento,1992,Uma pessoa branca,Mulher,Heterossexual / Cisgênero,Não respondeu,Comecei no último ano,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,P - 49cm tórax - 66cm comprimento,1998,Uma pessoa parda,Mulher,Heterossexual / Cisgênero,Não respondeu,Não sei programar,Ainda vou aprender,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,VALHA-MEU-PY,CE - Ceará,GG - 60cm tórax - 76cm comprimento,1990,Uma pessoa parda,Mulher,Heterossexual / Cisgênero,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu @@ -133,7 +133,7 @@ Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não re Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,VALHA-MEU-PY,CE - Ceará,GG - 60cm tórax - 76cm comprimento,2004,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de um ano,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,P - 49cm tórax - 66cm comprimento,1997,Uma pessoa negra,Homem,Heterossexual / Cisgênero,Física e auditiva,Há mais de um ano,Intermediário,Sim,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,VALHA-MEU-PY,CE - Ceará,M - 52cm tórax - 70cm comprimento,1983,Uma pessoa branca,Mulher,Parte da comunidade LGBTQIA+,Não,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu -Meia entrada (3º lote),126,Não respondeu,Não respondeu,Não respondeu,ALUNOS_DA_NAY,CE - Ceará,G - 56cm tórax - 73cm comprimento,1966,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Nao,Não sei programar,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (3º lote),126,Não respondeu,Não respondeu,Não respondeu,ALUNOS_DA_NAY,CE - Ceará,G - 56cm tórax - 73cm comprimento,1966,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não,Não sei programar,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,VALHA-MEU-PY,SC - Santa Catarina,3G - 64cm tórax - 78cm comprimento,1974,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,LABCODES_8WPL3,CE - Ceará,4G - 68cm tórax - 80cm comprimento,1984,Uma pessoa parda,Mulher,Parte da comunidade LGBTQIA+,Não,Há mais de um ano,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,2003,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não,Há mais de um ano,Intermediário,Sim,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe @@ -144,20 +144,20 @@ Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,ORG-BMVTHEH93 Ingresso (3º lote),280,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,1985,Prefiro não responder,Prefiro não responder,Prefiro não responder,Não,Há mais de dez anos,Avançado,Sim,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,P - 49cm tórax - 66cm comprimento,2004,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de três anos,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,M - 52cm tórax - 70cm comprimento,2003,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não,"Não programo em Python, mas sei programar em outras linguagens",Iniciante,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,1999,Uma pessoa parda,Mulher,Parte da comunidade LGBTQIA+,sim,Comecei no último ano,Iniciante,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,1999,Uma pessoa parda,Mulher,Parte da comunidade LGBTQIA+,Sim,Comecei no último ano,Iniciante,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,RN - Rio Grande do Norte,M - 52cm tórax - 70cm comprimento,1995,Uma pessoa parda,Homem,Parte da comunidade LGBTQIA+,Não respondeu,Há mais de um ano,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Ingresso (3º lote),280,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,M - 52cm tórax - 70cm comprimento,1994,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não,Há mais de três anos,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,ORG-BMVTHEH93P2RD4AQ,SC - Santa Catarina,GG - 60cm tórax - 76cm comprimento,2001,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,CDC-WG3RFSA4WN6HVESQ,SC - Santa Catarina,G - 56cm tórax - 73cm comprimento,2000,Uma pessoa negra,Mulher,Heterossexual / Cisgênero,Não respondeu,Não sei programar,Ainda vou aprender,Não,Sim,Sim,Sim,Não respondeu,Não respondeu -Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,M - 52cm tórax - 70cm comprimento,1989,Uma pessoa parda,Homem,Heterossexual / Cisgênero,NÃO,Há mais de um ano,Iniciante,"Não, mas pretendo",Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,M - 52cm tórax - 70cm comprimento,1989,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não,Há mais de um ano,Iniciante,"Não, mas pretendo",Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,M - 52cm tórax - 70cm comprimento,1995,Uma pessoa negra,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de um ano,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Ingresso (3º lote),252,Não respondeu,Não respondeu,Não respondeu,ARTEMISIA10,RN - Rio Grande do Norte,3G - 64cm tórax - 78cm comprimento,1999,Uma pessoa branca,Mulher,Heterossexual / Cisgênero,Não,Comecei no último ano,Iniciante,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Meia entrada (3º lote),126,Não respondeu,Não respondeu,Não respondeu,PYLADIES_MEIA,CE - Ceará,P - 49cm tórax - 66cm comprimento,2000,Uma pessoa parda,Mulher,Parte da comunidade LGBTQIA+,"TEA, TDAH, FIBROMIALGIA",Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Meia entrada (3º lote),0,Não respondeu,Não respondeu,Não respondeu,MATHEUS-S36WN,PI - Piauí,G - 56cm tórax - 73cm comprimento,1999,Uma pessoa parda,Homem,Parte da comunidade LGBTQIA+,NÃO,Há mais de três anos,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Não respondeu -Meia entrada (3º lote),0,Não respondeu,Não respondeu,Não respondeu,MATHEUS-S36WN,PI - Piauí,G - 56cm tórax - 73cm comprimento,1993,Uma pessoa branca,Homem,Parte da comunidade LGBTQIA+,NÃO,"Não programo em Python, mas sei programar em outras linguagens",Ainda vou aprender,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Não respondeu +Meia entrada (3º lote),126,Não respondeu,Não respondeu,Não respondeu,PYLADIES_MEIA,CE - Ceará,P - 49cm tórax - 66cm comprimento,2000,Uma pessoa parda,Mulher,Parte da comunidade LGBTQIA+,"TEA, TDAH, Fibromialgia",Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (3º lote),0,Não respondeu,Não respondeu,Não respondeu,MATHEUS-S36WN,PI - Piauí,G - 56cm tórax - 73cm comprimento,1999,Uma pessoa parda,Homem,Parte da comunidade LGBTQIA+,Não,Há mais de três anos,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Não respondeu +Meia entrada (3º lote),0,Não respondeu,Não respondeu,Não respondeu,MATHEUS-S36WN,PI - Piauí,G - 56cm tórax - 73cm comprimento,1993,Uma pessoa branca,Homem,Parte da comunidade LGBTQIA+,Não,"Não programo em Python, mas sei programar em outras linguagens",Ainda vou aprender,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Não respondeu Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,P - 49cm tórax - 66cm comprimento,1998,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,3G - 64cm tórax - 78cm comprimento,2004,Uma pessoa branca,Homem,Heterossexual / Cisgênero,NÃO,Há mais de três anos,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Meia entrada (3º lote),126,Não respondeu,Não respondeu,Não respondeu,ALUNOS_DA_NAY,CE - Ceará,M - 52cm tórax - 70cm comprimento,2001,Uma pessoa branca,Mulher,Heterossexual / Cisgênero,Nao,Não sei programar,Ainda vou aprender,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,3G - 64cm tórax - 78cm comprimento,2004,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não,Há mais de três anos,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (3º lote),126,Não respondeu,Não respondeu,Não respondeu,ALUNOS_DA_NAY,CE - Ceará,M - 52cm tórax - 70cm comprimento,2001,Uma pessoa branca,Mulher,Heterossexual / Cisgênero,Não,Não sei programar,Ainda vou aprender,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,M - 52cm tórax - 70cm comprimento,2002,Uma pessoa branca,Outro,Parte da comunidade LGBTQIA+,Não,Comecei no último ano,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Ingresso (3º lote),280,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,P - 49cm tórax - 66cm comprimento,2008,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,Comecei no último ano,Iniciante,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PA - Pará,3G - 64cm tórax - 78cm comprimento,1997,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não,Há mais de um ano,Intermediário,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe @@ -165,15 +165,15 @@ Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não re Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,G - 56cm tórax - 73cm comprimento,2005,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de três anos,Intermediário,Sim,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,M - 52cm tórax - 70cm comprimento,2002,Uma pessoa branca,Mulher,Heterossexual / Cisgênero,Não respondeu,Comecei no último ano,Iniciante,"Não, mas pretendo",Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe Meia entrada (3º lote),0,Não respondeu,Não respondeu,Não respondeu,PYLADIES_FOR_62XE7,CE - Ceará,P - 49cm tórax - 66cm comprimento,1996,Uma pessoa parda,Mulher,Heterossexual / Cisgênero,Não,Há mais de cinco anos,Intermediário,Não,Sim,Sim,Sim,Não respondeu,Não respondeu -Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,PYLADIES_FOR_62XE7,CE - Ceará,M - 52cm tórax - 70cm comprimento,2006,Uma pessoa branca,Mulher,Heterossexual / Cisgênero,Não possuo,Há mais de um ano,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu +Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,PYLADIES_FOR_62XE7,CE - Ceará,M - 52cm tórax - 70cm comprimento,2006,Uma pessoa branca,Mulher,Heterossexual / Cisgênero,Não,Há mais de um ano,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,PYLADIES_FOR_62XE7,CE - Ceará,M - 52cm tórax - 70cm comprimento,1985,Uma pessoa parda,Mulher,Heterossexual / Cisgênero,Não respondeu,Comecei no último ano,Iniciante,Não,Sim,Sim,Sim,Não respondeu,Não respondeu -Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,GG - 60cm tórax - 76cm comprimento,1993,Uma pessoa parda,Homem,Heterossexual / Cisgênero,N,Não sei programar,Iniciante,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,GG - 60cm tórax - 76cm comprimento,1993,Uma pessoa parda,Homem,Heterossexual / Cisgênero,Não,Não sei programar,Iniciante,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Ingresso (3º lote),280,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,1983,Uma pessoa parda,Homem,Prefiro não responder,Não respondeu,Comecei no último ano,Iniciante,Sim,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe -Meia entrada (3º lote),0,Não respondeu,Não respondeu,Não respondeu,VALHA-MEU-PY,PI - Piauí,G - 56cm tórax - 73cm comprimento,1997,Uma pessoa parda,Homem,Prefiro não responder,NÃO,Há mais de um ano,Intermediário,Não,Sim,Sim,Sim,Não respondeu,Não respondeu -"Compre um, doe um (3º lote)",0,Não respondeu,Não respondeu,Não respondeu,VALHA-MEU-PY,CE - Ceará,P - 49cm tórax - 66cm comprimento,2002,Uma pessoa negra,Mulher,Parte da comunidade LGBTQIA+,não,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu +Meia entrada (3º lote),0,Não respondeu,Não respondeu,Não respondeu,VALHA-MEU-PY,PI - Piauí,G - 56cm tórax - 73cm comprimento,1997,Uma pessoa parda,Homem,Prefiro não responder,Não,Há mais de um ano,Intermediário,Não,Sim,Sim,Sim,Não respondeu,Não respondeu +"Compre um, doe um (3º lote)",0,Não respondeu,Não respondeu,Não respondeu,VALHA-MEU-PY,CE - Ceará,P - 49cm tórax - 66cm comprimento,2002,Uma pessoa negra,Mulher,Parte da comunidade LGBTQIA+,Não,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu Ingresso (3º lote),0,Não respondeu,Não respondeu,Não respondeu,PYLADIES_FOR_62XE7,CE - Ceará,M - 52cm tórax - 70cm comprimento,2002,Uma pessoa branca,Mulher,Parte da comunidade LGBTQIA+,Não respondeu,Comecei no último ano,Iniciante,Sim,Sim,Sim,Sim,Não respondeu,Não respondeu -Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,3G - 64cm tórax - 78cm comprimento,1999,Uma pessoa parda,Homem,Parte da comunidade LGBTQIA+,Nao,Há mais de três anos,Intermediário,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe -Ingresso (3º lote),252,Não respondeu,Não respondeu,Não respondeu,ARIANA10,CE - Ceará,3G - 64cm tórax - 78cm comprimento,1987,Uma pessoa parda,Homem,Heterossexual / Cisgênero,"Sim, visão monocular",Há mais de dez anos,Avançado,Sim,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe +Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,PI - Piauí,3G - 64cm tórax - 78cm comprimento,1999,Uma pessoa parda,Homem,Parte da comunidade LGBTQIA+,Não,Há mais de três anos,Intermediário,Não,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe +Ingresso (3º lote),252,Não respondeu,Não respondeu,Não respondeu,ARIANA10,CE - Ceará,3G - 64cm tórax - 78cm comprimento,1987,Uma pessoa parda,Homem,Heterossexual / Cisgênero,"Visão monocular",Há mais de dez anos,Avançado,Sim,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,SC - Santa Catarina,M - 52cm tórax - 70cm comprimento,1995,Uma pessoa branca,Mulher,Parte da comunidade LGBTQIA+,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Ingresso (3º lote),280,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,2002,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de três anos,Intermediário,"Não, mas pretendo",Sim,Sim,Sim,Não respondeu,Cartão de Crédito via Stripe Meia entrada (3º lote),140,Não respondeu,Não respondeu,Não respondeu,Não respondeu,CE - Ceará,G - 56cm tórax - 73cm comprimento,2002,Uma pessoa branca,Homem,Heterossexual / Cisgênero,Não respondeu,Há mais de cinco anos,Avançado,Sim,Sim,Sim,Não,Não respondeu,Cartão de Crédito via Stripe diff --git "a/graphs/2026/Com qual das op\303\247\303\265es abaixo voc\303\252 se identifica.png" "b/graphs/2026/Com qual das op\303\247\303\265es abaixo voc\303\252 se identifica.png" new file mode 100644 index 0000000000000000000000000000000000000000..679778a16e0449555a56f218552a23ae0884f7dc GIT binary patch literal 31020 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 ShA#HR&$HTZXI`++Bj$ge%^?c_ literal 0 HcmV?d00001 diff --git "a/graphs/2026/Como voc\303\252 classificaria seu n\303\255vel de conhecimento em Python.png" "b/graphs/2026/Como voc\303\252 classificaria seu n\303\255vel de conhecimento em Python.png" new file mode 100644 index 0000000000000000000000000000000000000000..b6625023ea1c2c6aa5a8d685b1f0f7313d083a7b GIT binary patch literal 31029 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 GA^!#=?rMqv literal 0 HcmV?d00001 diff --git "a/graphs/2026/Como voc\303\252 se identifica.png" "b/graphs/2026/Como voc\303\252 se identifica.png" new file mode 100644 index 0000000000000000000000000000000000000000..bb1af3c657ab6d8d699ed3f4392a25f7b6e54554 GIT binary patch literal 28004 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 literal 0 HcmV?d00001 diff --git "a/graphs/2026/Voc\303\252 programa em Python.png" "b/graphs/2026/Voc\303\252 programa em Python.png" new file mode 100644 index 0000000000000000000000000000000000000000..32658a9305eb0e9aff071ffa59acdca57a65b21a GIT binary patch literal 51176 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

J6N> z^w;yU!m8iLNNchJxIIReZGJ`W76%UNoO+~pDX9{xgWVBICpSGuaUt(2^!D?AG95ix z=Q}lZZk5(JR1QkP4oIvveG0M?=obyagY{&e%4c*tqpAaUvC42%9;yRhyWiA&ATrB! zd*9uhkHHCI=M{v%SryVSSM}jbcA|?Rk^B>4+lgwiYyOb{r2xTAgrsRDVTBE|_0WXw zs=R3`Jad87&lr|X-eV98fAcAmvx&w=bQ71RHEB_mFQ8wg8*$8fd-UAjFEHug()V3Yi~}%SI$C$NVGr*J2cOe9vw8HUUu-ruq!* z`V+pe1lOV9xGg6*K<09lqW zXLV~;y4JgNSmq0Kh6)CZn)hM$SRQ^h6F$byM-Lh<6(O_4a4?&)Bx*4TaE|K4$v@O@ z0ZQD5&TzwQ^K99`hgy(oc(_&1!zT3Y5OI!^ZBgl|oYOnRFrNsZ)@=k=ahl!okC18> z1}OvXG+0r*^juRFMkE#!53#rMH;{e&E$Jn+G8fo-;_@k6%E^e(_M!tkaqT>9oI94rvj#~ zid(RC!MjW<6A@$>RKwzka`Gc{A-KxN#hGU}!a$iAN;1T9#S?Z}{^{8%fa83_axisg zF;WS736L+=r^=LOJ;*@bs*67RO-)U{ zC(Mt7;AJBfjhz?Hj4wl0%)UM_{#JuJ{&Yx2{-rN}cFkn=;L3RMik6IWE6{h`(^@Eq z51ooWsI41Px1yqcHZ$qmkt64$<&Z(OA}7+4eEZ_g4agF%%kRer&y-2AE`;sdmM4ju zUTR}z_H?y;QR<$CZk-6LutcH#fg*N+%4UqCb8&wXf#SX4)oTsCi}nV&{{y>?4L0k{ q{aVu?x$O9dv;4n%!fN0{*f1CS5LG8@p9I>(yw=>>?Aoeb2mS-4ugUQM literal 0 HcmV?d00001 diff --git "a/graphs/2026/Voc\303\252 trabalha com Python.png" "b/graphs/2026/Voc\303\252 trabalha com Python.png" new file mode 100644 index 0000000000000000000000000000000000000000..00306cbd2c8a00fa72f5462c357745b961c2b3fc GIT binary patch literal 23005 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 literal 0 HcmV?d00001 diff --git a/scripts/csv-to-graphs.py b/scripts/csv-to-graphs.py new file mode 100755 index 0000000..eb45e1f --- /dev/null +++ b/scripts/csv-to-graphs.py @@ -0,0 +1,94 @@ +import re +import textwrap + +from datetime import date +from pathlib import Path +from matplotlib import pyplot as plt +from pandas import read_csv, DataFrame +from typer import Typer +from rich.console import Console + + +COLUMNS_TO_EXPORT = [ + r'.*python.*', + r'.*identi.*', + r'.*define.*', + r'.*defici.ncia.*', +] + +cli = Typer() +console = Console() + + +def get_columns_to_export(csv: DataFrame): + for column_to_remove in COLUMNS_TO_EXPORT: + for column_name in csv.columns: + if re.match(column_to_remove, column_name, re.IGNORECASE): + yield column_name + + +@cli.command() +def main(csv: Path, year: int | None = None): + # Reading the CSV file + console.print(f'Reading the file [bold]{csv}[/bold]...') + csv_content = read_csv(csv) + + # Reading the year from the CSV file name if not provided + if not year: + if re.match(r'\d{4}', csv.name): + year = int(re.search(r'\d{4}', csv.name).group()) + else: + year = date.today().year + + # Creating the export folder + export_path = Path(f'graphs/{year}') + export_path.mkdir(parents=True, exist_ok=True) + + # Get only the interesting columns to export + columns_to_plot = list(get_columns_to_export(csv_content)) + console.print(f'Exporting the columns [bold]{", ".join(columns_to_plot)}[/bold]...') + + for column in columns_to_plot: + file = export_path / f'{column.replace("?", "")}.png' + console.print(f'Exporting [bold]{file}[/bold]...') + + # Counting the column values + count = csv_content[column].value_counts() + + # Formatting the labels to fit in the graph + labels = [ + textwrap.fill(str(label), width=15) + for label in count.index + ] + + plot = count.plot( + kind='bar', + xlabel='', + figsize=(18, 9), + fontsize=16, + color="#0C23F7", + ) + plot.bar_label( + plot.containers[0], + labels=count, + fontsize=16, + ) + + # Adding the formatted labels + plot.set_xticklabels(labels) + + # Keep the x-axis labels horizontal + plot.tick_params( + axis='x', + labelrotation=0 + ) + + # Saving the graph to a file + figure = plot.get_figure() + figure.tight_layout() + figure.savefig(file) + plt.close(figure) + + +if __name__ == '__main__': + cli() \ No newline at end of file diff --git a/scripts/csv_to_graphs.py b/scripts/csv_to_graphs.py deleted file mode 100755 index 562cc43..0000000 --- a/scripts/csv_to_graphs.py +++ /dev/null @@ -1,22 +0,0 @@ -from pathlib import Path -from pandas import read_csv, DataFrame -from typer import Typer -from rich.console import Console - - -cli = Typer() -console = Console() - -@cli.command() -def main(csv: Path): - console.print(f'Reading the file [bold]{csv}[/bold]...') - csv_content = read_csv(csv) - - for column in csv_content.columns: - count = csv_content[column].value_counts() - plot = count.plot(kind='bar', title=column) - plot.get_figure().savefig(f'graphs/{column}.png') - - -if __name__ == '__main__': - cli() \ No newline at end of file