Kaydet (Commit) 6461e101 authored tarafından Alexandre Vassalotti's avatar Alexandre Vassalotti

Merged revisions…

Merged revisions 62914-62916,62918-62919,62921-62922,62924-62942,62944-62945,62947-62949 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r62914 | skip.montanaro | 2008-05-08 20:45:00 -0400 (Thu, 08 May 2008) | 4 lines

  Add an example about using NamedTemporaryFile() to replace mktemp().  I'm
  unclear whether the verbatim text should have been indented or by how much.
........
  r62915 | benjamin.peterson | 2008-05-08 20:50:40 -0400 (Thu, 08 May 2008) | 2 lines

  reindent example
........
  r62927 | georg.brandl | 2008-05-09 02:09:25 -0400 (Fri, 09 May 2008) | 2 lines

  #2788: add .hgignore file.
........
  r62928 | georg.brandl | 2008-05-09 02:10:43 -0400 (Fri, 09 May 2008) | 2 lines

  #2781: fix function name.
........
  r62929 | georg.brandl | 2008-05-09 02:18:27 -0400 (Fri, 09 May 2008) | 2 lines

  Add a sentence to basicConfig() that is in the docstring.
........
  r62930 | georg.brandl | 2008-05-09 02:26:54 -0400 (Fri, 09 May 2008) | 2 lines

  Add another link to colorsys docs.
........
  r62931 | georg.brandl | 2008-05-09 02:36:07 -0400 (Fri, 09 May 2008) | 2 lines

  Add Kodos as a re reference.
........
  r62932 | georg.brandl | 2008-05-09 02:39:58 -0400 (Fri, 09 May 2008) | 2 lines

  Add a note about using reload().
........
  r62933 | andrew.kuchling | 2008-05-09 07:46:05 -0400 (Fri, 09 May 2008) | 3 lines

  Update planned release date.
  Uncomment PEP 370 section.
  Add some module items
........
  r62934 | christian.heimes | 2008-05-09 08:19:09 -0400 (Fri, 09 May 2008) | 1 line

  Add --user option to build_ext
........
  r62948 | mark.dickinson | 2008-05-09 13:54:23 -0400 (Fri, 09 May 2008) | 3 lines

  Issue #2487.  math.ldexp(x, n) raised OverflowError when n was large and
  negative; fix to return an (appropriately signed) zero instead.
........
  r62949 | martin.v.loewis | 2008-05-09 14:21:55 -0400 (Fri, 09 May 2008) | 1 line

  Use the CHM file name that Sphinx assigns.
