Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # coding: utf-8 | 2 # coding: utf-8 |
| 3 # | 3 # |
| 4 # Copyright 2007 Google Inc. | 4 # Copyright 2007 Google Inc. |
| 5 # | 5 # |
| 6 # Licensed under the Apache License, Version 2.0 (the "License"); | 6 # Licensed under the Apache License, Version 2.0 (the "License"); |
| 7 # you may not use this file except in compliance with the License. | 7 # you may not use this file except in compliance with the License. |
| 8 # You may obtain a copy of the License at | 8 # You may obtain a copy of the License at |
| 9 # | 9 # |
| 10 # http://www.apache.org/licenses/LICENSE-2.0 | 10 # http://www.apache.org/licenses/LICENSE-2.0 |
| (...skipping 955 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 966 Args: | 966 Args: |
| 967 fields: A sequence of (name, value) elements for regular form fields. | 967 fields: A sequence of (name, value) elements for regular form fields. |
| 968 files: A sequence of (name, filename, value) elements for data to be | 968 files: A sequence of (name, filename, value) elements for data to be |
| 969 uploaded as files. | 969 uploaded as files. |
| 970 Returns: | 970 Returns: |
| 971 (content_type, body) ready for httplib.HTTP instance. | 971 (content_type, body) ready for httplib.HTTP instance. |
| 972 | 972 |
| 973 Source: | 973 Source: |
| 974 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/146306 | 974 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/146306 |
| 975 """ | 975 """ |
| 976 BOUNDARY = '-M-A-G-I-C---B-O-U-N-D-A-R-Y-' | 976 BOUNDARY = '-M-A-G-I-C---B-O-U-N-D-A-R-Y-%s-' % sum(hash(f) for f in files) |
|
iannucci
2014/10/13 18:19:16
oh... I was meaning a real crypographic hash over
| |
| 977 CRLF = '\r\n' | 977 CRLF = '\r\n' |
| 978 lines = [] | 978 lines = [] |
| 979 for (key, value) in fields: | 979 for (key, value) in fields: |
| 980 lines.append('--' + BOUNDARY) | 980 lines.append('--' + BOUNDARY) |
| 981 lines.append('Content-Disposition: form-data; name="%s"' % key) | 981 lines.append('Content-Disposition: form-data; name="%s"' % key) |
| 982 lines.append('') | 982 lines.append('') |
| 983 if isinstance(value, unicode): | 983 if isinstance(value, unicode): |
| 984 value = value.encode('utf-8') | 984 value = value.encode('utf-8') |
| 985 lines.append(value) | 985 lines.append(value) |
| 986 for (key, filename, value) in files: | 986 for (key, filename, value) in files: |
| (...skipping 1719 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2706 os.environ['LC_ALL'] = 'C' | 2706 os.environ['LC_ALL'] = 'C' |
| 2707 RealMain(sys.argv) | 2707 RealMain(sys.argv) |
| 2708 except KeyboardInterrupt: | 2708 except KeyboardInterrupt: |
| 2709 print | 2709 print |
| 2710 StatusUpdate("Interrupted.") | 2710 StatusUpdate("Interrupted.") |
| 2711 sys.exit(1) | 2711 sys.exit(1) |
| 2712 | 2712 |
| 2713 | 2713 |
| 2714 if __name__ == "__main__": | 2714 if __name__ == "__main__": |
| 2715 main() | 2715 main() |
| OLD | NEW |