Novidades a partir de fevereiro de 2024 – Real Python

Como o mês de fevereiro está raro salto e com um dia extra este ano, a comunidade Python seguiu o exemplo!

As versões 3.12 e 3.11 do Python recebem um correção de segurançae as distribuições de código-fonte do CPython agora documentam o cadeia de suprimentos de software para permitir uma detecção mais eficaz de vulnerabilidades. Outra ferramenta baseada em Rust chega ao ecossistema Python, prometendo melhorias interessantes para a ferramenta existente gerenciamento de pacotes sistema.

Olhando para o futuro, a revelação do PyCon US 2024 nos dá um vislumbre da próxima conferência Python. Em outras notícias, a Python Software Foundation lança o Horário comercial para aumentar o apoio da comunidade ao Programa de Subsídios.

Vamos nos aprofundar nos maiores notícias sobre Python do mês passado!

Python 3.12 e 3.11 recebem uma correção de segurança

O Python 3.12.2 e Python 3.11.8 foram lançadas versões de patches, incorporando centenas de commits e uma série de correções de bugs. Além disso, ambas fornecem um pequena correção de segurança para um recurso obscuro do Python que permite a execução arbitrária de códigos.

Em poucas palavras, essa nova correção de segurança proíbe o processamento de path configuration files (.pth) localizado em um ambiente virtual do site-packages/ do ambiente virtual:

venv/
│
├── bin/
│
├── include/
│
├── lib/
│   │
│   └── python3.12/
│       │
│       └── site-packages/
│           │
│           └── .your-hidden.pth
│
├── lib64/
│
└── pyvenv.cfg

Em um sistema operacional do tipo Unix, qualquer arquivo fica implicitamente oculto quando seu nome começa com um ponto à esquerda. No Windows, um arquivo precisa do atributo correspondente definido para ficar oculto. Observe que a estrutura de diretório apresentada acima pode parecer um pouco diferente no Windows.

Os arquivos de configuração de caminho são arquivos de texto simples que o site na biblioteca padrão do Python analisa e processa automaticamente na inicialização do interpretador. Historicamente, esses arquivos ajudaram a facilitar a instalações editáveis e implementar ganchos no importação de máquinas. Basicamente, elas permitem que o senhor anexe pastas extras ao arquivo caminho de busca do Python, que pode ser acessado através do sys.path variável.

Infelizmente, .pth têm uma peculiaridade que possibilita a execução de qualquer código na inicialização:

Quando uma linha começa com a palavra import, ela é interpretada como código Python literal. Portanto, tecnicamente, é possível injetar código malicioso dessa forma. Para piorar a situação, as versões do Python anteriores àquelas com a correção de segurança mencionada executariam esse código a partir do .pth impedindo que o usuário inspecionasse o código e avaliasse o risco adequadamente:

Quando recebe um punhado de arquivos, o senhor, como uma pessoa cautelosa, verifica o conteúdo deles antes de executá-los. Se os arquivos de código-fonte do Python estiverem ocultos, tudo bem, porque o senhor viu que nada suspeito foi importado nos arquivos que executou. Mas os arquivos pth podem ser executados mesmo que o senhor não os veja e não haja referências nos arquivos visíveis. (Fonte)

No anúncio oficialfoi prometido que essa correção seria implementada nas versões anteriores do Python, incluindo Python 3.8, Python 3.9e Python 3.10pouco tempo depois.

Documentos SBOM estão disponíveis para CPython

Continuando com o tema da segurança, o Python 3.12.2 marca o início da inclusão de Lista de materiais de software (SBOM) documentos para CPython em diante. Esse é o resultado de esforços contínuos para melhorar a estratégia de gerenciamento de vulnerabilidades de segurança para o Python.

Os documentos SBOM representam a inventário de todos os componentes, módulos e bibliotecas que compõem o CPython, incluindo suas versões e as relações entre eles. Eles são um recurso valioso que facilita um melhor gerenciamento de segurança e conformidade. Ao detalhar o que está dentro das versões de origem do CPython, os SBOMs ajudam a identificar possíveis vulnerabilidades de segurança e questões de licenciamento que afetam o uso e a distribuição do software.

