Re: Understanding and dealing with an exception

2012-10-14 Thread Mark Lawrence

On 14/10/2012 05:23, Vincent Davis wrote:

I am working on a script to find bad image files. I am using PIL
and specifically image.verify() I have a set of known to be bad image files
to test. I also what to be able to test any file for example a .txt and
deal with the exception.
Currently my code is basically

try:
 im = Image.open(ifile)
 try:
 print(im.verify())
 except:
 print('Pil image.verify() failed: ' + afile)
except IOError:
 print('PIL cannot identify image file: ' + afile)
except:
 print(ifile)
 print("Unexpected error doing PIL.Image.open():", sys.exc_info()[0])
 raise


[snip]



Vincent



You've already had some advice so I'll just point out that a bare except 
is a bad idea as you wouldn't even be able to catch a user interrupt. 
Try (groan!) catching StandardError instead.


--
Cheers.

Mark Lawrence.

--
http://mail.python.org/mailman/listinfo/python-list


python game develop:framework?

2012-10-14 Thread nepaul
Something good framwork?
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Understanding and dealing with an exception

2012-10-14 Thread Terry Reedy

On 10/14/2012 4:20 AM, Mark Lawrence wrote:


You've already had some advice so I'll just point out that a bare except
is a bad idea as you wouldn't even be able to catch a user interrupt.
Try (groan!) catching StandardError instead.


There are some bare except:s in the stdlib, that adding another is 
frowned on and removing one is smiled upon.


However:
>>> StandardError
Traceback (most recent call last):
  File "", line 1, in 
StandardError
NameError: name 'StandardError' is not defined

Try:
>>> Exception


This catches everything except a few things like Keyboard Interrupt that 
you normally should not catch.


>>> BaseException


This catches everything, but signals that doing so is probably intentional.

--
Terry Jan Reedy

--
http://mail.python.org/mailman/listinfo/python-list


Re: python game develop:framework?

2012-10-14 Thread Steven D'Aprano
On Sun, 14 Oct 2012 01:58:57 -0700, nepaul wrote:

> Something good framwork?

http://duckduckgo.com/?q=python+%2Bgame+frameworks
http://duckduckgo.com/?q=python+%2Bgame+libraries
http://blekko.com/ws/?q=python%20game%20framework


-- 
Steven
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: __builtins__ thread-safe / __builtins__ as function?

2012-10-14 Thread Juergen Bartholomae
>> One possible solution  is to somehow redirect every __builtins__ to a
>> function that returns a different __builtins__ dictionary for each thread
>> (such a function already exists).

>How exactly does the code reference it? If they're simply referring to
>the name __builtins__ at module level, you ought to be able to import
>the module, then assign some_module.__builtins__ to your thread-local
>object, then call code in it as normal.

>An interesting problem, and one where monkeypatching is, imho, justified.

>ChrisA

Hello, and thanks for your answer.
Unfortunately, replacing __builtins__ at import time won't do, because
external modules (that is, .py) get imported only once when they are
accessed by the first thread, which includes (of course) setting up of
__dict__ and __builtins__. When a second thread later accesses this
module, it has the same variables in __builtins__ that were added by
the same module in first thread
And if the second thread then changes the values, I can see these
same changes in the first thread.
-> The problem is that __builtins__ are global, not thread-safe.

The only solution I can see is therfor redirecting __builtins__ to a
function which returns a different dictionary for each thread, e.g.
by intercepting __builtins__-calls with __readattr__.
To do this, I would need my own class to define __readattr__ in
since (as far as I know) I can't define __readattr__ in a module,
and I can't change metaclass  of course.

I really don't know how to get around this problem...
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: python game develop:framework?

2012-10-14 Thread Jason Benjamin
Pygame is my favorite.  It's mature, has good documentation, and has 
lots of unfinished and finished games on its website.  It also supports 
OpenGL.


http://www.pygame.org/

On 10/14/2012 01:58 AM, nepaul wrote:

Something good framwork?



--
http://mail.python.org/mailman/listinfo/python-list


Re: python game develop:framework?

2012-10-14 Thread LeBas

On 2012-10-14 08:58:57 +, nepaul said:


Something good framwork?


I just want to sencond PyGame. It's compelling with a good user base 
and has development activity e.g. patches and improvements etc. are 
provided.


--
http://mail.python.org/mailman/listinfo/python-list


Re: Understanding and dealing with an exception

2012-10-14 Thread Mark Lawrence

On 14/10/2012 11:06, Terry Reedy wrote:

On 10/14/2012 4:20 AM, Mark Lawrence wrote:


You've already had some advice so I'll just point out that a bare except
is a bad idea as you wouldn't even be able to catch a user interrupt.
Try (groan!) catching StandardError instead.


There are some bare except:s in the stdlib, that adding another is
frowned on and removing one is smiled upon.

However:
 >>> StandardError
Traceback (most recent call last):
   File "", line 1, in 
 StandardError
NameError: name 'StandardError' is not defined

Try:
 >>> Exception


This catches everything except a few things like Keyboard Interrupt that
you normally should not catch.

 >>> BaseException


This catches everything, but signals that doing so is probably intentional.



White Man type with forked fingers?

c:\Users\Mark\Cash\Python>python
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit 
(Intel)] on win32

Type "help", "copyright", "credits" or "license" for more information.
>>> StandardError


Perhaps not.

c:\Users\Mark\Cash\Python>py -3
Python 3.3.0 (v3.3.0:bd8afb90ebf2, Sep 29 2012, 10:55:48) [MSC v.1600 32 
bit (Intel)] on win32

Type "help", "copyright", "credits" or "license" for more information.
>>> StandardError
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'StandardError' is not defined

Down to this http://www.python.org/dev/peps/pep-3151/ or was it done 
earlier?


--
Cheers.

Mark Lawrence.

--
http://mail.python.org/mailman/listinfo/python-list


LinkedIn Python group discussions

2012-10-14 Thread Mark Lawrence
I've been sparked into raising the subject as this has just come up 
"Does Jython/Python fall short of true POSIX thread parallelism?".  I'm 
not qualified to comment and I recognise relatively few names amongst 
the people who do participate over there.  The last thing I'd want would 
be FUD or worse still complete crap being written in response to any 
thread and me not being in a position to reply.  Is this something for 
the Python community here to be thinking about?


--
Cheers.

Mark Lawrence.

--
http://mail.python.org/mailman/listinfo/python-list


Re: Feedback on my python framework I'm building.

2012-10-14 Thread Roy Smith
In article <507a3365$0$6574$c3e8da3$54964...@news.astraweb.com>,
 Steven D'Aprano  wrote:

> Remember using PEEK and POKE commands with BASIC back in 
> 1978? Pretty much impossible in Python. 

But, trivial to implement as an extension :-)
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: __builtins__ thread-safe / __builtins__ as function?

2012-10-14 Thread Chris Angelico
On Sun, Oct 14, 2012 at 9:36 PM, Juergen Bartholomae
 wrote:
> Unfortunately, replacing __builtins__ at import time won't do, because
> external modules (that is, .py) get imported only once when they are
> accessed by the first thread, which includes (of course) setting up of
> __dict__ and __builtins__. When a second thread later accesses this
> module, it has the same variables in __builtins__ that were added by
> the same module in first thread

Sure. But if they're using __builtins__ by name, then you can simply
replace that with something that checks a thread id and responds with
that thread's dictionary. There's no particular reason for
__builtins__ to be a module (as far as I know!), so you should be able
to replace it with an object of your own class.

I think DaveA's recommendation is good. Make a "Version 2.0" of your
system, with a different way of doing global state.

ChrisA
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Understanding and dealing with an exception

2012-10-14 Thread MRAB

On 2012-10-14 05:23, Vincent Davis wrote:

I am working on a script to find bad image files. I am using PIL
and specifically image.verify() I have a set of known to be bad image
files to test. I also what to be able to test any file for example a
.txt and deal with the exception.
Currently my code is basically

try:
 im = Image.open(ifile)
 try:
 print(im.verify())
 except:
 print('Pil image.verify() failed: ' + afile)
except IOError:
 print('PIL cannot identify image file: ' + afile)
except:
 print(ifile)
 print("Unexpected error doing PIL.Image.open():", sys.exc_info()[0])
 raise


[snip]
I notice that you have both "ifile" and "afile". Is that correct?

--
http://mail.python.org/mailman/listinfo/python-list


pyw program not displaying unicode characters properly

2012-10-14 Thread jjmeric

Hi everybody !

Our language lab at INALCO is using a nice language parsing and analysis 
program written in Python. As you well know a lot of languages use 
characters that can only be handled by unicode.

Here is an example of the problem we have on some Windows computers.
In the attached screen-shot (DELETED), 
the bambara character (a sort of epsilon)  is displayed as a square.

The fact that it works fine on some computers and fails to display the 
characters on others suggests that it is a user configuration issue:
Recent observations: it's OK on Windows 7 but not on Vista computers,
it's OK on some Windows XP computers, it's not on others Windows XP...

On the computers where it fails, we've tried to play with options in the 
International settings, but are not able to fix it.

Any idea that would help us go in the right direction, or just fix it, 
is welcome !

Thanks!
I ni ce! (in bambara, a language spoken in Mali, West Africa)
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: pyw program not displaying unicode characters properly

2012-10-14 Thread Alain Ketterlin
jjmeric  writes:

> Our language lab at INALCO is using a nice language parsing and analysis 
> program written in Python. As you well know a lot of languages use 
> characters that can only be handled by unicode.
>
> Here is an example of the problem we have on some Windows computers.
> In the attached screen-shot (DELETED), 

Usenet has no attachments. Place your document on some publicly
accessible web-servers, if needed.

> the bambara character (a sort of epsilon)  is displayed as a square.
>
> The fact that it works fine on some computers and fails to display the 
> characters on others suggests that it is a user configuration issue:
> Recent observations: it's OK on Windows 7 but not on Vista computers,
> it's OK on some Windows XP computers, it's not on others Windows XP...

You need a font that has glyphs for all unicode characters (at least the
ones you use). See http://en.wikipedia.org/wiki/Unicode_font for a
start. I don't know enough about Windows to give you a name. Anyone?

-- Alain.

P/S: and this has not much to do with python, which will happily send
out any unicode char, and cannot know which ones your terminal/whatever
will be able to display
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: pyw program not displaying unicode characters properly

2012-10-14 Thread MRAB

On 2012-10-14 17:55, jjmeric wrote:


Hi everybody !

Our language lab at INALCO is using a nice language parsing and analysis
program written in Python. As you well know a lot of languages use
characters that can only be handled by unicode.

Here is an example of the problem we have on some Windows computers.
In the attached screen-shot (DELETED),
the bambara character (a sort of epsilon)  is displayed as a square.

The fact that it works fine on some computers and fails to display the
characters on others suggests that it is a user configuration issue:
Recent observations: it's OK on Windows 7 but not on Vista computers,
it's OK on some Windows XP computers, it's not on others Windows XP...

On the computers where it fails, we've tried to play with options in the
International settings, but are not able to fix it.

Any idea that would help us go in the right direction, or just fix it,
is welcome !

