Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
setuptools
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jérome Perrin
setuptools
Commits
e066c97f
Commit
e066c97f
authored
Dec 14, 2016
by
Jason R. Coombs
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Backport config file parsing behavior from Python 3.7. Ref #889.
parent
5c5d40c3
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
84 additions
and
1 deletion
+84
-1
setuptools/dist.py
setuptools/dist.py
+2
-1
setuptools/py36compat.py
setuptools/py36compat.py
+82
-0
No files found.
setuptools/dist.py
View file @
e066c97f
...
@@ -21,6 +21,7 @@ from setuptools import windows_support
...
@@ -21,6 +21,7 @@ from setuptools import windows_support
from
setuptools.monkey
import
get_unpatched
from
setuptools.monkey
import
get_unpatched
from
setuptools.config
import
parse_configuration
from
setuptools.config
import
parse_configuration
import
pkg_resources
import
pkg_resources
from
.py36compat
import
Distribution_parse_config_files
def
_get_unpatched
(
cls
):
def
_get_unpatched
(
cls
):
...
@@ -213,7 +214,7 @@ def check_packages(dist, attr, value):
...
@@ -213,7 +214,7 @@ def check_packages(dist, attr, value):
_Distribution = get_unpatched(distutils.core.Distribution)
_Distribution = get_unpatched(distutils.core.Distribution)
class Distribution(_Distribution):
class Distribution(
Distribution_parse_config_files,
_Distribution):
"""Distribution with support for features, tests, and package data
"""Distribution with support for features, tests, and package data
This is an enhanced version of '
distutils
.
dist
.
Distribution
' that
This is an enhanced version of '
distutils
.
dist
.
Distribution
' that
...
...
setuptools/py36compat.py
0 → 100644
View file @
e066c97f
import
sys
from
distutils.errors
import
DistutilsOptionError
from
distutils.util
import
strtobool
from
distutils.debug
import
DEBUG
class
Distribution_parse_config_files
:
"""
Mix-in providing forward-compatibility for functionality to be
included by default on Python 3.7.
Do not edit the code in this class except to update functionality
as implemented in distutils.
"""
def
parse_config_files
(
self
,
filenames
=
None
):
from
configparser
import
ConfigParser
# Ignore install directory options if we have a venv
if
sys
.
prefix
!=
sys
.
base_prefix
:
ignore_options
=
[
'install-base'
,
'install-platbase'
,
'install-lib'
,
'install-platlib'
,
'install-purelib'
,
'install-headers'
,
'install-scripts'
,
'install-data'
,
'prefix'
,
'exec-prefix'
,
'home'
,
'user'
,
'root'
]
else
:
ignore_options
=
[]
ignore_options
=
frozenset
(
ignore_options
)
if
filenames
is
None
:
filenames
=
self
.
find_config_files
()
if
DEBUG
:
self
.
announce
(
"Distribution.parse_config_files():"
)
parser
=
ConfigParser
()
for
filename
in
filenames
:
if
DEBUG
:
self
.
announce
(
" reading %s"
%
filename
)
parser
.
read
(
filename
)
for
section
in
parser
.
sections
():
options
=
parser
.
options
(
section
)
opt_dict
=
self
.
get_option_dict
(
section
)
for
opt
in
options
:
if
opt
!=
'__name__'
and
opt
not
in
ignore_options
:
val
=
parser
.
get
(
section
,
opt
)
opt
=
opt
.
replace
(
'-'
,
'_'
)
opt_dict
[
opt
]
=
(
filename
,
val
)
# Make the ConfigParser forget everything (so we retain
# the original filenames that options come from)
parser
.
__init__
()
# If there was a "global" section in the config file, use it
# to set Distribution options.
if
'global'
in
self
.
command_options
:
for
(
opt
,
(
src
,
val
))
in
self
.
command_options
[
'global'
].
items
():
alias
=
self
.
negative_opt
.
get
(
opt
)
try
:
if
alias
:
setattr
(
self
,
alias
,
not
strtobool
(
val
))
elif
opt
in
(
'verbose'
,
'dry_run'
):
# ugh!
setattr
(
self
,
opt
,
strtobool
(
val
))
else
:
setattr
(
self
,
opt
,
val
)
except
ValueError
as
msg
:
raise
DistutilsOptionError
(
msg
)
if
sys
.
version_info
<
(
3
,):
# Python 2 behavior is sufficient
class
Distribution_parse_config_files
:
pass
if
False
:
# When updated behavior is available upstream,
# disable override here.
class
Distribution_parse_config_files
:
pass
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment