Re: merits of Lisp vs Python

2006-12-13 Thread Lars Brinkhoff
Bill Atkins <[EMAIL PROTECTED]> writes:
> the macro is just a friendlier syntax for expressing an idea.

I like that phrase!
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: merits of Lisp vs Python

2006-12-13 Thread Paul Rubin
Neil Cerutti <[EMAIL PROTECTED]> writes:
> Is the above 'duck-typing' idiom considered very useful to a
> Lisper? It seems logical to me that duck-typing works best in an
> environment where it is ubiquitous. If users have to implement
> accessors specifically to use your library, it is not as good as
> if they had already implemented one as a matter of routine.

It's a little more complicated than that, the classes involved have to
have special interfaces to tell setf/getf what to do, sort of a
compile time equivalent of __setattr__/__getattr__ if I remember right.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: merits of Lisp vs Python

2006-12-13 Thread Paul Rubin
"[EMAIL PROTECTED]" <[EMAIL PROTECTED]> writes:
> Let us note that it's not FSF that gives this stuff away for free -- or
> if it is them proximally, it is not them ultimately -- ultimately it's
> the engineers who did all that work that gave it away for free.

When I worked there, they paid me ;-)
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: merits of Lisp vs Python

2006-12-13 Thread Paul Rubin
Bill Atkins <[EMAIL PROTECTED]> writes:
> You should be pragmatic about this - I have never used a CL
> implementation that didn't do TCO optimization (indeed, are there
> any?).  Although the standard doesn't require it, I treat it as a de
> facto requirement and don't worry too much about it.

I have to confess that most of the Lisp code I've written were on
simpler dialects that didn't have TCO.  But I'm not sure if the CL
implementations I've used (KCL back in the day, and CLISP a little
bit) had it either.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: merits of Lisp vs Python

2006-12-13 Thread Juan R.
Kay Schluehr wrote:
>
> You mean a universal language adapter? I guess this is always possible
> using alpha conversion but I don't believe this leads to theoretical or
> practical interesting solutions but is just a limit concept.

Not familiarized with you terminology. I think that i would call that a
universal language composer.

I mean if there exists some theoretical limitation to composionality of
two directly collapsing languages (G1, T1) and  (G2, T2) via a
unambiguous modification (e.g. 'renaming') to a third one (G2', T2'),
unknown to me. I mean some theoretical limitation in the sense of known
theoretical limitations to proving theorems in closed formal systems.
After all proving a formal theorem is not very different from
enhacement of a language.

> The practical problem with composing enhancements is that any two
> extensions L1, L2 share a lot of rules and rely on their structure.
> What if they don't just extend their host language L0 conservatively
> but also redefine rules of L0? This is not just a theoretical problem
> but it happens quite naturally if you want to adapt an extension
> developed for Python 2.4 for working with Python 2.5. Here Python 2.5
> is considered as just another particular extension. Obviously Py3K will
> become an interesting testcase for all kinds of syntactical and
> semantical transformations.

I would consider redefined-L0 to be L0'. I think that a concept of
namespaces could be also used for versioning-like conflicts:
L0v24:foo(), L0v25:foo(). The problem is that both versions may be
stored and managed during initial period of time. But in the long run
old libraries, extensions... would be updated to the new version.

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


Re: merits of Lisp vs Python

2006-12-13 Thread Timofei Shatrov
On Wed, 13 Dec 2006 16:07:01 +1300, greg <[EMAIL PROTECTED]> tried to
confuse everyone with this message:

>Robert Uhl wrote:
>
>> o Symbols
>> 
>> In Lisp, a symbol is essentially a hashed string;
>
>Are you aware that strings can be interned in Python?
>Furthermore, any string literal in the source that
>is a syntactically valid identifier is automatically
>interned, and you can intern any string explicitly
>if you need. This gives you exactly the same
>capabilities as symbols in Lisp.

Are you aware that you hardly know any Lisp yet make such bold and unfounded
claims? Unless interning a string somehow gives it a property list, slot value
and function value it doesn't give you the same capabilities.

-- 
|Don't believe this - you're not worthless  ,gr-.ru
|It's us against millions and we can't take them all... |  ue il   |
|But we can take them on!   | @ma  |
|   (A Wilhelm Scream - The Rip)|__|
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: merits of Lisp vs Python

2006-12-13 Thread tim . peters
[Bill Atkins]
>> (Why are people from c.l.p calling parentheses "brackets"?)

[Kaz Kylheku]
> Because that's what they are often called outside of the various
> literate fields.

For example, the English are "outside of the various literate fields"?

FWIW, Python documentation consistently uses the jargon:

() parentheses
{} braces
[] brackets

That matches North American conventions, but occasionally confuses an
international audience (for example, the English call parentheses
"brackets" or "round brackets").

There's also a long tradition in both mathematics and computer science
of using "bracket" as a generic term for any syntactic device used in
pairs.  For example, the "Revised Report on the Algorithmic Language
Algol 60" way back in 1963 even called "begin" and "end" brackets.  If
it's tempting to call the authors of that illiterate too, keep in mind
that John McCarthy was one of them -- although I'm sure Peter Naur
would be willing to take the blame for dumbing it down for Europeans ;-)

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


Re: merits of Lisp vs Python

2006-12-13 Thread Timofei Shatrov
On 12 Dec 2006 18:03:49 -0800, "Paddy" <[EMAIL PROTECTED]> tried to confuse
everyone with this message:

>There are a lot of people that use Wikipedia. I think some of them
>might want to learn to program. 

I think you misunderstood the goal of Wikipedia. It is not to teach people
programming.

>I make it easier for them to find
>Python by helping to maintain Python within Wikipedia.

If someone wants to find Python, he types "Python" in the search bar and works
from there. He certainly wouldn't end up in "doctest" article.

>Some people dislike Wikipedia which is fine. Some people dislike
>Wikipedia and deliberately sabotage it, which is vandalism.

Writing vanity articles about non-notable things is not much better.

-- 
|Don't believe this - you're not worthless  ,gr-.ru
|It's us against millions and we can't take them all... |  ue il   |
|But we can take them on!   | @ma  |
|   (A Wilhelm Scream - The Rip)|__|
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is anyone using Python for embedded applications?

2006-12-13 Thread Andre Meyer

Not sure what your target embedded platform is, but there is a Python
version for the Nokia S60 mobile phone platform (Symbian).

http://s60.com/

Python for 
S60
Python for S60 allows developers to execute Python commands and run Python
scripts and applications in devices based on S60 Platform. In addition,
developers can execute Python commands and scripts in the emulators of S60
Developer Platform SDKs. Development starts with an interactive console in a
S60 compatible device where Python commands can be executed.

hth
Andre

On 12/12/06, Carl J. Van Arsdall <[EMAIL PROTECTED]> wrote:


I'm aware of a couple python projects for embedded systems.  I am
currently considering using Python on an embedded platform to develop a
simple application as a personal project, mostly to see if it will
work.  I was wondering if anyone here was using python for anything of
that nature?  For those that are involved in these types of projects,
how does development in python differ for embedded projects versus a
non-embedded project?  Is there a community standard technique or style
for this type of development (i.e. heavy in OO design? commonly used
patterns?)  Are there any good tools to assist for this type of
development environment?

Oh, and if anyone has opinions/facts on why python should not be used in
an embedded platform, I'd like to know that too.  I'm somewhat familiar
with pythons needs on a system, but there are a number of things I am
not aware of.

Thanks to everyone for their input!

-carl

--

Carl J. Van Arsdall
[EMAIL PROTECTED]
Build and Release


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





--
Dr. Andre P. Meyerhttp://python.openspace.nl/meyer
TNO Defence, Security and Safety  http://www.tno.nl/
Delft Cooperation on Intelligent Systems  http://www.decis.nl/

Ah, this is obviously some strange usage of the word 'safe' that I wasn't
previously aware of. - Douglas Adams
-- 
http://mail.python.org/mailman/listinfo/python-list

Re: how can i write a hello world in chinese with python

2006-12-13 Thread Leo Kislov

kernel1983 wrote:
> and I tried unicode and utf-8

How did you try unicode? Like this? :

EasyDialogs.Message(u'\u4e2d')

> I tried to both use unicode&utf-8 head just like "\xEF\xBB\xBF" and not
> to use
>
> Anyone knows about the setting in the python code file?
> Maybe python doesn't know I'm to use chinese?!

It depends on how EasyDialogs works. And by the way, when you say utf-8
encoded text is not displayed correctly, what do you actually see on
the screen?

  -- Leo

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

Re: One module per class, bad idea?

2006-12-13 Thread billie

Isaac Rodriguez wrote:

> > Yes, it would be a bad idea. =)
>
> Saying it is a bad idea and not explaining why will not help anyone. I
> would like you to elaborate on why it is a bad idea to have one file
> per class.
>
> Thanks,
>
> - Isaac.

Because it's just a useless limitation.
Python lets you the freedom to decide if using one class per file or a
lot of classes per file and this, imho, is a great advantage of Python
other Java.
Personally I like to have the possibility to include multiple classes
in one module if I need them. Obviously I'll hardly mix classes having
different tasks in the same .py file.
If you come from Java feel free to use the Java approach.

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


Re: merits of Lisp vs Python

2006-12-13 Thread Juan R.

greg ha escrito:

> Juan R. wrote:
>
> > I see no dinamism on your example, just static overloading.
>
> There's nothing static about it:
>
>q = raw_input()
>if q == "A":
>  a = 1
>  b = 2
>else:
>  a = "x"
>  b = "y"
>c = a + b
>
> There is no way that the compiler can statically
> determine what the + operator needs to do here.

Before or after the input? :]

No, it is not that i did mean. Of course, the operation for c is
dinamic, but just statically overloading the +. The definition for c
could be adapted to the cases and introduced on the if.

I would call dinamic code, for instance, if the if, the different cases
and the def for c could be modified on the fly _á la_ LISP macro style.

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

Re: merits of Lisp vs Python

2006-12-13 Thread Christophe
Robert Uhl a écrit :
> [EMAIL PROTECTED] (Aahz) writes:
>> Consider this: Lisp has had years of development, it has had millions of
>> dollars thrown at it by VC firms -- and yet Python is winning over Lisp
>> programmers.  Think about it.
> 
> The argument from popularity is invalid.  French units have overtaken
> standard units,
Never heard of that French unit thing. Unless you talk about that 
archaic unit system that was in use before the metric system was created.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: About alternatives to Matlab

2006-12-13 Thread Jon Harrop
Filip Wasilewski wrote:
> Jon, both Python and Matlab implementations discussed here use the
> lifting scheme, while yours is a classic convolution based approach.

I've done both in OCaml. The results are basically the same.

> These are two *different* algorithms for computing wavelet transforms.
> Although they have similar names and give similar results, it does not
> mean you can use them interchangeably in one benchmark! It just does
> not make sense.

It makes sense because they solve the same problem. When you're comparing
non-trivial problems between disparate languages you are not likely to use
the same algorithms. Using built-in hash functions is an obvious example.

> What's more, taking only very big input 'n' gives only very limited
> information about true performance.

I've presented times for 2 different "n". I agree that it would be better to
present infinite different "n" but I only had finite time.

> If you want to draw objective
> conclusions about algorithm implementation you should measure timing
> and memory usage characteristic for different input lengths.

I did. The results are unsurprising: multi-pass (Matlab/Python) gets
comparatively slower for bigger n. Memory usage is roughly the same for
different languages.

> This will 
> also give you some idea about call overhead and possible memory
> bandwidth influence. For example, the 4-tap db2 lifting transform
> should be about 50% faster than the one using subband filtering. That's
> theory. In practice, due to specific memory usage, the speedup gained
> with reduction of number of arithmetic operations is easily wasted by
> huge cache miss overhead (C implementation, measured on x86
> architecture) for arrays which don't fit entirely in the CPU cache. See
> my point?

No. The effects you are talking about are swamped by the interpreted vs
compiled effect.

>> 1.88s C++ (816 non-whitespace bytes)
>> 2.00s OCaml (741 b)
>> 2.33s F# (741 b)
>> 9.83s Your Python (1,002 b)
>>
>> The original python was 789 bytes.
> 
> Is the byte count a standard measure you apply to describe code
> quality?

You can use bytes, lines, words, tokens or just look at the code. Whatever
you do, Python loses on this benchmark in terms of brevity, clarity and
performance.

> I don't think you would be much happier to see totally 
> obfuscated golf one-liners.

That doesn't even make sense. Squeezing code onto one line doesn't improve
byte count.

>> It is probably just as easy. Instead of dynamic typing you have
>> parametric polymorphism. If you want to make your function generic over
>> arithmetic type then you can pass in the arithmetic operators.
> 
> Probably? Using the interactive interpreter, how can I easily create
> two n-dimensional arrays of arbitrary data type, add them and multiply
> by 17?

In F#:

  open Math.Matrix.Generic
  let a = init n m (fun i j -> ...)
  let b = init n m (fun i j -> ...)
  17. $* (a + b)