O documento SBOM que detalha as dependências do CPython usa o sabor JSON do Intercâmbio de dados de pacotes de software (SPDX) . O senhor pode encontrá-lo no código-fonte do CPython no GitHub, navegando até Misc/sbom.spdx.json. Como alternativa, o senhor pode obter os arquivos SBOM correspondentes aos artefatos que podem ser baixados diretamente do site página de lançamento da versão do Python fornecida.

Somente distribuições de fontes do Python têm seus SBOMs no momento. No entanto, as versões futuras também incluirão SBOMs de outros artefatos, como instaladores do Python para várias plataformas que podem ter dependências adicionais.

Para contextualizar, o senhor pode analisar o do GitHub aberto por Seth Larson, que é o desenvolvedor de segurança residente contratado pela PSF para assumir a responsabilidade pelas melhorias de segurança do Python.

Astral revela empacotamento de Python em Rust

Astral, a empresa fundada por Charlie Marsh, que ganhou fama após ser o autor de Ruff-um linter e formatador de código baseado em Rust para Python- tem revelado outra ferramenta chamada uv. Representa universalrefletindo a ampla aplicabilidade da uv planejada para o futuro. A ferramenta está sendo anunciada como uma Cargo para Pythoncom o objetivo de se tornar um substituto imediato para o resolvedores de dependências como pip, pip-tools e outros.

Como o uv é implementado em Rust, ele não depende do Python. A menos que o senhor precise compilar pacotes a partir da fonte, o uv é incrivelmente rápido. De acordo com os benchmarks oficiais, o uv pode ser entre dez e cem vezes mais rápido do que seus predecessores. Além disso, o uv tem uma interface familiar, o que o torna fácil de adotar, e produz um resultado indiscutivelmente mais amigável e informativo do que o pip.

Depois de instalar o uv, por exemplo, com pipx, o senhor pode criar ambientes virtuais e instale Dependências para elas usando estes comandos:

Cada subcomando representa um namespace isolado correspondente à ferramenta em questão. Por exemplo, uv venv imita a interface da ferramenta venv do Python até certo ponto, enquanto o módulo uv pip compartilha muitos argumentos de linha de comando com a ferramenta de empacotamento Python pip. Fique atento, pois mais subcomandos estão a caminho!

Apesar de estar nos estágios iniciais de desenvolvimento, o uv já teve um rápido crescimento, com os desenvolvedores resolvendo ativamente Problemas no GitHub, às vezes em questão de minutos, e implementando novos recursos em uma rápida sucessão. Essa capacidade de resposta, aliada a lançamentos frequentes, é a marca registrada da equipe do Astral, que segue os mesmos princípios de seu trabalho anterior no projeto Ruff.

Embora a UV, sem dúvida, traga muitos benefícios e, em geral, tenha sido bem recebido pela comunidade Python, ele também gerou alguma controvérsia. Os críticos argumentam que ele se soma ao conjunto já existente de ferramentas concorrentes, como o pip, pip-tools, pipx, Pipenv, Poesia, PDM, Hatch, e assim por diante. Isso pode lembrá-lo deste clássico webcomic do xkcd:

XKCD Comic #927: Padrões
XKCD Comic #927: Padrões (Imagem: xkcd)

Além disso, a decisão de construir uma empresa comercial em torno de ferramentas baseadas em décadas de trabalho de projetos de código aberto não foi bem recebida por alguns na comunidade Python. Também foram levantadas preocupações sobre o possível impacto negativo sobre essas ferramentas originais e seu futuro. Por fim, o Rust pode representar uma grande barreira de entrada para os desenvolvedores Python que gostariam de contribuir ou depurar uv, Ruff e outras ferramentas dessa nova onda.

Anunciada a programação da PyCon US 2024

