Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Use multi-phase initialisation (PEP 489)

Aberta
#263 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 3 dias

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
5/5
Tempo estimado
Mais de uma semana
Facilidade para iniciantes
35/100
Tipo de issue
Refatoração
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
c, python
Domínio
backend

Direção de pesquisa

Comece lendo a PEP 489 e a documentação de inicialização de módulos de extensão do Python; em seguida, localize os pontos de entrada de inicialização dos módulos de extensão no repositório. O trabalho estará concluído quando os módulos de extensão usarem fases de criação e execução em vez de uma inicialização de fase única, o comportamento existente dos módulos for preservado e os testes relevantes passarem.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Hello,

Please consider adopting multi-phase init for your Python extension modules. In short, multi-phase makes extension modules behave more like pure-Python modules and means that the import system can determine what a capabilities a module has before executing it.

Multi-phase initialisation was introduced in PEP 489 for Python 3.5. It replaces the previous 'single-phase' mechanism by splitting the module creation process into creation and execution phases. Quoting from the documentation:

Extension modules created this way behave more like Python modules: the initialization is split between the creation phase, when the module object is created, and the execution phase, when it is populated. The distinction is similar to the __new__() and __init__() methods of classes.

It is the preferred mechanism for extension module initialisation, and there is a proposal to deprecate single phase init.

Thanks,
Adam

Linguagem predominante
C
Estrelas
643
Forks
124
Merge médio
2d 20h
PRs com merge (30d)
8

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de indygreg/python-zstandard

Todas as issues de indygreg/python-zstandard

Issues semelhantes

Mais issues de C

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.