Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit e207bae

Browse files
committed
Merge pull request #298 from stonebig/master
build simplification
2 parents bbb59d0 + a3c426a commit e207bae

File tree

4 files changed

+44
-62
lines changed

4 files changed

+44
-62
lines changed

diff.py

Lines changed: 17 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -61,30 +61,24 @@ def upgrade_wiki(self, other):
6161
other.version, self.version, self.description)
6262

6363

64-
def get_basedir(version, rootdir=None):
65-
"""Return basedir from WinPython version"""
66-
rootdir = rootdir if rootdir is not None else utils.ROOT_DIR
67-
assert rootdir is not None, "The *rootdir* directory must be specified"
68-
return osp.join(rootdir, 'basedir%s' % version[::2][:2])
69-
70-
7164
class PackageIndex(object):
7265
WINPYTHON_PATTERN = r'\#\# WinPython ([0-9\.a-zA-Z]*)'
7366
TOOLS_LINE = '### Tools'
7467
PYTHON_PACKAGES_LINE = '### Python packages'
7568
HEADER_LINE1 = 'Name | Version | Description'
7669
HEADER_LINE2 = '-----|---------|------------'
7770

78-
def __init__(self, version, rootdir=None, flavor=''):
71+
def __init__(self, version, basedir=None, flavor=''):
7972
self.version = version
8073
self.other_packages = {}
8174
self.python_packages = {}
8275
self.flavor = flavor
83-
basedir = get_basedir(version, rootdir=rootdir)
76+
self.basedir = basedir
8477
self.from_file(basedir)
8578

