Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
dda92f7f
Kaydet (Commit)
dda92f7f
authored
Şub 27, 2009
tarafından
Tarek Ziadé
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Issue #5052: make Distutils compatible with 2.3 again.
üst
b31a6d09
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
185 additions
and
38 deletions
+185
-38
README
Lib/distutils/README
+2
-0
build_ext.py
Lib/distutils/command/build_ext.py
+14
-4
install.py
Lib/distutils/command/install.py
+52
-31
upload.py
Lib/distutils/command/upload.py
+6
-1
test_build_ext.py
Lib/distutils/tests/test_build_ext.py
+45
-2
test_install.py
Lib/distutils/tests/test_install.py
+64
-0
NEWS
Misc/NEWS
+2
-0
No files found.
Lib/distutils/README
Dosyayı görüntüle @
dda92f7f
...
...
@@ -8,4 +8,6 @@ The Distutils-SIG web page is also a good starting point:
http://www.python.org/sigs/distutils-sig/
WARNING : Distutils must remain compatible with 2.3
$Id$
Lib/distutils/command/build_ext.py
Dosyayı görüntüle @
dda92f7f
...
...
@@ -8,7 +8,6 @@ __revision__ = "$Id$"
import
sys
,
os
,
string
,
re
from
types
import
*
from
site
import
USER_BASE
from
distutils.core
import
Command
from
distutils.errors
import
*
from
distutils.sysconfig
import
customize_compiler
,
get_python_version
...
...
@@ -17,6 +16,14 @@ from distutils.extension import Extension
from
distutils.util
import
get_platform
from
distutils
import
log
# this keeps compatibility from 2.3 to 2.5
if
sys
.
version
<
"2.6"
:
USER_BASE
=
None
HAS_USER_SITE
=
False
else
:
from
site
import
USER_BASE
HAS_USER_SITE
=
True
if
os
.
name
==
'nt'
:
from
distutils.msvccompiler
import
get_build_version
MSVC_VERSION
=
int
(
get_build_version
())
...
...
@@ -92,11 +99,14 @@ class build_ext (Command):
"list of SWIG command line options"
),
(
'swig='
,
None
,
"path to the SWIG executable"
),
(
'user'
,
None
,
"add user include, library and rpath"
),
]
boolean_options
=
[
'inplace'
,
'debug'
,
'force'
,
'swig-cpp'
,
'user'
]
boolean_options
=
[
'inplace'
,
'debug'
,
'force'
,
'swig-cpp'
]
if
HAS_USER_SITE
:
user_options
.
append
((
'user'
,
None
,
"add user include, library and rpath"
))
boolean_options
.
append
(
'user'
)
help_options
=
[
(
'help-compiler'
,
None
,
...
...
Lib/distutils/command/install.py
Dosyayı görüntüle @
dda92f7f
...
...
@@ -16,9 +16,16 @@ from distutils.file_util import write_file
from
distutils.util
import
convert_path
,
subst_vars
,
change_root
from
distutils.util
import
get_platform
from
distutils.errors
import
DistutilsOptionError
from
site
import
USER_BASE
from
site
import
USER_SITE
# this keeps compatibility from 2.3 to 2.5
if
sys
.
version
<
"2.6"
:
USER_BASE
=
None
USER_SITE
=
None
HAS_USER_SITE
=
False
else
:
from
site
import
USER_BASE
from
site
import
USER_SITE
HAS_USER_SITE
=
True
if
sys
.
version
<
"2.2"
:
WINDOWS_SCHEME
=
{
...
...
@@ -52,21 +59,7 @@ INSTALL_SCHEMES = {
'scripts'
:
'$base/bin'
,
'data'
:
'$base'
,
},
'unix_user'
:
{
'purelib'
:
'$usersite'
,
'platlib'
:
'$usersite'
,
'headers'
:
'$userbase/include/python$py_version_short/$dist_name'
,
'scripts'
:
'$userbase/bin'
,
'data'
:
'$userbase'
,
},
'nt'
:
WINDOWS_SCHEME
,
'nt_user'
:
{
'purelib'
:
'$usersite'
,
'platlib'
:
'$usersite'
,
'headers'
:
'$userbase/Python$py_version_nodot/Include/$dist_name'
,
'scripts'
:
'$userbase/Scripts'
,
'data'
:
'$userbase'
,
},
'mac'
:
{
'purelib'
:
'$base/Lib/site-packages'
,
'platlib'
:
'$base/Lib/site-packages'
,
...
...
@@ -74,13 +67,7 @@ INSTALL_SCHEMES = {
'scripts'
:
'$base/Scripts'
,
'data'
:
'$base'
,
},
'mac_user'
:
{
'purelib'
:
'$usersite'
,
'platlib'
:
'$usersite'
,
'headers'
:
'$userbase/$py_version_short/include/$dist_name'
,
'scripts'
:
'$userbase/bin'
,
'data'
:
'$userbase'
,
},
'os2'
:
{
'purelib'
:
'$base/Lib/site-packages'
,
'platlib'
:
'$base/Lib/site-packages'
,
...
...
@@ -88,14 +75,41 @@ INSTALL_SCHEMES = {
'scripts'
:
'$base/Scripts'
,
'data'
:
'$base'
,
},
'os2_home'
:
{
}
# user site schemes
if
HAS_USER_SITE
:
INSTALL_SCHEMES
[
'nt_user'
]
=
{
'purelib'
:
'$usersite'
,
'platlib'
:
'$usersite'
,
'headers'
:
'$userbase/Python$py_version_nodot/Include/$dist_name'
,
'scripts'
:
'$userbase/Scripts'
,
'data'
:
'$userbase'
,
}
INSTALL_SCHEMES
[
'unix_user'
]
=
{
'purelib'
:
'$usersite'
,
'platlib'
:
'$usersite'
,
'headers'
:
'$userbase/include/python$py_version_short/$dist_name'
,
'scripts'
:
'$userbase/bin'
,
'data'
:
'$userbase'
,
},
}
}
INSTALL_SCHEMES
[
'mac_user'
]
=
{
'purelib'
:
'$usersite'
,
'platlib'
:
'$usersite'
,
'headers'
:
'$userbase/$py_version_short/include/$dist_name'
,
'scripts'
:
'$userbase/bin'
,
'data'
:
'$userbase'
,
}
INSTALL_SCHEMES
[
'os2_home'
]
=
{
'purelib'
:
'$usersite'
,
'platlib'
:
'$usersite'
,
'headers'
:
'$userbase/include/python$py_version_short/$dist_name'
,
'scripts'
:
'$userbase/bin'
,
'data'
:
'$userbase'
,
}
# The keys to an installation scheme; if any new types of files are to be
# installed, be sure to add an entry to every installation scheme above,
...
...
@@ -115,8 +129,6 @@ class install (Command):
"(Unix only) prefix for platform-specific files"
),
(
'home='
,
None
,
"(Unix only) home directory to install under"
),
(
'user'
,
None
,
"install in user site-package '
%
s'"
%
USER_SITE
),
# Or, just set the base director(y|ies)
(
'install-base='
,
None
,
...
...
@@ -168,7 +180,13 @@ class install (Command):
"filename in which to record list of installed files"
),
]
boolean_options
=
[
'compile'
,
'force'
,
'skip-build'
,
'user'
]
boolean_options
=
[
'compile'
,
'force'
,
'skip-build'
]
if
HAS_USER_SITE
:
user_options
.
append
((
'user'
,
None
,
"install in user site-package '
%
s'"
%
USER_SITE
))
boolean_options
.
append
(
'user'
)
negative_opt
=
{
'no-compile'
:
'compile'
}
...
...
@@ -320,9 +338,12 @@ class install (Command):
'prefix'
:
prefix
,
'sys_exec_prefix'
:
exec_prefix
,
'exec_prefix'
:
exec_prefix
,
'userbase'
:
self
.
install_userbase
,
'usersite'
:
self
.
install_usersite
,
}
if
HAS_USER_SITE
:
self
.
config_vars
[
'userbase'
]
=
self
.
install_userbase
self
.
config_vars
[
'usersite'
]
=
self
.
install_usersite
self
.
expand_basedirs
()
self
.
dump_dirs
(
"post-expand_basedirs()"
)
...
...
Lib/distutils/command/upload.py
Dosyayı görüntüle @
dda92f7f
...
...
@@ -6,7 +6,7 @@ from distutils.errors import *
from
distutils.core
import
PyPIRCCommand
from
distutils.spawn
import
spawn
from
distutils
import
log
from
hashlib
import
md5
import
sys
import
os
import
socket
import
platform
...
...
@@ -16,6 +16,11 @@ import urlparse
import
cStringIO
as
StringIO
from
ConfigParser
import
ConfigParser
# this keeps compatibility for 2.3 and 2.4
if
sys
.
version
<
"2.5"
:
from
md5
import
md5
else
:
from
hashlib
import
md5
class
upload
(
PyPIRCCommand
):
...
...
Lib/distutils/tests/test_build_ext.py
Dosyayı görüntüle @
dda92f7f
...
...
@@ -24,11 +24,17 @@ class BuildExtTestCase(support.TempdirManager, unittest.TestCase):
def
setUp
(
self
):
# Create a simple test environment
# Note that we're making changes to sys.path
sup
port
.
TempdirManager
.
setUp
(
self
)
sup
er
(
BuildExtTestCase
,
self
)
.
setUp
(
)
self
.
tmp_dir
=
self
.
mkdtemp
()
self
.
sys_path
=
sys
.
path
[:]
sys
.
path
.
append
(
self
.
tmp_dir
)
shutil
.
copy
(
_get_source_filename
(),
self
.
tmp_dir
)
if
sys
.
version
>
"2.6"
:
import
site
self
.
old_user_base
=
site
.
USER_BASE
site
.
USER_BASE
=
self
.
mkdtemp
()
from
distutils.command
import
build_ext
build_ext
.
USER_BASE
=
site
.
USER_BASE
def
test_build_ext
(
self
):
global
ALREADY_TESTED
...
...
@@ -76,7 +82,13 @@ class BuildExtTestCase(support.TempdirManager, unittest.TestCase):
# Get everything back to normal
test_support
.
unload
(
'xx'
)
sys
.
path
=
self
.
sys_path
support
.
TempdirManager
.
tearDown
(
self
)
if
sys
.
version
>
"2.6"
:
import
site
site
.
USER_BASE
=
self
.
old_user_base
from
distutils.command
import
build_ext
build_ext
.
USER_BASE
=
self
.
old_user_base
super
(
BuildExtTestCase
,
self
)
.
tearDown
()
def
test_solaris_enable_shared
(
self
):
dist
=
Distribution
({
'name'
:
'xx'
})
...
...
@@ -99,6 +111,37 @@ class BuildExtTestCase(support.TempdirManager, unittest.TestCase):
# make sur we get some lobrary dirs under solaris
self
.
assert_
(
len
(
cmd
.
library_dirs
)
>
0
)
def
test_user_site
(
self
):
# site.USER_SITE was introduced in 2.6
if
sys
.
version
<
'2.6'
:
return
import
site
dist
=
Distribution
({
'name'
:
'xx'
})
cmd
=
build_ext
(
dist
)
# making sure the suer option is there
options
=
[
name
for
name
,
short
,
lable
in
cmd
.
user_options
]
self
.
assert_
(
'user'
in
options
)
# setting a value
cmd
.
user
=
1
# setting user based lib and include
lib
=
os
.
path
.
join
(
site
.
USER_BASE
,
'lib'
)
incl
=
os
.
path
.
join
(
site
.
USER_BASE
,
'include'
)
os
.
mkdir
(
lib
)
os
.
mkdir
(
incl
)
# let's run finalize
cmd
.
ensure_finalized
()
# see if include_dirs and library_dirs
# were set
self
.
assert_
(
lib
in
cmd
.
library_dirs
)
self
.
assert_
(
incl
in
cmd
.
include_dirs
)
def
test_suite
():
src
=
_get_source_filename
()
if
not
os
.
path
.
exists
(
src
):
...
...
Lib/distutils/tests/test_install.py
Dosyayı görüntüle @
dda92f7f
"""Tests for distutils.command.install."""
import
os
import
os.path
import
sys
import
unittest
import
site
from
distutils.command.install
import
install
from
distutils.command
import
install
as
install_module
from
distutils.command.install
import
INSTALL_SCHEMES
from
distutils.core
import
Distribution
from
distutils.tests
import
support
...
...
@@ -47,6 +52,65 @@ class InstallTestCase(support.TempdirManager, unittest.TestCase):
check_path
(
cmd
.
install_scripts
,
os
.
path
.
join
(
destination
,
"bin"
))
check_path
(
cmd
.
install_data
,
destination
)
def
test_user_site
(
self
):
# site.USER_SITE was introduced in 2.6
if
sys
.
version
<
'2.6'
:
return
# preparing the environement for the test
self
.
old_user_base
=
site
.
USER_BASE
self
.
old_user_site
=
site
.
USER_SITE
self
.
tmpdir
=
self
.
mkdtemp
()
self
.
user_base
=
os
.
path
.
join
(
self
.
tmpdir
,
'B'
)
self
.
user_site
=
os
.
path
.
join
(
self
.
tmpdir
,
'S'
)
site
.
USER_BASE
=
self
.
user_base
site
.
USER_SITE
=
self
.
user_site
install_module
.
USER_BASE
=
self
.
user_base
install_module
.
USER_SITE
=
self
.
user_site
def
_expanduser
(
path
):
return
self
.
tmpdir
self
.
old_expand
=
os
.
path
.
expanduser
os
.
path
.
expanduser
=
_expanduser
try
:
# this is the actual test
self
.
_test_user_site
()
finally
:
site
.
USER_BASE
=
self
.
old_user_base
site
.
USER_SITE
=
self
.
old_user_site
install_module
.
USER_BASE
=
self
.
old_user_base
install_module
.
USER_SITE
=
self
.
old_user_site
os
.
path
.
expanduser
=
self
.
old_expand
def
_test_user_site
(
self
):
for
key
in
(
'nt_user'
,
'unix_user'
,
'os2_home'
):
self
.
assert_
(
key
in
INSTALL_SCHEMES
)
dist
=
Distribution
({
'name'
:
'xx'
})
cmd
=
install
(
dist
)
# making sure the user option is there
options
=
[
name
for
name
,
short
,
lable
in
cmd
.
user_options
]
self
.
assert_
(
'user'
in
options
)
# setting a value
cmd
.
user
=
1
# user base and site shouldn't be created yet
self
.
assert_
(
not
os
.
path
.
exists
(
self
.
user_base
))
self
.
assert_
(
not
os
.
path
.
exists
(
self
.
user_site
))
# let's run finalize
cmd
.
ensure_finalized
()
# now they should
self
.
assert_
(
os
.
path
.
exists
(
self
.
user_base
))
self
.
assert_
(
os
.
path
.
exists
(
self
.
user_site
))
self
.
assert_
(
'userbase'
in
cmd
.
config_vars
)
self
.
assert_
(
'usersite'
in
cmd
.
config_vars
)
def
test_suite
():
return
unittest
.
makeSuite
(
InstallTestCase
)
...
...
Misc/NEWS
Dosyayı görüntüle @
dda92f7f
...
...
@@ -166,6 +166,8 @@ Core and Builtins
Library
-------
- Issue #5052: make Distutils compatible with 2.3 again.
- Deprecated methods of symtable.Symbol have been removed: is_keywordarg(),
is_vararg(), and is_in_tuple().
...
...
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