It seems there is a nice solution here:
http://www.madebuild.org/blog/?p=30
Sylvain
On Fri, Apr 12, 2013 at 3:47 PM, Sylvain Corlay
<[email protected] <mailto:[email protected]>> wrote:
Hi Carlos,
I fall into the case
if e.args[0] == ERROR_ACCESS_DENIED:
return
in lockfile.py, line 44.
It seems to be related to
http://stackoverflow.com/questions/2384022/winsdk-determining-whether-an-arbitrary-pid-identifies-a-running-process-on-win
Sylvain
On Thursday, April 11, 2013 8:24:06 PM UTC-4, Sylvain Corlay wrote:
Hi Carlos,
Great for points 1 and 2. Sorry for the third one (Matlab cell
feature). It seems indeed to involve more coding than I expected.
For the last issue with the spyder.block folder, I only
observe this behavior with windows XP. It works nicely with
Ubuntu 12.04. A way to reproduce it with windows is to kill
the main python process from the task manager and to restart
spyder. pywin32 is installed (PythonXY 2.7.3). I run spyder
2.2rc from the bootstrap script. However, a reason for this
issue could be that spyder's folder is on a network drive. I
will make some tests tomorrow.
Best,
Sylvain
On Thursday, April 11, 2013 6:20:35 PM UTC-4, Carlos Córdoba
wrote:
Hi Sylvain,
Thanks for your patches and suggestions. My detailed
answers are below:
El 10/04/13 17:35, Sylvain Corlay escribió:
Hi everyone,
Here are a couple of issues in the release candidate.
*1) When using "run selection"*
Create a new .py file with the code
# No indentation between 'print i' and 'print i+1'
for i in range(10):
print i
*
*
print i+1
*
*
Put the focus on a regular python console (not ipython),
select all the text in the editor and use the "run
selection or current block" button.
This yields an indentation error. This can probably be
considered as a bug.
*Fix:* In base.py (widgets/sourcecode) line 416
# If there is a common indent to all lines, remove it
min_indent = 999
current_indent = 0
lines = text.split(ls)
for i in xrange(len(lines)):
line = lines[i]
if line.strip():
current_indent = _indent(line)
min_indent = min(current_indent, min_indent)
else:
lines[i] = ' ' * current_indent
text = ls.join([line[min_indent:] for line in lines])
*
*
It solves the problem for me. The number of space
characters added to empty lines has to be the current
indentation, for the case of nested loops.
Yeah, I was thinking something like this would solve the
problem. Thanks a lot for the patch, I'll review it later
this week.
*2) Editor widget and debug toolbar*
*
*
The debug toolbar items are missing when separating the
editor dock from the main window.
*Fix:* In editor.py (plugins) line 903
*
*
self.dock_toolbar_actions = file_toolbar_actions + [None] + \
source_toolbar_actions + [None] + \
run_toolbar_actions + [None] + \
debug_toolbar_actions + [None] + \
edit_toolbar_actions
Again, thanks for the patch. This seems a harmless
addition, so I'll add it this weekend too.
*3) Regarding issue 852
<https://code.google.com/p/spyderlib/issues/detail?id=852&q=MS%3Dv2.3&colspec=ID%20MS%20Stars%20Priority%20Modified%20Cat%20Type%20Status%20Owner%20Summary>*
With the first point corrected as mentioned above, the
"hack" of mixins.py documented already does the job to
add the Matlab-like cell feature. So I don't really see
why one should consider it as a hack, or why it would be
less maintainable than the current version.
- text = unicode(cursor0.selectedText())
- return len(text.strip()) == 0 or text.lstrip()[0]
== '#'
+ text = unicode(cursor0.selectedText()).lstrip()
+ return text[:2] == '# %%' or text[:12] == '#
<codecell>'
The thing is that with this modification, the behavior
will already be the one you want eventually, and this
Matlab-like cell feature is the most popular feature
request in the tracker. To be rigorous, "block" should be
replaced by "cell" in doc strings, functions names, and
menus.
I disagree with you on this point. I think we need to
maintain "Run selection" as a feature and add "Run cell"
as a new one. This is my reasoning: I want Spyder remains
as beginner friendly as possible, so if you want to select
some text and send it to the console, that should still be
possible too. Also, if you want to run consecutive chunks
of code separated by blank lines (as it's the case now),
that should be possible too. I'm not so sure about block
separation using '#'. I think once cells are in we are
going to eliminate it, as you're suggesting with our patch.
I know that Carlos wants to add some graphical
visualization of the cells in the editor (horizontal
lines and coloring), but with this modification, the
behavior of Spyder 2.2 would already be more consistent
with what you guys want to do in 2.3.
It's not only that I want to add visual clues to cells.
There are several things to consider:
1. Since "Run cell" is a new feature, it'll need a new
icon in the Run toolbar and of course a new action in the
menus. We would need to add some docs about it too.
2. Cells should not be allowed inside indented code (e.g
for/while loops). Someone mentioned that Matlab follows
this principle and I think it's a good one, i.e. cells
must enclose full code chunks.
3. We need to decide what happens when one adds only one
cell separator. In that case I would like that Spyder ran
all lines from the file's beginning to the separator if
the cursor is before it, or from the separator to the end
if the cursor is after it (I don't know how Matlab handles
this case).
These points are not covered by your patch, so we (the
devs) would need to put more time on it (which don't have
right now). Look, I don't want to be stubborn here. If you
make my points work and the feature is well tested, I'll
have no problem merging your work during the 2.2 cycle
(let's say in 2.2.1 or .2). The visual cell clues and all
that could be added in 2.3.
*4) No warning in the case of presence of lock files*
If spyder crashes and spyder.lock directory remains,
spyder won't start again, and no error message is
displayed. It just fails to start. Maybe a their should
be at least an error message in the console or even
better a pop-up window.
This is very serious. Under what circumstances is this
happening to you? I was very careful at selecting a lock
mechanism that was able to launch Spyder again if there is
a crash. In Issue 1325 we discovered it won't work on
Windows if you don't have pywin32 installed. But on Linux
and Mac it should work as expected.
Could you give us a reproducible test case?
Finally, I would really like to thank Carlos, Pierre and
Jed for their incredible work on this IDE. I think that
spyder 2.2 will really become a reference. You guys are
going to become as famous as the creators of ipython, or
numpy. Spyder was the missing link in the scientific
python world and you created it.
Thanks a lot for your kind words. We think that too: that
something like Spyder was missing to complete the Python
scientific stack.
Cheers,
Carlos
Cheers,
Sylvain
--
You received this message because you are subscribed to
the Google Groups "spyder" group.
To unsubscribe from this group and stop receiving emails
from it, send an email to [email protected].
To post to this group, send email to
[email protected].
Visit this group at
http://groups.google.com/group/spyderlib?hl=en.
For more options, visit
https://groups.google.com/groups/opt_out.
--
You received this message because you are subscribed to a topic in
the Google Groups "spyder" group.
To unsubscribe from this topic, visit
https://groups.google.com/d/topic/spyderlib/brqE6p5bpkM/unsubscribe?hl=en.
To unsubscribe from this group and all its topics, send an email
to [email protected]
<mailto:spyderlib%[email protected]>.
To post to this group, send email to [email protected]
<mailto:[email protected]>.
Visit this group at http://groups.google.com/group/spyderlib?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
--
You received this message because you are subscribed to the Google
Groups "spyder" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/spyderlib?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.