Estoy teniendo problemas al compilar tipos cdef de opinión en diferentes paquetes y no pude encontrar una explicación en documentos Cython.pyx con dependencias en diferentes paquetes
tengo unas pocas cosas setup.py en la raíz de mi pitón src árbol:
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
setup(
cmdclass = {'build_ext': build_ext},
ext_modules = [
Extension("flink.pytk.defs.FragIdx",
sources = ["flink/pytk/defs/FragIdx.pyx"]),
Extension("flink.pytk.fragments.STK_idx",
sources = ["flink/pytk/fragments/STK_idx.pyx"])
]
)
FragIdx es un tipo cdef-ed, definido en flink/pytk/defs/FragIdx.pyx:
cdef class FragIdx:
cdef public FragIdx parent
cdef public FragIdx root
cdef public tuple label
...
Y STK_idx es una extensión de FragIdx, definido en flink/pytk/fragmentos/STK_idx.pyx:
from flink.pytk.defs.FragIdx import FragIdx
cdef class STK_idx(FragIdx):
...
Cuando intento compilar USI ng del setup.py que aparece al principio del post, FragIdx se compila bien, pero cuando se trata de STK_idx me sale el siguiente mensaje de error:
flink/pytk/fragments/STK_idx.pyx:5:5: 'FragIdx' is not a type name
Tenga en cuenta que el directorio raíz de mi árbol de origen es listado en $ PYTHONPATH.
Realmente agradecería si alguien podría arrojar alguna luz sobre esto, gracias mucho!
Daniele