Commit 9deedf69 authored by Éric Araujo's avatar Éric Araujo

Re-apply distutils2 changes lost before the merge of packaging.

wrap_text was removed in favor of standard textwrap but the removal of the
function was lost in a bad merge; a change in sdist mysteriously disappeared.
parent a94bdee2
"""Create a source distribution.""" """Create a source distribution."""
import os import os
import sys
import re import re
import sys
from io import StringIO from io import StringIO
from glob import glob
from shutil import get_archive_formats, rmtree from shutil import get_archive_formats, rmtree
from packaging import logger from packaging import logger
...@@ -203,45 +202,14 @@ class sdist(Command): ...@@ -203,45 +202,14 @@ class sdist(Command):
def add_defaults(self): def add_defaults(self):
"""Add all the default files to self.filelist: """Add all the default files to self.filelist:
- README or README.txt
- test/test*.py
- all pure Python modules mentioned in setup script - all pure Python modules mentioned in setup script
- all files pointed by package_data (build_py) - all files pointed by package_data (build_py)
- all files defined in data_files. - all files defined in data_files.
- all files defined as scripts. - all files defined as scripts.
- all C sources listed as part of extensions or C libraries - all C sources listed as part of extensions or C libraries
in the setup script (doesn't catch C headers!) in the setup script (doesn't catch C headers!)
Warns if (README or README.txt) or setup.py are missing; everything Everything is optional.
else is optional.
""" """
standards = [('README', 'README.txt')]
for fn in standards:
if isinstance(fn, tuple):
alts = fn
got_it = False
for fn in alts:
if os.path.exists(fn):
got_it = True
self.filelist.append(fn)
break
if not got_it:
logger.warning(
'%s: standard file not found: should have one of %s',
self.get_command_name(), ', '.join(alts))
else:
if os.path.exists(fn):
self.filelist.append(fn)
else:
logger.warning('%s: standard file %r not found',
self.get_command_name(), fn)
optional = ['test/test*.py', 'setup.cfg']
for pattern in optional:
files = [f for f in glob(pattern) if os.path.isfile(f)]
if files:
self.filelist.extend(files)
for cmd_name in get_command_names(): for cmd_name in get_command_names():
try: try:
cmd_obj = self.get_finalized_command(cmd_name) cmd_obj = self.get_finalized_command(cmd_name)
......
...@@ -13,7 +13,6 @@ It is used under the hood by the command classes. Do not use directly. ...@@ -13,7 +13,6 @@ It is used under the hood by the command classes. Do not use directly.
import getopt import getopt
import re import re
import sys import sys
import string
import textwrap import textwrap
from packaging.errors import PackagingGetoptError, PackagingArgError from packaging.errors import PackagingGetoptError, PackagingArgError
...@@ -378,68 +377,6 @@ def fancy_getopt(options, negative_opt, object, args): ...@@ -378,68 +377,6 @@ def fancy_getopt(options, negative_opt, object, args):
return parser.getopt(args, object) return parser.getopt(args, object)
WS_TRANS = str.maketrans(string.whitespace, ' ' * len(string.whitespace))
def wrap_text(text, width):
"""Split *text* into lines of no more than *width* characters each.
*text* is a str and *width* an int. Returns a list of str.
"""
if text is None:
return []
if len(text) <= width:
return [text]
text = text.expandtabs()
text = text.translate(WS_TRANS)
chunks = re.split(r'( +|-+)', text)
chunks = [_f for _f in chunks if _f] # ' - ' results in empty strings
lines = []
while chunks:
cur_line = [] # list of chunks (to-be-joined)
cur_len = 0 # length of current line
while chunks:
l = len(chunks[0])
if cur_len + l <= width: # can squeeze (at least) this chunk in
cur_line.append(chunks[0])
del chunks[0]
cur_len = cur_len + l
else: # this line is full
# drop last chunk if all space
if cur_line and cur_line[-1][0] == ' ':
del cur_line[-1]
break
if chunks: # any chunks left to process?
# if the current line is still empty, then we had a single
# chunk that's too big too fit on a line -- so we break
# down and break it up at the line width
if cur_len == 0:
cur_line.append(chunks[0][0:width])
chunks[0] = chunks[0][width:]
# all-whitespace chunks at the end of a line can be discarded
# (and we know from the re.split above that if a chunk has
# *any* whitespace, it is *all* whitespace)
if chunks[0][0] == ' ':
del chunks[0]
# and store this line in the list-of-all-lines -- as a single
# string, of course!
lines.append(''.join(cur_line))
# while chunks
return lines
class OptionDummy: class OptionDummy:
"""Dummy class just used as a place to hold command-line option """Dummy class just used as a place to hold command-line option
values as instance attributes.""" values as instance attributes."""
......
...@@ -33,7 +33,6 @@ setup(name='fake') ...@@ -33,7 +33,6 @@ setup(name='fake')
MANIFEST = """\ MANIFEST = """\
# file GENERATED by packaging, do NOT edit # file GENERATED by packaging, do NOT edit
README
inroot.txt inroot.txt
data%(sep)sdata.dt data%(sep)sdata.dt
scripts%(sep)sscript.py scripts%(sep)sscript.py
...@@ -129,7 +128,7 @@ class SDistTestCase(support.TempdirManager, ...@@ -129,7 +128,7 @@ class SDistTestCase(support.TempdirManager,
content = zip_file.namelist() content = zip_file.namelist()
# making sure everything has been pruned correctly # making sure everything has been pruned correctly
self.assertEqual(len(content), 3) self.assertEqual(len(content), 2)
@requires_zlib @requires_zlib
@unittest.skipIf(find_executable('tar') is None or @unittest.skipIf(find_executable('tar') is None or
...@@ -214,7 +213,7 @@ class SDistTestCase(support.TempdirManager, ...@@ -214,7 +213,7 @@ class SDistTestCase(support.TempdirManager,
# Making sure everything was added. This includes 9 code and data # Making sure everything was added. This includes 9 code and data
# files in addition to PKG-INFO. # files in addition to PKG-INFO.
self.assertEqual(len(content), 10) self.assertEqual(len(content), 9)
# Checking the MANIFEST # Checking the MANIFEST
with open(join(self.tmp_dir, 'MANIFEST')) as fp: with open(join(self.tmp_dir, 'MANIFEST')) as fp:
...@@ -331,7 +330,7 @@ class SDistTestCase(support.TempdirManager, ...@@ -331,7 +330,7 @@ class SDistTestCase(support.TempdirManager,
with open(cmd.manifest) as f: with open(cmd.manifest) as f:
manifest = [line.strip() for line in f.read().split('\n') manifest = [line.strip() for line in f.read().split('\n')
if line.strip() != ''] if line.strip() != '']
self.assertEqual(len(manifest), 4) self.assertEqual(len(manifest), 3)
# Adding a file # Adding a file
self.write_file((self.tmp_dir, 'somecode', 'doc2.txt'), '#') self.write_file((self.tmp_dir, 'somecode', 'doc2.txt'), '#')
...@@ -348,7 +347,7 @@ class SDistTestCase(support.TempdirManager, ...@@ -348,7 +347,7 @@ class SDistTestCase(support.TempdirManager,
if line.strip() != ''] if line.strip() != '']
# Do we have the new file in MANIFEST? # Do we have the new file in MANIFEST?
self.assertEqual(len(manifest2), 5) self.assertEqual(len(manifest2), 4)
self.assertIn('doc2.txt', manifest2[-1]) self.assertIn('doc2.txt', manifest2[-1])
@requires_zlib @requires_zlib
......
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