Thanks!
I ni ce! (in bambara, a language spoken in Mali, West Africa)


A square is shown when the font being used doesn't contain a visible
glyph for the codepoint.

Which codepoint is it? What is the codepoint's name?

Here's how to find out:

>>> hex(ord("Ɛ"))
'0x190'
>>> import unicodedata
>>> unicodedata.name("Ɛ")
'LATIN CAPITAL LETTER OPEN E'

--
http://mail.python.org/mailman/listinfo/python-list


Re: Understanding and dealing with an exception

2012-10-14 Thread Vincent Davis
Yes afile is the file name and extension, ifile is the full file name and
path.

Thanks
Vincent

On Sunday, October 14, 2012, MRAB wrote:

> On 2012-10-14 05:23, Vincent Davis wrote:
>
>> I am working on a script to find bad image files. I am using PIL
>> and specifically image.verify() I have a set of known to be bad image
>> files to test. I also what to be able to test any file for example a
>> .txt and deal with the exception.
>> Currently my code is basically
>>
>> try:
>>  im = Image.open(ifile)
>>  try:
>>  print(im.verify())
>>  except:
>>  print('Pil image.verify() failed: ' + afile)
>> except IOError:
>>  print('PIL cannot identify image file: ' + afile)
>> except:
>>  print(ifile)
>>  print("Unexpected error doing PIL.Image.open():", sys.exc_info()[0])
>>  raise
>>
>>  [snip]
> I notice that you have both "ifile" and "afile". Is that correct?
>
> --
> http://mail.python.org/**mailman/listinfo/python-list
>


-- 
Vincent Davis
720-301-3003
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: pyw program not displaying unicode characters properly

2012-10-14 Thread jjmeric
Alain, MRAB
Thank you for prompt responses.

What they suggest to me is I should look into what font is being used by 
this Python for Windows program.
I am not the programmer, so not idea where to look for.
The program settings do not include a choice for display font.

The font that used for display resembles a sort of Helvetica, but no 
idea how to check this.

Is there some sort of defaut font, or is there in Python or Python for 
Windows any ini file where the font used can be seen, eventually changed 
to a more appropriate one with all the required glyphs (like Lucida Sans 
Unicode has).

Thanks again...


-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Understanding http proxies

2012-10-14 Thread Tim Roberts
Olive  wrote:
>
>it seems when I read the code above that the proxy acts mostly as an
>orinary server with respect to the client except that it is supposed to
>receive the full URL instead of just the path. Am I right? Is there any
>documentation on what an http proxy is supposed to implement.

Consider the ways HTTP could have been implemented.  Say we have a request
to get http://www.bigsite.com/pictures/index.html .

One way HTTP could have been implemented is by sending this request to the
server at www.bigsite.com:

GET /pictures/index.html HTTP/1.0

If that were how HTTP were done, you could not implement a proxy, because
there isn't enough information for any intermediates to know where the
request had to end up.

Instead, http looks like this:

GET /pictures/index.html HTTP/1.1
Host: www.bigsite.com

Now, even if this is sent to someone who is not "www.bigsite.com", that
receipient can tell exactly who is supposed to get the message.

So, a web proxy receives requests intended for other sites, and forwards
them on, possibly after restricting or modifying them.  That's it.
-- 
Tim Roberts, t...@probo.com
Providenza & Boekelheide, Inc.
-- 
http://mail.python.org/mailman/listinfo/python-list


Tkinter how to access the widget by name

2012-10-14 Thread Владимир Пылев
I'm a little teapot ... himself the question: if I want to appeal to the 
widget, knowing his name... ?

# appropriated the name of the widget
label = Label(frame, width = 40, text='text', name = 'name')
...
name_='name'
configure(name_)
...
def configure(name_)
#And how can that be?
# At least let the text you want to change 

I beg you ..
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: pyw program not displaying unicode characters properly

2012-10-14 Thread Roy Smith
In article ,
 MRAB  wrote:
 
> Which codepoint is it? What is the codepoint's name?
> 
> Here's how to find out:
> 
>  >>> hex(ord("?"))
> '0x190'
>  >>> import unicodedata
>  >>> unicodedata.name("?")
> 'LATIN CAPITAL LETTER OPEN E'

Wow, I never knew you could do that.  I usually just google for "unicode 
0190" :-)
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: pyw program not displaying unicode characters properly

2012-10-14 Thread Steven D'Aprano
On Sun, 14 Oct 2012 19:19:33 +0200, Alain Ketterlin wrote:

> Usenet has no attachments. 

*snarfle*

You almost owed me a new monitor. I nearly sprayed my breakfast all over 
it.

"Usenet has no attachments" -- that's like saying that the Web has no 
advertisements. Maybe the websites you visit have no advertisements, but 
there's a *vast* (and often disturbing) part of the WWW that has 
advertisements, some sites are nothing but advertisements.

And so it is with Usenet, there is a vast (and often disturbing) area of 
Usenet containing attachments, and often nothing but attachments. The 
vast volume of all these attachments are such that it is getting hard to 
find ISPs that provide free access to binary newsgroups, but some still 
do, and dedicated for-fee Usenet providers do too.


-- 
Steven
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: pyw program not displaying unicode characters properly

2012-10-14 Thread Ian Kelly
On Sun, Oct 14, 2012 at 1:36 PM, jjmeric  wrote:
> Is there some sort of defaut font, or is there in Python or Python for
> Windows any ini file where the font used can be seen, eventually changed
> to a more appropriate one with all the required glyphs (like Lucida Sans
> Unicode has).

