Articles of espacios de nombres de

¿Por qué los módulos se importan como _ en otro módulo?

Hay varios casos en la biblioteca estándar de Python donde los módulos se importan con un guión bajo ( _ ) en su nombre. Me pregunto por qué esto es necesario, ya que está bajo el nombre del módulo de todos modos y from … import * respetará la variable __all__ para lo que se […]

Python: es posible llamar a un método estático desde dentro de la clase sin calificar el nombre

Esto es molesto: class MyClass: @staticmethod def foo(): print “hi” @staticmethod def bar(): MyClass.foo() ¿Hay alguna manera de hacer que esto funcione sin nombrar a MyClass en la llamada? es decir, ¿puedo decir foo() en la última línea?

Acceso al espacio de nombres del módulo de llamada.

Sé que esto es algo que uno normalmente no debería hacer, y conozco las razones para ello. Sin embargo, estoy realizando una función de depuración dentro de una clase que debería mostrar cierta información sobre el módulo que la llamó. Necesito saber cómo subir un nivel en el espacio de nombres para encontrar una variable […]

Estilo de código: “aplanar” el espacio de nombres de un paquete

Mi jerarquía de paquetes: InstrumentController/ __init__.py instruments/ __init__.py _BaseInstrument.py Keithley2000.py # etc… El contenido de los archivos del instrumento: # _BaseInstrument.py class _BaseInstrument(object): “””Base class for instruments””” # etc… # Keithley2000.py from InstrumentController.instruments._BaseInstrument import _BaseInstrument class Keithley2000(_BaseInstrument): # etc… Quiero que mis usuarios puedan acceder a las clases sin tener que profundizar en una jerarquía […]

Entendiendo la inseguridad de Python Pickle

En la documentación de Python se indica que el pickle no es seguro y no debe analizar las entradas de los usuarios que no son de confianza. Si investigas esto; casi todos los ejemplos demuestran esto con una llamada a system() a través de os.system . Lo que no me queda claro es cómo se […]

¿Para qué sirve la variable de nivel de módulo Python __all__?

Lo he visto mucho en el código fuente de Python / Lib pero no sé para qué sirve. Pensé que se usaba para limitar miembros accesibles de un módulo. Entonces solo los elementos en __all__ se mostrarán cuando dir(module) . Hice un pequeño ejemplo y vi que no funcionaba como esperaba. Entonces … ¿Para qué […]

¿Cómo decirle a lxml.etree.tostring (elemento) que no escriba espacios de nombres en python?

Tengo un enorme archivo xml (1 Gig). Quiero mover algunos de los elementos (entradas) a otro archivo con el mismo encabezado y especificaciones. Digamos que el archivo original contiene esta entrada con la etiqueta : … some text … … … Uso lxml.etree.iterparse para iterar a través del archivo. Funciona bien. Cuando encuentro el elemento […]

RDFLib: prefijos de espacio de nombres en la serialización XML

En un script de Python que usa RDFLib 3.0 , obtengo la siguiente salida XML al serializar mis triples: ¿Cómo puedo definir prefijos de espacio de nombres específicos para esos prefijos anónimos _x asignados automáticamente por RDFLib (o es XML-Serializer respectivamente)? Muchas gracias de antemano por sus respuestas!

Guardar variable en el espacio de nombres interactivo desde el depurador de Python

Cuando estoy ejecutando dentro de una sesión interactiva (en mi caso, ipython ), y actualmente estoy dentro de un depurador ( ipdb o pdb ), me gustaría poder poner una variable en el espacio de nombres interactivo principal desde dentro del espacio de nombres de depuración. Esto es útil si mi código falla, pero ya […]

¿Cómo manejar los paquetes de python con nombres en conflicto?

Estoy usando dos paquetes de python que tienen el mismo nombre. http://www.alembic.io/updates.html https://pypi.python.org/pypi/alembic ¿Hay alguna forma canónica o pirónica de manejar la instalación de dos paquetes con nombres en conflicto? Hasta ahora, solo ocasionalmente he necesitado uno de los paquetes durante el desarrollo / construcción, así que he estado usando un virtualenv separado para lidiar […]