In OCaml you'd either use an array of arrays and define your own functions
over them, or you'd use the built-in Bigarray.Array2 and define some
functions over that. Either way, you have to use different operator names
for different types. You'd end up with something like:

  open Array2
  let a = init n m (fun i j -> ...)
  let b = init n m (fun i j -> ...)
  17. $* (a +: b)

> I just prefer fair
> comparisons and clean use cases instead of marketing like that and I
> don't believe anyone will buy your story about OCaml superior brevity
> after seeing one fairly irrelevant loop with few arithmetic operations
> as a killer argument.

Sure. There are lots of other examples of OCaml's brevity out there:

  http://www.ffconsultancy.com/free/ocaml
  http://www.ffconsultancy.com/free/sudoku
  http://www.ffconsultancy.com/free/maze
  http://www.ffconsultancy.com/free/ray_tracer

and now F#:

  http://www.ffconsultancy.com/dotnet/fsharp/

>> Here's my complete OCaml:
> ...
>> and C++:
>> #include 
> ...
> 
> You didn't mention your platform and compiler settings.

2.2GHz Athlon64 x2 with 2Gb RAM running Debian Linux.

g++ -O2
ocamlopt

> Using vector 
> at() method instead of plain C/C++ array indexing increases the timings
> by factor of ~1.5 to 10 or more (GCC, MSVC), depending on the
> optimizations set, so it doesn't seem to be the best possible solution.

Bounds checking is <1% slower with GCC and only 14% slower with MSVC.

> I was also unable to run your OCaml example for n >= 2^21 (win32, out
> of the box OCaml installation). Is there some 16MB memory limit imposed
> on Array?
> # let q = Array.make (1 lsl 21) 0.0;;
> Exception: Invalid_argument "Array.make".

On 32-bit, yes. You'd either have to use a different data structure
(Bigarrays), upgrade or switch to F#.

-- 
Dr Jon D Harrop, Flying Frog Consultancy
Objective CAML for Scientists
http://www.ffconsultancy.com/products/ocaml_for_scientists/index.html?usenet
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: merits of Lisp vs Python

2006-12-13 Thread Jan Dries
Christophe wrote:
> Robert Uhl a écrit :
>> [EMAIL PROTECTED] (Aahz) writes:
>>> Consider this: Lisp has had years of development, it has had millions of
>>> dollars thrown at it by VC firms -- and yet Python is winning over Lisp
>>> programmers.  Think about it.
>> The argument from popularity is invalid.  French units have overtaken
>> standard units,
> Never heard of that French unit thing. Unless you talk about that 
> archaic unit system that was in use before the metric system was created.

And who do you think created the metric system?

Regards,
Jan

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


Re: merits of Lisp vs Python

2006-12-13 Thread Rob Warnock
Raffael Cavallaro <[EMAIL PROTECTED]'espam-s'il-vous-plait-mac.com>:
+---
| "George Sakkis" <[EMAIL PROTECTED]> said:
| > If you mistakenly select an extra parenthesis or omit one, it's
| > the same thing.
| 
| Because you can't mistakenly select an extra paren or omit one in a 
| lisp-aware editor. Whether its a commercial lisp IDE or emacs, you 
| don't manually select s-expressions. You put your cursor/point at one 
| paren and you tell the editor - with a keystroke or a mouse click - to 
| find the matching paren and select everything contained between the two.
+---

And for any of you who are rejecting this because you don't want to
learn or use Emacs, Raffael's point is even true in the Vi family of
editors ("nvi" & "vim", at least). The "y%" command yanks (copies)
everything through the matching paren into the anonymous buffer;
"d%" deletes likewise [and saves in the anonymous buffer]; "p" (or "P")
pastes after (or before) the current location. All can be prefixed
with a buffer ("Q-register") name for more flexibility.

Lisp's parens really *do* make editing ever so much easier!


-Rob

-
Rob Warnock <[EMAIL PROTECTED]>
627 26th Avenue http://rpw3.org/>
San Mateo, CA 94403 (650)572-2607

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


Re: merits of Lisp vs Python

2006-12-13 Thread Paddy


On Dec 13, 8:39 am, [EMAIL PROTECTED] (Timofei Shatrov) wrote:
> On 12 Dec 2006 18:03:49 -0800, "Paddy" <[EMAIL PROTECTED]> tried to confuse
> everyone with this message:
>
> >There are a lot of people that use Wikipedia. I think some of them
> >might want to learn to program.
> I think you misunderstood the goal of Wikipedia. It is not to teach people
> programming.
You think wrong. Wikipedia articles get searched and links get
followed. Its good
for some of those to link to articles on Python.
>
> >I make it easier for them to find
> >Python by helping to maintain Python within Wikipedia.
> If someone wants to find Python, he types "Python" in the search bar and works
> from there. He certainly wouldn't end up in "doctest" article.
If someone is looking up comments or testing, then they might well end
up reading
the doctest article. And why not!

Does Lisp have similar?
Is the Lisp community as welcoming?
Do you have to think yourself a genius to join the club?
Is Lisp approachable?

>
> >Some people dislike Wikipedia which is fine. Some people dislike
> >Wikipedia and deliberately sabotage it, which is vandalism.
> Writing vanity articles about non-notable things is not much better.
Should I have asked you first ;-)
- Paddy.

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


Re: merits of Lisp vs Python

2006-12-13 Thread Slawomir Nowaczyk
On Wed, 13 Dec 2006 02:41:29 -0500
Raffael Cavallaro <[EMAIL PROTECTED]'espam-s'il-vous-plait-mac.com> wrote:

#> On 2006-12-12 19:18:10 -0500, "George Sakkis" <[EMAIL PROTECTED]> said:
#> 
#> > If you mistakenly select an extra parenthesis or omit one, it's
#> > the same thing.
#> 
#> Because you can't mistakenly select an extra paren or omit one in a
#> lisp-aware editor.

Sure I can! I think you misunderstood what George said.

(unless (eq 1 2) (if (eql 2 3) (x)) (y))

How is the editor supposed to know whether I want to cut/paste the
s-expression starting with "if" or the one with "eql"?

#> Whether its a commercial lisp IDE or emacs, you don't manually select
#> s-expressions. You put your cursor/point at one paren and you tell
#> the editor - with a keystroke or a mouse click - to find the matching
#> paren and select everything contained between the two.

Oh, you mean you have never seen a Python environment which could mark
the current block of code?

-- 
 Best wishes,
   Slawomir Nowaczyk
 ( [EMAIL PROTECTED] )

Truth is stranger than fiction, because fiction has to make sense.

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


call of __del__ non-deterministic in python 2.4 (cpython)?

2006-12-13 Thread Holger Joukl

Hi all,

I've recently run into a problem that I haven't seen with python 1.5.2 and
python 2.3.
It seems that under certain conditions __del__ does not get immediately
called when a local variable goes out of scope.

I ended up with deadlocks in a threaded application because a locked
section
was supposed to be entered from within __del__ but apparently the same
thread
(the main thread, in that case) was already holding that lock.

The result looked really strange with the main thread entering the locked
section and
then suddenly the delayed call of __del__ taking control, also wanting to
acquire
the lock but never being able to.

Unfortunately I fail to put together a minimal example.

Anyway: Is relying on __del__ getting called immediately when the refcount
drops to 0 a no-no?
If so should that maybe be prominently stated in the docs?

Cheers,
Holger

Der Inhalt dieser E-Mail ist vertraulich. Falls Sie nicht der angegebene
Empfänger sind oder falls diese E-Mail irrtümlich an Sie adressiert wurde,
verständigen Sie bitte den Absender sofort und löschen Sie die E-Mail
sodann. Das unerlaubte Kopieren sowie die unbefugte Übermittlung sind nicht
gestattet. Die Sicherheit von Übermittlungen per E-Mail kann nicht
garantiert werden. Falls Sie eine Bestätigung wünschen, fordern Sie bitte
den Inhalt der E-Mail als Hardcopy an.

The contents of this  e-mail are confidential. If you are not the named
addressee or if this transmission has been addressed to you in error,
please notify the sender immediately and then delete this e-mail.  Any
unauthorized copying and transmission is forbidden. E-Mail transmission
cannot be guaranteed to be secure. If verification is required, please
request a hard copy version.


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


[unicode] inconvenient unicode conversion of non-string arguments

2006-12-13 Thread Holger Joukl

Hi there,

I consider the behaviour of unicode() inconvenient wrt to conversion of
non-string
arguments.
While you can do:

>>> unicode(17.3)
u'17.3'

you cannot do:

>>> unicode(17.3, 'ISO-8859-1', 'replace')
Traceback (most recent call last):
  File "", line 1, in ?
TypeError: coercing to Unicode: need string or buffer, float found
>>>