No, this is up to the program and the GUI framework it uses.  Do you
have any idea which one that would be (e.g. Tkinter, wxPython, PyQT,
etc.)?
-- 
http://mail.python.org/mailman/listinfo/python-list


Use the appropriate forum for recruitment (was: Client Needs Linux Admin position in Pleasanton, CA)

2012-10-14 Thread Ben Finney
ram dev  writes:

> Good Day,
> We have an urgent Contract Opening in  Pleasanton, CA.

Please don't use this discussion forum for recruitment.

For Python job recruiters and seekers, we have a separate Python Job
Board http://www.python.org/community/jobs/>.

> Job Title: Linux Admin 

You should find a Linux job board for that.

-- 
 \   “I distrust those people who know so well what God wants them |
  `\to do to their fellows, because it always coincides with their |
_o__)  own desires.” —Susan Brownell Anthony, 1896 |
Ben Finney

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: pyw program not displaying unicode characters properly

2012-10-14 Thread jjmeric
In article , 
ian.g.ke...@gmail.com says...
> 
> On Sun, Oct 14, 2012 at 1:36 PM, jjmeric  wrote:
> > Is there some sort of defaut font, or is there in Python or Python for
> > Windows any ini file where the font used can be seen, eventually changed
> > to a more appropriate one with all the required glyphs (like Lucida Sans
> > Unicode has).
> 
> No, this is up to the program and the GUI framework it uses.  Do you
> have any idea which one that would be (e.g. Tkinter, wxPython, PyQT,
> etc.)?

Thanks Ian
I have no idea, but - thanks to you - I now have an interesting question 
to ask back to the team who works on this in Russia... more later !

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: trouble with nested closures: one of my variables is missing...

2012-10-14 Thread Cameron Simpson
On 13Oct2012 22:07, Chris Rebert  wrote:
| On Saturday, October 13, 2012, Cameron Simpson wrote:
| > I'm having some trouble with closures when defining a decorator.
| 
| 
| > However, I can't make my make_file_property function work. I've stripped
| > the code down and it does this:
| 
| 
| >   Traceback (most recent call last):
| > File "foo.py", line 21, in 
| >   def f(self, foo=1):
| > File "foo.py", line 4, in file_property
| >   return make_file_property()(func)
| > File "foo.py", line 10, in made_file_property
| >   if attr_name is None:
| >   UnboundLocalError: local variable 'attr_name' referenced before
| > assignment
| >
| > Observe above that 'unset_object' is in locals(), but not 'attr_name'.
| > This surprises me.
| >
| > The stripped back code (missing the internals of the file property
| > watcher) looks like this:
| >
| >   import sys
| >
| >   def file_property(func):
| > return make_file_property()(func)
| >
| >   def make_file_property(attr_name=None, unset_object=None, poll_rate=1):
| > print >>sys.stderr, "make_file_property(attr_name=%r, unset_object=%r,
| > poll_rate=%r): locals()=%r" % (attr_name, unset_object, poll_rate,locals())
| > def made_file_property(func):
| 
| You're missing a "nonlocal" declaration here.
| 
|   print >>sys.stderr, "made_file_property(func=%r): locals()=%r" %
| > (func, locals())
| >   if attr_name is None:
| > attr_name = '_' + func.__name__
| 
| 
|  You assign to it, but there's no nonlocal declaration, so Python thinks
| it's a local var, hence your error.

But 'unset_object' is in locals(). Why one and not the other?
Obviously there's something about closures here I'm missing.

| Pardon my brevity and some lack of trimming; I'm on a smartphone and in a
| rush.

No worries. Thansk for the rpely.
-- 
Cameron Simpson 

A clean desk is the sign of a blank mind.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Aggressive language on python-list

2012-10-14 Thread Ben Finney
Zero Piraeus  writes:

> I'm a mostly passive subscriber to this list - my posts here over the
> years could probably be counted without having to take my socks off -
> so perhaps I have no right to comment, but I've noticed a marked
> increase in aggressive language here lately, so I'm putting my head
> above the parapet to say that I don't appreciate it.

Thanks for speaking up, Zero. You are certainly not alone in this.

“Ignore the trolls” is not helpful advice if one wants to maintain a
useful and friendly environment. If the hostile behaviour you refer to
goes unchallenged, the helpful contributors become drowned out and
eventually leave from fatigue. So ignoring trolls is not enough if we
want the friendly and useful conversations to continue.

Ignoring hostile behaviour also sends the wrong signal to newcomers and
casual observers: that this is not a community which cares about
actively upholding good standards of behaviour.

What's needed, IMO, is a difficult balance: there needs to be calm,
low-volume, but firm response to instances of hostile behaviour, making
clear by demonstration – especially to the people only observing the
discussion – that such hostility is unwanted and not to be tolerated in
our community.

This is difficult to achieve, though, because if *lots* of people do it,
the thread turns into a dogpile that is also unhelpful, and usually
departs from civil and rational discussion quickly. All of this turns
away more good people (again, often people who otherwise weeren't
involved in the particular discussion), so is counter-productive.

So my request is: Be selective, and be calm.


Don't respond deep in an existing exchange, especially one where many
others have already responded to that person. Be selective and only
respond when yours will be one of the first in the thread. (And that's
not a mandate to have a quick trigger :-)

Don't keep responding in a series of exchanges; it makes your messages
difficult for newcomers to tell apart from the voluminous noise of the
troll.

When responding to a troll, don't be inflammatory yourself – that is
*exactly* what they seek, a continuation and escalation of the conflict.

Point out exactly what you think they're doing wrong, simply and calmly,
and don't go on at length. Keep the innocent reader in mind, don't care
too much about the troll reading your response.

To those who feel the need to “fight” the trolls: thank you for caring
enough about the Python community to try to defend it. But I'm concerned
that you tend to pour fuel on the flames yourself, and I hope you can
work to avoid becoming the monster you fight.

> And, yes, I know bringing it up could be construed as stoking the
> flames ... but, well, "silence = acquiescence" and all that.

Agreed. Thanks again.

-- 
 \“Intellectual property is to the 21st century what the slave |
  `\  trade was to the 16th.” —David Mertz |
