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

IPv6 node addresses produce an invalid request URL

Aberta Para iniciantes
#154 0 comentários 0 reações 0 responsáveis Ver no GitHub

@RaphaelFakhri já está trabalhando nisso.

Desde 22/10/2026.

  • #155 de @RaphaelFakhri — aberto

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
82/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
python
Domínio
backend, networking

Direção de pesquisa

Comece lendo Node.url() e Node.from_url(), pois a issue identifica ambos como pontos em que os colchetes de IPv6 são perdidos ou omitidos. Reproduza o problema com os exemplos fornecidos de URL e node dict e, em seguida, confira os testes do cliente para a construção de URLs de nós. O trabalho estará concluído quando ambas as configurações produzirem http://[::1]:8108 e a requisição não falhar mais com httpx.InvalidURL.

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

Descrição

A node with an IPv6 address can't be reached. Node.url() joins the host and port as {host}:{port} without enclosing an IPv6 literal in brackets, so every request fails with httpx.InvalidURL before it is sent.

Both ways of configuring a node are affected:

  • A URL string such as "http://[::1]:8108". Node.from_url takes the host from urlparse(url).hostname, which strips the brackets, so the host is stored as ::1.
  • A node dict such as {"host": "::1", "port": 8108, "protocol": "http"}.

Steps to reproduce

import typesense

client = typesense.Client({
    "api_key": "xyz",
    "nodes": ["http://[::1]:8108"],
    "num_retries": 0,
})
print(client.api_call.node_manager.nodes[0].url())
client.operations.is_healthy()

Actual behavior

http://::1:8108
httpx.InvalidURL: Invalid port: ':1:8108'

Expected behavior

The client sends requests to http://[::1]:8108.

Environment

  • typesense-python: master (8727d2b)
  • httpx 0.28.1
Linguagem predominante
Python
Estrelas
247
Forks
66
Merge médio
1d 1h
PRs com merge (30d)
7

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

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

Todas as issues de typesense/typesense-python

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.