blob: ba2013ec5a075ca4111a43bec48ffa1afb46f886 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
import sys
import traceback
from django.core.files.uploadedfile import SimpleUploadedFile
from django.utils.datastructures import MultiValueDict
def transmute(f):
if hasattr(f, "filename") and f.filename:
v = SimpleUploadedFile(f.filename, f.value, f.type)
else:
v = f.value.decode("utf-8")
return v
def decode_fs(fs):
POST, FILES = {}, {}
for k in fs.keys():
v = transmute(fs[k])
if isinstance(v, SimpleUploadedFile):
FILES[k] = [v]
else:
# Distutils sends UNKNOWN for empty fields (e.g platform)
# [russell.sim@gmail.com]
if v == "UNKNOWN":
v = None
POST[k] = [v]
return MultiValueDict(POST), MultiValueDict(FILES)
def debug(func):
# @debug is handy when debugging distutils requests
def _wrapped(*args, **kwargs):
try:
return func(*args, **kwargs)
except:
traceback.print_exception(*sys.exc_info())
return _wrapped
|