Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-09-01 Thread Eric Nieuwland
Raymond Hettinger wrote: I think it's convenient but also rather odd that split() with a static string argument was moved from module string to a method in class str, while split() with a regexp has remained in module re. I don't see what you find odd. With str and unicode objects being

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-31 Thread Pierre Barbier de Reuille
Josiah Carlson a écrit : Pierre Barbier de Reuille [EMAIL PROTECTED] wrote: 0.5 So, subtracting that .5 seconds from all the cases gives us... 0.343 seconds for .find's comparison 0.313 seconds for .index's exception handling when an exception is not raised 3.797 seconds for .index's

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-31 Thread Antoine Pitrou
Le mardi 30 août 2005 à 12:29 -0500, [EMAIL PROTECTED] a écrit : Just group your re: import re re.split(ab, abracadabra) ['', 'racad', 'ra'] re.split((ab), abracadabra) ['', 'ab', 'racad', 'ab', 'ra'] and you get it in the return value. In fact, re.split

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-31 Thread Ron Adam
Nick Coghlan wrote: Ron Adam wrote: I don't feel there is a need to avoid numbers entirely. In this case I think it's the better way to find the n'th seperator and since it's an optional value I feel it doesn't add a lot of complication. Anyway... It's just a suggestion. Avoid

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-30 Thread Pierre Barbier de Reuille
Josiah Carlson a écrit : Pierre Barbier de Reuille [EMAIL PROTECTED] wrote: Well, I want to come back on a point that wasn't discussed. I only found one positive comment here : http://mail.python.org/pipermail/python-dev/2005-August/055775.html You apparently haven't been reading

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-30 Thread Nick Coghlan
Pierre Barbier de Reuille wrote: What I'm talking about is consistency. In most cases in Python, or at least AFAIU, error testing is avoided and exception launching is preferred mainly for efficiency reasons. So my question remains: why prefer for that specific method returning an error value

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-30 Thread Nick Coghlan
Delaney, Timothy (Tim) wrote: Of course, if I (or someone else) can't come up with an obviously better name, partition() will win by default. I don't think it's a *bad* name - just don't think it's a particularly *obvious* name. What about simply str.parts and str.rparts? That is, rather than

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-30 Thread Nick Coghlan
Nick Coghlan wrote: Another option would be simply str.part() and str.rpart(). Then you could think of it as an abbreviation of either 'partition' or 'parts' depending on your inclination. I momentarily forgot that part is also a verb in its own right, with the right meaning, too (think

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-30 Thread Antoine Pitrou
(unlurking) Le mardi 30 août 2005 à 23:20 +1000, Nick Coghlan a écrit : I momentarily forgot that part is also a verb in its own right, with the right meaning, too (think parting your hair and parting the Red Sea). parts sounds more obvious than the verb part which is little known to

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-30 Thread Jason Orendorff
Concerning names for partition(), I immediately thought of break(). Unfortunately it's taken. So, how about snap()? head, sep, tail = line.snap(':') -j ___ Python-Dev mailing list Python-Dev@python.org

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-30 Thread Charles Cazabon
Jason Orendorff [EMAIL PROTECTED] wrote: Concerning names for partition(), I immediately thought of break(). Unfortunately it's taken. So, how about snap()? I like .part()/.rpart() (or failing that, .parts()/.rparts()). But if you really want something short that's similar in meaning,

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-30 Thread Pierre Barbier de Reuille
Eric Nieuwland a écrit : I have some use cases with: cut_at = some_str.find(sep) head, tail = some_str[:cut_at], some_str[cut_at:] and: cut_at = some_str.find(sep) head, tail = some_str[:cut_at], some_str[cut_at+offset:] # offset != len(sep) So if partition()

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-30 Thread skip
Nick What about simply str.parts and str.rparts? -1 because parts is not a verb. When I see an attribute that is a noun I generally expect it to be a data attribute. Skip ___ Python-Dev mailing list Python-Dev@python.org

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-30 Thread Phillip J. Eby
At 10:01 AM 8/30/2005 +0200, Fredrik Lundh wrote: Phillip J. Eby wrote: Check out (and Pythonify) the ANSI M[UMPS] $PIECE(). See: http://www.jacquardsystems.com/Examples/function/piece.htm As far as I can see, either you misunderstand what partition() does, or I'm completely

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-30 Thread BJörn Lindqvist
I like partition() but maybe even better would be if strings supported slicing by string indices. key, sep, val = 'foo = 32'.partition('=') would be: key, val = 'foo = 32'[:'='], 'foo = 32'['=':] To me it feels very natural to extend Python's slices to string indices and would cover most of

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-30 Thread Eric Nieuwland
Pierre Barbier de Reuille wrote: Or you want to have some partition method which accept regular expressions: head, sep, tail = some_str.partition(re.compile(sep+'.'*offset)) Neat! +1 on regexps as an argument to partition(). --eric ___ Python-Dev

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-30 Thread Antoine Pitrou
Neat! +1 on regexps as an argument to partition(). It sounds better to have a separate function and call it re.partition, doesn't it ? By the way, re.partition() is *really* useful compared to re.split() because with the latter you don't which string precisely matched the pattern (it isn't an

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-30 Thread Shane Hathaway
Eric Nieuwland wrote: Pierre Barbier de Reuille wrote: Or you want to have some partition method which accept regular expressions: head, sep, tail = some_str.partition(re.compile(sep+'.'*offset)) Neat! +1 on regexps as an argument to partition(). Are you sure? I would instead expect to

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-30 Thread Pierre Barbier de Reuille
Shane Hathaway a écrit : Eric Nieuwland wrote: Pierre Barbier de Reuille wrote: Or you want to have some partition method which accept regular expressions: head, sep, tail = some_str.partition(re.compile(sep+'.'*offset)) Neat! +1 on regexps as an argument to partition(). Are

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-30 Thread Shane Hathaway
Pierre Barbier de Reuille wrote: Shane Hathaway a écrit : Are you sure? I would instead expect to find a .partition method on a regexp object: head, sep, tail = re.compile(sep+'.'*offset).partition(some_str) Well, to be consistent with current re module, it would be better to follow

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-30 Thread Michael Hoffman
[Shane Hathaway writes about the existence of both module-level functions and object methods to do the same regex operations] Apparently Python believes TMTOWTDI is the right practice here. ;-) See search, match, split, findall, finditer, sub, and subn: http://docs.python.org/lib/node114.html

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-30 Thread Michael Chermside
Michael Hoffman writes: Dare I ask whether the uncompiled versions [of re object methods] should be considered for removal in Python 3.0? *puts on his asbestos jacket* No flames here, but I'd rather leave them. The docs make it clear that the two sets of functions/methods are equivalent, so

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-30 Thread Ron Adam
Raymond Hettinger wrote: [Delaney, Timothy (Tim)] +1 This is very useful behaviour IMO. Thanks. It seems to be getting +1s all around. Wow, a lot of approvals! :) Have the precise return values of partition() been defined? +1 on the Name partition, I considered split or parts, but i

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-30 Thread Barry Warsaw
On Tue, 2005-08-30 at 11:27, Phillip J. Eby wrote: So if partition() [or whatever it'll be called] could have an optional second argument that defines the width of the 'cut' made, I would be helped enormously. The default for this second argument would be len(sep), to preserve the current

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-30 Thread skip
Antoine By the way, re.partition() is *really* useful compared to Antoine re.split() because with the latter you don't which string Antoine precisely matched the pattern (it isn't an issue with Antoine str.split() since matching is exact). Just group your re: import re

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-30 Thread skip
http://docs.python.org/lib/re-objects.html Michael Dare I ask whether the uncompiled versions should be considered Michael for removal in Python 3.0? It is quite convenient to not have to compile regular expressions in most cases. The module takes care of compiling your patterns

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-30 Thread skip
Unrelated comment: maybe 'cut()' and rcut() would be nice short names. Barry FWIW, +1 on .cut(), +0 on .partition() As long as people are free associating: snip(), excise(), explode(), invade_iraq()... wink Skip ___ Python-Dev mailing list

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-30 Thread Raymond Hettinger
[Ron Adam] This would allow creating an iterator that could iterate though a string splitting on each sep from either the left, or right. For uses more complex than basic partitioning, people should shift to more powerful tools like re.finditer(), re.findall(), and re.split(). I can't think

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-30 Thread Eric Nieuwland
On 30 aug 2005, at 17:40, Antoine Pitrou wrote: Neat! +1 on regexps as an argument to partition(). It sounds better to have a separate function and call it re.partition, doesn't it ? By the way, re.partition() is *really* useful compared to re.split() because with the latter you don't which

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-30 Thread Phillip J. Eby
At 02:25 PM 8/30/2005 -0400, Raymond Hettinger wrote: That case should be handled with consecutive partitions: # keep everything after the second 'X' head, found, s = s.partition('X') head, found, s = s.partition('x') Or: s=s.partition('X')[2].partition('X')[2] which actually suggests a

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-30 Thread Fredrik Lundh
Michael Hoffman wrote: Dare I ask whether the uncompiled versions should be considered for removal in Python 3.0? *puts on his asbestos jacket* there are no uncompiled versions, so that's not a problem. if you mean the function level api, it's there for convenience. if you're using less

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-30 Thread Fredrik Lundh
Phillip J. Eby wrote: both split on a given token. partition splits once, and returns all three parts, while piece returns the part you ask for No, because looking at that URL, there is no piece that is the token split on. partition() always returns 3 parts for 1 occurrence of the token,

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-30 Thread Phillip J. Eby
At 07:54 PM 8/30/2005 +0200, Fredrik Lundh wrote: Phillip J. Eby wrote: both split on a given token. partition splits once, and returns all three parts, while piece returns the part you ask for No, because looking at that URL, there is no piece that is the token split on. partition()

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-30 Thread Greg Ewing
JustFillBug wrote: trisplit() And then for when you need to record the result somewhere, tricord(). :-) -- Greg Ewing, Computer Science Dept, +--+ University of Canterbury, | A citizen of NewZealandCorp, a | Christchurch, New Zealand

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-30 Thread Greg Ewing
Nick Coghlan wrote: Another option would be simply str.part() and str.rpart(). Then you could think of it as an abbreviation of either 'partition' or 'parts' depending on your inclination. Or simply as the verb 'part', which also makes sense! Also it's short and snappy, whereas 'partition'

[Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-29 Thread Delaney, Timothy (Tim)
Michael Chermside wrote: Raymond writes: That suggests that we need a variant of split() that has been customized for typical find/index use cases. Perhaps introduce a new pair of methods, partition() and rpartition() +1 My only suggestion is that when you're about to make a truly

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-29 Thread Raymond Hettinger
[Delaney, Timothy (Tim)] +1 This is very useful behaviour IMO. Thanks. It seems to be getting +1s all around. Have the precise return values of partition() been defined? . . . IMO the most useful (and intuitive) behaviour is to return strings in all cases. Yes, there is a precise

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-29 Thread Delaney, Timothy (Tim)
Raymond Hettinger wrote: Yes, there is a precise spec and yes it always returns three strings. Movitation and spec: http://mail.python.org/pipermail/python-dev/2005-August/055764.html Ah - thanks. Missed that in the mass of emails. My major issue is with the names - partition() doesn't

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-29 Thread Anthony Baxter
On Tuesday 30 August 2005 11:26, Raymond Hettinger wrote: My major issue is with the names - partition() doesn't sound right to me. FWIW, I am VERY happy with the name partition(). I'm +1 on the functionality, and +1 on the name partition(). The only other name that comes to mind is

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-29 Thread LD \Gus\ Landis
Hi, How about piece() ? Anthony can have his es that way too! ;-) and it's the same number of characters as .split(). Cheers, --ldl On 8/29/05, Anthony Baxter [EMAIL PROTECTED] wrote: On Tuesday 30 August 2005 11:26, Raymond Hettinger wrote: My major issue is with the names -

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-29 Thread LD \Gus\ Landis
Hi, Re: multiples, etc... Check out (and Pythonify) the ANSI M[UMPS] $PIECE(). See: http://www.jacquardsystems.com/Examples/function/piece.htm Cheers, --ldl On 8/29/05, LD Gus Landis [EMAIL PROTECTED] wrote: Hi, How about piece() ? Anthony can have his es that way too! ;-)

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-29 Thread Fred L. Drake, Jr.
On Tuesday 30 August 2005 11:26, Raymond Hettinger wrote: FWIW, I am VERY happy with the name partition(). I like it too. +1 -Fred -- Fred L. Drake, Jr. fdrake at acm.org ___ Python-Dev mailing list Python-Dev@python.org

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-29 Thread Shane Hathaway
Delaney, Timothy (Tim) wrote: I think that one of the things I have against it is that most times I type it, I get a typo. If this function is accepted, I think it will (and should!) become one of the most used string functions around. As such, the name should be *very* easy to type. FWIW,

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-29 Thread Aahz
On Tue, Aug 30, 2005, Delaney, Timothy (Tim) wrote: Looks like I'm getting seriously outvoted here ... Still, as I said I don't think the name is overly important until the idea has been accepted anyway. How long did we go with people in favour of resource manager until context manager came

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-29 Thread JustFillBug
On 2005-08-30, Anthony Baxter [EMAIL PROTECTED] wrote: On Tuesday 30 August 2005 11:26, Raymond Hettinger wrote: My major issue is with the names - partition() doesn't sound right to me. FWIW, I am VERY happy with the name partition(). I'm +1 on the functionality, and +1 on the name

Re: [Python-Dev] partition() (was: Remove str.find in 3.0?)

2005-08-29 Thread Delaney, Timothy (Tim)
Raymond Hettinger wrote: Heh! Maybe AttributeError and NameError should be renamed to TypoError ;-) Afterall, the only time I get these exceptions is when the fingers press different buttons than the brain requested. You misspelled TyopError ;) Tim Delaney