/usr/lib/python2.6/site-packages/boto
NameSizeModeActions
beanstalk/-0755rm
cacerts/-0755rm
cloudformation/-0755rm
cloudfront/-0755rm
cloudsearch/-0755rm
cloudsearch2/-0755rm
cloudtrail/-0755rm
cognito/-0755rm
contrib/-0755rm
datapipeline/-0755rm
directconnect/-0755rm
dynamodb/-0755rm
dynamodb2/-0755rm
ec2/-0755rm
ecs/-0755rm
elasticache/-0755rm
elastictranscoder/-0755rm
emr/-0755rm
file/-0755rm
fps/-0755rm
glacier/-0755rm
gs/-0755rm
iam/-0755rm
kinesis/-0755rm
logs/-0755rm
manage/-0755rm
mashups/-0755rm
mturk/-0755rm
mws/-0755rm
opsworks/-0755rm
pyami/-0755rm
rds/-0755rm
rds2/-0755rm
redshift/-0755rm
roboto/-0755rm
route53/-0755rm
s3/-0755rm
sdb/-0755rm
services/-0755rm
ses/-0755rm
sns/-0755rm
sqs/-0755rm
sts/-0755rm
support/-0755rm
swf/-0755rm
vendored/-0755rm
vpc/-0755rm
auth.py398540644editdlrm
auth.pyc348910644editdlrm
auth.pyo348910644editdlrm
auth_handler.py20640644editdlrm
auth_handler.pyc17350644editdlrm
auth_handler.pyo17350644editdlrm
compat.py26390644editdlrm
compat.pyc15210644editdlrm
compat.pyo15210644editdlrm
connection.py507910644editdlrm
connection.pyc384300644editdlrm
connection.pyo384300644editdlrm
endpoints.json183840644editdlrm
exception.py171060644editdlrm
exception.pyc226280644editdlrm
exception.pyo226280644editdlrm
handler.py23820644editdlrm
handler.pyc23790644editdlrm
handler.pyo23790644editdlrm
https_connection.py51350644editdlrm
https_connection.pyc50880644editdlrm
https_connection.pyo50880644editdlrm
jsonresponse.py60320644editdlrm
jsonresponse.pyc57330644editdlrm
jsonresponse.pyo57330644editdlrm
plugin.py27110644editdlrm
plugin.pyc23270644editdlrm
plugin.pyo23270644editdlrm
provider.py208900644editdlrm
provider.pyc136860644editdlrm
provider.pyo136860644editdlrm
regioninfo.py62140644editdlrm
regioninfo.pyc56060644editdlrm
regioninfo.pyo56060644editdlrm
requestlog.py14860644editdlrm
requestlog.pyc21850644editdlrm
requestlog.pyo21850644editdlrm
resultset.py65560644editdlrm
resultset.pyc57690644editdlrm
resultset.pyo57690644editdlrm
storage_uri.py391150644editdlrm
storage_uri.pyc352790644editdlrm
storage_uri.pyo352790644editdlrm
utils.py348850644editdlrm
utils.pyc346950644editdlrm
utils.pyo346950644editdlrm
__init__.py363370644editdlrm
__init__.pyc334460644editdlrm
__init__.pyo334460644editdlrm
Edit: /usr/lib/python2.6/site-packages/boto/plugin.py (2711B)
# Copyright 2010 Google Inc. # # 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. """ Implements plugin related api. To define a new plugin just subclass Plugin, like this. class AuthPlugin(Plugin): pass Then start creating subclasses of your new plugin. class MyFancyAuth(AuthPlugin): capability = ['sign', 'vmac'] The actual interface is duck typed. """ import glob import imp import os.path class Plugin(object): """Base class for all plugins.""" capability = [] @classmethod def is_capable(cls, requested_capability): """Returns true if the requested capability is supported by this plugin """ for c in requested_capability: if c not in cls.capability: return False return True def get_plugin(cls, requested_capability=None): if not requested_capability: requested_capability = [] result = [] for handler in cls.__subclasses__(): if handler.is_capable(requested_capability): result.append(handler) return result def _import_module(filename): (path, name) = os.path.split(filename) (name, ext) = os.path.splitext(name) (file, filename, data) = imp.find_module(name, [path]) try: return imp.load_module(name, file, filename, data) finally: if file: file.close() _plugin_loaded = False def load_plugins(config): global _plugin_loaded if _plugin_loaded: return _plugin_loaded = True if not config.has_option('Plugin', 'plugin_directory'): return directory = config.get('Plugin', 'plugin_directory') for file in glob.glob(os.path.join(directory, '*.py')): _import_module(file)