[Python-checkins] distutils2: sending to PyPI various metadata versions in the register command
tarek.ziade
python-checkins at python.org
Wed Mar 17 05:13:02 CET 2010
tarek.ziade pushed 342424580a5f to distutils2:
http://hg.python.org/distutils2/rev/342424580a5f
changeset: 82:342424580a5f
tag: tip
user: Tarek Ziade <tarek at ziade.org>
date: Wed Mar 17 00:12:54 2010 -0400
summary: sending to PyPI various metadata versions in the register command
files: src/distutils2/command/register.py, src/distutils2/tests/test_register.py
diff --git a/src/distutils2/command/register.py b/src/distutils2/command/register.py
--- a/src/distutils2/command/register.py
+++ b/src/distutils2/command/register.py
@@ -227,8 +227,7 @@
meta = self.distribution.metadata
data = {
':action': action,
- # XXX implement 1.1
- 'metadata_version' : '1.0',
+ 'metadata_version' : meta.version,
'name': meta['Name'],
'version': meta['Version'],
'summary': meta['Summary'],
@@ -241,12 +240,21 @@
'platform': meta['Platform'],
'classifier': meta['Classifier'],
'download_url': meta['Download-URL'],
- #'provides': meta['Provides'],
- #'requires': meta['Requires'],
- #'obsoletes': meta['Obsoletes'],
}
- #if data['provides'] or data['requires'] or data['obsoletes']:
- # data['metadata_version'] = '1.1'
+
+ if meta.version == '1.2':
+ data['requires_dist'] = meta['Requires-Dist']
+ data['requires_python'] = meta['Requires-Python']
+ data['requires_external'] = meta['Requires-External']
+ data['provides_dist'] = meta['Provides-Dist']
+ data['obsoletes_dist'] = meta['Obsoletes-Dist']
+ data['project_url'] = meta['Project-Url']
+
+ elif meta.version == '1.1':
+ data['provides'] = meta['Provides']
+ data['requires'] = meta['Requires']
+ data['obsoletes'] = meta['Obsoletes']
+
return data
def post_to_server(self, data, auth=None):
@@ -263,8 +271,9 @@
body = StringIO.StringIO()
for key, value in data.items():
# handle multiple entries for the same name
- if type(value) not in (type([]), type( () )):
+ if not isinstance(value, (tuple, list)):
value = [value]
+
for value in value:
body.write(sep_boundary)
body.write('\nContent-Disposition: form-data; name="%s"'%key)
diff --git a/src/distutils2/tests/test_register.py b/src/distutils2/tests/test_register.py
--- a/src/distutils2/tests/test_register.py
+++ b/src/distutils2/tests/test_register.py
@@ -240,6 +240,14 @@
finally:
del register_module.raw_input
+ def test_register_pep345(self):
+ cmd = self._get_cmd({})
+ cmd.ensure_finalized()
+ cmd.distribution.metadata['Requires-Dist'] = ['lxml']
+ data = cmd.build_post_data('submit')
+ self.assertEquals(data['metadata_version'], '1.2')
+ self.assertEquals(data['requires_dist'], ['lxml'])
+
def test_suite():
return unittest2.makeSuite(RegisterTestCase)
--
Repository URL: http://hg.python.org/distutils2
More information about the Python-checkins
mailing list