_o__)  |
Ben Finney

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Feedback on my python framework I'm building.

2012-10-14 Thread Dave Angel
On 10/14/2012 08:48 AM, Roy Smith wrote:
> In article <507a3365$0$6574$c3e8da3$54964...@news.astraweb.com>,
>  Steven D'Aprano  wrote:
>
>> Remember using PEEK and POKE commands with BASIC back in 
>> 1978? Pretty much impossible in Python. 
> But, trivial to implement as an extension :-)
PEEK and POKE were intended to be used with memory mapped devices. 
Simplest example is the 6502 chip, which had no I/O bus -- it was all
memory mapped.  Want to change baud rate?  poke a byte somewhere.

These days, the only device I can think of that's usually memory mapped
is the video.  And few programs talk to it that way.

Now, INP and OUT (or various similar names) were for doing port I/o. 
But I suspect that modern systems aren't going to let you do much of
that either.

-- 

DaveA

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Feedback on my python framework I'm building.

2012-10-14 Thread MRAB

On 2012-10-14 23:38, Dave Angel wrote:

On 10/14/2012 08:48 AM, Roy Smith wrote:

In article <507a3365$0$6574$c3e8da3$54964...@news.astraweb.com>,
 Steven D'Aprano  wrote:


Remember using PEEK and POKE commands with BASIC back in
1978? Pretty much impossible in Python.

But, trivial to implement as an extension :-)

PEEK and POKE were intended to be used with memory mapped devices.
Simplest example is the 6502 chip, which had no I/O bus -- it was all
memory mapped.  Want to change baud rate?  poke a byte somewhere.

These days, the only device I can think of that's usually memory mapped
is the video.  And few programs talk to it that way.

Now, INP and OUT (or various similar names) were for doing port I/o.
But I suspect that modern systems aren't going to let you do much of
that either.


It depends on the CPU. Some have specialised instructions for I/O,
others don't.
--
http://mail.python.org/mailman/listinfo/python-list


Re: Aggressive language on python-list

2012-10-14 Thread alex23
On Oct 14, 3:39 pm, Dwight Hutto  wrote:
> I'm not a know it all, but when attacked personally I defend myself,
> and those can turn into flame wars.

I'm not wanting this to turn into another round of flames, but I do
want to highlight that there's a big difference between being asked to
moderate your language on a public list and a personal attack.

> Your plonks are irrelevant
> These things can get nasty quick.
> So if you have virgin eyes, then kill file it
> If you want it, bring it

Posturing like this doesn't help either and starts to fall into the
"aggressive language" territory this thread is concerned with.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: trouble with nested closures: one of my variables is missing...

2012-10-14 Thread Ian Kelly
On Sun, Oct 14, 2012 at 3:54 PM, Cameron Simpson  wrote:
> |  You assign to it, but there's no nonlocal declaration, so Python thinks
> | it's a local var, hence your error.
>
> But 'unset_object' is in locals(). Why one and not the other?
> Obviously there's something about closures here I'm missing.

'unset_object' is in locals because it's a free variable and those are
included in locals(), and it has a value.
'attr_name' is not in locals because while it's a local variable, it
has not been assigned to yet.  It has no value and an attempt to
reference it at that point would result in an UnboundLocalError.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Understanding http proxies

2012-10-14 Thread Cameron Simpson
On 13Oct2012 20:43, Olive  wrote:
| I am trying to understand how to build an http proxy server in python,
| and I have found the following example:
| http://www.oki-osk.jp/esc/python/proxy/
| 
| But I do not have found an exact description of what exactly a proxy
| server is suppose to do (all references gice only the basic principe of
| proxy that I know). In the following model
| 
| Client <-> Proxy <-> Server
| 
| it seems when I read the code above that the proxy acts mostly as an
| orinary server with respect to the client except that it is supposed to
| receive the full URL instead of just the path. Am I right? Is there any
| documentation on what an http proxy is supposed to implement.

As mentioned elsewhere, in HTTP 1.0 you get a full URL in the opening
line.

In HTTP 1.1 you get the path component in the opening line and the host
part in the Host: header of the request.

Have a read of RFC2616 (which defines HTTP 1.0):

  http://tools.ietf.org/html/rfc2616

It has sections on proxies, too, outlining which they must do beyond
what a plain HTTP server must do (not much, but a few things, and there
are proxy-specific authentication fields available too):

  Proxy Servers
  http://tools.ietf.org/html/rfc2616#section-8.1.3

  Proxy Authenticate
  http://tools.ietf.org/html/rfc2616#section-14.33

Cheers,
-- 
Cameron Simpson 

There's two kinds of climbers...smart ones, and dead ones.  - Don Whillans
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: trouble with nested closures: one of my variables is missing...

2012-10-14 Thread Cameron Simpson
On 14Oct2012 18:32, Ian Kelly  wrote:
| On Sun, Oct 14, 2012 at 3:54 PM, Cameron Simpson  wrote:
| > |  You assign to it, but there's no nonlocal declaration, so Python thinks
| > | it's a local var, hence your error.
| >
| > But 'unset_object' is in locals(). Why one and not the other?
| > Obviously there's something about closures here I'm missing.
| 
| 'unset_object' is in locals because it's a free variable and those are
| included in locals(), and it has a value.
|
| 'attr_name' is not in locals because while it's a local variable, it
| has not been assigned to yet.  It has no value and an attempt to
| reference it at that point would result in an UnboundLocalError.

Can you elaborate a bit on that? The only place in my code that
unset_object is set is as a default parameter in make_file_property
(snippet):

  def make_file_property(attr_name=None, unset_object=None, poll_rate=1):
print >>sys.stderr, "make_file_property(attr_name=%r, unset_object=%r, 
poll_rate=%r): locals()=%r" % (attr_name, unset_object, poll_rate,locals())
def made_file_property(func):
  print >>sys.stderr, "made_file_property(func=%r): locals()=%r" % (func, 
locals())
  if attr_name is None:
attr_name = '_' + func.__name__

and attr_name is set there also.

Is attr_name omitted from locals() in made_file_property _because_ I
have an assignment statement?

If that's the case, should I be doing this (using distinct names for the
closure variable and the function local variable):

  def make_file_property(attr_name=None, unset_object=None, poll_rate=1):
print >>sys.stderr, "make_file_property(attr_name=%r, unset_object=%r, 
poll_rate=%r): locals()=%r" % (attr_name, unset_object, poll_rate,locals())
def made_file_property(func):
  print >>sys.stderr, "made_file_property(func=%r): locals()=%r" % (func, 
locals())
  if attr_name is None:
my_attr_name = '_' + func.__name__
  else:
my_attr_name = attr_name
  lock_name = my_attr_name + '_lock'
  def getprop(self):
with getattr(self, lock_name):
  pass
return getattr(self, my_attr_name, unset_object)

i.e. deliberately _not_ assigning to attr_name as as to _avoid_ masking
the outer attr_name from the inner locals()?

BTW, doing that works. Is that The True Path for this situation?

If so, I think I now understand what's going on: Python has inspected
the inner function and not placed the outer 'attr_name' into locals()
_because_ the inner function seems to have its own local attr_name
in use, which should not be pre-tromped.

-- 
Cameron Simpson 

Nothing is so smiple that it can't get screwed up.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: trouble with nested closures: one of my variables is missing...

2012-10-14 Thread Ian Kelly
On Sun, Oct 14, 2012 at 7:08 PM, Cameron Simpson  wrote:
> On 14Oct2012 18:32, Ian Kelly  wrote:
> | 'attr_name' is not in locals because while it's a local variable, it
> | has not been assigned to yet.  It has no value and an attempt to
> | reference it at that point would result in an UnboundLocalError.
>
> Can you elaborate a bit on that? The only place in my code that
> unset_object is set is as a default parameter in make_file_property
> (snippet):
>
>   def make_file_property(attr_name=None, unset_object=None, poll_rate=1):
> print >>sys.stderr, "make_file_property(attr_name=%r, unset_object=%r, 
> poll_rate=%r): locals()=%r" % (attr_name, unset_object, poll_rate,locals())
> def made_file_property(func):
>   print >>sys.stderr, "made_file_property(func=%r): locals()=%r" % (func, 
> locals())
>   if attr_name is None:
> attr_name = '_' + func.__name__
>
> and attr_name is set there also.
>
> Is attr_name omitted from locals() in made_file_property _because_ I
> have an assignment statement?

Yes.  Syntactically, a variable is treated as local to a function if
it is assigned to somewhere in that function and there is no explicit
global or nonlocal declaration.

> If that's the case, should I be doing this (using distinct names for the
> closure variable and the function local variable):
>
>   def make_file_property(attr_name=None, unset_object=None, poll_rate=1):
> print >>sys.stderr, "make_file_property(attr_name=%r, unset_object=%r, 
> poll_rate=%r): locals()=%r" % (attr_name, unset_object, poll_rate,locals())
> def made_file_property(func):
>   print >>sys.stderr, "made_file_property(func=%r): locals()=%r" % (func, 
> locals())
>   if attr_name is None:
> my_attr_name = '_' + func.__name__
>   else:
> my_attr_name = attr_name
>   lock_name = my_attr_name + '_lock'
>   def getprop(self):
> with getattr(self, lock_name):
>   pass
> return getattr(self, my_attr_name, unset_object)
>
> i.e. deliberately _not_ assigning to attr_name as as to _avoid_ masking
> the outer attr_name from the inner locals()?
>
> BTW, doing that works. Is that The True Path for this situation?

That's a perfectly good way to do it as long as you don't want to
actually change the value of the outer attr_name.  If you did, then
you would either declare the variable as nonlocal (Python 3.x only) or
use a container (e.g. a 1-element list), which would allow you to
modify the contents of the container without actually assigning to the
variable.

> If so, I think I now understand what's going on: Python has inspected
> the inner function and not placed the outer 'attr_name' into locals()
> _because_ the inner function seems to have its own local attr_name
> in use, which should not be pre-tromped.

Exactly right.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: trouble with nested closures: one of my variables is missing...

2012-10-14 Thread Cameron Simpson
On 14Oct2012 19:27, Ian Kelly  wrote:
| On Sun, Oct 14, 2012 at 7:08 PM, Cameron Simpson  wrote:
| > Is attr_name omitted from locals() in made_file_property _because_ I
| > have an assignment statement?
| 
| Yes.  Syntactically, a variable is treated as local to a function if
| it is assigned to somewhere in that function and there is no explicit
| global or nonlocal declaration.

Aha. Good.

