@@ -1064,9 +1064,8 @@ def read_pkg_file(self, file):
10641064
10651065 def _read_field (name ):
10661066 value = msg [name ]
1067- if value == 'UNKNOWN' :
1068- return None
1069- return value
1067+ if value and value != "UNKNOWN" :
1068+ return value
10701069
10711070 def _read_list (name ):
10721071 values = msg .get_all (name , None )
@@ -1125,23 +1124,24 @@ def write_pkg_file(self, file):
11251124 self .classifiers or self .download_url ):
11261125 version = '1.1'
11271126
1127+ # required fields
11281128 file .write ('Metadata-Version: %s\n ' % version )
11291129 file .write ('Name: %s\n ' % self .get_name ())
11301130 file .write ('Version: %s\n ' % self .get_version ())
1131- file .write ('Summary: %s\n ' % self .get_description ())
1132- file .write ('Home-page: %s\n ' % self .get_url ())
1133- file .write ('Author: %s\n ' % self .get_contact ())
1134- file .write ('Author-email: %s\n ' % self .get_contact_email ())
1135- file .write ('License: %s\n ' % self .get_license ())
1136- if self .download_url :
1137- file .write ('Download-URL: %s\n ' % self .download_url )
11381131
1139- long_desc = rfc822_escape (self .get_long_description ())
1140- file .write ('Description: %s\n ' % long_desc )
1132+ def maybe_write (header , val ):
1133+ if val :
1134+ file .write ("{}: {}\n " .format (header , val ))
11411135
1142- keywords = ',' .join (self .get_keywords ())
1143- if keywords :
1144- file .write ('Keywords: %s\n ' % keywords )
1136+ # optional fields
1137+ maybe_write ("Summary" , self .get_description ())
1138+ maybe_write ("Home-page" , self .get_url ())
1139+ maybe_write ("Author" , self .get_contact ())
1140+ maybe_write ("Author-email" , self .get_contact_email ())
1141+ maybe_write ("License" , self .get_license ())
1142+ maybe_write ("Download-URL" , self .download_url )
1143+ maybe_write ("Description" , rfc822_escape (self .get_long_description () or "" ))
1144+ maybe_write ("Keywords" , "," .join (self .get_keywords ()))
11451145
11461146 self ._write_list (file , 'Platform' , self .get_platforms ())
11471147 self ._write_list (file , 'Classifier' , self .get_classifiers ())
@@ -1152,6 +1152,7 @@ def write_pkg_file(self, file):
11521152 self ._write_list (file , 'Obsoletes' , self .get_obsoletes ())
11531153
11541154 def _write_list (self , file , name , values ):
1155+ values = values or []
11551156 for value in values :
11561157 file .write ('%s: %s\n ' % (name , value ))
11571158
@@ -1167,35 +1168,35 @@ def get_fullname(self):
11671168 return "%s-%s" % (self .get_name (), self .get_version ())
11681169
11691170 def get_author (self ):
1170- return self .author or "UNKNOWN"
1171+ return self .author
11711172
11721173 def get_author_email (self ):
1173- return self .author_email or "UNKNOWN"
1174+ return self .author_email
11741175
11751176 def get_maintainer (self ):
1176- return self .maintainer or "UNKNOWN"
1177+ return self .maintainer
11771178
11781179 def get_maintainer_email (self ):
1179- return self .maintainer_email or "UNKNOWN"
1180+ return self .maintainer_email
11801181
11811182 def get_contact (self ):
1182- return self .maintainer or self .author or "UNKNOWN"
1183+ return self .maintainer or self .author
11831184
11841185 def get_contact_email (self ):
1185- return self .maintainer_email or self .author_email or "UNKNOWN"
1186+ return self .maintainer_email or self .author_email
11861187
11871188 def get_url (self ):
1188- return self .url or "UNKNOWN"
1189+ return self .url
11891190
11901191 def get_license (self ):
1191- return self .license or "UNKNOWN"
1192+ return self .license
11921193 get_licence = get_license
11931194
11941195 def get_description (self ):
1195- return self .description or "UNKNOWN"
1196+ return self .description
11961197
11971198 def get_long_description (self ):
1198- return self .long_description or "UNKNOWN"
1199+ return self .long_description
11991200
12001201 def get_keywords (self ):
12011202 return self .keywords or []
@@ -1204,7 +1205,7 @@ def set_keywords(self, value):
12041205 self .keywords = _ensure_list (value , 'keywords' )
12051206
12061207 def get_platforms (self ):
1207- return self .platforms or [ "UNKNOWN" ]
1208+ return self .platforms
12081209
12091210 def set_platforms (self , value ):
12101211 self .platforms = _ensure_list (value , 'platforms' )
@@ -1216,7 +1217,7 @@ def set_classifiers(self, value):
12161217 self .classifiers = _ensure_list (value , 'classifiers' )
12171218
12181219 def get_download_url (self ):
1219- return self .download_url or "UNKNOWN"
1220+ return self .download_url
12201221
12211222 # PEP 314
12221223 def get_requires (self ):
0 commit comments