Re: [PyMOL] Dynamic reloading of plugin

2016-04-30 Thread Martin Hediger

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

2016-04-27 Thread Sampson, Jared M.
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

2016-04-25 Thread Thomas Holder
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

2016-04-24 Thread Martin Hediger

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