8679
def from_file(self, basedir):
87-
fname = osp.join(basedir, 'build%s' % self.flavor,
80+
#fname = osp.join(basedir, 'build%s' % self.flavor,
81+
fname = osp.join(CHANGELOGS_DIR,
8882
'WinPython%s-%s.md' % (self.flavor, self.version))
8983
with open(fname, 'r') as fdesc: # python3 doesn't like 'rb'
9084
text = fdesc.read()
@@ -154,9 +148,9 @@ def diff_package_dicts(dict1_in, dict2_in):
154148
return text
155149

156150

157-
def find_closer_version(version1, rootdir=None, flavor=''):
151+
def find_closer_version(version1, basedir=None, flavor=''):
158152
"""Find version which is the closest to `version`"""
159-
builddir = osp.join(get_basedir(version1, rootdir), 'build%s' % flavor)
153+
builddir = osp.join(basedir, 'build%s' % flavor)
160154
func = lambda name: re.match(r'WinPython%s-([0-9\.]*)\.(txt|md)' % flavor, name)
161155
versions = [func(name).groups()[0]
162156
for name in os.listdir(builddir) if func(name)]
@@ -170,20 +164,20 @@ def find_closer_version(version1, rootdir=None, flavor=''):
170164
return versions[index-1]
171165

172166

173-
def compare_package_indexes(version2, version1=None, rootdir=None, flavor='',
167+
def compare_package_indexes(version2, version1=None, basedir=None, flavor='',
174168
flavor1=None):
175169
"""Compare two package index Wiki pages"""
176170
if version1 is None:
177-
version1 = find_closer_version(version2, rootdir=rootdir,
171+
version1 = find_closer_version(version2, basedir=basedir,
178172
flavor=flavor)
179173
flavor1 = flavor1 if flavor1 is not None else flavor
180174
text = '\r\n'.join(["## History of changes for WinPython %s" %
181175
(version2+flavor),
182176
"", "The following changes were made to WinPython "
183177
"distribution since version %s." % (version1+flavor1),
184178
"", ""])
185-
pi1 = PackageIndex(version1, rootdir=rootdir, flavor=flavor1)
186-
pi2 = PackageIndex(version2, rootdir=rootdir, flavor=flavor)
179+
pi1 = PackageIndex(version1, basedir=basedir, flavor=flavor1)
180+
pi2 = PackageIndex(version2, basedir=basedir, flavor=flavor)
187181
tools_text = diff_package_dicts(pi1.other_packages, pi2.other_packages)
188182
if tools_text:
189183
text += PackageIndex.TOOLS_LINE + '\r\n\r\n' + tools_text
@@ -203,13 +197,12 @@ def _copy_all_changelogs(version, basedir, flavor=''):
203197
osp.join(basedir, 'build%s' % flavor, name))
204198

205199

206-
def write_changelog(version2, version1=None, rootdir=None, flavor='',
200+
def write_changelog(version2, version1=None, basedir=None, flavor='',
207201
release_level=''):
208202
"""Write changelog between version1 and version2 of WinPython"""
209-
basedir = get_basedir(version2, rootdir=rootdir)
210203
_copy_all_changelogs(version2, basedir, flavor=flavor)
211-
print ('comparing_package_indexes', version2, rootdir, flavor)
212-
text = compare_package_indexes(version2, version1, rootdir=rootdir,
204+
print ('comparing_package_indexes', version2, basedir, flavor)
205+
text = compare_package_indexes(version2, version1, basedir=basedir,
213206
flavor=flavor)
214207
fname = osp.join(basedir, 'build%s' % flavor,
215208
'WinPython%s-%s_History.md' % (flavor, version2))
@@ -219,9 +212,9 @@ def write_changelog(version2, version1=None, rootdir=None, flavor='',
219212
shutil.copyfile(fname, osp.join(CHANGELOGS_DIR, osp.basename(fname)))
220213

221214

222-
def test_parse_package_index_wiki(version, rootdir=None, flavor=''):
215+
def test_parse_package_index_wiki(version, basedir=None, flavor=''):
223216
"""Parse the package index Wiki page"""
224-
pi = PackageIndex(version, rootdir=rootdir, flavor=flavor)
217+
pi = PackageIndex(version, basedir=basedir, flavor=flavor)
225218
utils.print_box("WinPython %s:" % pi.version)
226219
utils.print_box("Tools:")
227220
for package in pi.other_packages.values():
@@ -238,8 +231,8 @@ def test_compare(basedir, version2, version1):
238231

239232

240233
if __name__ == '__main__':
241-
print (compare_package_indexes('3.5.0.1', '3.4.3.6',
242-
rootdir='D:\Winpython', flavor='Slim', flavor1=''))
234+
print (compare_package_indexes('3.4.4.1', '3.4.3.6',
235+
basedir='D:\Winpython\basedir34', flavor='Slim', flavor1=''))
243236
# test_parse_package_index_wiki('2.7.3.3')
244237
# print(compare_package_indexes('2.7.3.3', '2.7.3.1'))
245238
# write_changelog('2.7.4.1', '2.7.4.0')

generate_a_winpython_distro.bat

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@ rem set my_python_target=34
99
rem set my_pyver=3.4
1010
rem set my_release=84
1111

12+
rem *****************************
13+
rem v2 2016-03-19 change
14+
rem we don't use building rootdir (D:\winPython) anymore
15+
rem we use only building basedir (D:\WinPython\basedir34Qt5)
16+
set my_basedir=%my_root_dir_for_builds%\basedir%my_python_target%
17+
1218
rem ***********************************************************
1319
rem Override other scripts (simpler maintenance)
1420

@@ -102,8 +108,8 @@ call %my_buildenv%\scripts\env.bat
102108

103109
rem build with this
104110
cd /D %~dp0
105-
echo python.exe -c "from make import *;make_all(%my_release%, '%my_release_level%', pyver='%my_pyver%', rootdir=r'%my_root_dir_for_builds%', verbose=True, architecture=%my_arch%, flavor='%my_flavor%', requirements=r'%my_requirements%', install_options=r'%my_install_options%', find_links=r'%my_find_links%', source_dirs=r'%my_source_dirs%', toolsdirs=r'%my_toolsdirs%', docsdirs=r'%my_docsdirs%')">>%my_archive_log%
106-
python.exe -c "from make import *;make_all(%my_release%, '%my_release_level%', pyver='%my_pyver%', rootdir=r'%my_root_dir_for_builds%', verbose=True, architecture=%my_arch%, flavor='%my_flavor%', requirements=r'%my_requirements%', install_options=r'%my_install_options%', find_links=r'%my_find_links%', source_dirs=r'%my_source_dirs%', toolsdirs=r'%my_toolsdirs%', docsdirs=r'%my_docsdirs%')">>%my_archive_log%
111+
echo python.exe -c "from make import *;make_all(%my_release%, '%my_release_level%', pyver='%my_pyver%', basedir=r'%my_basedir%', verbose=True, architecture=%my_arch%, flavor='%my_flavor%', requirements=r'%my_requirements%', install_options=r'%my_install_options%', find_links=r'%my_find_links%', source_dirs=r'%my_source_dirs%', toolsdirs=r'%my_toolsdirs%', docsdirs=r'%my_docsdirs%')">>%my_archive_log%
112+
python.exe -c "from make import *;make_all(%my_release%, '%my_release_level%', pyver='%my_pyver%', basedir=r'%my_basedir%', verbose=True, architecture=%my_arch%, flavor='%my_flavor%', requirements=r'%my_requirements%', install_options=r'%my_install_options%', find_links=r'%my_find_links%', source_dirs=r'%my_source_dirs%', toolsdirs=r'%my_toolsdirs%', docsdirs=r'%my_docsdirs%')">>%my_archive_log%
107113

108114
echo ===============>>%my_archive_log%
109115
echo END OF creation>>%my_archive_log%

make.py

Lines changed: 19 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ class WinPythonDistribution(object):
9999

100100
def __init__(self, build_number, release_level, target, wheeldir,
101101
toolsdirs=None, verbose=False, simulation=False,
102-
rootdir=None, install_options=None, flavor='', docsdirs=None):
102+
basedir=None, install_options=None, flavor='', docsdirs=None):
103103
assert isinstance(build_number, int)
104104
assert isinstance(release_level, str)
105105
self.build_number = build_number
@@ -121,7 +121,7 @@ def __init__(self, build_number, release_level, target, wheeldir,
121121
self.distribution = None
122122
self.installed_packages = []
123123
self.simulation = simulation
124-
self.rootdir = rootdir # added to build from winpython
124+
self.basedir = basedir # added to build from winpython
125125
self.install_options = install_options
126126
self.flavor = flavor
127127

@@ -1011,25 +1011,24 @@ def make(self, remove_existing=True, requirements=None, my_winpydir=None): #, f
10111011

10121012
# Writing changelog
10131013
self._print("Writing changelog")
1014-
diff.write_changelog(self.winpyver2, rootdir=self.rootdir,
1014+
diff.write_changelog(self.winpyver2, basedir=self.basedir,
10151015
flavor=self.flavor, release_level=self.release_level)
10161016
self._print_done()
10171017

10181018

1019-
def rebuild_winpython(basedir=None, verbose=False, archis=(32, 64), targetdir=None):
1019+
def rebuild_winpython(basedir=None, verbose=False, architecture=64, targetdir=None):
10201020
"""Rebuild winpython package from source"""
10211021
basedir = basedir if basedir is not None else utils.BASE_DIR
1022-
for architecture in archis:
1023-
suffix = '.win32' if architecture == 32 else '.win-amd64'
1024-
if targetdir is not None:
1025-
packdir = targetdir
1026-
else:
1027-
packdir = osp.join(basedir, 'packages' + suffix)
1028-
for name in os.listdir(packdir):
1029-
if name.startswith('winpython-') and name.endswith(('.exe', '.whl')):
1030-
os.remove(osp.join(packdir, name))
1031-
utils.build_wininst(osp.dirname(osp.abspath(__file__)), copy_to=packdir,
1032-
architecture=architecture, verbose=verbose, installer='bdist_wheel')
1022+
suffix = '.win32' if architecture == 32 else '.win-amd64'
1023+
if targetdir is not None:
1024+
packdir = targetdir
1025+
else:
1026+
packdir = osp.join(basedir, 'packages' + suffix)
1027+
for name in os.listdir(packdir):
1028+
if name.startswith('winpython-') and name.endswith(('.exe', '.whl')):
1029+
os.remove(osp.join(packdir, name))
1030+
utils.build_wininst(osp.dirname(osp.abspath(__file__)), copy_to=packdir,
1031+
architecture=architecture, verbose=verbose, installer='bdist_wheel')
10331032

10341033

10351034
def transform_in_list(list_in, list_type=None):
@@ -1044,8 +1043,8 @@ def transform_in_list(list_in, list_type=None):
10441043

10451044

10461045
def make_all(build_number, release_level, pyver, architecture,
1047-
basedir=None, verbose=False, remove_existing=True,
1048-
create_installer=True, simulation=False, rootdir=None,
1046+
basedir, verbose=False, remove_existing=True,
1047+
create_installer=True, simulation=False,
10491048
install_options=['--no-index'], flavor='', requirements=None,
10501049
find_links=None, source_dirs=None, toolsdirs=None,
10511050
docsdirs=None):
@@ -1061,13 +1060,10 @@ def make_all(build_number, release_level, pyver, architecture,
10611060
`pyver`: python version ('3.4' or 3.5')
10621061
`architecture`: [int] (32 or 64)
10631062
`basedir`: where will be created tmp_wheel dir. and Winpython-xyz dir.
1064-
(rootdir: root directory containing 'basedir27', 'basedir33', etc.)
10651063
""" + utils.ROOTDIR_DOC
10661064

10671065
if basedir is None:
10681066
basedir = utils.BASE_DIR
1069-
if basedir is None:
1070-
basedir = utils.get_basedir(pyver, rootdir=rootdir)
10711067

10721068
assert basedir is not None, "The *basedir* directory must be specified"
10731069
assert architecture in (32, 64)
@@ -1085,7 +1081,7 @@ def make_all(build_number, release_level, pyver, architecture,
10851081
os.mkdir(wheeldir)
10861082

10871083
# Rebuild Winpython in this wheel dir
1088-
rebuild_winpython(basedir=basedir, archis=(architecture,), targetdir=wheeldir)
1084+
rebuild_winpython(basedir=basedir, architecture=architecture, targetdir=wheeldir)
10891085

10901086
# Copy Every package directory to the wheel directory
10911087

@@ -1114,7 +1110,7 @@ def make_all(build_number, release_level, pyver, architecture,
11141110
dist = WinPythonDistribution(build_number, release_level,
11151111
builddir, wheeldir, toolsdirs,
11161112
verbose=verbose, simulation=simulation,
1117-
rootdir=rootdir,
1113+
basedir=basedir,
11181114
install_options=install_options + find_list,
11191115
flavor=flavor, docsdirs=docsdirs)
11201116
# define a pre-defined winpydir, instead of having to guess
@@ -1133,7 +1129,7 @@ def make_all(build_number, release_level, pyver, architecture,
11331129
# DO create only one version at a time
11341130
# You may have to manually delete previous build\winpython-.. directory
11351131

1136-
make_all(1, release_level='build3', pyver='3.4', rootdir=r'D:\Winpython', verbose=True,
1132+
make_all(1, release_level='build3', pyver='3.4', basedir=r'D:\Winpython\basedir34', verbose=True,
11371133
architecture=64, flavor='Barebone',
11381134
requirements=r'D:\Winpython\basedir34\barebone_requirements.txt',
11391135
install_options=r'--no-index --pre --trusted-host=None',

winpython/utils.py

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -48,19 +48,6 @@
4848
* (optional) `tools.win-amd64`: contains 64-bit-specific tools"""
4949

5050

51-
def get_basedir(pyver, rootdir=None):
52-
"""Get basedir from Python version
53-
54-
`pyver`: Python version (X.Y format) [str]
55-
`rootdir`: [str] if None, WINPYTHONROOTDIR env var must be set
56-
(rootdir: root directory containing 'basedir27', 'basedir33', etc.)
57-
""" + ROOTDIR_DOC
58-
assert re.match(r'[0-9]+\.[0-9]+', pyver) is not None
59-
rootdir = rootdir if rootdir is not None else ROOT_DIR
60-
assert rootdir is not None, "The *rootdir* directory must be specified"
61-
return osp.join(rootdir, 'basedir%s' % pyver[::2][:2])
62-
63-
6451
def onerror(function, path, excinfo):
6552
"""Error handler for `shutil.rmtree`.
6653

0 commit comments

Comments
 (0)