5460
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
É que o uv, o tox e o pre-commit isolam dependências de formas diferentes
Читать полностью…
ambos estao no pyproject.toml, o tox esta configurado como [tool.tox] pra ser invocado pell uv
Читать полностью…
Mas esse tox é uma dependência do seu projeto ou você usa ele como uma tool do uv? E o pre-commit, a mesma pergunta
Читать полностью…
ta me parecendo problema de cache, mas so acontefe ap chamar ele de 2 formas diferentes
Читать полностью…
tem cara de alguma coisa com os paths. tem a msg de erro?
Читать полностью…
quando eu rodo o pre-commit via uv run tox -e lint apos ter instalado ele via git commit, ai ele da erro.
povo, tou tentando fazer um paranaue aqui com tox e pre-commit.
o pre-commit ta instalado pra rodar black, ruff e mais uns paranaues.
meu tox.ini so tem um campo pra chamar diretamente o pre-commit assim eu nao preciso configurar 2 coisas.caso eu chame o tox via:uv run tox -e lint, coisas instalam e o pre-commit roda.
ai eu *apago* o cache do pre-commit, pra forcar uma instalacao do zero.git commit -a -m"teste", pre-commit roda.
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()
Faz sentido, muito obrigado pela atenção, a gente consegue seguir no PV?
Читать полностью…
geral.
eu nao moro no brasil, meu valor eh de 100 euros/hora.
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
Читать полностью…
isso se a pessoa morar no brasil pra dar a aula, porque custo de vida nao eh igual em todo mundo.
Читать полностью…
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
Читать полностью…
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())
Sim, a config está, mas é uma dependência do projeto? Ou uma tool do uv?
Читать полностью…
as regras do pre-commit ja tao todas feitas, pra todos os linters
Читать полностью…
O que você quer fazer exatamente? Rodar o tox no pre-commit ou rodar o pre-commit no tox?
Читать полностью…
tenho, numa maquina que ctrl c ta bloqueado, mas:
ao chamar pre-commit via git commit e depois via tox -e lint, aparentemente trigga um reinstall.
o erro que pego eh:
error: Directory not empty: build/bdist.linux/wheel/flake-version.info
projeto eh todo organizado via uv, fora isso, nao tenho ideia do que pode estar acontecendo.
quando eu rodo o pre-commit via git commit, *apos* ter instalado ele via uv run tox -e lint, ai ele da erro.
(essa aqui que voce curtiu agorinha foi a parte que nào funciona dentro do asyncio - só em código síncrono, single threaded)
Читать полностью…
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.
```
todas as comunidades de programação no telegram são bem prestativas, vale a pena olhar
Читать полностью…
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
Читать полностью…
A sim, no caso esse seria o seu valor? Ou está falando no geral?
Читать полностью…
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.
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
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
Читать полностью…