ANN: unittest2 0.4.0 released
Hello all, I'm pleased to announce the release of version 0.4.0 of unittest2. * unittest2 on PyPI: http://pypi.python.org/pypi/unittest2 * Article introducing unittest2: http://www.voidspace.org.uk/python/articles/unittest2.shtml * Development docs for unittest (new features documented) http://docs.python.org/dev/library/unittest.html * Mercurial Development Repository: http://hg.python.org/unittest2 unittest2 is an enhanced version of unittest including a standard test runner (automatic test discovery), class and module level fixtures (``setUpClass`` / ``setUpModule`` etc), many powerful new assert methods, better resource management with ``addCleanups`` and a host of other new features. These new features are *all* going into the Python version of unittest in Python 2.7 and Python 3.2. The point of unittest2 is that it works with Python 2.4 - 2.6; you can use it now. The latest release is 0.4.0, which roughly equates to the feature set that will be in unittest in Python 2.7 beta 1 which is due out any minute now. The last public release of unittest2 I announced was version 0.2.0 and there have been several new and important features since then. For a good roundup of the new features, see my blog entry: * http://www.voidspace.org.uk/python/weblog/arch_d7_2010_04_03.shtml#e1171 The full changelog for versions 0.3.0 and 0.4.0: 2010/04/08 - 0.4.0 -- Addition of ``removeHandler`` for removing the control-C handler. ``delta`` keyword argument for ``assertAlmostEqual`` and ``assertNotAlmostEqual``. Addition of -b command line option (and ``TestResult.buffer``) for buffering stdout / stderr during test runs. Addition of ``TestCase.assertNotRegexpMatches``. Allow test discovery using dotted module names instead of a path. All imports requiring the signal module are now optional, for compatiblity with IronPython (or other platforms without this module). Tests fixed to be compatible with nosetest. 2010/03/26 - 0.3.0 -- ``assertSameElements`` removed and ``assertItemsEqual`` added; assert that sequences contain the same elements. Addition of -f/--failfast command line option, stopping test run on first failure or error. Addition of -c/--catch command line option for better control-C handling during test runs. Added ``BaseTestSuite``, for use by frameworks that don't want to support shared class and module fixtures. Skipped test methods no longer have ``setUp`` and ``tearDown`` called around them. Faulty ``load_tests`` functions no longer halt test discovery. Using non-strings for failure messages now works. Potential for ``UnicodeDecodeError`` whilst creating failure messages fixed. Split out monolithic test module into a package. BUGFIX: Correct usage message now shown for unit2 scripts. BUGFIX: ``__unittest`` in module globals trims frames from that module in reported stacktraces. All the best, Michael Foord -- http://www.ironpythoninaction.com/ http://www.voidspace.org.uk/blog -- http://mail.python.org/mailman/listinfo/python-announce-list Support the Python Software Foundation: http://www.python.org/psf/donations/
Re: Cleanup guarantees?
On 04/09/10 05:13, Alf P. Steinbach wrote: cut socket open/close Second, I'm unable to find documentation of when they're called and what they do. It seems that (A) when the connection object's stream is exhausted by reading, its close() method is called automatically, and (B) that when the text_reader object's close method is called it calls the close method of the wrapped stream (i.e. on the connection object). But where is this documented? If nothing else, my guess would be the source somewhere between the urllib and socket module. -- mph -- http://mail.python.org/mailman/listinfo/python-list
Is there any module/utility like 'rsync' in python
Hi, Is there any module/utility like 'rsync' in python. Thank you in advance. -Hiral -- http://mail.python.org/mailman/listinfo/python-list
Re: Is there any module/utility like 'rsync' in python
hiral hiralsmaill...@gmail.com wrote: Hi, Is there any module/utility like 'rsync' in python. http://freshmeat.net/projects/pysync/ http://vdesmedt.com/~vds2212/rsync.html -- --- | Radovan Garabík http://kassiopeia.juls.savba.sk/~garabik/ | | __..--^^^--..__garabik @ kassiopeia.juls.savba.sk | --- Antivirus alert: file .signature infected by signature virus. Hi! I'm a signature virus! Copy me into your signature file to help me spread! -- http://mail.python.org/mailman/listinfo/python-list
Re: Preserving logging streams through a daemon.DaemonContext switch
Ben Finney wrote: Vinay Sajip vinay_sa...@yahoo.co.uk writes: On Apr 8, 1:58 pm, Rebelo puntabl...@gmail.com wrote: Vinay Sajip wrote: My guess is - files_preserve needs to be passed a file handle and not alogginghandler. This is correct. As the ‘DaemonContext.__init__’ docstring says:: | `files_preserve` | :Default: ``None`` | | List of files that should *not* be closed when starting the | daemon. If ``None``, all open file descriptors will be closed. | | Elements of the list are file descriptors (as returned by a file | object's `fileno()` method) or Python `file` objects. Each | specifies a file that is not to be closed during daemon start. do you know where can i find good documnetation for python-daemon? The docstrings and PEP 3143 are currently the best documentation for ‘python-daemon’; both describe the ‘files_preserve’ option as above. http://groups.google.com/group/comp.lang.python/msg/851ce78e53812ade As expressed in the referenced message, I would welcome someone writing better documentation and contributing patches. It may lead you to more information. The thread shows that Sean DiZazzo got logging working with the package. It's important to note (as you did, thanks Vinay) that none of the ‘logging.handlers’ are file descriptors. Nor are they file objects. If we can get a Python ‘file’ object, we can use its ‘fileno()’ method to get the file descriptor. So how do we get the file object for a logging handler? The ‘logging’ module documentation doesn't mention any way to get at the stream object for the handlers. But looking at the source code for ‘StreamHandler’ on my system, ‘/usr/lib/python2.5/logging/__init__.py’, shows a ‘stream’ attribute that is bound to the stream object. It's not marked private (i.e. it's not named with a leading underscore), so one presumes it is part of the public API. I think you just have to pass the file object used by the handler (fh.stream) in the files_preserve array. Not quite. As the docs specify, you need to pass the *file descriptors* for the files you want preserved. For regular Python file objects, the ‘file.fileno()’ method returns the file descriptor: lh = logging.handlers.TimedRotatingFileHandler( LOG_FILENAME, # … ) log_stream_descriptor = lh.stream.fileno() daemon_context.files_preserve = [log_stream_descriptor] thank you both for a detailed explanation. -- http://mail.python.org/mailman/listinfo/python-list
Re: Is there any module/utility like 'rsync' in python
On Thu, 08 Apr 2010 23:22:46 -0700, hiral wrote: Hi, Is there any module/utility like 'rsync' in python. http://code.activestate.com/recipes/577022-rsync-algorithm-in-python/ but you probably aren't going to beat the performance and reliability of your platform's rsync utility. Chances are that your best approach will be to call it using the subprocess module. -- Steven -- http://mail.python.org/mailman/listinfo/python-list
Imports again...
Hello all, once again: http://www.gateway2somewhere.com/sw/sw.zip The above link is to a project. I am new to using multiple files in Python, and I have a lot of tangled imports where many files in the same folder are importing each other. When I tried to follow the manual to make some files into packages, it did not work. Can anyone explain why I am getting an import error in the above project, and/or how I can clean up the file structure and imports to avoid problems like this in the future? Thanks in advance for any help, and I apologize for the broken link the other day. -- Have a great day, Alex (msg sent from GMail website) mehg...@gmail.com; http://www.facebook.com/mehgcap -- http://mail.python.org/mailman/listinfo/python-list
Re: lambda with floats
On Apr 7, 6:15 am, Patrick Maupin pmau...@gmail.com wrote: I should stop making a habit of responding to myself, BUT. This isn't quite an acre in square feet. I just saw the 43xxx and assumed it was, and then realized it couldn't be, because it wasn't divisible by 10. (I used to measure land with my grandfather with a 66 foot long chain, and learned at an early age that an acre was 1 chain by 10 chains, or 66 * 66 * 10 = 43560 sqft.) That's an exact number, and 208 is a poor approximation of its square root. There is no need to remember those numbers for the imperially challenged people: In [1]: import scipy.constants as c In [2]: def acre2sqft(a): ...: return a * c.acre / (c.foot * c.foot) ...: In [3]: acre2sqft(1) Out[3]: 43560.0 Cheers, Bas -- http://mail.python.org/mailman/listinfo/python-list
Re: pass object or use self.object?
Tim Arnold a écrit : On Apr 8, 4:20 am, Bruno Desthuilliers bruno. (snip) There are two points here : the first is that we (that is, at least, you and me) just don't know enough about the OP's project to tell whether something should belong to the document or not. period. The second point is that objects don't live in a splendid isolation, and it's perfectly ok to have code outside an object's method working on the object. wrt/ these two points, your document should encapsulate its own logic note seems a bit dogmatic (and not necessarily right) to me - hence my answer. The 'document' in this case is an lxml Elementtree, so I think it makes sense to have code outside the object. Indeed. It's the only sensible thing to do here. -- http://mail.python.org/mailman/listinfo/python-list
Re: Imports again...
On 08/04/2010 14:16, Alex Hall wrote: The above link is to a project. I am new to using multiple files in Python, and I have a lot of tangled imports where many files in the same folder are importing each other. When I tried to follow the manual to make some files into packages, it did not work. Can anyone explain why I am getting an import error in the above project, and/or how I can clean up the file structure and imports to avoid problems like this in the future? Thanks in advance for any help, and I apologize for the broken link the other day. I don't have the energy at the moment to install all the dependencies to make the thing run, but just glancing at the layout... you appear to have a slightly confused idea of how packages are used. The main arm directory has an __init__.py as does a modes subdirectory and a weather subdirectory of that. But neither of these has any code in them to be imported. And the arm directory appears to be the main application directory so making that into a package doesn't seem to serve any purpose. I'm sure there are better explanations around, but in short: packages are directories with Python modules in them and, specifically, one Python module __init__.py which is typically empty (but needn't be). They can be considered in different ways, but essentially are ways of grouping Python modules according to some idea of cohesion. They don't magically make tangled code untangled but they might offer a certain clarity where you'd otherwise have one big directory full of undifferentiated modules. A typical example of packages would be a system which wanted to output to csv, html and pdf using some standardised API. The various output modules might live inside an outputs subpackage so the main program could do from outputs import csv or whatever. As it happens, this example also shows that the outputs.csv module won't shadow the stdlib csv module -- also purists might argue that it's bad practice to name any module over a stdlib module. Creating a package in your case might help you -- I haven't really looked at your code enough to say for sure -- to break one big module into several more structured modules within a package. TJG -- http://mail.python.org/mailman/listinfo/python-list
Re: SIP
PythoidC ( http://pythoidc.sf.net ) provides some examples and templates for writing and importing C modules (.c or .exe) into Python environment, may be of some help. - Original Message - From: omnia neo neo.omn...@gmail.com To: python-list@python.org Sent: Friday, April 09, 2010 1:51 PM Subject: Re: SIP On Apr 9, 10:42 am, omnia neo neo.omn...@gmail.com wrote: On Apr 9, 10:30 am, Stefan Behnel stefan...@behnel.de wrote: omnia neo, 09.04.2010 07:01: import siptest I get following error : import error : no module named siptest Is the directory where your siptest.dll lies in your PYTHONPATH (sys.path)? Otherwise, Python can't find it. Stefan thanks for reply Stefan.. well I added PYTHONPATH = my dll path in my environment variables (windows XP). well I just tried this too. I added the path using sys.path on the fly in my python script as follows: ### import sys sys.path.append(dll path) print sys.path import siptest ### again same error: ImportError: No module named siptest. -- http://mail.python.org/mailman/listinfo/python-list
Re: The Regex Story
On Fri, 09 Apr 2010 14:48:22 +1000, Lie Ryan wrote: On 04/09/10 12:32, Dotan Cohen wrote: Regexes do have their uses. It's a case of knowing when they are the best approach and when they aren't. Agreed. The problems begin when the when they aren't is not recognised. But problems also arises when people are suggesting overly complex series of built-in functions for what is better handled by regex. What defines overly complex? For some reason, people seem to have the idea that pattern matching of strings must be a single expression, no matter how complicated the pattern they're trying to match. If we have a complicated task to do in almost any other field, we don't hesitate to write a function to do it, or even multiple functions: we break our code up into small, understandable, testable pieces. We recognise that a five-line function may very well be less complex than a one-line expression that does the same thing. But if it's a string pattern matching task, we somehow become resistant to the idea of writing a function and treat one-line expressions as simpler, no matter how convoluted they become. It's as if we decided that every maths problem had to be solved by a single expression, no matter how complex, and invented a painfully terse language unrelated to normal maths syntax for doing so: # Calculate the roots of sin**2(3*x-y): result = me.compile({^g.?+*y:h}|\Y^r(?P:2+)|\w+(xy)|[?#\s]).solve() That's not to say that regexes aren't useful, or that they don't have advantages. They are well-studied from a theoretical basis. You don't have to re-invent the wheel: the re module provides useful pattern matching functionality with quite good performance. One disadvantage is that you have to learn an entire new language, a language which is painfully terse and obfuscated, with virtually no support for debugging. Larry Wall has criticised the Perl regex syntax on a number of grounds: * things which look similar often are very different; * things which are commonly needed are long and verbose, while things which are rarely needed are short; * too much reliance on too few metacharacters; * the default is to treat whitespace around tokens as significant, instead of defaulting to verbose-mode for readability; * overuse of parentheses; * difficulty working with non-ASCII data; * insufficient abstraction; * even though regexes are source code in a regular expression language, they're treated as mere strings, even in Perl; and many others. http://dev.perl.org/perl6/doc/design/apo/A05.html As programming languages go, regular expressions -- even Perl's regular expressions on steroids -- are particularly low-level. It's the assembly language of pattern matching, compared to languages like Prolog, SNOBOL and Icon. These languages use patterns equivalent in power to Backus-Naur Form grammars, or context-free grammars, much more powerful and readable than regular expressions. But in any case, not all text processing problems are pattern-matching problems, and even those that are don't necessarily require the 30lb sledgehammer of regular expressions. I find it interesting to note that there is such a thing as regex culture, as Larry Wall describes it. There seems to be a sort of programmers' machismo about solving problems via regexes, even when they're not the right tool for the job, and in the fewest number of characters possible. I think regexes have a bad reputation because of regex culture, and not just within Python circles either: http://echochamber.me/viewtopic.php?f=11t=57405 For the record, I'm not talking about Because It's There regexes like this this 6343-character monster: http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html or these: http://mail.pm.org/pipermail/athens-pm/2003-January/33.html http://blog.sigfpe.com/2007/02/modular-arithmetic-with-regular.html The fact that these exist at all is amazing and wonderful. And yes, I admire the Obfuscated C and Underhanded C contests too :) -- Steven -- http://mail.python.org/mailman/listinfo/python-list
Re: The Regex Story
* Steven D'Aprano: For some reason, people seem to have the idea that pattern matching of strings must be a single expression, no matter how complicated the pattern they're trying to match. If we have a complicated task to do in almost any other field, we don't hesitate to write a function to do it, or even multiple functions: we break our code up into small, understandable, testable pieces. We recognise that a five-line function may very well be less complex than a one-line expression that does the same thing. But if it's a string pattern matching task, we somehow become resistant to the idea of writing a function and treat one-line expressions as simpler, no matter how convoluted they become. It's as if we decided that every maths problem had to be solved by a single expression, no matter how complex, and invented a painfully terse language unrelated to normal maths syntax for doing so: # Calculate the roots of sin**2(3*x-y): result = me.compile({^g.?+*y:h}|\Y^r(?P:2+)|\w+(xy)|[?#\s]).solve() http://www.youtube.com/watch?v=a9xAKttWgP4 Cheers, - Alf -- http://mail.python.org/mailman/listinfo/python-list
Re: python as pen and paper substitute
Manuel Graune manuel.gra...@koeln.de writes: Giacomo Boffi giacomo.bo...@polimi.it writes: Manuel Graune manuel.gra...@koeln.de writes: Hello everyone, I am looking for ways to use a python file as a substitute for simple pen and paper calculations. search(embedded calc mode) if manuel in emacs_fellows_set or sys.exit(1) Well, the subject does say python and so i answered in python... seriously, embedded calc mode is not mathematica's notebooks but is usable for doing live maths in a text buffer I'm a vim-user anyways. sorry... otoh, vim is scriptable in python. i know less than nothing on this subject but i'd be surprised if something akin to your request were not available *duckandrun* tanto ti ripiglio g -- non ho capito un apascio -- pp, tra se e se -- http://mail.python.org/mailman/listinfo/python-list
Re: The Regex Story
Steven D'Aprano st...@remove-this-cybersource.com.au writes: One disadvantage is that you have to learn an entire new language, a language which is painfully terse and obfuscated, with virtually no support for debugging. Larry Wall has criticised the Perl regex syntax on a number of grounds: ... There is a parser combinator library for Python called Pyparsing but it is apparently dog slow. Maybe someone can do a faster one sometime. See: http://pyparsing.wikispaces.com/ for info. I haven't used it, but it is apparently similar in style to Parsec (a Haskell library): http://research.microsoft.com/users/daan/download/papers/parsec-paper.pdf I use Parsec sometimes, and it's much nicer than complicated regexps. There is a version called Attoparsec now that is slightly less powerful but very fast. -- http://mail.python.org/mailman/listinfo/python-list
Re: The Regex Story
On 04/09/10 18:59, Steven D'Aprano wrote: On Fri, 09 Apr 2010 14:48:22 +1000, Lie Ryan wrote: On 04/09/10 12:32, Dotan Cohen wrote: Regexes do have their uses. It's a case of knowing when they are the best approach and when they aren't. Agreed. The problems begin when the when they aren't is not recognised. But problems also arises when people are suggesting overly complex series of built-in functions for what is better handled by regex. What defines overly complex? These discussions about readability and suitability of regex are orthogonal issue with the sub-topic I started. We are all fully aware of the limitations of each approaches. What I am complaining is the recent development of people just saying no to regex when the problem is in fact in regex's very sweetspot. We have all seen people abusing regex; but nowadays I'm starting to see people abusing built-ins as well. We don't like when regex gets convoluted, but that doesn't mean built-in fare much better either. -- http://mail.python.org/mailman/listinfo/python-list
[Python-list] The distutils.sysconfig.set_python_config() function
I've been reading the python document Distributing python modules, and found this function document in sysconfig module: This function is even more special-purpose, and should only be used from Python’s own build procedures. distutils.sysconfig.set_python_build()#distutils.sysconfig.set_python_buildInform the distutils.sysconfig module that it is being used as part of the build process for Python. This changes a lot of relative locations for files, allowing them to be located in the build area rather than in an installed Python. Where is this function? I cannot find it in distutils/sysconfig.py. Thanks. -- Ray Allen Best wishes! -- http://mail.python.org/mailman/listinfo/python-list
Re: The Regex Story
Tim Chase, 08.04.2010 16:23: Lie Ryan wrote: Why am I seeing a lot of this pattern lately: OP: Got problem with string +- A: Suggested a regex-based solution +- B: Quoted Some people ... regex ... two problems. or OP: Writes some regex, found problem +- A: Quoted Some people ... regex ... two problems. +- B: Supplied regex-based solution, clean one +- A: Suggested PyParsing (or similar) There are some problem-classes for which regexps are the *right* solution, and I don't see as much of your example dialog in those cases. Obviously. People rarely complain about problems that are easy to solve with the solution at hand. Stefan -- http://mail.python.org/mailman/listinfo/python-list
Re: The Regex Story
Steven D'Aprano, 09.04.2010 10:59: It's as if we decided that every maths problem had to be solved by a single expression, no matter how complex, and invented a painfully terse language unrelated to normal maths syntax for doing so: # Calculate the roots of sin**2(3*x-y): result = me.compile({^g.?+*y:h}|\Y^r(?P:2+)|\w+(xy)|[?#\s]).solve() Actually, I would expect that the result of any mathematical calculation can be found by applying a suitable regular expression to pi. Stefan -- http://mail.python.org/mailman/listinfo/python-list
Re: How to open and read an unknown extension file
Hey thanks a lot to all of youNow i understood the concept and can use it the right way I have another doubt regarding using radio buttons I am using two radio buttons for user to select either of the two options: Landscape Portrait When i run the program it shows both radio buttons are active I don't know how to toggle between the two radio buttons. Also I want to display the respective image with them Landscape and portrait at the top of each optionCan anyone help me with this? On Fri, Apr 9, 2010 at 6:05 AM, Tim Chase python.l...@tim.thechases.comwrote: On 04/08/2010 12:22 PM, varnikat t wrote: it gives me this error TypeError: coercing to Unicode: need string or buffer, list found Thanks for the help.it detects now using glob.glob(*.*.txt) Can u suggest how to open and read file this way? *if glob.glob(*.*.txt): file=open(glob.glob(*.*.txt)) self.text_view.get_buffer().set_text(file.read()) else: file=open(glob.glob(*.*.html)) self.text_view.get_buffer().set_text(file.read()) glob() returns a list of matching files, not a string. So you need to iterate over those files: filenames = glob.glob('*.*.txt') if filenames: for filename in filenames: do_something_text(filename) else: for filename in glob('*.*.html'): do_something_html(filename) -tkc -- Varnika Tewari -- http://mail.python.org/mailman/listinfo/python-list
Re: How to open and read an unknown extension file
And I am using python and GLADE for GUI On Fri, Apr 9, 2010 at 6:30 PM, varnikat t varnika...@gmail.com wrote: Hey thanks a lot to all of youNow i understood the concept and can use it the right way I have another doubt regarding using radio buttons I am using two radio buttons for user to select either of the two options: Landscape Portrait When i run the program it shows both radio buttons are active I don't know how to toggle between the two radio buttons. Also I want to display the respective image with them Landscape and portrait at the top of each optionCan anyone help me with this? On Fri, Apr 9, 2010 at 6:05 AM, Tim Chase python.l...@tim.thechases.comwrote: On 04/08/2010 12:22 PM, varnikat t wrote: it gives me this error TypeError: coercing to Unicode: need string or buffer, list found Thanks for the help.it detects now using glob.glob(*.*.txt) Can u suggest how to open and read file this way? *if glob.glob(*.*.txt): file=open(glob.glob(*.*.txt)) self.text_view.get_buffer().set_text(file.read()) else: file=open(glob.glob(*.*.html)) self.text_view.get_buffer().set_text(file.read()) glob() returns a list of matching files, not a string. So you need to iterate over those files: filenames = glob.glob('*.*.txt') if filenames: for filename in filenames: do_something_text(filename) else: for filename in glob('*.*.html'): do_something_html(filename) -tkc -- Varnika Tewari -- Varnika Tewari -- http://mail.python.org/mailman/listinfo/python-list
Re: Pythonic list reordering
On Apr 9, 1:58 am, Chris Rebert c...@rebertia.com wrote: On Thu, Apr 8, 2010 at 4:01 PM, Joaquin Abian gatoyga...@gmail.com wrote: On Apr 9, 12:52 am, Ben Racine i3enha...@gmail.com wrote: I have a list... ['dir_0_error.dat', 'dir_120_error.dat', 'dir_30_error.dat', 'dir_330_error.dat'] I want to sort it based upon the numerical value only. Does someone have an elegant solution to this? not sure about elegance, but my two cents: mylist = ['dir_0_error.dat', 'dir_120_error.dat', 'dir_30_error.dat', 'dir_330_error.dat'] mylist = [(int(item.split('_')[1]), item) for item in mylist] mylist.sort() mylist = [item for idx, item in mylist] mylist ['dir_0_error.dat', 'dir_30_error.dat', 'dir_120_error.dat', 'dir_330_error.dat'] At least conceptually, that's how list.sort() with a key= argument works internally (i.e. via Schwartzian transform). Cheers, Chris --http://blog.rebertia.com Chris, thanks for the comment. I did not know that name (Schwartzian transform) I knew it as the decorate-sort-undecorate strategy. Now after learning that it was a Perl idiom I feel somewhat embarrassed ;-) BTW, I actually prefer the l.sort(key=f) method. Just my lazy neurons were back to Python 2.3 when I wrote the response. Joaquin -- http://mail.python.org/mailman/listinfo/python-list
Re: Preserving logging streams through a daemon.DaemonContext switch (was: daemon.DaemonContext)
On Apr 9, 12:46 am, Ben Finney ben+pyt...@benfinney.id.au wrote: I think you just have to pass the file object used by the handler (fh.stream) in the files_preserve array. Not quite. As the docs specify, you need to pass the *file descriptors* for the files you want preserved. Okay, but the docstring you quoted: Elements of the list are file descriptors (as returned by a file object's `fileno()` method) or Python `file` objects. implies that fh.stream would work as well as fh.stream.fileno(), and I presume you internally do a hasattr(thingy, 'fileno') to get the descriptor. Regards, Vinay Sajip -- http://mail.python.org/mailman/listinfo/python-list
Re: Imports again...
Hi, please post your traceback. I guess you have a recursive import. This can lead to strange exceptions (for example AttributeError) Thomas Alex Hall wrote: Hello all, once again: http://www.gateway2somewhere.com/sw/sw.zip The above link is to a project. I am new to using multiple files in Python, and I have a lot of tangled imports where many files in the same folder are importing each other. When I tried to follow the manual to make some files into packages, it did not work. Can anyone explain why I am getting an import error in the above project, and/or how I can clean up the file structure and imports to avoid problems like this in the future? Thanks in advance for any help, and I apologize for the broken link the other day. -- Thomas Guettler, http://www.thomas-guettler.de/ E-Mail: guettli (*) thomas-guettler + de -- http://mail.python.org/mailman/listinfo/python-list
Excellent SAS Developer avaliable immediately for your client requriments
Dear Partners I have Keerthi, SAS Developer available immediately for your client requirements. Has worked for AccessPharmaceuticalsInc, ICON Clinical Research, Amarillo Biosciences. She is in NC right now and is willing to relocate in NC. Please let me know if you have any direct client positions for him. Location: NC Relocation: NC Availability: ASAP Please do send the requirements to hari...@lightningminds.com and reach me at 703-349-5933 Please add my ID in your list and send your direct client requirements SUMMARY: ·Over 8 years of strong experience in SAS and SAS tools emphasizing on analysis, developing, design, testing and implementation of various projects for Pharmaceutical Industries. ·Experience in requirement gathering, analysis, planning, designing, coding and unit testing in Windows and Mainframe environments. ·Extensive experience in Phase I, II, and III clinical data analysis: analyzing clinical data, creating tables, listing and generating reports and graphs. ·Experience in using SAS to read, write, import and export to another data file formats, including delimited files, Microsoft Excel, PDF and access tables. ·Experience with SAS Programming and familiar with all phases of Clinical trials. ·Experience with clinical trial such as demographics data, adverse event (AE), laboratory data (lab data) and vitals signs. ·Experience in analyzing medical claims data and interfacing SAS with MS Office applications such as Access/Excel. ·Experience in SAS/BASE, SAS/STAT, SAS/GRAPH, SAS/MACRO, and SAS/ SQL. ·Proficient in the following reporting, statistical procedures: REPORT, TABULATE, FREQ, MEANS, UNIVARIATE, TRANSPOSE, COMPARE, EXPORT, COPY, CONTENTS. ·Experienced in producing HTML, RTF and PDF formatted files using SAS/ODS. ·Knowledge of statistical procedures: PROC MIXED PROC MEANS, PROC UNIVARIATE, PROC ANOVA. ·Experience in data accessing from relational databases, data analysis and Predictive modeling. ·Thorough knowledge in preparing Clinical Study Reports by conducting, documenting and reporting computer validation inspections in compliance with 21CFR Part 11, FDA regulatory guidelines. ·Proven ability to quick learn and apply new technologies. Exceptionally well organized, strong work ethics and willingness to work hard to achieve employer objectives. Clear and concise communication and presentation skills. ·Effective team player with an aptitude to learn and ability to prioritize, organize and accomplish multiple tasks, both as part of a team and independently Professional Certification: SAS Certified Base Programmer for SAS9 TECHNICAL SKILLS: SAS Skills: SAS/BASE, SAS/GRAPH, SAS/MACRO, SAS/SQL, SAS/ STAT, SAS/ACCESS, SAS/ODS. Operating Systems: Windows 9x/2000, XP, NT, Windows Vista, UNIX Database: Oracle, MS SQL Server, MS-Access, SQL. Others: MS Office, MS Project, Power Point, Excel, SPSS Thanks and Regards Haritha LIGHTNING MINDS Phone : 703-349-5933 Email: hari...@lightningminds.com Web: www.lightningminds.com -- http://mail.python.org/mailman/listinfo/python-list
Re: Imports again...
On 8 abr, 10:16, Alex Hall mehg...@gmail.com wrote: Hello all, once again:http://www.gateway2somewhere.com/sw/sw.zip The above link is to a project. I am new to using multiple files in Python, and I have a lot of tangled imports where many files in the same folder are importing each other. When I tried to follow the manual to make some files into packages, it did not work. Can anyone explain why I am getting an import error in the above project, and/or how I can clean up the file structure and imports to avoid problems like this in the future? Thanks in advance for any help, and I apologize for the broken link the other day. In addition to what Tim Golden has said (which appears to be based on another version of this project - I don't see the file structure he describes), I noticed that weather.py spawns a new thread when imported; don't do that: http://docs.python.org/library/threading.html#importing-in-threaded-code Also, you have some .pyw files with corresponding .pyc file. That's *very* strange. .pyw files are *not* modules, and Python won't import them. Don't use the .pyw extension except for your main application script (in cases when you don't want a console window to appear). Having foo.pyc and foo.pyw in the same directory, Python will always load the .pyc file, ignoring any changes in the .pyw source. -- Gabriel Genellina -- http://mail.python.org/mailman/listinfo/python-list
Re: Imports again...
On 09/04/2010 15:19, Gabriel Genellina wrote: In addition to what Tim Golden has said (which appears to be based on another version of this project Just downloaded again, and there's definitely an empty package structure of the kind I described. (Altho' I certainly did have a few other versions lying around from previous questions by the OP). Also, you have some .pyw files with corresponding .pyc file. That's *very* strange. .pyw files are *not* modules, and Python won't import them. Ahem. dump Python 2.6.4rc2 (r264rc2:75501, Oct 18 2009, 22:41:58) [MSC v.1500 32 bit (I Type help, copyright, credits or license for more information. open (xxx.pyw, w).write (print ('hello')) import xxx hello /dump TJG -- http://mail.python.org/mailman/listinfo/python-list
Re: SIP
omnia neo neo.omnia7 at gmail.com writes: On Apr 9, 10:42 am, omnia neo neo.omn...@gmail.com wrote: On Apr 9, 10:30 am, Stefan Behnel stefan...@behnel.de wrote: omnia neo, 09.04.2010 07:01: import siptest I get following error : import error : no module named siptest Is the directory where your siptest.dll lies in your PYTHONPATH (sys.path)? well I added PYTHONPATH = my dll path in my environment variables (windows XP). well I just tried this too. I added the path using sys.path on the fly in my python script as follows: ### import sys sys.path.append(dll path) print sys.path import siptest ### again same error: ImportError: No module named siptest. Make sure the extension module must is called siptest.pyd, not siptest.dll http://docs.python.org/extending/windows.html (I'd expect SIP to take care of this) -- Gabriel Genellina -- http://mail.python.org/mailman/listinfo/python-list
Re: The Regex Story
On 04/09/2010 06:18 AM, Stefan Behnel wrote: Tim Chase, 08.04.2010 16:23: Lie Ryan wrote: OP: Got problem with string +- A: Suggested a regex-based solution +- B: Quoted Some people ... regex ... two problems. or OP: Writes some regex, found problem +- A: Quoted Some people ... regex ... two problems. +- B: Supplied regex-based solution, clean one +- A: Suggested PyParsing (or similar) There are some problem-classes for which regexps are the *right* solution, and I don't see as much of your example dialog in those cases. Obviously. People rarely complain about problems that are easy to solve with the solution at hand. Well, you still see the Got a problem with a string and the having a problem with this regex questions, but you don't see the remainder of the now you have two problems dialog. Granted, some folks give that as a knee-jerk reaction so we just learn to ignore their input because sometimes a regexp is exactly the right solution ;-) -tkc -- http://mail.python.org/mailman/listinfo/python-list
Python Line Intersection
Hello This is partly Python related, although it might end up being more math related. I am using PyGTK (GUI builder for Python) and I need to find the intersection point for two lines. It is easy to do, even if you only have the four points describing line segments (http://www.maths.abdn.ac.uk/~igc/tch/eg1006/notes/node23.html). However, it requires that you solve for two equations. How can I do this in Python, either solve equations, or calculating intersection points some other way? Cheers Peyman Askari __ Connect with friends from any web browser - no download required. Try the new Yahoo! Canada Messenger for the Web BETA at http://ca.messenger.yahoo.com/webmessengerpromo.php-- http://mail.python.org/mailman/listinfo/python-list
Tough sorting problem: or, I'm confusing myself
Hi all, I'm trying to find a good way of doing the following: Each n-tuple in combinations( range( 2 ** m ), n ) has a corresponding value n-tuple (call them scores for clarity later). I'm currently storing them in a dictionary, by doing: res={} for i in itertools.combinations( range( 2**m ) , n): res[ i ] = getValues( i )# getValues() is computationally expensive For each (n-1)-tuple, I need to find the two numbers that have the highest scores versus them. I know this isn't crystal clear, but hopefully an example will help: with m=n=3: Looking at only the (1, 3) case, assuming: getValues( (1, 2, 3) ) == ( -200, 125, 75 )# this contains the highest other score, where 2 scores 125 getValues( (1, 3, 4) ) == ( 50, -50, 0 ) getValues( (1, 3, 5) ) == ( 25, 300, -325 ) getValues( (1, 3, 6) ) == ( -100, 0, 100 )# this contains the second-highest, where 6 scores 100 getValues( (1, 3, 7) ) == ( 80, -90, 10 ) getValues( (1, 3, 8) ) == ( 10, -5, -5 ) I'd like to return ( (2, 125), (6, 100) ). The most obvious (to me) way to do this would be not to generate the res dictionary at the beginning, but just to go through each combinations( range( 2**m), n-1) and try every possibility... this will test each combination n times, however, and generating those values is expensive. [e.g. (1,2,3)'s scores will be generated when finding the best possibilities for (1,2), (1,3) and (2,3)] What I'm doing now is ugly, and i think is where i'm confusing myself: best2={} for i in itertools.combinations( range( 2**m), n-1): scorelist=[] for j in range( 2**m ): if j not in i: k=list(i) k.append(j) k=tuple(sorted(k))#gets the key for looking up the scores in res scorelist.append((j,res[k][k.index(j)])) best2[i]=sorted(scorelist,key=lambda x: -x[1])[:2] Am I missing an obviously better way? Many thanks! David -- http://mail.python.org/mailman/listinfo/python-list
Re: Replacing Periods with Backspaces
In article 8404fac9-06c7-4555-93af-c78f5e01d...@j21g2000yqh.googlegroups.com, Booter colo.av...@gmail.com wrote: I am trying to replace a series of periods in a sting with backspaces that way I can easily parse information from a Windows command. the current statement I have for this is capture = re.sub('\.*', '\b', capture) What's wrong with capture = capture.replace('.', '\b') That will be much faster. -- Aahz (a...@pythoncraft.com) * http://www.pythoncraft.com/ ...string iteration isn't about treating strings as sequences of strings, it's about treating strings as sequences of characters. The fact that characters are also strings is the reason we have problems, but characters are strings for other good reasons. --Aahz -- http://mail.python.org/mailman/listinfo/python-list
Re: Python Line Intersection
On 4/9/2010 8:04 AM Peyman Askari said... Hello This is partly Python related, although it might end up being more math related. I am using PyGTK (GUI builder for Python) and I need to find the intersection point for two lines. It is easy to do, even if you only have the four points describing line segments (http://www.maths.abdn.ac.uk/~igc/tch/eg1006/notes/node23.html). However, it requires that you solve for two equations. How can I do this in Python, either solve equations, or calculating intersection points some other way? I needed this a couple years back and used parts of pycad without much difficulty. Emile -- http://mail.python.org/mailman/listinfo/python-list
Re: Python Line Intersection
Peyman Askari wrote: Hello This is partly Python related, although it might end up being more math related. I am using PyGTK (GUI builder for Python) and I need to find the intersection point for two lines. It is easy to do, even if you only have the four points describing line segments (http://www.maths.abdn.ac.uk/~igc/tch/eg1006/notes/node23.html). However, it requires that you solve for two equations. How can I do this in Python, either solve equations, or calculating intersection points some other way? Cheers Peyman Askari It is purely a math question, having nothing to do with Python. But I'll answer it anyway: Your problem is equivalent to solving a system of two equations in two unknowns. If you can put those equations in the following form a*x + b*y = c d*x + e*y = f then the solution is x = (c*e - b*f) / (a*e - b*d) y = (a*f - c*d) / (a*e - b*d) If the denominator is zero then the lines are parallel, and there is no (unique) solution. (There are other was of solving the system, but they will all amount to the same arithmetic, and will, of course, produce the same result.) Gary Herron -- http://mail.python.org/mailman/listinfo/python-list
Re: Python Line Intersection
On Fri, Apr 9, 2010 at 8:04 AM, Peyman Askari peter_peyman_...@yahoo.ca wrote: Hello This is partly Python related, although it might end up being more math related. I am using PyGTK (GUI builder for Python) and I need to find the intersection point for two lines. It is easy to do, even if you only have the four points describing line segments (http://www.maths.abdn.ac.uk/~igc/tch/eg1006/notes/node23.html). However, it requires that you solve for two equations. How can I do this in Python, either solve equations, or calculating intersection points some other way? Just solve the equations ahead of time by using generic ones. Given: y = mx + b y = nx + c We set them equal and solve for x: mx + b = nx + c mx - nx = c - b (m-n)x = c - b x = (c - b) / (m-n) So we now have a formula for x. y can then be calculated using the numerical value of x and one of the original formulas for y. If your equations are not in slope-intercept form, the same approach works, just use different, appropriate initial equations. Alternately, you could use a linear algebra library to solve the system of equations; NumPy sounds like it has at least part of one. But this is probably overkill for such a simple problem. Cheers, Chris -- Zero is my hero! Squi FTW. http://blog.rebertia.com -- http://mail.python.org/mailman/listinfo/python-list
Re: Generating a rainbow?
You should use different variables for the two loops. Actually it is closing the divs that makes it work in FireFox: Hah. I new that the rainbow wasn't complete and that it didn't work in Opera. I just fizzled on the closing of the divs. I also don't get why it worked at all when I was stomping on my x variable in the inside loop. It's better now. http://tobiah.org/rainbow.html -- http://mail.python.org/mailman/listinfo/python-list
Re: Imports again...
Okay, what you all say makes sense, and I am going to try the package thing again. The modes dir is from my last attempt, as is its weather subdir. I think I see what I did wrong, at least I hope I do. I will also remove the init file from the main dir. Yes, arm is the main directory of the program. Also, I will try to update things so that most imports happen from the dependencies folder, avoiding the need to install/copy so much to your local install of Python. Here is a traceback of the program as it is right now; this is from the exact same version as the .zip file contains. Microsoft Windows [Version 6.1.7600] Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:\Users\Alexcd c:\python26 c:\Python26python.exe i:\arm\main.pyw Traceback (most recent call last): File i:\arm\main.pyw, line 3, in module import arm, network, weather, dict File i:\arm\arm.py, line 4, in module import config File i:\arm\config.py, line 4, in module from main import exitProgram File i:\arm\main.pyw, line 3, in module import arm, network, weather, dict File i:\arm\network.py, line 4, in module arm.ready() AttributeError: 'module' object has no attribute 'ready' c:\Python26 I realize it may be odd to import from main.pyw, but I do not think that could be causing the problem... could it? Perhaps I should erase all the .pyc files and let it compile again, or would that not do anything? On 4/9/10, Tim Golden m...@timgolden.me.uk wrote: On 09/04/2010 15:19, Gabriel Genellina wrote: In addition to what Tim Golden has said (which appears to be based on another version of this project Just downloaded again, and there's definitely an empty package structure of the kind I described. (Altho' I certainly did have a few other versions lying around from previous questions by the OP). Also, you have some .pyw files with corresponding .pyc file. That's *very* strange. .pyw files are *not* modules, and Python won't import them. Ahem. dump Python 2.6.4rc2 (r264rc2:75501, Oct 18 2009, 22:41:58) [MSC v.1500 32 bit (I Type help, copyright, credits or license for more information. open (xxx.pyw, w).write (print ('hello')) import xxx hello /dump TJG -- http://mail.python.org/mailman/listinfo/python-list -- Have a great day, Alex (msg sent from GMail website) mehg...@gmail.com; http://www.facebook.com/mehgcap -- http://mail.python.org/mailman/listinfo/python-list
Re: Pythonic list reordering
How about a one liner? L.sort(key=lambda s: int(s.split('_')[1])) (Which is not necessarily elegant, but it is short.) I grant it a measure of elegance as well. -- http://mail.python.org/mailman/listinfo/python-list
Re: Imports again...
Tim Golden wrote: On 09/04/2010 15:19, Gabriel Genellina wrote: In addition to what Tim Golden has said (which appears to be based on another version of this project Just downloaded again, and there's definitely an empty package structure of the kind I described. (Altho' I certainly did have a few other versions lying around from previous questions by the OP). Also, you have some .pyw files with corresponding .pyc file. That's *very* strange. .pyw files are *not* modules, and Python won't import them. Ahem. dump Python 2.6.4rc2 (r264rc2:75501, Oct 18 2009, 22:41:58) [MSC v.1500 32 bit (I Type help, copyright, credits or license for more information. open (xxx.pyw, w).write (print ('hello')) import xxx hello /dump TJG Good point. Just to be clear, if there are *both* .py .pyw... dump Python 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)] on win32 Type help, copyright, credits or license for more information. -- open (xxx.pyw, w).write (print ('hello')) -- open (xxx.py, w).write (print ('good-bye')) -- import xxx good-bye /dump ~Ethan~ -- http://mail.python.org/mailman/listinfo/python-list
Python question
How much space approximately is required to install the following packs on Windows XP? pycairo-1.4.12-2.win32-py2.6.exe python-2.6.1.msi pygobject-2.14.2-2.win32-py2.6.exe pygtk-2.12.1-3.win32-py2.6.exe pywin32-213.win32-py2.6.exe gtk-2.12.9-win32-2.exe Does all this packs requires installation, or it's possible just extract and place them in to C: drive, then to set environment variables properly? Does this packs installs dynamic libraries and writes to registry? -- http://mail.python.org/mailman/listinfo/python-list
Re: How to call application in the background with subprocess.call
Kushal Kumaran kushal.kumaran+pyt...@gmail.com writes: On Thu, Apr 8, 2010 at 7:39 PM, jorma kala jjk...@gmail.com wrote: Hi, I'd like to call an external application (firefox) from a python program (a PyQT GUI), but I want the external application to run in the background, I mean I do not want my python calling program to wait till the external subprocess terminates. I've tried this: call([firefox, http://www.python.org;]) but my PyQT interface freezes until I terminate Firefox. Is there any parameter I need to use with call so that the python calling program doesn't wait for the termination of the subprocess? Use subprocess.Popen instead of directly using subprocess.call. Or (maybe) better, use the webbrowser module. http://docs.python.org/release/2.5.2/lib/module-webbrowser.html -- John Bokma j3b Hacking Hiking in Mexico - http://johnbokma.com/ http://castleamber.com/ - Perl Python Development -- http://mail.python.org/mailman/listinfo/python-list
Re: Python Line Intersection
On Apr 9, 8:36 am, Emile van Sebille em...@fenx.com wrote: On 4/9/2010 8:04 AM Peyman Askari said... Hello This is partly Python related, although it might end up being more math related. I am using PyGTK (GUI builder for Python) and I need to find the intersection point for two lines. It is easy to do, even if you only have the four points describing line segments (http://www.maths.abdn.ac.uk/~igc/tch/eg1006/notes/node23.html). However, it requires that you solve for two equations. How can I do this in Python, either solve equations, or calculating intersection points some other way? I needed this a couple years back and used parts of pycad without much difficulty. Emile You can also do this by creating a Python representation of a line. I did it by creating a vector class (using named tuple) and a line class that stored a point and a direction vector. From there, you can find the intersection of two lines (or a line with a circle, triangle, etc. through some mathematical jiggery pokery using dot products. If anyone want to see it I can post the code when I get home -- http://mail.python.org/mailman/listinfo/python-list
Excellent Oracle Apps Technical Consutant avaliable immediately for your client requriments
Dear Partners I have Raja Rao, Oracle Apps Technical consultant available immediately for your client requirements. Has worked for Tekelec, Hitachi Data Systems etc. He is in NC right now and is willing to relocate. Pl. let me know if you have any direct client positions for him. Location: NC Relocation: Open Availability: ASAP Please do send the requirements to a...@lightningminds.com and reach me at 732-470-8387 Please add my ID in your list and send your direct client requirements Summary: Over sixteen years in IT industry in design, development, testing and implementation of business applications. Over ten years of experience in Oracle E-Business Financials/Supply Chain/Manufacturing modules. Developed custom forms to suit client requirements. Developed custom oracle reports in various modules of Oracle e- Business Suite. Developed custom workflows to meet user requirements. Customized Oracle seeded forms, reports and workflows based on user requirements. · Oracle RDBMS , PL/ SQL, SQL Plus · Oracle Forms 6i/4.5/3.0, Reports 6i/2.5 · Oracle Financials/Supply Chain/Manufacturing modules ( Technical ) · Oracle Workflow Builder Education: · MS from Indian Institute of Technology, Madras · BS from JNTU, Hyderabad · Certificate in Oracle Financials/Supply Chain/Manufacturing modules from Oracle Corporation, Madras Technical Skills: Software Tools: Oracle Financials/Supply Chain/Manufacturing 10.7 , 11i and Release 12 (Accounts Receivables, Accounts Payables, General Ledger, Order Management, Work in Process, Inventory, Bills of Material, Engineering, Purchasing, AOL, MRP, iExpense, iProcurement, System Administration, Quoting, Trading Community Architecture), Oracle Forms 6i/4.5/3.0 , Reports 6i/ 2.5, Oracle Workflow Builder, SQL navigator. Databases: Oracle 9i/10g, MS Access, DBASE IV Languages:SQL Plus, PL/SQL, Basic, Fortran IV, DBASE IV Operating System: Unix , Solaris 2.6, Windows 95/98/2000, NT 4.0, DOS 6.0 Hardware: Sun Sparc, VAX –11/785, Intel based Pentium I II, IBM compatible 386/486 Thanks and Regards Haritha LIGHTNING MINDS Phone : 703-349-5933 Email : hari...@lightningminds.com Web: www.lightningminds.com -- http://mail.python.org/mailman/listinfo/python-list
Re: Performance of list vs. set equality operations
En Thu, 08 Apr 2010 21:02:23 -0300, Patrick Maupin pmau...@gmail.com escribió: On Apr 8, 6:35 pm, Gabriel Genellina gagsl-...@yahoo.com.ar wrote: The CPython source contains lots of shortcuts like that. Perhaps the checks should be stricter in some cases, but I imagine it's not so easy to fix: lots of code was written in the pre-2.2 era, assuming that internal types were not subclassable. I don't know if it's a good fix anyway. If you subclass an internal type, you can certainly supply your own rich comparison methods, which would (IMO) put the CPU computation burden where it belongs if you decide to do something goofy like subclass a list and then override __len__. We're all consenting adults, that's the Python philosophy, isn't it? If I decide to make stupid things, it's my fault. I don't see why Python should have to prevent that. -- Gabriel Genellina -- http://mail.python.org/mailman/listinfo/python-list
Re: Imports again...
En Fri, 09 Apr 2010 11:29:50 -0300, Tim Golden m...@timgolden.me.uk escribió: On 09/04/2010 15:19, Gabriel Genellina wrote: In addition to what Tim Golden has said (which appears to be based on another version of this project Just downloaded again, and there's definitely an empty package structure of the kind I described. (Altho' I certainly did have a few other versions lying around from previous questions by the OP). Indeed! (Where did I look...?) Also, you have some .pyw files with corresponding .pyc file. That's *very* strange. .pyw files are *not* modules, and Python won't import them. open (xxx.pyw, w).write (print ('hello')) import xxx hello Oops! Last time I checked, it didn't work... but it was a very long time ago, I presume. pyw files are importable since Python 2.2! Thanks for the correction. -- Gabriel Genellina -- http://mail.python.org/mailman/listinfo/python-list
Re: Striving for PEP-8 compliance
Lawrence D'Oliveiro wrote: In message mailman.1610.1270655932.23598.python-l...@python.org, Gabriel Genellina wrote: If you only reindent the code (without adding/removing lines) then you can compare the compiled .pyc files (excluding the first 8 bytes that contain a magic number and the source file timestamp). Remember that code objects contain line number information. Anybody who ever creates another indentation-controlled language should be beaten to death with a Guido van Rossum voodoo doll. No, the dumb thing was shipping a Python implementation which accepted both tabs and spaces for indentation in the same file. Tabs vs. spaces is a religious issue, but mixing the two is unquestionably bad. Python 3.x, finally, detects inconsistent tab/space indentation. But that should have been in Python 0.001, so that no inconsistent code ever escaped into the wild. Check to see if your code will go through Python 3.x without indentation complaints. If it won't, you need to fix it before re-indenting. John Nagle -- http://mail.python.org/mailman/listinfo/python-list
Re: Python Line Intersection
Chris Rebert wrote: On Fri, Apr 9, 2010 at 8:04 AM, Peyman Askari peter_peyman_...@yahoo.ca wrote: Hello This is partly Python related, although it might end up being more math related. I am using PyGTK (GUI builder for Python) and I need to find the intersection point for two lines. It is easy to do, even if you only have the four points describing line segments (http://www.maths.abdn.ac.uk/~igc/tch/eg1006/notes/node23.html). However, it requires that you solve for two equations. How can I do this in Python, either solve equations, or calculating intersection points some other way? Just solve the equations ahead of time by using generic ones. Given: y = mx + b y = nx + c We set them equal and solve for x: mx + b = nx + c mx - nx = c - b (m-n)x = c - b x = (c - b) / (m-n) Actually, you don't want to do it that way, because it fails for vertical lines, when m and n go to infinity. See Wikipedia for the usual solution, given points on both lines: http://en.wikipedia.org/wiki/Line-line_intersection This is done all the time in computer graphics work. John Nagle -- http://mail.python.org/mailman/listinfo/python-list
Re: lambda with floats
On 4/9/2010 3:43 AM, Bas wrote: On Apr 7, 6:15 am, Patrick Maupinpmau...@gmail.com wrote: I should stop making a habit of responding to myself, BUT. This isn't quite an acre in square feet. I just saw the 43xxx and assumed it was, and then realized it couldn't be, because it wasn't divisible by 10. (I used to measure land with my grandfather with a 66 foot long chain, and learned at an early age that an acre was 1 chain by 10 chains, or 66 * 66 * 10 = 43560 sqft.) That's an exact number, and 208 is a poor approximation of its square root. There is no need to remember those numbers for the imperially challenged people: In [1]: import scipy.constants as c scipy.constants ?? doesn't work for me. In [2]: def acre2sqft(a): ...: return a * c.acre / (c.foot * c.foot) ...: In [3]: acre2sqft(1) Out[3]: 43560.0 Cheers, Bas -- http://mail.python.org/mailman/listinfo/python-list
Re: Imports again...
En Fri, 09 Apr 2010 13:10:44 -0300, Alex Hall mehg...@gmail.com escribió: c:\Python26python.exe i:\arm\main.pyw Traceback (most recent call last): File i:\arm\main.pyw, line 3, in module import arm, network, weather, dict File i:\arm\arm.py, line 4, in module import config File i:\arm\config.py, line 4, in module from main import exitProgram File i:\arm\main.pyw, line 3, in module import arm, network, weather, dict File i:\arm\network.py, line 4, in module arm.ready() AttributeError: 'module' object has no attribute 'ready' I realize it may be odd to import from main.pyw, but I do not think that could be causing the problem... could it? Yes, it *is* a problem. Note the traceback sequence: main imports arm, arm imports config, config imports arm *again* (which is only partially initialized), arm imports network, and network tries to use arm.ready and fails. Try to organize your modules hierarchically, so modules higher in the hierarchy may import (and use) other modules lower in the hierarchy, but not the other way around. Doing it that way helps also to make clear the intent of each module (and class). The 'main' script should be at the top of the hierarchy: 'main' may import anything, but no one may import 'main'. Put your high-level modules below it; they may use other low-level ones. -- Gabriel Genellina -- http://mail.python.org/mailman/listinfo/python-list
Re: Cleanup guarantees?
En Fri, 09 Apr 2010 01:13:37 -0300, Alf P. Steinbach al...@start.no escribió: code language=Py3 import urllib.request # urlopen import codecs # getreader import sys # stderr def text_stream_from( url, encoding ): text_reader = codecs.getreader( encoding ) connection = urllib.request.urlopen( url ) return text_reader( connection ) def list_text( url, encoding ): lines = text_stream_from( url, encoding ) for line in lines: print( line, end = ) lines.close() # Undocumented? url = http://www.rfc-editor.org/rfc/rfc1149.txt; list_text( url, ascii ) /code First, I'm unable to find documentation that there /is/ a close method in the text_reader object, and I'm unable to find documentation that there is a close method in the file like connection object; is there such documentation? codecs.getreader returns a StreamReader instance (see [1]) StreamReader is documented here [2] and it says In addition to the above methods, the StreamReader must also inherit all other methods and attributes from the underlying stream. -- the stream being 'connection', from urllib.request.urlopen. The 3.x version of the documentation in [3] doesn't provide any details except being a file-like object. The 2.x version [4] is much more clear: a file-like object is returned. This supports the following methods: read(), readline(), readlines(), fileno(), close(), info(), getcode() and geturl(). It also has proper support for the iterator protocol. [1] http://docs.python.org/py3k/library/codecs.html#codecs.getreader [2] http://docs.python.org/py3k/library/codecs.html#codecs.StreamReader [3] http://docs.python.org/py3k/library/urllib.request.html#urllib.request.urlopen [4] http://docs.python.org/library/urllib.html#urllib.urlopen Second, I'm unable to find documentation of when they're called and what they do. It seems that (A) when the connection object's st method is called automatically, and (B) that when the text_reader object's close method is called it calls the close method of the wrapped stream (i.e. on the connection object). But where is this documented? Nowhere, AFAIK. I bet documentation patches are welcome. -- Gabriel Genellina -- http://mail.python.org/mailman/listinfo/python-list
Re: fcntl, serial ports and serial signals on RS232.
On Apr 8, 11:17 am, Grant Edwards inva...@invalid.invalid wrote: On 2010-04-07, Max Kotasek mawr...@gmail.com wrote: I'm trying to figure out how to parse the responses fromfcntl.ioctl() calls that modify the serial lines in a way that asserts that the line is now changed. Two comments: 1) None of the Linux serial drivers I've worked on return line states except when you call TIOCMGET. 2) If the TIOCMBI[S|C] call returned a 'success' value, then the line was set to what you requested. If you want to read back the state that you just wrote, you can call TIOCMGET, but for the output pins it's always going to return the last value that was written. For example I may want to drop RTS explicitly, and assert that the line has been dropped before returning. Call TIOCMSET. If it doesn't return an error, then you're done. Here is a brief snippet of code that I've been using to do that, but not sure what to do with the returned response: What returned response? The only thing that is returned by TIOCMBIS/TIOCMBIC is a status value of 0 for success and 0 for failure. IIRC, that value is checked by Python'sfcntl.ioctl wrapper and it will raise an exception on failure. Is someone familiar with manipulating serial signals like this in python? Yes. Am I even taking the right approach by using thefcntl.ioctl call? Yes. When you set/clear RTS or DTR do they not go up/down? Even if you can't use pyserial, it's a good source for example code. -- Grant Edwards grant.b.edwards Yow! TONY RANDALL! Is YOUR at life a PATIO of FUN?? gmail.com I appreciate the feedback. I'm working in an environment with a lot of changing factors, it's nice to have a piece not act unexpectedly. Max -- http://mail.python.org/mailman/listinfo/python-list
Re: python as pen and paper substitute
On 04/08/2010 02:54 PM, Manuel Graune wrote: Well, the subject does say python and not elisp, but I'm a vim-user anyways. Did you look at the link to Owen Taylor's reinteract program? I think it's closer to what you want than any other thing mentioned here, with the exception that it's a standalone GTK (graphical) app. -- http://mail.python.org/mailman/listinfo/python-list
Re: Python question
En Fri, 09 Apr 2010 14:14:34 -0300, Binary nos...@news.eternal-september.org escribió: How much space approximately is required to install the following packs on Windows XP? pycairo-1.4.12-2.win32-py2.6.exe python-2.6.1.msi pygobject-2.14.2-2.win32-py2.6.exe pygtk-2.12.1-3.win32-py2.6.exe pywin32-213.win32-py2.6.exe gtk-2.12.9-win32-2.exe You might estimate it by the size of those files; use a factor of 2 or 3 due to compression. Does all this packs requires installation, python and gtx must be installed as any other Windows program, and probably require administrator rights. I don't know all of the remaining files, but they look like Python packages; the installer typically drop some files into c:\python26\lib\site-packages and register something. or it's possible just extract and place them in to C: drive, then to set environment variables properly? Does this packs installs dynamic libraries and writes to registry? Python and Gtk, yes. The other packages, maybe not. -- Gabriel Genellina -- http://mail.python.org/mailman/listinfo/python-list
Re: lambda with floats
On Apr 9, 1:22 pm, monkeys paw mon...@joemoney.net wrote: On 4/9/2010 3:43 AM, Bas wrote: On Apr 7, 6:15 am, Patrick Maupinpmau...@gmail.com wrote: I should stop making a habit of responding to myself, BUT. This isn't quite an acre in square feet. I just saw the 43xxx and assumed it was, and then realized it couldn't be, because it wasn't divisible by 10. (I used to measure land with my grandfather with a 66 foot long chain, and learned at an early age that an acre was 1 chain by 10 chains, or 66 * 66 * 10 = 43560 sqft.) That's an exact number, and 208 is a poor approximation of its square root. There is no need to remember those numbers for the imperially challenged people: In [1]: import scipy.constants as c scipy.constants ?? doesn't work for me. In [2]: def acre2sqft(a): ...: return a * c.acre / (c.foot * c.foot) ...: In [3]: acre2sqft(1) Out[3]: 43560.0 Cheers, Bas Basically, he's saying that, instead of remembering the very simple 66 and 10 values, you can download and install a multi-megabyte gzipped tar file for the scipy project. ;-) (Of course, you get a few nice functions thrown in for free along with your constants, but downloading scipy for its constants is like choosing a sports car for its cupholders.) -- http://mail.python.org/mailman/listinfo/python-list
Re: Performance of list vs. set equality operations
On Apr 9, 1:07 pm, Gabriel Genellina gagsl-...@yahoo.com.ar wrote: En Thu, 08 Apr 2010 21:02:23 -0300, Patrick Maupin pmau...@gmail.com escribió: On Apr 8, 6:35 pm, Gabriel Genellina gagsl-...@yahoo.com.ar wrote: The CPython source contains lots of shortcuts like that. Perhaps the checks should be stricter in some cases, but I imagine it's not so easy to fix: lots of code was written in the pre-2.2 era, assuming that internal types were not subclassable. I don't know if it's a good fix anyway. If you subclass an internal type, you can certainly supply your own rich comparison methods, which would (IMO) put the CPU computation burden where it belongs if you decide to do something goofy like subclass a list and then override __len__. We're all consenting adults, that's the Python philosophy, isn't it? If I decide to make stupid things, it's my fault. I don't see why Python should have to prevent that. -- Gabriel Genellina Exactly. I think we're in violent agreement on this issue ;-) -- http://mail.python.org/mailman/listinfo/python-list
Re: python grep
Mag Gam wrote: I am in the process of reading a zipped file which is about 6gb. I would like to know if there is a command similar to grep in python because I would like to emulate, -A -B option of GNU grep. Lets say I have this, 083828.441,AA 093828.441,AA 094028.441,AA 094058.441,CC 094828.441,AA 103828.441,AA 123828.441,AA if I do grep -A2 -B2 CC I get 2 lines before and 2 lines after C Is there an easy way to do this in python? from itertools import islice, groupby from collections import deque def grep(instream, ismatch, before, after): items_before = None for key, group in groupby(instream, ismatch): if key: if items_before is not None: for item in items_before: yield before, item else: items_before = not None # ;) for item in group: yield match, item else: if items_before is not None: for item in islice(group, after): yield after, item items_before = deque(group, maxlen=before) def demo1(): with open(__file__) as instream: for state, (index, line) in grep(enumerate(instream, 1), ismatch=lambda (i, s): item in s, before=2, after=2): print %3d %-6s %s % (index, state + :, line), def demo2(): from StringIO import StringIO import csv lines = StringIO(\ 083828.441,AA 093828.441,AA 094028.441,AA 094058.441,CC 094828.441,AA 103828.441,AA 123828.441,AA ) rows = csv.reader(lines) for state, row in grep(rows, lambda r: r[-1] == CC, 1, 2): print row if __name__ == __main__: demo1() demo2() Probably too slow; badly needs testing. Peter -- http://mail.python.org/mailman/listinfo/python-list
Re: lambda with floats
On 4/9/2010 2:40 PM, Patrick Maupin wrote: On Apr 9, 1:22 pm, monkeys pawmon...@joemoney.net wrote: On 4/9/2010 3:43 AM, Bas wrote: On Apr 7, 6:15 am, Patrick Maupinpmau...@gmail.comwrote: I should stop making a habit of responding to myself, BUT. This isn't quite an acre in square feet. I just saw the 43xxx and assumed it was, and then realized it couldn't be, because it wasn't divisible by 10. (I used to measure land with my grandfather with a 66 foot long chain, and learned at an early age that an acre was 1 chain by 10 chains, or 66 * 66 * 10 = 43560 sqft.) That's an exact number, and 208 is a poor approximation of its square root. There is no need to remember those numbers for the imperially challenged people: In [1]: import scipy.constants as c scipy.constants ?? doesn't work for me. In [2]: def acre2sqft(a): ...: return a * c.acre / (c.foot * c.foot) ...: In [3]: acre2sqft(1) Out[3]: 43560.0 Cheers, Bas Basically, he's saying that, instead of remembering the very simple 66 and 10 values, you can download and install a multi-megabyte gzipped tar file for the scipy project. ;-) (Of course, you get a few nice functions thrown in for free along with your constants, but downloading scipy for its constants is like choosing a sports car for its cupholders.) yea, the 66 foot chain story is a good one, i cant forget that. Appreciate the help, i just looked up the SciPY Project download, it is 40 MB. I'm gonna check it out none the less... -- http://mail.python.org/mailman/listinfo/python-list
Re: Python Line Intersection
See Wikipedia for the usual solution, given points on both lines: http://en.wikipedia.org/wiki/Line-line_intersection # -*- coding: utf-8 -*- import numpy as N def intersect(line1, line2): \begin{align} P(x,y)= \bigg(\frac{(x_1 y_2-y_1 x_2)(x_3-x_4)- (x_1-x_2)(x_3 y_4-y_3 x_4)}{(x_1-x_2)(y_3-y_4)-(y_1-y_2)(x_3-x_4)}, \\ \frac{(x_1 y_2-y_1 x_2)(y_3-y_4)-(y_1-y_2)(x_3 y_4-y_3 x_4)}{(x_1-x_2) (y_3-y_4)-(y_1-y_2)(x_3-x_4)}\bigg) \end{align} x_1 = line1.x0[0] y_1 = line1.x0[1] x_2 = line1.x1[0] y_2 = line1.x1[1] x_3 = line2.x0[0] y_3 = line2.x0[1] x_4 = line2.x1[0] y_4 = line2.x1[1] try: denom = float((x_1 - x_2) * (y_3 - y_4) - (y_1 - y_2) * (x_3 - x_4)) x = ((x_1 * y_2 - y_1 * x_2) * (x_3 - x_4) - (x_1 - x_2) * (x_3 * y_4 - y_3 * x_4)) / denom y = ((x_1 * y_2 - y_1 * x_2) * (y_3 - y_4) - (y_1 - y_2) * (x_3 * y_4 - y_3 * x_4)) / denom except ZeroDivisionError: return return x, y class Line(object): def __init__(self, pkts=None): self.x0 = N.array(pkts[0]) self.x1 = N.array(pkts[1]) if __name__ == __main__: line1 = Line(((0., 0.), (1., 1.))) line2 = Line(((0., 1.), (1., 0.))) print intersect(line1, line2) -- http://mail.python.org/mailman/listinfo/python-list
Re: Pydev 1.5.6 Released (Django Integration)
Hi All, Pydev 1.5.6 has been released Details on Pydev: http://pydev.org Details on its development: http://pydev.blogspot.com Question, Does it have a feature to evaluate the current edit buffer and continue with an interactive prompt? -- дамјан ((( http://damjan.softver.org.mk/ ))) Hi! I'm a .signature virus! copy me into your .signature file to help me spread! -- http://mail.python.org/mailman/listinfo/python-list
Re: Python Line Intersection
On Fri, Apr 9, 2010 at 11:43 AM, John Nagle na...@animats.com wrote: Chris Rebert wrote: On Fri, Apr 9, 2010 at 8:04 AM, Peyman Askari peter_peyman_...@yahoo.ca wrote: Hello This is partly Python related, although it might end up being more math related. I am using PyGTK (GUI builder for Python) and I need to find the intersection point for two lines. It is easy to do, even if you only have the four points describing line segments (http://www.maths.abdn.ac.uk/~igc/tch/eg1006/notes/node23.html). However, it requires that you solve for two equations. How can I do this in Python, either solve equations, or calculating intersection points some other way? Just solve the equations ahead of time by using generic ones. snip x = (c - b) / (m-n) Actually, you don't want to do it that way, because it fails for vertical lines, when m and n go to infinity. As the programmer said upon seeing a stripe-less zebra: Oh no, a special case! Excellent catch my good sir; although I will point out that strictly speaking, you can't put vertical lines into slope-intercept form (but I should not have forgotten that precondition). Cheers, Chris -- Vertical line test, etc. http://blog.rebertia.com -- http://mail.python.org/mailman/listinfo/python-list
off by 1 error?
Hi all, I'm trying to assign a color to various values between some arbitrary maximum and minimum, and i'd like to go from red to blue to green . Currently, I have the following, where i'm passing the minimum and maximum as a 2-tuple: def getcolor( minmax, curr ): rangesize = (minmax[1] - minmax[0]) - 1 currsize = float( curr - minmax[0] ) currpos = currsize / rangesize colornum = int( currpos*511 + 0.5 ) r = max( 255 - colornum, 0 ) g = max( -256 + colornum, 0 ) b = 255 - ( r+g ) return r,g,b 1) is there a better way to do this? 2) at the extreme points, this doesn't work: the number of (255, 0, 0)s and (0, 255, 0)s are 1/2 what they should be, and (0, 0, 255) is double what it should be. the above algorithm at least doesn't give me things like (0, -1, 256), which i struggled with for a while, but where is/are my off-by-one(s)? many thanks d -- http://mail.python.org/mailman/listinfo/python-list
How to read file during module import?
I have a module that, when loaded, reads and parses a supporting file. The supporting file contains all the data for the module and the function that reads/parses the file sets up the data structure for the module. How can I locate the file during the import statement. The supporting file is located in the same directory as the module, but when I import I get a No such file or directory error. I could hard code the path to the filename, but that would make it only work on my machine. A related question: Can I parse the data once and keep it somewhere instead of reading the supporting file every time? I tried pickling but that wouldn't work because I have custom classes. (Either that or I just don't know how to pickle—this is a highly probable event.) Thanks, Jeremy -- http://mail.python.org/mailman/listinfo/python-list
Dvalve! we called the heart of outsourcing world.
Dvalve.com is an online talent workplace that helps companies hire and manage professionals online to get work done and grow their businesses. Dvalve matches employers with a ready and qualified workforce and rated, tested professionals with technical, marketing and business skills. Dvalve also provides the online workplace and tools to manage and pay remote professionals and teams online. Contractors and service providers around the world use Dvalve to meet employers and get paid for delivering great results.VISIT WWW.DVALVE.COM FOR YOUR OUTSOURCE BUSINESS NEEDS, SEE HOW FAST YOUR JOBS DONE WITH QUALITY AND SECURITY.Dvalve a real virtual outsourcing ThinkTank. Waiting for your valued participation.DVALVE TEAM Welcomes freelancers, web designers. programmers, developers, designers, business guys and all corporate and IT peoples TO WORK WITH US Please Register as per your skills and wait for our Interview call. You can register as a Service Provider or as a Buyer Account. Buyer will get tie up Offers and providers will catch Jobs!. One dice for all. Regards Dvalve Team www.dvalve.com -- http://mail.python.org/mailman/listinfo/python-list
Dvalve! we called the heart of outsourcing world.
Dvalve.com is an online talent workplace that helps companies hire and manage professionals online to get work done and grow their businesses. Dvalve matches employers with a ready and qualified workforce and rated, tested professionals with technical, marketing and business skills. Dvalve also provides the online workplace and tools to manage and pay remote professionals and teams online. Contractors and service providers around the world use Dvalve to meet employers and get paid for delivering great results.VISIT WWW.DVALVE.COM FOR YOUR OUTSOURCE BUSINESS NEEDS, SEE HOW FAST YOUR JOBS DONE WITH QUALITY AND SECURITY.Dvalve a real virtual outsourcing ThinkTank. Waiting for your valued participation.DVALVE TEAM Welcomes freelancers, web designers. programmers, developers, designers, business guys and all corporate and IT peoples TO WORK WITH US Please Register as per your skills and wait for our Interview call. You can register as a Service Provider or as a Buyer Account. Buyer will get tie up Offers and providers will catch Jobs!. One dice for all. Regards Dvalve Team www.dvalve.com -- http://mail.python.org/mailman/listinfo/python-list
Dvalve! we called the heart of outsourcing world.
Dvalve.com is an online talent workplace that helps companies hire and manage professionals online to get work done and grow their businesses. Dvalve matches employers with a ready and qualified workforce and rated, tested professionals with technical, marketing and business skills. Dvalve also provides the online workplace and tools to manage and pay remote professionals and teams online. Contractors and service providers around the world use Dvalve to meet employers and get paid for delivering great results.VISIT WWW.DVALVE.COM FOR YOUR OUTSOURCE BUSINESS NEEDS, SEE HOW FAST YOUR JOBS DONE WITH QUALITY AND SECURITY.Dvalve a real virtual outsourcing ThinkTank. Waiting for your valued participation.DVALVE TEAM Welcomes freelancers, web designers. programmers, developers, designers, business guys and all corporate and IT peoples TO WORK WITH US Please Register as per your skills and wait for our Interview call. You can register as a Service Provider or as a Buyer Account. Buyer will get tie up Offers and providers will catch Jobs!. One dice for all. Regards Dvalve Team www.dvalve.com -- http://mail.python.org/mailman/listinfo/python-list
Dvalve! we called the heart of outsourcing world.
Dvalve.com is an online talent workplace that helps companies hire and manage professionals online to get work done and grow their businesses. Dvalve matches employers with a ready and qualified workforce and rated, tested professionals with technical, marketing and business skills. Dvalve also provides the online workplace and tools to manage and pay remote professionals and teams online. Contractors and service providers around the world use Dvalve to meet employers and get paid for delivering great results.VISIT WWW.DVALVE.COM FOR YOUR OUTSOURCE BUSINESS NEEDS, SEE HOW FAST YOUR JOBS DONE WITH QUALITY AND SECURITY.Dvalve a real virtual outsourcing ThinkTank. Waiting for your valued participation.DVALVE TEAM Welcomes freelancers, web designers. programmers, developers, designers, business guys and all corporate and IT peoples TO WORK WITH US Please Register as per your skills and wait for our Interview call. You can register as a Service Provider or as a Buyer Account. Buyer will get tie up Offers and providers will catch Jobs!. One dice for all. Regards Dvalve Team www.dvalve.com -- http://mail.python.org/mailman/listinfo/python-list
Dvalve! we called the heart of outsourcing world.
Dvalve.com is an online talent workplace that helps companies hire and manage professionals online to get work done and grow their businesses. Dvalve matches employers with a ready and qualified workforce and rated, tested professionals with technical, marketing and business skills. Dvalve also provides the online workplace and tools to manage and pay remote professionals and teams online. Contractors and service providers around the world use Dvalve to meet employers and get paid for delivering great results.VISIT WWW.DVALVE.COM FOR YOUR OUTSOURCE BUSINESS NEEDS, SEE HOW FAST YOUR JOBS DONE WITH QUALITY AND SECURITY.Dvalve a real virtual outsourcing ThinkTank. Waiting for your valued participation.DVALVE TEAM Welcomes freelancers, web designers. programmers, developers, designers, business guys and all corporate and IT peoples TO WORK WITH US Please Register as per your skills and wait for our Interview call. You can register as a Service Provider or as a Buyer Account. Buyer will get tie up Offers and providers will catch Jobs!. One dice for all. Regards Dvalve Team www.dvalve.com -- http://mail.python.org/mailman/listinfo/python-list
Re: Pickle problem while loading a class instance.
I tried both things: 1- moved all the code to C:/Python26/lib/site-packages 2- Modified the PYTHONPATH in the windows registry. However, i stil have exactly the same error on the screen. Any other suggestions? Thanks. Peter Otten wrote: gerardob wrote: Hello, I am new to python and i have a problem using the pickle load function. I have an object m of the class MarkovModel and i want to copy it to a file and load it onto another class: l=[1,2,3] m = markov_model.MarkovModel() m.load_observations(l) file = open(prueba.txt, 'w') Remember to open the file in binary mode. pickle.dump(m,file,2) file.close() #m2 = markov_model.MarkovModel() file = open(prueba.txt, 'rb') m2 = pickle.load(file) (THIS IS LINE 36) The error below appears. In the case i remove the comment to initialize m2, the same thing happens. Any ideas on how to fix this? Add the directory containing the markov_model module to your PYTHONPATH environment variable or move the module into a directory where Python is already looking (C:/Python26/lib/site-packages or the per-user equivalent). See also http://docs.python.org/using/windows.html#finding-modules Traceback (most recent call last): File C:\Users\gberbeglia\Documents\python\scripting\mycodes\main.py, line 36, in module m2 = pickle.load(file) File C:\Python26\lib\pickle.py, line 1370, in load return Unpickler(file).load() File C:\Python26\lib\pickle.py, line 858, in load dispatch[key](self) File C:\Python26\lib\pickle.py, line 1090, in load_global klass = self.find_class(module, name) File C:\Python26\lib\pickle.py, line 1124, in find_class __import__(module) ImportError: No module named markov_model Peter -- http://mail.python.org/mailman/listinfo/python-list -- View this message in context: http://old.nabble.com/Pickle-problem-while-loading-a-class-instance.-tp28154964p28197881.html Sent from the Python - python-list mailing list archive at Nabble.com. -- http://mail.python.org/mailman/listinfo/python-list
Re: How to read file during module import?
En Fri, 09 Apr 2010 18:04:59 -0300, Jeremy jlcon...@gmail.com escribió: How can I locate the file during the import statement. The supporting file is located in the same directory as the module, but when I import I get a No such file or directory error. I could hard code the path to the filename, but that would make it only work on my machine. The directory containing the current module is: module_dir = os.path.dirname(os.path.abspath(__file__)) so you could open your supporting file using: fn = os.path.join(module_dir, supporting_file_name.ext) open(fn) ... A related question: Can I parse the data once and keep it somewhere instead of reading the supporting file every time? I tried pickling but that wouldn't work because I have custom classes. (Either that or I just don't know how to pickle—this is a highly probable event.) What kind of custom classes? An open file, or a socket, are examples of non pickleable objects; most other basic built-in objects are pickleable. Instances of user-defined classes are pickleable if they contain pickleable attributes. Micro recipe: # pickle some_object with open(filename, wb) as f: pickle.dump(some_object, f, -1) # unpickle it with open(filename, rb) as f: some_object = pickle.load(f) Try again and report any problem you encounter... -- Gabriel Genellina -- http://mail.python.org/mailman/listinfo/python-list
Re: Pickle problem while loading a class instance.
En Fri, 09 Apr 2010 18:42:23 -0300, gerardob gberbeg...@gmail.com escribió: I tried both things: 1- moved all the code to C:/Python26/lib/site-packages 2- Modified the PYTHONPATH in the windows registry. However, i stil have exactly the same error on the screen. Any other suggestions? Did you follow the advice below? Peter Otten wrote: file = open(prueba.txt, 'w') Remember to open the file in binary mode. You have to re-create your pickle file, open it in binary mode 'wb' (prueba.txt is not a good name - it's not a text file). Any old pickle file created in text mode won't be readable. -- Gabriel Genellina -- http://mail.python.org/mailman/listinfo/python-list
Re: How to read file during module import?
On Apr 9, 4:02 pm, Gabriel Genellina gagsl-...@yahoo.com.ar wrote: En Fri, 09 Apr 2010 18:04:59 -0300, Jeremy jlcon...@gmail.com escribió: How can I locate the file during the import statement. The supporting file is located in the same directory as the module, but when I import I get a No such file or directory error. I could hard code the path to the filename, but that would make it only work on my machine. The directory containing the current module is: module_dir = os.path.dirname(os.path.abspath(__file__)) I didn't know about __file__ this works! Thanks. so you could open your supporting file using: fn = os.path.join(module_dir, supporting_file_name.ext) open(fn) ... A related question: Can I parse the data once and keep it somewhere instead of reading the supporting file every time? I tried pickling but that wouldn't work because I have custom classes. (Either that or I just don't know how to pickle—this is a highly probable event.) What kind of custom classes? My custom classes are not very fancy. They basically are dictionaries and lists organizing the data in the supporting file. I was actually surprised they didn't pickle because the classes were so simple. An open file, or a socket, are examples of non pickleable objects; most other basic built-in objects are pickleable. Instances of user-defined classes are pickleable if they contain pickleable attributes. Micro recipe: # pickle some_object with open(filename, wb) as f: pickle.dump(some_object, f, -1) When I did this I got the following error: PicklingError: Can't pickle class '__main__.element': it's not found as __main__.element Am I just being dumb? Thanks, Jeremy -- http://mail.python.org/mailman/listinfo/python-list
Re: Pickle problem while loading a class instance.
gerardob wrote: I tried both things: 1- moved all the code to C:/Python26/lib/site-packages 2- Modified the PYTHONPATH in the windows registry. However, i stil have exactly the same error on the screen. Any other suggestions? Did you heed my advice and make sure that your script reads and writes the pickle file in binary mode? file = open(prueba.txt, 'w') The above line can trigger the same error; change w to wb: import pickle class A: pass ... s = pickle.dumps(A()) pickle.loads(s) __main__.A instance at 0x7f31d088ed88 Seems to work. Now let's simulate the effect of writing in text and reading in binary mode: pickle.loads(s.replace(\n, \r\n)) Traceback (most recent call last): File stdin, line 1, in module File /usr/lib/python2.6/pickle.py, line 1374, in loads return Unpickler(file).load() File /usr/lib/python2.6/pickle.py, line 858, in load dispatch[key](self) File /usr/lib/python2.6/pickle.py, line 1069, in load_inst klass = self.find_class(module, name) File /usr/lib/python2.6/pickle.py, line 1124, in find_class __import__(module) ImportError: No module named __main__ Peter -- http://mail.python.org/mailman/listinfo/python-list
Re: Striving for PEP-8 compliance
In message 4bbf6eb8$0$1670$742ec...@news.sonic.net, John Nagle wrote: Lawrence D'Oliveiro wrote: In message mailman.1610.1270655932.23598.python-l...@python.org, Gabriel Genellina wrote: If you only reindent the code (without adding/removing lines) then you can compare the compiled .pyc files (excluding the first 8 bytes that contain a magic number and the source file timestamp). Remember that code objects contain line number information. Anybody who ever creates another indentation-controlled language should be beaten to death with a Guido van Rossum voodoo doll. No ... Yes, because otherwise you wouldn’t have stupid problems like the one which is preoccupying this thread: how to make sure indentation is consistent without introducing logic errors into the code. -- http://mail.python.org/mailman/listinfo/python-list
Event: First meeting of Karlsruhe User Group (tentatively named KaPy), 2010-04-16, 19:00:00 CEST
A new user group is being set up by some interested pythoneers from (around) Karlsruhe. The first meeting will be on Friday, 2010-04-16 (April 16th, 2010) at 19:00 (7pm) in the rooms of Entropia eV (the local affiliate of the CCC). See http://entropia.de/wiki/Anfahrt on how to get there. Or reply to me if you need instructions in English; there's a map on that page, but the devil's in the details, as always. Bye, J -- http://mail.python.org/mailman/listinfo/python-list
urllib2: post request to textarea
I'm getting a 500 error when attempting to make a post request with urllib2 to a form with a textarea tag. When I create the post request with all the other post data, I don't get a 500. Just the part of the form that is a textarea. Is this just a coincidence, and my real problem is something else? Thanks, Brandon -- http://mail.python.org/mailman/listinfo/python-list
getopt question
Hello, I have some trouble to make getopt.getopt work and the way I want (and is described in the documentation). Attached is very small script to reproduce my problem. If running: python testGetOpt.py -a junk1 -b junk2 everything is ok python testGetOpt.py -c junk1 ok too: I get the 'Invalid option' error message now: python testGetOpt.py -a junk1 -c junk2 I'm expecting this to also print the error message, as 'c' is not in the argument given in getopt.getopt, but it doesn't. What am I doing wrong ? Using python 2.6.4 on WindowXP. Thanks. Raphael -- http://mail.python.org/mailman/listinfo/python-list
Re: nested threading
In article 4566e767-768f-4399-8a6b-5530ec90b...@a37g2000prd.googlegroups.com, Omer Ihsan omrih...@gmail.com wrote: is there anything as nested threadingthat is, call a thread from within a thread. in this case how will thread locking take place. for example initially there were two functions that were called using threading.Thread. these wont get unlocked unless both of them are done with whatever they need to do. if say function 2 calls another thread. then what?? You need to do the locking explicitly. There's really no such thing as a nested thread in Python -- it's all a flat namespace. However, trying to nest threads conceptually is likely to get you into deadlock issues. You are more likely to make things work if you just start all threads in parallel. -- Aahz (a...@pythoncraft.com) * http://www.pythoncraft.com/ ...string iteration isn't about treating strings as sequences of strings, it's about treating strings as sequences of characters. The fact that characters are also strings is the reason we have problems, but characters are strings for other good reasons. --Aahz -- http://mail.python.org/mailman/listinfo/python-list
Re: off by 1 error?
On 4/9/2010 4:10 PM, david jensen wrote: Hi all, I'm trying to assign a color to various values between some arbitrary maximum and minimum, and i'd like to go from red to blue to green . Currently, I have the following, where i'm passing the minimum and maximum as a 2-tuple: def getcolor( minmax, curr ): One would need more info re minmax and curr and their relationship to definitively answer your question. rangesize = (minmax[1] - minmax[0]) - 1 I would expect that either +0 or +1 woult be correct currsize = float( curr - minmax[0] ) currpos = currsize / rangesize colornum = int( currpos*511 + 0.5 ) The .5 may be the reason for the '1/2' question. r = max( 255 - colornum, 0 ) g = max( -256 + colornum, 0 ) r,g are both 0 for both 255 and 256. I suspect this is reason for the 'double' question. b = 255 - ( r+g ) return r,g,b 1) is there a better way to do this? 2) at the extreme points, this doesn't work: the number of (255, 0, 0)s and (0, 255, 0)s are 1/2 what they should be, and (0, 0, 255) is double what it should be. the above algorithm at least doesn't give me things like (0, -1, 256), which i struggled with for a while, but where is/are my off-by-one(s)? Again, start with a complete definition of the params. Terry Jan Reedy -- http://mail.python.org/mailman/listinfo/python-list
getopt question
Ooops, forgot to attach the file in my first e-mail. Now, here it is. Hello, I have some trouble to make getopt.getopt work and the way I want (and is described in the documentation). Attached is very small script to reproduce my problem. If running: python testGetOpt.py -a junk1 -b junk2 everything is ok python testGetOpt.py -c junk1 ok too: I get the 'Invalid option' error message now: python testGetOpt.py -a junk1 -c junk2 I'm expecting this to also print the error message, as 'c' is not in the argument given in getopt.getopt, but it doesn't. What am I doing wrong ? Using python 2.6.4 on WindowXP. Thanks. Raphael - #!/usr/bin/env python import sys import getopt try: opts, args = getopt.getopt(sys.argv[1:], 'ab') except getopt.error: print 'Invalid option' sys.exit(0) -- http://mail.python.org/mailman/listinfo/python-list
Re: getopt question
On Apr 9, 4:37 pm, Raphael Mayoraz may...@netplus.ch wrote: Ooops, forgot to attach the file in my first e-mail. Now, here it is. Hello, I have some trouble to make getopt.getopt work and the way I want (and is described in the documentation). Attached is very small script to reproduce my problem. If running: python testGetOpt.py -a junk1 -b junk2 everything is ok python testGetOpt.py -c junk1 ok too: I get the 'Invalid option' error message now: python testGetOpt.py -a junk1 -c junk2 I'm expecting this to also print the error message, as 'c' is not in the argument given in getopt.getopt, but it doesn't. What am I doing wrong ? Using python 2.6.4 on WindowXP. Thanks. Raphael - [testGetOpt.py 1K ]#!/usr/bin/env python import sys import getopt try: opts, args = getopt.getopt(sys.argv[1:], 'ab') except getopt.error: print 'Invalid option' sys.exit(0) If your argument is expecting a value, you need to add a colon after it in the argument string. ie. 'a:b:' Guessing if you print 'args' from your example, both the -c and junk1 will be in there. ~Sean -- http://mail.python.org/mailman/listinfo/python-list
Re: Striving for PEP-8 compliance
On 2010-04-09, Lawrence D'Oliveiro l...@geek-central.gen.new_zealand wrote: In message 4bbf6eb8$0$1670$742ec...@news.sonic.net, John Nagle wrote: Lawrence D'Oliveiro wrote: In message mailman.1610.1270655932.23598.python-l...@python.org, Gabriel Genellina wrote: If you only reindent the code (without adding/removing lines) then you can compare the compiled .pyc files (excluding the first 8 bytes that contain a magic number and the source file timestamp). Remember that code objects contain line number information. Anybody who ever creates another indentation-controlled language should be beaten to death with a Guido van Rossum voodoo doll. No ... Yes, because otherwise you wouldn?t have stupid problems like the one which is preoccupying this thread: how to make sure indentation is consistent without introducing logic errors into the code. Anybody who invents another brace-delimited language should be beaten. You always end up with a big problem trying to make sure the braces are consistent with the program logic. -- Grant -- http://mail.python.org/mailman/listinfo/python-list
Re: Striving for PEP-8 compliance
In message hpoh5j$35...@reader1.panix.com, Grant Edwards wrote: Anybody who invents another brace-delimited language should be beaten. You always end up with a big problem trying to make sure the braces are consistent with the program logic. Would you prefer “begin” and “end” word symbols, then? -- http://mail.python.org/mailman/listinfo/python-list
Re: Preserving logging streams through a daemon.DaemonContext switch
Vinay Sajip vinay_sa...@yahoo.co.uk writes: On Apr 9, 12:46 am, Ben Finney ben+pyt...@benfinney.id.au wrote: Not quite. As the docs specify, you need to pass the *file descriptors* for the files you want preserved. Okay, but the docstring you quoted: Elements of the list are file descriptors (as returned by a file object's `fileno()` method) or Python `file` objects. implies that fh.stream would work as well as fh.stream.fileno() You're quite right, I made a mistake in what I wrote above. Rebelo puntabl...@gmail.com writes: Ben Finney wrote: So how do we get the file object for a logging handler? The ‘logging’ module documentation doesn't mention any way to get at the stream object for the handlers. But looking at the source code for ‘StreamHandler’ on my system, ‘/usr/lib/python2.5/logging/__init__.py’, shows a ‘stream’ attribute that is bound to the stream object. It's not marked private (i.e. it's not named with a leading underscore), so one presumes it is part of the public API. […] lh = logging.handlers.TimedRotatingFileHandler( LOG_FILENAME, # … ) log_stream_descriptor = lh.stream.fileno() daemon_context.files_preserve = [log_stream_descriptor] The above can then be simplified as: lh = logging.handlers.TimedRotatingFileHandler( LOG_FILENAME, # … ) daemon_context.files_preserve = [lh.stream] thank you both for a detailed explanation. I hope this helps you to make better use of ‘python-daemon’, and thank you for raising questions here. This is a good addition for the Frequently Asked Questions document; I will do this and it will be available in the next version of the library. -- \ “I prayed for twenty years but received no answer until I | `\ prayed with my legs.” —Frederick Douglass, escaped slave | _o__) | Ben Finney -- http://mail.python.org/mailman/listinfo/python-list
Re: Striving for PEP-8 compliance
On 2010-04-10, Lawrence D'Oliveiro l...@geek-central.gen.new_zealand wrote: In message hpoh5j$35...@reader1.panix.com, Grant Edwards wrote: Anybody who invents another brace-delimited language should be beaten. You always end up with a big problem trying to make sure the braces are consistent with the program logic. Would you prefer ???begin??? and ???end??? word symbols, then? Nope, I categorize those as nothing more than verbose braces. -- Grant -- http://mail.python.org/mailman/listinfo/python-list
Re: Striving for PEP-8 compliance
On Apr 9, 5:31 pm, Lawrence D'Oliveiro l...@geek- central.gen.new_zealand wrote: Anybody who ever creates another indentation-controlled language should be beaten to death with a Guido van Rossum voodoo doll. No ... Yes, because otherwise you wouldn’t have stupid problems like the one which is preoccupying this thread: how to make sure indentation is consistent without introducing logic errors into the code. You go through life and you choose your stupid problems. Well, not really, but you make your choices, and you wind up with stupid problems. I use Linux, and have a different set of stupid problems than I did when I used Windows. But as Ian Bicking said: I think there is a meme that Python people are close-minded to suggestions for changes in the language. I think there is significant truth to that. But sometimes everyone else is just completely wrong. I want nothing to do with any programmer who would mis-indent their code. If you want to mis-indent your code you are an idiot. If you want idiotic code to be an option you are being absurd. And as paraphrased by Markos Gaivo ( http://markos.gaivo.net/blog/?p=126 ): A: I don’t like Python because of significant whitespace. B: Do you indent your code? A: Yes, of course. B: And the problem is? Regards, Pat -- http://mail.python.org/mailman/listinfo/python-list
Re: raise exception with fake filename and linenumber
On 4月8日, 午後12:52, Gabriel Genellina gagsl-...@yahoo.com.ar wrote: The built-in SyntaxError exception does what you want. Constructor parameters are undocumented, but they're as follows: raise SyntaxError(A descriptive error message, (filename, linenum, colnum, source_line)) colnum is used to place the ^ symbol (10 in this fake example). Output: Traceback (most recent call last): File 1.py, line 9, in module foo() File 1.py, line 7, in foo raise SyntaxError(A descriptive error message, (filename, linenum, colnum, this is line 123 in example.file)) File example.file, line 123 this is line 123 in example.file ^ SyntaxError: A descriptive error message -- Gabriel Genellina Thank you Gabriel, this is great help for me. By the way, is it hard to specify any other exception class instead of SyntaxError? The SyntaxError class is a good solution in my case, but if possible, I want to know more general solution to specify filename and linenum for exception. -- makoto -- http://mail.python.org/mailman/listinfo/python-list
Re: Striving for PEP-8 compliance
On Sat, 10 Apr 2010 10:31:58 +1200, Lawrence D'Oliveiro wrote: In message 4bbf6eb8$0$1670$742ec...@news.sonic.net, John Nagle wrote: Lawrence D'Oliveiro wrote: In message mailman.1610.1270655932.23598.python-l...@python.org, Gabriel Genellina wrote: If you only reindent the code (without adding/removing lines) then you can compare the compiled .pyc files (excluding the first 8 bytes that contain a magic number and the source file timestamp). Remember that code objects contain line number information. Anybody who ever creates another indentation-controlled language should be beaten to death with a Guido van Rossum voodoo doll. No ... Yes, because otherwise you wouldn’t have stupid problems like the one which is preoccupying this thread: how to make sure indentation is consistent without introducing logic errors into the code. I don't see the problem here. The OP has code which is already correctly indented. He wants to re- indent it, from two spaces to four. As I see it, even a simple-minded string replacement from 2 to 4 spaces should Just Work, provided you don't care about extra spacing potentially being introduced into strings, comments, etc. E.g. if you have this (already ugly) code: def f(a): x = 42 if a 0: return a # Return a untouched. else: for i in range( x ) : # Do pointless work pass this_is_a_very_long_line = ( 2, 4, 5, 7, 9) return a+1 and just do a simple string replacement, you get this: def f(a): x =42 if a 0: return a# Return a untouched. else: for i in range(x):# Do pointless work pass this_is_a_very_long_line= ( 2, 4,5, 7, 9) return a+1 which is still ugly, but continues to work correctly. The only way to break working code by re-indenting in such a simple-minded fashion is if the layout of string literals is significant. But of course no professional-quality re-indenter program would just do a simple-minded replace(' ', '') on the source code, any more than a professional-quality code beautifier for a brace language would just add newlines and spaces around every brace it saw. A less simple-minded re-indenter would only replace *indentation*, not random whitespace. In that case, how could it break anything? Since the indents are correct, you are mapping indents of 2, 4, 6, 8, ... spaces to 4, 8, 12, 16, What do you think will break? If you start with broken indentation, it is difficult to fix, but that's not the OP's problem. In a brace language (whether you spell them { } or BEGIN END or START-BLOCK-HERE and END-BLOCK-HERE) if you start with inconsistent braces, it is equally difficult to fix. Invalid code is invalid code no matter what language you are using, and in general can't be mechanically fixed. If the nature of the breakage is such that the code is inconsistent or ambiguous, you need to *read* and *understand* it to fix it, no matter whether you have braces or indents. -- Steven -- http://mail.python.org/mailman/listinfo/python-list
Re: urllib2: post request to textarea
bfrederi brfrederi...@gmail.com wrote: I'm getting a 500 error when attempting to make a post request with urllib2 to a form with a textarea tag. When I create the post request with all the other post data, I don't get a 500. Just the part of the form that is a textarea. Is this just a coincidence, and my real problem is something else? It's just a coincidence. The contents of a textarea are transmitted exactly like the contents of an input type=text. My guess is that you did the encoding improperly. -- Tim Roberts, t...@probo.com Providenza Boekelheide, Inc. -- http://mail.python.org/mailman/listinfo/python-list
Re: Performance of list vs. set equality operations
I don't know if it's a good fix anyway. If you subclass an internal type, you can certainly supply your own rich comparison methods, which would (IMO) put the CPU computation burden where it belongs if you decide to do something goofy like subclass a list and then override __len__. We're all consenting adults, that's the Python philosophy, isn't it? If I decide to make stupid things, it's my fault. I don't see why Python should have to prevent that. Perhaps so for pure python classes, but the C builtins are another story. The C containers directly reference underlying structure and methods for several reasons. The foremost reason is that if their internal invariants are violated, they can segfault. A list's __getitem__ method needs to know the real length (not what you report in __len__) if it is to avoid writing objects outside of its allocated memory range. Another reason is efficiency -- the cost of attribute lookups is high and would spoil the performance of the builtins if they could not access their underlying structure and friend methods directly. It is important to have those perform well because they are used heavily in everyday programming. There are also couple of OOP design considerations. The http://en.wikipedia.org/wiki/Open/closed_principle is one example. Encapsulation is another example. If you override __len__ in order to influence the behavior of __eq__, then you're relying on an implementation detail, not the published interface. Eventhough the length check is an obvious optimization for list equality and set equality, there is no guarantee that other implementations of Python use that same pattern. my-two-cents-ly yours, Raymond -- http://mail.python.org/mailman/listinfo/python-list
[issue8353] Negative exponentiation behaving oddly in python shell
Martin v. Löwis mar...@v.loewis.de added the comment: This is expected behavior. The power operator binds with higher precedence than the unary minus: http://docs.python.org/reference/expressions.html#unary-arithmetic-and-bitwise-operations Therefore, your term is interpreted as -(4 ** 2) As for it only affects the prompt: I can't reproduce that. If I put print(-4**2) in a script and run that, it still prints -16 for me. -- nosy: +loewis resolution: - invalid stage: - committed/rejected status: open - closed ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8353 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue8350] os.mkdir doc comment is incorrect
Shashwat Anand anand.shash...@gmail.com added the comment: Tested on trunk. 11:46:02 l0nwlf-MBP:python-svn $ ./python.exe Python 2.7a4+ (trunk:79888M, Apr 9 2010, 11:41:22) [GCC 4.2.1 (Apple Inc. build 5646) (dot 1)] on darwin Type help, copyright, credits or license for more information. import posix posix.mkdir('1') posix.mkdir('2', 000) posix.mkdir('3', mode=000) Traceback (most recent call last): File input, line 1, in module TypeError: mkdir() takes no keyword arguments import os os.mkdir('4', 777) os.mkdir('5', mode=777) Traceback (most recent call last): File input, line 1, in module TypeError: mkdir() takes no keyword arguments The two options to fix this are: 1. Patch python-svn/Modules/posixmodule.c to take the keyword arguments. 2. Modify the PyDoc in posixmodule.c as Todd suggested. I had attached a patch which solves the issue using solution '2'. Also I observed that os.makedirs() have no such issue even though it uses os.mkdir() because it uses 'mkdir(name, mode)' to call mkdir. -- keywords: +patch nosy: +l0nwlf versions: +Python 2.7 Added file: http://bugs.python.org/file16836/posixmodule.patch ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8350 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue8353] Negative exponentiation behaving oddly in python shell
Chris Ward cward...@gmail.com added the comment: Thanks for clearing that up and pointing me in the right direction. I should have tested print first. The assumption was based on the evaluation of (-4) ** 2 within an expression, which does return correctly. I hadn't made the distinction that the parentheses made it evaluate differently by containing the unary. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8353 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue7443] test.support.unlink issue on Windows platform
Tim Golden m...@timgolden.me.uk added the comment: This is basically a rerun of this discussion a couple of years ago: http://mail.python.org/pipermail/python-dev/2008-April/078333.html The problem certainly still happens against trunk -- I have a semi-aggressive test-harness which can cause it to reproduce pretty much on-demand. I proposed an approach here: http://mail.python.org/pipermail/python-dev/2008-April/078339.html but when I started digging into test_support it all got a bit hairy because -- naturally -- test.support.unlink is used in a *lot* of places. In short, there's still a problem to be fixed. I believe that a rename-unlink dance would solve it, but only at the cost of affecting a lot of tests. -- nosy: +tim.golden ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue7443 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue4007] make clean fails to delete .a and .so.X.Y files
Shashwat Anand anand.shash...@gmail.com added the comment: skip.montanaro forgot to attached the patch obviously, however the issue is trivial but there i.e. the presence of libpython.a file. -- nosy: +l0nwlf ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue4007 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue8352] imp.find_module of a .py ending dir causes glibc double free crash
Shashwat Anand anand.shash...@gmail.com added the comment: quotemkdir bla.py; python -c 'import imp; imp.find_module(bla, [.])' This causes bpython to crash after the first input char if such a directory exist./quote I am sure you do not mean 'bpython intepretor' here. -- nosy: +l0nwlf ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8352 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue8354] siginterrupt with flag=False is reset when signal received
New submission from Andrew Bennetts s...@users.sourceforge.net: The effect of signal.siginterrupt(somesig, False) is reset the first time a that signal is received. This is not the documented behaviour, and I do not think this is a desireable behaviour. It renders siginterrupt effectively useless at providing the robustness against EINTR it is intended to provide. Attached is a fairly simple program to show this using SIGWINCH: run it in a resizeable terminal, and resize it twice. Notice that on the second terminal resize (i.e. the second SIGWINCH signal) the program crashes with an EINTR from the os.read. A partial workaround for the problem is to call signal.siginterrupt(somesig, False) again inside your signal handler, but it's very fragile. It depends on Python getting a chance to run the Python function registered by the signal.signal call, but this is not guaranteed. If there's frequent IO, that workaround might suffice. For the sig-test.py example attached to this bug, it doesn't (try it). The cause seems to be that signal_handler in signalmodule.c unconditionally does PyOS_setsig(sig_num, signal_handler) [except for SIGCHLD], which unconditionally invokes siginterrupt(sig, 1). A possible fix would be to add a 'int siginterrupt_flag;' to the Handlers array, and arrange for that value to be passed instead of the hard-coded 1. Another might be to not call PyOS_setsig from signal_handler at all -- I'm not sure why it is trying to reinstall itself, but perhaps there's some issue there I'm not aware of. -- components: Library (Lib) files: sig-test.py messages: 102688 nosy: spiv severity: normal status: open title: siginterrupt with flag=False is reset when signal received type: behavior versions: Python 2.6 Added file: http://bugs.python.org/file16837/sig-test.py ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8354 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue8108] test_ftplib fails with OpenSSL 0.9.8m
Darryl Miles darryl.mi...@darrylmiles.org added the comment: In order to build Python with a specific version of OpenSSL followed the CYGWIN instructions and edited Modules/Setup to make it read (note - I added -L$(SSL) into the linker options too, since by default on CentOS 5.4 i386 OpenSSL build in static library mode ala ../openssl-1.0.0/libssl.a) : SSL=../openssl-1.0.0 _ssl _ssl.c \ -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \ -L$(SSL)/lib -L$(SSL) -lssl -lcrypto It is not clear to me what Python's goals are: * To be backward compatible, in which case I don't know your historical use of SSL_shutdown(). * To be a thin-layer (1:1) over OpenSSL, so that power users can harness the full potential of OpenSSL if they are willing to understand the finer points. * To provide a full-featured Python API. * To provide a Python API that is easy to use within the Python paradigm. These goals may not be convergent. -- nosy: +dlmiles Added file: http://bugs.python.org/file16838/python_ssl.c.txt ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8108 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue7978] SocketServer doesn't handle syscall interruption
Andrew Bennetts s...@users.sourceforge.net added the comment: Note that a trivial untilConcludes isn't correct for select if a timeout was passed. If a select(..., 60) was interrupted after 59 seconds, you probably want to restart it with a timeout of 1 second, not 60. The SocketServer_eintr.diff patch has this flaw. -- nosy: +spiv ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue7978 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue8352] imp.find_module of a .py ending dir causes glibc double free crash
Senthil Kumaran orsent...@gmail.com added the comment: No, that is not bpython interpreter. The a crash report on python interpreter observed with imp module when a directory ends with .py. -- nosy: +orsenthil ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8352 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue3985] removed string module from distutils [patch]
Tarek Ziadé ziade.ta...@gmail.com added the comment: Distutils is now frozen. Moving it to Distutils2 -- components: +Distutils2 -Distutils ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue3985 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com