sublime script atom python code-completion python-import

script - python intellisense sublime text



Ocultar módulos externos al importar un módulo(por ejemplo, con respecto a la finalización del código) (3)

He venido a gustarme y usar este enfoque. Comenzando con la estructura de su proyecto, matrix_kit todo el contenido de matrix_kit que no desea mostrar.

the_toolkit: __init__.py basic_io.py simple_math.py matrix_kit.py ...

Mueva matrix_kit.py en un paquete con el mismo nombre y coloque un guión bajo al principio del nombre del módulo:

the_toolkit: __init__.py basic_io.py simple_math.py matrix_kit: __init__.py _matrix_kit.py ...

Ahora en _matrix_kit.py agregue una variable global __all__ = [...] listando los nombres de todas las funciones / clases / variables que desea que estén visibles. Luego en matrix_kit / init .py agregue esta línea:

from ._matrix_kit import *

Solo importará las cosas enumeradas en el atributo __all__ del módulo. Luego, al importar matrix_kit como lo has hecho antes, realmente importará __init__.py y su contenido.

Tengo varios módulos en un paquete (una especie de kit de herramientas), que uso en mis proyectos. La estructura se ve así:

the_toolkit: __init__.py basic_io.py simple_math.py matrix_kit.py ...

Ahora cuando uso IPython o la finalización del código en VIM después de importar un módulo del paquete con

from the_toolkit import matrix_kit

Obtengo un montón de módulos / funciones que matrix_kit.py importa ( array , math , log , format_exc , format_exc , etc.), junto con las funciones reales que matrix_kit define. ¿Cómo puedo filtrar todo lo demás, ya que no me interesan las array o array en una terminación de código del módulo matrix_kit ?

El __init__.py está vacío como lo sugieren muchos pitonistas, ¿o es la manera de hacerlo?


Tuve el mismo problema y lo resolví agregando un guión bajo a todas mis importaciones. No parece brillante, pero logra lo que buscas.

from __future__ import division as _division import numpy as _np import pandas as _pd

Solo se importan las cosas que se inician sin un guión bajo cuando se importa el módulo usando desde .. import *. o cuando usas tabulación completa en IPython o spyder.


puede obtener algo de kilometraje de __all__