wala/ML

Missing cases for importing scripts from package initialization code

Aperta

#210 aperta il 22 lug 2024

 (0 commenti) (0 reazioni) (0 assegnatari)Java (17 fork)auto 404
PYTHONPATHenhancementhelp wanted

Metriche repository

Star
 (27 stelle)
Metriche merge PR
 (Metriche PR in attesa)

Descrizione

We're missing some cases from #202 where we import scripts containing package initialization code that involve the syntax import A.B.C. It looks like we covered from A.B import C. Consider the following example:

# src/__init__.py
from .module import *

# src/module.py
import tensorflow as tf

def f(a):
    assert isinstance(a, tf.Tensor)

# client.py
from tensorflow import ones
import src

src.f(ones([1, 2]))

We cannot find a CG node for src.module.f. If we change the wildcard in src/__init__.py to explicitly reference f, it still doesn't work.

Regression

I don't think this is a bug. I think we just only handled the wildcard import case in the client.

Guida contributor