Mercurial > repos > shellac > guppy_basecaller
diff env/lib/python3.7/site-packages/boto/resultset.py @ 5:9b1c78e6ba9c draft default tip
"planemo upload commit 6c0a8142489327ece472c84e558c47da711a9142"
author | shellac |
---|---|
date | Mon, 01 Jun 2020 08:59:25 -0400 |
parents | 79f47841a781 |
children |
line wrap: on
line diff
--- a/env/lib/python3.7/site-packages/boto/resultset.py Thu May 14 16:47:39 2020 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,176 +0,0 @@ -# Copyright (c) 2006,2007 Mitch Garnaat http://garnaat.org/ -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the -# "Software"), to deal in the Software without restriction, including -# without limitation the rights to use, copy, modify, merge, publish, dis- -# tribute, sublicense, and/or sell copies of the Software, and to permit -# persons to whom the Software is furnished to do so, subject to the fol- -# lowing conditions: -# -# The above copyright notice and this permission notice shall be included -# in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL- -# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -# IN THE SOFTWARE. - -from boto.s3.user import User - - -class ResultSet(list): - """ - The ResultSet is used to pass results back from the Amazon services - to the client. It is light wrapper around Python's :py:class:`list` class, - with some additional methods for parsing XML results from AWS. - Because I don't really want any dependencies on external libraries, - I'm using the standard SAX parser that comes with Python. The good news is - that it's quite fast and efficient but it makes some things rather - difficult. - - You can pass in, as the marker_elem parameter, a list of tuples. - Each tuple contains a string as the first element which represents - the XML element that the resultset needs to be on the lookout for - and a Python class as the second element of the tuple. Each time the - specified element is found in the XML, a new instance of the class - will be created and popped onto the stack. - - :ivar str next_token: A hash used to assist in paging through very long - result sets. In most cases, passing this value to certain methods - will give you another 'page' of results. - """ - def __init__(self, marker_elem=None): - list.__init__(self) - if isinstance(marker_elem, list): - self.markers = marker_elem - else: - self.markers = [] - self.marker = None - self.key_marker = None - self.next_marker = None # avail when delimiter used - self.next_key_marker = None - self.next_upload_id_marker = None - self.next_version_id_marker = None - self.next_generation_marker = None - self.version_id_marker = None - self.is_truncated = False - self.next_token = None - self.status = True - - def startElement(self, name, attrs, connection): - for t in self.markers: - if name == t[0]: - obj = t[1](connection) - self.append(obj) - return obj - if name == 'Owner': - # Makes owner available for get_service and - # perhaps other lists where not handled by - # another element. - self.owner = User() - return self.owner - return None - - def to_boolean(self, value, true_value='true'): - if value == true_value: - return True - else: - return False - - def endElement(self, name, value, connection): - if name == 'IsTruncated': - self.is_truncated = self.to_boolean(value) - elif name == 'Marker': - self.marker = value - elif name == 'KeyMarker': - self.key_marker = value - elif name == 'NextMarker': - self.next_marker = value - elif name == 'NextKeyMarker': - self.next_key_marker = value - elif name == 'VersionIdMarker': - self.version_id_marker = value - elif name == 'NextVersionIdMarker': - self.next_version_id_marker = value - elif name == 'NextGenerationMarker': - self.next_generation_marker = value - elif name == 'UploadIdMarker': - self.upload_id_marker = value - elif name == 'NextUploadIdMarker': - self.next_upload_id_marker = value - elif name == 'Bucket': - self.bucket = value - elif name == 'MaxUploads': - self.max_uploads = int(value) - elif name == 'MaxItems': - self.max_items = int(value) - elif name == 'Prefix': - self.prefix = value - elif name == 'return': - self.status = self.to_boolean(value) - elif name == 'StatusCode': - self.status = self.to_boolean(value, 'Success') - elif name == 'ItemName': - self.append(value) - elif name == 'NextToken': - self.next_token = value - elif name == 'nextToken': - self.next_token = value - # Code exists which expects nextToken to be available, so we - # set it here to remain backwards-compatibile. - self.nextToken = value - elif name == 'BoxUsage': - try: - connection.box_usage += float(value) - except: - pass - elif name == 'IsValid': - self.status = self.to_boolean(value, 'True') - else: - setattr(self, name, value) - - -class BooleanResult(object): - - def __init__(self, marker_elem=None): - self.status = True - self.request_id = None - self.box_usage = None - - def __repr__(self): - if self.status: - return 'True' - else: - return 'False' - - def __nonzero__(self): - return self.status - - def startElement(self, name, attrs, connection): - return None - - def to_boolean(self, value, true_value='true'): - if value == true_value: - return True - else: - return False - - def endElement(self, name, value, connection): - if name == 'return': - self.status = self.to_boolean(value) - elif name == 'StatusCode': - self.status = self.to_boolean(value, 'Success') - elif name == 'IsValid': - self.status = self.to_boolean(value, 'True') - elif name == 'RequestId': - self.request_id = value - elif name == 'requestId': - self.request_id = value - elif name == 'BoxUsage': - self.request_id = value - else: - setattr(self, name, value)