........
üst b645bc7b
.gdb_history
.purify
.svn
BIG5.TXT
BIG5HKSCS-2004.TXT
BIG5HKSCS.TXT
CP932.TXT
CP936.TXT
CP949.TXT
CP950.TXT
EUC-CN.TXT
EUC-JISX0213.TXT
EUC-JP.TXT
EUC-KR.TXT
JOHAB.TXT
Makefile
Makefile.pre
NormalizationTest-3.2.0.txt
NormalizationTest.txt
SHIFTJIS.TXT
SHIFT_JISX0213.TXT
TAGS
autom4te.cache
build
buildno
config.cache
config.log
config.status
config.status.lineno
db_home
gb-18030-2000.xml
platform
pyconfig.h
python
python.exe
reflog.txt
tags
Lib/plat-mac/errors.rsrc.df.rsrc
Doc/tools/sphinx/
Doc/tools/docutils/
Doc/tools/jinja/
Doc/tools/pygments/
Modules/Setup
Modules/Setup.config
Modules/Setup.local
Modules/config.c
Parser/pgen
core
syntax: glob
libpython*.a
*.o
*.pyc
*.pyo
*.pyd
*.cover
*.orig
*.rej
*~
Lib/lib2to3/*.pickle
PCbuild/*.exe
PCbuild/*.dll
PCbuild/*.pdb
PCbuild/*.lib
PCbuild/*.exp
PCbuild/*.o
PCbuild/*.ncb
PCbuild/*.bsc
PCbuild/Win32-temp-*
\ No newline at end of file
...@@ -146,7 +146,7 @@ This module offers the following functions: ...@@ -146,7 +146,7 @@ This module offers the following functions:
*key* is an already open key, or one of the predefined :const:`HKEY_\*` *key* is an already open key, or one of the predefined :const:`HKEY_\*`
constants. constants.
It is not necessary to call RegFlushKey to change a key. Registry changes are It is not necessary to call :func:`FlushKey` to change a key. Registry changes are
flushed to disk by the registry using its lazy flusher. Registry changes are flushed to disk by the registry using its lazy flusher. Registry changes are
also flushed to disk at system shutdown. Unlike :func:`CloseKey`, the also flushed to disk at system shutdown. Unlike :func:`CloseKey`, the
:func:`FlushKey` method returns only when all the data has been written to the :func:`FlushKey` method returns only when all the data has been written to the
...@@ -159,7 +159,7 @@ This module offers the following functions: ...@@ -159,7 +159,7 @@ This module offers the following functions:
isn't. isn't.
.. function:: RegLoadKey(key, sub_key, file_name) .. function:: LoadKey(key, sub_key, file_name)
Creates a subkey under the specified key and stores registration information Creates a subkey under the specified key and stores registration information
from a specified file into that subkey. from a specified file into that subkey.
......
:mod:`colorsys` --- Conversions between color systems :mod:`colorsys` --- Conversions between color systems
===================================================== =====================================================
...@@ -15,8 +14,11 @@ spaces are floating point values. In the YIQ space, the Y coordinate is between ...@@ -15,8 +14,11 @@ spaces are floating point values. In the YIQ space, the Y coordinate is between
0 and 1, but the I and Q coordinates can be positive or negative. In all other 0 and 1, but the I and Q coordinates can be positive or negative. In all other
spaces, the coordinates are all between 0 and 1. spaces, the coordinates are all between 0 and 1.
More information about color spaces can be found at .. seealso::
http://www.poynton.com/ColorFAQ.html.
More information about color spaces can be found at
http://www.poynton.com/ColorFAQ.html and
http://www.cambridgeincolour.com/tutorials/color-spaces.htm.
The :mod:`colorsys` module defines the following functions: The :mod:`colorsys` module defines the following functions:
...@@ -57,4 +59,3 @@ Example:: ...@@ -57,4 +59,3 @@ Example::
(0.25, 0.5, 0.4) (0.25, 0.5, 0.4)
>>> colorsys.hsv_to_rgb(0.25, 0.5, 0.4) >>> colorsys.hsv_to_rgb(0.25, 0.5, 0.4)
(0.3, 0.4, 0.2) (0.3, 0.4, 0.2)
...@@ -43,6 +43,9 @@ fine-tuning parameters. ...@@ -43,6 +43,9 @@ fine-tuning parameters.
second edition of the book no longer covers Python at all, but the first second edition of the book no longer covers Python at all, but the first
edition covered writing good regular expression patterns in great detail. edition covered writing good regular expression patterns in great detail.
`Kodos <http://kodos.sf.net/>`_
is a graphical regular expression debugger written in Python.
.. _re-syntax: .. _re-syntax:
......
...@@ -152,6 +152,24 @@ The module defines the following user-callable functions: ...@@ -152,6 +152,24 @@ The module defines the following user-callable functions:
Use of this function may introduce a security hole in your program. Use of this function may introduce a security hole in your program.
By the time you get around to doing anything with the file name it By the time you get around to doing anything with the file name it
returns, someone else may have beaten you to the punch. returns, someone else may have beaten you to the punch.
:func:`mktemp` usage can be replaced easily with
:func:`NamedTemporaryFile`, passing it the `delete=False` parameter::
>>> f = NamedTemporaryFile(delete=False)
>>> print f.name
>>> f.write("Hello World!\n")
>>> f.close()
>>> os.unlink(f.name)
>>> f = NamedTemporaryFile(delete=False)
>>> f
<open file '<fdopen>', mode 'w+b' at 0x384698>
>>> f.name
'/var/folders/5q/5qTPn6xq2RaWqk+1Ytw3-U+++TI/-Tmp-/tmpG7V1Y0'
>>> f.write("Hello World!\n")
>>> f.close()
>>> os.unlink(f.name)
>>> os.path.exists(f.name)
False
The module uses two global variables that tell it how to construct a The module uses two global variables that tell it how to construct a
temporary name. They are initialized at the first call to any of the temporary name. They are initialized at the first call to any of the
......
...@@ -106,6 +106,13 @@ In most cases Python programmers do not use this facility since it introduces ...@@ -106,6 +106,13 @@ In most cases Python programmers do not use this facility since it introduces
an unknown set of names into the interpreter, possibly hiding some things an unknown set of names into the interpreter, possibly hiding some things
you have already defined. you have already defined.
.. note::
For efficiency reasons, each module is only imported once per interpreter
session. Therefore, if you change your modules, you must restart the
interpreter -- or, if it's just one module you want to test interactively,
use :func:`reload`, e.g. ``reload('modulename')``.
.. _tut-modulesasscripts: .. _tut-modulesasscripts:
......
...@@ -40,25 +40,26 @@ ...@@ -40,25 +40,26 @@
* Credit the author of a patch or bugfix. Just the name is * Credit the author of a patch or bugfix. Just the name is
sufficient; the e-mail address isn't necessary. sufficient; the e-mail address isn't necessary.
* It's helpful to add the bug/patch number in an parenthetical * It's helpful to add the bug/patch number in a parenthetical comment.
XXX Describe the transmogrify() function added to the socket XXX Describe the transmogrify() function added to the socket
module. module.
(Contributed by P.Y. Developer; :issue:`12345`.) (Contributed by P.Y. Developer; :issue:`12345`.)
This saves the maintainer the effort of going through the SVN logs This saves the maintainer some effort going through the SVN logs
when researching a change. when researching a change.
This article explains the new features in Python 2.6. No release date for This article explains the new features in Python 2.6. The release
Python 2.6 has been set; it will probably be released in mid 2008. schedule is described in :pep:`361`; currently the final release is
scheduled for September 3 2008.
This article doesn't attempt to provide a complete specification of This article doesn't attempt to provide a complete specification of
the new features, but instead provides a convenient overview. For the new features, but instead provides a convenient overview. For
full details, you should refer to the documentation for Python 2.6. If full details, you should refer to the documentation for Python 2.6. If
you want to understand the complete implementation and design you want to understand the rationale for the design and
rationale, refer to the PEP for a particular new feature. For smaller implementation, refer to the PEP for a particular new feature.
changes, this edition of "What's New in Python" links to the bug/patch Whenever possible, "What's New in Python" links to the bug/patch item
item for each change whenever possible. for each change.
.. Compare with previous release in 2 - 3 sentences here. .. Compare with previous release in 2 - 3 sentences here.
add hyperlink when the documentation becomes available online. add hyperlink when the documentation becomes available online.
...@@ -481,24 +482,41 @@ can now be used in scripts running from inside a package. ...@@ -481,24 +482,41 @@ can now be used in scripts running from inside a package.
.. ====================================================================== .. ======================================================================
.. :: .. _pep-0370:
.. _pep-0370: PEP 370: Per-user ``site-packages`` Directory
=====================================================
When you run Python, the module search path ``sys.modules`` usually
includes a directory whose path ends in ``"site-packages"``. This
directory is intended to hold locally-installed packages available to
all users on a machine or using a particular site installation.
Python 2.6 introduces a convention for user-specific site directories.
The directory varies depending on the platform:
* Unix and MacOS: :file:`~/.local/`
* Windows: :file:`%APPDATA%/Python`
PEP 370: XXX Within this directory, there will be version-specific subdirectories,
===================================================== such as :file:`lib/python2.6/site-packages` on Unix/MacOS and
:file:`Python26/site-packages` on Windows.
When you run Python, the module search page ``sys.modules`` usually If you don't like the default directory, it can be overridden by an
includes a directory whose path ends in ``"site-packages"``. This environment variable. :envvar:`PYTHONUSERBASE` sets the root
directory is intended to hold locally-installed packages available to directory used for all Python versions supporting this feature. On
all users on a machine or using a particular site installation. Windows, the directory for application-specific data can be changed by
setting the :envvar:`APPDATA` environment variable. You can also
modify the :file:`site.py` file for your Python installation.
Python 2.6 introduces a convention for user-specific site directories. The feature can be disabled entirely by running Python with the
:option:`-s` option or setting the :envvar:`PYTHONNOUSERSITE`
environment variable.
.. seealso:: .. seealso::
:pep:`370` - XXX :pep:`370` - Per-user ``site-packages`` Directory
PEP written by XXX; implemented by Christian Heimes. PEP written and implemented by Christian Heimes.
.. ====================================================================== .. ======================================================================
...@@ -1450,6 +1468,12 @@ fixes. Here's a partial list of the most notable changes, sorted alphabetically ...@@ -1450,6 +1468,12 @@ fixes. Here's a partial list of the most notable changes, sorted alphabetically
by module name. Consult the :file:`Misc/NEWS` file in the source tree for a more by module name. Consult the :file:`Misc/NEWS` file in the source tree for a more
complete list of changes, or look through the CVS logs for all the details. complete list of changes, or look through the CVS logs for all the details.
* (3.0-warning mode) The :mod:`audiodev` module is being deprecated,
and has been removed from Python 3.0, so importing it now triggers a
warning. The module hasn't been maintained for several versions,
and is written against an outdated sound interface for SunOS and
IRIX.
* The :mod:`bsddb.dbshelve` module now uses the highest pickling protocol * The :mod:`bsddb.dbshelve` module now uses the highest pickling protocol
available, instead of restricting itself to protocol 1. available, instead of restricting itself to protocol 1.
(Contributed by W. Barnes; :issue:`1551443`.) (Contributed by W. Barnes; :issue:`1551443`.)
...@@ -2104,7 +2128,12 @@ complete list of changes, or look through the CVS logs for all the details. ...@@ -2104,7 +2128,12 @@ complete list of changes, or look through the CVS logs for all the details.
(Added by Facundo Batista.) (Added by Facundo Batista.)
* The XML-RPC classes :class:`SimpleXMLRPCServer` and :class:`DocXMLRPCServer` * The :mod:`warnings` module's :func:`formatwarning` and :func:`showwarning`
gained an optional *line* argument that can be used to supply the
line of source code. (Added as part of :issue:`1631171`, which re-implemented
part of the :mod:`warnings` module in C code.)
* The XML-RPC :class:`SimpleXMLRPCServer` and :class:`DocXMLRPCServer`
classes can now be prevented from immediately opening and binding to classes can now be prevented from immediately opening and binding to
their socket by passing True as the ``bind_and_activate`` their socket by passing True as the ``bind_and_activate``
constructor parameter. This can be used to modify the instance's constructor parameter. This can be used to modify the instance's
...@@ -2144,6 +2173,9 @@ complete list of changes, or look through the CVS logs for all the details. ...@@ -2144,6 +2173,9 @@ complete list of changes, or look through the CVS logs for all the details.
(Contributed by Alan McIntyre; :issue:`467924`.) (Contributed by Alan McIntyre; :issue:`467924`.)
Also, :mod:`zipfile` now supports using Unicode filenames
for archived files. (Contributed by Alexey Borzenkov; :issue:`1734346`.)
.. ====================================================================== .. ======================================================================
.. whole new modules get described in subsections here .. whole new modules get described in subsections here
......
...@@ -7,6 +7,7 @@ extensions ASAP).""" ...@@ -7,6 +7,7 @@ extensions ASAP)."""
__revision__ = "$Id$" __revision__ = "$Id$"
import sys, os, re import sys, os, re
from site import USER_BASE, USER_SITE
from distutils.core import Command from distutils.core import Command
from distutils.errors import * from distutils.errors import *
from distutils.sysconfig import customize_compiler, get_python_version from distutils.sysconfig import customize_compiler, get_python_version
...@@ -90,9 +91,11 @@ class build_ext(Command): ...@@ -90,9 +91,11 @@ class build_ext(Command):
"list of SWIG command line options"), "list of SWIG command line options"),
('swig=', None, ('swig=', None,
"path to the SWIG executable"), "path to the SWIG executable"),
('user', None,
"add user include, library and rpath"),
] ]
boolean_options = ['inplace', 'debug', 'force', 'swig-cpp'] boolean_options = ['inplace', 'debug', 'force', 'swig-cpp', 'user']
help_options = [ help_options = [
('help-compiler', None, ('help-compiler', None,
...@@ -120,6 +123,7 @@ class build_ext(Command): ...@@ -120,6 +123,7 @@ class build_ext(Command):
self.swig = None self.swig = None
self.swig_cpp = None self.swig_cpp = None
self.swig_opts = None self.swig_opts = None
self.user = None
def finalize_options(self): def finalize_options(self):
from distutils import sysconfig from distutils import sysconfig
...@@ -253,6 +257,16 @@ class build_ext(Command): ...@@ -253,6 +257,16 @@ class build_ext(Command):
else: else:
self.swig_opts = self.swig_opts.split(' ') self.swig_opts = self.swig_opts.split(' ')
# Finally add the user include and library directories if requested
if self.user:
user_include = os.path.join(USER_BASE, "include")
user_lib = os.path.join(USER_BASE, "lib")
if os.path.isdir(user_include):
self.include_dirs.append(user_include)
if os.path.isdir(user_lib):
self.library_dirs.append(user_lib)
self.rpath.append(user_lib)
def run(self): def run(self):
from distutils.ccompiler import new_compiler from distutils.ccompiler import new_compiler
......
...@@ -527,7 +527,7 @@ def _script(): ...@@ -527,7 +527,7 @@ def _script():
Exit codes with --user-base or --user-site: Exit codes with --user-base or --user-site:
0 - user site directory is enabled 0 - user site directory is enabled
1 - user site diretory is disabled by user 1 - user site directory is disabled by user
2 - uses site directory is disabled by super user 2 - uses site directory is disabled by super user
or for security reasons or for security reasons
>2 - unknown error >2 - unknown error
......
...@@ -369,6 +369,24 @@ class MathTests(unittest.TestCase): ...@@ -369,6 +369,24 @@ class MathTests(unittest.TestCase):
self.assertEquals(math.ldexp(NINF, -213), NINF) self.assertEquals(math.ldexp(NINF, -213), NINF)
self.assert_(math.isnan(math.ldexp(NAN, 0))) self.assert_(math.isnan(math.ldexp(NAN, 0)))
# large second argument
for n in [10**5, 10**10, 10**20, 10**40]:
self.assertEquals(math.ldexp(INF, -n), INF)
self.assertEquals(math.ldexp(NINF, -n), NINF)
self.assertEquals(math.ldexp(1., -n), 0.)
self.assertEquals(math.ldexp(-1., -n), -0.)
self.assertEquals(math.ldexp(0., -n), 0.)
self.assertEquals(math.ldexp(-0., -n), -0.)
self.assert_(math.isnan(math.ldexp(NAN, -n)))
self.assertRaises(OverflowError, math.ldexp, 1., n)
self.assertRaises(OverflowError, math.ldexp, -1., n)
self.assertEquals(math.ldexp(0., n), 0.)
self.assertEquals(math.ldexp(-0., n), -0.)
self.assertEquals(math.ldexp(INF, n), INF)
self.assertEquals(math.ldexp(NINF, n), NINF)
self.assert_(math.isnan(math.ldexp(NAN, n)))
def testLog(self): def testLog(self):
self.assertRaises(TypeError, math.log) self.assertRaises(TypeError, math.log)
self.ftest('log(1/e)', math.log(1/math.e), -1) self.ftest('log(1/e)', math.log(1/math.e), -1)
......
...@@ -30,6 +30,11 @@ Library ...@@ -30,6 +30,11 @@ Library
- The ConfigParser module has been renamed to configparser. - The ConfigParser module has been renamed to configparser.
- Issue #2487: change the semantics of math.ldexp(x, n) when n is too
large to fit in a C long. ldexp(x, n) now returns a zero (with
suitable sign) if n is large and negative; previously, it raised
OverflowError.
- Issue 2865: webbrowser.open() works again in a KDE environment. - Issue 2865: webbrowser.open() works again in a KDE environment.
- The multifile module has been removed. - The multifile module has been removed.
......
...@@ -425,23 +425,65 @@ static PyObject * ...@@ -425,23 +425,65 @@ static PyObject *
math_ldexp(PyObject *self, PyObject *args) math_ldexp(PyObject *self, PyObject *args)
{ {
double x, r; double x, r;
int exp; PyObject *oexp;
if (! PyArg_ParseTuple(args, "di:ldexp", &x, &exp)) long exp;
if (! PyArg_ParseTuple(args, "dO:ldexp", &x, &oexp))
return NULL; return NULL;
errno = 0;
PyFPE_START_PROTECT("in math_ldexp", return 0) if (PyLong_Check(oexp)) {
r = ldexp(x, exp); /* on overflow, replace exponent with either LONG_MAX
PyFPE_END_PROTECT(r) or LONG_MIN, depending on the sign. */
if (Py_IS_FINITE(x) && Py_IS_INFINITY(r)) exp = PyLong_AsLong(oexp);
if (exp == -1 && PyErr_Occurred()) {
if (PyErr_ExceptionMatches(PyExc_OverflowError)) {
if (Py_SIZE(oexp) < 0) {
exp = LONG_MIN;
}
else {
exp = LONG_MAX;
}
PyErr_Clear();
}
else {
/* propagate any unexpected exception */
return NULL;
}
}
}
else if (PyLong_Check(oexp)) {
exp = PyLong_AS_LONG(oexp);
}
else {
PyErr_SetString(PyExc_TypeError,
"Expected an int or long as second argument "
"to ldexp.");
return NULL;
}
if (x == 0. || !Py_IS_FINITE(x)) {
/* NaNs, zeros and infinities are returned unchanged */
r = x;
errno = 0;
} else if (exp > INT_MAX) {
/* overflow */
r = copysign(Py_HUGE_VAL, x);
errno = ERANGE; errno = ERANGE;
/* Windows MSVC8 sets errno = EDOM on ldexp(NaN, i); } else if (exp < INT_MIN) {
we unset it to avoid raising a ValueError here. */ /* underflow to +-0 */
if (errno == EDOM) r = copysign(0., x);
errno = 0; errno = 0;
} else {
errno = 0;
PyFPE_START_PROTECT("in math_ldexp", return 0);
r = ldexp(x, (int)exp);
PyFPE_END_PROTECT(r);
if (Py_IS_INFINITY(r))
errno = ERANGE;
}
if (errno && is_error(r)) if (errno && is_error(r))
return NULL; return NULL;
else return PyFloat_FromDouble(r);
return PyFloat_FromDouble(r);
} }
PyDoc_STRVAR(math_ldexp_doc, PyDoc_STRVAR(math_ldexp_doc,
......
...@@ -112,6 +112,12 @@ pythondll_uuid = { ...@@ -112,6 +112,12 @@ pythondll_uuid = {
"30":"{6953bc3b-6768-4291-8410-7914ce6e2ca8}", "30":"{6953bc3b-6768-4291-8410-7914ce6e2ca8}",
} [major+minor] } [major+minor]
# Compute the name that Sphinx gives to the docfile
docfile = ""
if level < 0xf:
docfile = '%x%s' % (level, serial)
docfile = 'python%s%s%s.chm' % (major, minor, docfile)
# Build the mingw import library, libpythonXY.a # Build the mingw import library, libpythonXY.a
# This requires 'nm' and 'dlltool' executables on your PATH # This requires 'nm' and 'dlltool' executables on your PATH
def build_mingw_lib(lib_file, def_file, dll_file, mingw_lib): def build_mingw_lib(lib_file, def_file, dll_file, mingw_lib):
...@@ -1073,8 +1079,8 @@ def add_files(db): ...@@ -1073,8 +1079,8 @@ def add_files(db):
# Add documentation # Add documentation
htmlfiles.set_current() htmlfiles.set_current()
lib = PyDirectory(db, cab, root, "Doc", "Doc", "DOC|Doc") lib = PyDirectory(db, cab, root, "Doc", "Doc", "DOC|Doc")
lib.start_component("documentation", keyfile="Python%s%s.chm" % (major,minor)) lib.start_component("documentation", keyfile=docfile)
lib.add_file("Python%s%s.chm" % (major, minor), src="build/htmlhelp/pydoc.chm") lib.add_file(docfile, src="build/htmlhelp/"+docfile)
cab.commit(db) cab.commit(db)
...@@ -1182,7 +1188,7 @@ def add_registry(db): ...@@ -1182,7 +1188,7 @@ def add_registry(db):
("PythonPath", -1, prefix+r"\PythonPath", "", ("PythonPath", -1, prefix+r"\PythonPath", "",
r"[TARGETDIR]Lib;[TARGETDIR]DLLs;[TARGETDIR]Lib\lib-tk", "REGISTRY"), r"[TARGETDIR]Lib;[TARGETDIR]DLLs;[TARGETDIR]Lib\lib-tk", "REGISTRY"),
("Documentation", -1, prefix+r"\Help\Main Python Documentation", "", ("Documentation", -1, prefix+r"\Help\Main Python Documentation", "",
r"[TARGETDIR]Doc\Python%s%s.chm" % (major, minor), "REGISTRY.doc"), "[TARGETDIR]Doc\\"+docfile , "REGISTRY.doc"),
("Modules", -1, prefix+r"\Modules", "+", None, "REGISTRY"), ("Modules", -1, prefix+r"\Modules", "+", None, "REGISTRY"),
("AppPaths", -1, r"Software\Microsoft\Windows\CurrentVersion\App Paths\Python.exe", ("AppPaths", -1, r"Software\Microsoft\Windows\CurrentVersion\App Paths\Python.exe",
"", r"[TARGETDIR]Python.exe", "REGISTRY.def") "", r"[TARGETDIR]Python.exe", "REGISTRY.def")
...@@ -1212,7 +1218,7 @@ def add_registry(db): ...@@ -1212,7 +1218,7 @@ def add_registry(db):
# htmlfiles.id, None, None, None, None, None, None, None), # htmlfiles.id, None, None, None, None, None, None, None),
## Non-advertised shortcuts: must be associated with a registry component ## Non-advertised shortcuts: must be associated with a registry component
("Manual", "MenuDir", "MANUAL|Python Manuals", "REGISTRY.doc", ("Manual", "MenuDir", "MANUAL|Python Manuals", "REGISTRY.doc",
"[#Python%s%s.chm]" % (major,minor), None, "[#%s]" % docfile, None,
None, None, None, None, None, None), None, None, None, None, None, None),
("Uninstall", "MenuDir", "UNINST|Uninstall Python", "REGISTRY", ("Uninstall", "MenuDir", "UNINST|Uninstall Python", "REGISTRY",
SystemFolderName+"msiexec", "/x%s" % product_code, SystemFolderName+"msiexec", "/x%s" % product_code,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment