Docs: socket.htons() and friends raise ValueError for negative input since 3.14
Mantenedores costumam responder em até 1 dia
Avaliação
- Dificuldade
- 1/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 78/100
- Tipo de issue
- Documentação
- Clareza
- Claramente especificada
- Status de atividade
- Ativa
- Stack de tecnologia
- python
- Domínio
- documentation
Direção de pesquisa
Leia Doc/library/socket.rst e examine a documentação de htons(), ntohs(), htonl() e ntohl(). Confirme a mudança descrita nas exceções com o exemplo ou os testes fornecidos e, em seguida, documente o comportamento da versão 3.14 para as quatro funções ou nas notas de portabilidade da versão 3.14. A tarefa estará concluída quando a documentação distinguir ValueError para entradas negativas de OverflowError para valores grandes demais.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Documentation
Doc/library/socket.rst, htons() (and ntohs()):
.. versionchanged:: 3.10
Raises OverflowError if x does not fit in a 16-bit unsigned integer.
Since 3.14 a negative argument raises ValueError ("Cannot convert negative
int"); only too-large values still raise OverflowError. htonl()/ntohl() behave the same way:
import socket
for f in (socket.htons, socket.ntohs, socket.htonl, socket.ntohl):
for v in (-1, 1 << 40):
try:
f(v)
except Exception as e:
print(f.__name__, v, type(e).__name__)
| Version | -1 |
1 << 40 |
|---|---|---|
| 3.13 | OverflowError | OverflowError |
| 3.14 / 3.15 | ValueError | OverflowError |
This probably came with gh-132987 (__index__() support in the socket module).
It may be intended, but it is not documented, and except OverflowError
code written against the 3.10 note no longer catches negative input.
Suggested fix: add a versionchanged:: 3.14 note to all four functions, or
mention it in What's New in 3.14 (Porting).
Linked PRs
- gh-159047
- Linguagem predominante
- Python
- Estrelas
- 77.6k
- Forks
- 37.6k
- Merge médio
- 1d 20h
- PRs com merge (30d)
- 593
Preparar o ambiente
Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de python/cpython
-
docs
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 85/100
Mantenedores costumam responder em até 1 dia
-
docs
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
python/cpython#159061 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
3.14 3.15 3.16 stdlib type-bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
python/cpython#159044 · 7 comentários ·
Mantenedores costumam responder em até 1 dia
-
A minor problem with the section "6.10.2. Membership test operations" from the language reference.Abertadocs pending
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
python/cpython#159034 · 5 comentários ·
Mantenedores costumam responder em até 1 dia
-
stdlib topic-profiling type-bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia
Todas as issues de python/cpython
Issues semelhantes
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
awslabs/visual-asset-management-system#414 ·
Mantenedores costumam responder em até 1 dia
-
bug v1 v2
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
modelcontextprotocol/python-sdk#3670 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
aicell-lab/bioengine#232 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
modelscope/evalscope#1836 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100