comparison lib/python3.8/site-packages/wheel/pkginfo.py @ 1:64071f2a4cf0 draft default tip

Deleted selected files
author guerler
date Mon, 27 Jul 2020 03:55:49 -0400
parents 9e54283cc701
children
comparison
equal deleted inserted replaced
0:9e54283cc701 1:64071f2a4cf0
1 """Tools for reading and writing PKG-INFO / METADATA without caring
2 about the encoding."""
3
4 from email.parser import Parser
5
6 try:
7 unicode
8 _PY3 = False
9 except NameError:
10 _PY3 = True
11
12 if not _PY3:
13 from email.generator import Generator
14
15 def read_pkg_info_bytes(bytestr):
16 return Parser().parsestr(bytestr)
17
18 def read_pkg_info(path):
19 with open(path, "r") as headers:
20 message = Parser().parse(headers)
21 return message
22
23 def write_pkg_info(path, message):
24 with open(path, 'w') as metadata:
25 Generator(metadata, mangle_from_=False, maxheaderlen=0).flatten(message)
26 else:
27 from email.generator import BytesGenerator
28
29 def read_pkg_info_bytes(bytestr):
30 headers = bytestr.decode(encoding="ascii", errors="surrogateescape")
31 message = Parser().parsestr(headers)
32 return message
33
34 def read_pkg_info(path):
35 with open(path, "r",
36 encoding="ascii",
37 errors="surrogateescape") as headers:
38 message = Parser().parse(headers)
39 return message
40
41 def write_pkg_info(path, message):
42 with open(path, "wb") as out:
43 BytesGenerator(out, mangle_from_=False, maxheaderlen=0).flatten(message)