summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Doc/distutils/apiref.rst36
-rw-r--r--Doc/extending/embedding.rst9
-rw-r--r--Doc/library/archiving.rst3
-rw-r--r--Doc/library/bz2.rst3
-rw-r--r--Doc/library/gzip.rst3
-rw-r--r--Doc/library/json.rst4
-rw-r--r--Doc/library/shutil.rst10
-rw-r--r--Doc/library/tarfile.rst3
-rw-r--r--Doc/library/zipfile.rst3
-rw-r--r--Doc/library/zlib.rst4
-rw-r--r--Lib/distutils/command/bdist_rpm.py12
-rw-r--r--Lib/distutils/tests/test_bdist_rpm.py9
-rw-r--r--Lib/shutil.py1
-rw-r--r--Misc/ACKS1
-rw-r--r--Misc/NEWS2
15 files changed, 56 insertions, 47 deletions
diff --git a/Doc/distutils/apiref.rst b/Doc/distutils/apiref.rst
index 97f1bed..71702e5 100644
--- a/Doc/distutils/apiref.rst
+++ b/Doc/distutils/apiref.rst
@@ -449,7 +449,9 @@ This module provides the following functions.
Define a preprocessor macro for all compilations driven by this compiler object.
The optional parameter *value* should be a string; if it is not supplied, then
the macro will be defined without an explicit value and the exact outcome
- depends on the compiler used (XXX true? does ANSI say anything about this?)
+ depends on the compiler used.
+
+ .. XXX true? does ANSI say anything about this?
.. method:: CCompiler.undefine_macro(name)
@@ -603,7 +605,9 @@ This module provides the following functions.
*output_libname* should be a library name, not a filename; the filename will be
inferred from the library name. *output_dir* is the directory where the library
- file will be put. XXX defaults to what?
+ file will be put.
+
+ .. XXX defaults to what?
*debug* is a boolean; if true, debugging information will be included in the
library (note that on most platforms, it is the compile step where this matters:
@@ -723,30 +727,29 @@ This module provides the following functions.
Invokes :func:`distutils.util.execute` This method invokes a Python function
*func* with the given arguments *args*, after logging and taking into account
- the *dry_run* flag. XXX see also.
+ the *dry_run* flag.
.. method:: CCompiler.spawn(cmd)
Invokes :func:`distutils.util.spawn`. This invokes an external process to run
- the given command. XXX see also.
+ the given command.
.. method:: CCompiler.mkpath(name[, mode=511])
Invokes :func:`distutils.dir_util.mkpath`. This creates a directory and any
- missing ancestor directories. XXX see also.
+ missing ancestor directories.
.. method:: CCompiler.move_file(src, dst)
- Invokes :meth:`distutils.file_util.move_file`. Renames *src* to *dst*. XXX see
- also.
+ Invokes :meth:`distutils.file_util.move_file`. Renames *src* to *dst*.
.. method:: CCompiler.announce(msg[, level=1])
- Write a message using :func:`distutils.log.debug`. XXX see also.
+ Write a message using :func:`distutils.log.debug`.
.. method:: CCompiler.warn(msg)
@@ -874,8 +877,6 @@ tarballs or zipfiles.
prefix of all files and directories in the archive. *root_dir* and *base_dir*
both default to the current directory. Returns the name of the archive file.
- .. XXX This should be changed to support bz2 files.
-
.. function:: make_tarball(base_name, base_dir[, compress='gzip', verbose=0, dry_run=0])
@@ -887,8 +888,6 @@ tarballs or zipfiles.
possibly plus the appropriate compression extension (:file:`.gz`, :file:`.bz2`
or :file:`.Z`). Return the output filename.
- .. XXX This should be replaced with calls to the :mod:`tarfile` module.
-
.. function:: make_zipfile(base_name, base_dir[, verbose=0, dry_run=0])
@@ -1000,8 +999,6 @@ directories.
errors are ignored (apart from being reported to ``sys.stdout`` if *verbose* is
true).
-.. XXX Some of this could be replaced with the shutil module?
-
:mod:`distutils.file_util` --- Single file operations
=====================================================
@@ -1115,8 +1112,6 @@ other utility module.
* ``macosx-10.6-intel``
- .. % XXX isn't this also provided by some other non-distutils module?
-
.. function:: convert_path(pathname)
@@ -1320,8 +1315,6 @@ provides the following additional features:
the "negative alias" of :option:`--verbose`, then :option:`--quiet` on the
command line sets *verbose* to false.
-.. XXX Should be replaced with optparse
-
.. function:: fancy_getopt(options, negative_opt, object, args)
Wrapper function. *options* is a list of ``(long_option, short_option,
@@ -1337,9 +1330,6 @@ provides the following additional features:
Wraps *text* to less than *width* wide.
- .. XXX Should be replaced with :mod:`textwrap` (which is available in Python
- 2.3 and later).
-
.. class:: FancyGetopt([option_table=None])
@@ -1402,10 +1392,6 @@ filesystem and building lists of files.
:synopsis: A simple logging mechanism, 282-style
-.. XXX Should be replaced with standard :mod:`logging` module.
-
-
-
:mod:`distutils.spawn` --- Spawn a sub-process
==============================================
diff --git a/Doc/extending/embedding.rst b/Doc/extending/embedding.rst
index ec93a16..3143c99 100644
--- a/Doc/extending/embedding.rst
+++ b/Doc/extending/embedding.rst
@@ -271,7 +271,7 @@ it.
To find out the required compiler and linker flags, you can execute the
:file:`python{X.Y}-config` script which is generated as part of the
-installation process (a generic :file:`python3-config` script is also
+installation process (a :file:`python3-config` script may also be
available). This script has several options, of which the following will
be directly useful to you:
@@ -294,9 +294,10 @@ be directly useful to you:
example.
If this procedure doesn't work for you (it is not guaranteed to work for
-all Unix-like platforms; however, we welcome bug reports at
-http://bugs.python.org), you will have to read your system's documentation
-about dynamic linking and/or examine Python's Makefile and compilation
+all Unix-like platforms; however, we welcome :ref:`bug reports <reporting-bugs>`)
+you will have to read your system's documentation about dynamic linking and/or
+examine Python's :file:`Makefile` (use :func:`sysconfig.get_makefile_filename`
+to find its location) and compilation
options. In this case, the :mod:`sysconfig` module is a useful tool to
programmatically extract the configuration values that you will want to
combine together::
diff --git a/Doc/library/archiving.rst b/Doc/library/archiving.rst
index b7d400c..c928494 100644
--- a/Doc/library/archiving.rst
+++ b/Doc/library/archiving.rst
@@ -6,7 +6,8 @@ Data Compression and Archiving
The modules described in this chapter support data compression with the zlib,
gzip, bzip2 and lzma algorithms, and the creation of ZIP- and tar-format
-archives.
+archives. See also :ref:`archiving-operations` provided by the :mod:`shutil`
+module.
.. toctree::
diff --git a/Doc/library/bz2.rst b/Doc/library/bz2.rst
index 7275e12..9577f31 100644
--- a/Doc/library/bz2.rst
+++ b/Doc/library/bz2.rst
@@ -12,9 +12,6 @@
This module provides a comprehensive interface for compressing and
decompressing data using the bzip2 compression algorithm.
-For related file formats, see the :mod:`gzip`, :mod:`lzma`, :mod:`zipfile`, and
-:mod:`tarfile` modules.
-
The :mod:`bz2` module contains:
* The :class:`BZ2File` class for reading and writing compressed files.
diff --git a/Doc/library/gzip.rst b/Doc/library/gzip.rst
index 4491acc..82c9522 100644
--- a/Doc/library/gzip.rst
+++ b/Doc/library/gzip.rst
@@ -21,9 +21,6 @@ Note that additional file formats which can be decompressed by the
:program:`gzip` and :program:`gunzip` programs, such as those produced by
:program:`compress` and :program:`pack`, are not supported by this module.
-For related file formats, see the :mod:`bz2`, :mod:`lzma`, :mod:`zipfile`, and
-:mod:`tarfile` modules.
-
The module defines the following items:
diff --git a/Doc/library/json.rst b/Doc/library/json.rst
index 4ee17f2..a791259 100644
--- a/Doc/library/json.rst
+++ b/Doc/library/json.rst
@@ -125,6 +125,10 @@ Basic Usage
:class:`bytes` objects. Therefore, ``fp.write()`` must support :class:`str`
input.
+ If *ensure_ascii* is ``True`` (the default), the output is guaranteed to
+ have all incoming non-ASCII characters escaped. If *ensure_ascii* is
+ ``False``, these characters will be output as-is.
+
If *check_circular* is ``False`` (default: ``True``), then the circular
reference check for container types will be skipped and a circular reference
will result in an :exc:`OverflowError` (or worse).
diff --git a/Doc/library/shutil.rst b/Doc/library/shutil.rst
index 9e8784b..77ce6b0 100644
--- a/Doc/library/shutil.rst
+++ b/Doc/library/shutil.rst
@@ -31,6 +31,8 @@ copying and removal. For operations on individual files, see also the
are not copied.
+.. _file-operations:
+
Directory and files operations
------------------------------
@@ -234,7 +236,7 @@ Directory and files operations
(*srcname*, *dstname*, *exception*).
-.. _shutil-example:
+.. _shutil-copytree-example:
copytree example
::::::::::::::::
@@ -301,6 +303,9 @@ Another example that uses the *ignore* argument to add a logging call::
Archiving operations
--------------------
+High-level utilities to create and read compressed and archived files are also
+provided. They rely on the :mod:`zipfile` and :mod:`tarfile` modules.
+
.. function:: make_archive(base_name, format, [root_dir, [base_dir, [verbose, [dry_run, [owner, [group, [logger]]]]]]])
Create an archive file (such as zip or tar) and return its name.
@@ -428,6 +433,7 @@ Archiving operations
.. versionadded:: 3.2
+.. _shutil-archiving-example:
Archiving example
:::::::::::::::::
@@ -453,5 +459,3 @@ The resulting archive contains::
-rw------- tarek/staff 1675 2008-06-09 13:26:54 ./id_rsa
-rw-r--r-- tarek/staff 397 2008-06-09 13:26:54 ./id_rsa.pub
-rw-r--r-- tarek/staff 37192 2010-02-06 18:23:10 ./known_hosts
-
-
diff --git a/Doc/library/tarfile.rst b/Doc/library/tarfile.rst
index 4a9db8e..92e9df7 100644
--- a/Doc/library/tarfile.rst
+++ b/Doc/library/tarfile.rst
@@ -14,7 +14,8 @@
The :mod:`tarfile` module makes it possible to read and write tar
archives, including those using gzip, bz2 and lzma compression.
-(:file:`.zip` files can be read and written using the :mod:`zipfile` module.)
+Use the :mod:`zipfile` module to read or write :file:`.zip` files, or the
+higher-level functions in :ref:`shutil <archiving-operations>`.
Some facts and figures:
diff --git a/Doc/library/zipfile.rst b/Doc/library/zipfile.rst
index c3e13ed..bcec134 100644
--- a/Doc/library/zipfile.rst
+++ b/Doc/library/zipfile.rst
@@ -23,9 +23,6 @@ decryption of encrypted files in ZIP archives, but it currently cannot
create an encrypted file. Decryption is extremely slow as it is
implemented in native Python rather than C.
-For related file formats, see the :mod:`bz2`, :mod:`gzip`, :mod:`lzma`, and
-:mod:`tarfile` modules.
-
The module defines the following items:
.. exception:: BadZipFile
diff --git a/Doc/library/zlib.rst b/Doc/library/zlib.rst
index 7ad3624..1e9a2bc 100644
--- a/Doc/library/zlib.rst
+++ b/Doc/library/zlib.rst
@@ -18,9 +18,7 @@ order. This documentation doesn't attempt to cover all of the permutations;
consult the zlib manual at http://www.zlib.net/manual.html for authoritative
information.
-For reading and writing ``.gz`` files see the :mod:`gzip` module. For other
-related file formats, see the :mod:`bz2`, :mod:`lzma`, :mod:`zipfile`, and
-:mod:`tarfile` modules.
+For reading and writing ``.gz`` files see the :mod:`gzip` module.
The available exception and functions in this module are:
diff --git a/Lib/distutils/command/bdist_rpm.py b/Lib/distutils/command/bdist_rpm.py
index 678e118..357eaa5 100644
--- a/Lib/distutils/command/bdist_rpm.py
+++ b/Lib/distutils/command/bdist_rpm.py
@@ -365,16 +365,28 @@ class bdist_rpm(Command):
self.spawn(rpm_cmd)
if not self.dry_run:
+ if self.distribution.has_ext_modules():
+ pyversion = get_python_version()
+ else:
+ pyversion = 'any'
+
if not self.binary_only:
srpm = os.path.join(rpm_dir['SRPMS'], source_rpm)
assert(os.path.exists(srpm))
self.move_file(srpm, self.dist_dir)
+ filename = os.path.join(self.dist_dir, source_rpm)
+ self.distribution.dist_files.append(
+ ('bdist_rpm', pyversion, filename))
if not self.source_only:
for rpm in binary_rpms:
rpm = os.path.join(rpm_dir['RPMS'], rpm)
if os.path.exists(rpm):
self.move_file(rpm, self.dist_dir)
+ filename = os.path.join(self.dist_dir,
+ os.path.basename(rpm))
+ self.distribution.dist_files.append(
+ ('bdist_rpm', pyversion, filename))
def _dist_path(self, path):
return os.path.join(self.dist_dir, os.path.basename(path))
diff --git a/Lib/distutils/tests/test_bdist_rpm.py b/Lib/distutils/tests/test_bdist_rpm.py
index 9b0639a..b090b79 100644
--- a/Lib/distutils/tests/test_bdist_rpm.py
+++ b/Lib/distutils/tests/test_bdist_rpm.py
@@ -83,6 +83,10 @@ class BuildRpmTestCase(support.TempdirManager,
dist_created = os.listdir(os.path.join(pkg_dir, 'dist'))
self.assertTrue('foo-0.1-1.noarch.rpm' in dist_created)
+ # bug #2945: upload ignores bdist_rpm files
+ self.assertIn(('bdist_rpm', 'any', 'dist/foo-0.1-1.src.rpm'), dist.dist_files)
+ self.assertIn(('bdist_rpm', 'any', 'dist/foo-0.1-1.noarch.rpm'), dist.dist_files)
+
def test_no_optimize_flag(self):
# XXX I am unable yet to make this test work without
@@ -122,6 +126,11 @@ class BuildRpmTestCase(support.TempdirManager,
dist_created = os.listdir(os.path.join(pkg_dir, 'dist'))
self.assertTrue('foo-0.1-1.noarch.rpm' in dist_created)
+
+ # bug #2945: upload ignores bdist_rpm files
+ self.assertIn(('bdist_rpm', 'any', 'dist/foo-0.1-1.src.rpm'), dist.dist_files)
+ self.assertIn(('bdist_rpm', 'any', 'dist/foo-0.1-1.noarch.rpm'), dist.dist_files)
+
os.remove(os.path.join(pkg_dir, 'dist', 'foo-0.1-1.noarch.rpm'))
def test_suite():
diff --git a/Lib/shutil.py b/Lib/shutil.py
index 5f69fb7..db80faf 100644
--- a/Lib/shutil.py
+++ b/Lib/shutil.py
@@ -552,7 +552,6 @@ def _make_zipfile(base_name, base_dir, verbose=0, dry_run=0, logger=None):
_ARCHIVE_FORMATS = {
'gztar': (_make_tarball, [('compress', 'gzip')], "gzip'ed tar-file"),
- 'bztar': (_make_tarball, [('compress', 'bzip2')], "bzip2'ed tar-file"),
'tar': (_make_tarball, [('compress', None)], "uncompressed tar file"),
'zip': (_make_zipfile, [], "ZIP file")
}
diff --git a/Misc/ACKS b/Misc/ACKS
index 9f66255..b38673b 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -836,6 +836,7 @@ Vlad Riscutia
Juan M. Bello Rivas
Davide Rizzo
Anthony Roach
+Carl Robben
Mark Roberts
Andy Robinson
Jim Robinson
diff --git a/Misc/NEWS b/Misc/NEWS
index 920974c..4709828 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -466,6 +466,8 @@ Core and Builtins
Library
-------
+- Issue #2945: Make the distutils upload command aware of bdist_rpm products.
+
- Issue #13712: pysetup create should not convert package_data to extra_files.
- Issue #11805: package_data in setup.cfg should allow more than one value.