Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Custom Python package loader for the plugin subsystem with scie distributions and local devs #2359

Closed
Tracked by #1683
achimnol opened this issue Jul 1, 2024 · 0 comments · Fixed by #2377
Closed
Tracked by #1683
Assignees
Labels
comp:common Related to Common component urgency:3 Must be finished within a certain time frame.
Milestone

Comments

@achimnol
Copy link
Member

achimnol commented Jul 1, 2024

Python has a versatile, highly customizable module loading subsystem.

Example:
image

Let's use them to auto-detect and load plugin packages:

  • Local dev setups: scan a designated directory to get the entrypoints and import paths
    • Currently we are doing a similar thing for plugins directory in pants.toml, but it is just manually parsing(!) setup.cfg and BUILD files found inside it.
    • I'd like to let it use the standard package entrypoint.
  • scie-based distributions: scan the current working directory and/or the location of the executable binary to list .whl files and load them with their entrypoints.

This is a prerequisite for the "neo" enterprise TUI installer.

Potential useful references:

(cc: @xyloon @adrysn)

@achimnol achimnol added type:feature Add new features comp:common Related to Common component urgency:3 Must be finished within a certain time frame. labels Jul 1, 2024
@achimnol achimnol added this to the 24.09 milestone Jul 1, 2024
@achimnol achimnol removed the type:feature Add new features label Oct 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
comp:common Related to Common component urgency:3 Must be finished within a certain time frame.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants