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

Docs: socket.htons() and friends raise ValueError for negative input since 3.14

Aberta Para iniciantes
#159,012 1 comentário 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

@vetrovk já está trabalhando nisso.

Desde 9/10/2026.

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

docs
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

Abrir no Codespaces

Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.

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 python/cpython

Todas as issues de python/cpython

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

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