This is somehow annoying when you want to convert a mixed-type argument
list
to unicode strings, e.g. for a logging system (that's where it bit me) and
want to make sure that possible raw string arguments are also converted to
unicode without errors (although by force).
Especially as this is a performance-critical part in my application so I
really
do not like to wrap unicode() into some custom tounicode() function that
handles
such cases by distinction of argument types.

Any reason why unicode() with a non-string argument should not allow the
encoding and errors arguments?
Or some good solution to work around my problem?

(Currently running on python 2.4.3)

Regards,
Holger

Der Inhalt dieser E-Mail ist vertraulich. Falls Sie nicht der angegebene
Empfänger sind oder falls diese E-Mail irrtümlich an Sie adressiert wurde,
verständigen Sie bitte den Absender sofort und löschen Sie die E-Mail
sodann. Das unerlaubte Kopieren sowie die unbefugte Übermittlung sind nicht
gestattet. Die Sicherheit von Übermittlungen per E-Mail kann nicht
garantiert werden. Falls Sie eine Bestätigung wünschen, fordern Sie bitte
den Inhalt der E-Mail als Hardcopy an.

The contents of this  e-mail are confidential. If you are not the named
addressee or if this transmission has been addressed to you in error,
please notify the sender immediately and then delete this e-mail.  Any
unauthorized copying and transmission is forbidden. E-Mail transmission
cannot be guaranteed to be secure. If verification is required, please
request a hard copy version.


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


Re: merits of Lisp vs Python

2006-12-13 Thread Juan R.

[EMAIL PROTECTED] ha escrito:

> FWIW, Python documentation consistently uses the jargon:
>
> () parentheses
> {} braces
> [] brackets
>
> That matches North American conventions, but occasionally confuses an
> international audience (for example, the English call parentheses
> "brackets" or "round brackets").
>
> There's also a long tradition in both mathematics and computer science
> of using "bracket" as a generic term for any syntactic device used in
> pairs.

Brackets are unequal paired syntatic delimiters used for packaging.
Quotations marks "string" or exclamation marks ¡Esto es español! are
used in pairs but not are brackets.

A natural convention is brackets = ( ), [ ], { }, < >

  ( ) parentheses or round brackets
  { } braces or curly brackets
  [ ] box or square brackets
  < > chevrons or angle brackets

A English calling "brackets" or "round brackets" to the parentheses is
doing nothing wrong, but brackets are not parentheses.

In mathematics the braces are also often called brackets and again that
is not wrong.

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

Re: About alternatives to Matlab

2006-12-13 Thread Jon Harrop
[EMAIL PROTECTED] wrote:
> A concrete example of interest to me: can I get an OCaml-to-native
> compiler for an IBM BlueGene? The processor is in the PowerPC family,
> but it has some modifications, and the binary format is different
> from standard Linux as well.

No idea. OCaml has quite a good PPC backend for the Mac already so you might
be able to persuade a student to do the conversion as a project.

If Mono runs on that platform then you might also consider F#...

-- 
Dr Jon D Harrop, Flying Frog Consultancy
Objective CAML for Scientists
http://www.ffconsultancy.com/products/ocaml_for_scientists/index.html?usenet
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: One module per class, bad idea?

2006-12-13 Thread mystilleef
Matias Jansson wrote:
> I come from a background of Java and C# where it is common practise to have
> one class per file in the file/project structure. As I have understood it,
> it is more common practice to have many classes in a Python module/file.
> What is the motivation behind it, would it be a bad idea to have a guideline
> in your project that promotes a one class per file structure (assuming most
> of the programmers a background similar to mine)?

It's a good idea. And I encourage it in my project. It makes sense for
us
because we document classes and methods copiously. However, use
whatever
works for your project.

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


Re: inconvenient unicode conversion of non-string arguments

2006-12-13 Thread Leo Kislov

Holger Joukl wrote:
> Hi there,
>
> I consider the behaviour of unicode() inconvenient wrt to conversion of
> non-string
> arguments.
> While you can do:
>
> >>> unicode(17.3)
> u'17.3'
>
> you cannot do:
>
> >>> unicode(17.3, 'ISO-8859-1', 'replace')
> Traceback (most recent call last):
>   File "", line 1, in ?
> TypeError: coercing to Unicode: need string or buffer, float found
> >>>
>
> This is somehow annoying when you want to convert a mixed-type argument
> list
> to unicode strings, e.g. for a logging system (that's where it bit me) and
> want to make sure that possible raw string arguments are also converted to
> unicode without errors (although by force).
> Especially as this is a performance-critical part in my application so I
> really
> do not like to wrap unicode() into some custom tounicode() function that
> handles
> such cases by distinction of argument types.
>
> Any reason why unicode() with a non-string argument should not allow the
> encoding and errors arguments?

There is reason: encoding is a property of bytes, it is not applicable
to other objects.

> Or some good solution to work around my problem?

Do not put undecoded bytes in a mixed-type argument list. A rule of
thumb working with unicode: decode as soon as possible, encode as late
as possible.

  -- Leo

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


Re: call of __del__ non-deterministic in python 2.4 (cpython)?

2006-12-13 Thread Fredrik Lundh
Holger Joukl wrote:

> Anyway: Is relying on __del__ getting called immediately when the refcount
> drops to 0 a no-no?

yes, but more importantly, relying on the refcount dropping to 0 when 
something goes out of scope is a major no-no.

> If so should that maybe be prominently stated in the docs?

is it perhaps the color that made you miss the big bold boxes in the 
documentation?

 http://docs.python.org/ref/customization.html#l2h-177



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


Re: Re: inconvenient unicode conversion of non-string arguments

2006-12-13 Thread Holger Joukl
[EMAIL PROTECTED] schrieb am 13.12.2006
11:02:30:

>
> Holger Joukl wrote:
> > Hi there,
> >
> > I consider the behaviour of unicode() inconvenient wrt to conversion of
> > non-string
> > arguments.
> > While you can do:
> >
> > >>> unicode(17.3)
> > u'17.3'
> >
> > you cannot do:
> >
> > >>> unicode(17.3, 'ISO-8859-1', 'replace')
> > Traceback (most recent call last):
> >   File "", line 1, in ?
> > TypeError: coercing to Unicode: need string or buffer, float found
> > >>>
> > [...]
> > Any reason why unicode() with a non-string argument should not allow
the
> > encoding and errors arguments?
>
> There is reason: encoding is a property of bytes, it is not applicable
> to other objects.

Ok, but I still don't see why these arguments shouldn't simply be silently
ignored
for non-string arguments.

> > Or some good solution to work around my problem?
>
> Do not put undecoded bytes in a mixed-type argument list. A rule of
> thumb working with unicode: decode as soon as possible, encode as late
> as possible.

It's not always that easy when you deal with a tree data structure with the
tree elements containing different data types and your user may decide to
output
root.element.subelement.whateverData.
I have the problems in a logging mechanism, and it would vanish if
unicode(, encoding, errors) would work and just ignore the
obsolete
arguments.

Best regards,
Holger


Der Inhalt dieser E-Mail ist vertraulich. Falls Sie nicht der angegebene
Empfänger sind oder falls diese E-Mail irrtümlich an Sie adressiert wurde,
verständigen Sie bitte den Absender sofort und löschen Sie die E-Mail
sodann. Das unerlaubte Kopieren sowie die unbefugte Übermittlung sind nicht
gestattet. Die Sicherheit von Übermittlungen per E-Mail kann nicht
garantiert werden. Falls Sie eine Bestätigung wünschen, fordern Sie bitte
den Inhalt der E-Mail als Hardcopy an.

The contents of this  e-mail are confidential. If you are not the named
addressee or if this transmission has been addressed to you in error,
please notify the sender immediately and then delete this e-mail.  Any
unauthorized copying and transmission is forbidden. E-Mail transmission
cannot be guaranteed to be secure. If verification is required, please
request a hard copy version.


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


Re: Sybase module 0.38pre1 released

2006-12-13 Thread Sébastien Sablé
By the way, I forgot to say that new releases can now be downloaded
from this page:

https://sourceforge.net/project/showfiles.php?group_id=184050

regards

--
Sébastien Sablé

2006/12/12, Sébastien Sablé <[EMAIL PROTECTED]>:
> WHAT IS IT:
>
> The Sybase module provides a Python interface to the Sybase relational
> database system.  It supports all of the Python Database API, version
> 2.0 with extensions.
>
> MAJOR CHANGES SINCE 0.37:
>
> * This release works with python 2.5
>
> * It also works with sybase 15
>
> * It works with 64bits clients
>
> * It can be configured to return native python datetime objects
>
> * The bug "This routine cannot be called because another command
> structure has results pending." which appears in various cases has
> been corrected
>
> * It includes a unitary test suite based on the dbapi2.0 compliance
> test suite
>
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: merits of Lisp vs Python

2006-12-13 Thread Kay Schluehr
Juan R. schrieb:

> Kay Schluehr wrote:
> >
> > You mean a universal language adapter? I guess this is always possible
> > using alpha conversion but I don't believe this leads to theoretical or
> > practical interesting solutions but is just a limit concept.
>
> Not familiarized with you terminology. I think that i would call that a
> universal language composer.
>
> I mean if there exists some theoretical limitation to composionality of
> two directly collapsing languages (G1, T1) and  (G2, T2) via a
> unambiguous modification (e.g. 'renaming') to a third one (G2', T2'),
> unknown to me. I mean some theoretical limitation in the sense of known
> theoretical limitations to proving theorems in closed formal systems.
> After all proving a formal theorem is not very different from
> enhacement of a language.

But proving the theorem might be trivial and the implementation
useless. It's like saying you want "universal composition" of two
geometric objects e.g. two manifolds M1, M2 and I write down M3 = M1 x
M2. This is always feasible but this is just not the right kind of
thing in many occasions.

I want to give a practical example. The Python grammar defines a
compound_stmt rule by:

compound_stmt: for_stmt | while_stmt | if_stmt | ...

Now you might add a switch_stmt to G1 and a repeat_stmt to G2

G1: compound_stmt: for_stmt | while_stmt | if_stmt | switch_stmt |...
G2: compound_stmt: for_stmt | while_stmt | if_stmt | repeat_stmt |...

What you actually want in G3 is

G3: compound_stmt: for_stmt | while_stmt | if_stmt | switch_stmt |
repeat_stmt |...

You don't want to rename each statement and mangle each terminal of G2
although this might always be possible. Renaming also negatively
affects the transformer of G2 which precedes composition and is encoded
as Python source. It has to be refactored too when you rename a rule.

So one requirement on a system of composition rules is to drop alpha
conversion which is just a last resort. I guess in any *reasonable*
system of composition rules the question whether G1 and G2 are
composable is decidable and this can also be proofed at least for
certain classes of grammars that are not Turing complete languages by
themselves.

>
> > The practical problem with composing enhancements is that any two
> > extensions L1, L2 share a lot of rules and rely on their structure.
> > What if they don't just extend their host language L0 conservatively
> > but also redefine rules of L0? This is not just a theoretical problem
> > but it happens quite naturally if you want to adapt an extension
> > developed for Python 2.4 for working with Python 2.5. Here Python 2.5
> > is considered as just another particular extension. Obviously Py3K will
> > become an interesting testcase for all kinds of syntactical and
> > semantical transformations.
>
> I would consider redefined-L0 to be L0'. I think that a concept of
> namespaces could be also used for versioning-like conflicts:
> L0v24:foo(), L0v25:foo(). The problem is that both versions may be
> stored and managed during initial period of time. But in the long run
> old libraries, extensions... would be updated to the new version.

Sure, but it's preferable to see how far one gets without name mangling
and other crutches.

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


Re: merits of Lisp vs Python

2006-12-13 Thread Rob Warnock
Paul Rubin   wrote:
+---
| CLTL2 is a model of precision and thoroughness compared
| with any document that's ever been written about Python.
+---

It's a great book, but one needs to be clear that CLtL2 is *not*
the same as the ANSI Common Lisp standard, but was the author's
best guess at the time as to where the standardization effort was
going after CLtL1. You may find the following useful in marking up
your copy of CLtL2 to be closer to the final standard:

http://cbbrowne.com/info/commonlisp.html#AEN10499
http://bc.tech.coop/cltl2-ansi.htm

But note the caveat therein:

A doctored CLTL2 is NOT the ANSI standard. In fact,
this FAQ has many known but minor omissions that are
too awkward to add with pencil to CLTL2.

The Common Lisp HyperSpec (CLHS), while also not the official
ANSI standard per se, was created from "the same" TeX input as
the ANSI standard (with permission from ANSI & X3), and is the
reference most CL programmers use:

http://www.lisp.org/HyperSpec/FrontMatter/index.html
http://www.lispworks.com/documentation/HyperSpec/Front/index.htm

For a downloadable tarball of the whole thing, there's a link near
the bottom of this page:

http://www.lispworks.com/documentation/HyperSpec/index.html


-Rob

-
Rob Warnock <[EMAIL PROTECTED]>
627 26th Avenue http://rpw3.org/>
San Mateo, CA 94403 (650)572-2607

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


Re: merits of Lisp vs Python

2006-12-13 Thread Pascal Bourguignon
Christophe <[EMAIL PROTECTED]> writes:

> Robert Uhl a écrit :
>> [EMAIL PROTECTED] (Aahz) writes:
>>> Consider this: Lisp has had years of development, it has had millions of
>>> dollars thrown at it by VC firms -- and yet Python is winning over Lisp
>>> programmers.  Think about it.
>>
>> The argument from popularity is invalid.  French units have overtaken
>> standard units,
> Never heard of that French unit thing. Unless you talk about that
> archaic unit system that was in use before the metric system was
> created.

Who invented the metric system?

-- 
__Pascal Bourguignon__ http://www.informatimago.com/
Wanna go outside.
Oh, no! Help! I got outside!
Let me back inside!
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: merits of Lisp vs Python

2006-12-13 Thread Christophe
[EMAIL PROTECTED] a écrit :
> Bjoern Schliessmann wrote:
>> Robert Uhl wrote:
>>
>>> Because it's the language for which indentation is automatically
>>> determinable.  That is, one can copy/paste a chunk of code, hit a
>>> key and suddenly everything is nicely indented.
>> Cool, so in other languages I need to set block marks like () and {}
>> and also indent the code for readability, and in Python I indent
>> only. From my POV that's less work.
> 
> Try reading again. In Lisp, you use () and *your editor* automatically
> indents according to the universal standard, or you leave it sloppy
> until other folks reading your code convince you to get a proper
> programming editor. Indentation does not get out of sync with semantics
> because the editor virtually never misses parentheses that the Lisp
> compiler sees. Expressions keep the same meaning even if you have to
> start breaking them across lines, etc.
> 
> In Python, you group in your mind, and press indentation keys to make
> it happen in your editor. The editor cannot help that much, because it
> cannot read your mind. White space screwups in copy-paste cannot be
> fixed by the editor automatically, because it cannot read the original
> programmer's mind, and you have to fix it manually, and risk screwing
> it up.

Call us when you have an editor that reads your mind and writes the () 
for you.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: inconvenient unicode conversion of non-string arguments

2006-12-13 Thread Fredrik Lundh
Holger Joukl wrote:

> Ok, but I still don't see why these arguments shouldn't simply be silently
> ignored

 >>> import this



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


Re: merits of Lisp vs Python

2006-12-13 Thread hit_the_lights
Paul Rubin schrieb:

> Neil Cerutti <[EMAIL PROTECTED]> writes:
> > Is the above 'duck-typing' idiom considered very useful to a
> > Lisper? It seems logical to me that duck-typing works best in an
> > environment where it is ubiquitous. If users have to implement
> > accessors specifically to use your library, it is not as good as
> > if they had already implemented one as a matter of routine.

No, it's not as ubiquitious as in Python. I guess that has many
different reasons, probably many historical. IIRC Peter Seibel
writes in Practical Common Lisp that CLOS (and thus "defgeneric")
was introduced late in the CL standardization process. That my be
one reason why it is not used extensively by the rest of the
standardized language.

> It's a little more complicated than that, the classes involved have to
> have special interfaces to tell setf/getf what to do, sort of a
> compile time equivalent of __setattr__/__getattr__ if I remember right.

The code I've posted is all you need. You can specialize it for any
class (including numbers, functions, symbols etc.) you like.

In case of the lookup "($ a 0)" there is nothing done at compile
time, it's just a call of the generic function "$".

"(setf ($ a 0) 1)" is translated at compile time (setf is a macro)
to something like "(funcall #'(setf $) 1 a 0)".

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


Re: YouTube written in Python

2006-12-13 Thread Simon Brunning
On 12/13/06, Terry Reedy <[EMAIL PROTECTED]> wrote:
> <[EMAIL PROTECTED]> wrote:
> > Really?
> > It's awful!
>
> Awesome?

Well, it's got some pretty awful clips on it, but I don't think you
can blame that on the technology. ;-)

-- 
Cheers,
Simon B
[EMAIL PROTECTED]
http://www.brunningonline.net/simon/blog/
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: merits of Lisp vs Python

2006-12-13 Thread John Thingstad
On Wed, 13 Dec 2006 03:13:26 +0100, Paddy <[EMAIL PROTECTED]> wrote:

> Not even close.
>
> In my example above:
>  for a in y:
>dosomethingwith(a)
> y could be a lot of built-in types such as an array, list, tuple, dict,
> file, or set.
> - Paddy.
>

I was refering to the recursive Lisp example.
Did you even read the post?

-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Re: call of __del__ non-deterministic in python 2.4 (cpython)?

2006-12-13 Thread Holger Joukl
[EMAIL PROTECTED] schrieb am 13.12.2006
11:09:13:

> Holger Joukl wrote:
>
> > Anyway: Is relying on __del__ getting called immediately when the
refcount
> > drops to 0 a no-no?
>
> yes, but more importantly, relying on the refcount dropping to 0 when
> something goes out of scope is a major no-no.

In my particular use case I think can rule out the problematic situations,
except for the
object being referenced in the stack trace, but that won't put me into
problems (and
there were no exceptions at all when I ran into the deadlocks)

> > If so should that maybe be prominently stated in the docs?
>
> is it perhaps the color that made you miss the big bold boxes in the
> documentation?
>
>  http://docs.python.org/ref/customization.html#l2h-177
>
> 

I did read this but didn't think it applied to my situation. I'm quite
sure that the refcount of the local variable is 1 before the local scope
is left.
So let me rephrase the question: Even if I can make sure that non of the
problematic situtions apply, might it _still_ happen that __del__ gets
called
after some other code has already been "entered"?

Thanks,
Holger

Der Inhalt dieser E-Mail ist vertraulich. Falls Sie nicht der angegebene
Empfänger sind oder falls diese E-Mail irrtümlich an Sie adressiert wurde,
verständigen Sie bitte den Absender sofort und löschen Sie die E-Mail
sodann. Das unerlaubte Kopieren sowie die unbefugte Übermittlung sind nicht
gestattet. Die Sicherheit von Übermittlungen per E-Mail kann nicht
garantiert werden. Falls Sie eine Bestätigung wünschen, fordern Sie bitte
den Inhalt der E-Mail als Hardcopy an.

The contents of this  e-mail are confidential. If you are not the named
addressee or if this transmission has been addressed to you in error,
please notify the sender immediately and then delete this e-mail.  Any
unauthorized copying and transmission is forbidden. E-Mail transmission
cannot be guaranteed to be secure. If verification is required, please
request a hard copy version.


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


Re: merits of Lisp vs Python

2006-12-13 Thread John Thingstad
On Wed, 13 Dec 2006 09:39:44 +0100, Timofei Shatrov <[EMAIL PROTECTED]> wrote:

> On 12 Dec 2006 18:03:49 -0800, "Paddy" <[EMAIL PROTECTED]> tried to  
> confuse
> everyone with this message:
>
>> There are a lot of people that use Wikipedia. I think some of them
>> might want to learn to program.
>
> I think you misunderstood the goal of Wikipedia. It is not to teach  
> people
> programming.
>
>> I make it easier for them to find
>> Python by helping to maintain Python within Wikipedia.
>
> If someone wants to find Python, he types "Python" in the search bar and  
> works
> from there. He certainly wouldn't end up in "doctest" article.
>
>> Some people dislike Wikipedia which is fine. Some people dislike
>> Wikipedia and deliberately sabotage it, which is vandalism.
>
> Writing vanity articles about non-notable things is not much better.
>

You are being silly. Wikipedia has for instance the best coverage of math
of any encyclopedia (if you can call it that). This is how I came in touch
with it. If you want trivia you get trivia. If you want Phd. level math it
has that as well. It is as diverse as the people that use it.

-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: merits of Lisp vs Python

2006-12-13 Thread Christophe
Pascal Bourguignon a écrit :
> Christophe <[EMAIL PROTECTED]> writes:
> 
>> Robert Uhl a écrit :
>>> [EMAIL PROTECTED] (Aahz) writes:
 Consider this: Lisp has had years of development, it has had millions of
 dollars thrown at it by VC firms -- and yet Python is winning over Lisp
 programmers.  Think about it.
>>> The argument from popularity is invalid.  French units have overtaken
>>> standard units,
>> Never heard of that French unit thing. Unless you talk about that
>> archaic unit system that was in use before the metric system was
>> created.
> 
> Who invented the metric system?

That system is called the metric system, not French units. French units 
refer to the archaic system used before the metric system was invented ( 
at least according to google )

So, let's admit that French Units refer to the metric system. I suppose 
then that the so called "standard" units refer to the imperial system.

Saying that the French units are technically worse than standard units 
is a troll of very poor quality and a very weak argument.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: merits of Lisp vs Python

2006-12-13 Thread Rob Warnock
Robert Uhl  <[EMAIL PROTECTED]> wrote:
+---
| "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> writes:
| > I have the code here (probably not the latest bcs I left the company
| > when it was acquired), let's do a little experiment, for what it's
| > worth: 89727 lines of Lisp code in 131 modules (lisp code files), 3306
| > "(defun" (by grep|wc), and 261 "(defmacro". [We did NOT use macros as
| > functions!] [Note that lines of code doesn't really matter in Lisp.]
| 
| Wow--my emacs install has 1,152,598 lines of code in 1,570 files,
| 29,244 defuns and 1,393 defmacros.
+---

Wow, indeed! The entire CMUCL-19c distribution is "only" 592081 lines
of source code in 1192 files, with 10699 DEFUNs and 1839 DEFMACROs.
I didn't realize CMUCL was so "small" compared to Emacs.  ;-}

[Of course, that doesn't include the number of DEFUNs & DEFMACROs
which are defined *by* macros, or the total of 2809 DEFINE-VOPs
in the various flavors of the compiler...]


-Rob

-
Rob Warnock <[EMAIL PROTECTED]>
627 26th Avenue http://rpw3.org/>
San Mateo, CA 94403 (650)572-2607

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


Re: Re: inconvenient unicode conversion of non-string arguments

2006-12-13 Thread Holger Joukl
[EMAIL PROTECTED] schrieb am 13.12.2006
11:37:03:

> Holger Joukl wrote:
>
> > Ok, but I still don't see why these arguments shouldn't simply be
silently
> > ignored
>
>  >>> import this
>
> 
>

You probably refer to "Explicit is better than implicit.".
In that particular case I still think it wouldn't hurt
to allow the encoding/errors arguments to keep the unicode()
signature consistent for all types of the first argument.

I'd go with "Although practicality beats purity."
;-)

Holger
(But maybe I'm not aware of tricky-implementation issues...)

Der Inhalt dieser E-Mail ist vertraulich. Falls Sie nicht der angegebene
Empfänger sind oder falls diese E-Mail irrtümlich an Sie adressiert wurde,
verständigen Sie bitte den Absender sofort und löschen Sie die E-Mail
sodann. Das unerlaubte Kopieren sowie die unbefugte Übermittlung sind nicht
gestattet. Die Sicherheit von Übermittlungen per E-Mail kann nicht
garantiert werden. Falls Sie eine Bestätigung wünschen, fordern Sie bitte
den Inhalt der E-Mail als Hardcopy an.

The contents of this  e-mail are confidential. If you are not the named
addressee or if this transmission has been addressed to you in error,
please notify the sender immediately and then delete this e-mail.  Any
unauthorized copying and transmission is forbidden. E-Mail transmission
cannot be guaranteed to be secure. If verification is required, please
request a hard copy version.


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


Re: inconvenient unicode conversion of non-string arguments

2006-12-13 Thread Leo Kislov

Holger Joukl wrote:
> [EMAIL PROTECTED] schrieb am 13.12.2006
> 11:02:30:
>
> >
> > Holger Joukl wrote:
> > > Hi there,
> > >
> > > I consider the behaviour of unicode() inconvenient wrt to conversion of
> > > non-string
> > > arguments.
> > > While you can do:
> > >
> > > >>> unicode(17.3)
> > > u'17.3'
> > >
> > > you cannot do:
> > >
> > > >>> unicode(17.3, 'ISO-8859-1', 'replace')
> > > Traceback (most recent call last):
> > >   File "", line 1, in ?
> > > TypeError: coercing to Unicode: need string or buffer, float found
> > > >>>
> > > [...]
> > > Any reason why unicode() with a non-string argument should not allow
> the
> > > encoding and errors arguments?
> >
> > There is reason: encoding is a property of bytes, it is not applicable
> > to other objects.
>
> Ok, but I still don't see why these arguments shouldn't simply be silently
> ignored
> for non-string arguments.

That's rather bizzare and sloppy approach. Should

unicode(17.3, 'just-having-fun', 'I-do-not-like-errors')
unicode(17.3, 'sdlfkj', 'ewrlkj', 'eoirj', 'sdflkj')

work?


> > > Or some good solution to work around my problem?
> >
> > Do not put undecoded bytes in a mixed-type argument list. A rule of
> > thumb working with unicode: decode as soon as possible, encode as late
> > as possible.
>
> It's not always that easy when you deal with a tree data structure with the
> tree elements containing different data types and your user may decide to
> output
> root.element.subelement.whateverData.
> I have the problems in a logging mechanism, and it would vanish if
> unicode(, encoding, errors) would work and just ignore the
> obsolete
> arguments.

I don't really see from your example what stops you from putting
unicode instead of bytes into your tree, but I can believe some
libraries can cause some extra work. That's the problem with libraries,
not with builtin function unicode(). Would you be happy if floating
point value 17.3 would be stored as 8 bytes in your tree? After all,
that is how 17.3 is actually represented in computer memory. Same story
with unicode, if some library gives you raw bytes *you* have to do
extra work later.

  -- Leo

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


Re: merits of Lisp vs Python

2006-12-13 Thread greg
Timofei Shatrov wrote:

> Are you aware that you hardly know any Lisp yet make such bold and unfounded
> claims? Unless interning a string somehow gives it a property list, slot value
> and function value it doesn't give you the same capabilities.

I'm talking about the capability of comparing symbols
efficiently by address, which Robert seemed to think
that Python couldn't do. I was pointing out that it
can, despite not having a distinct symbol type.

I know about property lists. The Pythonic way to do
the equivalent thing is using a dictionary.

I also know about the dual function/other value of
a symbol, which has alway seemed like an idiotic
feature to me. All it seems to do is make it more
awkward than necessary to deal with functions as
first class objects, which is supposedly meant to
be one of Lisp's strengths. So I regard it as a
feature that Python *doesn't* have this. :-)

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


slices - handy summary

2006-12-13 Thread meridian
If, like me, you're always forgetting which way around your list/seq
slices need to go then worry no more. Just put my handy "slice
lookupper" (TM) ) on a (large!) PostIt beside your screen and, Hey
Presto! no more tediously typing a 1-9 seq into your interpreter and
then getting a slice just to check what you get.. (Yes you. You know
you do that !) ...Cheers Steve

x = '0123456789'

x[-10: ] 0123456789 x[  0: ]
x[ -9: ] 123456789  x[  1: ]
x[ -8: ] 23456789   x[  2: ]
x[ -7: ] 3456789x[  3: ]
x[ -6: ] 456789 x[  4: ]
x[ -5: ] 56789  x[  5: ]
x[ -4: ] 6789   x[  6: ]
x[ -3: ] 789x[  7: ]
x[ -2: ] 89 x[  8: ]
x[ -1: ] 9  x[  9: ]

x[ :-9 ] 0  x[ :1  ]
x[ :-8 ] 01 x[ :2  ]
x[ :-7 ] 012x[ :3  ]
x[ :-6 ] 0123   x[ :4  ]
x[ :-5 ] 01234  x[ :5  ]
x[ :-4 ] 012345 x[ :6  ]
x[ :-3 ] 0123456x[ :7  ]
x[ :-2 ] 01234567   x[ :8  ]
x[ :-1 ] 012345678  x[ :9  ]
 0123456789 x[ :10 ]

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


Re: YouTube written in Python

2006-12-13 Thread [EMAIL PROTECTED]

Leif K-Brooks wrote:
> Terry Reedy wrote:
> > In a thread on the PyDev list, Guido van Rossum today wrote:
> >> And I just found out (after everyone else probably :-) that YouTube is
> >> almost entirely written in Python. (And now I can rub shoulders with
> >> the developers since they're all Googlers now... :-)
>
> Interesting. I wonder what they're using for a Web framework? Of course,
> sites that size generally use lots of custom stuff, but it would
> presumably be based on something.



awesome.Could you give the link where guido told this
-Chandru

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


Re: inconvenient unicode conversion of non-string arguments

2006-12-13 Thread Fredrik Lundh
Holger Joukl wrote:

>>> Ok, but I still don't see why these arguments shouldn't simply be
>>> silently ignored
 >>
>>  >>> import this
> 
> You probably refer to "Explicit is better than implicit.".

"Errors should never pass silently." is a better match, I think.  you're 
trying to do an invalid operation.  python tells you to fix your code.



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


Re: Tarfile .bz2

2006-12-13 Thread Piet van Oostrum
> "Martin v. Löwis" <[EMAIL PROTECTED]> (MvL) wrote:

>MvL> Jordan schrieb:
>>> Not really on topic anymore but what's the method for tar.gz? 

>MvL> It works like .tar.bz2, except that it uses gzip (www.gzip.org)
>MvL> as the compression library. The underlying compression algorithm
>MvL> is LZW.

No, it uses a compression algorithm based on LZ77 (called DEFLATE).
Therefore gzip was not encumbered by the the LZW patent.
-- 
Piet van Oostrum <[EMAIL PROTECTED]>
URL: http://www.cs.uu.nl/~piet [PGP 8DAE142BE17999C4]
Private email: [EMAIL PROTECTED]
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: YouTube written in Python

2006-12-13 Thread [EMAIL PROTECTED]

Leif K-Brooks wrote:
> Terry Reedy wrote:
> > In a thread on the PyDev list, Guido van Rossum today wrote:
> >> And I just found out (after everyone else probably :-) that YouTube is
> >> almost entirely written in Python. (And now I can rub shoulders with
> >> the developers since they're all Googlers now... :-)
>
> Interesting. I wonder what they're using for a Web framework? Of course,
> sites that size generally use lots of custom stuff, but it would
> presumably be based on something.

awesome.Could you give the link where guido told this
-Chandru

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


Re: Is anyone using Python for embedded applications?

2006-12-13 Thread Paul Boddie
Hendrik van Rooyen wrote:
>
> It depends a *lot* on what is meant by "embedded" :

Indeed.

> This definition seems to cover everything from:
> - a cut down PC in a non standard box, through
> - a processor in a Washing Machine, to
> - a bare PIC processor in a Burglar Alarm...

CPython doesn't span all these situations, but there are a few
different strategies involving Python:

  * A cut-down build of CPython, or perhaps just a recompiled or
cross-compiled build; this is good enough for some of the more
"luxurious" embedded devices. The Gumstix hardware is a
reasonable example:
http://www.gumstix.org/

  * A re-engineered version of CPython with things taken out or
optimised for simpler hardware. An example of this approach is
PyMite:
http://wiki.python.org/moin/PyMite

  * Software which isn't actually running in Python on the device but
which has been designed using Python. Projects like MyHDL and
WhatOS at least allow you to prototype things in Python:
http://myhdl.jandecaluwe.com/doku.php
http://www.sticlete.com/whatos/

[...]

> as I in fact discovered Python because it is embedded in a GPS module
> we were evaluating for building into a device - so I will follow your
> progress with interest...

Interesting! Any links, or is it related to the Telit hardware already
discussed?

Paul

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


Re: slices - handy summary

2006-12-13 Thread Dustan

meridian wrote:
> If, like me, you're always forgetting which way around your list/seq
> slices need to go then worry no more. Just put my handy "slice
> lookupper" (TM) ) on a (large!) PostIt beside your screen and, Hey
> Presto! no more tediously typing a 1-9 seq into your interpreter and
> then getting a slice just to check what you get.. (Yes you. You know
> you do that !) ...Cheers Steve

Actually, I don't. I just remember that, for a natural (positive
nonzero) number y:
x[:y] is the first y elements
x[-y:] is the last y elements

As shown here:
>>> x = range(5)
>>> x
[0, 1, 2, 3, 4]
>>> x[:2]
[0, 1]
>>> x[-2:]
[3, 4]
>>>

And I just work it out from there.

Just my method for remembering slices, that happens to work pretty well
for me.

> x = '0123456789'
>
> x[-10: ] 0123456789 x[  0: ]
> x[ -9: ] 123456789  x[  1: ]
> x[ -8: ] 23456789   x[  2: ]
> x[ -7: ] 3456789x[  3: ]
> x[ -6: ] 456789 x[  4: ]
> x[ -5: ] 56789  x[  5: ]
> x[ -4: ] 6789   x[  6: ]
> x[ -3: ] 789x[  7: ]
> x[ -2: ] 89 x[  8: ]
> x[ -1: ] 9  x[  9: ]
>
> x[ :-9 ] 0  x[ :1  ]
> x[ :-8 ] 01 x[ :2  ]
> x[ :-7 ] 012x[ :3  ]
> x[ :-6 ] 0123   x[ :4  ]
> x[ :-5 ] 01234  x[ :5  ]
> x[ :-4 ] 012345 x[ :6  ]
> x[ :-3 ] 0123456x[ :7  ]
> x[ :-2 ] 01234567   x[ :8  ]
> x[ :-1 ] 012345678  x[ :9  ]
>  0123456789 x[ :10 ]

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


Re: namespace question

2006-12-13 Thread Piet van Oostrum
> "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> (jssgc) wrote:
>jssgc> This one works. But I suppose there must be a way to artificially
>jssgc> create a new block of code, some thing like this,

>jssgc> class Test:
>jssgc>c = None
>jssgc><>:
>jssgc># Objects created here are local to this scope
>jssgc>a = 1
>jssgc>b = 2
>jssgc>global c
>jssgc>c = a + b

As you want c to be an *instance* variable, the normal idiom would be:

class Test:
  def __init__(self):
  a = 1
  b = 2
  self.c = a+b

x = Test()
print x.c
-- 
Piet van Oostrum <[EMAIL PROTECTED]>
URL: http://www.cs.uu.nl/~piet [PGP 8DAE142BE17999C4]
Private email: [EMAIL PROTECTED]
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: merits of Lisp vs Python

2006-12-13 Thread André Thieme
Markus Triska schrieb:
> Ken Tilton <[EMAIL PROTECTED]> writes:
> 
>> I think all-rules-all-the-time Prolog is the poster boy for paradigm
>> slavery.  (I did try for a famous two months to use Prolog as a
>> general-purpose programming language.)
> 
> Don't expect to learn Prolog properly in so little time. To your
> previous question whether the ~180 lines of Lisp code in some online
> book constitute an "industrial strength" Prolog: only if the following
> ~180 lines of Prolog code implement an "industrial strength" Lisp.

Hallo, you are of course right. There are some prolog implementations
for Lisp that implement some parts of Prolog. To get the full thing one
would of course need a big lot more of work.
The idea is to get the basic constructs of Prolog available for Lisp.
And with 2k LOC there are already some nice things that one can do.
Those who know the paradigm of logical programming can recognize that
a problem falls into this domain and then use inside of Lisp some tools
that allow to express the problem in this domain specific language.

If one really wants/needs Prolog then one should use it ;)
The Prolog implementations are much more efficient and very stable.
But often even 60% of Prolog are so expressive, that it can be a real
productivity booster.


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


Re: namespace question

2006-12-13 Thread Paul Boddie
[EMAIL PROTECTED] wrote:
> Yes. I want to have only one class variable called c and a and b are
> required as temporary variables to calculate the value for c.
>
> I just found one way:
> class Test:
> a = 1
> b = 2
> c = a + b
> del a,b

Or even...

a = 1
b = 2
class Test:
c = a + b

Or even the apparently nonsensical...

a = 1
b = 2
c = a + b
class Test:
c = c

Insert del statements to remove module globals where appropriate.

Paul

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


Re: paramiko public key

2006-12-13 Thread eight02645999

hg wrote:
> [EMAIL PROTECTED] wrote:
>
> > paramiko
> http://www.lag.net/paramiko/docs/
>
> __str__ ?

hi
thanks for the tip
i done up a function to generate priv/pub key pairs like this

def keygen(bits,fil,password=None):
k = paramiko.RSAKey.generate(bits)
k.write_private_key_file(fil, password)
pk = paramiko.RSAKey(filename=fil)
o = open(pubk ,"w").write(pk.__str__())


Is this the correct way to do it ?
thanks

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


Re: Re: inconvenient unicode conversion of non-string arguments

2006-12-13 Thread Holger Joukl
[EMAIL PROTECTED] schrieb am 13.12.2006
12:05:33:

> Holger Joukl wrote:
>
> >>> Ok, but I still don't see why these arguments shouldn't simply be
> >>> silently ignored
>  >>
> >>  >>> import this
> >
> > You probably refer to "Explicit is better than implicit.".
>
> "Errors should never pass silently." is a better match, I think.  you're
> trying to do an invalid operation.  python tells you to fix your code.
>
> 

I'm not doing an invalid operation with
unicode(17.3)
What's invalid about unicode(17.3, "latin-1", "replace")?
IMHO the encoding/errors args can only ever apply for string arguments so
this could well fall back to unicode(17.3).

Might be I'm overlooking something grave, but I'm still not convinced.

But thanks for your advice,
Holger

Der Inhalt dieser E-Mail ist vertraulich. Falls Sie nicht der angegebene
Empfänger sind oder falls diese E-Mail irrtümlich an Sie adressiert wurde,
verständigen Sie bitte den Absender sofort und löschen Sie die E-Mail
sodann. Das unerlaubte Kopieren sowie die unbefugte Übermittlung sind nicht
gestattet. Die Sicherheit von Übermittlungen per E-Mail kann nicht
garantiert werden. Falls Sie eine Bestätigung wünschen, fordern Sie bitte
den Inhalt der E-Mail als Hardcopy an.

The contents of this  e-mail are confidential. If you are not the named
addressee or if this transmission has been addressed to you in error,
please notify the sender immediately and then delete this e-mail.  Any
unauthorized copying and transmission is forbidden. E-Mail transmission
cannot be guaranteed to be secure. If verification is required, please
request a hard copy version.


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


Re: newb: Creating Exception

2006-12-13 Thread Dustan

johnny wrote:
> Thank you Dennis,
> So when line 2, gets executed, its exception goes to do_some1_error.
> And when line 3, gets executed, its exception goes to do_some2_error
> and so on.
>
> line 1:  try
> line 2:do_some1
> line 3:do_some2
> line 4:do_some3
> line 5: except do_some1_error:
> line 6:whatever1
> line 7: except do_some2_error:
> line 8:whatever2
> line 9: except do_some3_error:
> line 10:whatever3
>
> Documentation is not written for newbs, it's written by guys with 6yrs
> of experience FOR guys with 6yrs of experience.

You might want to get a book on python, rather than depend on the
documentation, which is, as you say, written for more experienced
programmers.

http://wiki.python.org/moin/IntroductoryBooks

I started with a book, and reading the tutorial now, am quite glad I
did. One thing that did bug me, at least briefly, is sometimes beginner
books don't explain what a line of code is actually doing - not
necessarily how it works, but as much information as is necessary to
actually be able to use the code shown.

> Dennis Lee Bieber wrote:
> > On 11 Dec 2006 16:02:02 -0800, "johnny" <[EMAIL PROTECTED]> declaimed
> > the following in gmane.comp.python.general:
> >
> > > I want to print individual exception for database connection, sql
> > > execution, database closing, closing the cursor.  Can I do it with one
> > > try..catch or I need a nested try...catch?
> >
> > Python does not have a "catch" instruction.
> >
> > You could do:
> >
> > try:
> > make connection #though that should, in my mind, be done
> > #as part of the 
> > initialization of the thread
> > #and not as part of any 
> > processing loop
> > make cursor
> > execute sql
> > fetch results if any
> > close cursor
> > commit transaction
> > close connection#which I'd make part of the termination
> > #of the thread
> > except Exception1, msg:
> > do something
> > except Exception2, msg:
> > do something2
> > ...
> >
> > IF each step raises a different exception type -- if all the database
> > returns is "DatabaseError", then there is nothing to separate them by.
> > Also note that if an exception happens in the "execute sql" stage, your
> > handler may need to do a rollback, and the closes.
> >
> > --
> > WulfraedDennis Lee Bieber   KD6MOG
> > [EMAIL PROTECTED]   [EMAIL PROTECTED]
> > HTTP://wlfraed.home.netcom.com/
> > (Bestiaria Support Staff:   [EMAIL PROTECTED])
> > HTTP://www.bestiaria.com/

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


Re: newb: Creating Exception

2006-12-13 Thread Dustan

Dustan wrote:
> johnny wrote:
> > Documentation is not written for newbs, it's written by guys with 6yrs
> > of experience FOR guys with 6yrs of experience.
>
> You might want to get a book on python, rather than depend on the
> documentation, which is, as you say, written for more experienced
> programmers.
>
> http://wiki.python.org/moin/IntroductoryBooks
>
> I started with a book, and reading the tutorial now, am quite glad I
> did. One thing that did bug me, at least briefly, is sometimes beginner
> books don't explain what a line of code is actually doing - not
> necessarily how it works, but as much information as is necessary to
> actually be able to use the code shown.

I didn't complete my thought. If you run into a situation like this,
then you might want to look to the python documentation on the web for
help; think of the web documentation as a reference manual rather than
a tutorial, even though it does provide a tutorial.

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


Re: how can i write a hello world in chinese with python

2006-12-13 Thread John Machin

Leo Kislov wrote:
> kernel1983 wrote:
> > and I tried unicode and utf-8
>
> How did you try unicode? Like this? :
>
> EasyDialogs.Message(u'\u4e2d')
>
> > I tried to both use unicode&utf-8 head just like "\xEF\xBB\xBF" and not
> > to use
> >
> > Anyone knows about the setting in the python code file?
> > Maybe python doesn't know I'm to use chinese?!
>
> It depends on how EasyDialogs works. And by the way, when you say utf-8
> encoded text is not displayed correctly, what do you actually see on
> the screen?

There is a Windows version of EasyDialogs -- unfortunately it appears
not to support Unicode, even for the most simple case.

This works:
| >>> EasyDialogs.Message('fubar')
but this doesn't:
| >>> EasyDialogs.Message(u'fubar')

The title of the window is empty, the text consists of only 'f", and
there is no OK button.
Not very robust.

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


Re: oo problem

2006-12-13 Thread tool69
Hi,
First, let me thanks you for all your clear comments.


> 
> This is, in my mind, both a usage and a design flaw. 
> 
> You are creating (and throwing away) instances of drawable
> objects to the draw method of a paper instance. But what does
> paper.draw() actually do with the drawable object? Call a draw method
> within it?

No, actually the paper instance is a subclass of a canvas from an 
external module. And this one have a stroke() method.
In reading your comments, I think it's now clear that I must get back 
and let any primitive have an inner draw() method ( a subclass of 
Drawable object in our case).

> If so, that is when you should pass the paper instance (or
> just the part needed -- clipping rectangle perhaps?).

In fact, my approach was a bad one : in initialising the paper instance, 
I was already clipping it.
If I wrote : p = Paper(-5,-5,5,5), all drawings made on that paper will 
be clipped inside a rectangle with lower-left corner (-5,-5) and 
upper-right corner (5,5).
Now, I think it's better to clip after all primitives have been added to 
the paper.

> 
> The actual implementation of draw() for each primitive will have
> to handle clipping to the boundaries of the Canvas object that is passed
> to it.
> 
> You'll notice that the only place the primitive needs to know
> about the canvas is in its specific draw method. And only at that time
> is the canvas (paper) passed to it.
> 
> Instead of the concept; 
> 
> Paper, draw a line from x to y 
> 
> (and having to pass the "paper" to the initializer of the line
> primitive), you have to think in terms of: 
> 
> Line, draw yourself on this paper 
> 
> Or, if you consider the last example above… Compare that to your
> example: 
> 
> -=-=-=-=- 
> paper.draw( Line( paper, x1, y1, x2, y2)  ) 
> -=-=-=-=-=- 
> 
> Here, you are telling the paper to do the drawing, and passing
> it a Line instance (and passing it the paper it is supposed to be drawn
> on). Why? The paper isn't drawing the line on itself… While
> 
> -=-=-=-=- 
> Line(Point(x1, y1), Point(x2, y2)).draw(paper) 
> -=-=-=-=- 
> 
> initializes a Line instance, then asks it to draw itself using paper as
> the surface to be drawn upon. 

Yes I was wrong, that's all clear now.
Thanks again, this was very helpfull.

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


Re: Re: call of __del__ non-deterministic in python 2.4 (cpython)?

2006-12-13 Thread Anthony Baxter
On 12/13/06, Holger Joukl <[EMAIL PROTECTED]> wrote:
> I did read this but didn't think it applied to my situation. I'm quite
> sure that the refcount of the local variable is 1 before the local scope
> is left.
> So let me rephrase the question: Even if I can make sure that non of the
> problematic situtions apply, might it _still_ happen that __del__ gets
> called
> after some other code has already been "entered"?

You shouldn't rely on __del__ being called exactly when you expect it,
particularly in a threaded application. Make explicit cleanup calls,
instead.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: YouTube written in Python

2006-12-13 Thread Lad

Speaking of YouTube, does anyone know how they uploads big files(
100MB)
I need to solve that problem ( in Python of course) and YouTube is a
good sample of that.
Lad.

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


Re: Large files uploading

2006-12-13 Thread Lad

> to use any communications protocol (including HTTP), both ends must have
> programs that can talk that protocol...
>
Sure, but browsers have FTP support. But how to call the FTP API from
Python?
Lad.

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


Re: YouTube written in Python

2006-12-13 Thread Fredrik Lundh
[EMAIL PROTECTED] wrote:

> awesome.Could you give the link where guido told this

you need to work on your google skills:

http://mail.python.org/pipermail/python-dev/2006-December/070323.html

 



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


Re: How do I edit a PythonWin path to import custom built modules???

2006-12-13 Thread BartlebyScrivener

Fredrik Lundh wrote:

> Python does *not* use the Path when searching for modules; sys.path is
> initialized based on the contents of PYTHONPATH, the location of the
> Python executable (or PYTHONHOME), some heuristics, and certain registry
> entries.

Now I'm stumped. Unless it's heuristics. The registry entry for
PythonPath does NOT reference the location of my Python scripts
(d:/Python). And Python is installed in the usual place on C:\Python24.
The only place that I can see where I've told it the location of my
scripts is in the Path variable.

I have no doubt that you're correct. Just confused as usual.

rd

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


Re: About alternatives to Matlab

2006-12-13 Thread Marc 'BlackJack' Rintsch
In <[EMAIL PROTECTED]>, Jon Harrop
wrote:

>> I don't think you would be much happier to see totally obfuscated golf
>> one-liners.
> 
> That doesn't even make sense. Squeezing code onto one line doesn't
> improve byte count.

So you don't count line endings when counting bytes.  ;-)

Ciao,
Marc 'BlackJack' Rintsch
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Validate XML against a set of XSD files, with Python

2006-12-13 Thread Laszlo Nagy

> Fast google query, uncheked, leads to:
>
>   - XSV: http://www.ltg.ed.ac.uk/~ht/xsv-status.html
>   
I tried this before. Unfortunately, xsv is not officially supported on 
my system (FreeBSD 6.1) :-(
>   - libxml : http://codespeak.net/lxml/
>   
Probably this is what I need to use. (However, I see in the mailing 
lists that there are problems with this part of libxml2.)

Thank you,

   Laszlo



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


Re: [unicode] inconvenient unicode conversion of non-string arguments

2006-12-13 Thread Marc 'BlackJack' Rintsch
In <[EMAIL PROTECTED]>, Holger Joukl
wrote:

> Der Inhalt dieser E-Mail ist vertraulich. Falls Sie nicht der angegebene
> Empfänger sind oder falls diese E-Mail irrtümlich an Sie adressiert wurde,
> verständigen Sie bitte den Absender sofort und löschen Sie die E-Mail
> sodann. Das unerlaubte Kopieren sowie die unbefugte Übermittlung sind nicht
> gestattet. Die Sicherheit von Übermittlungen per E-Mail kann nicht
> garantiert werden. Falls Sie eine Bestätigung wünschen, fordern Sie bitte
> den Inhalt der E-Mail als Hardcopy an.
> 
> The contents of this  e-mail are confidential. If you are not the named
> addressee or if this transmission has been addressed to you in error,
> please notify the sender immediately and then delete this e-mail.  Any
> unauthorized copying and transmission is forbidden. E-Mail transmission
> cannot be guaranteed to be secure. If verification is required, please
> request a hard copy version.

Maybe you should rethink if it really makes sense to add this huge block
of "nonsense" to a post to a newsgroup or public mailing list.  If it's
confidential, just keep it secret.  ;-)

Ciao,
Marc 'BlackJack' Rintsch
-- 
http://mail.python.org/mailman/listinfo/python-list

Iterating over several lists at once

2006-12-13 Thread Gal Diskin
Hi,
I am writing a code that needs to iterate over 3 lists at the same
time, i.e something like this:

for x1 in l1:
for x2 in l2:
for x3 in l3:
print "do something with", x1, x2, x3

What I need to do is go over all n-tuples where the first argument is
from the first list, the second from the second list, and so on...


I was wondering if one could write this more easily in some manner
using only 1 for loop.
What I mean is something like this:

for (x1,x2,x3) in (l1,l2,l3):
print "do something with", x1, x2, x3

Or maybe like this:

for x1 in l1, x2 in l2, x3 in l3:
print "do something with", x1, x2, x3

However, this code obviously doesn't work...


I'd be very happy to receive ideas about how to do this in one loop and
with minimal initialization (if at all required).

Thanks in advance,
Gal

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


Re: Iterating over several lists at once

2006-12-13 Thread Fredrik Lundh
"Gal Diskin" wrote:

> I am writing a code that needs to iterate over 3 lists at the same
> time, i.e something like this:
>
> for x1 in l1:
>for x2 in l2:
>for x3 in l3:
>print "do something with", x1, x2, x3
>
> What I need to do is go over all n-tuples where the first argument is
> from the first list, the second from the second list, and so on...
>
> I was wondering if one could write this more easily in some manner
> using only 1 for loop.
> What I mean is something like this:
>
> for (x1,x2,x3) in (l1,l2,l3):
>print "do something with", x1, x2, x3

how about

for x1, x2, x3 in func(l1, l2, l3):
print x1, x2, x3

where func is defined as, say,

def func(l1, l2, l3):
return ((x1, x2, x3) for x1 in l1 for x2 in l2 for x3 in l3)

or if you prefer

def helper(l1, l2, l3):
for x1 in l1:
for x2 in l2:
for x3 in l3:
yield x1, x2, x3

 



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


Re: binary input and memory address passing

2006-12-13 Thread Eric Carlson

Thanks Dennis and Scott for both responses. Since Dennis has slam dunked 
my notion of sharing memory addresses (my ignorance in computing is 
pretty much unbounded), I guess I will need to continue on with sharing 
through files.

Opening up and loading the binary info into a string variable is very 
fast. The process bogs when changing the representation to float. So it 
appears that Scott's Block module might do what I need.

My original:

nc = #something given
nr = #something given
f_o=open('junk.bin','rb')
x=reshape(array('d',f_o.read()),(nr,nc))

gives me any array with nr rows and nc columns. Using Block I think I 
would use:

f_o=open('junk.bin','rb')
x = View('d', Block(f_o.read()))

Okay, so now how can I use this? Is this like an array type so that

x = reshape(x,(nr,nc))

makes sense?

Regards,
Eric
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Iterating over several lists at once

2006-12-13 Thread Roberto Bonvallet
Gal Diskin wrote:
> Hi,
> I am writing a code that needs to iterate over 3 lists at the same
> time, i.e something like this:
> 
> for x1 in l1:
>for x2 in l2:
>for x3 in l3:
>print "do something with", x1, x2, x3

What's wrong with this?

[...]
> I'd be very happy to receive ideas about how to do this in one loop and
> with minimal initialization (if at all required).

def cartesian_product(l1, l2, l3):
for i in l1:
for j in l2:
for k in l3:
yield (i, j, k)

for (i, j, k) in cartesian_product(l1, l2, l3):
print "do something with", i, j, k

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


newbie - HTML character codes

2006-12-13 Thread ardief
Hi

sorry if I'm asking something very obvious but I'm stumped. I have a
text that looks like this:

Sentence 401
4.00pm  — We set off again; this time via Tony's home to collect
a variety of possessions, finally arriving at hospital no.3.
Sentence 402
4.55pm  — Tony is ushered into a side ward with three doctors and
I stay outside with Mum.

And I want the HTML char codes to turn into their equivalent plain
text. I've looked at the newsgroup archives, the cookbook, the web in
general and can't manage to sort it out. I thought doing something like
this -

file = open('filename', 'r')
ofile = open('otherfile', 'w')

done = 0

while not done:
line = file.readline()
if 'THE END' in line:
done = 1
elif '—' in line:
line.replace('—', '--')
ofile.write(line)
else:
ofile.write(line)


would do it but it isn'twhere am I going wrong?

many thanks
rachele

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


Re: About alternatives to Matlab

2006-12-13 Thread Jon Harrop
Marc 'BlackJack' Rintsch wrote:
> So you don't count line endings when counting bytes.  ;-)

You'd probably replace "\n" -> " " so it wouldn't affect the byte count.
Anyway, I think I was using non-whitespace bytes, so neither "\n" nor " "
is counted.

-- 
Dr Jon D Harrop, Flying Frog Consultancy
Objective CAML for Scientists
http://www.ffconsultancy.com/products/ocaml_for_scientists/index.html?usenet
-- 
http://mail.python.org/mailman/listinfo/python-list


How to manage two (different) sockets without using threads?

2006-12-13 Thread billie
Hi all.
I'm (re)writing an FTP server application by using asyncore/asynchat
modules.
FTP tipically got two different channels: command and data.
I'm succesfully managing command channel through asynchat framework,
but I'm not sure about how to manage data channel without using a
thread/subprocess.
Is there an optimal to do that?
Can anyone point me in the right direction?

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


Re: newbie - HTML character codes

2006-12-13 Thread Roberto Bonvallet
ardief wrote:
[...]
> And I want the HTML char codes to turn into their equivalent plain
> text. I've looked at the newsgroup archives, the cookbook, the web in
> general and can't manage to sort it out. I thought doing something like
> this -
> 
> file = open('filename', 'r')

It's not a good idea to use 'file' as a variable name, since you are
shadowing the builtin type of the same name.

> ofile = open('otherfile', 'w')
> 
> done = 0
> 
> while not done:
>line = file.readline()
>if 'THE END' in line:
>done = 1
>elif '—' in line:
>line.replace('—', '--')

The replace method doesn't modify the 'line' string, it returns a new string.

>ofile.write(line)
>else:
>ofile.write(line)

This should work (untested):

infile  = open('filename', 'r')
outfile = open('otherfile', 'w')

for line in infile:
outfile.write(line.replace('—', '--'))

But I think the best approach is to use a existing aplication or library
that solves the problem.  recode(1) can easily convert to and from HTML
entities:

recode html..utf-8 filename

Best regards.
-- 
Roberto Bonvallet
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: newbie - HTML character codes

2006-12-13 Thread Fredrik Lundh
"ardief" wrote:

> sorry if I'm asking something very obvious but I'm stumped. I have a
> text that looks like this:
>
> Sentence 401
> 4.00pm  — We set off again; this time via Tony's home to collect
> a variety of possessions, finally arriving at hospital no.3.
> Sentence 402
> 4.55pm  — Tony is ushered into a side ward with three doctors and
> I stay outside with Mum.
>
> And I want the HTML char codes to turn into their equivalent plain
> text. I've looked at the newsgroup archives, the cookbook, the web in
> general and can't manage to sort it out.

> file = open('filename', 'r')
> ofile = open('otherfile', 'w')
>
> done = 0
>
> while not done:
>line = file.readline()
>if 'THE END' in line:
>done = 1
>elif '—' in line:
>line.replace('—', '--')

this returns a new line; it doesn't update the line in place.

>ofile.write(line)
>else:
>ofile.write(line)

for a more general solution to the actual replace problem, see:

http://effbot.org/zone/re-sub.htm#unescape-html

you may also want to lookup the "fileinput" module in the library reference
manual.

 



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


Re: Large files uploading

2006-12-13 Thread Jussi Salmela
Lad kirjoitti:
>> to use any communications protocol (including HTTP), both ends must have
>> programs that can talk that protocol...
>>
> Sure, but browsers have FTP support. But how to call the FTP API from
> Python?
> Lad.
> 
See Python Library Reference for documentation on 'ftplib -- FTP 
protocol client'. It has an example to get you started.


HTH,
Jussi Salmela
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Iterating over several lists at once

2006-12-13 Thread Paul Rubin
"Gal Diskin" <[EMAIL PROTECTED]> writes:
> I am writing a code that needs to iterate over 3 lists at the same
> time, i.e something like this:
> 
> for x1 in l1:
> for x2 in l2:
> for x3 in l3:
> print "do something with", x1, x2, x3


This does look a little kludgy (untested):

for x1,x2,x3 in ((x1,x2,x3) for x1 in l1 for x2 in l2 for x3 in l3):
   print "do something with", x1, x2, x3
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Iterating over several lists at once

2006-12-13 Thread Peter Otten
Gal Diskin wrote:

> I am writing a code that needs to iterate over 3 lists at the same
> time, i.e something like this:

> for x1 in l1:
> for x2 in l2:
> for x3 in l3:
> print "do something with", x1, x2, x3

> I was wondering if one could write this more easily in some manner
> using only 1 for loop.

def nested_loops(*args):
assert args
if len(args) == 1:
for item in args[0]:
yield (item,)
else:
gap = len(args) // 2
for left in nested_loops(*args[:gap]):
for right in nested_loops(*args[gap:]):
yield left + right

if __name__ == "__main__":
for i, k in nested_loops("abc", "12"):
print i, k
for i, j, k in nested_loops("ab", "123", "xyz"):
print i, j, k

Be prepared for a significant performance hit.

Peter

PS: Did anybody say macro? No? I must be hallucinating...
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Iterating over several lists at once

2006-12-13 Thread Gal Diskin
Nothing seriously wrong, but it's not too elegent. Especially when the
number of lists you want to iterate over gets bigger (especially
because of the indentation in python). As you noticed (an phrased
better than me), what I was wondering is if there is a way to iterate
over the cartesian product, but without actually doing all n for loops
but using a single "for" loop.

Thanks for replying me.


On Dec 13, 3:58 pm, Roberto Bonvallet <[EMAIL PROTECTED]>
wrote:
> Gal Diskin wrote:
> > Hi,
> > I am writing a code that needs to iterate over 3 lists at the same
> > time, i.e something like this:
>
> > for x1 in l1:
> >for x2 in l2:
> >for x3 in l3:
> >print "do something with", x1, x2, x3What's wrong with this?
>
> [...]
>
> > I'd be very happy to receive ideas about how to do this in one loop and
> > with minimal initialization (if at all required).def cartesian_product(l1, 
> > l2, l3):
> for i in l1:
> for j in l2:
> for k in l3:
> yield (i, j, k)
>
> for (i, j, k) in cartesian_product(l1, l2, l3):
> print "do something with", i, j, k
> 
> --
> Roberto Bonvallet

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


Re: Iterating over several lists at once

2006-12-13 Thread Kay Schluehr
Gal Diskin schrieb:

> Hi,
> I am writing a code that needs to iterate over 3 lists at the same
> time, i.e something like this:
>
> for x1 in l1:
> for x2 in l2:
> for x3 in l3:
> print "do something with", x1, x2, x3
>
> What I need to do is go over all n-tuples where the first argument is
> from the first list, the second from the second list, and so on...

Heard about recursion?

def collect(L,*lists):
if not lists:
return [(x,) for x in L]
collection = []
for x in L:
for y in collect(lists[0],*lists[1:]):
collection.append((x,)+y)
return collection

for item in collect( l1, l2, l3):
func(*item)

Here is the same in generator form

def collect(L,*lists):
if not lists:
for x in L:
yield (x,)
else:
for x in L:
for y in collect(lists[0],*lists[1:]):
yield (x,)+y

( o.k - it required two nested for-loops in each implementation :)

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


Conditional iteration

2006-12-13 Thread at

I would like to spark the discussion about the following syntax problem I
encounter.

THE PROBLEM

I have a lot times the following code:

for x in [-2, -1, 0, 1, 2, 3, 4]:
if x > 0:
... more code...


It is not the addional line containing 'if x > 0:' that bothers me, but the
additional indentation.


THE SOLUTION

More pythonic in view would be:

for x in [-2, -1, 0, 1, 2, 3, 4] if x > 0:
... more code ...


This blends basically 

[x for x in [-2, -1, 0, 1, 2, 3, 4] if x > 0]

and

x = y if x > 0 else 10


EXTENDING

And maybe a few usefull variants, like:

for x in [-2, -1, 0, 1, 2, 3, 4] if x > 0 else -x:
... more code ...

In this case x will be 2, 1, 0, 1, 2, 3, 4.




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


Re: Iterating over several lists at once

2006-12-13 Thread Gal Diskin
Thanks, that's an improvment (your first way).
But I still wish I could find an even shorter (or more elegent) way of
doing it. (Well, I guess if I expect every wish I have to come true I
should at least wish for something more valuable.)

Thanks again,
Gal

On Dec 13, 3:58 pm, "Fredrik Lundh" <[EMAIL PROTECTED]> wrote:
> "Gal Diskin" wrote:
> > I am writing a code that needs to iterate over 3 lists at the same
> > time, i.e something like this:
>
> > for x1 in l1:
> >for x2 in l2:
> >for x3 in l3:
> >print "do something with", x1, x2, x3
>
> > What I need to do is go over all n-tuples where the first argument is
> > from the first list, the second from the second list, and so on...
>
> > I was wondering if one could write this more easily in some manner
> > using only 1 for loop.
> > What I mean is something like this:
>
> > for (x1,x2,x3) in (l1,l2,l3):
> >print "do something with", x1, x2, x3how about
>
> for x1, x2, x3 in func(l1, l2, l3):
> print x1, x2, x3
>
> where func is defined as, say,
>
> def func(l1, l2, l3):
> return ((x1, x2, x3) for x1 in l1 for x2 in l2 for x3 in l3)
>
> or if you prefer
>
> def helper(l1, l2, l3):
> for x1 in l1:
> for x2 in l2:
> for x3 in l3:
> yield x1, x2, x3
> 
> 

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


Re: Conditional iteration

2006-12-13 Thread Giovanni Bajo
at wrote:
> THE PROBLEM
> 
> I have a lot times the following code:
> 
> for x in [-2, -1, 0, 1, 2, 3, 4]:
> if x > 0:
> ... more code...
> 
> 
> It is not the addional line containing 'if x > 0:' that bothers me, but the
> additional indentation.

for x in ...:
if not x > 0:
   continue

... more code ...

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


Re: Frame hacking

2006-12-13 Thread George Sakkis
George Sakkis wrote:
> Gabriel Genellina wrote:
> > On 12 dic, 17:46, "George Sakkis" <[EMAIL PROTECTED]> wrote:
> >
> > > I wonder if the following is possible:
> > >
> > > def inject_n_call(func, **kwds):
> > > '''Call func by first updating its locals with kwds.'''
> > >
> > > def f():
> > > return x*y
> > >
> >
> > >>> eval(f.func_code, dict(x=3,y=4))
> > 12
>
> Sweet! I think I just reinvented what eval does in this case by
> fiddling with sys.settrace and frame.f_globals. Glad to trash my
> 20-line function for an one-liner :)

Actually I thought about this and it would be more convenient in my
case if I could change the "signature" of f to "def f(x,y)" so that I
can pass positional arguments instead of a keywords (don't ask why).
I've tried creating a new code object by tweaking co_varnames,
co_argcount, co_nlocals and making a new function out of it but it
doesn't work.. does co_code have to be changed as well, and if so, how?

George

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


Re: Validate XML against a set of XSD files, with Python

2006-12-13 Thread Sébastien Boisgérault

On Dec 13, 2:28 pm, Laszlo Nagy <[EMAIL PROTECTED]> wrote:
> > Fast google query, uncheked, leads to:
>
> >   - XSV:http://www.ltg.ed.ac.uk/~ht/xsv-status.htmlI tried this before. 
> > Unfortunately, xsv is not officially supported on
> my system (FreeBSD 6.1) :-(>   - libxml :http://codespeak.net/lxml/Probably 
> this is what I need to use. (However, I see in the mailing
> lists that there are problems with this part of libxml2.)

Yep, maybe. I suspect some issues with the validation of Relax NG
documents,
at least with the libxml2 that was used in my lxml build ...

> Thank you,
> 
>Laszlo

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


Re: newbie - HTML character codes

2006-12-13 Thread ardief
thank you both - in the end I used recode, which I wasn't aware of.
Fredrik, I had come across your script while googling for solutions,
but failed to make it work

On Dec 13, 2:21 pm, "Fredrik Lundh" <[EMAIL PROTECTED]> wrote:
> "ardief" wrote:
> > sorry if I'm asking something very obvious but I'm stumped. I have a
> > text that looks like this:
>
> > Sentence 401
> > 4.00pm  — We set off again; this time via Tony's home to collect
> > a variety of possessions, finally arriving at hospital no.3.
> > Sentence 402
> > 4.55pm  — Tony is ushered into a side ward with three doctors and
> > I stay outside with Mum.
>
> > And I want the HTML char codes to turn into their equivalent plain
> > text. I've looked at the newsgroup archives, the cookbook, the web in
> > general and can't manage to sort it out.
> > file = open('filename', 'r')
> > ofile = open('otherfile', 'w')
>
> > done = 0
>
> > while not done:
> >line = file.readline()
> >if 'THE END' in line:
> >done = 1
> >elif '—' in line:
> >line.replace('—', '--')this returns a new line; it doesn't 
> > update the line in place.
>
> >ofile.write(line)
> >else:
> >ofile.write(line)for a more general solution to the actual replace 
> > problem, see:
>
>http://effbot.org/zone/re-sub.htm#unescape-html
>
> you may also want to lookup the "fileinput" module in the library reference
> manual.
> 
> 

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


Re: Conditional iteration

2006-12-13 Thread Roberto Bonvallet
at wrote:
> More pythonic in view would be:
> 
> for x in [-2, -1, 0, 1, 2, 3, 4] if x > 0:
>... more code ...

Pythonic?  Do you realize that Python hasn't even adopted well-known
statements like 'switch' and 'do while' because they would be redundant?

This could be more convenient to you, but certainly not pythonic.
Cheers,
-- 
Roberto Bonvallet
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: not a big deal or anything, but, curiously:

2006-12-13 Thread Jussi Salmela
Tim Peters kirjoitti:
> [Simon Schuster]
>> following this tutorial,
> 
> Which tutorial?

He's reading this tutorial which he was already advised not to do:

===
===
===
Simon Schuster wrote:
 > > I'm new to python, and almost new to programming in general. I'm at
 > > http://www.pasteur.fr/formation/infobio/python/ch04.html in that
 > > tutorial, and my 'count' function (if it's called a function?) isn't
 > > working suddenly.
 > >
  > >>> x = "fljshfjh"
  > >>> x
 > > 'fljshfjh'
  > >>> count(x, 'h')
 > > Traceback (most recent call last):
 > >   File "", line 1, in ?
 > > NameError: name 'count' is not defined
 > >
 > > I'm not sure what changed, because it used to work. anyhow thanks a 
lot!
 > >

Probably because you omiitted the line

from string import *

However IMHO your use of a tutorial which:

(1) introduces "from some_module import *" as though it is the normal
way of doing things

 From chapter 1: """
 Some magical stuff, that will be explained later:
 >>> from string import *
 """

 That's *bad* magic


(2) is still using (outdated) functions in the string module instead of
teaching string methods

should be discontinued immediately.

You may wish to have a look at some of the /other/ tutorials mentioned
on this page:

http://wiki.python.org/moin/BeginnersGuide/NonProgrammers

HTH,
John

===
===
===


> 
>> I copied and pasted:
>>
>> from string import *
>>
>> cds = """atgagtgaacgtctgagcattagctccgtatatcggcgcacaaa
>> tttcgggtgccgacctgacgcgcccgttaagcgataatcagtttgaacagctttaccatgcggtg
>> ctgcgccatcaggtggtgtttctacgcgatcaagctattacgccgcagcagcaacgcgcgctggc
>> ccagcgggcgaattgcatattcaccctgtttacccgcatgccgaattgacgagatca
>> tcgtgctggatacccataacgataatccgccagataacgacaactggcataccgatgtgacattt
>> attgaaacgccacccgcacgattctggcagctaaagagttaccttcgaccggcggtgatac
>> gctctggaccagcggtattgcggcctatgaggcgctctctgttcccttccgccagctgctgagtg
>> ggctgcgtgcggagcatgatttccgtaaatcgttcccggaatacaaataccgcccgaggag
>> gaacatcaacgctggcgcgaggcggtcgcgacccgccgttgctacatccggtggtgcgaac
>> gcatccggtgagcggtaaacaggcgctgtttgtgaatgaaggctttactacgcgaattgttgatg
>> tgagcgagaaagagagcgaagccttgttaagttgtttgcccatatcaccaaaccggagttt
>> caggtgcgctggcgctggcaaccaaatgatattgcgatttgggataaccgcgtgacccagcacta
>> tgccaatgccgattacctgccacagcgacggataatgcatcgggcgacgatccttataaac
>> cgatcgggctaa""".replace("\n","")
>>
>> gc = float(count(cds, 'g') + count(cds, 'c'))/ len(cds)
>>
>> print gc
>>
>> -fin-
>>
>> which should yield: 0.54460093896713613..
>>
>> but when I ran it I got: 0.544600938967
>>
>> looking now I see it's truncating after a certain number of decimal
>> places. any ideas why?
> 
> Read the Python Tutorial appendix on floating-point issues:
> 
>http://docs.python.org/tut/node16.html
> 
> As it says, str(a_float) rounds to 12 significant digits, and
> repr(a_float) to 17.  The `print` statement implicitly applies str()
> to each item it prints.

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


Re: Large files uploading

2006-12-13 Thread Fredrik Lundh
Lad wrote:

>> to use any communications protocol (including HTTP), both ends must have
>> programs that can talk that protocol...
>>
> Sure, but browsers have FTP support.

ftp upload support ?

> But how to call the FTP API from Python?

if you want the users to upload things using FTP, why do *you* need
to call "the FTP API" (whatever that is) from Python ?  why not just
set up a server?



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


Re: Conditional iteration

2006-12-13 Thread Neil Cerutti
On 2006-12-13, Roberto Bonvallet <[EMAIL PROTECTED]> wrote:
> at wrote:
>> More pythonic in view would be:
>> 
>> for x in [-2, -1, 0, 1, 2, 3, 4] if x > 0:
>>... more code ...
>
> Pythonic?  Do you realize that Python hasn't even adopted
> well-known statements like 'switch' and 'do while' because they
> would be redundant?
>
> This could be more convenient to you, but certainly not
> pythonic.  Cheers,

I tried it once myself. It seemed like a feasible thing that
might work in Python. It didn't annoy me that it didn't work, but
it did seem natural to me given the syntax of comprehensions.

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


Re: Conditional iteration

2006-12-13 Thread Paul Rubin
at <[EMAIL PROTECTED]> writes:
> I have a lot times the following code:
> 
> for x in [-2, -1, 0, 1, 2, 3, 4]:
> if x > 0:
> ... more code...

Use:

 for x in (x in [-2, -1, 0, 1, 2, 3, 4] if x > 0):
  ... more code ...
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Sybase module 0.38pre1 released

2006-12-13 Thread vasudevram

Sébastien Sablé wrote:
> By the way, I forgot to say that new releases can now be downloaded
> from this page:
>
> https://sourceforge.net/project/showfiles.php?group_id=184050
> 
> regards
> 
> --
> Sébastien Sablé
> 


Thanks.
Vasudev

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


Re: Conditional iteration

2006-12-13 Thread Chris Mellon
On 13 Dec 2006 07:47:23 -0800, Paul Rubin
<"http://phr.cx"@nospam.invalid> wrote:
> at <[EMAIL PROTECTED]> writes:
> > I have a lot times the following code:
> >
> > for x in [-2, -1, 0, 1, 2, 3, 4]:
> > if x > 0:
> > ... more code...
>
> Use:
>
>  for x in (x in [-2, -1, 0, 1, 2, 3, 4] if x > 0):
>   ... more code ...
> --

or filter:

from itertools import ifilter

for x in ifilter(lambda x: x > 0, [-2, -1, 0, 1, 2, 3, 4]):
...more code...



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


Re: Large files uploading

2006-12-13 Thread Istvan Albert
Lad wrote:

>  Or is there another way( besides FTP) how to upload large files to
> server?

You can upload via http. The primary problem is that the browser don't
work well with large uploads (give little feedback on the process, IE
may hang etc). You can workaround some limitations by using applets
such as JUpload 

http://www.jupload.biz/

i.

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


Re: merits of Lisp vs Python

2006-12-13 Thread Robert Uhl
"George Sakkis" <[EMAIL PROTECTED]> writes:
>
> Why is selecting a valid s-expression easier than selecting a python
> block ? If you mistakenly select an extra parenthesis or omit one, it's
> the same thing. Having said that, I find this problem is mostly
> academic in both languages with modern editors...

Or even nearly 30 year old editors; emacs provides support for
error-free selection of s-expressions, although to be frank I still
don't use them as often as I should.

-- 
Robert Uhl 
Thanks to the joint efforts of OpenOffice, Mozilla, and a few others, Emacs
officially entered the category of lightweight utilities.--kalifa on /.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Iterating over several lists at once

2006-12-13 Thread Maksim Kasimov

Hi,

if you "needs to iterate over 3 lists at the same" and according your example

 > for (x1,x2,x3) in (l1,l2,l3):
 > print "do something with", x1, x2, x3


i has guessed that you need this (may be i was wrong):


a = (1,2,3, 1)
b = (4,5,6)
c = (7,8,9, 2, 3)

for x, y, z in zip(a, b, c):
 print x, y, z


or this


for x, y, z in map(None, a, b, c):
 print x,y,z


Try both examples with tuples that have various length, they have difference






Gal Diskin wrote:
> Hi,
> I am writing a code that needs to iterate over 3 lists at the same
> time, i.e something like this:
> 
> for x1 in l1:
> for x2 in l2:
> for x3 in l3:
> print "do something with", x1, x2, x3
> 
> What I need to do is go over all n-tuples where the first argument is
> from the first list, the second from the second list, and so on...
> 
> 
> I was wondering if one could write this more easily in some manner
> using only 1 for loop.
> What I mean is something like this:
> 
> for (x1,x2,x3) in (l1,l2,l3):
> print "do something with", x1, x2, x3
> 
> Or maybe like this:
> 
> for x1 in l1, x2 in l2, x3 in l3:
> print "do something with", x1, x2, x3
> 
> However, this code obviously doesn't work...
> 
> 
> I'd be very happy to receive ideas about how to do this in one loop and
> with minimal initialization (if at all required).
> 
> Thanks in advance,
> Gal
> 


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


Re: Frame hacking

2006-12-13 Thread fumanchu
George Sakkis wrote:
> Actually I thought about this and it would be more convenient in my
> case if I could change the "signature" of f to "def f(x,y)" so that I
> can pass positional arguments instead of a keywords (don't ask why).
> I've tried creating a new code object by tweaking co_varnames,
> co_argcount, co_nlocals and making a new function out of it but it
> doesn't work.. does co_code have to be changed as well, and if so, how?

Yes; since x and y then become locals and are looked up using LOAD_FAST
instead of LOAD_GLOBAL. Easiest approach: write the new function
yourself and pass it to dis.dis() and expreiment with the differences
in bytecode.

Here are some helpers I use for bytecode hacking (from the top of
http://projects.amor.org/dejavu/browser/trunk/codewalk.py):

from opcode import cmp_op, opname, opmap, HAVE_ARGUMENT
from types import CodeType, FunctionType, MethodType

from compiler.consts import *
CO_NOFREE = 0x0040


def named_opcodes(bits):
"""Change initial numeric opcode bits to their named
equivalents."""
bitnums = []
bits = iter(bits)
for x in bits:
bitnums.append(opname[x])
if x >= HAVE_ARGUMENT:
try:
bitnums.append(bits.next())
bitnums.append(bits.next())
except StopIteration:
break
return bitnums

def numeric_opcodes(bits):
"""Change named opcode bits to their numeric equivalents."""
bitnums = []
for x in bits:
if isinstance(x, basestring):
x = opmap[x]
bitnums.append(x)
return bitnums

_deref_bytecode = numeric_opcodes(['LOAD_DEREF', 0, 0, 'RETURN_VALUE'])
# CodeType(argcount, nlocals, stacksize, flags, codestring, constants,
#  names, varnames, filename, name, firstlineno,
#  lnotab[, freevars[, cellvars]])
_derefblock = CodeType(0, 0, 1, 3, ''.join(map(chr, _deref_bytecode)),
   (None,), ('cell',), (), '', '', 2, '',
('cell',))
def deref_cell(cell):
"""Return the value of 'cell' (an object from a func_closure)."""
# FunctionType(code, globals[, name[, argdefs[, closure]]])
return FunctionType(_derefblock, {}, "", (), (cell,))()


Robert Brewer
System Architect
Amor Ministries
[EMAIL PROTECTED]

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


Logging module: problem with some mapping keys

2006-12-13 Thread Tekkaman
I'm getting a strange behaviour from the "pathname" and "lineno"
formatter mapping keys. Instead of my file and my line number I get:

/usr/lib/python2.4/logging/__init__.py

as the file, and 1072 as the line number. I set up my config as
follows:

logBaseConf = {
'level'   : logging.DEBUG,
'format'  : "%(levelname)-8s|%(asctime)s|%(pathname)s,
%(name)s, line %(lineno)s|%(message)s",
'datefmt ': '%d %b %Y, %H:%M:%S',
'filename': 'logtest.log',
'filemode': 'a'
}
logging.basicConfig(**logBaseConf)

I'm not using any executable-generating tools such as cx_Freeze or
Psyco. In fact, I'm getting this error on a very basic script with the
specific purpose of testing the logging module capabilities.

Thanks in advance for any contribution.

T.

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


Re: How to manage two (different) sockets without using threads?

2006-12-13 Thread Maksim Kasimov

Hi, i don't know how to do it with asyncore/asynchat,
but it is possible to handle different sockets in one process by using "select" 
standard module:

 for_reading, for_writing, where_errors =\
   select.select( ( ), (  ), (), 0)

you can find all necessary information in python documentation:
http://www.python.org/doc/2.4/lib/module-select.html


btw: "asyncore" use "select" for socket handling, take a look in asyncore.py


hope it helps


billie wrote:
> Hi all.
> I'm (re)writing an FTP server application by using asyncore/asynchat
> modules.
> FTP tipically got two different channels: command and data.
> I'm succesfully managing command channel through asynchat framework,
> but I'm not sure about how to manage data channel without using a
> thread/subprocess.
> Is there an optimal to do that?
> Can anyone point me in the right direction?
> 


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


Please donate to the Python Software Foundation

2006-12-13 Thread sdeibel
Hi,

I'm writing to urge members of the Python community to please 
keep the Python Software Foundation in mind in your "year end 
giving".

The PSF is the 501(c)3 non-profit organization that holds and 
protects the intellectual property rights behind Python.  We deal 
with the licensing, contribution agreements, and legal 
requirements of copyright and trademark in order to keep Python 
open and free of legal claims.

The PSF also:

* Provides the financial backing that makes PyCon possible:
http://us.pycon.org/

* Funds special projects such as the recent website redesign:
http://python.org/

  and the current Python Advocacy Coordinator experiment:
http://python.org/psf/grants/advocacy/orig-proposal.pdf
http://wiki.python.org/moin/PythonAdvocacyCoordinator

* Funds grants:
http://www.python.org/psf/grants/

* Responds to legal queries about the license, trademarks, or 
  US export control registration, owns/renews the key Python 
  domain names, and other such administrative chores.

How to Donate
-

We take credit cards, checks, wire transfers, and PayPal:

  http://www.python.org/psf/donations/

Donations are tax deductible for US citizens and for any business 
where donations or sponsorship can be considered pre-tax business 
expenses.

Businesses can also consider becoming a sponsor member of the 
PSF:

  http://www.python.org/psf/sponsorship/

Or, become a sponsor of PyCon 2007:

  http://us.pycon.org/TX2007/HowToSponsor

If you have any questions, please email me directly.

Thanks!

Stephan Deibel
Chairman of the Board
Python Software Foundation

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


  1   2   3   >