[Python-checkins] distutils2: setting package manually - a automatic introspection does not work in a real

tarek.ziade python-checkins at python.org
Sat Oct 2 14:52:55 CEST 2010


tarek.ziade pushed d65a95478c76 to distutils2:
http://hg.python.org/distutils2/rev/d65a95478c76
changeset: 734:d65a95478c76
tag: tip
user: Tarek Ziade <tarek at ziade.org>
date: Sat Oct 02 14:52:49 2010 +0200
summary: setting package manually - a automatic introspection does not work in a real environment
files: distutils2/mkpkg.py
diff --git a/distutils2/mkpkg.py b/distutils2/mkpkg.py
--- a/distutils2/mkpkg.py
+++ b/distutils2/mkpkg.py
@@ -60,7 +60,11 @@
 for Linux under the PSF license. However, this can be a somewhat involved
 process.
 ''',
- 'url': '''
+ 'package': '''
+You can provide a package name contained in your project.
+''',
+
+ 'home_page': '''
 The home page for the package, typically starting with "http://".
 ''',
 'trove_license': '''
@@ -78,6 +82,7 @@
 
 
 def ask_yn(question, default=None, helptext=None):
+ question += ' (y/n)'
 while True:
 answer = ask(question, default, helptext, required=True)
 if answer and answer[0].lower() in 'yn':
@@ -143,7 +148,7 @@
 self.classifiers = {}
 self.data = {}
 self.data['classifier'] = self.classifiers
- self.data['packages'] = {}
+ self.data['packages'] = []
 self.load_config_file()
 
 def lookup_option(self, key):
@@ -212,24 +217,8 @@
 self.data['name'] = m.group(1)
 self.data['version'] = m.group(2)
 
- for root, dirs, files in os.walk(os.curdir):
- for filename in files:
- if root == os.curdir and filename == _FILENAME:
- continue
- self.inspect_file(os.path.join(root, filename))
-
- if filename == '__init__.py':
- trySrc = os.path.join(os.curdir, 'src')
- tmpRoot = root
- if tmpRoot.startswith(trySrc):
- tmpRoot = tmpRoot[len(trySrc):]
- if tmpRoot.startswith(os.path.sep):
- tmpRoot = tmpRoot[len(os.path.sep):]
-
- self.data['packages'][tmpRoot] = root[1 + len(os.path.sep):]
-
 def query_user(self):
- self.data['name'] = ask('Package name', self.data['name'],
+ self.data['name'] = ask('Project name', self.data['name'],
 _helptext['name'])
 self.data['version'] = ask('Current version number',
 self.data.get('version'), _helptext['version'])
@@ -240,13 +229,26 @@
 self.data.get('author'), _helptext['author'])
 self.data['author_email'] = ask('Author e-mail address',
 self.data.get('author_email'), _helptext['author_email'])
- self.data['url'] = ask('Project URL',
- self.data.get('url'), _helptext['url'], required=False)
+ self.data['home_page'] = ask('Project Home Page',
+ self.data.get('home_page'), _helptext['home_page'],
+ required=False)
+
+ while ask_yn('Do you want to add a package ?',
+ helptext=_helptext['package']) == 'y':
+ self.set_package()
 
 if ask_yn('Do you want to set Trove classifiers?',
 helptext=_helptext['do_classifier']) == 'y':
 self.set_classifier()
 
+ def set_package(self):
+ packages = self.data['packages']
+ name = ask('Package name', helptext=_helptext['package']).strip()
+ if name == '':
+ return
+ if name not in packages:
+ packages.append(name)
+
 def set_classifier(self):
 self.set_devel_status(self.classifiers)
 self.set_license(self.classifiers)
@@ -378,12 +380,13 @@
 fp.write('author = %s\n' % self.data['author'])
 fp.write('author_email = %s\n' % self.data['author_email'])
 fp.write('description = %s\n' % self.data['description'])
- fp.write('home_url = %s\n' % self.data['url'])
+ fp.write('home_page = %s\n' % self.data['home_page'])
 fp.write('\n')
- classifiers = '\n'.join([' %s' % clas for clas in
- self.data['classifier']])
- fp.write('classifier = %s\n' % classifiers.strip())
-
+ if len(self.data['classifier']) > 0:
+ classifiers = '\n'.join([' %s' % clas for clas in
+ self.data['classifier']])
+ fp.write('classifier = %s\n' % classifiers.strip())
+ fp.write('\n')
 
 fp.write('[files]\n')
 packages = '\n'.join([' %s' % pkg for pkg in
--
Repository URL: http://hg.python.org/distutils2


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /