From fe9968a02833195fcaf58bca73319232f4fd76cd Mon Sep 17 00:00:00 2001 From: arokem Date: Sun, 25 Jan 2015 12:08:48 -0800 Subject: [PATCH 1/4] Help installation along by stating the requirements. I think that pyzmq is the only hard requirement. Having numpy and ipython in addition is probably useful, but not necessary. --- pymatbridge/version.py | 2 +- requirements.txt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 requirements.txt diff --git a/pymatbridge/version.py b/pymatbridge/version.py index 90ba94d..91ba014 100644 --- a/pymatbridge/version.py +++ b/pymatbridge/version.py @@ -95,5 +95,5 @@ "matlab/util/json_v0.2.2/json/java/*", "tests/*.py", "examples/*.ipynb"]} -REQUIRES = [] +REQUIRES = ['pyzmq'] BIN=['scripts/publish-notebook'] diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..02ec117 --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +pyzmq From e70d42b3394a1d4d8c2491bbbc2362acdc3c669b Mon Sep 17 00:00:00 2001 From: arokem Date: Sun, 25 Jan 2015 14:38:32 -0800 Subject: [PATCH 2/4] BF: Setting of the response 'exists' field seems otherwise compromised. --- pymatbridge/matlab/util/pymat_get_variable.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pymatbridge/matlab/util/pymat_get_variable.m b/pymatbridge/matlab/util/pymat_get_variable.m index 8e6a29e..9de9cf1 100644 --- a/pymatbridge/matlab/util/pymat_get_variable.m +++ b/pymatbridge/matlab/util/pymat_get_variable.m @@ -28,7 +28,7 @@ % if the var doesn't exist in the workspace, inform adequately expr = strcat('exist(''', varname, ''',''var'')'); var_exists = evalin('base', expr); -if ~var_exists; +if ~var_exists response.exists = false; response.var = ''; else From 2cb2f65ee6c3843746aafbbc2660174e0e9d4eaf Mon Sep 17 00:00:00 2001 From: arokem Date: Sun, 25 Jan 2015 14:39:29 -0800 Subject: [PATCH 3/4] DOC: Edited module-level docstring for pymatbdrige. --- pymatbridge/pymatbridge.py | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/pymatbridge/pymatbridge.py b/pymatbridge/pymatbridge.py index 4aad82e..1888d87 100644 --- a/pymatbridge/pymatbridge.py +++ b/pymatbridge/pymatbridge.py @@ -2,11 +2,36 @@ pymatbridge =========== -This is a module for communicating and running +This is a module for communicating and running Matlab from within python + +Example +------- + +>>> import pymatbridge +>>> m = pymatbridge.Matlab() +>>> m.start() +Starting MATLAB on ZMQ socket ipc:///tmp/pymatbridge +Send 'exit' command to kill the server +.MATLAB started and connected! +True +>>> + < M A T L A B (R) > + Copyright 1984-2014 The MathWorks, Inc. + R2014b (8.4.0.150421) 64-bit (maci64) + September 15, 2014 + + +To get started, type one of these: helpwin, helpdesk, or demo. +For product information, visit www.mathworks.com. + +Socket created at: ipc:///tmp/pymatbridge + +>>> +>>> m.run_code('a=1;') +{'content': {'stdout': '', 'datadir': '/private/tmp/MatlabData/', 'code': 'a=1;', 'figures': []}, 'success': 'true'} +>>> m.get_variable('a') +1 -Part of Python-MATLAB-bridge, Max Jaderberg 2012 - -This is a modified version using ZMQ, Haoxing Zhang Jan.2014 """ import os From 35124157534b3d74d630cd3d0b874af8b26f046b Mon Sep 17 00:00:00 2001 From: arokem Date: Sun, 25 Jan 2015 14:41:59 -0800 Subject: [PATCH 4/4] Added the optional dependencies that make this actually useful. --- pymatbridge/version.py | 2 ++ setup.py | 1 + 2 files changed, 3 insertions(+) diff --git a/pymatbridge/version.py b/pymatbridge/version.py index 91ba014..814367b 100644 --- a/pymatbridge/version.py +++ b/pymatbridge/version.py @@ -96,4 +96,6 @@ "tests/*.py", "examples/*.ipynb"]} REQUIRES = ['pyzmq'] +EXTRAS_REQUIRE = ['numpy', 'scipy', 'ipython'] + BIN=['scripts/publish-notebook'] diff --git a/setup.py b/setup.py index 4c55b21..30fc215 100755 --- a/setup.py +++ b/setup.py @@ -49,6 +49,7 @@ def copy_bin(bin_path): packages=PACKAGES, package_data=PACKAGE_DATA, requires=REQUIRES, + extras_require=EXTRAS_REQUIRE, scripts=BIN )