Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(151)

Side by Side Diff: boto/sdb/db/blob.py

Issue 8386013: Merging in latest boto. (Closed) Base URL: svn://svn.chromium.org/boto
Patch Set: Redoing vendor drop by deleting and then merging. Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « boto/sdb/connection.py ('k') | boto/sdb/db/manager/__init__.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2006,2007,2008 Mitch Garnaat http://garnaat.org/ 1 # Copyright (c) 2006,2007,2008 Mitch Garnaat http://garnaat.org/
2 # 2 #
3 # Permission is hereby granted, free of charge, to any person obtaining a 3 # Permission is hereby granted, free of charge, to any person obtaining a
4 # copy of this software and associated documentation files (the 4 # copy of this software and associated documentation files (the
5 # "Software"), to deal in the Software without restriction, including 5 # "Software"), to deal in the Software without restriction, including
6 # without limitation the rights to use, copy, modify, merge, publish, dis- 6 # without limitation the rights to use, copy, modify, merge, publish, dis-
7 # tribute, sublicense, and/or sell copies of the Software, and to permit 7 # tribute, sublicense, and/or sell copies of the Software, and to permit
8 # persons to whom the Software is furnished to do so, subject to the fol- 8 # persons to whom the Software is furnished to do so, subject to the fol-
9 # lowing conditions: 9 # lowing conditions:
10 # 10 #
(...skipping 19 matching lines...) Expand all
30 @property 30 @property
31 def file(self): 31 def file(self):
32 from StringIO import StringIO 32 from StringIO import StringIO
33 if self._file: 33 if self._file:
34 f = self._file 34 f = self._file
35 else: 35 else:
36 f = StringIO(self.value) 36 f = StringIO(self.value)
37 return f 37 return f
38 38
39 def __str__(self): 39 def __str__(self):
40 return unicode(self).encode('utf-8')
41
42 def __unicode__(self):
40 if hasattr(self.file, "get_contents_as_string"): 43 if hasattr(self.file, "get_contents_as_string"):
41 value = self.file.get_contents_as_string() 44 value = self.file.get_contents_as_string()
42 else: 45 else:
43 value = self.file.getvalue() 46 value = self.file.getvalue()
44 try: 47 if isinstance(value, unicode):
45 return str(value) 48 return value
46 except: 49 else:
47 return unicode(value) 50 return value.decode('utf-8')
51
48 52
49 def read(self): 53 def read(self):
50 return self.file.read() 54 if hasattr(self.file, "get_contents_as_string"):
55 return self.file.get_contents_as_string()
56 else:
57 return self.file.read()
51 58
52 def readline(self): 59 def readline(self):
53 return self.file.readline() 60 return self.file.readline()
54 61
55 def next(self): 62 def next(self):
56 return self.file.next() 63 return self.file.next()
57 64
58 def __iter__(self): 65 def __iter__(self):
59 return iter(self.file) 66 return iter(self.file)
60 67
61 @property 68 @property
62 def size(self): 69 def size(self):
63 if self._file: 70 if self._file:
64 return self._file.size 71 return self._file.size
65 elif self.value: 72 elif self.value:
66 return len(self.value) 73 return len(self.value)
67 else: 74 else:
68 return 0 75 return 0
OLDNEW
« no previous file with comments | « boto/sdb/connection.py ('k') | boto/sdb/db/manager/__init__.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698