[Python-checkins] devinabox: Rename some files.

brett.cannon python-checkins at python.org
Mon Feb 28 23:03:51 CET 2011


brett.cannon pushed c7bafcc52be7 to devinabox:

http://hg.python.org/devinabox/rev/c7bafcc52be7
changeset:   24:c7bafcc52be7
user:        Brett Cannon <brett at python.org>
date:        Sat Feb 26 18:00:46 2011 -0800
summary:
  Rename some files.

files:
  box.py
  make_a_box.py
  run_all_tests.py
  run_tests.py

diff --git a/box.py b/make_a_box.py
rename from box.py
rename to make_a_box.py
--- a/box.py
+++ b/make_a_box.py
@@ -1,6 +1,6 @@
 #!/usr/bin/env python3
-"""Python-Dev In a Box: (almost) everything you need to contribute to (C)Python
-in under 700 MB.
+"""Python-Dev In a Box: everything you need to contribute to Python in under
+700 MB.
 
 This script will clone, checkout, download, or ask you to download everything
 you need to contribute to (C)Python's development short of a C compiler. It
@@ -24,6 +24,15 @@
 import urllib.parse
 import webbrowser
 import xmlrpc.client
+import run_coverage
+
+
+def rename(new_name):
+    """Decorator to rename an object that defines __name__."""
+    def do_rename(ob):
+        ob.__name__ = new_name
+        return ob
+    return do_rename
 
 
 @contextlib.contextmanager
@@ -73,13 +82,7 @@
 
     def create(self):
         """Clone an Hg repository to 'directory'."""
-        subprocess.check_call(['hg', '-q', 'clone', self.url, self.directory])
-
-    def update(self):
-        """Update the Hg clone in 'directory'."""
-        with change_cwd(self.directory):
-            subprocess.check_call(['hg', '-q', 'pull'])
-            subprocess.check_call(['hg', '-q', 'update'])
+        subprocess.check_call(['hg', 'clone', self.url, self.directory])
 
 
 class SvnProvider(Provider):
@@ -93,14 +96,10 @@
 
     def create(self):
         """Check out the svn repository to 'directory'."""
-        subprocess.check_call(['svn', 'checkout', '-q',
-                               self.url, self.directory])
+        subprocess.check_call(['svn', 'checkout', self.url, self.directory])
 
-    def update(self):
-        """Update the svn checkout in 'directory'."""
-        subprocess.check_call(['svn', 'update', '-q', self.directory])
 
-
+ at rename('Visual C++ Express')
 class VisualCPPExpress(Provider):
 
     """The Web installer for Visual C++ Express"""
@@ -121,9 +120,9 @@
             pass
         self._prompt('download Visual C++ Express at {} and put in {}'.format(
                         url, self.directory))
-VisualCPPExpress.__name__ = 'Visual C++ Express'
 
 
+ at rename('coverage.py')
 class CoveragePy(HgProvider):
 
     """Cloned repository of coverage.py (WARNING: building takes a while)"""
@@ -132,8 +131,13 @@
     directory = 'coveragepy'
     size = 0 # XXX coverage report for CPython
 
-    # XXX build runs coverage tests
-CoveragePy.__name__ = 'coverage.py'
+    def build(self):
+        """Run coverage over CPython."""
+        # XXX build python
+        # XXX run coverage
+        # XXX ``make distclean``
+        # XXX generate html
+        run_coverage.main()
 
 
 class Mercurial(Provider):
@@ -154,8 +158,9 @@
         try:
             return release_data['download_url']
         except KeyError:
-            # XXX
-            pass
+            print('Mercurial has changed how it releases software on PyPI; '
+                  'please report this to bugs.python.org')
+            sys.exit(1)
 
     def _url_filename(self, url):
         """Find the filename from the URL."""
@@ -198,10 +203,9 @@
     size = 20
 
     def build(self):
-        """Build the PEPs and symlink PEP 0."""
+        """Build the PEPs."""
         with change_cwd(self.directory):
             subprocess.check_call(['make'])
-        os.symlink(os.path.join(self.directory, 'pep-0000.html'), 'peps.html')
 
 
 class Devguide(HgProvider):
@@ -214,19 +218,19 @@
     directory = 'devguide'
 
     def build(self):
-        """Build the devguide and symlink its index page."""
+        """Build the devguide using Sphinx from CPython's docs."""
         # Grab Sphinx from cpython/Doc/tools/
         tools_directory = os.path.join(CPython.directory, 'Doc', 'tools')
-        orig_pythonpath = os.environ['PYTHONPATH']
+        orig_pythonpath = os.environ.get('PYTHONPATH')
         os.environ['PYTHONPATH'] = os.path.abspath(tools_directory)
         try:
             with change_cwd(self.directory):
                 subprocess.check_call(['make', 'html'])
         finally:
-            os.environ['PYTHONPATH'] = orig_pythonpath
+            if orig_pythonpath:
+                os.environ['PYTHONPATH'] = orig_pythonpath
         index_path = os.path.join(self.directory, '_build', 'html',
                                   'index.html')
-        os.symlink(index_path, 'devguide.html')
 
 
 class CPython(HgProvider):
@@ -235,13 +239,14 @@
 
     url = 'http://hg.python.org/cpython'
     directory = 'cpython'
-    size = 325  # Only docs are built
+    size = 330  # Only docs are built
 
     def create(self):
         """Clone CPython and get the necessary tools to build the
         documentation."""
         super().create()
         with change_cwd(os.path.join(self.directory, 'Doc')):
+            # XXX Windows?
             subprocess.check_call(['make', 'checkout'])
 
     def build(self):
@@ -255,8 +260,6 @@
         cmd = 'make' if sys.platform != 'win32' else 'make.bat'
         with change_cwd(os.path.join(self.directory, 'Doc')):
                 subprocess.check_call([cmd, 'html'])
-        os.symlink(os.path.join(self.directory, 'Doc', 'html', 'index.html'),
-                   'python_docs.html')
 
 
 if __name__ == '__main__':
@@ -276,7 +279,7 @@
                             desired_providers))
     print('Getting {}'.format(getting))
     total_size = sum(map(operator.attrgetter('size'), desired_providers))
-    msg = 'The requested Box will be about {} MB. OK [y/n]? '.format(total_size)
+    msg = 'The requested Box will be about {} MB. OK? [y/n] '.format(total_size)
     response = input(msg)
     if response not in ('Y', 'y'):
         sys.exit(0)
diff --git a/run_tests.py b/run_all_tests.py
rename from run_tests.py
rename to run_all_tests.py

--
Repository URL: http://hg.python.org/devinabox


More information about the Python-checkins mailing list