| > If that's the case, should I be doing this (using distinct names for the
| > closure variable and the function local variable):
| >
| >   def make_file_property(attr_name=None, unset_object=None, poll_rate=1):
[...]
| >   if attr_name is None:
| > my_attr_name = '_' + func.__name__
| >   else:
| > my_attr_name = attr_name
[...]
| > i.e. deliberately _not_ assigning to attr_name as as to _avoid_ masking
| > the outer attr_name from the inner locals()?
| >
| > BTW, doing that works. Is that The True Path for this situation?
| 
| That's a perfectly good way to do it as long as you don't want to
| actually change the value of the outer attr_name.

Well, I don't need to - using a distinct local variable will do the job.  I
just hadn't realised I needed the extra level of naming.

| If you did, then
| you would either declare the variable as nonlocal (Python 3.x only)

... which is why I couldn't find such in the 2.7.3 doco ...

| or
| use a container (e.g. a 1-element list), which would allow you to
| modify the contents of the container without actually assigning to the
| variable.

Ah. Yeah, tacky; I've done that kind of thing in the past on occasion but
using a distinct local name is much cleaner here, and probably usually.

| > If so, I think I now understand what's going on: Python has inspected
| > the inner function and not placed the outer 'attr_name' into locals()
| > _because_ the inner function seems to have its own local attr_name
| > in use, which should not be pre-tromped.
| 
| Exactly right.

Thanks for the explaination. Now I know a New Thing.

Cheers,
-- 
Cameron Simpson 

"Vy can't ve chust climb?"  - John Salathe
-- 
http://mail.python.org/mailman/listinfo/python-list


Can't run any script without it failing due to calling tkinter for no reason

2012-10-14 Thread pythonusernw
Hello All,


I'm running python 3.2 on Freebsd 9.0 Release and I must've screwed up my 
environment somehow, because now I can't run any script without it failing and 
throwing:
** IDLE can't import Tkinter.  Your Python may not be configured for Tk. **

Yet none of my scripts use tkinter nor call that module. They're simple network 
scraping scripts. I use pydev and eclipse and must've fat fingered something 
that screwed up my python environment, but I haven't the slightest clue on how 
to fix it. I can run my scripts in idle no problem, but I've built them as 
command line apps. I've tried uninstalling python 3 and reinstalling it to no 
avail. What did I do, and how can I fix it?

Thanks,
Adam
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Aggressive language on python-list

2012-10-14 Thread Zero Piraeus
:

On 14 October 2012 17:58, Ben Finney  wrote:
> What's needed, IMO, is a difficult balance: there needs to be calm,
> low-volume, but firm response to instances of hostile behaviour, making
> clear by demonstration – especially to the people only observing the
> discussion – that such hostility is unwanted and not to be tolerated in
> our community.

Yep. I also think such responses are more effective coming from people
who already have some weight[1] around here (which was part of the
reason I was hesitant to bring it up myself). Good to see a few names
I'd put in that bracket appear in this thread :-)

 -[]z.

[1] "Who are you calling fat?" replies in 3, 2 ...
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Can't run any script without it failing due to calling tkinter for no reason

2012-10-14 Thread Benjamin Kaplan
On Sun, Oct 14, 2012 at 6:47 PM,   wrote:
> Hello All,
>
>
> I'm running python 3.2 on Freebsd 9.0 Release and I must've screwed up my 
> environment somehow, because now I can't run any script without it failing 
> and throwing:
> ** IDLE can't import Tkinter.  Your Python may not be configured for Tk. **
>
> Yet none of my scripts use tkinter nor call that module. They're simple 
> network scraping scripts. I use pydev and eclipse and must've fat fingered 
> something that screwed up my python environment, but I haven't the slightest 
> clue on how to fix it. I can run my scripts in idle no problem, but I've 
> built them as command line apps. I've tried uninstalling python 3 and 
> reinstalling it to no avail. What did I do, and how can I fix it?
>
> Thanks,
> Adam
> --

IDLE uses Tkinter. If you don't have Tk installed, just run the
scripts from the terminal or pick a different IDE.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Aggressive language on python-list

2012-10-14 Thread Michael Torrie
On 10/13/2012 09:46 AM, Etienne Robillard wrote:
> OT. you obviously has no clue what agressive behavior mean. :-)
> 
> So please continue with the passive tone saying nothing relevant 
> and login to facebook.

There's a saying in English.  Hit pigeons flutter.  I have not been
impressed with your last few posts.  In fact your last couple of posts
have been irrelevant and unhelpful to say the least.  As you are looking
for a maintainer to take over your django add-on project, such an
attitude is not going to attract developers to take over your baby.
Some of this could be the language barrier, but really such posturing
isn't necessary.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Can't run any script without it failing due to calling tkinter for no reason

2012-10-14 Thread Adam G
On Sunday, October 14, 2012 7:19:24 PM UTC-7, Benjamin Kaplan wrote:
> On Sun, Oct 14, 2012 at 6:47 PM,   wrote:
> 
> > Hello All,
> 
> >
> 
> >
> 
> > I'm running python 3.2 on Freebsd 9.0 Release and I must've screwed up my 
> > environment somehow, because now I can't run any script without it failing 
> > and throwing:
> 
> > ** IDLE can't import Tkinter.  Your Python may not be configured for Tk. **
> 
> >
> 
> > Yet none of my scripts use tkinter nor call that module. They're simple 
> > network scraping scripts. I use pydev and eclipse and must've fat fingered 
> > something that screwed up my python environment, but I haven't the 
> > slightest clue on how to fix it. I can run my scripts in idle no problem, 
> > but I've built them as command line apps. I've tried uninstalling python 3 
> > and reinstalling it to no avail. What did I do, and how can I fix it?
> 
> >
> 
> > Thanks,
> 
> > Adam
> 
> > --
> 
> 
> 
> IDLE uses Tkinter. If you don't have Tk installed, just run the
> 
> scripts from the terminal or pick a different IDE.



