irmão mais velho • Manauara morando em São Paulo desde março 2020 • Formado em Jornalismo, comecei a programar aos 26 anos na faculdade de Engenharia de Computação • Trabalho como desenvolvedor desde 2013 • Membro do PyNorte, fiz parte da comissão de candidatura de Manaus para sediar a Python Brasil 2021 2022 - será a primeira edição na Região Norte! • Estudo Python, GoLang, Microsserviços e Scrum Felipe Carvalho, 33 anos Desenvolvedor back-end
e outras datas; • Novo operador para unir dicionários; • Utilização de type hints genéricos; • Novo método para remover prefixos e sufixos de strings; • Ciclo de lançamento anual do Python; • Novo parser do Python;
aproximadamente 16 meses; • Começou em junho de 2019; • Traz novas funcionalidades, bug fixes e melhorias; • Versão candidata 1 já está disponível para download; • Versão candidata 2 será publicada dia 14 de setembro; • Release final será em 10 de outubro; • Após o lançamento, microversões com bugfixes serão lançados a cada 2 meses por 1 ano e meio; • Depois do release da versão 3.10, a 3.9 só receberá atualizações de segurança por mais 3 anos e meio - completando 5 anos de suporte;
março de 2019; • Motivada pelo fato de existirem várias maneiras de mergear dicionários em Python, mas cada uma delas apresenta algumas desvantagens. • Precisa de uma variável temporária, não se tornou popular, não é intuitiva ou é verbosa; • Não há um modo simples de efetuar como em list + list;
| (pipe) para unir/mesclar, mantendo o valor do dict à direita (último) para chaves em comum; • Operação não altera os dicts originais; • União entre dicts não é comutativa; • Para criar um novo dict da união, basta guardar em uma nova variável;
março de 2019; • Type Hints foram incluídos ao tempo de execução do Python de forma incremental pelas PEPs 484, 526, 544, 560 e 563 - o que levou a existência de coleções duplicadas no módulo typing (como por exemplo o typing.List e o built-in list); • A PEP 585 propõe o suporte a sintaxe genérica de todas as coleções disponíveis no typing;
março de 2020; • Traz os métodos removeprefix() e removesufix() para a API do Python; • Pode ser usado com Unicode str, binary bytes, bytearray e collections.UserString. • Existem diversas ideias e implementações de funções desse tipo no Python Ideias - algumas delas sugerem o uso de expressões regulares (o que exige a importação de um módulo e código menos limpo);
com os métodos lstrip() e rstrip(); • Os problemas ocorrem quando os usuários esperam o comportamento de remoção de prefixos e sufixos, mas são surpreendidos com o fato do lstrip e rstrip remover conjunto de caracteres e não substrings;
de 2019; • Define um calendário de lançamentos para as próximas versões do Python, a partir da 3.9; • Estabelece releases anuais, sempre em outubro; • Entre as vantagens dessa medida, temos: • Fazer as releases menores - e assim reduzir o atrito provocado pelas mudanças; • Trazer novas funcionalidades e bug fixes o quanto antes para os usuários; • Criar um calendário previsível com lançamentos em outubro e a fase beta no final de maio (após os sprints da PyCon US); • Sincronizar o cronograma com distros como o Fedora (que tem auxiliado a encontrar regressões antecipadas);
• Cinco primeiros meses se sobrepõem aos estágios de versões beta e candidato da versão Python 3.(X-1).0 - portanto não é versionado; • O sete meses seguintes são destinados às versões alfa onde novas features e bug fixes são incluídos; • Então, três meses para versões beta onde novos bug fixes podem ser incluídos, mas novas funcionalidades não entram; • Os dois últimos meses são para as duas (ou mais) releases candidatas e o release da versão final;
março de 2020, que tem o Guido van Rossum como um dos autores; • CPython compila o código em Python para bytecode e interpreta o bytecode; • Historicamente, o CPython é o primeiro a implementar as novas funcionalidades e o Python usa CPython como base; • Substituição do parser baseado na gramática LL(1) para um baseado em PEG: • Vai trazer mais flexibilidade ao analisador; • Permite a eliminação de diversos “hacks” para contornar a limitação do LL(1); • Vai reduzir o custo de manutenção relacionadas a algumas áreas;
no Python 3.9 e ele será totalmente retirado com o Python 3.10; • Em testes de performance, o novo parser se mostrou mais rápido, mas consumiu 10% a mais de memória - o que a PEP considera aceitável e diz provavelmente existir meios de reduzir o consumo de memória;
[Release] Python 3.9.0b4 is now ready for testing Switch Python’s parsing tech to something more powerful than LL(1) PEG Parsing Series Overview PEP 584 -- Add Union Operators To dict PEP 585 -- Type Hints Generics in Standard Collections PEP 602 -- Annual Release Cycle for Python PEP 616 -- String methods to remove prefixes and suffices PEP 617 -- New PEG parser for CPython