Commit 505f0ebf authored by Éric Araujo's avatar Éric Araujo

Final bag of small changes coming from distutils2.

- minor cleanup in Metadata
- trigger creation of the sysconfig._CONFIG_VARS dict
- home_page is used over home-page: it’s not a compound word, it’s an
  escaped space

Distutils2 is now synchronized with Packaging.
parent c1b7e7f8
...@@ -5,9 +5,9 @@ sys.prefix or sys.exec_prefix. ...@@ -5,9 +5,9 @@ sys.prefix or sys.exec_prefix.
""" """
import os import os
from shutil import rmtree from shutil import rmtree
from sysconfig import get_python_version from sysconfig import get_python_version
from packaging.util import get_platform from packaging.util import get_platform
from packaging.command.cmd import Command from packaging.command.cmd import Command
from packaging.errors import PackagingPlatformError from packaging.errors import PackagingPlatformError
...@@ -24,7 +24,7 @@ class bdist_dumb(Command): ...@@ -24,7 +24,7 @@ class bdist_dumb(Command):
"platform name to embed in generated filenames " "platform name to embed in generated filenames "
"(default: %s)" % get_platform()), "(default: %s)" % get_platform()),
('format=', 'f', ('format=', 'f',
"archive format to create (tar, gztar, zip)"), "archive format to create (tar, gztar, bztar, zip)"),
('keep-temp', 'k', ('keep-temp', 'k',
"keep the pseudo-installation tree around after " + "keep the pseudo-installation tree around after " +
"creating the distribution archive"), "creating the distribution archive"),
......
"""Compatibility helpers. """Compatibility helpers."""
This module provides classes, variables and imports which are used to
support packaging across Python 2.x and 3.x.
"""
from packaging import logger from packaging import logger
...@@ -10,8 +6,6 @@ from packaging import logger ...@@ -10,8 +6,6 @@ from packaging import logger
# XXX Having two classes with the same name is not a good thing. # XXX Having two classes with the same name is not a good thing.
# XXX 2to3-related code should move from util to this module # XXX 2to3-related code should move from util to this module
# TODO Move common code here: PY3 (bool indicating if we're on 3.x), any, etc.
try: try:
from packaging.util import Mixin2to3 as _Mixin2to3 from packaging.util import Mixin2to3 as _Mixin2to3
_CONVERT = True _CONVERT = True
......
...@@ -552,16 +552,17 @@ class Metadata: ...@@ -552,16 +552,17 @@ class Metadata:
return data return data
# Mapping API # Mapping API
# XXX these methods should return views or sets in 3.x
def keys(self): def keys(self):
return _version2fieldlist(self['Metadata-Version']) return list(_version2fieldlist(self['Metadata-Version']))
def __iter__(self): def __iter__(self):
for key in self.keys(): for key in self.keys():
yield key yield key
def values(self): def values(self):
return [self[key] for key in list(self.keys())] return [self[key] for key in self.keys()]
def items(self): def items(self):
return [(key, self[key]) for key in list(self.keys())] return [(key, self[key]) for key in self.keys()]
...@@ -28,7 +28,6 @@ from packaging.pypi.errors import (PackagingPyPIError, DownloadError, ...@@ -28,7 +28,6 @@ from packaging.pypi.errors import (PackagingPyPIError, DownloadError,
UnableToDownload, CantParseArchiveName, UnableToDownload, CantParseArchiveName,
ReleaseNotFound, ProjectNotFound) ReleaseNotFound, ProjectNotFound)
from packaging.pypi.mirrors import get_mirrors from packaging.pypi.mirrors import get_mirrors
from packaging.metadata import Metadata
__all__ = ['Crawler', 'DEFAULT_SIMPLE_INDEX_URL'] __all__ = ['Crawler', 'DEFAULT_SIMPLE_INDEX_URL']
......
...@@ -35,7 +35,7 @@ class BuildDumbTestCase(support.TempdirManager, ...@@ -35,7 +35,7 @@ class BuildDumbTestCase(support.TempdirManager,
dist = Distribution({'name': 'foo', 'version': '0.1', dist = Distribution({'name': 'foo', 'version': '0.1',
'py_modules': ['foo'], 'py_modules': ['foo'],
'home-page': 'xxx', 'author': 'xxx', 'home_page': 'xxx', 'author': 'xxx',
'author_email': 'xxx'}) 'author_email': 'xxx'})
os.chdir(pkg_dir) os.chdir(pkg_dir)
cmd = bdist_dumb(dist) cmd = bdist_dumb(dist)
......
...@@ -4,14 +4,13 @@ import site ...@@ -4,14 +4,13 @@ import site
import sysconfig import sysconfig
import textwrap import textwrap
from io import StringIO from io import StringIO
from sysconfig import _CONFIG_VARS
from packaging.dist import Distribution from packaging.dist import Distribution
from packaging.errors import (UnknownFileError, CompileError, from packaging.errors import (UnknownFileError, CompileError,
PackagingPlatformError) PackagingPlatformError)
from packaging.command.build_ext import build_ext from packaging.command.build_ext import build_ext
from packaging.compiler.extension import Extension from packaging.compiler.extension import Extension
from test.script_helper import assert_python_ok
from test.script_helper import assert_python_ok
from packaging.tests import support, unittest, verbose from packaging.tests import support, unittest, verbose
...@@ -75,16 +74,16 @@ class BuildExtTestCase(support.TempdirManager, ...@@ -75,16 +74,16 @@ class BuildExtTestCase(support.TempdirManager,
sys.platform = 'sunos' # fooling finalize_options sys.platform = 'sunos' # fooling finalize_options
old_var = _CONFIG_VARS.get('Py_ENABLE_SHARED') old_var = sysconfig.get_config_var('Py_ENABLE_SHARED')
_CONFIG_VARS['Py_ENABLE_SHARED'] = 1 sysconfig._CONFIG_VARS['Py_ENABLE_SHARED'] = 1
try: try:
cmd.ensure_finalized() cmd.ensure_finalized()
finally: finally:
sys.platform = old sys.platform = old
if old_var is None: if old_var is None:
del _CONFIG_VARS['Py_ENABLE_SHARED'] del sysconfig._CONFIG_VARS['Py_ENABLE_SHARED']
else: else:
_CONFIG_VARS['Py_ENABLE_SHARED'] = old_var sysconfig._CONFIG_VARS['Py_ENABLE_SHARED'] = old_var
# make sure we get some library dirs under solaris # make sure we get some library dirs under solaris
self.assertGreater(len(cmd.library_dirs), 0) self.assertGreater(len(cmd.library_dirs), 0)
......
...@@ -99,7 +99,7 @@ class RegisterTestCase(support.TempdirManager, ...@@ -99,7 +99,7 @@ class RegisterTestCase(support.TempdirManager,
def _get_cmd(self, metadata=None): def _get_cmd(self, metadata=None):
if metadata is None: if metadata is None:
metadata = {'home-page': 'xxx', 'author': 'xxx', metadata = {'home_page': 'xxx', 'author': 'xxx',
'author_email': 'xxx', 'author_email': 'xxx',
'name': 'xxx', 'version': 'xxx'} 'name': 'xxx', 'version': 'xxx'}
pkg_info, dist = self.create_dist(**metadata) pkg_info, dist = self.create_dist(**metadata)
......
...@@ -72,7 +72,7 @@ class DistributionTestCase(support.TempdirManager, ...@@ -72,7 +72,7 @@ class DistributionTestCase(support.TempdirManager,
Distribution(attrs={'author': 'xxx', Distribution(attrs={'author': 'xxx',
'name': 'xxx', 'name': 'xxx',
'version': '1.2', 'version': '1.2',
'home-page': 'xxxx', 'home_page': 'xxxx',
'badoptname': 'xxx'}) 'badoptname': 'xxx'})
logs = self.get_logs(logging.WARNING) logs = self.get_logs(logging.WARNING)
self.assertEqual(len(logs), 1) self.assertEqual(len(logs), 1)
...@@ -82,7 +82,7 @@ class DistributionTestCase(support.TempdirManager, ...@@ -82,7 +82,7 @@ class DistributionTestCase(support.TempdirManager,
# an empty options dictionary should not stay in the # an empty options dictionary should not stay in the
# list of attributes # list of attributes
dist = Distribution(attrs={'author': 'xxx', 'name': 'xxx', dist = Distribution(attrs={'author': 'xxx', 'name': 'xxx',
'version': '1.2', 'home-page': 'xxxx', 'version': '1.2', 'home_page': 'xxxx',
'options': {}}) 'options': {}})
self.assertEqual([], self.get_logs(logging.WARNING)) self.assertEqual([], self.get_logs(logging.WARNING))
...@@ -99,7 +99,7 @@ class DistributionTestCase(support.TempdirManager, ...@@ -99,7 +99,7 @@ class DistributionTestCase(support.TempdirManager,
dist = Distribution(attrs={'author': 'xxx', dist = Distribution(attrs={'author': 'xxx',
'name': 'xxx', 'name': 'xxx',
'version': 'xxx', 'version': 'xxx',
'home-page': 'xxxx', 'home_page': 'xxxx',
'options': {'sdist': {'owner': 'root'}}}) 'options': {'sdist': {'owner': 'root'}}})
self.assertIn('owner', dist.get_option_dict('sdist')) self.assertIn('owner', dist.get_option_dict('sdist'))
......
...@@ -101,7 +101,7 @@ class MetadataTestCase(LoggingCatcher, ...@@ -101,7 +101,7 @@ class MetadataTestCase(LoggingCatcher,
# XXX caveat: the keys method and friends are not 3.x-style views # XXX caveat: the keys method and friends are not 3.x-style views
# should be changed or documented # should be changed or documented
self.assertEqual(list(metadata), list(metadata.keys())) self.assertEqual(list(metadata), metadata.keys())
def test_read_metadata(self): def test_read_metadata(self):
fields = {'name': 'project', fields = {'name': 'project',
...@@ -301,7 +301,7 @@ class MetadataTestCase(LoggingCatcher, ...@@ -301,7 +301,7 @@ class MetadataTestCase(LoggingCatcher,
Metadata(mapping={'author': 'xxx', Metadata(mapping={'author': 'xxx',
'name': 'xxx', 'name': 'xxx',
'version': 'xxx', 'version': 'xxx',
'home-page': 'xxxx'}) 'home_page': 'xxxx'})
logs = self.get_logs(logging.WARNING) logs = self.get_logs(logging.WARNING)
self.assertEqual(1, len(logs)) self.assertEqual(1, len(logs))
self.assertIn('not a valid version', logs[0]) self.assertIn('not a valid version', logs[0])
......
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