Skip to content

Add Gazelle support for importlib.import_module?聽#1938

Description

@dougthor42

馃殌 feature request

Relevant Rules

  • gazelle

Description

First off, I want to say that I'm not sure if this is a good idea or not. So feel free to shoot it down 馃ぃ.

In #1931 (comment), it was said that the gazelle parser only needs to know about a subset of the python language:

  • comments
  • if __name__ == "__main__"
  • from foo import bar
  • import foo

However, there's another way to import other python code: importlib.import_module().

Should Gazelle parse these and attempt to add dependencies for them?

Issues

There are a couple pretty big issues with trying to do so:

  1. In my experience, importlib.import_module is typically used as a way to work around circular dependencies. So having Gazelle parse them would just result in a broken build, probably frustrating users more than helping.
  2. There's no way to figure out what the runtime value would be.
    • So we could anything that's a string constant:
      import_module("foo.bar.baz")
      but not
      module = input("Enter a module name: "); import_module(module) or even
      module = "foo.bar.baz"; import_module(module)

Benefits

Umm... I guess if import_module is used in a very specific way, then it would make making build files easier.

Describe the solution you'd like

N/A

Describe alternatives you've considered

Manually adding dependencies after running Gazelle. Not a big deal, IMO.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions