|
|
|
@ -1,3 +1,10 @@
|
|
|
|
|
#
|
|
|
|
|
# upip - Package manager for MicroPython
|
|
|
|
|
#
|
|
|
|
|
# Copyright (c) 2015-2018 Paul Sokolovsky
|
|
|
|
|
#
|
|
|
|
|
# Licensed under the MIT license.
|
|
|
|
|
#
|
|
|
|
|
import sys
|
|
|
|
|
import gc
|
|
|
|
|
import uos as os
|
|
|
|
@ -110,16 +117,16 @@ def url_open(url):
|
|
|
|
|
|
|
|
|
|
proto, _, host, urlpath = url.split('/', 3)
|
|
|
|
|
try:
|
|
|
|
|
ai = usocket.getaddrinfo(host, 443)
|
|
|
|
|
ai = usocket.getaddrinfo(host, 443, 0, usocket.SOCK_STREAM)
|
|
|
|
|
except OSError as e:
|
|
|
|
|
fatal("Unable to resolve %s (no Internet?)" % host, e)
|
|
|
|
|
#print("Address infos:", ai)
|
|
|
|
|
addr = ai[0][4]
|
|
|
|
|
ai = ai[0]
|
|
|
|
|
|
|
|
|
|
s = usocket.socket(ai[0][0])
|
|
|
|
|
s = usocket.socket(ai[0], ai[1], ai[2])
|
|
|
|
|
try:
|
|
|
|
|
#print("Connect address:", addr)
|
|
|
|
|
s.connect(addr)
|
|
|
|
|
s.connect(ai[-1])
|
|
|
|
|
|
|
|
|
|
if proto == "https:":
|
|
|
|
|
s = ussl.wrap_socket(s, server_hostname=host)
|
|
|
|
@ -149,7 +156,7 @@ def url_open(url):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_pkg_metadata(name):
|
|
|
|
|
f = url_open("https://pypi.python.org/pypi/%s/json" % name)
|
|
|
|
|
f = url_open("https://pypi.org/pypi/%s/json" % name)
|
|
|
|
|
try:
|
|
|
|
|
return json.load(f)
|
|
|
|
|
finally:
|
|
|
|
|