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__