Re: When to use assert
On 17/11/13 13:33, Roy Smith wrote: Every once in a while, I'll get into a situation where something is happening that I just can't understand. If a given pice of code is being called, there's NO WAY the program should be exhibiting the behavior it's exhibiting. But, there's also NO WAY that piece of code can't be getting called. So, I stick "assert 0" in the code an re-run the program to see if I get an AssertionError. If I do, then I know the code is being run. If I don't then I know it's not. Either way, I know more about what's going on than I did before. Once I know what's going on, I remove the assert. Are assertions the right thing in that case? I'm becoming more and more inclined to the idea that if you want to know whether code is getting run, you should put a debug log in, and leave it in. That way it's easier to track down the next bug (I don't know about others, but when I write buggy code I go all-out and put lots of bugs in rather than just one). Rob -- https://mail.python.org/mailman/listinfo/python-list
UnicodeDecodeError: 'ascii' codec can't decodee byte 0xff in position 0: ordinal not in range(128)
Hi all,
I use Python telnetlib on Windows 7 32 bit. Here is my code:
def telnet(self, host, os, username, password):
connection = telnetlib.Telnet(host)
connection.read_until('login: ')
connection.write(username + '\r')
connection.read_until('assword: ')
connection.write(password + '\r')
connection.read_until('>', timeout = TIMEOUT)
return connection
I can run the program in Eclipse and telnet successfully to a Windows host.
But when I export to .exe file:
from distutils.core import setup
import py2exe
setup(
options = {
"py2exe":{
"packages": ['wx.lib.pubsub'],
"dll_excludes": ["MSVCP90.dll", "HID.DLL", "w9xpopen.exe"],
}
},
console = [{'script': ‘my_program.py'}]
)
and run the programe, I encounter this error:
UnicodeDecodeError: 'ascii' codec can't decodee byte 0xff in position 0:
ordinal not in range(128)
at line:
connection.write(username + '\r')
I have debugged and searched the Internet hard but found no solution yet.
I think it is because of ‘\r’.
Do you have any idea?
Viet
--
https://mail.python.org/mailman/listinfo/python-list
pypix
Hi Guys, i have created a site for Python Tutorials. here is the link http://pypix.com/python/get-started-python-web-development/ . I would like to have your opinion like what tutorials would you love to see. Thanks-- https://mail.python.org/mailman/listinfo/python-list
Re: UnicodeDecodeError: 'ascii' codec can't decodee byte 0xff in position 0: ordinal not in range(128)
On 11/17/2013 11:55 PM, Hoàng Tuấn Việt wrote: Hi I use Python telnetlib on Windows 7 32 bit. Here is my code: To better help us help you, what exact version of Python? Please post plain text without html. Please post programs single spaced with just occasional blank lines. -- Terry Jan Reedy -- https://mail.python.org/mailman/listinfo/python-list
Re: Oh look, another language (ceylon)
character
Satisfied Interfaces: Comparable, Enumerable,
Ordinal
A 32-bit Unicode character.
Satisfied Interfaces: Category, Cloneable>, Collection,
Comparable, Correspondence, Iterable,
List, Ranged, Summable
string
Satisfied Interfaces: Category, Cloneable>, Collection,
Comparable, Correspondence, Iterable,
List, Ranged, Summable
A string of characters. Each character in the string is a 32-bit Unicode
character. The internal UTF-16 encoding is hidden from clients.
A string is a Category of its Characters, and of its substrings:
Clean. Far, far away from a unicode handling which may require
18 bytes (!) more to encode a non ascii n-chars string than a
ascii n-chars string.
(With performances following expectedly "globally" the same logic)
>>> sys.getsizeof('a')
26
>>> sys.getsizeof('\U0001d11e')
44
jmf
--
https://mail.python.org/mailman/listinfo/python-list
Re: When to use assert
On 17 November 2013 13:33, Roy Smith wrote: > > So, I stick "assert 0" in the code an re-run the program to see if I get > an AssertionError. If I do, then I know the code is being run. If I > don't then I know it's not. Either way, I know more about what's going > on than I did before. Once I know what's going on, I remove the assert. If the program is invoked from a terminal I would probably go with 'import pdb; pdb.set_trace()' rather than 'assert 0'. Then you can check much more than whether or not the code is being executed. It's a bit more to type but I type it so often that I can now type it *really fast*. Oscar -- https://mail.python.org/mailman/listinfo/python-list
Re: Oh look, another language (ceylon)
On 18/11/2013 09:44, [email protected] wrote: character Satisfied Interfaces: Comparable, Enumerable, Ordinal A 32-bit Unicode character. Satisfied Interfaces: Category, Cloneable>, Collection, Comparable, Correspondence, Iterable, List, Ranged, Summable string Satisfied Interfaces: Category, Cloneable>, Collection, Comparable, Correspondence, Iterable, List, Ranged, Summable A string of characters. Each character in the string is a 32-bit Unicode character. The internal UTF-16 encoding is hidden from clients. A string is a Category of its Characters, and of its substrings: Clean. Far, far away from a unicode handling which may require 18 bytes (!) more to encode a non ascii n-chars string than a ascii n-chars string. (With performances following expectedly "globally" the same logic) sys.getsizeof('a') 26 sys.getsizeof('\U0001d11e') 44 jmf In [3]: sys.getsizeof(1) Out[3]: 14 What a disaster, 13 bytes wasted storing 1. I'll just rush off to the bug tracker and raise an issue to get the entire Cpython core rewritten before Armaggeddon strikes. -- Python is the second best programming language in the world. But the best has yet to be invented. Christian Tismer Mark Lawrence -- https://mail.python.org/mailman/listinfo/python-list
Re: When to use assert
On 18/11/2013 09:50, Oscar Benjamin wrote: On 17 November 2013 13:33, Roy Smith wrote: So, I stick "assert 0" in the code an re-run the program to see if I get an AssertionError. If I do, then I know the code is being run. If I don't then I know it's not. Either way, I know more about what's going on than I did before. Once I know what's going on, I remove the assert. If the program is invoked from a terminal I would probably go with 'import pdb; pdb.set_trace()' rather than 'assert 0'. Then you can check much more than whether or not the code is being executed. It's a bit more to type but I type it so often that I can now type it *really fast*. Oscar If I used something that often I'd either cut and paste it or have a key combination set up to insert it automatically. Or get my man to type it up for me :) -- Python is the second best programming language in the world. But the best has yet to be invented. Christian Tismer Mark Lawrence -- https://mail.python.org/mailman/listinfo/python-list
Re: Oh look, another language (ceylon)
On Mon, Nov 18, 2013 at 8:44 PM, wrote: > string > Satisfied Interfaces: Category, Cloneable>, Collection, > Comparable, Correspondence, Iterable, > List, Ranged, Summable > A string of characters. Each character in the string is a 32-bit Unicode > character. The internal UTF-16 encoding is hidden from clients. > A string is a Category of its Characters, and of its substrings: I'm trying to figure this out. Reading the docs hasn't answered this. If each character in a string is a 32-bit Unicode character, and (as can be seen in the examples) string indexing and slicing are supported, then does string indexing mean counting from the beginning to see if there were any surrogate pairs? ChrisA -- https://mail.python.org/mailman/listinfo/python-list
Re: Python Beginner
On Monday, November 18, 2013 5:42:22 AM UTC+1, Terry Reedy wrote: > On 11/17/2013 11:02 PM, ngangsia akumbo wrote: > > > > > Cameroon is a third world country, the IT skills of the people here > > > is far from attaining any legitimacy. > > > > > > Many people are doing business here just like in the days of the > > > Roman empire when computers had not been invented. > > > > > > We have many companies needing skills professionals to solve their IT > > > problems which they can't find and always have to hire from abroad. > > > > > > Talking about problem in IT you can think of the most basic problem. > > > > > > Taxation, databases, accounting, simple apps for businesses , > > > tracking systems, bookkeeping, Mobil apps for city direction, etc, > > > which i can't identify all being a python beginner. > > > > To find (free) business software written in Python, search at > > https://pypi.python.org/pypi > > sourceforge.net > > or you favorite search engine. > > > > Perhaps you can learn to use and adapt a few to solve local business > > problems. > > > > > We don't even have a University that offer a full flesh computer > > > science course > > > > The phrase you are looking for is 'full-fledged'. 'Fledge' has the same > > root as 'fly' and it means 'develop the feathers needed to fly' (for a > > young bird). So a full-fledged computer science course would be one that > > teaches you all the skills you need to 'fly' on your own. > > > > -- > > Terry Jan Reedy not 'full-fledged' but a uni that offers a complete program on CS -- https://mail.python.org/mailman/listinfo/python-list
Re: Python Beginner
On Saturday, November 16, 2013 11:41:31 PM UTC+1, Chris Angelico wrote: > On Sun, Nov 17, 2013 at 9:25 AM, ngangsia akumbo wrote: > > > I am called Richard m from western Africa, Cameroon. It was a pleasure for > > me to join this group. > > > > Hi! Welcome! > > > > > secondly, i wihs to start a small company after learning how to code > > > > > > I am learning python very broadly, meaning i am not concentrating on a > > single section. I wish to know the language and be able to apply it to any > > location in the field of tech. > > > > > > i Need some advise on how, and what python can help me setup a business? > > > > Frankly, my advice to you is: Don't. You've been writing code for a > > few months, that's great; but starting a company is a completely > > different thing to do. > > > > I would recommend that you primarily code purely for pleasure - that > > way, if you mess something up, you don't lose money. And then if you > > want to go professional, get a salaried job at someone else's company, > > rather than starting your own. It's a HUGE job to run your own > > company, and that's not something your Python coding skill will help > > with. Tax, legal requirements, profitability... headaches you don't > > need. > > > > Now, if you're already experienced at running a business, and want to > > know what Python can do to make your life easier... that we can > > answer! There are all sorts of automation and convenience jobs you can > > do with Python. But that's quite different from what I think you're > > asking here. > > > > ChrisA I HAVE NOT HEARD FROM YOU -- https://mail.python.org/mailman/listinfo/python-list
Re: When to use assert
On 2013-11-18 09:50, Oscar Benjamin wrote: > If the program is invoked from a terminal I would probably go with > 'import pdb; pdb.set_trace()' rather than 'assert 0'. Then you can > check much more than whether or not the code is being executed. > It's a bit more to type but I type it so often that I can now type > it *really fast*. I do this so much that on my main development machines, I have a line in my vimrc file nnoremap p oimport pdb; pdb.set_trace() nnoremap P Oimport pdb; pdb.set_trace() which maps the the leader key (defaults to "\") followed by p/P to insert the pdb line below/above the current line. Saves bunches of time & hassle. I'm sure it's equally easy in other quality editors. -tkc -- https://mail.python.org/mailman/listinfo/python-list
Re: RapydScript : Python to Javascript translator
> > I don't know about other people here, but I'm a bit leery of just > > downloading Windows binaries from people and running them. Is your > > source code available? Is this an open source / free project? > > > > ChrisA You are completly right :-) Here is the source code : https://github.com/charleslaw/rapydscript_online You can see other demos here : http://salvatore.pythonanywhere.com/RapydScript The official site of RapydScript : http://rapydscript.pyjeon.com/ e assumptions before testing : Here is the official site: http://rapydscript.pyjeon.com/ Regards Salvatore -- https://mail.python.org/mailman/listinfo/python-list
Re: UnicodeDecodeError: 'ascii' codec can't decodee byte 0xff in position 0: ordinal not in range(128)
On Mon, Nov 18, 2013 at 2:55 AM, Hoàng Tuấn Việt wrote:
> Hi all,
>
>
>
> I use Python telnetlib on Windows 7 32 bit. Here is my code:
>
>
>
> def *telnet*(*self*, host, os, username, password):
>
> connection = telnetlib.Telnet(host)
>
> connection.read_until(*'login: '*)
>
> connection.write(username + *'\r'*)
>
> connection.read_until(*'assword: '*)
>
> connection.write(password + *'\r'*)
>
> connection.read_until(*'>'*, timeout = TIMEOUT)
>
>return connection
>
>
>
> I can run the program in Eclipse and telnet successfully to a Windows host.
>
>
>
> But when I export to .exe file:
>
>
>
> from distutils.core import setup
>
> import py2exe
>
>
>
> setup(
>
> options = {
>
> *"py2exe"*:{
>
> *"packages"*: [*'wx.lib.pubsub'*],
>
> *"dll_excludes"*: [*"MSVCP90.dll"*, *"HID.DLL"*,
> *"w9xpopen.exe"*],
>
> }
>
> },
>
> console = [{*'script'*: *‘my_program.py'*}]
>
> )
>
>
>
> and run the programe, I encounter this error:
>
>
>
> UnicodeDecodeError: 'ascii' codec can't decodee byte 0xff in position 0:
> ordinal not in range(128)
>
>
>
> at line:
>
>
>
> connection.write(username + '\r')
>
>
>
> I have debugged and searched the Internet hard but found no solution yet.
>
>
>
> I think it is because of ‘\r’.
>
>
>
> Do you have any idea?
>
>
>
> Viet
>
> --
> https://mail.python.org/mailman/listinfo/python-list
>
>
You should be able to reproduce the same behavior on PyDev if in your run
configuration you select the encoding of the console to be ascii (run > run
configurations > select run configuration > common > set encoding to
us-ascii).
My guess is that you have the problem because the username has non-ascii
chars -- and you're receiving it as an unicode and not a string... so, you
have to do encode it properly to a string before writing to the connection
(i.e.: username.encode('utf-8') + '\r' -- although the encoding may have to
be a different one and not utf-8).
Cheers,
Fabio
--
https://mail.python.org/mailman/listinfo/python-list
Re: Unicode stdin/stdout
On 15/11/2013 18:16, [email protected] wrote: Of course, the real solution to this issue is to replace sys.stdout on windows with an object that can handle Unicode directly with the WriteConsoleW function - the problem there is that it will break code that expects to be able to use sys.stdout.buffer for binary I/O. I also wasn't able to get the analogous stdin replacement class to work with input() in my attempts. I started to use this on my windows installation #c:\python33\lib\site-packages\sitecustomize.py import sys, codecs sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach()) sys.stderr = codecs.getwriter("utf-8")(sys.stderr.detach()) which makes them writable with any unicode; after many years I am quite used to garbage appearing in the windows console. Unfortunately the above doesn't go into virtual environments, but I assume a hacked site.py could do that. -- Robin Becker -- https://mail.python.org/mailman/listinfo/python-list
Source code of Python to Javascsript translator
> > I don't know about other people here, but I'm a bit leery of just > > downloading Windows binaries from people and running them. Is your > > source code available? Is this an open source / free project? > > > > ChrisA You are completly right :-) Here is the source code : https://github.com/charleslaw/rapydscript_online You can see other demos here : http://salvatore.pythonanywhere.com/RapydScript The official site of RapydScript : http://rapydscript.pyjeon.com/ e assumptions before testing : Here is the official site: http://rapydscript.pyjeon.com/ Regards Salvatore -- https://mail.python.org/mailman/listinfo/python-list
Re: If you continue being rude i will continue doing this
You are the one being rude, Nikos. Moreover you are a nut, installing pygeoip works fine for me: # pip install pygeoip Downloading/unpacking pygeoip Downloading pygeoip-0.3.0.tar.gz (97Kb): 97Kb downloaded Running setup.py egg_info for package pygeoip Installing collected packages: pygeoip Running setup.py install for pygeoip Successfully installed pygeoip Cleaning up... you've probably completely messed up your system, as you are completely incompetent as a UNIX/Linux admin and broke your system. Le 17/11/2013 23:31, Ferrous Cranus a écrit : == root@secure [~/distribute-0.6.49]# pip install pygeoip Downloading/unpacking pygeoip Downloading pygeoip-0.3.0.tar.gz (97kB): 97kB downloaded Running setup.py egg_info for package pygeoip Traceback (most recent call last): File "", line 16, in File "/usr/lib/python3.3/encodings/ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 1098: ordinal not in range(128) Complete output from command python setup.py egg_info: Traceback (most recent call last): File "", line 16, in File "/usr/lib/python3.3/encodings/ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 1098: ordinal not in range(128) == -- https://mail.python.org/mailman/listinfo/python-list
Re: Automation
On 2013-11-16, Larry Hudson wrote: > However, that's just a side comment. I wanted to mention my > personal peeve... > > I notice it's surprisingly common for people who are native > English-speakers to use 'to' in place of 'too' (to little, to > late.), "your" in place of "you're" (Your an idiot!) and > 'there' in place of 'their' (a foot in there mouth.) There are > similar mis-usages, of course, but those three seem to be the > most common. > > Now, I'm a 76-year-old curmudgeon and maybe overly sensitive, > but I felt a need to vent a bit. The cases where written and spoken English diverge are hotbets of word usage problems. I'm glad the issue doesn't exist for programming languages, which thankfully don't really have a colloquial or spoken version. Written English probably changes much slower than spoken English, and we have the curmudgeon's to thank. -- Neil Cerutti -- https://mail.python.org/mailman/listinfo/python-list
Re: Oh look, another language (ceylon)
On Nov 18, 2013 3:06 AM, "Chris Angelico" wrote: > > I'm trying to figure this out. Reading the docs hasn't answered this. > If each character in a string is a 32-bit Unicode character, and (as > can be seen in the examples) string indexing and slicing are > supported, then does string indexing mean counting from the beginning > to see if there were any surrogate pairs? The string reference says: """Since a String has an underlying UTF-16 encoding, certain operations are expensive, requiring iteration of the characters of the string. In particular, size requires iteration of the whole string, and get(), span(), and segment() require iteration from the beginning of the string to the given index.""" The get and span operations appear to be equivalent to indexing and slicing. -- https://mail.python.org/mailman/listinfo/python-list
Re: Unicode stdin/stdout
On 18/11/2013 11:47, Robin Becker wrote:
...
#c:\python33\lib\site-packages\sitecustomize.py
import sys, codecs
sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach())
sys.stderr = codecs.getwriter("utf-8")(sys.stderr.detach())
it seems that the above needs extra stuff to make some distutils logging work
etc etc; so now I'm using sitecustomize.py containing
import sys, codecs
sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach())
sys.stdout.encoding = 'utf8'
sys.stderr = codecs.getwriter("utf-8")(sys.stderr.detach())
sys.stderr.encoding = 'utf8'
--
Robin Becker
--
https://mail.python.org/mailman/listinfo/python-list
Re: Oh look, another language (ceylon)
On Mon, Nov 18, 2013 at 11:29 PM, Ian Kelly wrote: > > On Nov 18, 2013 3:06 AM, "Chris Angelico" wrote: >> >> I'm trying to figure this out. Reading the docs hasn't answered this. >> If each character in a string is a 32-bit Unicode character, and (as >> can be seen in the examples) string indexing and slicing are >> supported, then does string indexing mean counting from the beginning >> to see if there were any surrogate pairs? > > The string reference says: > > """Since a String has an underlying UTF-16 encoding, certain operations are > expensive, requiring iteration of the characters of the string. In > particular, size requires iteration of the whole string, and get(), span(), > and segment() require iteration from the beginning of the string to the > given index.""" > > The get and span operations appear to be equivalent to indexing and slicing. Right, that's what I was looking for and didn't find. (I was searching the one-page reference manual rather than reading in detail.) So, yes, they're O(n) operations. Thanks for hunting that down. ChrisA -- https://mail.python.org/mailman/listinfo/python-list
Re: [Python-ideas] Unicode stdin/stdout
On 18 Nov 2013 22:36, "Robin Becker" wrote:
>
> On 18/11/2013 11:47, Robin Becker wrote:
> ...
>>
>> #c:\python33\lib\site-packages\sitecustomize.py
>> import sys, codecs
>> sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach())
>> sys.stderr = codecs.getwriter("utf-8")(sys.stderr.detach())
>
>
> it seems that the above needs extra stuff to make some distutils logging
work etc etc; so now I'm using sitecustomize.py containing
>
> import sys, codecs
> sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach())
> sys.stdout.encoding = 'utf8'
> sys.stderr = codecs.getwriter("utf-8")(sys.stderr.detach())
> sys.stderr.encoding = 'utf8'
Note that calling detach() on the standard streams isn't officially
supported, since it breaks the shadow streams saved in sys.__stderr__, etc.
Cheers,
Nick.
>
> --
> Robin Becker
>
> ___
> Python-ideas mailing list
> [email protected]
> https://mail.python.org/mailman/listinfo/python-ideas
--
https://mail.python.org/mailman/listinfo/python-list
Re: UnicodeDecodeError: 'ascii' codec can't decodee byte 0xff in position 0: ordinal not in range(128)
On 17/11/2013 11:55 PM, Hoàng Tuấn Việt wrote:
Hi all,
I use Python telnetlib on Windows 7 32 bit. Here is my code:
def*telnet*(/self/, host, os, username, password):
connection = telnetlib.Telnet(host)
connection.read_until(/'login: '/)
connection.write(username + /'\r'/)
connection.read_until(/'assword: '/)
connection.write(password + /'\r'/)
connection.read_until(/'>'/, timeout = TIMEOUT)
returnconnection
I can run the program in Eclipse and telnet successfully to a Windows host.
But when I export to .exe file:
fromdistutils.core importsetup
importpy2exe
setup(
options = {
/"py2exe"/:{
/"packages"/: [/'wx.lib.pubsub'/],
/"dll_excludes"/: [/"MSVCP90._dll_"/, /"HID.DLL"/, /"w9xpopen.exe"/],
}
},
console = [{/'script'/: /‘my_program.py'/}]
)
and run the programe, I encounter this error:
UnicodeDecodeError: 'ascii' codec can't decodee byte 0xff in position 0:
ordinal not in range(128)
at line:
connection.write(username + '\r')
I have debugged and searched the Internet hard but found no solution yet.
I think it is because of ‘\r’.
Do you have any idea?
Viet
What about:
connection.write(username, ' r') ?
Colin W.
--
https://mail.python.org/mailman/listinfo/python-list
Re: Oh look, another language (ceylon)
On Mon, 18 Nov 2013 21:04:41 +1100, Chris Angelico wrote: > On Mon, Nov 18, 2013 at 8:44 PM, wrote: >> string >> Satisfied Interfaces: Category, Cloneable>, >> Collection, Comparable, >> Correspondence, Iterable, >> List, Ranged, Summable A string of >> characters. Each character in the string is a 32-bit Unicode character. >> The internal UTF-16 encoding is hidden from clients. A string is a >> Category of its Characters, and of its substrings: > > I'm trying to figure this out. Reading the docs hasn't answered this. If > each character in a string is a 32-bit Unicode character, and (as can be > seen in the examples) string indexing and slicing are supported, then > does string indexing mean counting from the beginning to see if there > were any surrogate pairs? I can't figure out what that means, since it contradicts itself. First it says *every* character is 32-bits (presumably UTF-32), then it says that internally it uses UTF-16. At least one of these statements is wrong. (They could both be wrong, but they can't both be right.) Unless they have done something *really* clever, the language designers lose a hundred million points for screwing up text strings. There is *absolutely no excuse* for a new, modern language with no backwards compatibility concerns to choose one of the three bad choices: * choose UTF-16 or UTF-8, and have O(n) primitive string operations (like Haskell and, apparently, Ceylon); * or UTF-16 without support for the supplementary planes (which makes it virtually UCS-2), like Javascript; * choose UTF-32, and use two or four times as much memory as needed. -- Steven -- https://mail.python.org/mailman/listinfo/python-list
Re: Python Beginner
On 18/11/2013 10:18, ngangsia akumbo wrote: On Saturday, November 16, 2013 11:41:31 PM UTC+1, Chris Angelico wrote: On Sun, Nov 17, 2013 at 9:25 AM, ngangsia akumbo wrote: I am called Richard m from western Africa, Cameroon. It was a pleasure for me to join this group. Hi! Welcome! secondly, i wihs to start a small company after learning how to code I am learning python very broadly, meaning i am not concentrating on a single section. I wish to know the language and be able to apply it to any location in the field of tech. i Need some advise on how, and what python can help me setup a business? Frankly, my advice to you is: Don't. You've been writing code for a few months, that's great; but starting a company is a completely different thing to do. I would recommend that you primarily code purely for pleasure - that way, if you mess something up, you don't lose money. And then if you want to go professional, get a salaried job at someone else's company, rather than starting your own. It's a HUGE job to run your own company, and that's not something your Python coding skill will help with. Tax, legal requirements, profitability... headaches you don't need. Now, if you're already experienced at running a business, and want to know what Python can do to make your life easier... that we can answer! There are all sorts of automation and convenience jobs you can do with Python. But that's quite different from what I think you're asking here. ChrisA I HAVE NOT HEARD FROM YOU Please don't shout. Please read and action this https://wiki.python.org/moin/GoogleGroupsPython to prevent the double spaced lines we see above, thanks. -- Python is the second best programming language in the world. But the best has yet to be invented. Christian Tismer Mark Lawrence -- https://mail.python.org/mailman/listinfo/python-list
Re: Oh look, another language (ceylon)
On Tue, Nov 19, 2013 at 12:31 AM, Steven D'Aprano wrote: > Unless they have done something *really* clever, the language designers > lose a hundred million points for screwing up text strings. There is > *absolutely no excuse* for a new, modern language with no backwards > compatibility concerns to choose one of the three bad choices: Yeah, but this compiles to JS, so it does have that backward compat issue - unless it's going to represent a Ceylon string as something other than a JS string (maybe an array of integers??), which would probably cost even more. You're absolutely right, except in the premise that Ceylon is a new and unshackled language. At least this way, if anyone actually implements Ceylon directly in the browser, it can use something smarter as its backend, without impacting code in any way (other than performance). I'd much rather they go for O(n) string primitives than maintaining the user-visible UTF-16 bug. ChrisA -- https://mail.python.org/mailman/listinfo/python-list
Re: Source code of Python to Javascsript translator
On 18/11/2013 11:45, Salvatore DI DIO wrote: I don't know about other people here, but I'm a bit leery of just downloading Windows binaries from people and running them. Is your source code available? Is this an open source / free project? ChrisA You are completly right :-) Here is the source code : https://github.com/charleslaw/rapydscript_online You can see other demos here : http://salvatore.pythonanywhere.com/RapydScript The official site of RapydScript : http://rapydscript.pyjeon.com/ e assumptions before testing : Here is the official site: http://rapydscript.pyjeon.com/ Regards Salvatore Would you please read and action this https://wiki.python.org/moin/GoogleGroupsPython to prevent us seeing the double line spacing above, thanks. -- Python is the second best programming language in the world. But the best has yet to be invented. Christian Tismer Mark Lawrence -- https://mail.python.org/mailman/listinfo/python-list
Re: If you continue being rude i will continue doing this
Please try to restrain yourself. I understand the urge to vent your frustration but it will accomplish nothing. We are all frustrated by Nikos's behaviour but we all rely on each other not to increase that frustration through responding to his threads and thus prolonging their duration. -- Antoon Pardon Op 18-11-13 10:31, YBM schreef: > You are the one being rude, Nikos. > > Moreover you are a nut, installing pygeoip works fine > for me: > > # pip install pygeoip > Downloading/unpacking pygeoip > Downloading pygeoip-0.3.0.tar.gz (97Kb): 97Kb downloaded > Running setup.py egg_info for package pygeoip > > Installing collected packages: pygeoip > Running setup.py install for pygeoip > > Successfully installed pygeoip > Cleaning up... > > you've probably completely messed up your system, as you > are completely incompetent as a UNIX/Linux admin and broke > your system. > > > > Le 17/11/2013 23:31, Ferrous Cranus a écrit : >> == >> root@secure [~/distribute-0.6.49]# pip install pygeoip >> Downloading/unpacking pygeoip >> Downloading pygeoip-0.3.0.tar.gz (97kB): 97kB downloaded >> Running setup.py egg_info for package pygeoip >> Traceback (most recent call last): >> File "", line 16, in >> File "/usr/lib/python3.3/encodings/ascii.py", line 26, in decode >> return codecs.ascii_decode(input, self.errors)[0] >> UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position >> 1098: ordinal not in range(128) >> Complete output from command python setup.py egg_info: >> Traceback (most recent call last): >> >> File "", line 16, in >> >> File "/usr/lib/python3.3/encodings/ascii.py", line 26, in decode >> >> return codecs.ascii_decode(input, self.errors)[0] >> >> UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position >> 1098: ordinal not in range(128) >> == >> > -- https://mail.python.org/mailman/listinfo/python-list
Doc generation from annotated source code
I just started rewritting my project from python 2 to python 3. I noticed that there are these new parameter and return value annotations. I have docstrings everywhere in my project, but I plan to convert many of them into annotations. The question is: what kind of auto documenting system should I use for this? Previously I have used Sphinx. Is it okay to use that for python 3 source code? Is there a better alternative? Thanks -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean. -- https://mail.python.org/mailman/listinfo/python-list
Setting longer default decimal precision
Using 1/3 as an example, >>> 1./3 0. >>> print "%.50f" % (1./3) 0.1482961625624739099293947219848633 >>> print "%.50f" % (10./3) 3.33348136306995002087205648422241210938 >>> print "%.50f" % (100./3) 33.33570180911920033395290374755859375000 which seems to mean real (at least default) decimal precision is limited to "double", 16 digit precision (with rounding error). Is there a way to increase the real precision, preferably as the default? For instance, UBasic uses a "Words for fractionals", f, "Point(f)" system, where Point(f) sets the decimal display precision, .1^int(ln(65536^73)/ln(10)), with the last few digits usually garbage. Using "90*(pi/180)*180/pi" as an example to highlight the rounding error (4 = UBasic's f default value): Point(2)=.1^09: 89.99306 Point(3)=.1^14: 89.99944 Point(4)=.1^19: 89.9998772 Point(5)=.1^24: 89.9217 Point(7)=.1^33: 89.99823 Point(10)=.1^48: 89.7686 Point(11)=.1^52: 89.9632 If not in the core program, is there a higher decimal precision module that can be added? -- Kill Hector dead, because Desi sent Milli. -- https://mail.python.org/mailman/listinfo/python-list
HTTP Header Capitalization in urllib.request.AbstractHTTPHandler (Python 3.3)
Hello everyone, I was hoping for some advice in dealing with an edge case related to Python's HTTP Header handling. Python is correctly assuming that the HTTP header field name (eg Content-Type) is case insensitive, but I have a webservice I am interacting with that does not follow the standards. I am passing in the header "SOAPAction" and do_request of AbstractHTTPHandler is applying title() to the string, leading to the field name being "Soapaction", which the server does not recognize. So my question is, what does everyone suggest is the best solution for being able to pass a case sensitive header to the server? Thanks! Logan -- https://mail.python.org/mailman/listinfo/python-list
Re: Oh look, another language (ceylon)
Chris Angelico writes: > On Mon, Nov 18, 2013 at 11:29 PM, Ian Kelly wrote: >> >> On Nov 18, 2013 3:06 AM, "Chris Angelico" wrote: >>> >>> I'm trying to figure this out. Reading the docs hasn't answered this. >>> If each character in a string is a 32-bit Unicode character, and (as >>> can be seen in the examples) string indexing and slicing are >>> supported, then does string indexing mean counting from the beginning >>> to see if there were any surrogate pairs? >> >> The string reference says: >> >> """Since a String has an underlying UTF-16 encoding, certain operations are >> expensive, requiring iteration of the characters of the string. In >> particular, size requires iteration of the whole string, and get(), span(), >> and segment() require iteration from the beginning of the string to the >> given index.""" >> >> The get and span operations appear to be equivalent to indexing and slicing. > > Right, that's what I was looking for and didn't find. (I was searching > the one-page reference manual rather than reading in detail.) So, yes, > they're O(n) operations. Thanks for hunting that down. > > ChrisA It would be so much better to use the Flexible String Representation. -- Piet van Oostrum WWW: http://pietvanoostrum.com/ PGP key: [8DAE142BE17999C4] -- https://mail.python.org/mailman/listinfo/python-list
Re: Oh look, another language (ceylon)
On Mon, 18 Nov 2013 13:31:33 +, Steven D'Aprano wrote: > On Mon, 18 Nov 2013 21:04:41 +1100, Chris Angelico wrote: > >> On Mon, Nov 18, 2013 at 8:44 PM, wrote: >>> string >>> Satisfied Interfaces: Category, Cloneable>, >>> Collection, Comparable, >>> Correspondence, Iterable, >>> List, Ranged, Summable A string of >>> characters. Each character in the string is a 32-bit Unicode >>> character. The internal UTF-16 encoding is hidden from clients. A >>> string is a Category of its Characters, and of its substrings: >> >> I'm trying to figure this out. Reading the docs hasn't answered this. >> If each character in a string is a 32-bit Unicode character, and (as >> can be seen in the examples) string indexing and slicing are supported, >> then does string indexing mean counting from the beginning to see if >> there were any surrogate pairs? > > I can't figure out what that means, since it contradicts itself. First > it says *every* character is 32-bits (presumably UTF-32), then it says > that internally it uses UTF-16. At least one of these statements is > wrong. (They could both be wrong, but they can't both be right.) Mystery solved: characters are only 32-bits in isolation, when plucked out of a string. http://ceylon-lang.org/documentation/tour/language-module/ #characters_and_character_strings Ceylon strings are arrays of UTF-16 characters. However, the language supports characters in the Supplementary Multilingual Plane by having primitive string operations walk the string a code point at a time. When you extract a character out of the string, Ceylon gives you four bytes. Presumably, if you do something like like this: # Python syntax, not Ceylon mystring = "a\U0010" c = mystring[0] d = mystring[1] c will consist of bytes 0061 and d will consist of the surrogate pair DBFF DFFF (the UTF-16BE encoding of code point U+10, modulo big- endian versus little-ending). Or possibly the UTF-32 encoding, 0010 . I suppose that's not terrible, except for the O(n) string operations which is just dumb. Yes, it's better than buggy, broken strings. But still dumb, because those aren't the only choices. For example, for the sake of an extra two bytes at the start of each string, they could store a flag and a length: - one bit to flag whether the string contained any surrogate pairs or not; if not, string ops could assume two-bytes per char and be O(1), if the flag was set it could fall back to the slower technique; - 15 bits for a length. 15 bits give you a maximum length of 32767. There are ways around that. E.g. a length of 0 through 32766 means exactly what it says; a length of 32767 means that the next two bytes are part of the length too, giving you a maximum of 4294967295 characters per string. That's an 8GB string. Surely big enough for anyone :-) That gives you O(1) length for *any* string, and O(1) indexing operations for those that are entirely in the BMP, which will be most strings for most people. It's not 1970 anymore, it's time for strings to be treated more seriously and not just as dumb arrays of char. Even back in the 1970s Pascal had a length byte. It astonishes me that hardly any low- level language follows their lead. -- Steven -- https://mail.python.org/mailman/listinfo/python-list
Re: If you continue being rude i will continue doing this
Ferrous Cranus writes: > No i haven't broke it at all. > Everything work as they should. > > The refusal of 'pygeoip' to install turned out to be the local setting in my > new VPS. > > So i have changes it to: > > export LANG = en_US.UTF-8 > > and then 'pip install pygeoip' was successful. > > Trying to figure out how to install-setup EPEL repository along with > python3 && python3-pip and 2 extra modules my script needed in my new > VPS have costed 4-5 of my life and of my mental health, while if you > just helped a bit these would have been done in a couple of hours. How could anyone have known that this was the problem? AFIAK you didn't even tell about the VPS. And moreover this wasn't a Python problem, so off topic here. -- Piet van Oostrum WWW: http://pietvanoostrum.com/ PGP key: [8DAE142BE17999C4] -- https://mail.python.org/mailman/listinfo/python-list
Re: Setting longer default decimal precision
On Mon, 18 Nov 2013 14:14:33 +, Kay Y. Jheallee wrote: > Using 1/3 as an example, [snip examples] > which seems to mean real (at least default) decimal precision is limited > to "double", 16 digit precision (with rounding error). That's because Python floats actually are implemented as C doubles. And no, they're not configurable. However, Python also has a Decimal class, which (unlike floats) are actually decimal rather than binary, and include configurable precision. There is a performance hit -- prior to Python version 3.3, Decimal was quite slow, but in 3.3 they got a major speed increase and are now nearly as fast as floats. An example: py> import decimal py> x = decimal.Decimal(1)/3 py> decimal.getcontext().prec = 50 py> y = decimal.Decimal(1)/3 py> print(x, y) 0. 0.33 -- Steven -- https://mail.python.org/mailman/listinfo/python-list
Re: Oh look, another language (ceylon)
On Wed, 13 Nov 2013 14:33:27 -0500, Neal Becker wrote:
> http://ceylon-lang.org/documentation/1.0/introduction/
I must say there are a few questionable design choices, in my opinion,
but I am absolutely in love with the following two features:
1) variables are constant by default;
2) the fat arrow operator.
By default, "variables" can only be assigned to once, and then not re-
bound:
String bye = "Adios";//a value
bye = "Adeu"; //compile error
variable Integer count = 0; //a variable
count = 1; //allowed
(I'm not sure how tedious typing "variable" will get, or whether it will
encourage a more functional-programming approach. But I think that's a
very exciting idea and kudos to the Ceylon developers for running with
it!)
Values can be recalculated every time they are used, sort of like mini-
functions, or thunks:
String name { return firstName + " " + lastName; }
Since this is so common in Ceylon, they have syntactic sugar for it, the
fat arrow:
String name => firstName + " " + lastName;
If Python steals this notation, we could finally bring an end to the
arguments about early binding and late binding of default arguments:
def my_function(a=[early, binding, happens, once],
b=>[late, binding, happens, every, time]
):
...
Want!
These two features alone may force me to give Ceylon a try.
--
Steven
--
https://mail.python.org/mailman/listinfo/python-list
Re: Oh look, another language (ceylon)
On 18/11/2013 14:31, Piet van Oostrum wrote: Chris Angelico writes: On Mon, Nov 18, 2013 at 11:29 PM, Ian Kelly wrote: On Nov 18, 2013 3:06 AM, "Chris Angelico" wrote: I'm trying to figure this out. Reading the docs hasn't answered this. If each character in a string is a 32-bit Unicode character, and (as can be seen in the examples) string indexing and slicing are supported, then does string indexing mean counting from the beginning to see if there were any surrogate pairs? The string reference says: """Since a String has an underlying UTF-16 encoding, certain operations are expensive, requiring iteration of the characters of the string. In particular, size requires iteration of the whole string, and get(), span(), and segment() require iteration from the beginning of the string to the given index.""" The get and span operations appear to be equivalent to indexing and slicing. Right, that's what I was looking for and didn't find. (I was searching the one-page reference manual rather than reading in detail.) So, yes, they're O(n) operations. Thanks for hunting that down. ChrisA It would be so much better to use the Flexible String Representation. I agree but approximately 0.000142857% of the world population disagrees. -- Python is the second best programming language in the world. But the best has yet to be invented. Christian Tismer Mark Lawrence -- https://mail.python.org/mailman/listinfo/python-list
Re: [Python-ideas] Unicode stdin/stdout
Why do you need to force the UTF-8 encoding? Your locale is not correctly configured? It's better to set PYTHONIOENCODING rather than replacing sys.stdout/stderr at runtime. There is an open issue to add a TextIOWrapper.set_encoding() method: http://bugs.python.org/issue15216 Victor -- https://mail.python.org/mailman/listinfo/python-list
Building a tree-based readline completer
Hello all, for my project[1] I am trying to build a replacement completer for
python's Cmd class which accepts a tree of command and option names[2]. I've
been trying all sorts of approaches (like the ARLCompleter mention here:
https://sites.google.com/site/xiangyangsite/home/technical-tips/software-development/python/python-readline-completions),
but so far am up for a loss as to how to get this done.
Can anyone help me out here? I've placed a bounty on this with BountySource:
https://www.bountysource.com/issues/1319877-implement-a-generalized-completer-function-validator-and-filename-completer.
Thanks!
- Roey Katz
Bywaf developer
(1) Bywaf, a command-line tool and framework for bypassing web application
firewalls and more: https://www.owasp.org/index.php/OWASP_Bywaf_Project
(2) What I'm looking for is a completer which accepts a tree of commands and
option names. Option names complete with a '=', and commands and sub-commands
complete with a ' ', as in this hypothetical example:
> com
command com2
> comm
> command
> command OPT
OPTION_1 OPTION_2
> command OPTION_1
> command OPTION_1=
> command OPTION_1=
Ideally, I'd like to be able to pass in a dictionary tree of commands and
options, for example:
params_tree = {
'command': {
'OPTION_1=':None,
'OPTION_2=':None,
}
'com2': None,
}
Where '=' indicates an option name. An example of a more general tree, with
more special symbols, would look like this:
# dictionary passed into the general completer function
params_tree = {
# tab-complete 'quit'
'quit':None,
# tab-complete "TARGET_IP", and allow any string as its value
'TARGET_IP=': '*',
# tab-complete "drive".
'drive': {
# tab-complete "car", "truck", "bike" and also allow any other string.
'VEHICLE=': ('car', 'truck, 'bike', '*'),
# tab-complete "hard disk", "sd card" and "remote share".
'SAVE=': ('hard disk', 'sd card', 'remote share')
},
# tab-complete "eat"
'eat': {
# tab-complete "FRUIT=", then tab-complete 'apple' or 'pear'. At the
end of a successful completion, an additonal results in an offer to
insert a comma and complete additional items
'FRUIT=+': ('apple', 'pear'),
# tab-complete "FRUIT=", then tab-complete 'water' or 'juice'. At the
end of a successful completion, an additonal results in an offer to
insert a comma and complete additional items
'DRINK=+': ('water', 'juice')
},
# tab-complete "cat", then tab-complete filenames. At the end of a
successful completion, close the quote, then upon another , offer to
complete with a comma, allowing for completion of additional items
'cat': 'FILE=/+'
}
Notes:
An element in this dictionary can take None, a string, a tuple or a dictionary
of more elements.
* "=' indicates that this is a plugin option.
* "/' indicates this plugin option should complete beginning with the path
specified after the =, provided that this path meets security guidelines (i.e.
it resolves to a path under a specific directory). A plugin option named
"FILENAME" marked in this way shall complete to FILENAME=" instead of FILENAME=.
* "+" indicates that this option can be specified more than once. Multiple
values will be collected into a list instead of a string.
* a "*" indicates that this option accepts any single value. User can
specify any number of options, but only one of command from the same level
Additionally, the tree completer should should support escaping characters and
nested quoted strings (alternating single- and double-quotes), and all in
Unicode.
--
https://mail.python.org/mailman/listinfo/python-list
Re: Unicode stdin/stdout
On 18/11/2013 15:25, Victor Stinner wrote: Why do you need to force the UTF-8 encoding? Your locale is not correctly configured? It's better to set PYTHONIOENCODING rather than replacing sys.stdout/stderr at runtime. There is an open issue to add a TextIOWrapper.set_encoding() method: http://bugs.python.org/issue15216 Victor well reportlab does all sorts of character sets and languages; if I put in a quick print to try and debug stuff I prefer that it create some output rather than create an error of its own. In the real world it's not possible always to know what the output contains (especially in error cases) so having any restriction on the allowed textual outputs is a bit constraining. The utf8 encoding should allow any unicode to be properly encoded, rendering is another issue and I expect some garbage when things are going wrong. I think you are right and I should use PYTHONIOENCODING to set this up. In the codec writer approach I think it's harder to get interactive behaviour working properly (the output seems to be buffered differently). My attempts to make windows xp use code page 65001 everywhere have been fairly catastrophic eg non-booting :( -- Robin Becker -- https://mail.python.org/mailman/listinfo/python-list
Is curses module thread-safe?
I'm working on a program that uses the curses module, and I'd like to use multiple threads (using the threading module). Is the curses module in the standard library usable from multile threads? I found a discussion from about 15 years ago that indicated it wasn't at that time. The example being discussed was that when one thread calls a blocking getch(), the GIL isn't released and wall threads stop. The suggesting work-around was to wrap the call to getch() with a select() on sys.stdin. Is that still an issue? If two threads call addstr() "simultaneously" is it handled properly? Or do all curses calls need to be made by a single thread? -- Grant Edwards grant.b.edwardsYow! It don't mean a at THING if you ain't got gmail.comthat SWING!! -- https://mail.python.org/mailman/listinfo/python-list
Re: Building a tree-based readline completer
On Monday 2013 November 18 07:47, [email protected] wrote: > I am trying to build a replacement completer for python's Cmd class These related packages may be of interest: http://pypi.python.org/pypi/rl http://pypi.python.org/pypi/kmd -- Yonder nor sorghum stenches shut ladle gulls stopper torque wet strainers. -- https://mail.python.org/mailman/listinfo/python-list
Re: Automation
On 2013-11-16, Larry Hudson wrote: >> And yes, people can _easily_ tell the difference between errors >> caused by being lazy/sloppy and errors caused by writing in a second >> language. >> > Not to start another flame-war (I hope), but our Greek friend is a > good example of that. It's not surprising he has so much trouble > with his code. > > However, that's just a side comment. I wanted to mention my personal > peeve... > > I notice it's surprisingly common for people who are native > English-speakers to use 'to' in place of 'too' (to little, to late.), > "your" in place of "you're" (Your an idiot!) and 'there' in place of > 'their' (a foot in there mouth.) There are similar mis-usages, of > course, but those three seem to be the most common. And I'm convinced that the more proficient the typist, the more often one makes those sorts of mistakes when composing text. If you've got to hunt and peck on the keyboard, then you've got to actually think about how each word is spelled, and you realize which one you're actually typing. If you're a proficient touch typist (and are typing something on-the-fly rather than transcribing), I think the "sound" of the word is more directly connected to the fingers without benefit of grammatical conext invervening to choose the correct homonym. I don't make those mistakes typing on a phone (where I have to actually think about the act of typing), but I do make them with a regular keyboard, where I don't have to think about mechanics of typing the words. OTOH, maybe that's just me... -- Grant Edwards grant.b.edwardsYow! I am having FUN... at I wonder if it's NET FUN or gmail.comGROSS FUN? -- https://mail.python.org/mailman/listinfo/python-list
Byteorder of audioop functions
Hi Is the byteorder (or endianness) of the functions in the audioop module somewhere specified or does anyone know how it behaves on different systems? On my little-endian system it matches the system's endianness: >>> import sys, audioop >>> sys.byteorder 'little' >>> audioop.lin2lin(b'\xff', 1, 2) b'\x00\xff' Michael -- https://mail.python.org/mailman/listinfo/python-list
Re: Building a tree-based readline completer
Thank you. In looking over these classes, I see though that even them, I would run against the same limitations, though. - Roey On Monday, November 18, 2013 11:41:20 AM UTC-5, xDog Walker wrote: > On Monday 2013 November 18 07:47, roey wrote: > > > I am trying to build a replacement completer for python's Cmd class > > > > These related packages may be of interest: > > > > http://pypi.python.org/pypi/rl > > http://pypi.python.org/pypi/kmd > > > > -- > > Yonder nor sorghum stenches shut ladle gulls stopper torque wet > > strainers. -- https://mail.python.org/mailman/listinfo/python-list
Re: Building a tree-based readline completer
On Monday, November 18, 2013 11:54:43 AM UTC-5, roey wrote: > Thank you. In looking over these classes, I see though that even them, I > would run against the same limitations, though. > > > > - Roey > > > > On Monday, November 18, 2013 11:41:20 AM UTC-5, xDog Walker wrote: > > > On Monday 2013 November 18 07:47, roey wrote: > > > > > > > I am trying to build a replacement completer for python's Cmd class > > > > > > > > > > > > These related packages may be of interest: > > > > > > > > > > > > http://pypi.python.org/pypi/rl > > > > > > http://pypi.python.org/pypi/kmd > > > > > > > > > > > > -- > > > > > > Yonder nor sorghum stenches shut ladle gulls stopper torque wet > > > > > > strainers. *even with them -- https://mail.python.org/mailman/listinfo/python-list
Re: Building a tree-based readline completer
On 18/11/2013 16:55, [email protected] wrote: On Monday, November 18, 2013 11:54:43 AM UTC-5, roey wrote: Thank you. In looking over these classes, I see though that even them, I would run against the same limitations, though. - Roey On Monday, November 18, 2013 11:41:20 AM UTC-5, xDog Walker wrote: On Monday 2013 November 18 07:47, roey wrote: I am trying to build a replacement completer for python's Cmd class These related packages may be of interest: http://pypi.python.org/pypi/rl http://pypi.python.org/pypi/kmd -- Yonder nor sorghum stenches shut ladle gulls stopper torque wet strainers. *even with them Would you please read and action this https://wiki.python.org/moin/GoogleGroupsPython to prevent us seeing the double line spacing above, thanks. -- Python is the second best programming language in the world. But the best has yet to be invented. Christian Tismer Mark Lawrence -- https://mail.python.org/mailman/listinfo/python-list
Re: Program Translation - Nov. 14, 2013
"Terry Reedy" wrote in message news:[email protected]... A couple of sentences of follow-up would have been sufficient. The experience that I have had over the years with Newsgroup posting is that it is generally better to try to be polite and answer as many questions as possible even when that results in more information being posted than might be necessary. Hopefully a discussion will then end quietly on a pleasant note. That approach seems to usually produce good results. Quite often people who are happy with the tone of the public Newsgroup discussion will send along some valuable information by E-mail. And that has been happening with this present discussion that will now continue in only the Fortran Newsgroup. -- https://mail.python.org/mailman/listinfo/python-list
Re: Program Translation - Nov. 14, 2013
"Joel Goldstick" wrote in message news:[email protected]... That being said, I'm guessing that this thing is used in some academic setting. If that's true, why not get a student (who will be much more versed in modern programming languages and techniques) to document and rewrite the code. When you start off with the requirement that the True BASIC appears to do calculations at a speed that is probably somewhere in the Fortran range. And as I stated, since someone volunteered to do some modernization work he gets to select whatever language he prefers. Also as I stated, I am now starting some discussions with scientists who actually use these types of data on a regular basis in order to get some input from them. Perhaps they might want to have some of their own programmers modernize the code. -- https://mail.python.org/mailman/listinfo/python-list
Re: Program Translation - Nov. 14, 2013
On Mon, Nov 18, 2013 at 12:15 PM, E.D.G. wrote: > "Terry Reedy" wrote in message > news:[email protected]... > > >> A couple of sentences of follow-up would have been sufficient. > > > The experience that I have had over the years with Newsgroup posting > is that it is generally better to try to be polite and answer as many > questions as possible even when that results in more information being > posted than might be necessary. Hopefully a discussion will then end > quietly on a pleasant note. > > That approach seems to usually produce good results. Quite often > people who are happy with the tone of the public Newsgroup discussion will > send along some valuable information by E-mail. And that has been happening > with this present discussion that will now continue in only the Fortran > Newsgroup. > > -- > https://mail.python.org/mailman/listinfo/python-list This is just plain senseless. Is the op a Bot? -- Joel Goldstick http://joelgoldstick.com -- https://mail.python.org/mailman/listinfo/python-list
Re: Building a tree-based readline completer
On Monday 2013 November 18 09:13, Mark Lawrence wrote: > On 18/11/2013 16:55, [email protected] wrote: > > On Monday, November 18, 2013 11:54:43 AM UTC-5, roey wrote: > >> Thank you. In looking over these classes, I see though that even them, [snip] > Would you please read and action this > https://wiki.python.org/moin/GoogleGroupsPython to prevent us seeing the > double line spacing above, thanks. I am going to prevent seeing your repetition of each of these messages by killfiling you. > > -- > Python is the second best programming language in the world. > But the best has yet to be invented. Christian Tismer You sig is, imho, nonsensical. > > Mark Lawrence -- Yonder nor sorghum stenches shut ladle gulls stopper torque wet strainers. -- https://mail.python.org/mailman/listinfo/python-list
Re: sendmail library ?!
On 2013-11-18, Tim Roberts wrote:
> Tamer Higazi wrote:
>>
>>I am looking for a python library that does mailing directly through
>>"sendmail".
>>
>>When I look into the docs, I see only an "smtlip" library but nothing
>>that could serve with sendmail or postfix.
>>
>>Any ideas ?!
>
> Remember that
>import smtplib
>s = smtplib.SMTP("localhost")
> usually communicates directly with the local server, whether it be sendmail
> or postfix or whatever.
It's not uncommon for a machine that doesn't receive mail to have
sendmail/postfix/whatever installed for the purpose of sending mail
only. In that case, there might not be anybody listening on
(localhost,smtp). The traditional way to send mail on a Unix system is
to invoke the 'sendmail' command with appropriate command-line
arguments and then shove the message into sendmail's stdin.
It's pretty trivial -- here's a simple "sendmail library":
def sendmail(frm,to,msg):
with os.popen("sendmail -f '%s' '%s'" % (frm,to), "w") as p:
p.write(msg)
That works on my system, but YMMV. You might like more options (like
automagically parsing frm/to address from msg headers or whatnot), and
those are left as an exercise for the reader.
--
Grant Edwards grant.b.edwardsYow! Did an Italian CRANE
at OPERATOR just experience
gmail.comuninhibited sensations in
a MALIBU HOT TUB?
--
https://mail.python.org/mailman/listinfo/python-list
Glade Survey
Hello everybody! We (Glade Developers) are conducting a user survey which will help us take informed decisions to improve the overall developer experience. So please take a few minutes to complete the survey, we appreciate it! https://glade.gnome.org/registration.html Cheers Juan Pablo, on behalf of the Glade team What is Glade? Glade is a RAD tool to enable quick & easy development of user interfaces for the GTK+ [1] toolkit and the GNOME [2] desktop environment. The user interfaces designed in Glade are saved as XML, and by using the GtkBuilder [3] GTK+ object these can be loaded by applications dynamically as needed. By using GtkBuilder, Glade XML files can be used in numerous programming languages [4] including C, C++, C#, Vala, Java, Perl, Python,and others. Glade is Free Software released under the GNU GPL License [5] [1] http://www.gtk.org/ [2] http://www.gnome.org/ [3] http://library.gnome.org/devel/gtk/stable/GtkBuilder.html [4] http://www.gtk.org/language-bindings.php [5] http://www.fsf.org/licensing/licenses/gpl.html -- https://mail.python.org/mailman/listinfo/python-list
Re: Byteorder of audioop functions
18.11.13 18:51, Michael Schwarz написав(ла): Is the byteorder (or endianness) of the functions in the audioop module somewhere specified or does anyone know how it behaves on different systems? On my little-endian system it matches the system's endianness: It always matches the system's endianness. -- https://mail.python.org/mailman/listinfo/python-list
Re: The Name of Our Religion Is Islam
On Monday, November 18, 2013 8:52:06 AM UTC-8, BV BV wrote: > The Name of Our Religion Is Islam Incorrect. The name of YOUR religion is apparently "Spam." I have been flagging your posts. They do not belong in comp.lang.python. Please find a forum which discusses religion. Thank you. -- https://mail.python.org/mailman/listinfo/python-list
ANN: Wing IDE 5.0 released
Hi, Wingware has released version 5.0 of Wing IDE, our integrated development environment designed specifically for the Python programming language. Wing IDE provides a professional quality code editor with vi, emacs, and other key bindings, auto-completion, call tips, refactoring, context-aware auto-editing, a powerful graphical debugger, version control, unit testing, search, and many other features. For details see http://wingware.com/ This new major release includes: * Now runs native on OS X * Draggable tools and editors * Configurable toolbar and editor & project context menus * Optionally opens a different sets of files in each editor split * Lockable editor splits * Optional Python Turbo completion (context-appropriate completion on all non-symbol keys) * Sharable color palettes and syntax highlighting configurations * Auto-editing is on by default (except some operations that have a learning curve) * Named file sets * Sharable launch configurations * Asynchronous I/O in Debug Probe and Python Shell * Expanded and rewritten tutorial * Preliminary support for Python 3.4 For details see http://wingware.com/wingide/whatsnew For a complete change log see http://wingware.com/pub/wingide/5.0.0/CHANGELOG.txt Free trial: http://wingware.com/wingide/trial Downloads: http://wingware.com/downloads Feature matrix: http://wingware.com/wingide/features More information: http://wingware.com/ Sales: http://wingware.com/store/purchase Upgrades: https://wingware.com/store/upgrade Questions? Don't hesitate to email us at [email protected]. Thanks, -- Stephan Deibel Wingware | Python IDE Advancing Software Development www.wingware.com -- https://mail.python.org/mailman/listinfo/python-list
Why do only callable objects get a __name__?
A few days ago, I asked about getting the original declared name of a function
or method, and learned about the __name__ attribute.
https://groups.google.com/forum/#!topic/comp.lang.python/bHvcuXgvdfA
Of course, I have used __name__ for years in the common expression "if __name__
== "__main__") to determine whether a particular module is being run or merely
imported. But until recently, I never went deeper than that.
I just created an object using collections.namedtuple, and was surprised to
discover that it didn't have a __name__ -- even though something that behaves
like __name__ is clearly accessible and printable. Here's some minimal Python
3.3.2 code and output:
=
from collections import namedtuple
MyNamedTupleClass = namedtuple("ANamedTuple", ("foo", "bar"))
nt = MyNamedTupleClass(1,2)
print(nt)
print(type(nt))
# print(nt.__name__) # this would raise an AttributeError
print(type(nt).__name__) # this is the desired output
=
ANamedTuple(foo=1, bar=2)
ANamedTuple
=
As you can see, I snooped around in the object's type. I found that the type,
rather than the object itself, had the __name__ I was seeking. I then read the
Python docs concerning __name__ and found that this attribute is restricted to
callable objects.
This leads me to ask two questions:
1. WHY do only callable objects get a __name__? A __name__ would seem to be a
useful feature for other types. Clearly, whoever implemented namedtuple
thought it was useful to retain and display that information as a part of the
string representation of the namedtuple (and I agree).
2. If I created a superclass of namedtuple which exposed
type(namedtuple).__name__ in the namespace of the namedtuple itself, would I be
doing anything harmful?
Thanks as always for your insights.
--
https://mail.python.org/mailman/listinfo/python-list
Re: Doc generation from annotated source code
On Mon, 18 Nov 2013 14:46:46 +0100 Laszlo Nagy wrote: > I just started rewritting my project from python 2 to python 3. I > noticed that there are these new parameter and return value annotations. > I have docstrings everywhere in my project, but I plan to convert many > of them into annotations. The question is: what kind of auto documenting > system should I use for this? Previously I have used Sphinx. Is it okay > to use that for python 3 source code? Is there a better alternative? The Python docs on http://docs.python.org/3/ are generated using Sphinx so it seems OK to do so for Python 3... ;) Johannes -- https://mail.python.org/mailman/listinfo/python-list
Re: Oh look, another language (ceylon)
On 18 Nov 2013 14:30:54 GMT, Steven D'Aprano wrote: - 15 bits for a length. 15 bits give you a maximum length of 32767. There are ways around that. E.g. a length of 0 through 32766 means exactly what it says; a length of 32767 means that the next two bytes are part of the length too, giving you a maximum of 4294967295 characters per string. That's an 8GB string. Surely big enough for anyone :-) If you use nearly all of the possible 2 byte values then adding 2 more bytes won't give you anywhere near 4 bI'll ion characters. You're perhaps thinking of bringing in four more bytes when the length exceeds 32k. -- DaveA -- https://mail.python.org/mailman/listinfo/python-list
Re: Why do only callable objects get a __name__?
On Monday, November 18, 2013 12:13:42 PM UTC-8, I wrote: > 2. If I created a superclass of namedtuple which exposed > type(namedtuple).__name__ in the namespace of the namedtuple itself, would I > be doing anything harmful? Sigh. Of course, that should read "subclass", not "superclass." Because I was thinking of a type being, in a sense, "higher up" the object hierarchy than an instance, I accidentally reached for the wrong word. -- https://mail.python.org/mailman/listinfo/python-list
Re: Why do only callable objects get a __name__?
On Mon, Nov 18, 2013 at 1:13 PM, John Ladasky
wrote:
> A few days ago, I asked about getting the original declared name of a
> function or method, and learned about the __name__ attribute.
>
> https://groups.google.com/forum/#!topic/comp.lang.python/bHvcuXgvdfA
>
> Of course, I have used __name__ for years in the common expression "if
> __name__ == "__main__") to determine whether a particular module is being run
> or merely imported. But until recently, I never went deeper than that.
>
> I just created an object using collections.namedtuple, and was surprised to
> discover that it didn't have a __name__ -- even though something that behaves
> like __name__ is clearly accessible and printable. Here's some minimal
> Python 3.3.2 code and output:
>
> =
>
> from collections import namedtuple
>
> MyNamedTupleClass = namedtuple("ANamedTuple", ("foo", "bar"))
> nt = MyNamedTupleClass(1,2)
> print(nt)
> print(type(nt))
> # print(nt.__name__) # this would raise an AttributeError
> print(type(nt).__name__) # this is the desired output
>
> =
>
> ANamedTuple(foo=1, bar=2)
>
> ANamedTuple
>
> =
>
> As you can see, I snooped around in the object's type. I found that the
> type, rather than the object itself, had the __name__ I was seeking. I then
> read the Python docs concerning __name__ and found that this attribute is
> restricted to callable objects.
>
> This leads me to ask two questions:
>
> 1. WHY do only callable objects get a __name__? A __name__ would seem to be
> a useful feature for other types. Clearly, whoever implemented namedtuple
> thought it was useful to retain and display that information as a part of the
> string representation of the namedtuple (and I agree).
Classes and functions are frequently kept in module namespaces, where
they are known by a specific name. The intent is that the __name__
attribute should match that name by which it is commonly referred.
Specific instances are not typically widely referred to by set names
in this way. They are more commonly stored in variables that are used
to hold a wide variety of objects.
In the namedtuple example that you give, it seems that you would want
the names of all instances of the ANamedTuple class to be the same
"ANamedTuple", and I really don't see what the purpose of giving them
all the same name would be.
> 2. If I created a superclass of namedtuple which exposed
> type(namedtuple).__name__ in the namespace of the namedtuple itself, would I
> be doing anything harmful?
Probably not. But why not just invent your own name attribute rather
than shadow the one that Python designates for classes and functions?
--
https://mail.python.org/mailman/listinfo/python-list
Re: Building a tree-based readline completer
On Mon, 18 Nov 2013 08:55:05 -0800 (PST), [email protected] wrote: On Monday, November 18, 2013 11:54:43 AM UTC-5, roey wrote: > Thank you. In looking over these classes, I see though that even them, I would run against the same limitations, though. Please don't double space your quotes. And if googlegarbage is doing it for you, then use a less buggy way of posting. -- DaveA -- https://mail.python.org/mailman/listinfo/python-list
Re: Glade Survey
On Monday 18 November 2013 16:04:14 Juan Pablo Ugarte did opine: > Hello everybody! > > We (Glade Developers) are conducting a user survey which will help us > take informed decisions to improve the overall developer experience. > > So please take a few minutes to complete the survey, we appreciate it! > > https://glade.gnome.org/registration.html Your certificate for https is invalid. So I won't. > > > Cheers > > Juan Pablo, on behalf of the Glade team > > > > What is Glade? > > Glade is a RAD tool to enable quick & easy development of user > interfaces for the GTK+ [1] toolkit and the GNOME [2] desktop > environment. > > The user interfaces designed in Glade are saved as XML, and by using the > GtkBuilder [3] GTK+ object these can be loaded by applications > dynamically as needed. > > By using GtkBuilder, Glade XML files can be used in numerous programming > languages [4] including C, C++, C#, Vala, Java, Perl, Python,and others. > > Glade is Free Software released under the GNU GPL License [5] > > [1] http://www.gtk.org/ > [2] http://www.gnome.org/ > [3] http://library.gnome.org/devel/gtk/stable/GtkBuilder.html > [4] http://www.gtk.org/language-bindings.php > [5] http://www.fsf.org/licensing/licenses/gpl.html Cheers, Gene -- "There are four boxes to be used in defense of liberty: soap, ballot, jury, and ammo. Please use in that order." -Ed Howdershelt (Author) Communicate! It can't make things any worse. A pen in the hand of this president is far more dangerous than 200 million guns in the hands of law-abiding citizens. -- https://mail.python.org/mailman/listinfo/python-list
Re: Why do only callable objects get a __name__?
On Monday, November 18, 2013 12:43:28 PM UTC-8, Ian wrote: > Classes and functions are frequently kept in module namespaces, where > they are known by a specific name. The intent is that the __name__ > attribute should match that name by which it is commonly referred. > > > > Specific instances are not typically widely referred to by set names > > in this way. They are more commonly stored in variables that are used > > to hold a wide variety of objects. > > > > In the namedtuple example that you give, it seems that you would want > the names of all instances of the ANamedTuple class to be the same > "ANamedTuple", and I really don't see what the purpose of giving them > all the same name would be. I am implementing a state machine. The outputs of the various states in the machine have variable contents. I started by making dictionaries for each state output, but I soon tired of the bracket-and-quote-mark syntax for referring to the contents of these state output dictionaries. That's why I am switching to named tuples. It doesn't affect the __name__ issue, since dictionaries also cannot be called. I want to capture the names of the executed states in a record of the state machine's history. This information is already encoded in the namedtuple's type. > > 2. If I created a superclass of namedtuple which exposed > > type(namedtuple).__name__ in the namespace of the namedtuple itself, would > > I be doing anything harmful? > > Probably not. I just thought I would ask. > But why not just invent your own name attribute rather > than shadow the one that Python designates for classes and functions? I will never write to this attribute, only read it. And since the information I want is already there (albeit in a strange place), I am inclined to use it. -- https://mail.python.org/mailman/listinfo/python-list
Re: Why do only callable objects get a __name__?
On 11/18/2013 3:13 PM, John Ladasky wrote: Of course, I have used __name__ for years in the common expression "if __name__ == "__main__") to determine whether a particular module is being run or merely imported. This true statement invalidates your subject line ;-). All modules have a __name__. The main module has the name (__name__) '__main__'. (A file named '__main__.py' also has special meaning. If one does 'python -m package' on a command line and 'package' is a directory with '__init__.py', 'package/__main__.py' is executed as the main module '__main__'. 1. WHY do only callable objects get a __name__? Why do you think this? Is there a mistake in the doc? -- Terry Jan Reedy -- https://mail.python.org/mailman/listinfo/python-list
Re: Why do only callable objects get a __name__?
On Monday, November 18, 2013 1:11:08 PM UTC-8, Terry Reedy wrote: > On 11/18/2013 3:13 PM, John Ladasky wrote: > > > Of course, I have used __name__ for years in the common expression "if > > __name__ == '__main__'") to determine whether a particular module is being > > run or merely imported. > > This true statement invalidates your subject line ;-). All modules have > a __name__. Yes, I thought about this before I posted. I figured that, if I investigated further I would discover that there was a __main__ function that was being called. > > 1. WHY do only callable objects get a __name__? > > Why do you think this? Is there a mistake in the doc? Quote below from http://docs.python.org/3/reference/datamodel.html: === Callable types These are the types to which the function call operation (see section Calls) can be applied: User-defined functions A user-defined function object is created by a function definition (see section Function definitions). It should be called with an argument list containing the same number of items as the function’s formal parameter list. Special attributes: Attribute Meaning __name__The function’s name Writable === Perhaps I'm inferring too much from slightly-vague documentation, and my recent experience with objects that cannot be called? Or perhaps the information that I need to read is somewhere in the documentation other than where I have looked? Still puzzling over this... I can easily hack a solution as Terry suggested, but it's not elegant, and that kind of thing bugs me. -- https://mail.python.org/mailman/listinfo/python-list
Re: [ANN] Pythonium Core 0.2.5
2013/11/18 Amirouche Boubekki > > 2013/11/17 Salvatore DI DIO > >> Are lists comprehensions are featured in Veloce ? >> > > Ah! Good question, I did not think about it can probably add it to Core. > Thanks > It's done in last release, dubbed 0.3.0 just use pip to install it. Also: - fixed the test suite - argument unpacking... - generated code is now properly indented I hope it's good enough. Cheers, Amirouche -- https://mail.python.org/mailman/listinfo/python-list
Re: [Python-ideas] Unicode stdin/stdout
On Mon, Nov 18, 2013, at 7:33, Robin Becker wrote: > UTF-8 stuff This doesn't really solve the issue I was referring to, which is that windows _console_ (i.e. not redirected file or pipe) I/O can only support unicode via wide character (UTF-16) I/O with a special function, not via using byte-based I/O with the normal write function. -- https://mail.python.org/mailman/listinfo/python-list
Re: understanding someone else's program
C. Ng wrote: > Hi all, > > Please suggest how I can understand someone else's program where > - documentation is sparse > - in function A, there will be calls to function B, C, D and in those > functions will be calls to functions R,S,T and so on so forth... > making it difficult to trace what happens to a certain variable > > Am using ERIC4 IDE. To help for documentation, you may test pycallgraph, eventually depgraph if there are multiple modules. http://pycallgraph.slowchop.com/en/master/ http://www.tarind.com/depgraph.html A+ Laurent. -- Laurent POINTAL - [email protected] -- https://mail.python.org/mailman/listinfo/python-list
Re: Doc generation from annotated source code
On Monday, November 18, 2013 8:46:46 AM UTC-5, Laszlo Nagy wrote: > I just started rewritting my project from python 2 to python 3. I > noticed that there are these new parameter and return value annotations. > I have docstrings everywhere in my project, but I plan to convert many > of them into annotations. The question is: what kind of auto documenting > system should I use for this? Previously I have used Sphinx. Is it okay > to use that for python 3 source code? Is there a better alternative? > > Thanks If you don't know how to generate your docs yet, how have you decided that you want to change your docstrings into annotations? Annotations have no standard semantics, so everyone using them is using them differently. --Ned. -- https://mail.python.org/mailman/listinfo/python-list
Re: Why do only callable objects get a __name__?
On Mon, 18 Nov 2013 12:13:42 -0800, John Ladasky wrote:
> I just created an object using collections.namedtuple, and was surprised
> to discover that it didn't have a __name__
I'm not sure why you're surprised. Most objects don't have names,
including regular tuples:
py> some_tuple = (23, 42)
py> some_tuple.__name__
Traceback (most recent call last):
File "", line 1, in
AttributeError: 'tuple' object has no attribute '__name__'
Remember, Python has two distinct concepts of names: the name that an
object knows itself by, and the variable name that it is bound to.
Objects may be bound to zero, one, or more variable names. Here are some
examples of the later:
print 42 # zero name
x = 42 # one name
x = y = z = 42 # three names
It simply isn't practical or meaningful to go backwards from the object
42 to the variable name(s) it is bound to -- in the first example, there
is no variable name at all; in the third, there are three. Even if you
wanted to do it, it would be a performance killer. So if you have any
thought that "the name of an object" should be the name of the variable,
scrub that from your head, it will never fly.
That leaves us with the name that objects know themselves by. For the
rest of this post, any time I talk about a name, I always mean the name
an object knows itself by, and never the variable name it is bound to (if
there is such a variable name).
As a general rule, names aren't meaningful or useful for objects. To
start with, how would you give it a name, what syntax would you use? What
would you expect these examples to print?
import random
random.random().__name__
data = [23, 17, 99, 42]
print data[1].__name__
In general, objects are *anonymous* -- they have no inherent name.
Instances come into being in all sorts of ways, they live, they die,
they're garbage-collected by the compiler. They have no need for
individual names, and no way to be given one.
But if you insist on giving them one, you can give it a go. But I
guarantee that (1) you'll find it a lot less useful, and (2) a lot more
inconvenient than you expected:
class NamedList(list):
def __new__(cls, name, *args):
obj = super(NamedList, cls).__new__(cls, *args)
obj.__name__ = name
return obj
def __init__(self, name, *args):
super(NamedList, self).__init__(*args)
py> print NamedList("fred", [1, 2, 3, 4, 5]).__name__
fred
So it works, but what a drag, and you don't get much for the effort.
The three obvious exceptions are:
- modules
- classes/types
- functions/methods
In the first case, modules, there is an obvious interpretation of what
the name ought to be: the filename minus the extension. Since the module
knows where it came from, it can know it's own name:
py> import re
py> re.__name__
're'
Even if you bind the module object to a different variable name, it knows
its own inherent name:
py> import math as fibble
py> print fibble.__name__
math
For functions and classes, such names are especially useful, for
debugging and error messages:
py> def one_over(x):
... return 1.0/x
...
py> one_over(0)
Traceback (most recent call last):
File "", line 1, in
File "", line 2, in one_over
ZeroDivisionError: float division by zero
Notice the second last line, where it gives the function's name? That
would be impossible if callables (functions, classes) didn't know their
own name. You'd get something like:
File "", line 2, in
which would be useless for debugging. So how fortunately that there is
obvious and simple syntax for setting the name of functions and classes:
class This_Is_The_Class_Name:
def this_is_the_function_name(self):
...
> -- even though something that
> behaves like __name__ is clearly accessible and printable. Here's some
> minimal Python 3.3.2 code and output:
>
> =
>
> from collections import namedtuple
>
> MyNamedTupleClass = namedtuple("ANamedTuple", ("foo", "bar"))
Here you define a class, called "ANamedTuple". Unfortunately, it doesn't
use the standard class syntax, a minor limitation and annoyance of
namedtuples, and so you're forced to give the class name "ANamedTuple"
explicitly as an argument to the function call. But the important thing
here is that it is a class.
> nt = MyNamedTupleClass(1,2)
nt, on the other hand, is a specific instance of that class. You might
have hundreds, thousands, millions of such instances. Why would you want
to name them all? What point of doing so is there? They have no need, and
no benefit, to be given individual names. And consequent, when you ask
the instance "What's your name?", they respond "I don't have one":
> # print(nt.__name__) # this would raise an AttributeError
However, when you ask the class ANamedTuple what its name it, it has a
name, and can tell you:
> print(type(nt).__name__) # this is the desired output
If the instance nt claimed to be ANamedTuple, it would be *lying*.
Re: Oh look, another language (ceylon)
On 11/17/2013 04:33 PM, Gregory Ewing wrote: Mark Lawrence wrote: As a rule of thumb people don't like change? This obviously assumes that language designers are people :) That's probably true (on both counts). I guess this means we need to encourage more Pythoneers to become language designers! Ahem, I already commented on this in some detail" https://mail.python.org/pipermail/python-list/2004-September/241055.html -- Tim Daneliuk [email protected] PGP Key: http://www.tundraware.com/PGP/ -- https://mail.python.org/mailman/listinfo/python-list
Re: Oh look, another language (ceylon)
On Tue, Nov 19, 2013 at 1:30 AM, Steven D'Aprano wrote: > I suppose that's not terrible, except for the O(n) string operations > which is just dumb. Yes, it's better than buggy, broken strings. But > still dumb, because those aren't the only choices. For example, for the > sake of an extra two bytes at the start of each string, they could store > a flag and a length: True, but I suspect that _any_ variance from JS strings would have significant impact on the performance of everything that crosses the boundary. If anything, I'd be looking at a permanent 32-bit shim on the string (rather than the 16-or-32-bit that you describe, or the 16-or-48-bit that Dave clarifies your theory as needing); that would allow strings up to 2GB (31 bits of pure binary length), and exceeding that could just raise a RuntimeError. Then, passing any string to a JS method would simply mean trimming off the first two code units. But the problem is also with strings coming back from JS. Every time you get something crossing from JS to Ceylon, you have to walk it, count up its length, and see if it has any surrogates (and somehow deal with mismatched surrogates). Every string, even if all you're going to do is give it straight back to JS in the next line of code. Potentially quite expensive, and surprisingly so - as opposed to simply saying "string indexing can be slow on large strings", which puts the cost against a visible line of code. ChrisA -- https://mail.python.org/mailman/listinfo/python-list
Re: Glade Survey
On Tue, Nov 19, 2013 at 8:04 AM, Gene Heskett wrote: > On Monday 18 November 2013 16:04:14 Juan Pablo Ugarte did opine: > >> Hello everybody! >> >> We (Glade Developers) are conducting a user survey which will help us >> take informed decisions to improve the overall developer experience. >> >> So please take a few minutes to complete the survey, we appreciate it! >> >> https://glade.gnome.org/registration.html > > Your certificate for https is invalid. So I won't. Invalid in what way? It looks fine to me. Or is it that you don't trust its signer? ChrisA -- https://mail.python.org/mailman/listinfo/python-list
Re: Why do only callable objects get a __name__?
On Mon, 18 Nov 2013 13:02:26 -0800, John Ladasky wrote:
> I am implementing a state machine. The outputs of the various states in
> the machine have variable contents. I started by making dictionaries
> for each state output, but I soon tired of the bracket-and-quote-mark
> syntax for referring to the contents of these state output dictionaries.
> That's why I am switching to named tuples. It doesn't affect the
> __name__ issue, since dictionaries also cannot be called.
>
> I want to capture the names of the executed states in a record of the
> state machine's history. This information is already encoded in the
> namedtuple's type.
I find this rather confusing. Does every state have it's own unique
namedtuple class?
state1 = namedtuple("State1", ("x", "y"))(1, 2)
state2 = namedtuple("State2", ("x", "y"))(5, 7)
state3 = namedtuple("State3", ("x", "y"))(0, 2)
[...]
Seems excessive -- you're defining many classes, each one of which has
only a single instance. I'd be more inclined to just use a class object
directly, with a little helper function to handle the tedious bits:
def state(name, x, y):
class Inner(object):
pass
Inner.x = x
Inner.y = y
Inner.__name__ = Inner.name = name
return Inner
And in use:
py> state1 = state('state1', 100, 101)
py> state1
py> state1.name
'state1'
py> state1.x
100
But I don't really understand how you are using these state objects, so
I'm not sure if this is appropriate or not.
--
Steven
--
https://mail.python.org/mailman/listinfo/python-list
Re: Oh look, another language (ceylon)
On 17/11/2013 22:48, Tim Daneliuk wrote: On 11/17/2013 04:33 PM, Gregory Ewing wrote: Mark Lawrence wrote: As a rule of thumb people don't like change? This obviously assumes that language designers are people :) That's probably true (on both counts). I guess this means we need to encourage more Pythoneers to become language designers! Ahem, I already commented on this in some detail" https://mail.python.org/pipermail/python-list/2004-September/241055.html Fantastic, very promising indeed. I know it needs bringing up to date, but to make it fly can I safely assume that we'll be seeing a PEP fairly shortly? As an aside, I noticed that the previous message was "negative stride list slices", why do I have a strong sense of deja vu? I refuse to mention another message that I noticed whilst browsing, on the grounds that I don't want to be accused of multiple manslaughter by way of causing heart attacks :) -- Python is the second best programming language in the world. But the best has yet to be invented. Christian Tismer Mark Lawrence -- https://mail.python.org/mailman/listinfo/python-list
Re: RapydScript : Python to Javascript translator
On Sun, Nov 17, 2013 at 11:16 AM, Salvatore DI DIO < [email protected]> wrote: > Hello, > > If someone is interested about a fast Python to Javascript translator > (not a compiler like Brython which is another beast) > RapydScript is interesting. Here's a comparison of several Python-in-a-browser technologies, including RapydScript and RapydScript II: http://stromberg.dnsalias.org/~dstromberg/pybrowser/python-browser.html -- https://mail.python.org/mailman/listinfo/python-list
How can I get the variable to subtract the input please?
This will be very simple to most of you I guess but it's killing me!
print ("Please type in your age")
age = input ()
leave = 16
print ("You have" + leave - age + "years left at school")
I want to have an input where the users age is inserted and then subtracted
from the variable age which is set to 16 and the answer displayed as You have x
years left at school.
Help much appreciated.
Thank you
--
https://mail.python.org/mailman/listinfo/python-list
Re: sendmail library ?!
On Tue, Nov 12, 2013 at 8:52 PM, Tamer Higazi wrote: > Hi people! > > I am looking for a python library that does mailing directly through > "sendmail". > I use: http://stromberg.dnsalias.org/svn/mailer/trunk/mailer.py -- https://mail.python.org/mailman/listinfo/python-list
Re: How can I get the variable to subtract the input please?
On 2013.11.18 17:56, Ed Taylor wrote:
> This will be very simple to most of you I guess but it's killing me!
>
> print ("Please type in your age")
> age = input ()
> leave = 16
> print ("You have" + leave - age + "years left at school")
>
> I want to have an input where the users age is inserted and then subtracted
> from the variable age which is set to 16 and the answer displayed as You have
> x years left at school.
>
> Help much appreciated.
>
> Thank you
>
You provided a short code snippet to help describe your problem, which is good,
but you omitted what happened and what you expected. You
also didn't mention which version of Python you're using (I am going to assume
some 3.x; if you are using 2.x, I *strongly* recommend
switching to 3.x unless you have a very compelling reason not to). If a
traceback is printed, try to make sense of it, and if you can't,
post it in its entirety and ask us to explain it.
>From what I can tell, you are trying to mix integers with strings. Python is
>strongly typed; it won't try to guess what you want when you
try to do things that make no sense for a given type. input() returns a string
and you have defined leave as an integer. Using the +
operator to concatenate makes sense for strings, but it makes sense to do
addition when dealing with number types like integers and floats.
If you try to do something silly like add a number to a string, Python will
complain because it doesn't know what to do (and again, it won't
try to guess). With that in mind, rewrite the code so that you do number
operations on numbers and string operations on strings.
Hint: there are builtin functions to cast between types.
Hint 2: it's a good idea to split up operations to separate lines so that it's
easy to see which operation has a problem if there is one.
--
CPython 3.3.2 | Windows NT 6.2.9200 / FreeBSD 10.0
--
https://mail.python.org/mailman/listinfo/python-list
Re: How can I get the variable to subtract the input please?
On 19/11/2013 9:56 AM, Ed Taylor wrote:
This will be very simple to most of you I guess but it's killing me!
print ("Please type in your age")
age = input ()
leave = 16
print ("You have" + leave - age + "years left at school")
I want to have an input where the users age is inserted and then subtracted
from the variable age which is set to 16 and the answer displayed as You have x
years left at school.
Help much appreciated.
Hey there,
When asking code questions, if you get a traceback it's often handy to
include it so we can see exactly what problem you've hit.
Luckily, it's pretty obvious here:
1. input() binds a string to 'age', whereas 'leave' is an integer; you
cannot subtract a string from an integer, you need to turn the string
into an integer first. Try:
age = int(input())
2. With this done, you still have a similar issue: 'leave - age'
produces an integer, and you cannot concatenate strings & integers. You
can use string formatting to take care of this:
print("You have {} years left at school".format(leave - age))
There's a lot more to formatting than this, make sure to check out the
docs for it:
http://docs.python.org/3.1/library/string.html#format-string-syntax
Hope this helps.
--
https://mail.python.org/mailman/listinfo/python-list
Re: Oh look, another language (ceylon)
On 11/18/2013 05:51 PM, Mark Lawrence wrote:
can I safely assume that we'll be seeing a PEP fairly shortly?
For Immediate Press Release:
We at TundraWare are now entering our 10th year of debate in the YAPDL
design as to what ought to be a statement and what ought to be a function.
The Statementists are currently winning 3 bouts to 2 over the
Functionists but there is much more gnashing of teeth and wringing of
hands to come. We remain true to the original vision of the language as
an unwanted appendage to Python which will promote fractionalisation and
thus improve opportunity for future billings.
We are also contemplating an offshoot language that melds the best of Java
into YAPDL. Known as JAPDL ("Jah.piddle") it is targeted particularly
to Rastafri programmers worldwide. The primary contribution of JAPDL
to the language arts is the replacement of the GIL (Global Interpreter Lock)
with the much simpler, DR (Dread Lock).
Tim Daneliuk [email protected]
PGP Key: http://www.tundraware.com/PGP/
--
https://mail.python.org/mailman/listinfo/python-list
Re: Building a tree-based readline completer
> On Mon, 18 Nov 2013 08:55:05 -0800 (PST), [email protected] wrote: > > On Monday, November 18, 2013 11:54:43 AM UTC-5, roey wrote: > > > Thank you. In looking over these classes, I see though that even > them, I would run against the same limitations, though. > Please don't double space your quotes. And if googlegarbage is doing > it for you, then use a less buggy way of posting. > -- > DaveA Alright. Now, after the past three emails of going around my question, can anyone actually address it? Thanks again! - Roey -- https://mail.python.org/mailman/listinfo/python-list
Re: How can I get the variable to subtract the input please?
On Tue, Nov 19, 2013 at 9:56 AM, Ed Taylor wrote:
> This will be very simple to most of you I guess but it's killing me!
>
> print ("Please type in your age")
> age = input ()
> leave = 16
> print ("You have" + leave - age + "years left at school")
>
> I want to have an input where the users age is inserted and then subtracted
> from the variable age which is set to 16 and the answer displayed as You have
> x years left at school.
I assume you are using Python 3. In that case, the input() function
always returns a string:
>>> age = input()
10
>>> age
'10'
>>> age - 10
Traceback (most recent call last):
File "", line 1, in
TypeError: unsupported operand type(s) for -: 'str' and 'int'
And hence you cannot perform a subtraction operation. You will have to
convert the input into a data type such as an integer or a float and
then try to do any mathematical operation:
>>> int(age) - 10
0
>>> float(age)-10
0.0
Hope that helps.
Best,
Amit.
--
http://echorand.me
--
https://mail.python.org/mailman/listinfo/python-list
Re: Oh look, another language (ceylon)
On Tue, 19 Nov 2013 10:25:00 +1100, Chris Angelico wrote: > But the problem is also with strings coming back from JS. Just because you call it a "string" in Ceylon, doesn't mean you have to use the native Javascript string type unchanged. Since the Ceylon compiler controls what Javascript operations get called (the user never writes any Javascript directly), the compiler can tell which operations potentially add surrogates. Since strings are immutable in Ceylon, a slice of a BMP-only string is also BMP-only; concatenating two BMP-only strings gives a BMP-only string. I expect that uppercasing or lowercasing such strings will also keep the same invariant, but if not, well, you already have to walk the string to convert it, walking it again should be no more expensive. The point is not that my off-the-top-of-my-head pseudo-implementation was optimal in all details, but that *text strings* should be decent data structures with smarts, not dumb arrays of variable-width characters. If that means avoiding dumb-array-of-char naive implementations, and writing your own, that's part of the compiler writers job. Python strings can include null bytes, unlike C, even when built on top of C. They know their length, unlike C, even when built on top of C. Just because the native Java and Javascript string types doesn't do these things, doesn't mean that they can't be done in Javascript. > - as opposed to simply saying "string > indexing can be slow on large strings", which puts the cost against a > visible line of code. For all we know, Ceylon already does something like this, but merely doesn't advertise the fact that while it *can* be slow, it can *also* be fast. It's an implementation detail, perhaps, much like string concatenation in Python officially requires building a new string, but in CPython sometimes it can append to the original string. Still, given that Pike and Python have already solved this problem, and have O(1) string indexing operations and length for any Unicode string, SMP and BMP, it is a major disappointment that Ceylon doesn't. -- Steven -- https://mail.python.org/mailman/listinfo/python-list
Re: Oh look, another language (ceylon)
On Mon, 18 Nov 2013 15:37:12 -0500, Dave Angel wrote: > If you use nearly all of the possible 2 byte values then adding 2 more > bytes won't give you anywhere near 4 bI'll ion characters. You're > perhaps thinking of bringing in four more bytes when the length exceeds > 32k. Yep, I screwed up. Thanks for the correction. -- Steven -- https://mail.python.org/mailman/listinfo/python-list
Re: Oh look, another language (ceylon)
On Tue, Nov 19, 2013 at 1:13 PM, Steven D'Aprano wrote: > Still, given that Pike and Python have already solved this problem, and > have O(1) string indexing operations and length for any Unicode string, > SMP and BMP, it is a major disappointment that Ceylon doesn't. And of course, the part that's "solved" here is not the O(1) string indexing, but the fact that UTF-32 semantics with less memory usage than UTF-16. It's easy to get perfect indexing semantics if you don't mind how much space your strings take up. ChrisA -- https://mail.python.org/mailman/listinfo/python-list
Re: Oh look, another language (ceylon)
On Tue, Nov 19, 2013 at 1:13 PM, Steven D'Aprano wrote: > On Tue, 19 Nov 2013 10:25:00 +1100, Chris Angelico wrote: > >> But the problem is also with strings coming back from JS. > > Just because you call it a "string" in Ceylon, doesn't mean you have to > use the native Javascript string type unchanged. Indeed not, but there are going to be many MANY cases where a JS string has to become a Ceylon string and vice versa - a lot more often than CPython drops to C. For instance, suppose you run your Ceylon code inside a web browser. Pick up pretty much any piece of JavaScript code from any web page - how much string manipulation does it do, and how much does it call on various DOM methods? In CPython, only a small number of Python functions will end up dropping to C APIs to do their work (and most of those will have to do some manipulation along the way somewhere - eg chances are print()/sys.stdout.write() will eventually have to encode its output to 8-bit before passing it to some byte-oriented underlying stream, so the actual representation of a Python string doesn't matter); in browser-based work, that is inverted. However, Ceylon can actually be implemented on multiple backends (Java and JavaScript listed). It's fully possible that an "application-oriented" backend might use Pike-strings internally, while a "browser-oriented" backend could still use the underlying string representation. The questions are entirely of performance, since it's been guaranteed already to have the same semantics. I would really like to see JavaScript replaced in web browsers, since the ECMAScript folks have stated explicitly (in response to a question from me) that UTF-16 representation *must* stay, for backward compat. JS is a reasonable language - it's not terrible - but it has a number of glaring flaws. Ceylon could potentially be implemented in browsers, using Pike-strings internally, and then someone could write a JavaScript engine that compiles to Ceylon (complete with bug-compatibility stupid-code that encodes all strings UTF-16 before indexing into them). It would be an overall improvement, methinks. ChrisA -- https://mail.python.org/mailman/listinfo/python-list
Re: Oh look, another language (ceylon)
I've never *really* been crazy about the plus operator concatenating strings anyhow, however, the semantics of "+" seem to navigate the "perilous waters of intuition" far better than "*". Addition of numeric types is well defined in maths: Take N inputs values and *reduce* them into a single value that represents the mathematical summation of all inputs. HOWEVER, Addition of strings (concatenation) requires interpreting the statement as a more simplistic "joining" process of : take N inputs and join them together in a *linear fashion* until they become a single value. As you might already know the latter is a far less elegant process, although the transformation remains "sane". Even though in the first case: with "numeric addition", the individual inputs are *sacrificed* to the god of maths; and in the second case: for "string addition", the individual inputs are *retained*; BOTH implementations of the plus operator expose a CONSISTENT interface -- and like any good interface the dirty details are hidden from the caller! INTERFACES ARE THE KEY TO CODE INTEGRITY and LONGEVITY! HOWEVER, HOWEVER. O:-) There is an inconsistency when applying the "*" operator between numerics and strings. In the case of numerics the rules are widely understood and quite logical, HOWEVER, in the case of "string products", not only are rules missing, any attempt to create a rule is illogical, AND, we've broken the consistency of the "*" interface! py> "a" * "4" '' Okay, that makes sense, but what about: py> "a" * "" That will haunt your nightmares! But even the previous example, whilst quite logical, is violating the "contract of transformations" and can ONLY result in subtle bugs, language designer woes, and endless threads on Pyhon-ideas that result in no elegant solution. THERE EXISTS NO PATH TO ELEGANCE VIA GLUTTONY Operator overloading must be restricted. Same goes for syntactic sugars. You can only do SO much with a sugar before it mutates into a salt. TOO MUCH OF A GOOD THING... well, ya know! -- https://mail.python.org/mailman/listinfo/python-list
Re: Automation
On Mon, Nov 18, 2013 at 11:49 AM, Grant Edwards wrote: > ... > I don't make those mistakes typing on a phone (where I have to > actually think about the act of typing), but I do make them with a > regular keyboard, where I don't have to think about mechanics of > typing the words. > > OTOH, maybe that's just me... It's me too. I certainly know the difference between 'there' and 'their', etc. but that fact is not always reflected in my typing. -- https://mail.python.org/mailman/listinfo/python-list
Re: grammar (was Re: Automation)
On 16/11/2013 17:02, Paul Smith wrote: On Sat, 2013-11-16 at 10:11 -0500, Roy Smith wrote: In article , William Ray Wing wrote: And my personal peeve - using it's (contraction) when its (possessive) should have been used; occasionally vice-versa. And one of mine is when people write, "Here, here!" to signify agreement. What they really mean to write is, "Hear, hear!", meaning, "Listen to what that person said". The one that really irks me is people using "loose" when they mean "lose". These words are not related, and they don't sound the same. Plus this mistake is very common; I typically see it at least once a day. Somebody published a link to this poem some months back, I think it's worth repeating http://www.i18nguy.com/chaos.html -- Python is the second best programming language in the world. But the best has yet to be invented. Christian Tismer Mark Lawrence -- https://mail.python.org/mailman/listinfo/python-list
Re: Glade Survey
On Mon, 2013-11-18 at 16:04 -0500, Gene Heskett wrote: > On Monday 18 November 2013 16:04:14 Juan Pablo Ugarte did opine: > > > Hello everybody! > > > > We (Glade Developers) are conducting a user survey which will help us > > take informed decisions to improve the overall developer experience. > > > > So please take a few minutes to complete the survey, we appreciate it! > > > > https://glade.gnome.org/registration.html > > Your certificate for https is invalid. So I won't. I do not have control over the web server at gnome, I only have access to glade.gnome.org It is true that it is not supplying owner information I guess it should say GNOME Foundation, in any case gnome.org has they same problem so I will contact the web administrators to notify them about the situation. thanks Juan Pablo -- https://mail.python.org/mailman/listinfo/python-list
Re: Glade Survey
On Monday 18 November 2013 20:43:24 Chris Angelico did opine: > On Tue, Nov 19, 2013 at 8:04 AM, Gene Heskett wrote: > > On Monday 18 November 2013 16:04:14 Juan Pablo Ugarte did opine: > >> Hello everybody! > >> > >> We (Glade Developers) are conducting a user survey which will help us > >> take informed decisions to improve the overall developer experience. > >> > >> So please take a few minutes to complete the survey, we appreciate > >> it! > >> > >> https://glade.gnome.org/registration.html > > > > Your certificate for https is invalid. So I won't. > > Invalid in what way? It looks fine to me. Or is it that you don't > trust its signer? > > ChrisA Firefox barked at me. So I backed away. And now it works. Phase of moon sensitive? Chew in wrong side of mouth? Or you fixed it. :) Cheers, Gene -- "There are four boxes to be used in defense of liberty: soap, ballot, jury, and ammo. Please use in that order." -Ed Howdershelt (Author) If you give Congress a chance to vote on both sides of an issue, it will always do it. -- Les Aspin, D., Wisconsin A pen in the hand of this president is far more dangerous than 200 million guns in the hands of law-abiding citizens. -- https://mail.python.org/mailman/listinfo/python-list
Re: Python Beginner
On Monday, November 18, 2013 5:42:22 AM UTC+1, Terry Reedy wrote: On 11/17/2013 11:02 PM, ngangsia akumbo wrote: We don't even have a University that offer a full flesh computer science course The phrase you are looking for is 'full-fledged'. He might have meant "fully fleshed-out", i.e. complete. Or it might be an adults-only computer science course. :-) -- Greg -- https://mail.python.org/mailman/listinfo/python-list
Re: [Python-ideas] Unicode stdin/stdout
From: "[email protected]" > On Mon, Nov 18, 2013, at 7:33, Robin Becker wrote: >> UTF-8 stuff > > This doesn't really solve the issue I was referring to, which is that > windows _console_ (i.e. not redirected file or pipe) I/O can only > support unicode via wide character (UTF-16) I/O with a special function, > not via using byte-based I/O with the normal write function. The problem is that Windows 16-bit I/O doesn't fit into the usual io module hierarchy. Not because it uses an encoding of UTF-16 (although anyone familiar with ReadConsoleW/WriteConsoleW from other languages may be a bit confused that Python's lowest-level wrappers around them deal in byte counts instead of WCHAR counts), but because you have to use HANDLEs instead of fds. So, there are going to be some compromises and some complexity. One possibility is to use as much of the io hierarchy as possible, but not try to make it flexible enough to be reusable for arbitrary HANDLEs: Add WindowsFileIO and WindowsConsoleIO classes that implement RawIOBase with a native HANDLE and ReadFile/WriteFile and ReadConsoleW/WriteConsoleW respectively. Both work in terms of bytes (which means WindowsConsoleIO.read has to //2 its argument, and write has to *2 the result). You also need a create_windows_io function that wraps a HANDLE by calling GetConsoleMode and constructing a WindowsConsoleIO or WindowsFileIO as appropriate, then creates a BufferedReader/Writer around that, then constructs a TextIOWrapper with UTF-16 or the default encoding around that. At startup, you just do that for the three GetStdHandle handles, and that's your stdin, stdout, and stderr. Besides not being reusable enough for people who want to wrap HANDLEs from other libraries or attach to new consoles from Python, it's not clear what fileno() should return. You could fake it and return the MSVCRT fds that correspond to the same files as the HANDLEs, but it's possible to end up with one redirected and not the other (e.g., if you detach the console), and I'm not sure what happens if you mix and match the two. A more "correct" solution would be to call _open_osfhandle on the HANDLE (and then keep track of the fact that os.close closes the HANDLE, or leave it up to the user to deal with bad handle errors?), but I'm not sure that's any better in practice. Also, should a console HANDLE use _O_WTEXT for its fd (in which case the user has to know that he has a _O_WTEXT handle even though there's no way to see that from Python), or not (in which case he's mixing 8-bit and 16-bit I/O on the same file)? It might be reasonable to just not expose fileno(); most code that wants the fileno() for stdin is just going to do something Unix-y that's not going to work anyway (select it, tcsetattr it, pass it over a socket to another file, …). A different approach would be to reuse as _little_ of io as possible, instead of as much: Windows stdin/stdout/stderr could each be custom TextIOBase implementations that work straight on HANDLEs and don't even support buffer (or detach), much less fileno. That exposes even less functionality to users, of course. It also means we need a parallel implementation of all the buffering logic. (On the other hand, it also leaves the door open to expose some Windows functionality, like async ReadFileEx/WriteFileEx, in a way that would be very hard through the normal layers…) It shouldn't be too hard to write most of these via an extension module or ctypes to experiment with it. As long as you're careful not to mix winsys.stdout and sys.stdout (the module could even set sys.stdin, sys.stdout, sys.stderr=stdin, stdout, stderr at import time, or just del them, for a bit of protection), it should work. It might be worth implementing a few different designs to play with, and putting them through their paces with some modules and scripts that do different things with stdio (including running the scripts with cmd.exe redirected I/O and with subprocess PIPEs) to see which ones have problems or limitations that are hard to foresee in advance. If you have a design that you think sounds good, and are willing to experiment the hell out of it, and don't know how to get started but would be willing to debug and finish a mostly-written/almost-working implementation, I could slap something together with ctypes to get you started. -- https://mail.python.org/mailman/listinfo/python-list
Cannot connect to Mysql database
I have written the script as:
import os
import MySQLdb as mdb
os.chroot("/lxc/rootfs")
os.chdir("/")
con = mdb.connect(host="192.168.1.7", user="root", passwd="password")
print "opened"
con.close()
But when I execute, I get the following error:
"File "/usr/lib/python2.7/dist-packages/MySQLdb/__init__.py", line 80, in
Connect
ImportError: No module named connections"
I have checked there is a connections.py module in the above directory. Also,
when I run the script without doing chroot, it works perfectly.
--
https://mail.python.org/mailman/listinfo/python-list
Re: Cannot connect to Mysql database
On Tue, Nov 19, 2013 at 5:03 PM, Himanshu Garg wrote:
> I have written the script as:
>
> import os
> import MySQLdb as mdb
>
> os.chroot("/lxc/rootfs")
> os.chdir("/")
> con = mdb.connect(host="192.168.1.7", user="root", passwd="password")
> print "opened"
> con.close()
>
> But when I execute, I get the following error:
>
> "File "/usr/lib/python2.7/dist-packages/MySQLdb/__init__.py", line 80, in
> Connect
> ImportError: No module named connections"
>
> I have checked there is a connections.py module in the above directory.
> Also, when I run the script without doing chroot, it works perfectly.
Do you have a full duplicate of your /usr/lib/python2.7 inside
/lxc/rootfs? It looks like the connect call is trying to import
something, and now that you're chrooted, it can't find it. The
solution might be to manually import a few more modules beforehand
(putting them into sys.modules means they don't need to come from the
file system), or to add more files to your chroot jail.
For a guess, I would try:
import MySQLdb.connections
above your chroot, and see if that helps.
ChrisA
--
https://mail.python.org/mailman/listinfo/python-list
Re: Cannot connect to Mysql database
On Tue, Nov 19, 2013 at 5:10 PM, Chris Angelico wrote: > For a guess, I would try: > > import MySQLdb.connections > > above your chroot, and see if that helps. And possibly also converters, cursors, release, times, and maybe constants. I just peeked at the MySQLdb source code to see what's in the package. ChrisA -- https://mail.python.org/mailman/listinfo/python-list
Re: Why do only callable objects get a __name__?
On Monday, November 18, 2013 3:37:03 PM UTC-8, Steven D'Aprano wrote: > On Mon, 18 Nov 2013 13:02:26 -0800, John Ladasky wrote: > > > I am implementing a state machine. The outputs of the various states in > > the machine have variable contents. I started by making dictionaries > > for each state output, but I soon tired of the bracket-and-quote-mark > > syntax for referring to the contents of these state output dictionaries. > > That's why I am switching to named tuples. It doesn't affect the > > __name__ issue, since dictionaries also cannot be called. > > > > I want to capture the names of the executed states in a record of the > > state machine's history. This information is already encoded in the > > namedtuple's type. > > > I find this rather confusing. Does every state have it's own unique > namedtuple class? Yes. The state machine trains neural networks. There are various states which are executed in various orders -- generating a new network variant, calculating a local error gradient, taking a (variable size and curvature sensitive) step down the gradient, and then, possibly repeating. I want to watch this neural network training process run, in part to debug it. At the end of each state execution, I use a SINGLE, all-purpose function hook in the main loop to print the result. Every state result namedtuple is also saved in a list called "history". I sometimes need information from the first state executed, or the most recent state, or even two states back, to choose the next state transition. At some point in the future, I can override the print function in the main loop, and have a GUI intercept the output as it is generated. Many of the parameters returned are common to all states, but quite a few are not. By stepping through the namedtuple's "_fields" and picking out a few special cases, I can get output like this: = == START == action : START time : 0.203123 net : 0. 0. 0. 0. 0. 0. 0. full_err : 0.766030 train_err : 0.780680 validate_err : 0.750036 next_state : VARIANT == VARIANT == action : VARIANT time : 0.58 net : 1.0356 -0.1986 -1.7067 -1.0545 1.7081 0.4573 -1.0968 next_state : GRADIENT == GRADIENT == action : GRADIENT time : 0.094384 net : 1.0356 -0.1986 -1.7067 -1.0545 1.7081 0.4573 -1.0968 grad : [[-0.0047 -0.0034 -0.0001 0.] [ 0.010.0069 -0.003 0.0085]] train_err : 1.226932 incrmag : 0.001000 normag : 0.01 next_state : LEAP == LEAP == action : LEAP time : 0.048523 net : 0.9882 -0.2328 -1.7079 -0.9545 1.7774 0.4271 -1.0115 curvature : concave leap : 10.00 train_err : 1.118779 incrmag : 0.001000 normag : 0.01 next_state : GRADIENT == GRADIENT == action : GRADIENT time : 0.092888 net : 0.9882 -0.2328 -1.7079 -0.9545 1.7774 0.4271 -1.0115 grad : [[-0.0037 -0.0027 0.0004 0.] [ 0.010.0068 -0.0043 0.0092]] train_err : 1.118779 incrmag : 0.001000 normag : 0.01 next_state : LEAP [etc.] = I'm probably making this sound more complicated than it is. A good object and data structure will make my system run cleanly and flexibly. I feel like I'm already half-way there. -- https://mail.python.org/mailman/listinfo/python-list
Re: Automation
Neil Cerutti wrote: Written English probably changes much slower than spoken English, and we have the curmudgeon's to thank. The curmudgeon's what? :-) -- Greg -- https://mail.python.org/mailman/listinfo/python-list
