mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
API for loading requirements only from requirements.txt
This commit is contained in:
@@ -32,6 +32,21 @@ public abstract class PyPackageManagers {
|
||||
|
||||
public abstract PyPackageManager forSdk(Sdk sdk);
|
||||
|
||||
/**
|
||||
* Returns the list of requirements from 'requirements.txt' or 'setup.py' files in the specified module.
|
||||
*
|
||||
* @param module the module to check for requirements
|
||||
* @return the list of requirements, or null if the module contains neither requirements.txt nor setup.py.
|
||||
*/
|
||||
@Nullable
|
||||
public abstract List<PyRequirement> getRequirements(Module module);
|
||||
|
||||
/**
|
||||
* Returns the list of requirements from 'requirements.txt' file in the specified module.
|
||||
*
|
||||
* @param module the module to check for requirements
|
||||
* @return the list of requirements, or null if the module does not contain a requirements.txt
|
||||
*/
|
||||
@Nullable
|
||||
public abstract List<PyRequirement> getRequirementsFromTxt(Module module);
|
||||
}
|
||||
|
||||
@@ -436,9 +436,9 @@ public class PyPackageManagerImpl extends PyPackageManager {
|
||||
@Nullable
|
||||
public static List<PyRequirement> getRequirements(@NotNull Module module) {
|
||||
// TODO: Cache requirements, clear cache on requirements.txt or setup.py updates
|
||||
final VirtualFile requirementsTxt = PyPackageUtil.findRequirementsTxt(module);
|
||||
if (requirementsTxt != null) {
|
||||
return PyRequirement.parse(requirementsTxt);
|
||||
List<PyRequirement> requirements = getRequirementsFromTxt(module);
|
||||
if (requirements != null) {
|
||||
return requirements;
|
||||
}
|
||||
final List<String> lines = new ArrayList<String>();
|
||||
for (String name : PyPackageUtil.SETUP_PY_REQUIRES_KWARGS_NAMES) {
|
||||
@@ -460,6 +460,15 @@ public class PyPackageManagerImpl extends PyPackageManager {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static List<PyRequirement> getRequirementsFromTxt(Module module) {
|
||||
final VirtualFile requirementsTxt = PyPackageUtil.findRequirementsTxt(module);
|
||||
if (requirementsTxt != null) {
|
||||
return PyRequirement.parse(requirementsTxt);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public void clearCaches() {
|
||||
myPackagesCache = null;
|
||||
myExceptionCache = null;
|
||||
|
||||
@@ -30,4 +30,11 @@ public class PyPackageManagersImpl extends PyPackageManagers {
|
||||
public List<PyRequirement> getRequirements(Module module) {
|
||||
return PyPackageManagerImpl.getRequirements(module);
|
||||
}
|
||||
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public List<PyRequirement> getRequirementsFromTxt(Module module) {
|
||||
return PyPackageManagerImpl.getRequirementsFromTxt(module);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user