This commit is contained in:
Ross Lawley 2013-05-07 11:01:23 +00:00
parent ddd11c7ed2
commit 52c162a478

View File

@ -107,11 +107,11 @@ class URLField(StringField):
""" """
_URL_REGEX = re.compile( _URL_REGEX = re.compile(
r'^(?:http|ftp)s?://' # http:// or https:// r'^(?:http|ftp)s?://' # http:// or https://
r'(?:(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+(?:[A-Z]{2,6}\.?|[A-Z0-9-]{2,}\.?)|' #domain... r'(?:(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+(?:[A-Z]{2,6}\.?|[A-Z0-9-]{2,}\.?)|' # domain...
r'localhost|' #localhost... r'localhost|' # localhost...
r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})' # ...or ip r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})' # ...or ip
r'(?::\d+)?' # optional port r'(?::\d+)?' # optional port
r'(?:/?|[/?]\S+)$', re.IGNORECASE) r'(?:/?|[/?]\S+)$', re.IGNORECASE)
def __init__(self, verify_exists=False, url_regex=None, **kwargs): def __init__(self, verify_exists=False, url_regex=None, **kwargs):
@ -128,8 +128,7 @@ class URLField(StringField):
warnings.warn( warnings.warn(
"The URLField verify_exists argument has intractable security " "The URLField verify_exists argument has intractable security "
"and performance issues. Accordingly, it has been deprecated.", "and performance issues. Accordingly, it has been deprecated.",
DeprecationWarning DeprecationWarning)
)
try: try:
request = urllib2.Request(value) request = urllib2.Request(value)
urllib2.urlopen(request) urllib2.urlopen(request)
@ -469,7 +468,7 @@ class ComplexDateTimeField(StringField):
def __get__(self, instance, owner): def __get__(self, instance, owner):
data = super(ComplexDateTimeField, self).__get__(instance, owner) data = super(ComplexDateTimeField, self).__get__(instance, owner)
if data == None: if data is None:
return datetime.datetime.now() return datetime.datetime.now()
if isinstance(data, datetime.datetime): if isinstance(data, datetime.datetime):
return data return data
@ -658,15 +657,15 @@ class ListField(ComplexBaseField):
"""Make sure that a list of valid fields is being used. """Make sure that a list of valid fields is being used.
""" """
if (not isinstance(value, (list, tuple, QuerySet)) or if (not isinstance(value, (list, tuple, QuerySet)) or
isinstance(value, basestring)): isinstance(value, basestring)):
self.error('Only lists and tuples may be used in a list field') self.error('Only lists and tuples may be used in a list field')
super(ListField, self).validate(value) super(ListField, self).validate(value)
def prepare_query_value(self, op, value): def prepare_query_value(self, op, value):
if self.field: if self.field:
if op in ('set', 'unset') and (not isinstance(value, basestring) if op in ('set', 'unset') and (not isinstance(value, basestring)
and not isinstance(value, BaseDocument) and not isinstance(value, BaseDocument)
and hasattr(value, '__iter__')): and hasattr(value, '__iter__')):
return [self.field.prepare_query_value(op, v) for v in value] return [self.field.prepare_query_value(op, v) for v in value]
return self.field.prepare_query_value(op, value) return self.field.prepare_query_value(op, value)
return super(ListField, self).prepare_query_value(op, value) return super(ListField, self).prepare_query_value(op, value)
@ -701,7 +700,7 @@ class SortedListField(ListField):
value = super(SortedListField, self).to_mongo(value) value = super(SortedListField, self).to_mongo(value)
if self._ordering is not None: if self._ordering is not None:
return sorted(value, key=itemgetter(self._ordering), return sorted(value, key=itemgetter(self._ordering),
reverse=self._order_reverse) reverse=self._order_reverse)
return sorted(value, reverse=self._order_reverse) return sorted(value, reverse=self._order_reverse)
@ -1001,7 +1000,7 @@ class BinaryField(BaseField):
if not isinstance(value, (bin_type, txt_type, Binary)): if not isinstance(value, (bin_type, txt_type, Binary)):
self.error("BinaryField only accepts instances of " self.error("BinaryField only accepts instances of "
"(%s, %s, Binary)" % ( "(%s, %s, Binary)" % (
bin_type.__name__, txt_type.__name__)) bin_type.__name__, txt_type.__name__))
if self.max_bytes is not None and len(value) > self.max_bytes: if self.max_bytes is not None and len(value) > self.max_bytes:
self.error('Binary value is too long') self.error('Binary value is too long')
@ -1235,8 +1234,6 @@ class ImageGridFsProxy(GridFSProxy):
Insert a image in database Insert a image in database
applying field properties (size, thumbnail_size) applying field properties (size, thumbnail_size)
""" """
if not self.instance:
import ipdb; ipdb.set_trace();
field = self.instance._fields[self.key] field = self.instance._fields[self.key]
try: try:
@ -1308,6 +1305,7 @@ class ImageGridFsProxy(GridFSProxy):
height=h, height=h,
format=format, format=format,
**kwargs) **kwargs)
@property @property
def size(self): def size(self):
""" """