PyCon US, um dos eventos mais esperados da comunidade Python, anunciou sua programação completa e palestrante principal para 2024. A conferência será realizada em maio deste ano em Pittsburgh e será presidido pelo Mariatta Wijaya pelo segundo ano consecutivo.

O anúncio revelou um número recorde de propostas de palestras recebidas para a conferência deste ano, totalizando quase mil! Os organizadores agradeceram aos voluntários que dedicaram seu tempo e conhecimento para revisar e selecionar as propostas de palestras. Sua contribuição ajudou a moldar uma agenda empolgante e diversificada, abrangendo uma ampla gama de tópicos.

Em resposta às constantes saúde e segurança infelizmente, as máscaras continuarão sendo obrigatórias para os participantes da conferência presencial. No entanto, para aqueles que não puderem comparecer pessoalmente ou preferirem participar remotamente, um opção de participação on-line também está disponível. Como sempre, as gravações das palestras serão carregadas no site canal da PyCon US no YouTube logo após o evento.

Não deixe de conferir Como tirar o máximo proveito da PyCon US se o senhor planeja participar da conferência e deseja ter uma ótima experiência.

A PSF apresenta o horário de atendimento do Programa de Subsídios

O Fundação de Software Python (PSF) é uma entidade sem fins lucrativos, voltada para a comunidade, que supervisiona o desenvolvimento e a promoção da linguagem de programação Python e seu ecossistema. Uma das responsabilidades da fundação inclui apoiar eventos e projetos centrados em Python por meio de um programa de subsídios patrocinado por doações de organizações e indivíduos.

Esses subsídios ajudam a financiar parcialmente custos como aluguel de local, serviço de bufê ou honorários de palestrantes em encontros, workshops e conferências locais. Subsídios de viagem geralmente fornecem ajuda aos membros da comunidade que, de outra forma, não poderiam se dar ao luxo de participar das conferências PyCon e se envolver com a comunidade Python em geral. Nos últimos anos, a PSF concedeu centenas desses subsídios.

Depois de a turbulência do ano passado Em torno do pedido de subsídio da DjangoCon Africa, o PSF prometeu realizar uma retrospectiva interna do processo de revisão de subsídios e tomar medidas para melhorá-lo. Em fevereiro deste ano, eles anunciaram a introdução de um sistema recorrente de horário de funcionamento do programa de subsídios como parte dessa iniciativa. Seu principal objetivo é estabelecer uma linha direta de comunicação com a comunidade Python:

O PSF Grants Program Office Hours é um horário de expediente baseado em bate-papo somente de texto hospedado no site Discórdia da Python Software Foundation às 2-3PM UTC (9AM Eastern) na terceira terça-feira do mês. (Fonte)

O PSF convida qualquer pessoa interessada no programa de subsídios a participar e fazer perguntas, compartilhar links para os rascunhos de seus pedidos de subsídios ou fornecer feedback e ajudar a moldar o futuro do programa.

O evento será realizado pelo equipe do PSF membros. Inicialmente, elas serão Laura Graves, contadora sênior, e Marie Nordin, gerente de comunicações comunitárias.

O que vem por aí para a Python?

Fevereiro de 2024 foi um mês movimentado. Desde os aprimoramentos de segurança nos últimos lançamentos de patches do Python até a introdução de documentos SBOM para CPython, está claro que a segurança é uma prioridade máxima. A entrada de uma nova ferramenta baseada em Rust no espaço de empacotamento do Python é um desenvolvimento significativo que pode mudar a forma como os desenvolvedores do Python gerenciam dependências e ambientes virtuais.

A expectativa para a PyCon US 2024 está aumentando. Com a programação e os principais palestrantes anunciados, o evento deste ano promete uma riqueza de conhecimentos e oportunidades de networking para os entusiastas do Python. Além disso, a introdução do PSF do Grants Program Office Hours é um passo louvável em direção a uma maior transparência e envolvimento da comunidade.

Qual é a sua notícia favorita sobre Python em fevereiro? Deixe-nos saber nos comentários. Feliz Pythoning!