comparison env/lib/python3.7/site-packages/boto/s3/multidelete.py @ 2:6af9afd405e9 draft

"planemo upload commit 0a63dd5f4d38a1f6944587f52a8cd79874177fc1"
author shellac
date Thu, 14 May 2020 14:56:58 -0400
parents 26e78fe6e8c4
children
comparison
equal deleted inserted replaced
1:75ca89e9b81c 2:6af9afd405e9
1 # Copyright (c) 2011 Mitch Garnaat http://garnaat.org/
2 #
3 # Permission is hereby granted, free of charge, to any person obtaining a
4 # copy of this software and associated documentation files (the
5 # "Software"), to deal in the Software without restriction, including
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
8 # persons to whom the Software is furnished to do so, subject to the fol-
9 # lowing conditions:
10 #
11 # The above copyright notice and this permission notice shall be included
12 # in all copies or substantial portions of the Software.
13 #
14 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15 # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
16 # ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
17 # SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
18 # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
20 # IN THE SOFTWARE.
21
22 from boto import handler
23 import xml.sax
24
25 class Deleted(object):
26 """
27 A successfully deleted object in a multi-object delete request.
28
29 :ivar key: Key name of the object that was deleted.
30
31 :ivar version_id: Version id of the object that was deleted.
32
33 :ivar delete_marker: If True, indicates the object deleted
34 was a DeleteMarker.
35
36 :ivar delete_marker_version_id: Version ID of the delete marker
37 deleted.
38 """
39 def __init__(self, key=None, version_id=None,
40 delete_marker=False, delete_marker_version_id=None):
41 self.key = key
42 self.version_id = version_id
43 self.delete_marker = delete_marker
44 self.delete_marker_version_id = delete_marker_version_id
45
46 def __repr__(self):
47 if self.version_id:
48 return '<Deleted: %s.%s>' % (self.key, self.version_id)
49 else:
50 return '<Deleted: %s>' % self.key
51
52 def startElement(self, name, attrs, connection):
53 return None
54
55 def endElement(self, name, value, connection):
56 if name == 'Key':
57 self.key = value
58 elif name == 'VersionId':
59 self.version_id = value
60 elif name == 'DeleteMarker':
61 if value.lower() == 'true':
62 self.delete_marker = True
63 elif name == 'DeleteMarkerVersionId':
64 self.delete_marker_version_id = value
65 else:
66 setattr(self, name, value)
67
68 class Error(object):
69 """
70 An unsuccessful deleted object in a multi-object delete request.
71
72 :ivar key: Key name of the object that was not deleted.
73
74 :ivar version_id: Version id of the object that was not deleted.
75
76 :ivar code: Status code of the failed delete operation.
77
78 :ivar message: Status message of the failed delete operation.
79 """
80 def __init__(self, key=None, version_id=None,
81 code=None, message=None):
82 self.key = key
83 self.version_id = version_id
84 self.code = code
85 self.message = message
86
87 def __repr__(self):
88 if self.version_id:
89 return '<Error: %s.%s(%s)>' % (self.key, self.version_id,
90 self.code)
91 else:
92 return '<Error: %s(%s)>' % (self.key, self.code)
93
94 def startElement(self, name, attrs, connection):
95 return None
96
97 def endElement(self, name, value, connection):
98 if name == 'Key':
99 self.key = value
100 elif name == 'VersionId':
101 self.version_id = value
102 elif name == 'Code':
103 self.code = value
104 elif name == 'Message':
105 self.message = value
106 else:
107 setattr(self, name, value)
108
109 class MultiDeleteResult(object):
110 """
111 The status returned from a MultiObject Delete request.
112
113 :ivar deleted: A list of successfully deleted objects. Note that if
114 the quiet flag was specified in the request, this list will
115 be empty because only error responses would be returned.
116
117 :ivar errors: A list of unsuccessfully deleted objects.
118 """
119
120 def __init__(self, bucket=None):
121 self.bucket = None
122 self.deleted = []
123 self.errors = []
124
125 def startElement(self, name, attrs, connection):
126 if name == 'Deleted':
127 d = Deleted()
128 self.deleted.append(d)
129 return d
130 elif name == 'Error':
131 e = Error()
132 self.errors.append(e)
133 return e
134 return None
135
136 def endElement(self, name, value, connection):
137 setattr(self, name, value)
138