Re: [PyMOL] Dynamic reloading of plugin
Thats great input. Thanks alot, will check. Martin On 27.04.16 20:36, Sampson, Jared M. wrote: Hi Martin - I've also experienced this kind of tedium. Depending on the type of extension it is, you could also consider writing tests for your function that can be run by either: a) importing PyMOL commands into a python (.py) script and running e.g. `nosetests` or other unit testing software ```extension_tests.pml import pymol from pymol import cmd pymol.finish_launching() ...do stuff here... ``` or, b) run PyMOL (.pml) scripts in command line only mode. For example, I've used approach (b) before with a setup something like this: ```test1.pml from pymol import cmd frag ala python if 'ala' in cmd.get_names(): print 'OK' else: print 'Not OK' python end ``` Then run each test from the shell: ``` pymol -cq test1.pml ``` For running many tests automatically, I've also used a "run_tests.sh" that looks something like this: ```run_tests.sh #!/bin/bash function run_test() { PML="test${1}.pml" if [ -f "$PML" ]; then echo "" echo "" echo "Running Test ${1}: $PML" echo "" pymol -ckq $PML echo "" fi } # call `./run_tests.sh` with no args to run all the tests (up to 100) if [ $# -lt 1 ]; then for i in {1..100} # increase if you have more than 100 tests do run_test $i done # call with args, e.g. `./run_tests.sh 1 2 4 7` to run specific test(s) else for i in $@ do run_test $i done fi ``` Hope this is helpful. Good luck! Cheers, Jared On Apr 25, 2016, at 11:06 AM, Thomas Holder wrote: Hi Martin, how about: set_key F1, run script.py; function_from_script() Reduces step 3) and 4) to hitting "F1" on the keyboard. Cheers, Thomas On 24 Apr 2016, at 06:36, Martin Hediger wrote: Hi all When working on a PyMOL extension script, my workflow is currently something like this: 1) Start PyMOL 2) Work on script 3) PyMOL> run script.py 4) PyMOL> function_from_script() 5) See if function works, go back to 2) Is it possible to have PyMOL automatically re-run the script everytime i save it? Thanks and best regards Martin -- Martin R. Hediger, PhD Mittlere Strasse 65 4056 Basel -- Thomas Holder PyMOL Principal Developer Schrödinger, Inc. -- Find and fix application performance issues faster with Applications Manager Applications Manager provides deep performance insights into multiple tiers of your business applications. It resolves application problems quickly and reduces your MTTR. Get your free trial! https://ad.doubleclick.net/ddm/clk/302982198;130105516;z ___ PyMOL-users mailing list (PyMOL-users@lists.sourceforge.net) Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users Archives: http://www.mail-archive.com/pymol-users@lists.sourceforge.net -- Find and fix application performance issues faster with Applications Manager Applications Manager provides deep performance insights into multiple tiers of your business applications. It resolves application problems quickly and reduces your MTTR. Get your free trial! https://ad.doubleclick.net/ddm/clk/302982198;130105516;z___ PyMOL-users mailing list (PyMOL-users@lists.sourceforge.net) Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users Archives: http://www.mail-archive.com/pymol-users@lists.sourceforge.net
Re: [PyMOL] Dynamic reloading of plugin
Hi Martin - I've also experienced this kind of tedium. Depending on the type of extension it is, you could also consider writing tests for your function that can be run by either: a) importing PyMOL commands into a python (.py) script and running e.g. `nosetests` or other unit testing software ```extension_tests.pml import pymol from pymol import cmd pymol.finish_launching() ...do stuff here... ``` or, b) run PyMOL (.pml) scripts in command line only mode. For example, I've used approach (b) before with a setup something like this: ```test1.pml from pymol import cmd frag ala python if 'ala' in cmd.get_names(): print 'OK' else: print 'Not OK' python end ``` Then run each test from the shell: ``` pymol -cq test1.pml ``` For running many tests automatically, I've also used a "run_tests.sh" that looks something like this: ```run_tests.sh #!/bin/bash function run_test() { PML="test${1}.pml" if [ -f "$PML" ]; then echo "" echo "" echo "Running Test ${1}: $PML" echo "" pymol -ckq $PML echo "" fi } # call `./run_tests.sh` with no args to run all the tests (up to 100) if [ $# -lt 1 ]; then for i in {1..100} # increase if you have more than 100 tests do run_test $i done # call with args, e.g. `./run_tests.sh 1 2 4 7` to run specific test(s) else for i in $@ do run_test $i done fi ``` Hope this is helpful. Good luck! Cheers, Jared > On Apr 25, 2016, at 11:06 AM, Thomas Holder > wrote: > > Hi Martin, > > how about: > > set_key F1, run script.py; function_from_script() > > Reduces step 3) and 4) to hitting "F1" on the keyboard. > > Cheers, > Thomas > > On 24 Apr 2016, at 06:36, Martin Hediger wrote: > >> Hi all >> >> When working on a PyMOL extension script, my workflow is currently something >> like this: >> >> 1) Start PyMOL >> 2) Work on script >> 3) PyMOL> run script.py >> 4) PyMOL> function_from_script() >> 5) See if function works, go back to 2) >> >> Is it possible to have PyMOL automatically re-run the script everytime i >> save it? >> >> Thanks and best regards >> Martin >> >> -- >> Martin R. Hediger, PhD >> Mittlere Strasse 65 >> 4056 Basel > > -- > Thomas Holder > PyMOL Principal Developer > Schrödinger, Inc. > > > -- > Find and fix application performance issues faster with Applications Manager > Applications Manager provides deep performance insights into multiple tiers of > your business applications. It resolves application problems quickly and > reduces your MTTR. Get your free trial! > https://ad.doubleclick.net/ddm/clk/302982198;130105516;z > ___ > PyMOL-users mailing list (PyMOL-users@lists.sourceforge.net) > Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users > Archives: http://www.mail-archive.com/pymol-users@lists.sourceforge.net -- Find and fix application performance issues faster with Applications Manager Applications Manager provides deep performance insights into multiple tiers of your business applications. It resolves application problems quickly and reduces your MTTR. Get your free trial! https://ad.doubleclick.net/ddm/clk/302982198;130105516;z ___ PyMOL-users mailing list (PyMOL-users@lists.sourceforge.net) Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users Archives: http://www.mail-archive.com/pymol-users@lists.sourceforge.net
Re: [PyMOL] Dynamic reloading of plugin
Hi Martin, how about: set_key F1, run script.py; function_from_script() Reduces step 3) and 4) to hitting "F1" on the keyboard. Cheers, Thomas On 24 Apr 2016, at 06:36, Martin Hediger wrote: > Hi all > > When working on a PyMOL extension script, my workflow is currently something > like this: > > 1) Start PyMOL > 2) Work on script > 3) PyMOL> run script.py > 4) PyMOL> function_from_script() > 5) See if function works, go back to 2) > > Is it possible to have PyMOL automatically re-run the script everytime i save > it? > > Thanks and best regards > Martin > > -- > Martin R. Hediger, PhD > Mittlere Strasse 65 > 4056 Basel -- Thomas Holder PyMOL Principal Developer Schrödinger, Inc. -- Find and fix application performance issues faster with Applications Manager Applications Manager provides deep performance insights into multiple tiers of your business applications. It resolves application problems quickly and reduces your MTTR. Get your free trial! https://ad.doubleclick.net/ddm/clk/302982198;130105516;z ___ PyMOL-users mailing list (PyMOL-users@lists.sourceforge.net) Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users Archives: http://www.mail-archive.com/pymol-users@lists.sourceforge.net
[PyMOL] Dynamic reloading of plugin
Hi all When working on a PyMOL extension script, my workflow is currently something like this: 1) Start PyMOL 2) Work on script 3) PyMOL> run script.py 4) PyMOL> function_from_script() 5) See if function works, go back to 2) Is it possible to have PyMOL automatically re-run the script everytime i save it? Thanks and best regards Martin -- Martin R. Hediger, PhD Mittlere Strasse 65 4056 Basel -- Find and fix application performance issues faster with Applications Manager Applications Manager provides deep performance insights into multiple tiers of your business applications. It resolves application problems quickly and reduces your MTTR. Get your free trial! https://ad.doubleclick.net/ddm/clk/302982198;130105516;z___ PyMOL-users mailing list (PyMOL-users@lists.sourceforge.net) Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users Archives: http://www.mail-archive.com/pymol-users@lists.sourceforge.net