Skip to content

Commit

Permalink
Merge branch '1.0.x' into 'master'
Browse files Browse the repository at this point in the history
  • Loading branch information
remram44 committed May 15, 2019
2 parents a9f1ea3 + 78e85d3 commit 448c90f
Show file tree
Hide file tree
Showing 22 changed files with 260 additions and 207 deletions.
9 changes: 7 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,19 @@ Features:
* Configuration file contains the walltime taken by each run
* It is now possible to upload or download any file via its full path

1.0.16 (???)
------------
1.0.16 (2019-02-06)
-------------------

(reprozip-jupyter and reprounzip-vagrant didn't change)

Bugfixes:
* Fixed input/output file filter on Python 3 (to omit `.so`, `.pyc` etc files)
* Fixed fetching updated parameters on Python 3 (to get the correct Docker and Vagrant base images, a small JSON file is downloaded from reprozip.org)
* Fixed `--port` option of reprounzip-docker

Enhancements:
* Use the [distro](https://distro.readthedocs.io/) module instead of the deprecated `platform.linux_distribution()` function to detect the distribution (the latter will be removed in Python 3.8).
* Use dpkg-query to identify Linux packages instead of reading `dpkg/info/*.list`

1.0.15 (2018-07-31)
-------------------
Expand Down
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
[![Build Status](https://travis-ci.org/ViDA-NYU/reprozip.svg?branch=master)](https://travis-ci.org/ViDA-NYU/reprozip)
[![Coverage Status](https://codecov.io/github/ViDA-NYU/reprozip/coverage.svg?branch=master)](https://codecov.io/github/ViDA-NYU/reprozip?branch=master)
[![Build Status](https://travis-ci.org/VIDA-NYU/reprozip.svg?branch=master)](https://travis-ci.org/VIDA-NYU/reprozip)
[![Coverage Status](https://codecov.io/github/VIDA-NYU/reprozip/coverage.svg?branch=master)](https://codecov.io/github/VIDA-NYU/reprozip?branch=master)
[![Documentation Status](https://readthedocs.org/projects/reprozip/badge/?version=latest)](https://docs.reprozip.org/en/latest/)
[![Matrix](https://img.shields.io/badge/chat-matrix.org-blue.svg)](https://riot.im/app/#/room/#reprozip:matrix.org)
[![Say Thanks!](https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg)](https://saythanks.io/to/remram44)
[![status](https://img.shields.io/badge/JOSS-10.21105%2Fjoss.00107-green.svg)](http://joss.theoj.org/papers/b578b171263c73f64dfb9d040ca80fe0)
[![DOI](https://img.shields.io/badge/DOI/10.5281%2Fzenodo.1324502-green.svg)](https://doi.org/10.5281/zenodo.1324502)
[![DOI](https://img.shields.io/badge/DOI/10.5281%2Fzenodo.2558333-green.svg)](https://doi.org/10.5281/zenodo.2558333

ReproZip
========
Expand All @@ -16,7 +16,7 @@ It tracks operating system calls and creates a package that contains all the bin
Quickstart
----------

We have an [example repository](https://github.com/ViDA-NYU/reprozip-examples) with a variety of different software. Don't hesitate to check it out, and contribute your own example if use ReproZip for something new!
We have an [example repository](https://github.com/VIDA-NYU/reprozip-examples) with a variety of different software. Don't hesitate to check it out, and contribute your own example if use ReproZip for something new!

### Packing

Expand Down Expand Up @@ -103,9 +103,9 @@ Please subscribe to and contact the [reprozip-users](https://vgc.poly.edu/mailma

Use the [reprozip-dev](https://vgc.poly.edu/mailman/listinfo/reprozip-dev) mailing list for any questions about reprozip source code.

Bugs and feature plannings are tracked in the [GitHub issues](https://github.com/ViDA-NYU/reprozip/issues). Feel free to add an issue!
Bugs and feature plannings are tracked in the [GitHub issues](https://github.com/VIDA-NYU/reprozip/issues). Feel free to add an issue!

To suggest changes to this source code, feel free to raise a [GitHub pull request](https://github.com/ViDA-NYU/reprozip/pulls). Any contributions received are assumed to be covered by the [BSD 3-Clause license](LICENSE.txt). We might ask you to sign a _Contributor License Agreement_ before accepting a larger contribution.
To suggest changes to this source code, feel free to raise a [GitHub pull request](https://github.com/VIDA-NYU/reprozip/pulls). Any contributions received are assumed to be covered by the [BSD 3-Clause license](LICENSE.txt). We might ask you to sign a _Contributor License Agreement_ before accepting a larger contribution.

License
-------
Expand Down
2 changes: 1 addition & 1 deletion docs/gui.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ If you are using Anaconda, you can install *reprounzip-qt* from anaconda.org::

$ conda install --channel vida-nyu reprounzip-qt

Otherwise, you will need to `install PyQt4 <https://www.riverbankcomputing.com/software/pyqt/download>`__ before you can install *reprounzip-qt* from pip (on Debian or Ubuntu, you can use ``apt-get install python-qt4``).
Otherwise, you will need to `install PyQt4 <https://www.riverbankcomputing.com/software/pyqt/download>`__ (or `PyQt5 <https://www.riverbankcomputing.com/software/pyqt/download5>`__) before you can install *reprounzip-qt* from pip (on Debian or Ubuntu, you can use ``apt-get install python-qt4``).

Usage
=====
Expand Down
2 changes: 1 addition & 1 deletion docs/install.rst
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ Or you can install *reprounzip* and choose components manually::
Anaconda
========

*reprozip* and *reprounzip* can also be installed on the `Anaconda <https://www.anaconda.com/download/>`__ Python distribution, from anaconda.org::
*reprozip* and *reprounzip* can also be installed on the `Anaconda <https://www.anaconda.com/distribution/>`__ Python distribution, from anaconda.org::

$ conda install --channel vida-nyu reprozip reprounzip reprounzip-docker reprounzip-vagrant reprounzip-vistrails

Expand Down
2 changes: 1 addition & 1 deletion reprounzip-qt/reprounzip_qt/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = '1.0.15'
__version__ = '1.0.16'
38 changes: 20 additions & 18 deletions reprounzip-qt/reprounzip_qt/gui/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

import logging
import os
from PyQt4 import QtCore, QtGui
from qtpy import QtCore, QtWidgets
import shutil
import subprocess
import sys
Expand All @@ -24,9 +24,9 @@
logger = logging.getLogger('reprounzip_qt')


class Application(QtGui.QApplication):
class Application(QtWidgets.QApplication):
def __init__(self, argv):
QtGui.QApplication.__init__(self, argv)
QtWidgets.QApplication.__init__(self, argv)
self.first_window = None
self.windows = set()

Expand All @@ -48,14 +48,14 @@ def linux_try_register_default(self, window):
logger.info("xdg-mime call failed, not registering application")
else:
if not registered:
r = QtGui.QMessageBox.question(
r = QtWidgets.QMessageBox.question(
window, "Default application",
"Do you want to set ReproUnzip as the default to open "
".rpz files?",
QtGui.QMessageBox.Yes | QtGui.QMessageBox.No)
if r == QtGui.QMessageBox.Yes:
QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No)
if r == QtWidgets.QMessageBox.Yes:
self.linux_register_default(window)
elif r == QtGui.QMessageBox.No:
elif r == QtWidgets.QMessageBox.No:
record_usage(appregister='no')
if not os.path.exists(rcpath):
os.mkdir(rcpath)
Expand Down Expand Up @@ -127,22 +127,22 @@ def linux_register_default(self, window):
shutil.rmtree(dirname)

def ask_enable_usage_report(self):
dialog = QtGui.QDialog()
dialog = QtWidgets.QDialog()
dialog.setWindowTitle("Anonymous usage statistics")
layout = QtGui.QVBoxLayout()
layout.addWidget(QtGui.QLabel("Send anonymous usage reports to the "
"developers?"))
dont_ask = QtGui.QCheckBox("Don't ask again")
layout = QtWidgets.QVBoxLayout()
layout.addWidget(QtWidgets.QLabel("Send anonymous usage reports to "
"the developers?"))
dont_ask = QtWidgets.QCheckBox("Don't ask again")
layout.addWidget(dont_ask)
buttons = QtGui.QDialogButtonBox(
QtGui.QDialogButtonBox.Yes | QtGui.QDialogButtonBox.No)
buttons = QtWidgets.QDialogButtonBox(
QtWidgets.QDialogButtonBox.Yes | QtWidgets.QDialogButtonBox.No)
layout.addWidget(buttons)
buttons.accepted.connect(dialog.accept)
buttons.rejected.connect(dialog.reject)
dialog.setLayout(layout)

res = dialog.exec_()
if res == QtGui.QDialog.Accepted:
if res == QtWidgets.QDialog.Accepted:
usage_report.enable_reporting()
elif dont_ask.isChecked():
usage_report.disable_reporting()
Expand All @@ -160,7 +160,7 @@ def event(self, event):
self.first_window.deleteLater()
self.first_window = None
return True
return QtGui.QApplication.event(self, event)
return QtWidgets.QApplication.event(self, event)

def set_first_window(self, window):
self.first_window = window
Expand All @@ -171,11 +171,13 @@ def set_first_window(self, window):
self.ask_enable_usage_report()


class ReprounzipUi(QtGui.QMainWindow):
class ReprounzipUi(QtWidgets.QMainWindow):
def __init__(self, unpack={}, run={}, tab=None, **kwargs):
super(ReprounzipUi, self).__init__(**kwargs)

self.tabs = QtGui.QTabWidget()
self.setWindowTitle("ReproUnzip")

self.tabs = QtWidgets.QTabWidget()
self.tabs.addTab(UnpackTab(**unpack), "Open package")
self.tabs.addTab(RunTab(**run), "Run unpacked experiment")
self.tabs.widget(0).unpacked.connect(self._unpacked)
Expand Down
25 changes: 13 additions & 12 deletions reprounzip-qt/reprounzip_qt/gui/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,22 @@

from __future__ import division, print_function, unicode_literals

from PyQt4 import QtCore, QtGui
from qtpy import QtCore, QtWidgets
import re


def error_msg(parent, message, severity, details=None):
if severity == 'information':
icon = QtGui.QMessageBox.Information
icon = QtWidgets.QMessageBox.Information
elif severity == 'warning':
icon = QtGui.QMessageBox.Warning
icon = QtWidgets.QMessageBox.Warning
else:
icon = QtGui.QMessageBox.Critical
icon = QtWidgets.QMessageBox.Critical

msgbox = QtGui.QMessageBox(icon, "Error", message, QtGui.QMessageBox.Ok,
parent, detailedText=details,
textFormat=QtCore.Qt.PlainText)
msgbox = QtWidgets.QMessageBox(icon, "Error", message,
QtWidgets.QMessageBox.Ok, parent,
detailedText=details,
textFormat=QtCore.Qt.PlainText)
msgbox.exec_()


Expand All @@ -30,22 +31,22 @@ def handle_error(parent, result):
return False


class ResizableStack(QtGui.QStackedWidget):
class ResizableStack(QtWidgets.QStackedWidget):
# See http://stackoverflow.com/a/14485901/711380
def __init__(self, **kwargs):
super(ResizableStack, self).__init__(**kwargs)

self.currentChanged[int].connect(self._current_changed)

def addWidget(self, widget):
widget.setSizePolicy(QtGui.QSizePolicy.Ignored,
QtGui.QSizePolicy.Ignored)
widget.setSizePolicy(QtWidgets.QSizePolicy.Ignored,
QtWidgets.QSizePolicy.Ignored)
super(ResizableStack, self).addWidget(widget)

def _current_changed(self, idx):
widget = self.widget(idx)
widget.setSizePolicy(QtGui.QSizePolicy.Expanding,
QtGui.QSizePolicy.Expanding)
widget.setSizePolicy(QtWidgets.QSizePolicy.Expanding,
QtWidgets.QSizePolicy.Expanding)
widget.adjustSize()
self.adjustSize()

Expand Down

0 comments on commit 448c90f

Please sign in to comment.