sqlkit - 0.8.6
ANNOUNCE: sqlkit 0.8.6 September, 12 - 2009 I'm happy to announce release 0.8.6 of sqlkit package for python. http://sqlkit.argolinux.org/ This release This is the first stable release. It features a new interface for the standalone command (sqledit), many improvements and functions added. We have used pyinstaller to create standalone executable for Linux and Mac, you can download them to use the application and to run the demo. It's now registered in pypi so you can 'easy_install' it. I'm currently looking for a debian sponsor to upload the package in sqeeze. A new tutorial is available here: http://sqlkit.argolinux.org/sqlkit/tutorial.html Refer to http://sqlkit.argolinux.org/download/Changelog for details The package --- SQLkit PyGtk package provides Mask and Table widgets to edit database data. It's meant as a base for database desktop applications. The application --- It also provides 'sqledit' a PyGTK application based on sqlkit that can be used from command line to browse and edit data. The package has 2 very rich demo suites for sql widgets (the main one in sqlkit/demo/sql/demo.py) and for layout creation Translations If you like sqlkit and want to help translating, you may find the project on: https://launchpad.net/sqlkit Main features of sqlkit: * editor of databases in 2 modes: table mask * based on sqlalchemy: can cope with many different databases * very powerfull filtering capabilities: - each field can be used to filter records - filter may span relationship - date filtering possible also on relative basis (good for saved queries) * completion on all text field and foreign keys * very easy way to draw a layout for mask views * completely effortless editing of relationships * very easy way to set defaults * possibility to display totals of numeric fields * any possible sql constraint can be attached to a Mask or a Table. It can be expressed a s a normal sqlalchemy query or with django-like syntax * sqledit: python script to edit db Sqlkit is based on: --- * python (= 2.4 - but developed on 2.5) * PyGtk * Sqlalchemy (= 0.5) * glade * python-dateutil * babel (localization) * you db driver of choice Dowload more: --- * Download: http://sqlkit.argolinux.org/sqlkit/download.html easy_install sqlkit * Source: hg clone http://hg.argolinux.org/py/sqlkit * Google Group: http://groups.google.it/group/sqlkit/ * Translation: https://launchpad.net/sqlkit * Tutorial: http://sqlkit.argolinux.org/sqlkit/tutorial.html * Changelog:http://sqlkit.argolinux.org/download/Changelog * License: GNU GPL -- http://mail.python.org/mailman/listinfo/python-announce-list Support the Python Software Foundation: http://www.python.org/psf/donations/
Jython 2.5.1 Release Candidate 2 is out!
On behalf of the Jython development team, I'm pleased to announce that Jython 2.5.1rc2 is available for download: https://sourceforge.net/projects/jython/files/jython-dev/2.5.1rc2/jython_installer-2.5.1rc2.jar/download - See http://wiki.python.org/jython/InstallationInstructions for installation instructions. Jython 2.5.1rc2 fixes bugs that we found when testing rc1, including some db, codec, and locking issues. Please see the NEWS file for detailed release notes. Please report any bugs you find here: http://bugs.jython.org -- Thanks! -Frank Wierzbicki -- http://mail.python.org/mailman/listinfo/python-announce-list Support the Python Software Foundation: http://www.python.org/psf/donations/
Invitation to connect on LinkedIn
LinkedIn suhail shaik requested to add you as a connection on LinkedIn: -- Jaime, I'd like to add you to my professional network on LinkedIn. - suhail Accept invitation from suhail shaik http://www.linkedin.com/e/I2LlXdLlWUhFABKmxVOlgGLlWUhFAfhMPPF/blk/I325701776_3/6lColZJrmZznQNdhjRQnOpBtn9QfmhBt71BoSd1p65Lr6lOfPdvdzsTcj0Tdj8PiiZ7jklHomoUpiYPd3ANcz0QcPsLrCBxbOYWrSlI/EML_comm_afe/ View invitation from suhail shaik http://www.linkedin.com/e/I2LlXdLlWUhFABKmxVOlgGLlWUhFAfhMPPF/blk/I325701776_3/0PnPoTdP4MdPkOcQALqnpPbOYWrSlI/svi/ -- Why might connecting with suhail shaik be a good idea? People suhail shaik knows can discover your profile: Connecting to suhail shaik will attract the attention of LinkedIn users. See who's been viewing your profile: http://www.linkedin.com/e/wvp/inv18_wvmp/ -- (c) 2009, LinkedIn Corporation -- http://mail.python.org/mailman/listinfo/python-list
Re: ImageFont family mojibake
Donn wrote: On Saturday 12 September 2009 17:30:19 garabik- news-2005...@kassiopeia.juls.savba.sk wrote: apt-get install unicode unicode 0100.. Nice tip, thanks. if you see a lot of accented letters (and not squares or question marks), you can be sure I see the accented chars -- so now I am more certain that the problem is in the font.family function. Something deep in the C code... \d Try testing with some of the supported encodings like: print f.font.family.decode('utf-8') try some of these encodings: http://docs.python.org/library/codecs.html#standard-encodings The brute force should work if the font's name is encoded in one of the supported codecs; and if wx does not do something like f.[en|de]code(errors='replace'). -- http://mail.python.org/mailman/listinfo/python-list
Re: Which version of python I should use if I just start programming in python?
I have just started using 2.6 (upgrade from 2.5). All my web applications' code (using Django), work without any changes. -- http://mail.python.org/mailman/listinfo/python-list
run exe on different computer
Hi everybody, I'm building a small python program that run a service (exe file) on my servers. I don't want to use remote desktop and it's siblings. I would like to have some information on how to run an exe on a different computer and if there a way to check if that exe is still alive. Thanks Dave -- http://mail.python.org/mailman/listinfo/python-list
Re: run exe on different computer
Il 13/09/09 09.43, daved170 ha scritto: Hi everybody, I'm building a small python program that run a service (exe file) on my servers. I don't want to use remote desktop and it's siblings. I would like to have some information on how to run an exe on a different computer and if there a way to check if that exe is still alive. assuming windows as your target, look at this: http://timgolden.me.uk/python/wmi.html -- http://mail.python.org/mailman/listinfo/python-list
Re: Finite state machine in python
For simplistic FSMs, if you want to avoid hand-coding all the transitions, actions etc., you could consider something like Libero ( http://www.cs.vu.nl/~eliens/documents/libero/lrintr.htm), although the last I checked Libero didn't generate Python yet (but I believe there might be similar options available with Python, though haven't come accross anything). Machine generated FSMs can be suboptimal for many cases though. On Sun, Sep 13, 2009 at 10:28 AM, CTO debat...@gmail.com wrote: On Sep 12, 4:39 pm, Peng Yu pengyu...@gmail.com wrote: Hi, I have see some discussion on the implementation of finite state machine in python. Can somebody point to me the best way in implenting an FSM in python? http://code.activestate.com/recipes/146262/ Regards, Peng I wrote an example of how to do it using Graphine a while back. Probably not the most efficient in the world, but pretty easy to read, and it allows you to add and remove states and transitions easily. URL: http://gitorious.org/graphine/pages/GraphineForPythonistas Geremy Condra -- http://mail.python.org/mailman/listinfo/python-list -- regards, Banibrata http://www.linkedin.com/in/bdutta -- http://mail.python.org/mailman/listinfo/python-list
Re: CPU usage while reading a named pipe
Miguel P prosper.spur...@gmail.com wrote: On Sep 12, 2:54 pm, Ned Deily n...@acm.org wrote: In article da2362e0-ec68-467b-b50b-6067057d7...@y36g2000yqh.googlegroups.com, Miguel P prosper.spur...@gmail.com wrote: I've been working on parsing (tailing) a named pipe which is the syslog output of the traffic for a rather busy haproxy instance. It's a fair bit of traffic (upto 3k hits/s per server), but I am finding that simply tailing the file in python, without any processing, is taking up 15% of a CPU core. In contrast HAProxy takes 25% and syslogd takes 5% with the same load. `cat /named.pipe` takes 0-2% Am I just doing things horribly wrong or is this normal? Here is my code: from collections import deque import io, sys WATCHED_PIPE = '/var/log/haproxy.pipe' if __name__ == '__main__': try: log_pool = deque([],1) fd = io.open(WATCHED_PIPE) for line in fd: log_pool.append(line) except KeyboardInterrupt: sys.exit() Deque appends are O(1) so that's not it. And I am using 2.6's io module because it's supposed to handle named pipes better. I have commented the deque appending line and it still takes about the same CPU. Be aware that the io module in Python 2.6 is written in Python and was viewed as a prototype. In the current svn trunk, what will be Python 2.7 has a much faster C implementation of the io module backported from Python 3.1. Aha, I will test with trunk and see if the performance is better, if so I'll use 2.6 in production until 2.7 comes out. I will report back when I have made the tests. Why don't you try just using the builtin open() with bufsize parameter set big? Something like this (tested with named pipes). Tweak BUFFERSIZE and SLEEP_INTERVAL for maximum performance! import time BUFFERSIZE = 1024*1024 SLEEP_INTERVAL = 0.1 def tail(path): fd = open(path) buf = while True: buf += fd.read(BUFFERSIZE) if buf: lines = buf.splitlines(True) for line in lines[:-1]: yield line buf = lines[-1] if buf.endswith(\n): yield buf buf = else: time.sleep(SLEEP_INTERVAL) def main(path): for line in tail(path): print %r:%r % (len(line), line) if __name__ == __main__: import sys main(sys.argv[1]) -- Nick Craig-Wood n...@craig-wood.com -- http://www.craig-wood.com/nick -- http://mail.python.org/mailman/listinfo/python-list
Re: is there a strawberry python?
* Daniel Fetchinson (Sat, 12 Sep 2009 12:54:03 -0700) the reason I like strawberry perl is that I don't need to have admin right to install it. i can just unzip it and start the game. i am wondering if there is something similar in python community. any insight will be appreciated! As far as I remember there are python installations on USB sticks which you can run without any privileges. http://www.portablepython.com/ Any Python runs without privileges. For some actions (like installing new packages) you need to have the appropriate keys in HKCU. But this is not required to run Python. Thorsten -- http://mail.python.org/mailman/listinfo/python-list
Re: Finite state machine in python
On Saturday 12 September 2009 22:39:10 Peng Yu wrote: Hi, I have see some discussion on the implementation of finite state machine in python. Can somebody point to me the best way in implenting an FSM in python? http://code.activestate.com/recipes/146262/ You can go a long way with a far simpler model than the one in that recipe: 1) Define a routine for every state. 2) Have every state do the following: (i) Run the code to make the side effects like outputs happen. (ii) Scan the conditions for the state transitions relevant to this state. (Only the arrows leaving this state on the state diagram.) (iii) Return the next state (either the same or a different state). 3) The main loop of a long running machine then looks like this: next_state = start_state() while True: next_state = next_state() time.sleep(step_time) # if needed This simple model is surprisingly powerful, and it can be expanded to run a bundle of such machines in parallel very easily, by keeping a list of next_states and continuously cycling through and updating the list. You do not even need a dispatch dictionary. This is about the simplest model for making FSMs that I know of. Not sure if it is the best - best for what?. - Hendrik -- http://mail.python.org/mailman/listinfo/python-list
Re: How to define a function with an empty body?
On Sunday 13 September 2009 05:37:01 Peng Yu wrote: Hi, I want to define a function without anything in it body. In C++, I can do something like the following because I can use {} to denote an empty function body. Since python use indentation, I am not sure how to do it. Can somebody let me know how to do it in python? def rubbish_do_nothing(): pass - Hendrik -- http://mail.python.org/mailman/listinfo/python-list
Re: run exe on different computer
daved170 wrote: Hi everybody, I'm building a small python program that run a service (exe file) on my servers. I don't want to use remote desktop and it's siblings. I would like to have some information on how to run an exe on a different computer and if there a way to check if that exe is still alive. Thanks Dave On a question like this, you really need to supply much more information on your constraints. You could start by saying these servers are running Windows Server 2003. And that they're on a domain (rather than a workgroup). And that you're trying to access them from another machine within the same local domain, not over the internet. And that your local machine is on the same domain, and has an account with admin privileges for all the desired servers. And that you are allowed to do a one-time install (of something) on each server prior to this particular need. And that each server already has Python version 2.5 installed, and the IT department won't allow you to install any later version. Then once you have an environment, you need to specify just what kind of program you want to run on those servers. Is it an EXE program? Or is it Python, with a particular script? Does it really need to be a *service*, which has a particular set of constraints, and should be installed, and started/stopped using the service manager. Do you want this program to restart whenever the servers are restarted? One solution that should work for nearly every Windows topology might be to go to each server, run the scheduler task, and specify a new batch file to be run upon boot. This batch file can check a specified (shared) directory for a python script, and if found, run it. If not found, sleep for 60 seconds or so, then repeat. Note that it's a good idea to put a five minute delay at the very beginning, in case the script needs to be deleted at the next boot. Sometimes a bug requires surgery, and it's good to have enough time to do it. Now, to control those servers from another machine, copy an appropriate script into the prearranged directory. Within a minute, it'll be running, and it can post whatever results it likes in another accessible directory. Whether this is a safe thing to do is a separate question. Generally an IT department likes to have some control over just what programs run on their servers, and for good reason. DaveA -- http://mail.python.org/mailman/listinfo/python-list
Re: IDE for python similar to visual basic
On Fri, 11 Sep 2009 05:27:59 -0700, r wrote: I'm saying that the user understands their workflow and environment better than the application's programmers. The user should be able to decide which menu items are shown and where, which buttons are shown and where, etc. The code doesn't need to know this level of detail, let alone dictate it. I completely disagree with this idea of user customization of the GUI. Sounds more like adolescent accessorizing to me. How is changing the location of a button, or entry, or whatever, actually going to make workflow more easier? For a start, removing any buttons which the user won't be needing eliminates the risk of them clicking on them by accident. Beyond that, there is an advantage to placing buttons (etc) in similar locations to other applications which the user uses (or was using prior to migrating). In some cases, the reduction in mouse motion which can be obtained by placing specific buttons close together can make significant difference. Sometimes those buttons aren't all part of the same application (I know of people who place the Windows taskbar at the top of the screen simply because it's closer to most applications' toolbar and menubar). If you have two windows side-by-side, there's a benefit to having the left-hand window's controls running down its right-hand edge and vice-versa, so both sets of controls are all in one cluster. For mouse-centric applications, keyboard shortcuts aren't always a solution; particularly for left-handed users, as shortcuts are normally optimised for right-handed users (i.e. common shortcuts use the LHS of the keyboard, on the assumption that the right hand is on the mouse). Sounds like somebody failed to get input from their users at design time. Or somebody has the inability to relate to their end users. You're assuming that there is some right answer which is appropriate for all users. There isn't. Would a mechanic give you a screw driver so you could adjust the fuel/ air ratio yourself? If he did i would never take my car back again! Just reeks of incompetence!! If the manufacturer took your approach, there wouldn't be any screw. Just a fixed setting for all climates and altitudes, urban and rural, flat and hilly. -- http://mail.python.org/mailman/listinfo/python-list
Distributing Python environment
Hello, I have an app which I would like to extend with Python. I I saw how to embed the interpreter into C. If I bundle my app with the Python lib (say, python26.dll) I can PyRun_SimpleString() some code. My question is, how do I bundle the rest of the libraries (site, os, elementtree, random, ...)? Is it possible to make one huge (ok, not so huge) .zip blob containing all of the libraries? And what happens if some user has Python already installed? Which libraries get loaded first? Is it possible to alter this order? I mean, first check for local Python install and if the user doesn't have Python installation use the bundled one? -- http://mail.python.org/mailman/listinfo/python-list
Re: run exe on different computer
On Sep 13, 2:17 pm, Dave Angel da...@ieee.org wrote: daved170 wrote: Hi everybody, I'm building a small python program that run a service (exe file) on my servers. I don't want to use remote desktop and it's siblings. I would like to have some information on how to run an exe on a different computer and if there a way to check if that exe is still alive. Thanks Dave On a question like this, you really need to supply much more information on your constraints. You could start by saying these servers are running Windows Server 2003. And that they're on a domain (rather than a workgroup). And that you're trying to access them from another machine within the same local domain, not over the internet. And that your local machine is on the same domain, and has an account with admin privileges for all the desired servers. And that you are allowed to do a one-time install (of something) on each server prior to this particular need. And that each server already has Python version 2.5 installed, and the IT department won't allow you to install any later version. Then once you have an environment, you need to specify just what kind of program you want to run on those servers. Is it an EXE program? Or is it Python, with a particular script? Does it really need to be a *service*, which has a particular set of constraints, and should be installed, and started/stopped using the service manager. Do you want this program to restart whenever the servers are restarted? One solution that should work for nearly every Windows topology might be to go to each server, run the scheduler task, and specify a new batch file to be run upon boot. This batch file can check a specified (shared) directory for a python script, and if found, run it. If not found, sleep for 60 seconds or so, then repeat. Note that it's a good idea to put a five minute delay at the very beginning, in case the script needs to be deleted at the next boot. Sometimes a bug requires surgery, and it's good to have enough time to do it. Now, to control those servers from another machine, copy an appropriate script into the prearranged directory. Within a minute, it'll be running, and it can post whatever results it likes in another accessible directory. Whether this is a safe thing to do is a separate question. Generally an IT department likes to have some control over just what programs run on their servers, and for good reason. DaveA Hi DaveA Thanks for your answer. I'll try to clearify myself. For now I'm trying to do that on client server that are win XP. They both on the same domain (maybe in the future they'll be runinig on the web). I have admin user on both my computers. I have both an exe and a python app that I'd like to control from my client. Insted of logging to my Server I would like to write a python app at my client that allows me to control both that exe and my Server-python- app. I don't want to use the schedualer because I would like to control it from my client. I can install whatever I'll like on both of the computers. they are mine and I have full access for them. I hope I clearify myself and if there are more solutions I'll be happy to be noted. Thans DaveD :) -- http://mail.python.org/mailman/listinfo/python-list
PyQT child forms
Hi everybody, I'm building my GUI app with PyQT and i'm quite new with it. I looked for example for managing a form and a child form. My goal is to run the main form and a certain button will open a child form. Whenever the child form will be open the main form will be disabled until the child form is closed. Moreover I would like to know how to pass data from the child form to the main form. Thank you very much DaveD -- http://mail.python.org/mailman/listinfo/python-list
Python and 3d
Has anyone any exipience with python and 3d. I mean, is there a module to deal with popular 3d formats like 3ds, or vrml. is it possible to import into python opengl models and then use it in application for GUI purposes like through WX. I know that WX supports OpenGL but how to import models from file. -- http://mail.python.org/mailman/listinfo/python-list
Re: Which version of python I should use if I just start programming in python?
On Sat, 12 Sep 2009 20:25:47 -0700, Kee Nethery wrote: I would prefer to be in 3.x because all the inconsistencies of how you do things in 2.x make it harder than it needs to be to learn the language. People who have been coding in 2.x for along time don't notice how the syntax is wonky in places. Their fingers type the right stuff. As a newbie I assume that everything works the same way and I am frequently surprised. What inconsistencies surprise you? -- Steven -- http://mail.python.org/mailman/listinfo/python-list
Re: How to define a function with an empty body?
Peng Yu schrieb: Hi, I want to define a function without anything in it body. In C++, I can do something like the following because I can use {} to denote an empty function body. Since python use indentation, I am not sure how to do it. Can somebody let me know how to do it in python? Python has two possibilities to create an empty function. The others already told you aber the pass statement. The other way is a function with a doc string def func(): No op function -- http://mail.python.org/mailman/listinfo/python-list
Re: How to define a function with an empty body?
On Sat, 2009-09-12 at 22:37 -0500, Peng Yu wrote: Hi, I want to define a function without anything in it body. In C++, I can do something like the following because I can use {} to denote an empty function body. Since python use indentation, I am not sure how to do it. Can somebody let me know how to do it in python? void f() { } Surprised no one has mentioned this yet, but since it's a function, and in python all functions return values (whether explicitly or implicitly, a simple return works and, to me, does much more to inform the reader that this function does nothing. def f(): return -- http://mail.python.org/mailman/listinfo/python-list
Array of objects lost in unpickling
Hi, I have a class: class second: a = None b = None class first: array = [] I populate the array in first class with instances of second, then save by: shelve = shelve.open(), shelve[first] = myfirst shelve.close() When I reopen the shelve from another script, the first class is there, but array has no elements. If I reopen the shelve in the same script right after shelve.close(), the elements are there. Also there are no errors printed out. Any idea why the array of instances are lost? Thanks, Bahadir -- http://mail.python.org/mailman/listinfo/python-list
Re: Array of objects lost in unpickling
On 13 Sep, 15:19, Bahadir bilgehan.bal...@gmail.com wrote: Hi, I have a class: class second: a = None b = None class first: array = [] I populate the array in first class with instances of second, then save by: shelve = shelve.open(), shelve[first] = myfirst shelve.close() When I reopen the shelve from another script, the first class is there, but array has no elements. If I reopen the shelve in the same script right after shelve.close(), the elements are there. Also there are no errors printed out. Any idea why the array of instances are lost? Thanks, Bahadir You most likely want 'array' to be an instance level and not class level attribute. class first(object): def __init__(self): self.array = [] myfirst = first() myfirst.array.append(23423) etc... hth, Jon. -- http://mail.python.org/mailman/listinfo/python-list
Re: Array of objects lost in unpickling
Bahadir wrote: Also there are no errors printed out. Any idea why the array of instances are lost? The pickle protocol doesn't pickle class attributes by default, only instance variables. You list called 'array' is a class variable -- it's bound to the class not your instance. By the way it's called a list in Python, not array. Christian -- http://mail.python.org/mailman/listinfo/python-list
Re: Array of objects lost in unpickling
On Sep 13, 5:48 pm, Jon Clements jon...@googlemail.com wrote: On 13 Sep, 15:19, Bahadir bilgehan.bal...@gmail.com wrote: Hi, I have a class: class second: a = None b = None class first: array = [] I populate the array in first class with instances of second, then save by: shelve = shelve.open(), shelve[first] = myfirst shelve.close() When I reopen the shelve from another script, the first class is there, but array has no elements. If I reopen the shelve in the same script right after shelve.close(), the elements are there. Also there are no errors printed out. Any idea why the array of instances are lost? Thanks, Bahadir You most likely want 'array' to be an instance level and not class level attribute. class first(object): def __init__(self): self.array = [] myfirst = first() myfirst.array.append(23423) etc... hth, Jon. Hmm, OK. New to python. Got it. Thanks a lot! Bahadir -- http://mail.python.org/mailman/listinfo/python-list
Re: How to define a function with an empty body?
Il Sat, 12 Sep 2009 22:37:01 -0500, Peng Yu ha scritto: Hi, I want to define a function without anything in it body. [...] I usually define void functions as: def myfunction(): raise NotImplementedError(You forgot to implement me!) so I keep safe from leaving orphaned functions all over my code. -- http://mail.python.org/mailman/listinfo/python-list
compiling python 3
Just managed to compile python3 on debian lenny I get (among other things) 7 skips unexpected on linux2: test_dbm_ndbm test_bz2 test_ttk_guionly test_tcl test_tk test_ttk_textonly test_dbm_gnu Any ideas what dev packages I need to add? Also emacs python-mode is not set for python3 it looks I get the foll when I try to load a file into python in emacs Traceback (most recent call last): File stdin, line 1, in module NameError: name 'execfile' is not defined -- http://mail.python.org/mailman/listinfo/python-list
Python strict mode?
Hi, Is there is a way to make python check the variables just as the strict mode in perl. Would somebody let me know what is the python equivalent to the perl strict mode? Regards, Peng -- http://mail.python.org/mailman/listinfo/python-list
Re: Python and 3d
Importing models from a file, obviously always raises the question, what kind of model formats :-P. You should probably take a look at something like Python-Ogre or Pygame for a starting point. Doing raw OpenGL is a bit more tricky and even more dependent on format. -- http://mail.python.org/mailman/listinfo/python-list
Re: Python and 3d
azrael wrote: Has anyone any exipience with python and 3d. I mean, is there a module to deal with popular 3d formats like 3ds, or vrml. is it possible to import into python opengl models and then use it in application for GUI purposes like through WX. I know that WX supports OpenGL but how to import models from file. http://www.vrplumber.com/py3d.py There's a few older projects to load 3DS files, but I don't think any of them is currently PyOpenGL 3.x compatible. OpenGLContext loads VRML97 files (with SimpleParse installed). Pyglet, OpenGLContext and Ian Mallet's game engine all load .obj models (I believe Ian's engine is the most advanced there). Pivy should load VRML files as well, and has a very powerful engine (COIN) under the covers (OpenGLContext is more of a demo/testing system). The big engines (Ogre, Soya, OpenSceneGraph, Crystal Space, etc) should all have content loaders, though I haven't played with them enough to be able to say what formats they support. HTH, Mike -- Mike C. Fletcher Designer, VR Plumber, Coder http://www.vrplumber.com http://blog.vrplumber.com -- http://mail.python.org/mailman/listinfo/python-list
Re: compiling python 3
Rustom Mody wrote: Just managed to compile python3 on debian lenny I get (among other things) 7 skips unexpected on linux2: test_dbm_ndbm test_bz2 test_ttk_guionly test_tcl test_tk test_ttk_textonly test_dbm_gnu Any ideas what dev packages I need to add? apt-get build-dep python2.5 should install all required build dependencies. Have fun! Christian -- http://mail.python.org/mailman/listinfo/python-list
AttributeError: 'NoneType' object has no attribute 'get_text'
Hi all, i did a small gui addressbook application using pygtk, python, mysql db. It was successful. I tried the same application with glade. But i ended up with errors. I desgined the code as follows. 1.It has one main window and four child dialogs. 2.In the main window, i have to fill in the text entry widget if i press 'add', the data will get inserted into the database.This works fine. 3. If showdialog button is clicked, a child dialog appears, where i have to enter old entry to update. 4. To update, i again use the main window, where i get the following error Traceback (most recent call last): File addressbookglade.py, line 63, in update self.ssn = self.wTree.get_widget(ssn). get_text() AttributeError: 'NoneType' object has no attribute 'get_text' Also i already set the name in properties window. It works fine for add option. But not for update option. Im using the same window for both add and update. The code is available here http://pastebin.com/m28a4747e The glade xml file is here http://pastebin.com/m1af61a29 The screenshot of my glade windows are here http://www.flickr.com/photos/raji_me/?saved=1 It works fine for add option. But not for update option. Im using the same window for both add and update. Raji. S -- http://mail.python.org/mailman/listinfo/python-list
Re: Python and 3d
On Sun, Sep 13, 2009 at 9:29 AM, Mike C. Fletcher mcfle...@vrplumber.comwrote: There's a few older projects to load 3DS files, but I don't think any of them is currently PyOpenGL 3.x compatible. I would be interested in making them 3.x compatible. Where are they? I've wanted .3ds support for a while... OpenGLContext loads VRML97 files (with SimpleParse installed). Pyglet, OpenGLContext and Ian Mallet's game engine all load .obj models (I believe Ian's engine is the most advanced there). Mallett :-) My .obj loader is actually a version of http://www.pygame.org/wiki/OBJFileLoader?parent=CookBook, which is excellent, tweaked to return the actual data (for VBOs, texture object modification, etc.) and provide stuff like signed tangents for various effects. Likewise cannibalizing existing .3ds code would be nice... I also have a loader for .raw objects, but that was far simpler. Like a LOT simpler. I can help you with getting stuff set up if that's what you were asking (I didn't receive the original email, so) Ian -- http://mail.python.org/mailman/listinfo/python-list
Re: First release of pyfsevents
In article 04180ce5-4cc0-43a4-b26a-b7a4fe826...@g23g2000yqh.googlegroups.com, IngoognI ingoo...@gmail.com wrote: On Sep 8, 6:19=A0am, a...@pythoncraft.com (Aahz) wrote: There's no direct equivalent to Linux inotify [...] pnotify ? Thanks! I'll look into that. -- Aahz (a...@pythoncraft.com) * http://www.pythoncraft.com/ It's 106 miles to Chicago. We have a full tank of gas, a half-pack of cigarettes, it's dark, and we're wearing sunglasses. Hit it. -- http://mail.python.org/mailman/listinfo/python-list
Is there a similar mailing list about django?
I'm learning python and django more or less concurrently. I've googled to find a similar list like this for django. Help? Joel Goldstick -- http://mail.python.org/mailman/listinfo/python-list
Re: AttributeError: 'NoneType' object has no attribute 'get_text'
Raji Seetharaman wrote: Hi all, i did a small gui addressbook application using pygtk, python, mysql db. It was successful. I tried the same application with glade. But i ended up with errors. I desgined the code as follows. 1.It has one main window and four child dialogs. 2.In the main window, i have to fill in the text entry widget if i press 'add', the data will get inserted into the database.This works fine. 3. If showdialog button is clicked, a child dialog appears, where i have to enter old entry to update. 4. To update, i again use the main window, where i get the following error Traceback (most recent call last): File addressbookglade.py, line 63, in update self.ssn = self.wTree.get_widget(ssn). get_text() AttributeError: 'NoneType' object has no attribute 'get_text' Also i already set the name in properties window. It works fine for add option. But not for update option. Im using the same window for both add and update. The code is available here http://pastebin.com/m28a4747e The glade xml file is here http://pastebin.com/m1af61a29 The screenshot of my glade windows are here http://www.flickr.com/photos/raji_me/?saved=1 It works fine for add option. But not for update option. Im using the same window for both add and update. You're using instance attributes a lot where I think local variables would be better, eg self.ssn instead of just ssn. In the '__init__' method you have: self.wTree = gtk.glade.XML(self.gladefile,mainWindow) and then in the 'view' method you have: self.wTree = gtk.glade.XML(self.gladefile,viewdialog) In both the 'add' and 'update' methods you have: self.ssn = self.wTree.get_widget(ssn).get_text() so I suspect that the following is happening: 1. __init__ makes self.wTree refer to 'mainWindow'; 2. You click on the Add button, the 'add' method is called, and the self.ssn = line looks for the ssn widget in 'mainWindow'; 3. You click on the OK(?) button and view what's just been added; 4. The 'view' method makes self.wTree refer to 'viewdialog'; 5. You click on the Update button, the 'update' method is called, and the self.ssn = line looks for the ssn widget in 'viewdialog'. -- http://mail.python.org/mailman/listinfo/python-list
including constants
Hi there, I have a simple problem and I know how to solve it :-D, but I suspect that there is a standard solution which is more elegant. So, here is my problem: I have django app versioned with svn and I test my trunk on two different machines (one with mysql, another with sqlite3). How do I remove database-definition constants from my settings.py and put them in a separate file which wouldn't be maintained by svn? (did I really hear somebody call that kind of file unversioned file or did I make that up?) I suppose I could make a trivial module with database info, import it and then assign my constants with data from that module, but that looks so unelegant to me. What's the standard way of doing this? Thanks in advance. -- Now the storm has passed over me I'm left to drift on a dead calm sea And watch her forever through the cracks in the beams Nailed across the doorways of the bedrooms of my dreams -- http://mail.python.org/mailman/listinfo/python-list
QTableWidgetItem-list
Hi, Could not find anything on this online, except the documentation, which does not explain how to work with a QTableWidgetItem-list. How do I get out what QWidgetTable.finditems found? I have a string that I want to find in my table. I want to locate the row it's in, then delete the row. My code: foundList = table_points.findItems(str(picked_node), QtCore.Qt.MatchExactly) inRow = self.ui.table_points.column(foundList) # trying to locate the row, but this does not work where, table_points: my table picked_node: an integer value I want to locate in table_points Help MUCH appreciated! Helvin Newbie -- http://mail.python.org/mailman/listinfo/python-list
Re: QTableWidgetItem-list
On Sep 14, 7:18 am, Helvin helvin...@gmail.com wrote: Hi, Could not find anything on this online, except the documentation, which does not explain how to work with a QTableWidgetItem-list. How do I get out what QWidgetTable.finditems found? I have a string that I want to find in my table. I want to locate the row it's in, then delete the row. My code: foundList = table_points.findItems(str(picked_node), QtCore.Qt.MatchExactly) inRow = self.ui.table_points.column(foundList) # trying to locate the row, but this does not work where, table_points: my table picked_node: an integer value I want to locate in table_points Help MUCH appreciated! Helvin Newbie Sorry, forgot to mention I am using PyQT. Regards, Helvin -- http://mail.python.org/mailman/listinfo/python-list
Python and 3d
azrael wrote: Has anyone any exipience with python and 3d. I mean, is there a module to deal with popular 3d formats like 3ds, or vrml. is it possible to import into python opengl models and then use it in application for GUI purposes like through WX. I know that WX supports OpenGL but how to import models from file. http://www.vrplumber.com/py3d.py There's a few older projects to load 3DS files, but I don't think any of them is currently PyOpenGL 3.x compatible. OpenGLContext loads VRML97 files (with SimpleParse installed). Pyglet, OpenGLContext and Ian Mallet's game engine all load .obj models (I believe Ian's engine is the most advanced there). Pivy should load VRML files as well, and has a very powerful engine (COIN) under the covers (OpenGLContext is more of a demo/testing system). The big engines (Ogre, Soya, OpenSceneGraph, Crystal Space, etc) should all have content loaders, though I haven't played with them enough to be able to say what formats they support. HTH, Mike Maybe check out: - Panda3D ( http://www.panda3d.org/ ), - PyGame ( http://www.pygame.org/news.html ), - PyKyra ( http://www.alobbs.com/pykyra ), - PyOpenGL ( http://pyopengl.sourceforge.net/ ), or Blender ( http://www.blender.org/ ). All above deserve attention. -- http://mail.python.org/mailman/listinfo/python-list
Re: including constants
On Sun, 13 Sep 2009 18:44:25 + (UTC) Nikola Skoric nick-n...@net4u.hr wrote: Hi there, I have a simple problem and I know how to solve it :-D, but I suspect that there is a standard solution which is more elegant. So, here is my problem: I have django app versioned with svn and I test my trunk on two different machines (one with mysql, another with sqlite3). How do I remove database-definition constants from my settings.py and put them in a separate file which wouldn't be maintained by svn? (did I really hear somebody call that kind of file unversioned file or did I make that up?) I suppose I could make a trivial module with database info, import it and then assign my constants with data from that module, but that looks so unelegant to me. What's the standard way of doing this? Thanks in advance. The basic principle seems alright, but since you're talking about configuration, you could use the ConfigParser module from the stdlib to create real configuration files. That's what I would do for any reasonably sized project. /W -- INVALID? DE! -- http://mail.python.org/mailman/listinfo/python-list
Re: Python strict mode?
On Sun, 13 Sep 2009 09:25:50 -0700 (PDT) Peng Yu pengyu...@gmail.com wrote: Is there is a way to make python check the variables just as the strict mode in perl. Short answer: No. Long answer: I'm guessing you want Python to complain when assigning to a variable that has not been declared before. Since Python has no declarations, you're plain out of luck. Would somebody let me know what is the python equivalent to the perl strict mode? I don't know about any equivalents (but I wouldn't be surprised if there were libraries for that somewhere). You could write a class with a custom __setattr__() method that checks for valid attribute names for that class (a list of strings given to it's __init__() method). That way you could form several restricted namespaces for variables simply as different instances of that class. But in my opinion, it isn't worth it. You still don't get compile time errors, which is probably the main reason to use strict mode. Can you describe why you (think you) need this? Maybe there is a more pythonic approach. /W -- INVALID? DE! -- http://mail.python.org/mailman/listinfo/python-list
Re: Is there a similar mailing list about django?
On Sun, 13 Sep 2009 14:17:42 -0400 Joel Goldstick joel.goldst...@columbuswebmakers.com wrote: I'm learning python and django more or less concurrently. I've googled to find a similar list like this for django. Help? Didn't like http://groups-beta.google.com/group/django-users ? (Second hit for django mailing list, but I know Google results vary from country to country, so you might not have seen it.) /W -- INVALID? DE! -- http://mail.python.org/mailman/listinfo/python-list
Re: Is there a similar mailing list about django?
On Sun, 2009-09-13 at 21:27 +0200, Andreas Waldenburger wrote: Didn't like http://groups-beta.google.com/group/django-users ? (Second hit for django mailing list, but I know Google results vary from country to country, so you might not have seen it.) Or, better yet, go to Django's web site (djangoproject.org) and click on Community at the top of the page. -- http://mail.python.org/mailman/listinfo/python-list
IRC bot
Im trying to write an IRC bot just for fun (in python of course). Here's my current code: 1 #!/usr/local/bin/python 2 import time 3 import socket 4 5 def message (x, channel,s): 6 y=PRIVMSG+ + channel+ :+x 7 s.send(y); 8 host=irc.freenode.net; 9 port=6667; 10 size=1024; 11 channel=#dhaivatrocks; 12 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM); 13 s.connect((host,port)); 14 s.send(NICK PoincareBot); 15 s.send(USER PoincareBot 8 * : Paul Mutton); 16 time.sleep(5); 17 s.send(JOIN #dhaivatrocks); 18 s.send(PRIVMSG #dhaivatrocks :Hello everybody! 19 while True: 20 pass; 21 What I don't understand is that it doesn't display any messages or show a new message login on my IRC client. What's wrong with my code? -- http://mail.python.org/mailman/listinfo/python-list
Re: Python strict mode?
You could write a class with a custom __setattr__() method that checks for valid attribute names for that class (a list of strings given to it's __init__() method). That way you could form several restricted namespaces for variables simply as different instances of that class. This can be easier accomplished using __slots__, e.g.: class X(object): ... __slots__ = ['a'] But in my opinion, it isn't worth it. You still don't get compile time errors, which is probably the main reason to use strict mode. I agree. - Patrick -- http://mail.python.org/mailman/listinfo/python-list
numpy NaN, not surviving pickle/unpickle?
Hi folks, I am aware that numpy has its own discussion group, which is hosted at gmane. Unfortunately, I can't seem to get in to gmane today. In any case, I'm not sure whether I have a problem with numpy, or with my understanding of the Python pickle module, so I'm posting here. I am pickling numpy.ndarray objects to disk which are of type float, but which may include NaN in some cells. When I unpickle these objects and then test for the presence of NaN, the test fails. Here's a minimal sample program, and its output: === program ## numpy nan pickle test.py import pickle from numpy import * print \n\nNaN equivalency tests:\n x, y = nan, NaN # Capitalization reality check print x =, x, , y =, y print x is nan:, x is nan print y is NaN:, y is NaN print x is y:, x is y A0 = array([[1.2, nan], [3.4, 5.6]]) print \n\nPickling and saving this array to disk:\n\n, A0 f0 = open(test array pickle.py, w) pickle.dump(A0, f0) f0.close() print \nArray saved to disk. f1 = open(test array pickle.py, r) A1 = pickle.load(f1) f1.close() print \n\nThe array reloaded from the disk is:\n\n, A1 print \narray[0,1] =, A1[0,1] print array[0,1] is nan:, A1[0,1] is nan, \n\n === output NaN equivalency tests: x = nan , y = nan x is nan: True y is NaN: True x is y: True Pickling and saving this array to disk: [[ 1.2 NaN] [ 3.4 5.6]] Array saved to disk. The array reloaded from the disk is: [[ 1.2 NaN] [ 3.4 5.6]] array[0,1] = nan array[0,1] is nan: False The last line of my output is unexpected. I've printed the contents of the cell in the array, and it says that it contains nan. But when I try the same equivalency test that I tried in the first few lines of the program (with unpickled objects), this time it says that my test object isn't nan. I thought that Python was supposed to make values and even objects portable? Obligatory version information: Numpy: 1.0.4 Python: 2.5.2 OS: Ubuntu Linux 8.04 Thanks for any help! -- http://mail.python.org/mailman/listinfo/python-list
Re: IRC bot
Anyone? On Sun, Sep 13, 2009 at 3:58 PM, Someone Something fordhai...@gmail.comwrote: Im trying to write an IRC bot just for fun (in python of course). Here's my current code: 1 #!/usr/local/bin/python 2 import time 3 import socket 4 5 def message (x, channel,s): 6 y=PRIVMSG+ + channel+ :+x 7 s.send(y); 8 host=irc.freenode.net; 9 port=6667; 10 size=1024; 11 channel=#dhaivatrocks; 12 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM); 13 s.connect((host,port)); 14 s.send(NICK PoincareBot); 15 s.send(USER PoincareBot 8 * : Paul Mutton); 16 time.sleep(5); 17 s.send(JOIN #dhaivatrocks); 18 s.send(PRIVMSG #dhaivatrocks :Hello everybody! 19 while True: 20 pass; 21 What I don't understand is that it doesn't display any messages or show a new message login on my IRC client. What's wrong with my code? -- http://mail.python.org/mailman/listinfo/python-list
Re: numpy NaN, not surviving pickle/unpickle?
John Ladasky wrote: Hi folks, I am aware that numpy has its own discussion group, which is hosted at gmane. Unfortunately, I can't seem to get in to gmane today. It is not hosted at GMane. It just has a GMane mirror. http://www.scipy.org/Mailing_Lists In any case, I'm not sure whether I have a problem with numpy, or with my understanding of the Python pickle module, so I'm posting here. I am pickling numpy.ndarray objects to disk which are of type float, but which may include NaN in some cells. When I unpickle these objects and then test for the presence of NaN, the test fails. The problem is that you are trying to use is to compare by Python object identity. Except for dtype=object arrays, the object identities of the individual elements that you extract from numpy arrays are never guaranteed. Usually, they will always be different. You need to use numpy.isnan() to determine whether an object is a NaN. -- Robert Kern I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth. -- Umberto Eco -- http://mail.python.org/mailman/listinfo/python-list
Re: IRC bot
Someone Something wrote: Im trying to write an IRC bot just for fun (in python of course). Here's my current code: 1 #!/usr/local/bin/python 2 import time 3 import socket 4 5 def message (x, channel,s): 6 y=PRIVMSG+ + channel+ :+x 7 s.send(y); 8 host=irc.freenode.net http://irc.freenode.net; 9 port=6667; 10 size=1024; 11 channel=#dhaivatrocks; 12 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM); 13 s.connect((host,port)); 14 s.send(NICK PoincareBot); 15 s.send(USER PoincareBot 8 * : Paul Mutton); 16 time.sleep(5); 17 s.send(JOIN #dhaivatrocks); 18 s.send(PRIVMSG #dhaivatrocks :Hello everybody! 19 while True: 20 pass; 21 What I don't understand is that it doesn't display any messages or show a new message login on my IRC client. What's wrong with my code? You probably need to put some sort of line ending on what you send, eg \n or \r\n. Also, it's better to use 'sendall' insetad of 'send'. BTW, you don't need to put a semicolon on the end of the lines. -- http://mail.python.org/mailman/listinfo/python-list
Re: IRC bot
Thanks a lot! On Sun, Sep 13, 2009 at 4:29 PM, MRAB pyt...@mrabarnett.plus.com wrote: Someone Something wrote: Im trying to write an IRC bot just for fun (in python of course). Here's my current code: 1 #!/usr/local/bin/python 2 import time 3 import socket 4 5 def message (x, channel,s): 6 y=PRIVMSG+ + channel+ :+x 7 s.send(y); 8 host=irc.freenode.net http://irc.freenode.net; 9 port=6667; 10 size=1024; 11 channel=#dhaivatrocks; 12 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM); 13 s.connect((host,port)); 14 s.send(NICK PoincareBot); 15 s.send(USER PoincareBot 8 * : Paul Mutton); 16 time.sleep(5); 17 s.send(JOIN #dhaivatrocks); 18 s.send(PRIVMSG #dhaivatrocks :Hello everybody! 19 while True: 20 pass; 21 What I don't understand is that it doesn't display any messages or show a new message login on my IRC client. What's wrong with my code? You probably need to put some sort of line ending on what you send, eg \n or \r\n. Also, it's better to use 'sendall' insetad of 'send'. BTW, you don't need to put a semicolon on the end of the lines. -- http://mail.python.org/mailman/listinfo/python-list -- http://mail.python.org/mailman/listinfo/python-list
Re: Which version of python I should use if I just start programming in python?
On Sun, Sep 13, 2009 at 12:27 AM, John Nagle na...@animats.com wrote: Kee Nethery wrote: I am in 2.x because the IDE I am using does not support stepping through my code when in 3.x. As soon as the IDE I use supports debugging in 3.x, I'm moving up to 3.x. I would prefer to be in 3.x because all the inconsistencies of how you do things in 2.x make it harder than it needs to be to learn the language. So would I. But the infrastructure isn't there yet. Realistically, 2.5 is the production stable version of CPython. Almost all important modules work with CPython 2.5. Some work with 2.6. 3.x support remains spotty. Give it a year. Or two. I've tried using 3.1, but had to back down. What are the differences between 2.5 and 2.6? -- http://mail.python.org/mailman/listinfo/python-list
Re: Is there a similar mailing list about django?
Joel Goldstick wrote: I'm learning python and django more or less concurrently. I've googled to find a similar list like this for django. Help? There's a Django Users mailing list over on Google Groups. http://groups.google.com/group/django-users You want Django *Users* for folks that use Django to write applications, not Django *Developers* which is the mailing list for the dev team that produces Django. -tkc -- http://mail.python.org/mailman/listinfo/python-list
Re: Which version of python I should use if I just start programming in python?
On Sun, 13 Sep 2009 15:52:44 -0500 Peng Yu pengyu...@gmail.com wrote: On Sun, Sep 13, 2009 at 12:27 AM, John Nagle na...@animats.com wrote: What are the differences between 2.5 and 2.6? http://docs.python.org/dev/whatsnew/2.6.html /W -- INVALID? DE! -- http://mail.python.org/mailman/listinfo/python-list
Re: Is there a similar mailing list about django?
On Sun, 13 Sep 2009 15:54:07 -0400 Albert Hopkins mar...@letterboxes.org wrote: On Sun, 2009-09-13 at 21:27 +0200, Andreas Waldenburger wrote: Didn't like http://groups-beta.google.com/group/django-users ? (Second hit for django mailing list, but I know Google results vary from country to country, so you might not have seen it.) Or, better yet, go to Django's web site (djangoproject.org) and click on Community at the top of the page. Hehe, that was the first Google hit. :) Well, anyway ... /W -- INVALID? DE! -- http://mail.python.org/mailman/listinfo/python-list
Re: Python strict mode?
Peng Yu wrote: Hi, Is there is a way to make python check the variables just as the strict mode in perl. Would somebody let me know what is the python equivalent to the perl strict mode? 3rd party code checkers like pylint, pychecker. -- http://mail.python.org/mailman/listinfo/python-list
ANN: Python FTP Server library (pyftpdlib) 0.5.2 released
Hi, I'm pleased to announce release 0.5.2 of Python FTP Server library (pyftpdlib). http://code.google.com/p/pyftpdlib === About === Python FTP server library provides a high-level portable interface to easily write asynchronous FTP servers with Python. pyftpdlib is currently the most complete RFC-959 FTP server implementation available for Python programming language. It is used in projects like Google Chromium and Bazaar and included in Linux Fedora and FreeBSD package repositories. === Changes === This new version is mainly a bugfix release, including some important security-related patches. Aside from fixing those bugs, it includes the following enhancements: * A new ThrottledDTPHandler class is available. With this you can limit the speed for downloads and uploads affecting the data channel. Take a look at the throttled_ftpd.py script which shows an example usage: http://code.google.com/p/pyftpdlib/source/browse/trunk/demo/throttled_ftpd.py * A new unix_daemon.py script has been included in the demo directory (contributed by Michele Petrazzo). A complete list of changes including enhancements and bug fixes is available here: http://code.google.com/p/pyftpdlib/wiki/ReleaseNotes05 === More links === * Source tarball: http://pyftpdlib.googlecode.com/files/pyftpdlib-0.5.2.tar.gz * Online docs: http://code.google.com/p/pyftpdlib/wiki/Tutorial * FAQs: http://code.google.com/p/pyftpdlib/wiki/FAQ * RFCs compliance paper: http://code.google.com/p/pyftpdlib/wiki/RFCsCompliance * Issue tracker: http://code.google.com/p/pyftpdlib/issues/list * Mailing list: http://groups.google.com/group/pyftpdlib Thanks, --- Giampaolo Rodola' g.rodola [at] gmail [dot] com http://code.google.com/p/pyftpdlib/ -- http://mail.python.org/mailman/listinfo/python-list
Re: Python strict mode?
Peng Yu pengyu...@gmail.com writes: Is there is a way to make python check the variables just as the strict mode in perl. Would somebody let me know what is the python equivalent to the perl strict mode? There isn't one, because Python doesn't have the same concept of “unsafe constructs”; in Python, we think more carefully about adding such constructs to the language in the first place :-) and use a process like Python 2 → Python 3 to remove them. You're specifically asking about variables, so I assume you mean the ‘strict vars’ mode to chack variable usage against variable declarations. Python doesn't have those declarations, and doesn't really have “variables” as you might think of them either. So no, there's no such thing in Python. You will probably be interested in static code checkers such as pyflakes URL:http://pypi.python.org/pypi/pyflakes which is small and simple, or pylint URL:http://pypi.python.org/pypi/pylint which is comprehensive and very customisable. -- \ “It ain't so much the things we don't know that get us in | `\trouble. It's the things we know that ain't so.” —Artemus Ward | _o__) (1834–1867), U.S. journalist | Ben Finney -- http://mail.python.org/mailman/listinfo/python-list
Odd/Weird errors with FTPLib
I am using a simple python script to download my logfiles. This is on a while loop, the logfile grows rapidly, so it is necessary for python to start downloading the new script as soon as it has finished the old. It works fine (for about 20 minutes), then crashes. I have removed a couple of excepts, and have narrowed the error down to a 'error_perm: 550 logfile.log: The data is invalid.' error. Does anyone know what the problem might be regarding this, and what I might do to fix it? It's really irritating to have it break every so often, and at the moment, I have no chance in which to fix the error. -- http://mail.python.org/mailman/listinfo/python-list
Re: Odd/Weird errors with FTPLib
On Sun, Sep 13, 2009 at 2:34 PM, Bakes ba...@ymail.com wrote: I am using a simple python script to download my logfiles. This is on a while loop, the logfile grows rapidly, so it is necessary for python to start downloading the new script as soon as it has finished the old. It works fine (for about 20 minutes), then crashes. I have removed a couple of excepts, and have narrowed the error down to a 'error_perm: 550 logfile.log: The data is invalid.' error. Does anyone know what the problem might be regarding this, and what I might do to fix it? Including an actual code snippet and the full error traceback would help a lot. According to http://en.wikipedia.org/wiki/List_of_FTP_server_return_codes , error code 550 translates to: Requested action not taken. File unavailable (e.g., file not found, no access). Does the logfile get rotated or something, thus causing it to briefly not exist? It might also help if you explain how your logfile system works. Cheers, Chris -- http://blog.rebertia.com -- http://mail.python.org/mailman/listinfo/python-list
Re: Odd/Weird errors with FTPLib
On 13 Sep, 22:41, Chris Rebert c...@rebertia.com wrote: On Sun, Sep 13, 2009 at 2:34 PM, Bakes ba...@ymail.com wrote: I am using a simple python script to download my logfiles. This is on a while loop, the logfile grows rapidly, so it is necessary for python to start downloading the new script as soon as it has finished the old. It works fine (for about 20 minutes), then crashes. I have removed a couple of excepts, and have narrowed the error down to a 'error_perm: 550 logfile.log: The data is invalid.' error. Does anyone know what the problem might be regarding this, and what I might do to fix it? Including an actual code snippet and the full error traceback would help a lot. According tohttp://en.wikipedia.org/wiki/List_of_FTP_server_return_codes, error code 550 translates to: Requested action not taken. File unavailable (e.g., file not found, no access). Does the logfile get rotated or something, thus causing it to briefly not exist? It might also help if you explain how your logfile system works. Cheers, Chris --http://blog.rebertia.com It's a cod4 gameserver logfile, being downloaded for a python bot to parse. The logfile is downloaded using this try/except while loop. while True: try: if ftp == False: self.debug('FTP connection not active, attempting to (re)connect') ftp = self.ftpconnect() size=os.path.getsize('games_mp.log') ftp.retrbinary('RETR ' + os.path.basename(self.ftpconfig ['path']), handleDownload, rest=size) if self.console._paused: self.console.unpause() except: print error self.debug('Lost connection to server, pausing until updated properly, Sleeping 10 seconds') self.console.pause() try: ftp.close() self.debug('FTP Connection Closed') except: self.debug('FTP does not appear to be open, so not closed') ftp = False time.sleep(10) I can only assume that occasionally, the logfile is being written to by the gameserver at the same time that it's downloading. If this was the case, do you think a try: download except: sleep 900msec then download loop would work? -- http://mail.python.org/mailman/listinfo/python-list
Re: Which version of python I should use if I just start programming in python?
On Sun, Sep 13, 2009 at 4:01 PM, Andreas Waldenburger use...@geekmail.invalid wrote: On Sun, 13 Sep 2009 15:52:44 -0500 Peng Yu pengyu...@gmail.com wrote: On Sun, Sep 13, 2009 at 12:27 AM, John Nagle na...@animats.com wrote: What are the differences between 2.5 and 2.6? http://docs.python.org/dev/whatsnew/2.6.html Are all packages available in 2.5 also available in 2.6? Regards, Peng -- http://mail.python.org/mailman/listinfo/python-list
Re: Python and 3d
On Sep 13, 9:29 am, Mike C. Fletcher mcfle...@vrplumber.com wrote: azrael wrote: Has anyone any exipience with python and 3d. I mean, is there a module to deal with popular 3d formats like 3ds, or vrml. is it possible to import into python opengl models and then use it in application for GUI purposes like through WX. I know that WX supports OpenGL but how to import models from file. http://www.vrplumber.com/py3d.py There's a few older projects to load 3DS files, but I don't think any of them is currently PyOpenGL 3.x compatible. Dice3DS works fine with PyOpenGL 3.x. Carl Banks -- http://mail.python.org/mailman/listinfo/python-list
Why indentation is use to denote block of code?
Hi, I want to understand why python use indentation to denote block of code. What are the advantages of it? Is there a style in python to denote a block of code the same as that of C++ (with '{}')? One disadvantage of using indentation to denote a block of code is that the runtime to automatically indent a python code would be about a few times more than the runtime to automatically indent a C++ code of the same length (both are in vim). Regards, Peng -- http://mail.python.org/mailman/listinfo/python-list
Re: Why indentation is use to denote block of code?
On Sun, Sep 13, 2009 at 3:12 PM, Peng Yu pengyu...@gmail.com wrote: Hi, I want to understand why python use indentation to denote block of code. What are the advantages of it? See the FAQ: http://www.python.org/doc/faq/general/#why-does-python-use-indentation-for-grouping-of-statements Is there a style in python to denote a block of code the same as that of C++ (with '{}')? No. One disadvantage of using indentation to denote a block of code is that the runtime to automatically indent a python code would be about a few times more than the runtime to automatically indent a C++ code of the same length (both are in vim). In fact it's pretty much impossible to automatically indent Python code that has had its indentation removed; it's impossible to know for sure where the dedents should occur. Cheers, Chris -- http://blog.rebertia.com -- http://mail.python.org/mailman/listinfo/python-list
Re: Why indentation is use to denote block of code?
On Sep 13, 3:12 pm, Peng Yu pengyu...@gmail.com wrote: Hi, I want to understand why python use indentation to denote block of code. What are the advantages of it? Is there a style in python to denote a block of code the same as that of C++ (with '{}')? One disadvantage of using indentation to denote a block of code is that the runtime to automatically indent a python code would be about a few times more than the runtime to automatically indent a C++ code of the same length (both are in vim). Regards, Peng Try this: from __future__ import braces ~Sean -- http://mail.python.org/mailman/listinfo/python-list
Re: numpy NaN, not surviving pickle/unpickle?
Hi Robert, Thanks for the quick reply. On Sep 13, 1:22 pm, Robert Kern robert.k...@gmail.com wrote: The problem is that you are trying to use is to compare by Python object identity. Except for dtype=object arrays, the object identities of the individual elements that you extract from numpy arrays are never guaranteed. Usually, they will always be different. You need to use numpy.isnan() to determine whether an object is a NaN. OK, so there's a dedicated function in numpy to handle this. Thanks! I tried x is NaN after noting the obvious, that any equality or inequality test involving NaN will return False. In my leisure time, I would like to dig deeper into the issue of why object identities are not guaranteed for elements in numpy arrays... with elements of type float, at least, I thought this would be trivial. -- http://mail.python.org/mailman/listinfo/python-list
Re: Which version of python I should use if I just start programming in python?
On Sun, 13 Sep 2009 17:04:25 -0500 Peng Yu pengyu...@gmail.com wrote: On Sun, Sep 13, 2009 at 4:01 PM, Andreas Waldenburger use...@geekmail.invalid wrote: On Sun, 13 Sep 2009 15:52:44 -0500 Peng Yu pengyu...@gmail.com wrote: On Sun, Sep 13, 2009 at 12:27 AM, John Nagle na...@animats.com wrote: What are the differences between 2.5 and 2.6? http://docs.python.org/dev/whatsnew/2.6.html Are all packages available in 2.5 also available in 2.6? If the release notes don't say otherwise, then yes. The general rule is this: *Only* Python 3 breaks backwards compatibility. If it works in Python 2.n then it will work unmodified in Python 2.(n+1). Please note that I'm talking about the *standard library* and the language itself, of course. Usually newer versions are not as widely supported as older ones as far as third party modules go. /W -- INVALID? DE! -- http://mail.python.org/mailman/listinfo/python-list
Re: Why indentation is use to denote block of code?
On Sep 13, 3:12 pm, Peng Yu pengyu...@gmail.com wrote: Hi, I want to understand why python use indentation to denote block of code. What are the advantages of it? Is there a style in python to denote a block of code the same as that of C++ (with '{}')? One disadvantage of using indentation to denote a block of code is that the runtime to automatically indent a python code would be about a few times more than the runtime to automatically indent a C++ code of the same length (both are in vim). Regards, Peng Looking at your other post regarding strict mode, I have to comment. I think you are looking for a different language. What you are hoping to change about the language are some of the major things that make it a joy to program for me. Braces, static typing, no indentation... What's next? Would you like semicolons? I suggest you spend some time just programming it the way it was made to be programmed, and quit trying to turn it into Perl or any other language. If after a week or two, you don't like it, then move on. And save us the complaints. ~Sean -- http://mail.python.org/mailman/listinfo/python-list
Re: Is there a similar mailing list about django?
Andreas Waldenburger wrote: On Sun, 13 Sep 2009 15:54:07 -0400 Albert Hopkins mar...@letterboxes.org wrote: On Sun, 2009-09-13 at 21:27 +0200, Andreas Waldenburger wrote: Didn't like http://groups-beta.google.com/group/django-users ? (Second hit for django mailing list, but I know Google results vary from country to country, so you might not have seen it.) Or, better yet, go to Django's web site (djangoproject.org) and click on Community at the top of the page. Hehe, that was the first Google hit. :) Well, anyway ... /W Thanks.. I saw the google group, but I was hoping for a list that I can read in my thunderbird client. Thanks all for the good pointers -- http://mail.python.org/mailman/listinfo/python-list
Re: Odd/Weird errors with FTPLib
Bakes wrote: On 13 Sep, 22:41, Chris Rebert c...@rebertia.com wrote: On Sun, Sep 13, 2009 at 2:34 PM, Bakes ba...@ymail.com wrote: I am using a simple python script to download my logfiles. This is on a while loop, the logfile grows rapidly, so it is necessary for python to start downloading the new script as soon as it has finished the old. It works fine (for about 20 minutes), then crashes. I have removed a couple of excepts, and have narrowed the error down to a 'error_perm: 550 logfile.log: The data is invalid.' error. Does anyone know what the problem might be regarding this, and what I might do to fix it? Including an actual code snippet and the full error traceback would help a lot. According tohttp://en.wikipedia.org/wiki/List_of_FTP_server_return_codes, error code 550 translates to: Requested action not taken. File unavailable (e.g., file not found, no access). Does the logfile get rotated or something, thus causing it to briefly not exist? It might also help if you explain how your logfile system works. Cheers, Chris --http://blog.rebertia.com It's a cod4 gameserver logfile, being downloaded for a python bot to parse. The logfile is downloaded using this try/except while loop. while True: try: if ftp == False: self.debug('FTP connection not active, attempting to (re)connect') ftp = self.ftpconnect() size=os.path.getsize('games_mp.log') ftp.retrbinary('RETR ' + os.path.basename(self.ftpconfig ['path']), handleDownload, rest=size) if self.console._paused: self.console.unpause() except: print error self.debug('Lost connection to server, pausing until updated properly, Sleeping 10 seconds') self.console.pause() try: ftp.close() self.debug('FTP Connection Closed') except: self.debug('FTP does not appear to be open, so not closed') ftp = False time.sleep(10) I can only assume that occasionally, the logfile is being written to by the gameserver at the same time that it's downloading. If this was the case, do you think a try: download except: sleep 900msec then download loop would work? Bare excepts are almost always a bad idea because they'll catch _all_ exceptions, both those you expect could happen and those you don't. Catch only those you expect. For example, if the file 'games_mp.log' doesn't exist then os.path.getsize('games_mp.log') will raise an exception, and if you forgot to import the os module then that will raise a NameError exception. Anyway, I can't see how you leave the loop; I'd expect something like a 'break' statement. And as a matter of style, I'd prefer None to False to indicate when there's no FTP connection (and if not ftp instead of if ftp == False). -- http://mail.python.org/mailman/listinfo/python-list
Re: Why indentation is use to denote block of code?
On 2009-09-13, Peng Yu pengyu...@gmail.com wrote: One disadvantage of using indentation to denote a block of code is that the runtime to automatically indent a python code would be about a few times more than the runtime to automatically indent a C++ code of the same length (both are in vim). Talking about automatically indenting Python makes no sense. It would be the equivalent of removing all the braces {} from C code and then talking about automatically inserting them in the proper places. If you had a program that could do that, you might as sell just have it generate all of the source code for you from scratch. In C, indentation is just a redundant visual clue for the reader. It is needed because people are really awful at parsing block delimiters and if/then/else/while sematics visually. In python the indentation _is_ the block delimiters, which means that the block structures perceived by the reader via indentation _always_ matches the block structure seen by the compiler. That's not true in C, and it causes all sorts of bugs when the structure perceived by the reader (via indenation) doesn't match that perceived by the compiler (via braces). -- Grant Edwards grante Yow! If I had a Q-TIP, I at could prevent th' collapse visi.comof NEGOTIATIONS!! -- http://mail.python.org/mailman/listinfo/python-list
Re: numpy NaN, not surviving pickle/unpickle?
John Ladasky wrote: OK, so there's a dedicated function in numpy to handle this. Thanks! I tried x is NaN after noting the obvious, that any equality or inequality test involving NaN will return False. In my leisure time, I would like to dig deeper into the issue of why object identities are not guaranteed for elements in numpy arrays... with elements of type float, at least, I thought this would be trivial. You mustn't use is on numbers ever. It might work under some special circumstances but in general it doesn't do what you expect. NaN isn't a singleton in Python. Python's float type uses IEEE 754 double precision numbers internally. The double type has much more than billions of NaN values (IIRC 2**53). isnan() is the only reliable way to detect NaNs. x != x is a hack that works on most platforms, too. Christian -- http://mail.python.org/mailman/listinfo/python-list
Re: numpy NaN, not surviving pickle/unpickle?
John Ladasky wrote: In my leisure time, I would like to dig deeper into the issue of why object identities are not guaranteed for elements in numpy arrays... with elements of type float, at least, I thought this would be trivial. Why do you think that? We would have to keep a reference around to every scalar object that gets created and check against that cache whenever someone accesses an element in order to reuse the previously created object. That slows element access down for essentially no benefit. -- Robert Kern I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth. -- Umberto Eco -- http://mail.python.org/mailman/listinfo/python-list
Re: Why indentation is use to denote block of code?
On Sep 13, 5:12 pm, Peng Yu pengyu...@gmail.com wrote: Hi, I want to understand why python use indentation to denote block of code. What are the advantages of it? Is there a style in python to denote a block of code the same as that of C++ (with '{}')? Easy! because Python is simplistic programming bliss! Indenting code makes the blocks easier to read and forcing this on Python programmers is a good thing. And as a side effect dedent can be used to find the end of a block. Some languages still use block ending notations like the redundant end. I think they do this from an inability to break from old habits and fear of change. You will find Python to be a revolutionary language that does not confine itself to closed minded archaic redundancies and asinine design flaws. Pythons simplistic syntax, elegant coding structure, and beautifully intelligent design, encompass the traits that every twenty first century language should aspire to be. Right now you can think of yourself as the poor Neo, completely oblivious of the matrix(C) that blinds you to reality. You can think of Python as Morpheus, the one who shall open your eyes to the atrocities of C and other evil languages of who's names i shall not utter here. This should enlighten you a bit... http://tiny.cc/TheBlindingMatrixOfC -- http://mail.python.org/mailman/listinfo/python-list
Re: numpy NaN, not surviving pickle/unpickle?
On Sep 13, 3:18 pm, John Ladasky john_lada...@sbcglobal.net wrote: In my leisure time, I would like to dig deeper into the issue of why object identities are not guaranteed for elements in numpy arrays... with elements of type float, at least, I thought this would be trivial. Unlike Python lists, numpy arrays don't store objects. It stores the underlying number, not the object containing the number. So whenever you get a value from a numpy array, Python (usually) has to create a new object for it. Carl Banks -- http://mail.python.org/mailman/listinfo/python-list
Re: Why indentation is use to denote block of code?
On Sun, 13 Sep 2009 15:15:40 -0700, Chris Rebert wrote: In fact it's pretty much impossible to automatically indent Python code that has had its indentation removed; it's impossible to know for sure where the dedents should occur. Just like most other syntactic elements -- if you remove all the return statements from Python code, or dot operators, it's impossible to automatically add them back in. The only difference is that some (badly written?) applications mangle leading whitespace, but very few feel free to remove other text on a whim. I don't recall actually using a mail client or newsreader that removes leading whitespace when posting, but I've occasionally seen posts from others with all indentation removed, so presumably such badly-behaved applications do exist. -- Steven -- http://mail.python.org/mailman/listinfo/python-list
Re: Is there a similar mailing list about django?
On Sun, 13 Sep 2009 18:46:44 -0400 Joel Goldstick joel.goldst...@columbuswebmakers.com wrote: Thanks.. I saw the google group, but I was hoping for a list that I can read in my thunderbird client. Thanks all for the good pointers Huh? Django-Users is a mailing list. That's what Google-Groups is (among a Usenet portal): A collection of mailing lists. And those work in Thunderbird, I vouch for that. /W -- INVALID? DE! -- http://mail.python.org/mailman/listinfo/python-list
Re: Is there a similar mailing list about django?
On Mon, 14 Sep 2009 01:24:49 +0200 Andreas Waldenburger use...@geekmail.invalid wrote: (among a Usenet portal) Damn those late hours. What I meant was amongst other things such as a Usenet portal. /W -- INVALID? DE! -- http://mail.python.org/mailman/listinfo/python-list
Re: Is there a similar mailing list about django?
On Sun, 2009-09-13 at 18:46 -0400, Joel Goldstick wrote: Thanks.. I saw the google group, but I was hoping for a list that I can read in my thunderbird client. Thanks all for the good pointers And if you simply go to the Django web site and click on Community there is a form where you can subscribe to the Django mailing lists and read them in your precious little Thunderbird client. -- http://mail.python.org/mailman/listinfo/python-list
Re: Python strict mode?
On Sep 13, 9:25 am, Peng Yu pengyu...@gmail.com wrote: Is there is a way to make python check the variables just as the strict mode in perl. Would somebody let me know what is the python equivalent to the perl strict mode? I don't recommend using it, but see this post: http://groups.google.com/group/comp.lang.python/msg/290e4617c3a97f6f?hl=en Carl Banks -- http://mail.python.org/mailman/listinfo/python-list
Re: numpy NaN, not surviving pickle/unpickle?
On Sun, 13 Sep 2009 17:58:14 -0500, Robert Kern wrote: John Ladasky wrote: In my leisure time, I would like to dig deeper into the issue of why object identities are not guaranteed for elements in numpy arrays... with elements of type float, at least, I thought this would be trivial. Why do you think that? We would have to keep a reference around to every scalar object that gets created and check against that cache whenever someone accesses an element in order to reuse the previously created object. That slows element access down for essentially no benefit. Exactly -- there are 2**53 distinct floats on most IEEE systems, the vast majority of which might as well be random. What's the point of caching numbers like 2.5209481723210079? Chances are it will never come up again in a calculation. There may be something to be said for caching common floats, like pi, small integers (0.0, 1.0, 2.0, ...), 0.5, 0.25 and similar, but I doubt the memory savings would be worth the extra complexity. You can do your own caching: pass every calculation result through the following: _cache = {} def cache(f): Cache and return float f. if f in _cache: return _cache[f] _cache[f] = f return f -- Steven -- http://mail.python.org/mailman/listinfo/python-list
Re: How to define a function with an empty body?
On Sun, 13 Sep 2009 15:30:52 +0200, Christian Heimes wrote: Peng Yu schrieb: Hi, I want to define a function without anything in it body. In C++, I can do something like the following because I can use {} to denote an empty function body. Since python use indentation, I am not sure how to do it. Can somebody let me know how to do it in python? Python has two possibilities to create an empty function. The others already told you aber the pass statement. The other way is a function with a doc string def func(): No op function There are more than just two possibilities. Here are three trivial variations on the same technique: def func(): return def func(): return None lambda: None and two slightly more complex variations: new.function(compile(, , exec), {}) # given some existing function f: type(f)(compile(, , exec), {}) -- Steven -- http://mail.python.org/mailman/listinfo/python-list
Re: run exe on different computer
daved170 wrote: On Sep 13, 2:17 pm, Dave Angel da...@ieee.org wrote: daved170 wrote: Hi everybody, I'm building a small python program that run a service (exe file) on my servers. I don't want to use remote desktop and it's siblings. I would like to have some information on how to run an exe on a different computer and if there a way to check if that exe is still alive. Thanks Dave On a question like this, you really need to supply much more information on your constraints. You could start by saying these servers are running Windows Server 2003. And that they're on a domain (rather than a workgroup). And that you're trying to access them from another machine within the same local domain, not over the internet. And that your local machine is on the same domain, and has an account with admin privileges for all the desired servers. And that you are allowed to do a one-time install (of something) on each server prior to this particular need. And that each server already has Python version 2.5 installed, and the IT department won't allow you to install any later version. Then once you have an environment, you need to specify just what kind of program you want to run on those servers. Is it an EXE program? Or is it Python, with a particular script? Does it really need to be a *service*, which has a particular set of constraints, and should be installed, and started/stopped using the service manager. Do you want this program to restart whenever the servers are restarted? One solution that should work for nearly every Windows topology might be to go to each server, run the scheduler task, and specify a new batch file to be run upon boot. This batch file can check a specified (shared) directory for a python script, and if found, run it. If not found, sleep for 60 seconds or so, then repeat. Note that it's a good idea to put a five minute delay at the very beginning, in case the script needs to be deleted at the next boot. Sometimes a bug requires surgery, and it's good to have enough time to do it. Now, to control those servers from another machine, copy an appropriate script into the prearranged directory. Within a minute, it'll be running, and it can post whatever results it likes in another accessible directory. Whether this is a safe thing to do is a separate question. Generally an IT department likes to have some control over just what programs run on their servers, and for good reason. DaveA Hi DaveA Thanks for your answer. I'll try to clearify myself. For now I'm trying to do that on client server that are win XP. They both on the same domain (maybe in the future they'll be runinig on the web). I have admin user on both my computers. I have both an exe and a python app that I'd like to control from my client. Insted of logging to my Server I would like to write a python app at my client that allows me to control both that exe and my Server-python- app. I don't want to use the schedualer because I would like to control it from my client. I can install whatever I'll like on both of the computers. they are mine and I have full access for them. I hope I clearify myself and if there are more solutions I'll be happy to be noted. Thans DaveD :) If you only have those two machines, you aren't on a NT domain, you've got a workgroup. A Windows domain is hosted by a server OS, and XP can only be a client on a domain. Without being on an NT domain, security is much sloppier. In some ways that makes things easier, but you may hit a brick wall if you need more than one kind of simultaneous access to another machine. Is this EXE file you want to run on the server something out of your control, or could you customize that as well? Because if you can, then the distinction between that and your server-python program is probably unimportant. Call the programs you might want to run: X1, X2, X3. In order to run X1 on that server without opening a console (or remote desktop, or whatever) on it, you will have to have something else already running which is willing to be a proxy on your behalf. You then communicate with that program to tell it what to run, and when. I suggested a batch file for that program, call it S. It could just as easily have been a python script, but there's no advantage that I can see. The idea is to make sure that S is always running (which is why you put it into the scheduler; it'll be restarted whenever the machine is booted). Anyway, the idea is that S is a very lightweight program, and it can launch any possible Xn. And the only question is how you want the client to talk to S. If S is a fancier program, you might use sockets, or whatever, but on a local system, the file system works pretty well. And a batch file is about as lightweight as you can get; the only external program it needs is sleep.exe. It's quite possible that DCOM (for example) includes something that acts like S, but when
Re: numpy NaN, not surviving pickle/unpickle?
On Sep 13, 4:17 pm, Carl Banks pavlovevide...@gmail.com wrote: On Sep 13, 3:18 pm, John Ladasky john_lada...@sbcglobal.net wrote: In my leisure time, I would like to dig deeper into the issue of why object identities are not guaranteed for elements in numpy arrays... with elements of type float, at least, I thought this would be trivial. Unlike Python lists, numpy arrays don't store objects. That would be the crux of it, I think. I've gotten so used to the behavior of Python lists that I now have to unlearn it! -- http://mail.python.org/mailman/listinfo/python-list
Re: Why indentation is use to denote block of code?
On Sep 13, 6:27 pm, Steven D'Aprano st...@remove-this- cybersource.com.au wrote: On Sun, 13 Sep 2009 15:15:40 -0700, Chris Rebert wrote: In fact it's pretty much impossible to automatically indent Python code that has had its indentation removed; it's impossible to know for sure where the dedents should occur. Just like most other syntactic elements -- if you remove all the return statements from Python code, or dot operators, it's impossible to automatically add them back in. The only difference is that some (badly written?) applications mangle leading whitespace, but very few feel free to remove other text on a whim. I don't recall actually using a mail client or newsreader that removes leading whitespace when posting, but I've occasionally seen posts from others with all indentation removed, so presumably such badly-behaved applications do exist. I haven't seen it in a mail client, but it's very common in internet forums. -- http://mail.python.org/mailman/listinfo/python-list
Re: run exe on different computer
On Sep 13, 4:57 pm, Dave Angel da...@ieee.org wrote: daved170 wrote: On Sep 13, 2:17 pm, Dave Angel da...@ieee.org wrote: daved170 wrote: Hi everybody, I'm building a small python program that run a service (exe file) on my servers. I don't want to use remote desktop and it's siblings. I would like to have some information on how to run an exe on a different computer and if there a way to check if that exe is still alive. Thanks Dave On a question like this, you really need to supply much more information on your constraints. You could start by saying these servers are running Windows Server 2003. And that they're on a domain (rather than a workgroup). And that you're trying to access them from another machine within the same local domain, not over the internet. And that your local machine is on the same domain, and has an account with admin privileges for all the desired servers. And that you are allowed to do a one-time install (of something) on each server prior to this particular need. And that each server already has Python version 2.5 installed, and the IT department won't allow you to install any later version. Then once you have an environment, you need to specify just what kind of program you want to run on those servers. Is it an EXE program? Or is it Python, with a particular script? Does it really need to be a *service*, which has a particular set of constraints, and should be installed, and started/stopped using the service manager. Do you want this program to restart whenever the servers are restarted? One solution that should work for nearly every Windows topology might be to go to each server, run the scheduler task, and specify a new batch file to be run upon boot. This batch file can check a specified (shared) directory for a python script, and if found, run it. If not found, sleep for 60 seconds or so, then repeat. Note that it's a good idea to put a five minute delay at the very beginning, in case the script needs to be deleted at the next boot. Sometimes a bug requires surgery, and it's good to have enough time to do it. Now, to control those servers from another machine, copy an appropriate script into the prearranged directory. Within a minute, it'll be running, and it can post whatever results it likes in another accessible directory. Whether this is a safe thing to do is a separate question. Generally an IT department likes to have some control over just what programs run on their servers, and for good reason. DaveA Hi DaveA Thanks for your answer. I'll try to clearify myself. For now I'm trying to do that on client server that are win XP. They both on the same domain (maybe in the future they'll be runinig on the web). I have admin user on both my computers. I have both an exe and a python app that I'd like to control from my client. Insted of logging to my Server I would like to write a python app at my client that allows me to control both that exe and my Server-python- app. I don't want to use the schedualer because I would like to control it from my client. I can install whatever I'll like on both of the computers. they are mine and I have full access for them. I hope I clearify myself and if there are more solutions I'll be happy to be noted. Thans DaveD :) If you only have those two machines, you aren't on a NT domain, you've got a workgroup. A Windows domain is hosted by a server OS, and XP can only be a client on a domain. Without being on an NT domain, security is much sloppier. In some ways that makes things easier, but you may hit a brick wall if you need more than one kind of simultaneous access to another machine. Is this EXE file you want to run on the server something out of your control, or could you customize that as well? Because if you can, then the distinction between that and your server-python program is probably unimportant. Call the programs you might want to run: X1, X2, X3. In order to run X1 on that server without opening a console (or remote desktop, or whatever) on it, you will have to have something else already running which is willing to be a proxy on your behalf. You then communicate with that program to tell it what to run, and when. I suggested a batch file for that program, call it S. It could just as easily have been a python script, but there's no advantage that I can see. The idea is to make sure that S is always running (which is why you put it into the scheduler; it'll be restarted whenever the machine is booted). Anyway, the idea is that S is a very lightweight program, and it can launch any possible Xn. And the only question is how you want the client to talk to S. If S is a fancier program, you might use sockets, or whatever, but on a local system, the file system works pretty well. And a batch file is about as lightweight as you can get; the
trouble quitting PyQt4 App
Hi, Im new to PyQt4 and im having fun using it. but ive run into a bit of a problem. I cant quit the application. The application has 2 modules. The gui module(gui.py) and then the main program(main.py) heres gui.py: from PyQt4 import QtCore, QtGui import sys from subprocess import Popen class Ui_MainWindow(object): fileinit=False paused=True quit=False filename= def setupUi(self, MainWindow): MainWindow.setObjectName(MainWindow) MainWindow.resize(394, 414) self.centralwidget = QtGui.QWidget(MainWindow) self.centralwidget.setObjectName(centralwidget) self.scrollArea = QtGui.QScrollArea(self.centralwidget) self.scrollArea.setGeometry(QtCore.QRect(19, 9, 361, 281)) self.scrollArea.setWidgetResizable(True) self.scrollArea.setObjectName(scrollArea) self.scrollAreaWidgetContents = QtGui.QWidget(self.scrollArea) self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 357, 277)) self.scrollAreaWidgetContents.setObjectName(scrollAreaWidgetContents) self.textEdit = QtGui.QTextEdit(self.scrollAreaWidgetContents) self.textEdit.setGeometry(QtCore.QRect(-7, -6, 371, 291)) self.textEdit.setObjectName(textEdit) self.scrollArea.setWidget(self.scrollAreaWidgetContents) self.pushButton = QtGui.QPushButton(self.centralwidget) self.pushButton.setGeometry(QtCore.QRect(30, 310, 80, 25)) self.pushButton.setObjectName(pushButton) self.pushButton_2 = QtGui.QPushButton(self.centralwidget) self.pushButton_2.setGeometry(QtCore.QRect(139, 310, 91, 25)) self.pushButton_2.setObjectName(pushButton_2) self.pushButton_3 = QtGui.QPushButton(self.centralwidget) self.pushButton_3.setGeometry(QtCore.QRect(280, 310, 80, 25)) self.pushButton_3.setObjectName(pushButton_3) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtGui.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 394, 23)) self.menubar.setObjectName(menubar) MainWindow.setMenuBar(self.menubar) self.statusbar = QtGui.QStatusBar(MainWindow) self.statusbar.setObjectName(statusbar) MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL(clicked()), self.Open) QtCore.QObject.connect(self.pushButton_2, QtCore.SIGNAL(clicked()), self.Pause) QtCore.QObject.connect(self.pushButton_3, QtCore.SIGNAL(clicked()), self.Quit) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): MainWindow.setWindowTitle(QtGui.QApplication.translate(MainWindow, MainWindow, None, QtGui.QApplication.UnicodeUTF8)) self.pushButton.setText(QtGui.QApplication.translate(MainWindow, Open, None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_2.setText(QtGui.QApplication.translate(MainWindow, Pause/Resume, None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_3.setText(QtGui.QApplication.translate(MainWindow, Quit, None, QtGui.QApplication.UnicodeUTF8)) def Pause(self): print Pause self.paused=not(self.paused) def Quit(self): self.quit=True print setting quit def Open(self): print Open self.filename=QtGui.QFileDialog.getOpenFileName() self.filename=str(self.filename) f=open(book.txt,r) old=f.read(20) f.close() f=open(self.filename,'r') new=f.read(20) f.close() if(old!=new): Popen('rm log.txt',shell=True) f=open(book.txt,'w') f.write(new) f.close() self.fileinit=True print setting fileinit and heres the main.py from PyQt4 import QtCore, QtGui import sip,gui import sys from subprocess import Popen from threading import Thread class AppThread(Thread): appinit=False def run(self): app = QtGui.QApplication(sys.argv) MainWindow = QtGui.QMainWindow() self.ui = gui.Ui_MainWindow() self.ui.setupUi(MainWindow) MainWindow.show() self.appinit=True #ui.textEdit.setText(ui.filename) sys.exit(app.exec_()) class Speak(Thread): def run(self): print starting speaker try: log=open(log.txt,'r')
NameError: name '__main__' is not defined
Hi, I try the following code. I don't quite understand why __main__ is not defined. Could somebody let me know what I am wrong about it? Regards, Peng $ cat test.py #!/usr/bin/env python if __main__ == '__main__' : print Hello World!\n $ ./test.py Traceback (most recent call last): File ./test.py, line 3, in module if __main__ == '__main__' : NameError: name '__main__' is not defined -- http://mail.python.org/mailman/listinfo/python-list
yet another modifying locals() question
I know that locals() is not supposed to be modifiable under most circumstances, but I'm trying to solve a situation where I'm dynamically generating some class attributes and it seemed to be the best way, so I tried something out that seems to work but I'm not sure that it's kosher: def f(l): ...l['b'] = 1 ... class A: ...f(locals()) ... A.b 1 In my code, I'm doing something quite a bit more complex than just assigning a single attribute, but this is the simplest use case example. Is there a reason why this works and is it safe to rely on it or is there a better approach? BTW, this works in a program too, it's not just an artifact of the command line interpreter globals() = locals() thing. Thanks Ed -- http://mail.python.org/mailman/listinfo/python-list
Re: Is there a similar mailing list about django?
Thanks.. I saw the google group, but I was hoping for a list that I can read in my thunderbird client. Thanks all for the good pointers You can subscribe to the google group via email (which is what I did previously with TB), or you can subscribe to the mirrored copy of it over at gmane.comp.python.django.user on news.gmane.org which is how I read it now in TB. -tkc -- http://mail.python.org/mailman/listinfo/python-list
Re: NameError: name '__main__' is not defined
Try if __name__ == '__main__' :], Xav On Mon, Sep 14, 2009 at 11:43 AM, Peng Yu pengyu...@gmail.com wrote: Hi, I try the following code. I don't quite understand why __main__ is not defined. Could somebody let me know what I am wrong about it? Regards, Peng $ cat test.py #!/usr/bin/env python if __main__ == '__main__' : print Hello World!\n $ ./test.py Traceback (most recent call last): File ./test.py, line 3, in module if __main__ == '__main__' : NameError: name '__main__' is not defined -- http://mail.python.org/mailman/listinfo/python-list -- http://mail.python.org/mailman/listinfo/python-list
Re: NameError: name '__main__' is not defined
On Sep 13, 10:43 pm, Peng Yu pengyu...@gmail.com wrote: Hi, I try the following code. I don't quite understand why __main__ is not defined. Could somebody let me know what I am wrong about it? Regards, Peng $ cat test.py #!/usr/bin/env python if __main__ == '__main__' : print Hello World!\n $ ./test.py Traceback (most recent call last): File ./test.py, line 3, in module if __main__ == '__main__' : NameError: name '__main__' is not defined You wrote __main__ instead of __name__. It should have been: if __name__ == '__main__': ... André -- http://mail.python.org/mailman/listinfo/python-list
Re: NameError: name '__main__' is not defined
On Sep 13, 6:43 pm, Peng Yu pengyu...@gmail.com wrote: Hi, I try the following code. I don't quite understand why __main__ is not defined. Could somebody let me know what I am wrong about it? Regards, Peng $ cat test.py #!/usr/bin/env python if __main__ == '__main__' : print Hello World!\n $ ./test.py Traceback (most recent call last): File ./test.py, line 3, in module if __main__ == '__main__' : NameError: name '__main__' is not defined Is this a production program that you are using?? Please show us the point you are trying to make in something more valuable. ~Sean -- http://mail.python.org/mailman/listinfo/python-list
Re: Why use locals()
I have never used a call to locals() in my code. Can you show me a use case where it is valuable and Pythonic? def print_item(item): description = textwrap.fill(item.description, 40) short = item.description.split('\n', 1)[0] code = str(item.id).zfill(6) print %(code)s %(short)s\n%(description)s\n % locals() I see the use of that, but according to Zen, Explicit is better than implicit. Transferring arguments: def foo(some, long, list, of, arguments): additional = 5 return other(**locals()) Why not?: def foo(**kwargs): kwargs[additional] = 5 return other(**kwargs) Defining properties: class ColourThing(object): �...@apply def rgb(): def fset(self, rgb): self.r, self.g, self.b = rgb def fget(self): return (self.r, self.g, self.b) return property(**locals()) So really it's just a short hand. But it's against the Zen! Explicit not Implicit! I'm not convincedthen again, I didn't look at the source code of the standard libraries. ~Sean -- http://mail.python.org/mailman/listinfo/python-list
Re: Commutative object in emulating numbers
On Sep 14, 7:52 am, iu2 isra...@elbit.co.il wrote: Hi, I reached the chapter Emulating numeric types in the python documentation and I tried this: class A: def __mul__(self, a): return 'A' * a Now, this works as expected: a = A() a * 3 'AAA' But this doesn't (also as expected): 3 * a Traceback (most recent call last): File pyshell#45, line 1, in module 3 * a TypeError: unsupported operand type(s) for *: 'int' and 'instance' What do I need to do in order to make the two classes, int and A, commutative? (In the same way that string and int are commutative over *) Thanks By commutative I mean give the same result, that is 3 * a will also return 'AAA' -- http://mail.python.org/mailman/listinfo/python-list
Re: Why use locals()
On Sep 13, 9:11 pm, Steven D'Aprano ste...@remove.this.cybersource.com.au wrote: On Sun, 13 Sep 2009 20:26:06 -0700, Sean DiZazzo wrote: On Sep 13, 8:18 pm, Steven D'Aprano ste...@remove.this.cybersource.com.au wrote: On Sun, 13 Sep 2009 20:06:51 -0700, Sean DiZazzo wrote: I have never used a call to locals() in my code. Can you show me a use case where it is valuable and Pythonic? grep is your friend: $ grep locals() /usr/lib/python2.5/*.py /usr/lib/python2.5/decimal.py: for name, val in locals().items(): /usr/lib/python2.5/doctest.py: return __import__(module, globals(), locals(), [*]) /usr/lib/python2.5/profile.py: p.runctx('f(m)', globals(), locals()) /usr/lib/python2.5/pydoc.py: docloc = 'bra href=%(docloc)sModule Docs/a' % locals() /usr/lib/python2.5/smtpd.py: mod = __import__(classname[:lastdot], globals(), locals(), []) -- Steven That is not a use case. I still don't understand! Look at the source code to find out what they're doing with the information they extract from locals(), and why. For instance, profile should be obvious -- debuggers and profilers often need to see the values of local names. pydoc is using the fairly common idiom of injecting the values of variables into a string. Personally, I don't see why it uses this idiom: docloc = 'something' docloc = '%(docloc)s' % locals() instead of this: docloc = 'something' docloc = '%s' % docloc but for more complicated cases, the first idiom is much simpler. decimal seems to be using locals() to avoid this anti-pattern: def __init__(self, a, b, c, d, e, f, g, h): self.a = a self.b = b self.c = c self.d = d # blah blah blah self.h = h and replacing it with: def __init__(self, a, b, c, d, e, f, g, h): for name, val in locals().items(): setattr(self, name, val) del self.self Another use-case: if you have a tool that documents Python code automatically, it needs a way to automatically view the values of local names. PS. I know how to use grep. I'm sure you do. But you didn't think of using grep, which is why I made the suggestion that grepping the standard library is a good tool to use to search for Pythonic examples of code. It's not foolproof, e.g. the unittest module is more Java-onic than Pythonic, but it's a good start. -- Steven Thanks for your explanation Steven. I see how it can be valuable, but it seems to always break the second rule of Zen. I don't really want to get into the code of debuggers, but I guess I can see how they might have no other way to know what local variables have been set. ~Sean -- http://mail.python.org/mailman/listinfo/python-list
Re: Commutative object in emulating numbers
On Sun, Sep 13, 2009 at 9:52 PM, iu2 isra...@elbit.co.il wrote: Hi, I reached the chapter Emulating numeric types in the python documentation and I tried this: class A: def __mul__(self, a): return 'A' * a Now, this works as expected: a = A() a * 3 'AAA' But this doesn't (also as expected): 3 * a Traceback (most recent call last): File pyshell#45, line 1, in module 3 * a TypeError: unsupported operand type(s) for *: 'int' and 'instance' What do I need to do in order to make the two classes, int and A, commutative? You need to define __rmul__(): http://docs.python.org/dev/3.0/reference/datamodel.html#object.__rmul__ Cheers, Chris -- http://blog.rebertia.com -- http://mail.python.org/mailman/listinfo/python-list
Re: Why use locals()
On Sep 13, 9:54 pm, Sean DiZazzo half.ital...@gmail.com wrote: I have never used a call to locals() in my code. Can you show me a use case where it is valuable and Pythonic? def print_item(item): description = textwrap.fill(item.description, 40) short = item.description.split('\n', 1)[0] code = str(item.id).zfill(6) print %(code)s %(short)s\n%(description)s\n % locals() I see the use of that, but according to Zen, Explicit is better than implicit. Transferring arguments: def foo(some, long, list, of, arguments): additional = 5 return other(**locals()) Why not?: def foo(**kwargs): kwargs[additional] = 5 return other(**kwargs) Defining properties: class ColourThing(object): �...@apply def rgb(): def fset(self, rgb): self.r, self.g, self.b = rgb def fget(self): return (self.r, self.g, self.b) return property(**locals()) So really it's just a short hand. But it's against the Zen! Explicit not Implicit! I'm not convincedthen again, I didn't look at the source code of the standard libraries. ISTM that any use of locals() is going to be labeled implicit by you, which is not unfair, since it pretty much is implicit compared to using local variables directly. If being implicit is alone enough to make anything unPythonic, then the answer to your question is No, locals() is never Pythonic. If you are willing to open your mind to the possibility that some Pythonic things don't adhere to every Zen, then I would suggest that Gabrielle's examples are perfectly Pythonic shortcuts. But if you don't want to use them, you don't have to, nobody is forcing you. Carl Banks -- http://mail.python.org/mailman/listinfo/python-list
Re: Commutative object in emulating numbers
On Sep 14, 8:16 am, Chris Rebert c...@rebertia.com wrote: On Sun, Sep 13, 2009 at 9:52 PM, iu2 isra...@elbit.co.il wrote: Hi, I reached the chapter Emulating numeric types in the python documentation and I tried this: class A: def __mul__(self, a): return 'A' * a Now, this works as expected: a = A() a * 3 'AAA' But this doesn't (also as expected): 3 * a Traceback (most recent call last): File pyshell#45, line 1, in module 3 * a TypeError: unsupported operand type(s) for *: 'int' and 'instance' What do I need to do in order to make the two classes, int and A, commutative? You need to define __rmul__():http://docs.python.org/dev/3.0/reference/datamodel.html#object.__rmul__ Cheers, Chris --http://blog.rebertia.com- Hide quoted text - - Show quoted text - Thanks! -- http://mail.python.org/mailman/listinfo/python-list