summaryrefslogtreecommitdiff
path: root/src/distutils2/command
diff options
context:
space:
mode:
authorTarek Ziade <tarek@ziade.org>2010-03-17 00:12:54 -0400
committerTarek Ziade <tarek@ziade.org>2010-03-17 00:12:54 -0400
commit40c3c1bd6befb8d0d4f34d3510dc237fa9bc8171 (patch)
treef2e34c57919733a1128e4b1f9f4fa1ae73a99b63 /src/distutils2/command
parent9b2180743d4ed6e6809bae0d4fec44d662a56f63 (diff)
downloaddisutils2-40c3c1bd6befb8d0d4f34d3510dc237fa9bc8171.tar.gz
sending to PyPI various metadata versions in the register command
Diffstat (limited to 'src/distutils2/command')
-rw-r--r--src/distutils2/command/register.py25
1 files changed, 17 insertions, 8 deletions
diff --git a/src/distutils2/command/register.py b/src/distutils2/command/register.py
index c751200..d060dc8 100644
--- a/src/distutils2/command/register.py
+++ b/src/distutils2/command/register.py
@@ -227,8 +227,7 @@ Your selection [default 1]: ''', log.INFO)
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 @@ Your selection [default 1]: ''', log.INFO)
'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 @@ Your selection [default 1]: ''', log.INFO)
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)