ebresie / python4nb

This is a Python Plugin for Netbeans.
Apache License 2.0
13 stars 1 forks source link

Module / Package management - pip interface #6

Open ebresie opened 2 years ago

ebresie commented 2 years ago

Presently as of 0.1, there is no ability to manage or identify Python modules/packages within a given environment and/or project.

This is issue will implement module / package functionality within the IDE.

ebresie commented 2 years ago

This may involve integration with package tools like:

ebresie commented 2 years ago

As part of this, the Python Platform page has a "Module" tab which currently is not populated.

Will likely need to interface via python - pip list to obtain the currently installed modules for the given platform. The results of this will need to be populated in the list.

ebresie commented 2 years ago

For project specific module management, may need to leverage setuptool or equivalent project management to have dependencies available for use in the Python Project. See https://github.com/ebresie/python4nb/issues/20

ebresie commented 2 years ago

See https://pip.pypa.io/en/stable/cli/pip_list/

ebresie commented 2 years ago

Adjusting the scope of this to focus on providing a pip interface. This may further be expanded upon for other Module/Package Management based development which will be captured in a separate issue as applicable.

ebresie commented 2 years ago

As of v0.3.0, possible places in the code to focus on pip interfaces which includes

Python Platform - this is from the Tools...Python Platform contexts for a given Python Platform and it's applicable "Modules"

Project Properties Library - this is used as part of the Python Project Properties - Library pane

LSP interface

Option Interfaces - this is from Tools...Options...Python

General Interfaces - These are possible shared utilities classes for use in multiple contexts. I think some of this may still be for use in the Options context but need further investigation

ebresie commented 2 years ago

The getPip interface in use in Tools...Option...Python context I believe may have been used previously during logic derived from NBPython as it's called in that context, but the PythonOptionsPanel has nowhere to display any "libraries" as such. Here either need to add a pane to display libraries or look elsehwhere.

ebresie commented 2 years ago

I maybe mixing PythonLibraries and PythonPackages in similar intent. I may need to combine some of these or refactor some of this code in some way. Since PIP stands for "Pip Installs Python" or "PIP Installs Packages" I think "package" is more appropriate.

Trying to refactor any "Library" references to "PythonPackage" usage. There appears to be some Node type logic in the PythonPackage context which may be left over from code base.

ebresie commented 1 year ago

May want to consider Dependency management as part of the scope here. This may overlap with other tickets such as #42 which has some overlapping coverage with dependency management as well.

For example, dependencies could be captured in a requirements.txt or a setup.cfg or some other similar dependency management file.