pythonbr | Unsorted

Telegram-канал pythonbr - Python Brasil

5459

0. Grupo de conversa sobre a ling de prog Python 1. Sem pirataria 2. respeite o coleguinha 3. respeita as minas 4. no seja babaca 5. Sem links de grupos do WhatsApp 6. Se alguém daqui te importunar no privado avise um admin

Subscribe to a channel

Python Brasil

(essa aqui que voce curtiu agorinha foi a parte que nào funciona dentro do asyncio - só em código síncrono, single threaded)

Читать полностью…

Python Brasil

Entao - no fim, com o signal handler por dentro do loop de asyncio, o negócio fica bem tranquilo --

é só o singla handler "nao fazer nada" que o "CTRL+C" é engolido (só lembrar de adicionar o outro sinal lá de ctrl_c se o sistema for windows) - aí voce consegue interagir com o loop (Dá pra agendar tasks com "call_soon", colocar coisas em queues, mudar variáveis globais - só nào recomendo interagir com "contextvars" de dentro do signalhandler.

```

Читать полностью…

Python Brasil

todas as comunidades de programação no telegram são bem prestativas, vale a pena olhar

Читать полностью…

Python Brasil

Muito obrigado Léo, vou continuar procurando então, preciso melhorar muito o que eu sei atualmente pra poder aproveitar a oportunidade que me encontro atualmente

Читать полностью…

Python Brasil

A sim, no caso esse seria o seu valor? Ou está falando no geral?

Читать полностью…

Python Brasil

sempre depende do quanto voce ta disposto a pagar, claro.
mas a hora aula pra isso fica na base de 100 reais a hora se a for profissional.

Читать полностью…

Python Brasil

e por fim, os testes que fiz ontem, com o jeito de esperar o KayboardInterrupt _fora_ do loop, mudar o estado global lá de fora, e entrar de novo no loop:
https://gist.github.com/jsbueno/a51b96e7344babedf5860b86a64d24bd

Читать полностью…

Python Brasil

mas o google trouxe isso aqui - é interessante pq é um core devel do Python (um dos "top 10" da linguagem, na real), também em duvida sobre o melhor pattern pra tratar exceções em loops async (nao tem a ver com ctrl-c diretamente) : https://discuss.python.org/t/asyncio-tasks-and-exception-handling-recommended-idioms/23806

Читать полностью…

Python Brasil

tem um jeito de colocar um "asyncio loop exception handler" também - mas tenho a impressao de que ele não é chamado no ctrl + c (que é uma "BaseException" - e não se enquadra como subclasse de "Exception")

Читать полностью…

Python Brasil

Kkkkkk, faz sentido!

Eu ontem tava quebrando a cabeça, mas hoje já acordei com uma ideia idiotamente simples que vai funcionar 😅

Mas obrigado pela ajuda, li tudo, e tem muita coisa boa! Vou testar depois essa solução de qualquer forma, para testar e ver no que dá. Vai ser um ótimo experimento kkkkkk

Читать полностью…

Python Brasil

"Se está soando complicado é por que .... talvez seja complicado :-)" o zen of Python já manda na lata que "If the implementation is hard to explain, it's a bad idea. " - nao deve ser por aí entao. :-)

Читать полностью…

Python Brasil

(hmmm fiz uns testes aqui: mais facil falar do que fazer:

O "ctrl + c" vai realmente votlar da chamada "asyncio.run" de uma vez: sem chance de tratar a interrupcao dentro de uma task com try/except . Se usar manualmente "loop.run_until_complete" - voce consegue re-entrar no loop que foi interrompido, e continuar as tasks que estao lá - (com outra chamada ao "run_until_complete" )

Entao, na clausula except no código _sincrono_, FORA do eventloop - voce tem que atualizar algum estado global, que suas tasks vao checar, e cancelar as tasks relevantes, por dentro do código assincrono, depois que re-entrar nele.

Se está soando complicado é por que .... talvez seja complicado :-)

O callback de signal pode funcionar - mas tambem vai te render umas experiencias "interessantes".
(acho que tem uma opcao para um signal handler dentro do loop asyncio

https://docs.python.org/3/library/asyncio-eventloop.html#unix-signals aqu - nao do modulo singal)

Читать полностью…

Python Brasil

os outros sinais nao tem como pegar com try/except, mas ctrl+c tem - aproveita! :-)

Читать полностью…

Python Brasil

mas signal em geral pode ser complicado - no caso especifico de ctrl+c, só colocar o "try...except KeyboardInterrupt" em volta da sua entrada no async (isso é o "asyncio.run()" deve ficar dentro desse try) deve ser suficiente. ou voce teve problemas com isso?

Aí, pode colocar blocos "try/finally" pras finaliacoes especifcias na parte mais interna do codigo ( ou mesmo outros 'except KeyboardInterrupt' - mas sempre termine o bloco com "raise" de novo, pra escecao continuar se propagando até finalizar o bloco mais de fora)

Читать полностью…

Python Brasil

Não sei qual os está usando.

Se for no windows tem um sinal pra isso. Exatamente o que você quer

https://docs.python.org/3/library/signal.html#signal.CTRL_C_EVENT

Читать полностью…

Python Brasil

import signal, asyncio


async def a():
print("starting")
await asyncio.sleep(3)
print("finishing")


def handler(loop):
print(f"ctrl + c detected in task in {loop}")


def main():
loop = asyncio.new_event_loop()
loop.add_signal_handler(signal.SIGINT, handler, loop)
loop.run_until_complete(a())
loop.close()


main()

Читать полностью…

Python Brasil

Faz sentido, muito obrigado pela atenção, a gente consegue seguir no PV?

Читать полностью…

Python Brasil

geral.
eu nao moro no brasil, meu valor eh de 100 euros/hora.

Читать полностью…

Python Brasil

se seu interesse é em PHP faz mais sentido procurar em grupos específicos de PHP, não tenho certeza se posso postar aqui mas se pesquisar php e laravel nos grupos do telegram você acha os brasileiros

Читать полностью…

Python Brasil

isso se a pessoa morar no brasil pra dar a aula, porque custo de vida nao eh igual em todo mundo.

Читать полностью…

Python Brasil

Pessoal, me tira uma dúvida, estava precisando de um professor ou tutor de programação, para linguagens de js e alguns de seus frameworks, PHP e Laravel, SQL, queria saber se existe alguém aqui que tenha essas competências e também saber sobre valores, preciso de ajuda porque notei que sozinho não tenho conseguido avançar mais, então queria ver se existe alguém que poderia me ensinar, claro, discutindo valores normalmente, coisa de 1h por dia ou a combinar

Читать полностью…

Python Brasil

Mais uma curiosidade que a gente não se dá conta também:

Se sua task para num await, e enquanto ela está awaitando uma exceção acontece (tipo o KeyboardInterrupt), essa exceção NAO ACONTECE dentro da task: por que do ponto de vista da task, ela está "processando a linha que tem o await" - mas "no mundo real" o interpretador tá rodando código em outro lugar - no loop, e em outras tasks - o 'KeyboardInterrupt" não acontece dentro da task:


Dá pra ver com um negocio desses:

async def b(n):
try:
await asyncio.sleep(5)
except KeyboardInterrupt:
print(f"CTRL+C on task {n}")
async def c():
t = asyncio.create_task(b(1))
await asyncio.sleep(6)
await t
asyncio.run(c())

Читать полностью…

Python Brasil

https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.set_exception_handler

A noticia triste: acabou a era de "quer buscar algo na internet? por no google e clica no primeiro link" _ busquei com os termos "python asyncio set exception handler¨ e o google NAO POE um link pra pagina correta na documentação (ele até tem um link pros dos do asyncio, mas não é trivial navegar a partir de lá) - precisei por a mesma busca no duckduckgo .

Читать полностью…

Python Brasil

eu fiquei mais um pouco ontem, e fiz funcionar a "abordagem dificil" que coloquei acima - mas tenta o in-loop signal handler mesmo -

Читать полностью…

Python Brasil

🐍 [Vaga] Python e Node.js Developer (CLT)

A ProFUSION está contratando devs para trabalhar em projetos internacionais com Python (Django, FastAPI) e Node.js (Express, NestJs, Fastfy).

O que oferecemos:

- CLT com benefícios completos (plano de saúde/odonto sem coparticipação, VR R$1.100, PLR)
- Híbrido/Remoto:
- Híbrido 2x/semana para quem é de Campinas/SP ou Curitiba
- Híbrido 1x/semana para quem está a até 120 km destas cidades (SP inclusive)
- 100% Remoto caso contrário
- Empresa fundada e gerida por devs — code review é cultura aqui, não burocracia
- Mentoria, aulas de inglês, incentivo a palestras e publicações

Sobre nós:

Somos u
ma empresa de desenvolvimento de software de Campinas-SP. Contribuímos para projetos open source tais como WebKit, ngx-socket-io, Apollo, Turso e SystemD.

Acesse nosso site e nosso blog para nos conhecer melhor:
https://profusion.mobi/index-en.html
https://medium.com/profusion-engineering

Interessou?

👉 Detalhes e inscrição: hhttps://sites.google.com/profusion.mobi/vagas/home/python_node_dev_pybr

Читать полностью…

Python Brasil

TLDR: veja https://docs.python.org/3/library/asyncio-eventloop.html#unix-signals  para ter signal handling "por dentro" do loop de eventos.

Читать полностью…

Python Brasil

ah - vi a parte que voce quer "voltar pro main do script": é isso - em qualquer ponto que voce tiver um "except KeyboardInterrupt" e nao der "raise" de volta, voce tem o controle de volta, e seu codigo Python continua rodando no final do bloco except.

Читать полностью…

Python Brasil

com um callback de signal, voce vai estar rodando "paralelo" as tasks asyncio que stao em execucao, na mesma trhread, mas com o código interrompido em um ponto aleatorio em uma delas (nao só onde tem "await") .

Читать полностью…

Python Brasil

Nos unix o sinal é SIGINT

Читать полностью…

Python Brasil

Duas coisas da biblioteca padrão que podem te ajudar. Signal e também aexit

Читать полностью…
Subscribe to a channel