Hello community, here is the log from the commit of package python-oct2py for openSUSE:Factory checked in at 2019-07-24 20:34:17 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-oct2py (Old) and /work/SRC/openSUSE:Factory/.python-oct2py.new.4126 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oct2py" Wed Jul 24 20:34:17 2019 rev:3 rq:718006 version:5.0.4 Changes: -------- --- /work/SRC/openSUSE:Factory/python-oct2py/python-oct2py.changes 2019-06-02 15:18:10.390031775 +0200 +++ /work/SRC/openSUSE:Factory/.python-oct2py.new.4126/python-oct2py.changes 2019-07-24 20:34:18.446582168 +0200 @@ -1,0 +2,9 @@ +Tue Jul 23 20:26:33 UTC 2019 - Todd R <[email protected]> + +- Update to version 5.0.4 + * update example docs +- Update to version 5.0.3 + * switch to line_handler and add a carriage return test + * remove hardcoded email + +------------------------------------------------------------------- Old: ---- oct2py-5.0.2.tar.gz New: ---- oct2py-5.0.4.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-oct2py.spec ++++++ --- /var/tmp/diff_new_pack.Y5Kb5p/_old 2019-07-24 20:34:18.942582113 +0200 +++ /var/tmp/diff_new_pack.Y5Kb5p/_new 2019-07-24 20:34:18.942582113 +0200 @@ -21,19 +21,23 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} %define skip_python2 1 Name: python-oct2py -Version: 5.0.2 +Version: 5.0.4 Release: 0 Summary: Python to GNU Octave bridge License: MIT Group: Development/Languages/Python Url: http://github.com/blink1073/oct2py Source: https://files.pythonhosted.org/packages/source/o/oct2py/oct2py-%{version}.tar.gz +BuildRequires: %{python_module numpy >= 1.12} BuildRequires: %{python_module octave-kernel >= 0.30} +BuildRequires: %{python_module scipy >= 0.17} BuildRequires: %{python_module setuptools} BuildRequires: fdupes BuildRequires: python-rpm-macros BuildRequires: fdupes +Requires: python-numpy >= 1.12 Requires: python-octave-kernel >= 0.30 +Requires: python-scipy >= 0.17 BuildArch: noarch %python_subpackages ++++++ oct2py-5.0.2.tar.gz -> oct2py-5.0.4.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oct2py-5.0.2/PKG-INFO new/oct2py-5.0.4/PKG-INFO --- old/oct2py-5.0.2/PKG-INFO 2019-05-06 02:23:52.000000000 +0200 +++ new/oct2py-5.0.4/PKG-INFO 2019-06-02 12:07:56.000000000 +0200 @@ -1,110 +1,111 @@ -Metadata-Version: 2.1 -Name: oct2py -Version: 5.0.2 -Summary: Python to GNU Octave bridge --> run m-files from python. -Home-page: http://github.com/blink1073/oct2py -Maintainer: Steven Silvester -Maintainer-email: [email protected] -License: MIT -Download-URL: http://github.com/blink1073/oct2py -Description: Oct2Py: Python to GNU Octave Bridge - =================================== - - .. image:: https://badge.fury.io/py/oct2py.png/ - :target: http://badge.fury.io/py/oct2py - - .. image:: https://codecov.io/github/blink1073/oct2py/coverage.svg?branch=master - :target: https://codecov.io/github/blink1073/oct2py?branch=master - - .. image:: http://pepy.tech/badge/oct2py - :target: http://pepy.tech/project/oct2py - :alt: PyPi Download stats - - Oct2Py allows you to seamlessly call M-files and Octave functions from Python. - It manages the Octave session for you, sharing data behind the scenes using - MAT files. Usage is as simple as: - - .. code-block:: python - - >>> oc = oct2py.Oct2Py() - >>> x = oc.zeros(3,3) - >>> print(x, x.dtype) - [[ 0. 0. 0.] - [ 0. 0. 0.] - [ 0. 0. 0.]] float64 - ... - - If you want to run legacy m-files, do not have MATLAB®, and do not fully - trust a code translator, this is your library. - - - Features - -------- - - - Supports all Octave datatypes and most Python datatypes and Numpy dtypes. - - Provides OctaveMagic_ for IPython, including inline plotting in notebooks. - - Supports cell arrays and structs/struct arrays with arbitrary nesting. - - Supports sparse matrices. - - Builds methods on the fly linked to Octave commands (e.g. `zeros` above). - - Thread-safety: each Oct2Py object uses an independent Octave session. - - Can be used as a context manager. - - Supports Unicode characters. - - Supports logging of session commands. - - Optional timeout command parameter to prevent runaway Octave sessions. - - - .. _OctaveMagic: https://nbviewer.jupyter.org/github/blink1073/oct2py/blob/master/example/octavemagic_extension.ipynb?create=1 - - - Installation - ------------ - You must have GNU Octave installed and in your ``PATH`` environment variable. - Alternatively, you can set an ``OCTAVE_EXECUTABLE`` or ``OCTAVE`` environment - variable that points to ``octave-cli`` executable itself. - - You must have the Numpy and Scipy libraries for Python installed. - See the installation instructions_ for more details. - - Once the dependencies have been installed, run: - - .. code-block:: bash - - $ pip install oct2py - - If using conda, it is available on conda-forge: - - .. code-block:: bash - - $ conda install -c conda-forge oct2py - - .. _instructions: http://blink1073.github.io/oct2py/source/installation.html - - - Documentation - ------------- - - Documentation is available online_. - - For version information, see the Revision History_. - - .. _online: https://oct2py.readthedocs.io/en/latest/ - - .. _History: https://github.com/blink1073/oct2py/blob/master/HISTORY.rst - -Platform: Any -Classifier: Development Status :: 5 - Production/Stable -Classifier: Intended Audience :: Developers -Classifier: Intended Audience :: Science/Research -Classifier: License :: OSI Approved :: MIT License -Classifier: Operating System :: OS Independent -Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 2.7 -Classifier: Programming Language :: Python :: 3.3 -Classifier: Programming Language :: Python :: 3.4 -Classifier: Topic :: Scientific/Engineering -Classifier: Topic :: Software Development -Requires: numpy (>= 1.12) -Requires: scipy (>= 0.17) -Requires: octave_kernel (>= 0.30.0) -Provides-Extra: docs -Provides-Extra: test +Metadata-Version: 2.1 +Name: oct2py +Version: 5.0.4 +Summary: Python to GNU Octave bridge --> run m-files from python. +Home-page: http://github.com/blink1073/oct2py +Maintainer: Steven Silvester +Maintainer-email: [email protected] +License: MIT +Download-URL: http://github.com/blink1073/oct2py +Description: Oct2Py: Python to GNU Octave Bridge + =================================== + + .. image:: https://badge.fury.io/py/oct2py.png/ + :target: http://badge.fury.io/py/oct2py + + .. image:: https://codecov.io/github/blink1073/oct2py/coverage.svg?branch=master + :target: https://codecov.io/github/blink1073/oct2py?branch=master + + .. image:: http://pepy.tech/badge/oct2py + :target: http://pepy.tech/project/oct2py + :alt: PyPi Download stats + + Oct2Py allows you to seamlessly call M-files and Octave functions from Python. + It manages the Octave session for you, sharing data behind the scenes using + MAT files. Usage is as simple as: + + .. code-block:: python + + >>> oc = oct2py.Oct2Py() + >>> x = oc.zeros(3,3) + >>> print(x, x.dtype) + [[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]] float64 + ... + + If you want to run legacy m-files, do not have MATLAB®, and do not fully + trust a code translator, this is your library. + + + Features + -------- + + - Supports all Octave datatypes and most Python datatypes and Numpy dtypes. + - Provides OctaveMagic_ for IPython, including inline plotting in notebooks. + - Supports cell arrays and structs/struct arrays with arbitrary nesting. + - Supports sparse matrices. + - Builds methods on the fly linked to Octave commands (e.g. `zeros` above). + - Thread-safety: each Oct2Py object uses an independent Octave session. + - Can be used as a context manager. + - Supports Unicode characters. + - Supports logging of session commands. + - Optional timeout command parameter to prevent runaway Octave sessions. + + + .. _OctaveMagic: https://nbviewer.jupyter.org/github/blink1073/oct2py/blob/master/example/octavemagic_extension.ipynb?create=1 + + + Installation + ------------ + You must have GNU Octave installed and in your ``PATH`` environment variable. + Alternatively, you can set an ``OCTAVE_EXECUTABLE`` or ``OCTAVE`` environment + variable that points to ``octave-cli`` executable itself. + + You must have the Numpy and Scipy libraries for Python installed. + See the installation instructions_ for more details. + + Once the dependencies have been installed, run: + + .. code-block:: bash + + $ pip install oct2py + + If using conda, it is available on conda-forge: + + .. code-block:: bash + + $ conda install -c conda-forge oct2py + + .. _instructions: http://blink1073.github.io/oct2py/source/installation.html + + + Documentation + ------------- + + Documentation is available online_. + + For version information, see the Revision History_. + + .. _online: https://oct2py.readthedocs.io/en/latest/ + + .. _History: https://github.com/blink1073/oct2py/blob/master/HISTORY.rst + +Platform: Any +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: Intended Audience :: Science/Research +Classifier: License :: OSI Approved :: MIT License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3.3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Topic :: Scientific/Engineering +Classifier: Topic :: Software Development +Requires: numpy (>= 1.12) +Requires: scipy (>= 0.17) +Requires: octave_kernel (>= 0.31.0) +Description-Content-Type: text/x-rst +Provides-Extra: docs +Provides-Extra: test diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oct2py-5.0.2/docs/source/examples.rst new/oct2py-5.0.4/docs/source/examples.rst --- old/oct2py-5.0.2/docs/source/examples.rst 2019-04-24 04:34:39.000000000 +0200 +++ new/oct2py-5.0.4/docs/source/examples.rst 2019-06-02 12:06:07.000000000 +0200 @@ -49,13 +49,12 @@ >>> out, oclass = octave.roundtrip(x) >>> import pprint >>> pprint.pprint([x, x.dtype, out, oclass, out.dtype]) - [array([[ 1., 2.], - [ 3., 4.]]), - dtype('float64'), - array([[ 1., 2.], - [ 3., 4.]]), - 'double', - dtype('float64')] + [array([[1., 2.], + [3., 4.]]), + dtype('float64'), + array([1., 2.]), + array([3., 4.]), + dtype('<f8')] @@ -67,58 +66,92 @@ :: - function test = test_datatypes() - % Test of returning a structure with multiple - % nesting and multiple return types - - %%%%%%%%%%%%%%% - % numeric types - % integers - test.num.int.int8 = int8(-2^7); - test.num.int.int16 = int16(-2^15); - test.num.int.int32 = int32(-2^31); - test.num.int.int64 = int64(-2^63); - test.num.int.uint8 = uint8(2^8-1); - test.num.int.uint16 = uint16(2^16-1); - test.num.int.uint32 = uint32(2^32-1); - test.num.int.uint64 = uint64(2^64-1); - - %floats - test.num.float32 = single(pi); - test.num.float64 = double(pi); - test.num.complex = 3 + 1j; - test.num.complex_matrix = (1 + 1j) * rand([2 2]) - - % misc - test.num.inf = inf - test.num.NaN = NaN - test.num.matrix = [1 2; 3 4] - test.num.vector = [1 2 3 4] - test.num.column_vector = [1;2;3;4] - test.num.matrix3d = rand([2 3 4]) - test.num.matrix5d = rand(1,2,3,4,5) - - %%%%%%%%%%%%%%% - % logical type - test.logical = [10 20 30 40 50] > 30 - - %%%%%%%%%%%%%%% - % string types - test.string.basic = 'spam' - test.string.char_array = {'spam', 'eggs'; 'foo ', 'bar '} - test.string.cell_array = {'spam', 'eggs'} - - %%%%%%%%%%%%%%% - % struct types - test.struct.array(1).name = 'Sharon' - test.struct.array(1).age = 31 - test.struct.array(2).name = 'Bill' - test.struct.array(2).age = 42 - - %%%%%%%%%%%%%%% - % cell array types - test.cell.vector = {'spam', 4.0, [1 2 3]} - test.cell.matrix = {'Bob', 40; 'Pam', 41} + function test = test_datatypes() + % Test of returning a structure with multiple + % nesting and multiple return types + % Add a UTF char for test: 猫 + + %%%%%%%%%%%%%%% + % numeric types + % integers + test.num.int.int8 = int8(-2^7); + test.num.int.int16 = int16(-2^15); + test.num.int.int32 = int32(-2^31); + test.num.int.int64 = int64(-2^63); + test.num.int.uint8 = uint8(2^8-1); + test.num.int.uint16 = uint16(2^16-1); + test.num.int.uint32 = uint32(2^32-1); + test.num.int.uint64 = uint64(2^64-1); + + %floats + test.num.float32 = single(pi); + test.num.float64 = double(pi); + test.num.complex = 3 + 1j; + test.num.complex_matrix = (1.2 + 1.1j) * magic(3); + + % misc + test.num.inf = inf; + test.num.NaN = NaN; + test.num.matrix = [1 2; 3 4]; + test.num.vector = [1 2 3 4]; + test.num.column_vector = [1;2;3;4]; + test.num.matrix3d = ones([2 3 4]) * pi; + test.num.matrix5d = ones(1,2,3,4,5) * pi; + + %%%%%%%%%%%%%%% + % logical type + test.logical = [10 20 30 40 50] > 30; + + + %%%%%%%%%%%%%%%% + % sparse type + test.sparse = speye(10); + + %%%%%%%%%%%%%%% + % string types + test.string.basic = 'spam'; + test.string.cell = {'1'}; + test.string.char_array = ['Thomas R. Lee'; ... + 'Sr. Developer'; ... + 'SFTware Corp.']; + test.string.cell_array = {'spam', 'eggs'}; + + %%%%%%%%%%%%%%%% + % User defined object + test.object = polynomial([1,2,3]); + + %%%%%%%%%%%%%%% + % struct array of shape 3x1 + test.struct_vector = [struct('key','a'); struct('key','b'); struct('key','c')]; + + %%%%%%%%%%%%%%% + % struct array of shape 1x2 + test.struct_array(1).name = 'Sharon'; + test.struct_array(1).age = 31; + test.struct_array(2).name = 'Bill'; + test.struct_array(2).age = 42; + + %%%%%%%%%%%%%%% + % cell array types + test.cell.vector = {'spam', 4.0, [1 2 3]}; + test.cell.matrix = {'Bob', 40; 'Pam', 41}; + test.cell.scalar = {1.8}; + test.cell.string = {'1'}; + test.cell.string_array = {'1', '2'}; + test.cell.empty = cell(3,4,2); + test.cell.array = {[0.4194 0.3629 -0.0000; + 0.0376 0.3306 0.0000; + 0 0 1.0000], + [0.5645 -0.2903 0; + 0.0699 0.1855 0.0000; + 0.8500 0.8250 1.0000]}; + + %%%%%%%%%%%%%% + % nest all of the above. + test.nested = test; + + end + Python Session +++++++++++++++ @@ -129,70 +162,201 @@ >>> out = octave.test_dataypes() >>> import pprint >>> pprint.pprint(out) - {u'cell': {u'matrix': [['Bob', 'Pam'], [40.0, 41.0]], - u'vector': ['spam', 4.0, array([[ 1., 2., 3.]])]}, - u'logical': array([[0, 0, 0, 1, 1]]), - u'num': {u'NaN': nan, - u'column_vector': array([[ 1.], - [ 2.], - [ 3.], - [ 4.]]), - u'complex': (3+1j), - u'complex_matrix': array([[ 0.29801132+0.29801132j, 0.25385592+0.25385592j], - [ 0.36628765+0.36628765j, 0.17222843+0.17222843j]]), - u'float32': 3.1415927, - u'float64': 3.1415926535897931, - u'inf': inf, - u'int': {u'int16': -32768, - u'int32': -2147483648, - u'int64': -9223372036854775808, - u'int8': -128, - u'uint16': 65535, - u'uint32': 4294967295, - u'uint64': 18446744073709551615, - u'uint8': 255}, - u'matrix': array([[ 1., 2.], - [ 3., 4.]]), - u'matrix3d': array([[[ 0.37748504, 0.42576504, 0.33770276, 0.28353423], - [ 0.07772849, 0.79317342, 0.35633704, 0.84392906], - [ 0.27743843, 0.58173155, 0.60478932, 0.15784762]], - - [[ 0.61831316, 0.52826816, 0.2561059 , 0.69882897], - [ 0.78915391, 0.55164477, 0.34382527, 0.23743691], - [ 0.7984285 , 0.13977171, 0.77679021, 0.22355376]]]), - u'matrix5d': array([[[[[ 0.87245616, 0.3935346 , 0.00509518, 0.18260647, 0.2328523 ], - [ 0.57790841, 0.26083328, 0.82910847, 0.79100768, 0.111686 ], - [ 0.01399121, 0.80096565, 0.50399158, 0.51631872, 0.07292035], - [ 0.59993558, 0.62226338, 0.26245502, 0.71373283, 0.54863195]], - - [[ 0.47438503, 0.17510892, 0.31801117, 0.09766319, 0.72427364], - [ 0.02762037, 0.73835099, 0.6464369 , 0.59452631, 0.26695231], - [ 0.01843247, 0.10938661, 0.68805356, 0.43229338, 0.84202539], - [ 0.77406571, 0.21564875, 0.6492912 , 0.18763039, 0.02976736]], - - [[ 0.32019185, 0.67178221, 0.33481521, 0.39093148, 0.51177757], - [ 0.59023927, 0.91152032, 0.26690269, 0.46438787, 0.02999184], - [ 0.08864962, 0.97042015, 0.10310935, 0.12789306, 0.71532619], - [ 0.19870871, 0.14683877, 0.0367708 , 0.96534334, 0.04710378]]], - - - [[[ 0.97058297, 0.12706106, 0.05109758, 0.16347541, 0.88931781], - [ 0.43036654, 0.97654587, 0.99862712, 0.33365358, 0.74330177], - [ 0.41980651, 0.74997277, 0.9978432 , 0.44787774, 0.60519502], - [ 0.94386177, 0.12320678, 0.01164074, 0.34409676, 0.34135462]], - - [[ 0.92895971, 0.81883047, 0.27796085, 0.9303487 , 0.01020294], - [ 0.30430039, 0.74434446, 0.3828099 , 0.15817473, 0.74870604], - [ 0.82601961, 0.28806172, 0.75975623, 0.76901488, 0.06666695], - [ 0.58065392, 0.96855147, 0.7603041 , 0.98177511, 0.59357169]], - - [[ 0.86808738, 0.89797971, 0.16175654, 0.93365793, 0.25343561], - [ 0.25567182, 0.75436271, 0.94137345, 0.04822251, 0.69818659], - [ 0.18410575, 0.07060479, 0.20660155, 0.06567875, 0.83880553], - [ 0.61876976, 0.64932156, 0.21524418, 0.99559647, 0.34971336]]]]]), - u'vector': array([[ 1., 2., 3., 4.]])}, - u'string': {u'basic': 'spam', - u'cell_array': ['spam', 'eggs'], - u'char_array': [['spam', 'foo '], ['eggs', 'bar ']]}, - u'struct': {u'array': {u'age': [31.0, 42.0], u'name': ['Sharon', 'Bill']}}} - + {'cell': {'array': Cell([array([[ 0.4194, 0.3629, -0. ], + [ 0.0376, 0.3306, 0. ], + [ 0. , 0. , 1. ]]), + array([[ 0.5645, -0.2903, 0. ], + [ 0.0699, 0.1855, 0. ], + [ 0.85 , 0.825 , 1. ]])]), + 'empty': Cell([[[list([]), list([])], + [list([]), list([])], + [list([]), list([])], + [list([]), list([])]], + + [[list([]), list([])], + [list([]), list([])], + [list([]), list([])], + [list([]), list([])]], + + [[list([]), list([])], + [list([]), list([])], + [list([]), list([])], + [list([]), list([])]]]), + 'matrix': Cell([['Bob', 40.0], + ['Pam', 41.0]]), + 'scalar': Cell([1.8]), + 'string': Cell(['1']), + 'string_array': Cell([['1', '2']]), + 'vector': Cell([['spam', 4.0, array([[1., 2., 3.]])]])}, + 'logical': array([[0, 0, 0, 1, 1]], dtype=uint8), + 'nested': {'cell': {'array': Cell([array([[ 0.4194, 0.3629, -0. ], + [ 0.0376, 0.3306, 0. ], + [ 0. , 0. , 1. ]]), + array([[ 0.5645, -0.2903, 0. ], + [ 0.0699, 0.1855, 0. ], + [ 0.85 , 0.825 , 1. ]])]), + 'empty': Cell([[[list([]), list([])], + [list([]), list([])], + [list([]), list([])], + [list([]), list([])]], + + [[list([]), list([])], + [list([]), list([])], + [list([]), list([])], + [list([]), list([])]], + + [[list([]), list([])], + [list([]), list([])], + [list([]), list([])], + [list([]), list([])]]]), + 'matrix': Cell([['Bob', 40.0], + ['Pam', 41.0]]), + 'scalar': Cell([1.8]), + 'string': Cell(['1']), + 'string_array': Cell([['1', '2']]), + 'vector': Cell([['spam', 4.0, array([[1., 2., 3.]])]])}, + 'logical': array([[0, 0, 0, 1, 1]], dtype=uint8), + 'num': {'NaN': nan, + 'column_vector': array([[1.], + [2.], + [3.], + [4.]]), + 'complex': (3+1j), + 'complex_matrix': array([[ 9.6+8.8j, 1.2+1.1j, 7.2+6.6j], + [ 3.6+3.3j, 6. +5.5j, 8.4+7.7j], + [ 4.8+4.4j, 10.8+9.9j, 2.4+2.2j]]), + 'float32': 3.1415927410125732, + 'float64': 3.141592653589793, + 'inf': inf, + 'int': {'int16': -32768, + 'int32': -2147483648, + 'int64': -9223372036854775808, + 'int8': -128, + 'uint16': 65535, + 'uint32': 4294967295, + 'uint64': 18446744073709551615, + 'uint8': 255}, + 'matrix': array([[1., 2.], + [3., 4.]]), + 'matrix3d': array([[[3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265]], + + [[3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265]]]), + 'matrix5d': array([[[[[3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265]], + + [[3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265]], + + [[3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265]]], + + + [[[3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265]], + + [[3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265]], + + [[3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265]]]]]), + 'vector': array([[1., 2., 3., 4.]])}, + 'object': <oct2py.dynamic.polynomial object at 0x0000027C56C16EB8>, + 'sparse': <10x10 sparse matrix of type '<class 'numpy.float64'>' + with 10 stored elements in Compressed Sparse Column format>, + 'string': {'basic': 'spam', + 'cell': Cell(['1']), + 'cell_array': Cell([['spam', 'eggs']]), + 'char_array': array(['Thomas R. Lee', 'Sr. Developer', 'SFTware Corp.'], dtype='<U13')}, + 'struct_array': 1x2 StructArray containing the fields: + name + age, + 'struct_vector': 3x1 StructArray containing the fields: + key}, + 'num': {'NaN': nan, + 'column_vector': array([[1.], + [2.], + [3.], + [4.]]), + 'complex': (3+1j), + 'complex_matrix': array([[ 9.6+8.8j, 1.2+1.1j, 7.2+6.6j], + [ 3.6+3.3j, 6. +5.5j, 8.4+7.7j], + [ 4.8+4.4j, 10.8+9.9j, 2.4+2.2j]]), + 'float32': 3.1415927410125732, + 'float64': 3.141592653589793, + 'inf': inf, + 'int': {'int16': -32768, + 'int32': -2147483648, + 'int64': -9223372036854775808, + 'int8': -128, + 'uint16': 65535, + 'uint32': 4294967295, + 'uint64': 18446744073709551615, + 'uint8': 255}, + 'matrix': array([[1., 2.], + [3., 4.]]), + 'matrix3d': array([[[3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265]], + + [[3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265]]]), + 'matrix5d': array([[[[[3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265]], + + [[3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265]], + + [[3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265]]], + + + [[[3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265]], + + [[3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265]], + + [[3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265], + [3.14159265, 3.14159265, 3.14159265, 3.14159265, 3.14159265]]]]]), + 'vector': array([[1., 2., 3., 4.]])}, + 'object': <oct2py.dynamic.polynomial object at 0x0000027C56BB3B38>, + 'sparse': <10x10 sparse matrix of type '<class 'numpy.float64'>' + with 10 stored elements in Compressed Sparse Column format>, + 'string': {'basic': 'spam', + 'cell': Cell(['1']), + 'cell_array': Cell([['spam', 'eggs']]), + 'char_array': array(['Thomas R. Lee', 'Sr. Developer', 'SFTware Corp.'], dtype='<U13')}, + 'struct_array': 1x2 StructArray containing the fields: + name + age, + 'struct_vector': 3x1 StructArray containing the fields: + key} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oct2py-5.0.2/oct2py/_version.py new/oct2py-5.0.4/oct2py/_version.py --- old/oct2py-5.0.2/oct2py/_version.py 2019-05-06 02:23:38.000000000 +0200 +++ new/oct2py-5.0.4/oct2py/_version.py 2019-06-02 12:07:52.000000000 +0200 @@ -11,7 +11,7 @@ 'serial' ]) -version_info = VersionInfo(5, 0, 2, 'final', 0) +version_info = VersionInfo(5, 0, 4, 'final', 0) __version__ = '{}.{}.{}'.format( version_info.major, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oct2py-5.0.2/oct2py/core.py new/oct2py-5.0.4/oct2py/core.py --- old/oct2py-5.0.2/oct2py/core.py 2019-05-05 12:06:39.000000000 +0200 +++ new/oct2py-5.0.4/oct2py/core.py 2019-06-02 11:57:59.000000000 +0200 @@ -552,7 +552,7 @@ convert_to_float=self.convert_to_float) # Set up the engine and evaluate the `_pyeval()` function. - engine.stream_handler = stream_handler or self.logger.info + engine.line_handler = stream_handler or self.logger.info if timeout is None: timeout = self.timeout diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oct2py-5.0.2/oct2py/tests/test_usage.py new/oct2py-5.0.4/oct2py/tests/test_usage.py --- old/oct2py-5.0.2/oct2py/tests/test_usage.py 2019-05-06 02:23:46.000000000 +0200 +++ new/oct2py-5.0.4/oct2py/tests/test_usage.py 2019-06-02 11:57:59.000000000 +0200 @@ -321,3 +321,6 @@ assert np.isnan(res) assert np.isnan(a) assert b == 2 + + def test_carriage_return(self): + self.oc.eval(r"disp('hi\rthere')") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oct2py-5.0.2/oct2py.egg-info/PKG-INFO new/oct2py-5.0.4/oct2py.egg-info/PKG-INFO --- old/oct2py-5.0.2/oct2py.egg-info/PKG-INFO 2019-05-06 02:23:52.000000000 +0200 +++ new/oct2py-5.0.4/oct2py.egg-info/PKG-INFO 2019-06-02 12:07:55.000000000 +0200 @@ -1,110 +1,111 @@ -Metadata-Version: 2.1 -Name: oct2py -Version: 5.0.2 -Summary: Python to GNU Octave bridge --> run m-files from python. -Home-page: http://github.com/blink1073/oct2py -Maintainer: Steven Silvester -Maintainer-email: [email protected] -License: MIT -Download-URL: http://github.com/blink1073/oct2py -Description: Oct2Py: Python to GNU Octave Bridge - =================================== - - .. image:: https://badge.fury.io/py/oct2py.png/ - :target: http://badge.fury.io/py/oct2py - - .. image:: https://codecov.io/github/blink1073/oct2py/coverage.svg?branch=master - :target: https://codecov.io/github/blink1073/oct2py?branch=master - - .. image:: http://pepy.tech/badge/oct2py - :target: http://pepy.tech/project/oct2py - :alt: PyPi Download stats - - Oct2Py allows you to seamlessly call M-files and Octave functions from Python. - It manages the Octave session for you, sharing data behind the scenes using - MAT files. Usage is as simple as: - - .. code-block:: python - - >>> oc = oct2py.Oct2Py() - >>> x = oc.zeros(3,3) - >>> print(x, x.dtype) - [[ 0. 0. 0.] - [ 0. 0. 0.] - [ 0. 0. 0.]] float64 - ... - - If you want to run legacy m-files, do not have MATLAB®, and do not fully - trust a code translator, this is your library. - - - Features - -------- - - - Supports all Octave datatypes and most Python datatypes and Numpy dtypes. - - Provides OctaveMagic_ for IPython, including inline plotting in notebooks. - - Supports cell arrays and structs/struct arrays with arbitrary nesting. - - Supports sparse matrices. - - Builds methods on the fly linked to Octave commands (e.g. `zeros` above). - - Thread-safety: each Oct2Py object uses an independent Octave session. - - Can be used as a context manager. - - Supports Unicode characters. - - Supports logging of session commands. - - Optional timeout command parameter to prevent runaway Octave sessions. - - - .. _OctaveMagic: https://nbviewer.jupyter.org/github/blink1073/oct2py/blob/master/example/octavemagic_extension.ipynb?create=1 - - - Installation - ------------ - You must have GNU Octave installed and in your ``PATH`` environment variable. - Alternatively, you can set an ``OCTAVE_EXECUTABLE`` or ``OCTAVE`` environment - variable that points to ``octave-cli`` executable itself. - - You must have the Numpy and Scipy libraries for Python installed. - See the installation instructions_ for more details. - - Once the dependencies have been installed, run: - - .. code-block:: bash - - $ pip install oct2py - - If using conda, it is available on conda-forge: - - .. code-block:: bash - - $ conda install -c conda-forge oct2py - - .. _instructions: http://blink1073.github.io/oct2py/source/installation.html - - - Documentation - ------------- - - Documentation is available online_. - - For version information, see the Revision History_. - - .. _online: https://oct2py.readthedocs.io/en/latest/ - - .. _History: https://github.com/blink1073/oct2py/blob/master/HISTORY.rst - -Platform: Any -Classifier: Development Status :: 5 - Production/Stable -Classifier: Intended Audience :: Developers -Classifier: Intended Audience :: Science/Research -Classifier: License :: OSI Approved :: MIT License -Classifier: Operating System :: OS Independent -Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 2.7 -Classifier: Programming Language :: Python :: 3.3 -Classifier: Programming Language :: Python :: 3.4 -Classifier: Topic :: Scientific/Engineering -Classifier: Topic :: Software Development -Requires: numpy (>= 1.12) -Requires: scipy (>= 0.17) -Requires: octave_kernel (>= 0.30.0) -Provides-Extra: docs -Provides-Extra: test +Metadata-Version: 2.1 +Name: oct2py +Version: 5.0.4 +Summary: Python to GNU Octave bridge --> run m-files from python. +Home-page: http://github.com/blink1073/oct2py +Maintainer: Steven Silvester +Maintainer-email: [email protected] +License: MIT +Download-URL: http://github.com/blink1073/oct2py +Description: Oct2Py: Python to GNU Octave Bridge + =================================== + + .. image:: https://badge.fury.io/py/oct2py.png/ + :target: http://badge.fury.io/py/oct2py + + .. image:: https://codecov.io/github/blink1073/oct2py/coverage.svg?branch=master + :target: https://codecov.io/github/blink1073/oct2py?branch=master + + .. image:: http://pepy.tech/badge/oct2py + :target: http://pepy.tech/project/oct2py + :alt: PyPi Download stats + + Oct2Py allows you to seamlessly call M-files and Octave functions from Python. + It manages the Octave session for you, sharing data behind the scenes using + MAT files. Usage is as simple as: + + .. code-block:: python + + >>> oc = oct2py.Oct2Py() + >>> x = oc.zeros(3,3) + >>> print(x, x.dtype) + [[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]] float64 + ... + + If you want to run legacy m-files, do not have MATLAB®, and do not fully + trust a code translator, this is your library. + + + Features + -------- + + - Supports all Octave datatypes and most Python datatypes and Numpy dtypes. + - Provides OctaveMagic_ for IPython, including inline plotting in notebooks. + - Supports cell arrays and structs/struct arrays with arbitrary nesting. + - Supports sparse matrices. + - Builds methods on the fly linked to Octave commands (e.g. `zeros` above). + - Thread-safety: each Oct2Py object uses an independent Octave session. + - Can be used as a context manager. + - Supports Unicode characters. + - Supports logging of session commands. + - Optional timeout command parameter to prevent runaway Octave sessions. + + + .. _OctaveMagic: https://nbviewer.jupyter.org/github/blink1073/oct2py/blob/master/example/octavemagic_extension.ipynb?create=1 + + + Installation + ------------ + You must have GNU Octave installed and in your ``PATH`` environment variable. + Alternatively, you can set an ``OCTAVE_EXECUTABLE`` or ``OCTAVE`` environment + variable that points to ``octave-cli`` executable itself. + + You must have the Numpy and Scipy libraries for Python installed. + See the installation instructions_ for more details. + + Once the dependencies have been installed, run: + + .. code-block:: bash + + $ pip install oct2py + + If using conda, it is available on conda-forge: + + .. code-block:: bash + + $ conda install -c conda-forge oct2py + + .. _instructions: http://blink1073.github.io/oct2py/source/installation.html + + + Documentation + ------------- + + Documentation is available online_. + + For version information, see the Revision History_. + + .. _online: https://oct2py.readthedocs.io/en/latest/ + + .. _History: https://github.com/blink1073/oct2py/blob/master/HISTORY.rst + +Platform: Any +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: Intended Audience :: Science/Research +Classifier: License :: OSI Approved :: MIT License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3.3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Topic :: Scientific/Engineering +Classifier: Topic :: Software Development +Requires: numpy (>= 1.12) +Requires: scipy (>= 0.17) +Requires: octave_kernel (>= 0.31.0) +Description-Content-Type: text/x-rst +Provides-Extra: docs +Provides-Extra: test diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oct2py-5.0.2/oct2py.egg-info/SOURCES.txt new/oct2py-5.0.4/oct2py.egg-info/SOURCES.txt --- old/oct2py-5.0.2/oct2py.egg-info/SOURCES.txt 2019-05-06 02:23:52.000000000 +0200 +++ new/oct2py-5.0.4/oct2py.egg-info/SOURCES.txt 2019-06-02 12:07:55.000000000 +0200 @@ -45,6 +45,10 @@ oct2py/ipython/octavemagic.py oct2py/ipython/tests/__init__.py oct2py/ipython/tests/test_octavemagic.py +oct2py/ipython/__init__.py +oct2py/ipython/octavemagic.py +oct2py/ipython/tests/__init__.py +oct2py/ipython/tests/test_octavemagic.py oct2py/tests/__init__.py oct2py/tests/roundtrip.m oct2py/tests/script_error.m diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oct2py-5.0.2/oct2py.egg-info/requires.txt new/oct2py-5.0.4/oct2py.egg-info/requires.txt --- old/oct2py-5.0.2/oct2py.egg-info/requires.txt 2019-05-06 02:23:52.000000000 +0200 +++ new/oct2py-5.0.4/oct2py.egg-info/requires.txt 2019-06-02 12:07:55.000000000 +0200 @@ -1,4 +1,4 @@ -octave_kernel>=0.30.0 +octave_kernel>=0.31.0 numpy>=1.12 scipy>=0.17 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oct2py-5.0.2/setup.cfg new/oct2py-5.0.4/setup.cfg --- old/oct2py-5.0.2/setup.cfg 2019-05-06 02:23:52.000000000 +0200 +++ new/oct2py-5.0.4/setup.cfg 2019-06-02 12:07:56.000000000 +0200 @@ -1,15 +1,15 @@ -[build_sphinx] -source-dir = docs -build-dir = docs/build -all_files = 1 - -[upload_sphinx] -upload-dir = docs/build/html - -[wheel] -universal = 1 - -[egg_info] -tag_build = -tag_date = 0 - +[build_sphinx] +source-dir = docs +build-dir = docs/build +all_files = 1 + +[upload_sphinx] +upload-dir = docs/build/html + +[wheel] +universal = 1 + +[egg_info] +tag_build = +tag_date = 0 + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oct2py-5.0.2/setup.py new/oct2py-5.0.4/setup.py --- old/oct2py-5.0.2/setup.py 2019-05-05 12:06:39.000000000 +0200 +++ new/oct2py-5.0.4/setup.py 2019-06-02 11:57:59.000000000 +0200 @@ -9,8 +9,8 @@ MAINTAINER_EMAIL = '[email protected]' URL = 'http://github.com/blink1073/oct2py' LICENSE = 'MIT' -REQUIRES = ["numpy (>= 1.12)", "scipy (>= 0.17)", "octave_kernel (>= 0.30.0)"] -INSTALL_REQUIRES = ["octave_kernel >= 0.30.0", "numpy >= 1.12", "scipy >= 0.17"] +REQUIRES = ["numpy (>= 1.12)", "scipy (>= 0.17)", "octave_kernel (>= 0.31.0)"] +INSTALL_REQUIRES = ["octave_kernel >= 0.31.0", "numpy >= 1.12", "scipy >= 0.17"] EXTRAS_REQUIRE = { 'test:python_version == "2.7"': ['mock'], 'test': ['pytest', 'pandas'], @@ -60,6 +60,7 @@ platforms=["Any"], description=DESCRIPTION, long_description=LONG_DESCRIPTION, + long_description_content_type='text/x-rst', classifiers=list(filter(None, CLASSIFIERS.split('\n'))), requires=REQUIRES, install_requires=INSTALL_REQUIRES,
