[guidata] 01/03: New upstream version 1.7.6

Frédéric-Emmanuel Picca picca at moszumanska.debian.org
Wed Oct 12 19:23:30 UTC 2016


This is an automated email from the git hooks/post-receive script.

picca pushed a commit to branch master
in repository guidata.

commit 520044cabcc8ed50fdd197dae8deacc7c15dfe74
Author: Picca Frédéric-Emmanuel <picca at debian.org>
Date:   Wed Oct 12 19:14:07 2016 +0200

    New upstream version 1.7.6
---
 CHANGELOG.md                     | 295 +++++++++++++++++++++++++++++++++++++++
 MANIFEST.in                      |   6 +-
 PKG-INFO                         |  57 +++++++-
 README                           |  56 --------
 README.md                        |  63 +++++++++
 changelog                        | 292 --------------------------------------
 doc/installation.rst             |  15 +-
 guidata.egg-info/PKG-INFO        |  57 +++++++-
 guidata.egg-info/SOURCES.txt     |   4 +-
 guidata/__init__.py              |   2 +-
 guidata/dataset/dataitems.py     |  22 ++-
 guidata/dataset/qtitemwidgets.py |  12 +-
 guidata/guitest.py               |   6 +-
 guidata/qt/__init__.py           |   8 +-
 setup.py                         |  57 +++++++-
 15 files changed, 575 insertions(+), 377 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..acd936e
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,295 @@
+# guidata Releases #
+
+
+### Version 1.7.6 ###
+
+Bug fixes:
+
+* Fixed Spyder v3.0 compatibility issues.
+
+
+### Version 1.7.5 ###
+
+Bug fixes:
+
+* `FilesOpenItem.check_value` : if value is None, return False (avoids "None Type object is not iterable" error)
+
+
+### Version 1.7.4 ###
+
+Bug fixes:
+
+* Fixed compatibility issue with Python 3.5.1rc1 (Issue #32: RecursionError in `userconfig.UserConfig.get`)
+* `HDF5Reader.read_object_list`: fixed division by zero (when count was 1)
+* `hdf5io`: fixed Python3 compatibility issue with unicode_hdf type converter
+
+
+### Version 1.7.3 ###
+
+Features:
+
+* Added CHM documentation to wheel package
+* hdf5io: added support for a progress bar callback in "read_object_list" (this allows implementing a progress dialog widget showing the progress when reading an object list in an HDF5 file)
+
+Bug fixes:
+
+* Python 3 compatibility: fixed `hdf5io.HDF5Writer.write_object_list` method
+* data items:
+  * StringItem: when `notempty` parameter was set to True, item value was not checked at startup (expected orange background)
+* disthelpers:
+  * Supporting recent versions of SciPy, h5py and IPython
+  * Fixed compatibility issue (workaround) with IPython on Python 2.7 (that is the "collection.sys cx_Freeze error")
+
+
+### Version 1.7.2 ###
+
+Bug fixes:
+
+* Fixed compatibility issues with old versions of Spyder (<v2.3)
+
+
+### Version 1.7.1 ###
+
+Bug fixes:
+
+* Fixed Issue #25: ConfigParser.get unexpected keyword argument 'raw'
+* Fixed tests failures: disthelpers, guiqwt/tests/loadsaveitems_hdf5.py
+
+Features:
+
+* userconfigio: added support for serializing/deserializing NumPy scalars
+* Fixed Issue #47: added support for DateTimeItem/DateItem (de)serialization
+
+Setup:
+
+* Using setuptools "entry_points" instead of distutils "scripts"
+
+
+### Version 1.7.0 ###
+
+Possible API compatibility issues:
+
+* Added support for PyQt5 (removed old-style signals)
+
+
+### Version 1.6.1 ###
+
+Possible API compatibility issues:
+
+* disthelpers:
+  * Changed arguments from "architecture=None, python_version=None" to "msvc_version, architecture=None"
+
+
+### Version 1.6.0 ###
+
+Added support for Python 3 (see module `guidata.py3compat`).
+
+New features:
+
+* disthelpers:
+  * Added support for Python 3.3
+  * Added support for pygments (and partial support for zmq: still failing)
+* FloatArrayItem: added support for `unit` property value
+
+Bug fixes:
+
+* disthelpers.prepend_module_to_path: unload modules which were already imported to be able to replace them by other versions (mostly `guidata` should be concerned by this if the function is used -as it should be- in package's __init__.py script)
+
+
+### Version 1.5.1 ###
+
+New features:
+
+* HDF5 serialization (HDF5 reader/writer):
+  * Added context manager
+  * Added convenience methods `read` and `write`
+  * Added convenience methods `write_object_list` and `read_object_list` to save/restore objects implementing DataSet-like `serialize` and `deserialize` methods
+* Datasets I/O (HDF5/ini): None values (unset items) can now be saved/loaded for FloatItem, IntItem and BoolItem objects
+* disthelpers: added option 'exclude_dirs' to 'add_module_data_files' and 'add_module_data_dir' methods
+* Added slider support for FloatItem objects (contributor: julien.jaeck)
+* (Issue 21) Added option 'size' in dataset `edit` and `view` methods to resize the generated dialog box (size may be a tuple of integers (width, height) or a QSize object)
+
+Possible API compatibility issues:
+
+* guidata now requires Python 2.6 (Python 2.5 support has been dropped)
+
+Bug fixes:
+
+* DataSet objects (de)serialization: fixed HDF5 reader/writer for FilesOpenItem and FloatArrayItem serialize/deserialize methods
+* Fixed DataSet userconfig read/write test
+* StringItem/ColorItem: fixed unicode/str issues in deserialization methods
+* Added support for strings encoded in file system charset to avoid an error like "String %r is not UTF-8 encoded" when trying to set an item to a string value (path) obtained with a file system command
+* configtools/image paths: handling file system encoded paths
+* (Issue 14) Restored compatiblity with PyQt v4.4
+
+
+### Version 1.5.0 ###
+
+Bug fixes:
+
+* Fixed 'callback' property related issue: when updating a DataSetShowGroupBox or
+DataSetEditGroupBox internal dataset, the callback property was causing a reset
+of the data items to their default values
+
+Possible API compatibility issues:
+
+* datatypes.OperatorProperty was renamed to FuncProp
+
+Other changes:
+
+* Added test for the FuncProp item property: how to change an item active state depending on another item's value
+* Added support for dictionaries for `update_dataset` and `restore_dataset` (functions of `guidata.utils`):
+  * `update_dataset` may update the destination dataset from a source dictionary
+  * `restore_dataset` may update the destination dictionary from a source dataset
+* FloatArrayItem: added option "large" to show all the array values in read-only mode
+* Added new guidata svg logo
+* disthelpers:
+  * added support for PySide
+	* disthelpers: new function 'get_visual_studio_dlls' -- returns the list of Visual
+Studio DLLs (and create manifest) associated to Python architecture and version
+	
+
+### Version 1.4.2 ###
+
+Bug fixes:
+
+* disthelpers:
+  * the vs2008 option was accidently turned off by default on Windows platforms
+  * build_chm.bat: added support for Windows x64
+
+Other changes:
+
+* dataset.qtwidgets:
+  * QLabel widgets word wrapping is now disabled for read-only items and may be disabled for dataset comments: this is necessary because when the parent widget height is constrained, Qt is unexpectedly reducing the height of word-wrapped QLabel widgets below their minimum size, hence truncating their contents...
+* disthelpers:
+  * raising an exception when the right version of Ms Visual C++ DLLs was not found
+  * now creating the manifest and distributing from the redistribuable package installed in WinSxS
+
+
+### Version 1.4.1 ###
+
+Bug fixes:
+
+* ColorItem for recent versions of Qt: in QLineEdit widget, the text representation of color was str(QColor(...)) instead of str(QColor(...).name())
+* guidata.qt compat package: fixed _modname typo
+* hdf5io:
+  * optional attribute mechanism generalized to both Attr and DSet objects (for both saving and loading data)
+  * H5Store/`close` method: now checking if h5 file has already been closed before trying to close it (see http://code.google.com/p/h5py/issues/detail?id=220)
+* disthelpers:
+  * vs2008 option was ignored
+  * added 'C:\Program Files (x86)' to bin includes (cx_Freeze)
+* Data items/callbacks: fixed callbacks for ChoiceItem (or derived items) which were triggered when other widgets were triggering their own callbacks...
+
+Other changes:
+
+* Added test for item callbacks
+* dataset.datatypes.FormatProp/new behavior: added `ignore_error` argument, default to True (ignores string formatting error: ValueError)
+* disthelpers:
+  * Distribution.Setup: added `target_dir` option
+  * Distribution.build: added `create_archive` option to create a ZIP archive after building the package
+  * cx_Freeze: added support for multiple executables
+  * added support for h5py 2.0
+  * added support for Maplotlib 1.1
+* Allow DateTime edit widgets to popup calendar
+
+
+### Version 1.4.0 ###
+
+Possible API compatibility issues:
+
+* disthelpers: removed functions remove_build_dist, add_module_data_files,
+    add_text_data_file, get_default_excludes, get_default_includes, 
+    get_default_dll_excludes, create_vs2008_data_files (...) which were 
+    replaced by a class named Distribution, 
+    see the new disthelpers test for more details (tests/dishelpers.py)
+* reorganized utils and configtools modules
+
+Other changes:
+
+* disthelpers: replaced almost all functions by a class named Distribution,
+    and added support for cx_Freeze (module remains compatible with py2exe),
+    see the new disthelpers test for more details (tests/dishelpers.py)
+* reorganized utils and configtools modules
+
+
+### Version 1.3.2 ###
+
+Since this version, `guidata` is compatible with PyQt4 API #1 *and* API #2.
+Please read carefully the coding guidelines which have been recently added to 
+the documentation.
+
+Possible API compatibility issues:
+
+* Removed deprecated wrappers around QFileDialog's static methods (use the wrappers provided by `guidata.qt.compat` instead):
+  * getExistingDirectory, getOpenFileName, getOpenFileNames, getSaveFileName
+
+Bug fixes:
+
+* qtwidgets.ShowFloatArrayWidget: fixed string float formatting issue (replaced %f by %g)
+* Fixed compatiblity issues with PyQt v4.4 (Contributor: Carlos Pascual)
+* Fixed missing 'child_title' attribute error with FileOpenItem, FilesOpenItem, FileSaveItem and DirectoryItem
+* (Fixes Issue 8) disthelpers.add_modules was failing when vs2008=False
+
+Other changes:
+
+* added *this* changelog
+* qtwidgets: removed ProgressPopUp dialog (it is now recommended to use QProgressDialog instead, which is pretty much identical)
+* Replaced QScintilla by spyderlib (as a dependency for array editor, code editor (test launcher) and dict editor)
+* qtwidgets.DockWidgetMixin: added method 'setup_dockwidget' to change dockwidget's features, location and allowed areas after class instantiation
+* guidata.utils.utf8_to_unicode: translated error message in english
+* Add support for 'int' in hdf5 save function
+* guidata.dataset/Numeric items (FloatItem, IntItem): added option 'unit' (automatically add suffix ' (unit)' to label in edit mode and suffix ' unit' to value in read-only mode)
+* Improved dataset __str__ method: code refactoring with read-only dataset widgets (DataItem: added methods 'format_string' and 'get_string_value', DataSet: added method 'to_string')
+* Added coding guidelines to the documentation
+* guidata.dataset.qtwidget: added specific widget (ShowBooleanWidget) for read-only display of bool items (text is striked out when value is False)
+* guidata.hdf5io.Dset: added missing keyword argument 'optional' (same effect as parent class Attr)
+* guidata.dataset.dataitems.IntItem objects: added support for sliders (fixes Issue 9) with option slider=True (see documentation)
+
+
+### Version 1.3.1 ###
+
+Bug fixes:
+
+* setup.py: added svg icons to data files
+* gettext helpers were not working on Linux (Windows install pygettext was hardcoded)
+
+Other changes:
+
+* hdf5io: printing error messages in sys.stderr + added more infos when failing to load attribute
+
+
+### Version 1.3.0 ###
+
+Bug fixes:
+
+* setup.py: added svg icons to data files
+* gettext helpers were not working on Linux (Windows install pygettext was hardcoded)
+* DataSet/bugfix: comment/title options now override the DataSet class __doc__ attribute
+* Added missing option 'basedir' for FilesOpenItem
+* DirectoryItem: fixed missing child_title attribute bug
+* For all DataSet GUI representation, the comment text is now word-wrapped
+* Bugfix: recent versions of PyQt don't like the QApplication reference to be stored in modules (why is that?)
+* Bugfix/tests: always keep a reference to the QApplication instance
+
+Other changes:
+
+* setup.py: added source archive download url
+* Tests: now creating real temporary files and cleaning up at exit
+* qtAllow a callback on LineEditWidget to notify about text changes (use set_prop("display", "callback", callback))
+* qthelpers: provide wrapper for qt.getOpen/SaveFileName to work around win32 bug
+* qtwidgets: optionally hide apply button in DataSetEditGroupBox
+* added module guidata.qtwidgets (moved some generic widgets from guidata.qthelpers and from other external packages)
+* qthelpers: added helper 'create_groupbox' (QGroupBox object creation)
+* Array editor: updated code from Spyder's array editor (original code)
+* Added package guidata.editors: contains editor widgets derived from Spyder editor widgets (array editor, dictionary editor, text editor)
+* Array editor: added option to set row/col labels (resp. ylabels and xlabels)
+* ButtonItem: changed callback arguments to*instance* (DataSet object), *value* (item value), *parent* (button's parent widget)
+* editors.DictEditor.DictEditor: moved options from constructor to 'setup' method (like ArrayEditor's setup_and_check), added parent widget to constructor options
+* Added DictItem type: simple button to edit a dictionary
+* editors.DictEditor.DictEditor/bugfixes: added action "Insert" to context menu for an empty dictionary + fixed inline unicode editing (was showing the error message "Unable to assign data to item")
+* guidata.qtwidgets: added 'DockableWidgetMixin' to fabricate any dockable QWidget class
+* gettext helpers: added support for individual module translation (until now, only whole packages were supported)
+* DataSetShowGroupBox/DataSetEditGroupBox: **kwargs may now be passed to the DataSet constructor
+* disthelpers: added 'scipy.io' to supported modules (includes)
+* Added new "value_callback" display property: this function is called when QLineEdit text has changed (item value is passed)
+* Added option to pass a text formatting function in DataSetShowWidget
diff --git a/MANIFEST.in b/MANIFEST.in
index 7466fd9..e5d065e 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -2,6 +2,6 @@ recursive-include guidata *.inc *.png *.svg *.pot *.po *.mo
 recursive-include doc *.py *.rst *.png *.ico
 include MANIFEST.in
 include Licence_CeCILL_V2-en.txt
-include README
-include changelog
-prune guidata/tests/dist
\ No newline at end of file
+include README.md
+include CHANGELOG.md
+prune guidata/tests/dist
diff --git a/PKG-INFO b/PKG-INFO
index 4ddc17c..4f5af4d 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,12 +1,65 @@
 Metadata-Version: 1.1
 Name: guidata
-Version: 1.7.4
+Version: 1.7.6
 Summary: Automatic graphical user interfaces generation for easy dataset editing and display
 Home-page: https://github.com/PierreRaybaut/guidata
 Author: Pierre Raybaut
 Author-email: pierre.raybaut at gmail.com
 License: CeCILL V2
-Description: UNKNOWN
+Description: guidata: Automatic GUI generation for easy dataset editing and display with Python
+        ======================================================================================
+        
+        Simple example of ``guidata`` datasets embedded in an application window:
+        
+        .. image:: http://pythonhosted.org/guidata/_images/editgroupbox.png
+        
+        See `documentation`_ for more details on the library and `changelog`_ for recent history of changes.
+        
+        Copyright © 2009-2015 CEA, Pierre Raybaut, licensed under the terms of the 
+        `CECILL License`_.
+        
+        .. _documentation: http://pythonhosted.org/guidata/
+        .. _changelog: https://github.com/PierreRaybaut/guidata/blob/master/CHANGELOG.md
+        .. _CECILL License: https://github.com/PierreRaybaut/guidata/blob/master/Licence_CeCILL_V2-en.txt
+        
+        
+        Overview
+        --------
+        
+        Based on the Qt Python binding module PyQt4, ``guidata`` is a Python library 
+        generating graphical user interfaces for easy dataset editing and display. It 
+        also provides helpers and application development tools for PyQt4.
+        
+        Generate GUIs to edit and display all kind of objects:
+        
+        - integers, floats, strings ;
+        - ndarrays (NumPy's n-dimensional arrays) ;
+        - etc.
+        
+        Application development tools:
+        
+        - configuration management
+        - internationalization (``gettext``)
+        - deployment tools
+        - HDF5 I/O helpers
+        - misc. utils
+        
+        
+        Building, installation, ...
+        ---------------------------
+        
+        The following package is **required**: `PyQt4`_ (or `PyQt5`_).
+        
+        The following packages are optional: `spyderlib`_ (GUI-based test launcher, dict/array editor), `h5py`_ (HDF5 I/O).
+        
+        .. _PyQt4: https://pypi.python.org/pypi/PyQt4
+        .. _PyQt5: https://pypi.python.org/pypi/PyQt5
+        .. _spyderlib: https://pypi.python.org/pypi/Spyder
+        .. _h5py: https://pypi.python.org/pypi/h5py
+        
+        See the `README`_ and `documentation`_ for more details.
+        
+        .. _README: https://github.com/PierreRaybaut/guidata/blob/master/README.md
 Platform: UNKNOWN
 Classifier: Topic :: Scientific/Engineering
 Classifier: Development Status :: 5 - Production/Stable
diff --git a/README b/README
deleted file mode 100644
index b7c1138..0000000
--- a/README
+++ /dev/null
@@ -1,56 +0,0 @@
-guidata
-=======
-
-Copyright © 2009-2015 CEA, Pierre Raybaut, licensed under the terms of the 
-CECILL License (see ``Licence_CeCILL_V2-en.txt``).
-
-
-Overview
---------
-
-Based on the Qt Python binding module PyQt4, ``guidata`` is a Python library 
-generating graphical user interfaces for easy dataset editing and display. It 
-also provides helpers and application development tools for PyQt4.
-
-Generate GUIs to edit and display all kind of objects:
-
-- integers, floats, strings ;
-- ndarrays (NumPy's n-dimensional arrays) ;
-- etc.
-
-Application development tools:
-
-- configuration management
-- internationalization (``gettext``)
-- deployment tools
-- HDF5 I/O helpers
-- misc. utils
-
-Dependencies
-------------
-
-    Requirements
-
-    - Python >=2.6 or Python >=3.2
-    - PyQt4 4.x (x>=3 ; recommended x>=4) or PyQt5 5.x (x>=5)
-    - spyderlib >=v2.0.10 (test launcher and array/dictionnary editors)
-    
-    Optional Python modules
-
-    - h5py (HDF5 files I/O)
-    - cx_Freeze or py2exe (application deployment on Windows platforms)
-
-    Other optional modules
-
-    gettext (text translation support)
-        
-    Recommended modules
-
-    guiqwt >= 3.0
-
-Installation
-------------
-
-    From the source package:
-
-        ``python setup.py install``
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..027b184
--- /dev/null
+++ b/README.md
@@ -0,0 +1,63 @@
+# guidata: Automatic GUI generation for easy dataset editing and display with Python
+
+Simple example of ``guidata`` datasets embedded in an application window:
+
+<img src="http://pythonhosted.org/guidata/_images/editgroupbox.png">
+
+See [documentation](http://pythonhosted.org/guidata/) for more details on 
+the library and [changelog](CHANGELOG.md) for recent history of changes.
+
+Copyright © 2009-2015 CEA, Pierre Raybaut, licensed under the terms of the 
+CECILL License (see ``Licence_CeCILL_V2-en.txt``).
+
+
+## Overview
+
+Based on the Qt Python binding module PyQt4, ``guidata`` is a Python library 
+generating graphical user interfaces for easy dataset editing and display. It 
+also provides helpers and application development tools for PyQt4.
+
+Generate GUIs to edit and display all kind of objects:
+
+- integers, floats, strings ;
+- ndarrays (NumPy's n-dimensional arrays) ;
+- etc.
+
+Application development tools:
+
+- configuration management
+- internationalization (``gettext``)
+- deployment tools
+- HDF5 I/O helpers
+- misc. utils
+
+
+## Dependencies
+
+### Requirements
+
+- Python 2.6+ or Python 3.2+
+- [PyQt4](https://pypi.python.org/pypi/PyQt4) 4.3+ or [PyQt5](https://pypi.python.org/pypi/PyQt5) 5.5+
+- [spyderlib](https://pypi.python.org/pypi/spyder) 2.1+ (test launcher and array/dictionnary editors)
+    
+### Optional Python modules
+
+- [h5py](https://pypi.python.org/pypi/h5py) (HDF5 files I/O)
+- [cx_Freeze](https://pypi.python.org/pypi/cx_Freeze) or [py2exe](https://pypi.python.org/pypi/py2exe) (application deployment on Windows platforms)
+
+### Other optional modules
+
+gettext (text translation support)
+        
+### Recommended modules
+
+[guiqwt](https://pypi.python.org/pypi/guiqwt) >= 3.0 is a set of tools for curve and image plotting based on `guidata`.
+
+
+## Installation
+
+### From the source package:
+
+```bash
+python setup.py install
+```
diff --git a/changelog b/changelog
deleted file mode 100644
index 1541e8e..0000000
--- a/changelog
+++ /dev/null
@@ -1,292 +0,0 @@
-== Version 1.7.4 ==
-
-Bug fixes:
-
-  * Fixed compatibility issue with Python 3.5.1rc1 (Issue #32: RecursionError in userconfig.UserConfig.get)
-  * HDF5Reader.read_object_list: fixed division by zero (when count was 1)
-  * hdf5io: fixed Python3 compatibility issue with unicode_hdf type converter
-
-----
-
-== Version 1.7.3 ==
-
-Features:
-
-  * Added CHM documentation to wheel package
-  * hdf5io: added support for a progress bar callback in "read_object_list" (this allows implementing a progress dialog widget showing the progress when reading an object list in an HDF5 file)
-
-Bug fixes:
-
-  * Python 3 compatibility: fixed `hdf5io.HDF5Writer.write_object_list` method
-  * data items:
-    * StringItem: when `notempty` parameter was set to True, item value was not checked at startup (expected orange background)
-  * disthelpers:
-    * Supporting recent versions of SciPy, h5py and IPython
-    * Fixed compatibility issue (workaround) with IPython on Python 2.7 (that is the "collection.sys cx_Freeze error")
-
-----
-
-== Version 1.7.2 ==
-
-Bug fixes:
-
-  * Fixed compatibility issues with old versions of Spyder (<v2.3)
-
-----
-
-== Version 1.7.1 ==
-
-Bug fixes:
-
-  * Fixed Issue #25: ConfigParser.get unexpected keyword argument 'raw'
-  * Fixed tests failures: disthelpers, guiqwt/tests/loadsaveitems_hdf5.py
-
-Features:
-
-  * userconfigio: added support for serializing/deserializing NumPy scalars
-  * Fixed Issue #47: added support for DateTimeItem/DateItem (de)serialization
-
-Setup:
-
-  * Using setuptools "entry_points" instead of distutils "scripts"
-
-----
-
-== Version 1.7.0 ==
-
-=== Possible API compatibility issues (since v1.6.2) ===
-
-  * Added support for PyQt5 (removed old-style signals)
-
-----
-
-== Version 1.6.1 ==
-
-=== Possible API compatibility issues (since v1.6.0) ===
-
-  * disthelpers:
-    * Changed arguments from "architecture=None, python_version=None" to "msvc_version, architecture=None"
-
-----
-
-== Version 1.6.0 ==
-
-Added support for Python 3 (see module `guidata.py3compat`).
-
-=== New features (since v1.5.1) ===
-
-  * disthelpers:
-    * Added support for Python 3.3
-    * Added support for pygments (and partial support for zmq: still failing)
-  * FloatArrayItem: added support for `unit` property value
-
-=== Bug fixes (since v1.5.1) ===
-
-  * disthelpers.prepend_module_to_path: unload modules which were already imported to be able to replace them by other versions (mostly `guidata` should be concerned by this if the function is used -as it should be- in package's __init__.py script)
-
-----
-
-== Version 1.5.1 ==
-
-=== New features (since v1.5.0) ===
-
-  * HDF5 serialization (HDF5 reader/writer):
-    * Added context manager
-    * Added convenience methods `read` and `write`
-    * Added convenience methods `write_object_list` and `read_object_list` to save/restore objects implementing DataSet-like `serialize` and `deserialize` methods
-  * Datasets I/O (HDF5/ini): None values (unset items) can now be saved/loaded for FloatItem, IntItem and BoolItem objects
-  * disthelpers: added option 'exclude_dirs' to 'add_module_data_files' and 'add_module_data_dir' methods
-  * Added slider support for FloatItem objects (contributor: julien.jaeck)
-  * (Issue 21) Added option 'size' in dataset `edit` and `view` methods to resize the generated dialog box (size may be a tuple of integers (width, height) or a QSize object)
-
-=== Possible API compatibility issues (since v1.5.0) ===
-
-  * guidata now requires Python 2.6 (Python 2.5 support has been dropped)
-
-=== Bug fixes (since v1.5.0) ===
-
-  * DataSet objects (de)serialization: fixed HDF5 reader/writer for FilesOpenItem and FloatArrayItem serialize/deserialize methods
-  * Fixed DataSet userconfig read/write test
-  * StringItem/ColorItem: fixed unicode/str issues in deserialization methods
-  * Added support for strings encoded in file system charset to avoid an error like "String %r is not UTF-8 encoded" when trying to set an item to a string value (path) obtained with a file system command
-  * configtools/image paths: handling file system encoded paths
-  * (Issue 14) Restored compatiblity with PyQt v4.4
-
-----
-
-== Version 1.5.0 ==
-
-=== Bug fixes (since v1.4.2) ===
-
-  * Fixed 'callback' property related issue: when updating a !DataSetShowGroupBox or
-!DataSetEditGroupBox internal dataset, the callback property was causing a reset
-of the data items to their default values
-
-=== Possible API compatibility issues (since v1.4.2) ===
-
-  * datatypes.!OperatorProperty was renamed to !FuncProp
-
-=== Other changes (since v1.4.2) ===
-
-  * Added test for the !FuncProp item property: how to change an item active state depending on another item's value
-  * Added support for dictionaries for `update_dataset` and `restore_dataset` (functions of `guidata.utils`):
-    * `update_dataset` may update the destination dataset from a source dictionary
-    * `restore_dataset` may update the destination dictionary from a source dataset
-  * FloatArrayItem: added option "large" to show all the array values in read-only mode
-  * Added new guidata svg logo
-  * disthelpers:
-    * added support for PySide
-	* disthelpers: new function 'get_visual_studio_dlls' -- returns the list of Visual
-Studio DLLs (and create manifest) associated to Python architecture and version
-	
-----
-
-== Version 1.4.2 ==
-
-=== Bug fixes (since v1.4.1) ===
-
-  * disthelpers:
-    * the vs2008 option was accidently turned off by default on Windows platforms
-    * build_chm.bat: added support for Windows x64
-
-=== Other changes (since v1.4.2) ===
-
-  * dataset.qtwidgets:
-    * !QLabel widgets word wrapping is now disabled for read-only items and may be disabled for dataset comments: this is necessary because when the parent widget height is constrained, Qt is unexpectedly reducing the height of word-wrapped QLabel widgets below their minimum size, hence truncating their contents...
-  * disthelpers:
-    * raising an exception when the right version of Ms Visual C++ DLLs was not found
-    * now creating the manifest and distributing from the redistribuable package installed in WinSxS
-
-----
-
-== Version 1.4.1 ==
-
-=== Bug fixes (since v1.4.0) ===
-
-  * !ColorItem for recent versions of Qt: in QLineEdit widget, the text representation of color was str(!QColor(...)) instead of str(!QColor(...).name())
-  * guidata.qt compat package: fixed _modname typo
-  * hdf5io:
-    * optional attribute mechanism generalized to both Attr and !DSet objects (for both saving and loading data)
-    * !H5Store/`close` method: now checking if h5 file has already been closed before trying to close it (see http://code.google.com/p/h5py/issues/detail?id=220)
-  * disthelpers:
-    * vs2008 option was ignored
-    * added 'C:\Program Files (x86)' to bin includes (cx_Freeze)
-  * Data items/callbacks: fixed callbacks for !ChoiceItem (or derived items) which were triggered when other widgets were triggering their own callbacks...
-
-=== Other changes (since v1.4.0) ===
-
-  * Added test for item callbacks
-  * dataset.datatypes.!FormatProp/new behavior: added `ignore_error` argument, default to True (ignores string formatting error: ValueError)
-  * disthelpers:
-    * Distribution.setup: added `target_dir` option
-    * Distribution.build: added `create_archive` option to create a ZIP archive after building the package
-    * cx_Freeze: added support for multiple executables
-    * added support for h5py 2.0
-    * added support for Maplotlib 1.1
-  * Allow !DateTime edit widgets to popup calendar
-
-----
-
-== Version 1.4.0 ==
-
-=== Possible API compatibility issues (since v1.3.2) ===
-
-  * disthelpers: removed functions remove_build_dist, add_module_data_files,
-    add_text_data_file, get_default_excludes, get_default_includes, 
-    get_default_dll_excludes, create_vs2008_data_files (...) which were 
-    replaced by a class named Distribution, 
-    see the new disthelpers test for more details (tests/dishelpers.py)
-  * reorganized utils and configtools modules
-
-=== Other changes (since v1.3.2) ===
-
-  * disthelpers: replaced almost all functions by a class named Distribution,
-    and added support for cx_Freeze (module remains compatible with py2exe),
-    see the new disthelpers test for more details (tests/dishelpers.py)
-  * reorganized utils and configtools modules
-
-----
-
-== Version 1.3.2 ==
-
-Since this version, `guidata` is compatible with !PyQt4 API #1 *and* API #2.
-Please read carefully the coding guidelines which have been recently added to 
-the documentation.
-
-=== Possible API compatibility issues (since v1.3.1) ===
-
-  * Removed deprecated wrappers around QFileDialog's static methods (use the wrappers provided by `guidata.qt.compat` instead):
-    * getExistingDirectory, getOpenFileName, getOpenFileNames, getSaveFileName
-
-=== Bug fixes (since v1.3.1) ===
-
-  * qtwidgets.!ShowFloatArrayWidget: fixed string float formatting issue (replaced %f by %g)
-  * Fixed compatiblity issues with !PyQt v4.4 (Contributor: Carlos Pascual)
-  * Fixed missing 'child_title' attribute error with !FileOpenItem, !FilesOpenItem, !FileSaveItem and !DirectoryItem
-  * (Fixes Issue 8) disthelpers.add_modules was failing when vs2008=False
-
-=== Other changes (since v1.3.1) ===
-
-  * added *this* changelog
-  * qtwidgets: removed !ProgressPopUp dialog (it is now recommended to use QProgressDialog instead, which is pretty much identical)
-  * Replaced QScintilla by spyderlib (as a dependency for array editor, code editor (test launcher) and dict editor)
-  * qtwidgets.!DockWidgetMixin: added method 'setup_dockwidget' to change dockwidget's features, location and allowed areas after class instantiation
-  * guidata.utils.utf8_to_unicode: translated error message in english
-  * Add support for 'int' in hdf5 save function
-  * guidata.dataset/Numeric items (!FloatItem, !IntItem): added option 'unit' (automatically add suffix ' (unit)' to label in edit mode and suffix ' unit' to value in read-only mode)
-  * Improved dataset __str__ method: code refactoring with read-only dataset widgets (!DataItem: added methods 'format_string' and 'get_string_value', !DataSet: added method 'to_string')
-  * Added coding guidelines to the documentation
-  * guidata.dataset.qtwidget: added specific widget (!ShowBooleanWidget) for read-only display of bool items (text is striked out when value is False)
-  * guidata.hdf5io.Dset: added missing keyword argument 'optional' (same effect as parent class Attr)
-  * guidata.dataset.dataitems.!IntItem objects: added support for sliders (fixes Issue 9) with option slider=True (see documentation)
-
-----
-
-== Version 1.3.1 ==
-
-=== Bug fixes (since v1.3.0) ===
-
-  * setup.py: added svg icons to data files
-  * gettext helpers were not working on Linux (Windows install pygettext was hardcoded)
-
-=== Other changes (since v1.3.0) ===
-
-  * hdf5io: printing error messages in sys.stderr + added more infos when failing to load attribute
-
-----
-
-== Version 1.3.0 ==
-
-=== Bug fixes (since v1.2.5) ===
-
-  * setup.py: added svg icons to data files
-  * gettext helpers were not working on Linux (Windows install pygettext was hardcoded)
-  * !DataSet/bugfix: comment/title options now override the !DataSet class __doc__ attribute
-  * Added missing option 'basedir' for !FilesOpenItem
-  * !DirectoryItem: fixed missing child_title attribute bug
-  * For all !DataSet GUI representation, the comment text is now word-wrapped
-  * Bugfix: recent versions of !PyQt don't like the QApplication reference to be stored in modules (why is that?!)
-  * Bugfix/tests: always keep a reference to the QApplication instance
-
-=== Other changes (since v1.2.5) ===
-
-  * setup.py: added source archive download url
-  * Tests: now creating real temporary files and cleaning up at exit
-  * qtAllow a callback on !LineEditWidget to notify about text changes (use set_prop("display", "callback", callback))
-  * qthelpers: provide wrapper for qt.getOpen/!SaveFileName to work around win32 bug
-  * qtwidgets: optionally hide apply button in !DataSetEditGroupBox
-  * added module guidata.qtwidgets (moved some generic widgets from guidata.qthelpers and from other external packages)
-  * qthelpers: added helper 'create_groupbox' (QGroupBox object creation)
-  * Array editor: updated code from Spyder's array editor (original code)
-  * Added package guidata.editors: contains editor widgets derived from Spyder editor widgets (array editor, dictionary editor, text editor)
-  * Array editor: added option to set row/col labels (resp. ylabels and xlabels)
-  * !ButtonItem: changed callback arguments to  *instance* (!DataSet object), *value* (item value), *parent* (button's parent widget)
-  * editors.!DictEditor.!DictEditor: moved options from constructor to 'setup' method (like !ArrayEditor's setup_and_check), added parent widget to constructor options
-  * Added !DictItem type: simple button to edit a dictionary
-  * editors.!DictEditor.!DictEditor/bugfixes: added action "Insert" to context menu for an empty dictionary + fixed inline unicode editing (was showing the error message "Unable to assign data to item")
-  * guidata.qtwidgets: added '!DockableWidgetMixin' to fabricate any dockable QWidget class
-  * gettext helpers: added support for individual module translation (until now, only whole packages were supported)
-  * !DataSetShowGroupBox/!DataSetEditGroupBox: **kwargs may now be passed to the !DataSet constructor
-  * disthelpers: added 'scipy.io' to supported modules (includes)
-  * Added new "value_callback" display property: this function is called when QLineEdit text has changed (item value is passed)
-  * Added option to pass a text formatting function in !DataSetShowWidget
diff --git a/doc/installation.rst b/doc/installation.rst
index 0c71dc9..fa286d3 100644
--- a/doc/installation.rst
+++ b/doc/installation.rst
@@ -7,13 +7,20 @@ Dependencies
 Requirements:
 
     * Python 2.x (x>=6) or 3.x (x>=2)
-    * PyQt4 4.x (x>=3 ; recommended x>=4) or PyQt5 5.x (x>=5)
-    * spyderlib >=v2.0.10 for the test launcher and array/dictionnary editors
+    * `PyQt4`_ 4.x (x>=3 ; recommended x>=4) or `PyQt5`_ 5.x (x>=5)
     
 Optional Python modules:
 
-    * h5py (HDF5 files I/O)
-    * cx_Freze or py2exe (application deployment on Windows platforms)
+    * `spyderlib`_ >=v2.0.10 for the test launcher and array/dictionnary editors
+    * `h5py`_ (HDF5 files I/O)
+    * `cx_Freeze`_ or `py2exe`_ (application deployment on Windows platforms)
+
+.. _PyQt4: https://pypi.python.org/pypi/PyQt4
+.. _PyQt5: https://pypi.python.org/pypi/PyQt5
+.. _spyderlib: https://pypi.python.org/pypi/Spyder
+.. _h5py: https://pypi.python.org/pypi/h5py
+.. _cx_Freeze: https://pypi.python.org/pypi/cx_Freeze
+.. _py2exe: https://pypi.python.org/pypi/py2exe
 
 Other optional modules for developers:
 
diff --git a/guidata.egg-info/PKG-INFO b/guidata.egg-info/PKG-INFO
index 4ddc17c..4f5af4d 100644
--- a/guidata.egg-info/PKG-INFO
+++ b/guidata.egg-info/PKG-INFO
@@ -1,12 +1,65 @@
 Metadata-Version: 1.1
 Name: guidata
-Version: 1.7.4
+Version: 1.7.6
 Summary: Automatic graphical user interfaces generation for easy dataset editing and display
 Home-page: https://github.com/PierreRaybaut/guidata
 Author: Pierre Raybaut
 Author-email: pierre.raybaut at gmail.com
 License: CeCILL V2
-Description: UNKNOWN
+Description: guidata: Automatic GUI generation for easy dataset editing and display with Python
+        ======================================================================================
+        
+        Simple example of ``guidata`` datasets embedded in an application window:
+        
+        .. image:: http://pythonhosted.org/guidata/_images/editgroupbox.png
+        
+        See `documentation`_ for more details on the library and `changelog`_ for recent history of changes.
+        
+        Copyright © 2009-2015 CEA, Pierre Raybaut, licensed under the terms of the 
+        `CECILL License`_.
+        
+        .. _documentation: http://pythonhosted.org/guidata/
+        .. _changelog: https://github.com/PierreRaybaut/guidata/blob/master/CHANGELOG.md
+        .. _CECILL License: https://github.com/PierreRaybaut/guidata/blob/master/Licence_CeCILL_V2-en.txt
+        
+        
+        Overview
+        --------
+        
+        Based on the Qt Python binding module PyQt4, ``guidata`` is a Python library 
+        generating graphical user interfaces for easy dataset editing and display. It 
+        also provides helpers and application development tools for PyQt4.
+        
+        Generate GUIs to edit and display all kind of objects:
+        
+        - integers, floats, strings ;
+        - ndarrays (NumPy's n-dimensional arrays) ;
+        - etc.
+        
+        Application development tools:
+        
+        - configuration management
+        - internationalization (``gettext``)
+        - deployment tools
+        - HDF5 I/O helpers
+        - misc. utils
+        
+        
+        Building, installation, ...
+        ---------------------------
+        
+        The following package is **required**: `PyQt4`_ (or `PyQt5`_).
+        
+        The following packages are optional: `spyderlib`_ (GUI-based test launcher, dict/array editor), `h5py`_ (HDF5 I/O).
+        
+        .. _PyQt4: https://pypi.python.org/pypi/PyQt4
+        .. _PyQt5: https://pypi.python.org/pypi/PyQt5
+        .. _spyderlib: https://pypi.python.org/pypi/Spyder
+        .. _h5py: https://pypi.python.org/pypi/h5py
+        
+        See the `README`_ and `documentation`_ for more details.
+        
+        .. _README: https://github.com/PierreRaybaut/guidata/blob/master/README.md
 Platform: UNKNOWN
 Classifier: Topic :: Scientific/Engineering
 Classifier: Development Status :: 5 - Production/Stable
diff --git a/guidata.egg-info/SOURCES.txt b/guidata.egg-info/SOURCES.txt
index 2430e1e..a7eaf0d 100644
--- a/guidata.egg-info/SOURCES.txt
+++ b/guidata.egg-info/SOURCES.txt
@@ -1,7 +1,7 @@
+CHANGELOG.md
 Licence_CeCILL_V2-en.txt
 MANIFEST.in
-README
-changelog
+README.md
 setup.py
 doc/basic_example.py
 doc/conf.py
diff --git a/guidata/__init__.py b/guidata/__init__.py
index 018d790..60532dd 100644
--- a/guidata/__init__.py
+++ b/guidata/__init__.py
@@ -18,7 +18,7 @@ External resources:
 .. _GoogleGroup: http://groups.google.fr/group/guidata_guiqwt
 """
 
-__version__ = '1.7.4'
+__version__ = '1.7.6'
 
 # Dear (Debian, RPM, ...) package makers, please feel free to customize the
 # following path to module's data (images) and translations:
diff --git a/guidata/dataset/dataitems.py b/guidata/dataset/dataitems.py
index 4632163..8c8beda 100644
--- a/guidata/dataset/dataitems.py
+++ b/guidata/dataset/dataitems.py
@@ -371,7 +371,9 @@ class FilesOpenItem(FileSaveItem):
     def check_value(self, value):
         """Override DataItem method"""
         if not self.get_prop('data', 'check_value', True):
-            return True 
+            return True
+        if value is None:
+            return False
         allexist = True
         for path in value:
             allexist = allexist and os.path.exists(path) \
@@ -652,14 +654,20 @@ class DictItem(ButtonItem):
     def __init__(self, label, default=None, help='', check=True):
         def dictedit(instance, item, value, parent):
             try:
-                # Spyder 3
-                from spyderlib.widgets.variableexplorer \
+                # Spyder 3.0
+                from spyder.widgets.variableexplorer \
                     import collectionseditor
                 Editor = collectionseditor.CollectionsEditor
             except ImportError:
-                # Spyder 2
-                from spyderlib.widgets import dicteditor
-                Editor = dicteditor.DictEditor
+                try:
+                    # Spyder 3.0-
+                    from spyderlib.widgets.variableexplorer \
+                        import collectionseditor
+                    Editor = collectionseditor.CollectionsEditor
+                except ImportError:
+                    # Spyder 2
+                    from spyderlib.widgets import dicteditor
+                    Editor = dicteditor.DictEditor
             editor = Editor(parent)
             value_was_none = value is None
             if value_was_none:
@@ -682,4 +690,4 @@ class FontFamilyItem(StringItem):
         * default [string]: default value (optional)
         * help [string]: text shown in tooltip (optional)
     """
-    pass
\ No newline at end of file
+    pass
diff --git a/guidata/dataset/qtitemwidgets.py b/guidata/dataset/qtitemwidgets.py
index 19ed665..0d84ef4 100644
--- a/guidata/dataset/qtitemwidgets.py
+++ b/guidata/dataset/qtitemwidgets.py
@@ -842,11 +842,15 @@ class FloatArrayWidget(AbstractDataSetWidget):
         parent = self.parent_layout.parent
         label = self.item.get_prop_value("display", "label")
         try:
-            # Spyder 3
-            from spyderlib.widgets.variableexplorer import arrayeditor
+            # Spyder 3.0
+            from spyder.widgets.variableexplorer import arrayeditor
         except ImportError:
-            # Spyder 2
-            from spyderlib.widgets import arrayeditor
+            # Spyder 3.0-
+            try:
+                from spyderlib.widgets.variableexplorer import arrayeditor
+            except ImportError:
+                # Spyder 2
+                from spyderlib.widgets import arrayeditor
         editor = arrayeditor.ArrayEditor(parent)
         if editor.setup_and_check(self.arr, title=label):
             if editor.exec_():
diff --git a/guidata/guitest.py b/guidata/guitest.py
index 0e9db70..8aaf804 100644
--- a/guidata/guitest.py
+++ b/guidata/guitest.py
@@ -14,8 +14,10 @@ import os
 import os.path as osp
 import subprocess
 
-from spyderlib.widgets.sourcecode.codeeditor import CodeEditor
-
+try:  # Spyder3.0
+    from spyder.widgets.sourcecode.codeeditor import CodeEditor
+except ImportError:
+    from spyderlib.widgets.sourcecode.codeeditor import CodeEditor
 # Local imports
 from guidata.qt.QtGui import (QWidget, QVBoxLayout, QSplitter, QFont,
                               QListWidget, QPushButton, QLabel, QGroupBox,
diff --git a/guidata/qt/__init__.py b/guidata/qt/__init__.py
index d4f39d3..565ee5a 100644
--- a/guidata/qt/__init__.py
+++ b/guidata/qt/__init__.py
@@ -31,7 +31,13 @@ if API == 'pyqt':
         sip.setapi('QUrl', 2)        
     except ValueError:
         import sys
-        if 'spyderlib.spyder' in sys.modules:
+        if 'spyder.spyder' in sys.modules:
+            #  Spyder v3 is initializing: it's safe to ignore this exception
+            from spyder import __version__ as spyder_ver
+            if int(spyder_ver.split('.')[1]) < 3:
+                print("Warning: deprecated version of Spyder, please upgrade!", 
+                      file=sys.stderr)
+        elif 'spyderlib.spyder' in sys.modules:
             #  Spyder v2 is initializing: it's safe to ignore this exception
             from spyderlib import __version__ as spyder_ver
             if int(spyder_ver.split('.')[1]) < 3:
diff --git a/setup.py b/setup.py
index e523676..7843679 100644
--- a/setup.py
+++ b/setup.py
@@ -39,7 +39,62 @@ from guidata import __version__ as version
 
 DESCRIPTION = 'Automatic graphical user interfaces generation for easy '\
               'dataset editing and display'
-LONG_DESCRIPTION = ''
+LONG_DESCRIPTION = """\
+guidata: Automatic GUI generation for easy dataset editing and display with Python
+======================================================================================
+
+Simple example of ``guidata`` datasets embedded in an application window:
+
+.. image:: http://pythonhosted.org/guidata/_images/editgroupbox.png
+
+See `documentation`_ for more details on the library and `changelog`_ for recent history of changes.
+
+Copyright © 2009-2015 CEA, Pierre Raybaut, licensed under the terms of the 
+`CECILL License`_.
+
+.. _documentation: http://pythonhosted.org/guidata/
+.. _changelog: https://github.com/PierreRaybaut/guidata/blob/master/CHANGELOG.md
+.. _CECILL License: https://github.com/PierreRaybaut/guidata/blob/master/Licence_CeCILL_V2-en.txt
+
+
+Overview
+--------
+
+Based on the Qt Python binding module PyQt4, ``guidata`` is a Python library 
+generating graphical user interfaces for easy dataset editing and display. It 
+also provides helpers and application development tools for PyQt4.
+
+Generate GUIs to edit and display all kind of objects:
+
+- integers, floats, strings ;
+- ndarrays (NumPy's n-dimensional arrays) ;
+- etc.
+
+Application development tools:
+
+- configuration management
+- internationalization (``gettext``)
+- deployment tools
+- HDF5 I/O helpers
+- misc. utils
+
+
+Building, installation, ...
+---------------------------
+
+The following package is **required**: `PyQt4`_ (or `PyQt5`_).
+
+The following packages are optional: `spyderlib`_ (GUI-based test launcher, dict/array editor), `h5py`_ (HDF5 I/O).
+
+.. _PyQt4: https://pypi.python.org/pypi/PyQt4
+.. _PyQt5: https://pypi.python.org/pypi/PyQt5
+.. _spyderlib: https://pypi.python.org/pypi/Spyder
+.. _h5py: https://pypi.python.org/pypi/h5py
+
+See the `README`_ and `documentation`_ for more details.
+
+.. _README: https://github.com/PierreRaybaut/guidata/blob/master/README.md"""
+
 KEYWORDS = ''
 CLASSIFIERS = ['Topic :: Scientific/Engineering']
 if 'beta' in version or 'b' in version:

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/guidata.git



More information about the debian-science-commits mailing list