Live data from Hacker News

Ask HN: Getting back into Python

news.ycombinator.com

11–20 of 20 posts

Re: Ask HN: Getting back into Python

#11
post #5
post #2

Not any more indentation than code in any other language (you indent anyway, whether that's enforced or not). Python has IDLE (which is cross-platform), but I prefer writing with Sublime Text(on Ubuntu). Here's a list for you: http://en.wikipedia.org/wiki/List_of_integrated_development_... Good luck, codr.

Thanks! By "indentation" I meant using that for conditional blocks, instead of the C-style bracketing that I'm used to. I found that list of IDEs, but basically what I'm asking is what are people's favorites from that list?

I understand, codr.. But even in C, conditional blocks have an opening brace next to the statement (like if, while, switch, etc), then new line, then indented code, then new line for the closing brace.

For your choice of IDEs, I think looking for it in SO or Reddit would yield good results, since it's probably a question asked often, so I guess you'll find nice fat threads with pros and cons to help you make up your mind..

Re: Ask HN: Getting back into Python

#16
GNU/Linux emacs user for Python dev.

The ability to browser a code easily, when you don't actually know the code, is a lot of time that will be saved.

Pycharm is the best tool I know that does it out of the box.

I don't know about its debugging facility (I think you mean setting break points), probably https://github.com/narfdotpl/debug will work just fine. I've been doing 1 year and a half of debugging Python code and used it three times. Most of the time the workflow is this:

0) add logs?

1) reproduce the bug

2) read the logs?

3) read the code?

4) if the best fix is found fix it else restart at 0)

Other useful tools for debugging:

- http://dpaste.com/hold/1751069/ this is the basic version of what I use at work. It's a data descriptor [1]

- http://faulthandler.readthedocs.org/ "for when there is no traceback"

- Since you do UI, most likely you'll deal with asynchronous callback style code (non-yield based), the traceback of a callback is not always useful ie. you want to know to which code it is answering to. For that matter you need tweak the event-loop code... having this patch at hand is helpful. e.g. say you do a asynchronous call to retrieve something in the database, the call probably looks like "query(callback=query_callback)", when the "query_callback" will be called by the event loop with the result of the query as arguments, most likely the immediate top frame is the event-loop (if it's not the previous frame, it's the one before...) and "query" function will not be in the callstack of course... If "query_callback" is used as a callback of several asynchronous calls, you can not find the "calling code" with "find usage" of your IDE... I think asyncio fix this

Profiling:

- http://www.vrplumber.com/programming/runsnakerun/

- https://github.com/bdarnell/plop

- https://github.com/wyplay/pytracemalloc it is integrated in Python 3.4

I also use gdb on python coredumps.

[1] http://www.cafepy.com/article/python_attributes_and_methods/...

Re: Ask HN: Getting back into Python

#18
post #6
post #3

What type of Python work will you be doing? Web, ML, desktop, etc?

Ah good question - desktop, basically. edit: To be somewhat more specific I will be automating/testing a client application that uses a server backend.

In that case, I often use Textmate or gedit. Scripting doesn't really create a need for an IDE (IMO).

Re: Ask HN: Getting back into Python

#20
post #9
post #4

IDE's aren't as big of a deal in Python as they would be in C#. A lot of people just pick a nice text editor to do their work in. I like to use xcode on the mac, but I use Python's built in debugger from the command line for debugging. I find it easier than fooling with an IDE. [1] http://stackoverflow.com/questions/4228637/getting-started-w...

Thanks - yeah I will certainly need to shift my thinking away from c#-style (read: Visual Studio) development. As for pdb, I guess I've been spoiled by Visual Studio's debugging - hover to see values, step through source code, etc. Is there no Python debugging/IDE equivalent to Visual Studio's hover/etc?

there is, use Pycharm/IntelliJ
Post reply on HN