Utilize requests package for http access

Signed-off-by: Hiroshi Miura <miurahr@linux.com>
This commit is contained in:
Hiroshi Miura
2019-03-14 21:02:56 +09:00
parent afe57bbd9e
commit f6e704864a
9 changed files with 63 additions and 26 deletions

7
.gitignore vendored
View File

@@ -1,4 +1,9 @@
.venv
build
dist
venv
*.pyc
*.egg-info
__pycache__
.idea
.tox
.venv

View File

@@ -2,7 +2,7 @@ language: python
python: 3.6
install:
- pip install wheel flake8
- pip install wheel flake8 requests
script:
- flake8

View File

@@ -26,11 +26,6 @@ import sys
from aqt.archives import QtArchives
from aqt.installer import QtInstaller
if sys.version_info.major == 3:
from urllib.request import ProxyHandler, build_opener, install_opener
else:
from urllib2 import ProxyHandler, build_opener, install_opener
def main():
parser = argparse.ArgumentParser(prog='aqtinst', description='Install Qt SDK.',
@@ -61,12 +56,7 @@ def main():
exit(1)
qt_version = args.qt_version
# support proxy connection
proxies = ProxyHandler({})
opener = build_opener(proxies)
install_opener(opener)
QtInstaller(QtArchives(os_name, qt_version, target, arch)).install(qt_version, arch)
QtInstaller(QtArchives(os_name, qt_version, target, arch)).install()
sys.stdout.write("\033[K")
print("Finished installation")

View File

@@ -20,12 +20,8 @@
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
import sys
import xml.etree.ElementTree as ElementTree
if sys.version_info.major == 3:
from urllib.request import urlopen
else:
from urllib2 import urlopen
import requests
class QtPackage:
@@ -58,6 +54,9 @@ class QtArchives:
archives = []
def __init__(self, os_name, qt_version, target, arch):
self.qt_version = qt_version
self.target = target
self.arch = arch
qt_ver_num = qt_version.replace(".", "")
if os_name == 'windows':
archive_url = self.BASE_URL + os_name + '_x86/' + target + '/' + 'qt5_' + qt_ver_num + '/'
@@ -66,8 +65,8 @@ class QtArchives:
# Get packages index
update_xml_url = "{0}Updates.xml".format(archive_url)
content = urlopen(update_xml_url).read()
self.update_xml = ElementTree.fromstring(content)
r = requests.get(update_xml_url)
self.update_xml = ElementTree.fromstring(r.text)
for packageupdate in self.update_xml.iter("PackageUpdate"):
name = packageupdate.find("Name").text
if name.split(".")[-1] != arch:
@@ -95,3 +94,6 @@ class QtArchives:
def get_archives(self):
return self.archives
def get_target_config(self):
return self.qt_version, self.target, self.arch

View File

@@ -24,11 +24,10 @@ import os
import platform
import sys
from multiprocessing.dummy import Pool
import requests
if sys.version_info.major == 3:
from urllib.request import urlretrieve
from subprocess import run
else:
from urllib import urlretrieve
from subprocess import call as run
@@ -45,7 +44,10 @@ class QtInstaller:
url = package.get_url()
sys.stdout.write("\033[K")
print("-Downloading {}...".format(url))
urlretrieve(url, archive)
r = requests.get(url, stream=True)
with open(archive, 'wb') as fd:
for chunk in r.iter_content(chunk_size=8196):
fd.write(chunk)
sys.stdout.write("\033[K")
print("-Extracting {}...".format(archive))
if platform.system() == 'Windows':
@@ -58,7 +60,8 @@ class QtInstaller:
def get_base_dir(qt_version):
return os.path.join(os.getcwd(), 'Qt{}'.format(qt_version))
def install(self, qt_version, arch):
def install(self):
qt_version, target, arch = self.qt_archives.get_target_config()
if arch.startswith('win'):
arch_dir = arch[6:]
else:

View File

@@ -12,6 +12,7 @@ jobs:
versionSpec: '3.6'
architecture: 'x64'
- script: |
python -m pip install requests
python -m pip install flake8 twine wheel
flake8 .
displayName: 'Run lint tests'
@@ -25,6 +26,9 @@ jobs:
arguments: $(qtversion) linux desktop
workingDirectory: $(Build.BinariesDirectory)
displayName: install qt
- script: |
$(Build.BinariesDirectory)/Qt$(qtversion)/$(qtversion)/gcc_64/bin/qmake $(Build.SourcesDirectory)/tests
make
- script: python setup.py sdist bdist_wheel
- job: Ubuntu_1604_py2
@@ -38,6 +42,7 @@ jobs:
- script: |
sudo apt-get update
sudo apt-get -y install p7zip
python -m pip install requests
- task: PythonScript@0
inputs:
scriptSource: filePath
@@ -45,6 +50,9 @@ jobs:
arguments: $(qtversion) linux desktop
workingDirectory: $(Build.BinariesDirectory)
displayName: install qt
- script: |
$(Build.BinariesDirectory)/Qt$(qtversion)/$(qtversion)/gcc_64/bin/qmake $(Build.SourcesDirectory)/tests
make
- script: ls -lR $(Build.BinariesDirectory)
- job: macOS
@@ -55,7 +63,9 @@ jobs:
inputs:
versionSpec: '3.6'
architecture: 'x64'
- script: brew install p7zip
- script: |
brew install p7zip
python -m pip install requests
- task: PythonScript@0
inputs:
scriptSource: filePath
@@ -63,6 +73,9 @@ jobs:
arguments: $(qtversion) mac desktop
workingDirectory: $(Build.BinariesDirectory)
displayName: install qt
- script: |
$(Build.BinariesDirectory)/Qt$(qtversion)/$(qtversion)/clang_64/bin/qmake $(Build.SourcesDirectory)/tests
make
- script: ls -lR $(Build.BinariesDirectory)
- job: Windows
@@ -73,7 +86,9 @@ jobs:
inputs:
versionSpec: '3.6'
architecture: 'x64'
- script: cinst -y 7zip
- script: |
cinst -y 7zip
python -m pip install requests
- task: PythonScript@0
inputs:
scriptSource: filePath

1
requirements.txt Normal file
View File

@@ -0,0 +1 @@
requests

9
tests/hello.pro Normal file
View File

@@ -0,0 +1,9 @@
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = Hello
TEMPLATE = app
SOURCES += main.cpp

12
tests/main.cpp Normal file
View File

@@ -0,0 +1,12 @@
#include <QApplication>
#include <QPushButton>
int main(int argc, char **argv)
{
QApplication app (argc, argv);
QPushButton button ("Hello world !");
button.show();
return app.exec();
}