mirror of
https://github.com/python/cpython.git
synced 2025-10-09 16:34:44 +00:00
Merged revisions 62805,62811,62841-62842,62848-62849,62853-62854 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r62805 | christian.heimes | 2008-05-07 01:59:53 +0200 (Wed, 07 May 2008) | 1 line Re-added getbuildinfo.c solution item ........ r62811 | benjamin.peterson | 2008-05-07 04:23:43 +0200 (Wed, 07 May 2008) | 2 lines update .bzrignore ........ r62841 | christian.heimes | 2008-05-08 00:54:17 +0200 (Thu, 08 May 2008) | 1 line Replace more float hacks with correct math functions ........ r62842 | benjamin.peterson | 2008-05-08 01:11:54 +0200 (Thu, 08 May 2008) | 2 lines Practice EAFP, and revert 62787 ........ r62848 | raymond.hettinger | 2008-05-08 06:35:20 +0200 (Thu, 08 May 2008) | 1 line Frozensets do not benefit from autoconversion. ........ r62849 | raymond.hettinger | 2008-05-08 06:36:12 +0200 (Thu, 08 May 2008) | 1 line The __all__ variable forgot to expose the gcd() function. ........ r62853 | raymond.hettinger | 2008-05-08 09:23:30 +0200 (Thu, 08 May 2008) | 1 line Fix-up the enumerate type example and move it to the end. ........ r62854 | ronald.oussoren | 2008-05-08 12:34:39 +0200 (Thu, 08 May 2008) | 3 lines Fix for issue 1770190: platform.mac_ver() now returns the right version on OSX 10.4.10 ........
This commit is contained in:
parent
e580f5c55a
commit
e4ca8156ef
5 changed files with 33 additions and 19 deletions
|
@ -1,4 +1,4 @@
|
||||||
.purify
|
´.purify
|
||||||
autom4te.cache
|
autom4te.cache
|
||||||
config.log
|
config.log
|
||||||
config.cache
|
config.cache
|
||||||
|
@ -41,3 +41,7 @@ Modules/Setup.local
|
||||||
Modules/config.c
|
Modules/config.c
|
||||||
Parser/pgen
|
Parser/pgen
|
||||||
Lib/plat-mac/errors.rsrc.df.rsrc
|
Lib/plat-mac/errors.rsrc.df.rsrc
|
||||||
|
Lib/lib2to3/Grammar2.6.0.alpha.1.pickle
|
||||||
|
Lib/lib2to3/Grammar2.6.0.alpha.2.pickle
|
||||||
|
Lib/lib2to3/PatternGrammar2.6.0.alpha.1.pickle
|
||||||
|
Lib/lib2to3/PatternGrammar2.6.0.alpha.2.pickle
|
||||||
|
|
|
@ -550,16 +550,6 @@ by the :mod:`csv` or :mod:`sqlite3` modules::
|
||||||
for emp in map(EmployeeRecord._make, cursor.fetchall()):
|
for emp in map(EmployeeRecord._make, cursor.fetchall()):
|
||||||
print(emp.name, emp.title)
|
print(emp.name, emp.title)
|
||||||
|
|
||||||
Named tuples can also be used to generate enumerated constants:
|
|
||||||
|
|
||||||
.. testcode::
|
|
||||||
|
|
||||||
def enum(*names):
|
|
||||||
return namedtuple('Enum', ' '.join(names))(*range(len(names)))
|
|
||||||
|
|
||||||
Status = enum('open', 'pending', 'closed')
|
|
||||||
assert (0, 1, 2) == (Status.open, Status.pending, Status.closed)
|
|
||||||
|
|
||||||
In addition to the methods inherited from tuples, named tuples support
|
In addition to the methods inherited from tuples, named tuples support
|
||||||
three additional methods and one attribute. To prevent conflicts with
|
three additional methods and one attribute. To prevent conflicts with
|
||||||
field names, the method and attribute names start with an underscore.
|
field names, the method and attribute names start with an underscore.
|
||||||
|
@ -655,6 +645,15 @@ customize a prototype instance:
|
||||||
>>> default_account = Account('<owner name>', 0.0, 0)
|
>>> default_account = Account('<owner name>', 0.0, 0)
|
||||||
>>> johns_account = default_account._replace(owner='John')
|
>>> johns_account = default_account._replace(owner='John')
|
||||||
|
|
||||||
|
Enumerated constants can be implemented with named tuples, but it is simpler
|
||||||
|
and more efficient to use a simple class declaration:
|
||||||
|
|
||||||
|
>>> Status = namedtuple('Status', 'open pending closed')._make(range(3))
|
||||||
|
>>> Status.open, Status.pending, Status.closed
|
||||||
|
(0, 1, 2)
|
||||||
|
>>> class Status:
|
||||||
|
... open, pending, closed = range(3)
|
||||||
|
|
||||||
.. rubric:: Footnotes
|
.. rubric:: Footnotes
|
||||||
|
|
||||||
.. [#] For information on the double-star-operator see
|
.. [#] For information on the double-star-operator see
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import re
|
import re
|
||||||
|
import math
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from _json import encode_basestring_ascii as c_encode_basestring_ascii
|
from _json import encode_basestring_ascii as c_encode_basestring_ascii
|
||||||
|
@ -25,20 +26,19 @@ ESCAPE_DCT = {
|
||||||
for i in range(0x20):
|
for i in range(0x20):
|
||||||
ESCAPE_DCT.setdefault(chr(i), '\\u{0:04x}'.format(i))
|
ESCAPE_DCT.setdefault(chr(i), '\\u{0:04x}'.format(i))
|
||||||
|
|
||||||
# Assume this produces an infinity on all machines (probably not guaranteed)
|
|
||||||
INFINITY = float('1e66666')
|
|
||||||
FLOAT_REPR = repr
|
FLOAT_REPR = repr
|
||||||
|
|
||||||
def floatstr(o, allow_nan=True):
|
def floatstr(o, allow_nan=True):
|
||||||
# Check for specials. Note that this type of test is processor- and/or
|
# Check for specials. Note that this type of test is processor- and/or
|
||||||
# platform-specific, so do tests which don't depend on the internals.
|
# platform-specific, so do tests which don't depend on the internals.
|
||||||
|
|
||||||
if o != o:
|
if math.isnan(o):
|
||||||
text = 'NaN'
|
text = 'NaN'
|
||||||
elif o == INFINITY:
|
elif math.isinf(o):
|
||||||
text = 'Infinity'
|
if math.copysign(1., o) == 1.:
|
||||||
elif o == -INFINITY:
|
text = 'Infinity'
|
||||||
text = '-Infinity'
|
else:
|
||||||
|
text = '-Infinity'
|
||||||
else:
|
else:
|
||||||
return FLOAT_REPR(o)
|
return FLOAT_REPR(o)
|
||||||
|
|
||||||
|
|
|
@ -720,7 +720,17 @@ def mac_ver(release='',versioninfo=('','',''),machine=''):
|
||||||
major = (sysv & 0xFF00) >> 8
|
major = (sysv & 0xFF00) >> 8
|
||||||
minor = (sysv & 0x00F0) >> 4
|
minor = (sysv & 0x00F0) >> 4
|
||||||
patch = (sysv & 0x000F)
|
patch = (sysv & 0x000F)
|
||||||
release = '%s.%i.%i' % (_bcd2str(major),minor,patch)
|
|
||||||
|
if (major, minor) >= (10, 4):
|
||||||
|
# the 'sysv' gestald cannot return patchlevels
|
||||||
|
# higher than 9. Apple introduced 3 new
|
||||||
|
# gestalt codes in 10.4 to deal with this
|
||||||
|
# issue (needed because patch levels can
|
||||||
|
# run higher than 9, such as 10.4.11)
|
||||||
|
major,minor,patch = _mac_ver_lookup(('sys1','sys2','sys3'))
|
||||||
|
release = '%i.%i.%i' %(major, minor, patch)
|
||||||
|
else:
|
||||||
|
release = '%s.%i.%i' % (_bcd2str(major),minor,patch)
|
||||||
if sysu:
|
if sysu:
|
||||||
major = int((sysu & 0xFF000000) >> 24)
|
major = int((sysu & 0xFF000000) >> 24)
|
||||||
minor = (sysu & 0x00F00000) >> 20
|
minor = (sysu & 0x00F00000) >> 20
|
||||||
|
|
|
@ -29,6 +29,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_buildinfo", "make_buil
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{553EC33E-9816-4996-A660-5D6186A0B0B3}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{553EC33E-9816-4996-A660-5D6186A0B0B3}"
|
||||||
ProjectSection(SolutionItems) = preProject
|
ProjectSection(SolutionItems) = preProject
|
||||||
|
..\Modules\getbuildinfo.c = ..\Modules\getbuildinfo.c
|
||||||
readme.txt = readme.txt
|
readme.txt = readme.txt
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue