mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
PY-6801 Remove pypi repository
Remove repository from UI
This commit is contained in:
@@ -51,6 +51,52 @@ def do_list():
|
||||
sys.stdout.flush()
|
||||
|
||||
|
||||
def do_get_versions(urls, req):
|
||||
if req is not None:
|
||||
for version in VersionsFinder(urls).get_versions(req):
|
||||
if len(version) > 2:
|
||||
sys.stdout.write(version[2] + chr(10))
|
||||
sys.stdout.flush()
|
||||
|
||||
|
||||
|
||||
def do_get_latest_version(urls, req):
|
||||
try:
|
||||
from pip.index import PackageFinder, Link
|
||||
except ImportError:
|
||||
error_no_pip()
|
||||
|
||||
class VersionsFinder(PackageFinder):
|
||||
def __init__(self, index_urls, *args, **kwargs):
|
||||
super(VersionsFinder, self).__init__([], index_urls, *args, **kwargs)
|
||||
|
||||
def get_versions(self, req):
|
||||
class Req:
|
||||
def __init__(self, name):
|
||||
self.name = name
|
||||
|
||||
def mkurl_pypi_url(url):
|
||||
loc = os.path.join(url, req)
|
||||
if not loc.endswith('/'):
|
||||
loc += '/'
|
||||
return loc
|
||||
|
||||
locations = [mkurl_pypi_url(url) for url in self.index_urls] + self.find_links
|
||||
locations = [Link(url, trusted=True) for url in locations]
|
||||
|
||||
versions = []
|
||||
for page in self._get_pages(locations, Req(req)):
|
||||
versions.extend(self._package_versions(page.links, req.lower()))
|
||||
|
||||
return sorted(list(versions), reverse=True)
|
||||
if req is not None:
|
||||
for version in VersionsFinder(urls).get_versions(req):
|
||||
if len(version) > 2:
|
||||
sys.stdout.write(version[2] + chr(10))
|
||||
sys.stdout.flush()
|
||||
return
|
||||
return ""
|
||||
|
||||
def do_install(pkgs):
|
||||
try:
|
||||
import pip
|
||||
@@ -115,6 +161,10 @@ def main():
|
||||
if len(sys.argv) != 2:
|
||||
usage()
|
||||
do_list()
|
||||
elif cmd == 'latestVersion':
|
||||
if len(sys.argv) < 4:
|
||||
usage()
|
||||
do_get_latest_version(sys.argv[3:], sys.argv[2])
|
||||
elif cmd == 'install':
|
||||
if len(sys.argv) < 2:
|
||||
usage()
|
||||
|
||||
@@ -54,8 +54,9 @@ import java.util.regex.Pattern;
|
||||
@SuppressWarnings("UseOfObsoleteCollectionType")
|
||||
public class PyPIPackageUtil {
|
||||
public static final Logger LOG = Logger.getInstance(PyPIPackageUtil.class.getName());
|
||||
@NonNls public static final String PYPI_URL = "https://pypi.python.org/pypi";
|
||||
@NonNls public static final String PYPI_LIST_URL = "https://pypi.python.org/pypi?%3Aaction=index";
|
||||
public static final String PYPI_HOST = "https://pypi.python.org";
|
||||
@NonNls public static final String PYPI_URL = PYPI_HOST + "/pypi";
|
||||
@NonNls public static final String PYPI_LIST_URL = PYPI_HOST + "/pypi?%3Aaction=index";
|
||||
|
||||
public static Map<String, String> PACKAGES_TOPLEVEL = new HashMap<String, String>();
|
||||
|
||||
|
||||
@@ -288,6 +288,13 @@ public class PyPackageManagerImpl extends PyPackageManager {
|
||||
}
|
||||
}
|
||||
|
||||
//@NotNull
|
||||
//public String fetchLatestVersion(InstalledPackage pkg) throws ExecutionException {
|
||||
// final ArrayList<String> arguments = Lists.newArrayList("latestVersion", pkg.getName());
|
||||
// arguments.addAll(PyPackageService.getInstance().additionalRepositories);
|
||||
// return getHelperResult(PACKAGING_TOOL, arguments, false, false, null);
|
||||
//}
|
||||
|
||||
@NotNull
|
||||
protected List<PyPackage> getPackages() throws ExecutionException {
|
||||
final String output;
|
||||
@@ -589,4 +596,4 @@ public class PyPackageManagerImpl extends PyPackageManager {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -38,6 +38,7 @@ public class PyPackageService implements
|
||||
public List<String> additionalRepositories = new ArrayList<String>();
|
||||
public Map<String, String> PY_PACKAGES = ContainerUtil.newConcurrentMap();
|
||||
public String virtualEnvBasePath;
|
||||
public Boolean PYPI_REMOVED = false;
|
||||
|
||||
public long LAST_TIME_CHECKED = 0;
|
||||
|
||||
@@ -55,13 +56,22 @@ public class PyPackageService implements
|
||||
sdkToUsersite.put(sdk, useUsersite);
|
||||
}
|
||||
|
||||
public void addRepository(String repository) {
|
||||
additionalRepositories.add(repository);
|
||||
public void addRepository(final String repository) {
|
||||
if (repository == null) return;
|
||||
if (repository.startsWith(PyPIPackageUtil.PYPI_HOST)) {
|
||||
PYPI_REMOVED = false;
|
||||
}
|
||||
else {
|
||||
additionalRepositories.add(repository);
|
||||
}
|
||||
}
|
||||
|
||||
public void removeRepository(String repository) {
|
||||
public void removeRepository(final String repository) {
|
||||
if (additionalRepositories.contains(repository))
|
||||
additionalRepositories.remove(repository);
|
||||
else if (repository.startsWith(PyPIPackageUtil.PYPI_HOST)) {
|
||||
PYPI_REMOVED = true;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean useUserSite(String sdk) {
|
||||
|
||||
@@ -43,6 +43,7 @@ import java.util.regex.Pattern;
|
||||
/**
|
||||
* @author yole
|
||||
*/
|
||||
@SuppressWarnings("UseOfObsoleteCollectionType")
|
||||
public class PyPackageManagementService extends PackageManagementService {
|
||||
@NotNull private static final Pattern PATTERN_ERROR_LINE = Pattern.compile(".*error:.*", Pattern.CASE_INSENSITIVE);
|
||||
|
||||
@@ -61,19 +62,20 @@ public class PyPackageManagementService extends PackageManagementService {
|
||||
|
||||
@Override
|
||||
public List<String> getAllRepositories() {
|
||||
final PyPackageService packageService = PyPackageService.getInstance();
|
||||
List<String> result = new ArrayList<String>();
|
||||
result.add(PyPIPackageUtil.PYPI_URL);
|
||||
result.addAll(PyPackageService.getInstance().additionalRepositories);
|
||||
if (!packageService.PYPI_REMOVED) result.add(PyPIPackageUtil.PYPI_URL);
|
||||
result.addAll(packageService.additionalRepositories);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addRepository(String repositoryUrl) {
|
||||
public void addRepository(final String repositoryUrl) {
|
||||
PyPackageService.getInstance().addRepository(repositoryUrl);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeRepository(String repositoryUrl) {
|
||||
public void removeRepository(final String repositoryUrl) {
|
||||
PyPackageService.getInstance().removeRepository(repositoryUrl);
|
||||
}
|
||||
|
||||
@@ -236,9 +238,12 @@ public class PyPackageManagementService extends PackageManagementService {
|
||||
PyPIPackageUtil.INSTANCE.usePackageReleases(packageName, new AsyncCallback() {
|
||||
@Override
|
||||
public void handleResult(Object result, URL url, String method) {
|
||||
//noinspection unchecked
|
||||
final List<String> releases = (List<String>)result;
|
||||
PyPIPackageUtil.INSTANCE.addPackageReleases(packageName, releases);
|
||||
consumer.consume(releases);
|
||||
if (releases != null) {
|
||||
PyPIPackageUtil.INSTANCE.addPackageReleases(packageName, releases);
|
||||
consumer.consume(releases);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -371,4 +376,29 @@ public class PyPackageManagementService extends PackageManagementService {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/*@Override
|
||||
public void updatePackage(@NotNull InstalledPackage installedPackage,
|
||||
@Nullable String version,
|
||||
@NotNull Listener listener) {
|
||||
installPackage(new RepoPackage(installedPackage.getName(), null *//* TODO? *//*), null, true, null, listener, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldFetchLatestVersionsForOnlyInstalledPackages() {
|
||||
final List<String> repositories = PyPackageService.getInstance().additionalRepositories;
|
||||
return repositories.size() > 1 || (repositories.size() == 1 && !repositories.get(0).equals(PyPIPackageUtil.PYPI_LIST_URL));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fetchLatestVersion(@NotNull InstalledPackage pkg, @NotNull CatchingConsumer<String, Exception> consumer) {
|
||||
final String version;
|
||||
try {
|
||||
version = PyPackageManager.getInstance(mySdk).fetchLatestVersion(pkg);
|
||||
consumer.consume(version);
|
||||
}
|
||||
catch (ExecutionException ignored) {
|
||||
|
||||
}
|
||||
}*/
|
||||
}
|
||||
Reference in New Issue
Block a user