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

Unified Diff: tools/telemetry/third_party/gsutil/third_party/boto/boto/sdb/db/model.py

Issue 1260493004: Revert "Add gsutil 4.13 to telemetry/third_party" (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 months 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 side-by-side diff with in-line comments
Download patch
Index: tools/telemetry/third_party/gsutil/third_party/boto/boto/sdb/db/model.py
diff --git a/tools/telemetry/third_party/gsutil/third_party/boto/boto/sdb/db/model.py b/tools/telemetry/third_party/gsutil/third_party/boto/boto/sdb/db/model.py
deleted file mode 100644
index 741ad4387143c97291271a7b2e4d02b3d675f32c..0000000000000000000000000000000000000000
--- a/tools/telemetry/third_party/gsutil/third_party/boto/boto/sdb/db/model.py
+++ /dev/null
@@ -1,296 +0,0 @@
-# Copyright (c) 2006,2007,2008 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.sdb.db.property import Property
-from boto.sdb.db.key import Key
-from boto.sdb.db.query import Query
-import boto
-from boto.compat import filter
-
-class ModelMeta(type):
- "Metaclass for all Models"
-
- def __init__(cls, name, bases, dict):
- super(ModelMeta, cls).__init__(name, bases, dict)
- # Make sure this is a subclass of Model - mainly copied from django ModelBase (thanks!)
- cls.__sub_classes__ = []
-
- # Do a delayed import to prevent possible circular import errors.
- from boto.sdb.db.manager import get_manager
-
- try:
- if filter(lambda b: issubclass(b, Model), bases):
- for base in bases:
- base.__sub_classes__.append(cls)
- cls._manager = get_manager(cls)
- # look for all of the Properties and set their names
- for key in dict.keys():
- if isinstance(dict[key], Property):
- property = dict[key]
- property.__property_config__(cls, key)
- prop_names = []
- props = cls.properties()
- for prop in props:
- if not prop.__class__.__name__.startswith('_'):
- prop_names.append(prop.name)
- setattr(cls, '_prop_names', prop_names)
- except NameError:
- # 'Model' isn't defined yet, meaning we're looking at our own
- # Model class, defined below.
- pass
-
-class Model(object):
- __metaclass__ = ModelMeta
- __consistent__ = False # Consistent is set off by default
- id = None
-
- @classmethod
- def get_lineage(cls):
- l = [c.__name__ for c in cls.mro()]
- l.reverse()
- return '.'.join(l)
-
- @classmethod
- def kind(cls):
- return cls.__name__
-
- @classmethod
- def _get_by_id(cls, id, manager=None):
- if not manager:
- manager = cls._manager
- return manager.get_object(cls, id)
-
- @classmethod
- def get_by_id(cls, ids=None, parent=None):
- if isinstance(ids, list):
- objs = [cls._get_by_id(id) for id in ids]
- return objs
- else:
- return cls._get_by_id(ids)
-
- get_by_ids = get_by_id
-
- @classmethod
- def get_by_key_name(cls, key_names, parent=None):
- raise NotImplementedError("Key Names are not currently supported")
-
- @classmethod
- def find(cls, limit=None, next_token=None, **params):
- q = Query(cls, limit=limit, next_token=next_token)
- for key, value in params.items():
- q.filter('%s =' % key, value)
- return q
-
- @classmethod
- def all(cls, limit=None, next_token=None):
- return cls.find(limit=limit, next_token=next_token)
-
- @classmethod
- def get_or_insert(key_name, **kw):
- raise NotImplementedError("get_or_insert not currently supported")
-
- @classmethod
- def properties(cls, hidden=True):
- properties = []
- while cls:
- for key in cls.__dict__.keys():
- prop = cls.__dict__[key]
- if isinstance(prop, Property):
- if hidden or not prop.__class__.__name__.startswith('_'):
- properties.append(prop)
- if len(cls.__bases__) > 0:
- cls = cls.__bases__[0]
- else:
- cls = None
- return properties
-
- @classmethod
- def find_property(cls, prop_name):
- property = None
- while cls:
- for key in cls.__dict__.keys():
- prop = cls.__dict__[key]
- if isinstance(prop, Property):
- if not prop.__class__.__name__.startswith('_') and prop_name == prop.name:
- property = prop
- if len(cls.__bases__) > 0:
- cls = cls.__bases__[0]
- else:
- cls = None
- return property
-
- @classmethod
- def get_xmlmanager(cls):
- if not hasattr(cls, '_xmlmanager'):
- from boto.sdb.db.manager.xmlmanager import XMLManager
- cls._xmlmanager = XMLManager(cls, None, None, None,
- None, None, None, None, False)
- return cls._xmlmanager
-
- @classmethod
- def from_xml(cls, fp):
- xmlmanager = cls.get_xmlmanager()
- return xmlmanager.unmarshal_object(fp)
-
- def __init__(self, id=None, **kw):
- self._loaded = False
- # first try to initialize all properties to their default values
- for prop in self.properties(hidden=False):
- try:
- setattr(self, prop.name, prop.default_value())
- except ValueError:
- pass
- if 'manager' in kw:
- self._manager = kw['manager']
- self.id = id
- for key in kw:
- if key != 'manager':
- # We don't want any errors populating up when loading an object,
- # so if it fails we just revert to it's default value
- try:
- setattr(self, key, kw[key])
- except Exception as e:
- boto.log.exception(e)
-
- def __repr__(self):
- return '%s<%s>' % (self.__class__.__name__, self.id)
-
- def __str__(self):
- return str(self.id)
-
- def __eq__(self, other):
- return other and isinstance(other, Model) and self.id == other.id
-
- def _get_raw_item(self):
- return self._manager.get_raw_item(self)
-
- def load(self):
- if self.id and not self._loaded:
- self._manager.load_object(self)
-
- def reload(self):
- if self.id:
- self._loaded = False
- self._manager.load_object(self)
-
- def put(self, expected_value=None):
- """
- Save this object as it is, with an optional expected value
-
- :param expected_value: Optional tuple of Attribute, and Value that
- must be the same in order to save this object. If this
- condition is not met, an SDBResponseError will be raised with a
- Confict status code.
- :type expected_value: tuple or list
- :return: This object
- :rtype: :class:`boto.sdb.db.model.Model`
- """
- self._manager.save_object(self, expected_value)
- return self
-
- save = put
-
- def put_attributes(self, attrs):
- """
- Save just these few attributes, not the whole object
-
- :param attrs: Attributes to save, key->value dict
- :type attrs: dict
- :return: self
- :rtype: :class:`boto.sdb.db.model.Model`
- """
- assert(isinstance(attrs, dict)), "Argument must be a dict of key->values to save"
- for prop_name in attrs:
- value = attrs[prop_name]
- prop = self.find_property(prop_name)
- assert(prop), "Property not found: %s" % prop_name
- self._manager.set_property(prop, self, prop_name, value)
- self.reload()
- return self
-
- def delete_attributes(self, attrs):
- """
- Delete just these attributes, not the whole object.
-
- :param attrs: Attributes to save, as a list of string names
- :type attrs: list
- :return: self
- :rtype: :class:`boto.sdb.db.model.Model`
- """
- assert(isinstance(attrs, list)), "Argument must be a list of names of keys to delete."
- self._manager.domain.delete_attributes(self.id, attrs)
- self.reload()
- return self
-
- save_attributes = put_attributes
-
- def delete(self):
- self._manager.delete_object(self)
-
- def key(self):
- return Key(obj=self)
-
- def set_manager(self, manager):
- self._manager = manager
-
- def to_dict(self):
- props = {}
- for prop in self.properties(hidden=False):
- props[prop.name] = getattr(self, prop.name)
- obj = {'properties': props,
- 'id': self.id}
- return {self.__class__.__name__: obj}
-
- def to_xml(self, doc=None):
- xmlmanager = self.get_xmlmanager()
- doc = xmlmanager.marshal_object(self, doc)
- return doc
-
- @classmethod
- def find_subclass(cls, name):
- """Find a subclass with a given name"""
- if name == cls.__name__:
- return cls
- for sc in cls.__sub_classes__:
- r = sc.find_subclass(name)
- if r is not None:
- return r
-
-class Expando(Model):
-
- def __setattr__(self, name, value):
- if name in self._prop_names:
- object.__setattr__(self, name, value)
- elif name.startswith('_'):
- object.__setattr__(self, name, value)
- elif name == 'id':
- object.__setattr__(self, name, value)
- else:
- self._manager.set_key_value(self, name, value)
- object.__setattr__(self, name, value)
-
- def __getattr__(self, name):
- if not name.startswith('_'):
- value = self._manager.get_key_value(self, name)
- if value:
- object.__setattr__(self, name, value)
- return value
- raise AttributeError

Powered by Google App Engine
This is Rietveld 408576698