wala/ML

Missing cases for importing scripts from package initialization code

Open

#210 opened on Jul 22, 2024

 (0 comments) (0 reactions) (0 assignees)Java (17 forks)auto 404
PYTHONPATHenhancementhelp wanted

Repository metrics

Stars
 (27 stars)
PR merge metrics
 (PR metrics pending)

Description

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.

Contributor guide