ExpertiDict

Python · Avançado · Inglês · Técnico

namespace package

/ˈneɪmˌspeɪs ˈpækɪdʒ/substantivo

Pacote sem arquivo __init__.py, formado pela junção de diretórios com o mesmo nome em locais diferentes do caminho de importação. Permite dividir um pacote entre várias distribuições.

Onde usar

Usado em plugins e em grandes empresas, em que times diferentes publicam partes de um mesmo prefixo, como empresa.dados e empresa.web. Também aparece por acidente quando se esquece o __init__.py.

Em código

empresa/        # sem __init__.py
  dados/
    __init__.py

# em outro lugar do sys.path:
empresa/web/__init__.py

Exemplos

This is a namespace package, there's no init file.

Isso é um namespace package, não há arquivo init.

Each team ships its own piece of the namespace package.

Cada time entrega sua parte do namespace package.

Cuidado

Esquecer o __init__.py cria silenciosamente um namespace package, o que pode esconder um erro de estrutura e confundir ferramentas de teste.

Sinônimos

pacote de namespace

Antônimos

pacote regular

Veja também

Todos os termos de Python