[Python-checkins] distutils2: add --metadata option

tarek.ziade python-checkins at python.org
Sat Jan 29 12:59:10 CET 2011


tarek.ziade pushed 35838832577a to distutils2:

http://hg.python.org/distutils2/rev/35838832577a
changeset:   905:35838832577a
user:        Gael Pasgrimaud <gael at gawel.org>
date:        Sat Jan 29 12:33:00 2011 +0100
summary:
  add --metadata option

files:
  distutils2/run.py

diff --git a/distutils2/run.py b/distutils2/run.py
--- a/distutils2/run.py
+++ b/distutils2/run.py
@@ -124,6 +124,10 @@
                   action="store_true", dest="version", default=False,
                   help="Prints out the version of Distutils2 and exits.")
 
+    parser.add_option("-m", "--metadata",
+                  action="append", dest="metadata", default=[],
+                  help="List METADATA metadata or 'all' for all metadatas.")
+
     parser.add_option("-s", "--search",
                   action="store", dest="search", default=None,
                   help="Search for installed distributions.")
@@ -141,6 +145,31 @@
         print('Distutils2 %s' % __version__)
 #        sys.exit(0)
 
+    if len(options.metadata):
+        from distutils2.dist import Distribution
+        dist = Distribution()
+        dist.parse_config_files()
+        metadata = dist.metadata
+
+        if 'all' in options.metadata:
+            keys = metadata.keys()
+        else:
+            keys = options.metadata
+            if len(keys) == 1:
+                print metadata[keys[0]]
+                sys.exit(0)
+
+        for key in keys:
+            if key in metadata:
+                print(metadata._convert_name(key)+':')
+                value = metadata[key]
+                if isinstance(value, list):
+                    for v in value:
+                        print('    '+v)
+                else:
+                    print('    '+value.replace('\n', '\n    '))
+        sys.exit(0)
+
     if options.search is not None:
         search = options.search.lower()
         for dist in get_distributions(use_egg_info=True):

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


More information about the Python-checkins mailing list