This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2008年11月09日 00:04 by brett.cannon, last changed 2022年04月11日 14:56 by admin. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| patch-4285b.diff | ross.light, 2009年01月25日 19:25 | Second draft of bug patch | ||
| patch-4285c.diff | ross.light, 2009年01月25日 20:22 | Third draft of patch | ||
| patch-4285d.diff | ross.light, 2009年01月26日 23:13 | Fourth draft of patch | ||
| Messages (16) | |||
|---|---|---|---|
| msg75647 - (view) | Author: Brett Cannon (brett.cannon) * (Python committer) | Date: 2008年11月09日 00:04 | |
sys.version_info is just asking for a named tuple consisting of major, minor, micro, releaselevel, and serial. This is assuming, of course, that bootstrapping doesn't get in the way. |
|||
| msg75655 - (view) | Author: Christian Heimes (christian.heimes) * (Python committer) | Date: 2008年11月09日 17:35 | |
I concur that bootstrapping may be a problem. Using a NamedTuple also increases the number of loaded modules by 4 (_collections.so, keyword.py and operator.so). But we could reimplement it with a PyStructSequence like I did for sys.float_info. It's straight forward and easy to implement with the example code in Object/floatobject.c:PyFloat_GetInfo(). |
|||
| msg80521 - (view) | Author: Ross Light (ross.light) * | Date: 2009年01月25日 18:37 | |
Hello, my name is Ross Light. I've written a patch for this, but this is my first patch, so someone please review. This does pass all regression tests, but I did have to modify the test_sys case to not check for sys.version_info being a tuple. |
|||
| msg80526 - (view) | Author: Jean-Paul Calderone (exarkun) * (Python committer) | Date: 2009年01月25日 19:18 | |
You also need to add unit tests for the new behavior you've implemented. |
|||
| msg80527 - (view) | Author: Ross Light (ross.light) * | Date: 2009年01月25日 19:25 | |
Oh yes, you're right. Sorry! |
|||
| msg80530 - (view) | Author: Raymond Hettinger (rhettinger) * (Python committer) | Date: 2009年01月25日 19:29 | |
+1 on this idea |
|||
| msg80534 - (view) | Author: Martin v. Löwis (loewis) * (Python committer) | Date: 2009年01月25日 19:40 | |
A couple of further comments: - please use tabs for indentation consistently. - please change Doc/library/sys.rst, including adding a versionchanged indication - I find the naming of the macros *Flag confusing; to me, a "flag" says "boolean" - but I'm not a native speaker (of English). Common names are "item", "field", "element". |
|||
| msg80538 - (view) | Author: Ross Light (ross.light) * | Date: 2009年01月25日 20:22 | |
Okay, here's a patch with the requested changes. You're right in saying that flag is usually boolean, I was just going along with several other files where there's float and int flags (i.e. floatobject.c). |
|||
| msg80557 - (view) | Author: Alyssa Coghlan (ncoghlan) * (Python committer) | Date: 2009年01月26日 01:42 | |
Rather than deleting the isinstance() check from the tests completely, I suggest changing it to be: self.assert_(isinstance(vi[:], tuple)) Also, comparing directly with a tuple is also a fairly common use of version_info so it would be worth adding a test to explicitly guarantee that comparison: self.assert_(vi > (1,0,0)) Patch applied and built cleanly for me, but I haven't checked the doc build yet. |
|||
| msg80599 - (view) | Author: Ross Light (ross.light) * | Date: 2009年01月26日 23:13 | |
Tests added and new patch uploaded. Anything else, anyone? |
|||
| msg81139 - (view) | Author: Eric V. Smith (eric.smith) * (Python committer) | Date: 2009年02月04日 13:56 | |
The doc string for sys includes: version_info -- version information as a tuple I'm not sure changing this to "... as a structseq" makes it any more useful, but it's more correct. Does anyone have a preference? I'd use the same wording as float_info, but that's missing from the doc string (and I'll deal with that as a separate issue). Other than that, this all looks good to me. I also tested that the docs build. I'll check it in once I get or invent new wording for the doc string. |
|||
| msg81148 - (view) | Author: Brett Cannon (brett.cannon) * (Python committer) | Date: 2009年02月04日 18:27 | |
On Wed, Feb 4, 2009 at 05:56, Eric Smith <report@bugs.python.org> wrote: > > Eric Smith <eric@trueblade.com> added the comment: > > The doc string for sys includes: > version_info -- version information as a tuple > > I'm not sure changing this to "... as a structseq" makes it any more > useful, but it's more correct. Does anyone have a preference? Does "... as a named tuple" make sense? -Brett |
|||
| msg81149 - (view) | Author: Eric V. Smith (eric.smith) * (Python committer) | Date: 2009年02月04日 18:30 | |
"... as a named tuple" works for me. I'll go with that. Thanks! |
|||
| msg81169 - (view) | Author: Christian Heimes (christian.heimes) * (Python committer) | Date: 2009年02月04日 22:31 | |
Technically it's not a named tuple. Calling it named tuple may cause confusing. http://docs.python.org/library/os.html#os.stat calls it a structure. |
|||
| msg81172 - (view) | Author: Raymond Hettinger (rhettinger) * (Python committer) | Date: 2009年02月04日 22:33 | |
> Eric Smith <eric@trueblade.com> added the comment: > "... as a named tuple" works for me. I'll go with that. Thanks! +1 Remember, "named tuple" is a concept, not a class. It is anything that provides attribute access as an alternative to indexed access (see the definition in the glossary where time.struct_time is given as an example). Running the collections.named_tuple() factory function creates a new class with named tuple features, but it is just one of several ways of creating named tuples. |
|||
| msg81245 - (view) | Author: Eric V. Smith (eric.smith) * (Python committer) | Date: 2009年02月06日 01:33 | |
Committed in r69331 (trunk) and r69346 (py3k). |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:56:41 | admin | set | github: 48535 |
| 2009年02月06日 01:33:27 | eric.smith | set | status: open -> closed resolution: accepted messages: + msg81245 |
| 2009年02月04日 22:33:50 | rhettinger | set | messages: + msg81172 |
| 2009年02月04日 22:31:10 | christian.heimes | set | messages: + msg81169 |
| 2009年02月04日 18:30:20 | eric.smith | set | messages: + msg81149 |
| 2009年02月04日 18:27:30 | brett.cannon | set | messages: + msg81148 |
| 2009年02月04日 13:56:31 | eric.smith | set | messages: + msg81139 |
| 2009年02月03日 21:56:46 | eric.smith | set | assignee: brett.cannon -> eric.smith |
| 2009年02月03日 21:23:22 | eric.smith | set | nosy: + eric.smith |
| 2009年01月26日 23:13:29 | ross.light | set | files:
+ patch-4285d.diff messages: + msg80599 |
| 2009年01月26日 01:42:26 | ncoghlan | set | nosy:
+ ncoghlan messages: + msg80557 |
| 2009年01月25日 20:22:41 | ross.light | set | files:
+ patch-4285c.diff messages: + msg80538 |
| 2009年01月25日 19:40:48 | loewis | set | nosy:
+ loewis messages: + msg80534 |
| 2009年01月25日 19:33:34 | loewis | set | files: - patch-4285a.diff |
| 2009年01月25日 19:29:44 | rhettinger | set | nosy:
+ rhettinger messages: + msg80530 |
| 2009年01月25日 19:25:21 | ross.light | set | files:
+ patch-4285b.diff messages: + msg80527 |
| 2009年01月25日 19:18:14 | exarkun | set | nosy:
+ exarkun messages: + msg80526 |
| 2009年01月25日 18:37:14 | ross.light | set | files:
+ patch-4285a.diff nosy: + ross.light messages: + msg80521 keywords: + patch |
| 2008年11月09日 17:35:04 | christian.heimes | set | nosy:
+ christian.heimes messages: + msg75655 |
| 2008年11月09日 00:04:51 | brett.cannon | create | |