Hi Ben,


Your reply instantly triggered my aha moment and I figured it out. I had an 
import to idlelib in one of my modules dependencies from an eclipse 
auto-import. I feel foolish for not seeing it sooner. I use eclipse and pydev 
and use a module to do all the heavy network code for my front end command line 
scripts. In that module I used a function variable called host where eclipse, 
oh so helpfully, gave me the option of resolving an import I never asked for by 
automatically importing some module from idlelib. It was from idlelib import 
host as HOST or something to that effect. Damn eclipse does that to me from 
time to time and it happens so fast I don't even see what it does. Thanks for 
the reply and helping me see my erroneous ways.

Cheers,
Adam
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Aggressive language on python-list

2012-10-14 Thread rurpy
On 10/14/2012 03:58 PM, Ben Finney wrote:> Zero Piraeus  
writes:
>[...]
> What's needed, IMO, is a difficult balance: there needs to be calm,
> low-volume, but firm response to instances of hostile behaviour, making
> clear by demonstration – especially to the people only observing the
> discussion – that such hostility is unwanted and not to be tolerated in
> our community.
>[...]

The problem with this is that while there may sometimes be a 
weak consensus, different people have different ideas about
what is "wrong".  Thus when a member of this esteemed group
was recently attacked as racist, for punning another member's
name when responding somewhat heatedly, I, according to your 
view, should have jumped in to point out unfair accusations 
of racism are not only wrong, but hurt the cause of anti-racism 
by devaluing such charges when they are legitimate.

No, what you propose will only reduce the signal to noise ratio
and increase the amount of off-topic arguments.

The old tried-and-true advise is still the best: don't feed the 
trolls.  Experience with three decades of mailing lists and usenet 
has shown that most of them give up and go somewhere else when 
they don't get a response. 

Of course this does not apply when you are the one attacked (or 
perceive you are) -- in that case your advice for a low-key
factual response is quite appropriate.  (And then drop it.)

> To those who feel the need to “fight” the trolls: thank you for caring
> enough about the Python community to try to defend it. But I'm concerned
> that you tend to pour fuel on the flames yourself, and I hope you can
> work to avoid becoming the monster you fight.
> 
>> And, yes, I know bringing it up could be construed as stoking the
>> flames ... but, well, "silence = acquiescence" and all that.
> 
> Agreed. Thanks again.

No.  Silence != acquiescence as a few minutes of thought will
show.  The fact that it is often repeated does not make it 
true.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Aggressive language on python-list

2012-10-14 Thread alex23
On Oct 15, 1:22 pm, ru...@yahoo.com wrote:
> Thus when a member of this esteemed group
> was recently attacked as racist, for punning another member's
> name when responding somewhat heatedly,

Again, there is a difference between "attacking" someone "as racist"
and *criticising* their *comments* as *possibly* racist. When the
person whose name was being punned said that they themselves were
unsure whether it was intended as a racial attack, then the behaviour
was worth commenting on.

If anything, I initially *joked* about it as a means of trying to
point out the issue in a non-offensive way. If there was any
"attacking" going on, it was in the criticised party's responses.

> hurt the cause of anti-racism

My response had nothing to do with "agendas" and "causes" and
everything to do with wanting to keep specific forms of discourse off
this list. I had identical issues with the same person's use of
"bitch" and "whore"; I cannot begin to fathom how stating that they're
unacceptable to use here is in any way damaging to the anti-sexism
position, or an attack on the person saying them.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: pyw program not displaying unicode characters properly

2012-10-14 Thread Alain Ketterlin
Steven D'Aprano  writes:

> On Sun, 14 Oct 2012 19:19:33 +0200, Alain Ketterlin wrote:
>
>> Usenet has no attachments. 
>
> *snarfle*
>
> You almost owed me a new monitor. I nearly sprayed my breakfast all over 
> it. [...]

I owe you nothing, and you can do whatever you want with your breakfast.

> "Usenet has no attachments" -- that's like saying that the Web has no 
> advertisements. Maybe the websites you visit have no advertisements, but 
> there's a *vast* (and often disturbing) part of the WWW that has 
> advertisements, some sites are nothing but advertisements.[...]

I really don't know what you are ranting about here. See Dennis' response.

Any idea about a reasonable complete unicode font on Windows? /That/
would be helpful.

-- Alain.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Basic JSON question: Do I really need the quotes

2012-10-14 Thread moogyd
On Friday, 12 October 2012 16:09:14 UTC+2, (unknown)  wrote:
> Hi,
> 
> I need to define some configuration in a file that will be manually created.
> 
> Internally, the data will be stored as a dict, which contains various 
> properties related to a design
> 
> e.g. Design Name, dependencies, lists of files (and associated libraries).
> 
> json seemed a quick an easy way of achieving this
> 
> Anyway, in simple terms my question - if I know everything is a string, how 
> can I omit the quotation marks?
> 
> 
> 
> i.e. I can do
> 
> 
> 
> >>> json.loads('{"mykey":["data0", "data1"]}')
> 
> {u'mykey': [u'data0', u'data1']}
> 
> 
> 
> But I would like to do
> 
> >>> json.loads('{mykey:[data0, data1]}')
> 
> Traceback (most recent call last):
> 
> 
> 
> The problem is that I don't want to make users have to type redundant 
> characters.
> 
> Is it possible?
> 
> Thanks,
> 
> Steven

Hi,
Thanks to everyone for the responses. I'll look at YAML and ConfigParser.
Steven
-- 
http://mail.python.org/mailman/listinfo/python-list