git: 9b644db464b5 - main - devel/py-mongokit: Fix build with setuptools 58.0.0+
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 25 Mar 2022 13:50:02 UTC
The branch main has been updated by sunpoet:
URL: https://cgit.FreeBSD.org/ports/commit/?id=9b644db464b5710d00aa78d2b9cfdc3207376da6
commit 9b644db464b5710d00aa78d2b9cfdc3207376da6
Author: Po-Chuan Hsieh <sunpoet@FreeBSD.org>
AuthorDate: 2022-03-25 13:32:18 +0000
Commit: Po-Chuan Hsieh <sunpoet@FreeBSD.org>
CommitDate: 2022-03-25 13:38:09 +0000
devel/py-mongokit: Fix build with setuptools 58.0.0+
With hat: python
---
devel/py-mongokit/files/patch-2to3 | 272 +++++++++++++++++++++++++++++++++++++
1 file changed, 272 insertions(+)
diff --git a/devel/py-mongokit/files/patch-2to3 b/devel/py-mongokit/files/patch-2to3
new file mode 100644
index 000000000000..a5d463207e85
--- /dev/null
+++ b/devel/py-mongokit/files/patch-2to3
@@ -0,0 +1,272 @@
+--- mongokit/document.py.orig 2014-02-16 10:19:42 UTC
++++ mongokit/document.py
+@@ -82,9 +82,9 @@ class DocumentProperties(SchemaProperties):
+ if 'fields' not in index:
+ raise BadIndexError(
+ "'fields' key must be specify in indexes")
+- for key, value in index.iteritems():
++ for key, value in index.items():
+ if key == "fields":
+- if isinstance(value, basestring):
++ if isinstance(value, str):
+ if value not in attrs['_namespaces'] and value not in STRUCTURE_KEYWORDS:
+ raise ValueError(
+ "Error in indexes: can't find %s in structure" % value)
+@@ -93,11 +93,11 @@ class DocumentProperties(SchemaProperties):
+ raise BadIndexError(
+ "Error in indexes: a tuple must contain "
+ "only two value : the field name and the direction")
+- if not (isinstance(value[1], int) or isinstance(value[1], basestring)):
++ if not (isinstance(value[1], int) or isinstance(value[1], str)):
+ raise BadIndexError(
+ "Error in %s, the direction must be int or basestring "
+ "(got %s instead)" % (value[0], type(value[1])))
+- if not isinstance(value[0], basestring):
++ if not isinstance(value[0], str):
+ raise BadIndexError(
+ "Error in %s, the field name must be string "
+ "(got %s instead)" % (value[0], type(value[0])))
+@@ -135,10 +135,8 @@ class DocumentProperties(SchemaProperties):
+ assert isinstance(value, int)
+
+
+-class Document(SchemaDocument):
++class Document(SchemaDocument, metaclass=DocumentProperties):
+
+- __metaclass__ = DocumentProperties
+-
+ type_field = '_type'
+
+ atomic_save = False # XXX Deprecated
+@@ -166,7 +164,7 @@ class Document(SchemaDocument):
+ super(Document, self).__init__(doc=doc, gen_skel=gen_skel, gen_auth_types=False,
+ lang=lang, fallback_lang=fallback_lang)
+ if self.type_field in self:
+- self[self.type_field] = unicode(self.__class__.__name__)
++ self[self.type_field] = str(self.__class__.__name__)
+ # collection
+ self.collection = collection
+ if collection:
+@@ -236,11 +234,11 @@ class Document(SchemaDocument):
+ error = None
+ try:
+ super(Document, self).validate()
+- except StructureError, e:
++ except StructureError as e:
+ error = e
+- except KeyError, e:
++ except KeyError as e:
+ error = e
+- except SchemaTypeError, e:
++ except SchemaTypeError as e:
+ error = e
+ if error:
+ if not self.migration_handler:
+@@ -313,7 +311,7 @@ class Document(SchemaDocument):
+ raise MultipleResultsFound("%s results found" % count)
+ elif count == 1:
+ try:
+- doc = bson_obj.next()
++ doc = next(bson_obj)
+ except StopIteration:
+ doc = None
+ return doc
+@@ -326,7 +324,7 @@ class Document(SchemaDocument):
+ max = self.collection.count()
+ if max:
+ num = random.randint(0, max-1)
+- return self.find().skip(num).next()
++ return next(self.find().skip(num))
+
+ def find_fulltext(self, search, **kwargs):
+ """
+@@ -376,7 +374,7 @@ class Document(SchemaDocument):
+ if count > 1:
+ raise MultipleResultsFound("%s results found" % count)
+ elif count == 1:
+- return bson_obj.next()
++ return next(bson_obj)
+
+ def reload(self):
+ """
+@@ -423,7 +421,7 @@ class Document(SchemaDocument):
+ self._make_reference(self, self.structure)
+ if '_id' not in self:
+ if uuid:
+- self['_id'] = unicode("%s-%s" % (self.__class__.__name__, uuid4()))
++ self['_id'] = str("%s-%s" % (self.__class__.__name__, uuid4()))
+ self._process_custom_type('bson', self, self.structure)
+ self.collection.save(self, safe=safe, *args, **kwargs)
+ self._process_custom_type('python', self, self.structure)
+@@ -453,12 +451,12 @@ class Document(SchemaDocument):
+
+ if isinstance(given_fields, tuple):
+ fields = [given_fields]
+- elif isinstance(given_fields, basestring):
++ elif isinstance(given_fields, str):
+ fields = [(given_fields, 1)]
+ else:
+ fields = []
+ for field in given_fields:
+- if isinstance(field, basestring):
++ if isinstance(field, str):
+ field = (field, 1)
+ fields.append(field)
+ log.debug('Creating index for %s' % str(given_fields))
+@@ -536,7 +534,7 @@ class Document(SchemaDocument):
+ raise ImportError("can't import anyjson. Please install it before continuing.")
+ obj = self.to_json_type()
+ _convert_to_python(obj, self.structure)
+- return unicode(dumps(obj))
++ return str(dumps(obj))
+
+ def from_json(self, json):
+ """
+@@ -700,7 +698,7 @@ class Document(SchemaDocument):
+ # it with None values
+ #
+ if len(struct[key]) and \
+- not [i for i in struct[key].keys() if type(i) is type]:
++ not [i for i in list(struct[key].keys()) if type(i) is type]:
+ if key in doc:
+ self._make_reference(doc[key], struct[key], new_path)
+ else: # case {unicode:int}
+--- mongokit/migration.py.orig 2014-02-16 10:19:42 UTC
++++ mongokit/migration.py
+@@ -47,7 +47,7 @@ class DocumentMigration(object):
+
+ def validate_update(self, update_query):
+ structure = DotCollapsedDict(self.doc_class.structure)
+- for op, fields in update_query.iteritems():
++ for op, fields in update_query.items():
+ for field in fields:
+ if op != '$unset' and op != '$rename':
+ if field not in structure:
+@@ -84,7 +84,7 @@ class DocumentMigration(object):
+ collection.update(self.target, self.update, multi=True, safe=safe)
+ status = collection.database.last_status()
+ if not status.get('updatedExisting', 1):
+- print "%s : %s >>> deprecated" % (self.__class__.__name__, method_name)
++ print("%s : %s >>> deprecated" % (self.__class__.__name__, method_name))
+
+ def get_deprecated(self, collection):
+ method_names = sorted([i for i in dir(self) if i.startswith('migration') or i.startswith('allmigration')])
+--- mongokit/schema_document.py.orig 2014-02-16 10:19:42 UTC
++++ mongokit/schema_document.py
+@@ -32,8 +32,8 @@ from copy import deepcopy
+
+ log = logging.getLogger(__name__)
+
+-from operators import SchemaOperator, IS
+-from helpers import *
++from .operators import SchemaOperator, IS
++from .helpers import *
+
+ __all__ = [
+ 'CustomType',
+@@ -230,7 +230,7 @@ class SchemaProperties(type):
+ raise ValueError("Error in i18n: can't find %s in structure" % i18n)
+
+
+-class SchemaDocument(dict):
++class SchemaDocument(dict, metaclass=SchemaProperties):
+ """
+ A SchemaDocument is dictionary with a building structured schema
+ The validate method will check that the document match the underling
+@@ -301,7 +301,6 @@ class SchemaDocument(dict):
+ >>> doc
+ {"foo":{"bar":u"bla}}
+ """
+- __metaclass__ = SchemaProperties
+
+ structure = None
+ required_fields = []
+@@ -324,10 +323,10 @@ class SchemaDocument(dict):
+ type(None),
+ bool,
+ int,
+- long,
++ int,
+ float,
+- unicode,
+- basestring,
++ str,
++ str,
+ list,
+ dict,
+ datetime.datetime,
+@@ -351,7 +350,7 @@ class SchemaDocument(dict):
+ self.validation_errors = {}
+ # init
+ if doc:
+- for k, v in doc.iteritems():
++ for k, v in doc.items():
+ self[k] = v
+ gen_skel = False
+ if gen_skel:
+@@ -421,7 +420,7 @@ class SchemaDocument(dict):
+ @classmethod
+ def __walk_dict(cls, dic):
+ # thanks jean_b for the patch
+- for key, value in dic.items():
++ for key, value in list(dic.items()):
+ if isinstance(value, dict) and len(value):
+ if type(key) is type:
+ yield '$%s' % key.__name__
+@@ -478,7 +477,7 @@ class SchemaDocument(dict):
+ raise StructureError("%s: %s is not an authorized type" % (name, struct))
+ elif isinstance(struct, dict):
+ for key in struct:
+- if isinstance(key, basestring):
++ if isinstance(key, str):
+ if "." in key:
+ raise BadKeyError("%s: %s must not contain '.'" % (name, key))
+ if key.startswith('$'):
+@@ -642,7 +641,7 @@ class SchemaDocument(dict):
+ def _process_validators(self, doc, struct, path=""):
+ doted_struct = DotCollapsedDict(self.structure)
+ doted_doc = DotCollapsedDict(doc)
+- for key, validators in self.validators.iteritems():
++ for key, validators in self.validators.items():
+ if key in doted_doc and doted_doc[key] is not None:
+ if not hasattr(validators, "__iter__"):
+ validators = [validators]
+@@ -650,9 +649,9 @@ class SchemaDocument(dict):
+ try:
+ if not validator(doted_doc[key]):
+ raise ValidationError("%s does not pass the validator " + validator.__name__)
+- except Exception, e:
++ except Exception as e:
+ self._raise_exception(ValidationError, key,
+- unicode(e) % key)
++ str(e) % key)
+
+ def _process_custom_type(self, target, doc, struct, path="", root_path=""):
+ for key in struct:
+@@ -751,7 +750,7 @@ class SchemaDocument(dict):
+ # if the dict is still empty into the document we build
+ # it with None values
+ #
+- if len(struct[key]) and not [i for i in struct[key].keys() if type(i) is type]:
++ if len(struct[key]) and not [i for i in list(struct[key].keys()) if type(i) is type]:
+ self._set_default_fields(doc[key], struct[key], new_path)
+ else:
+ if new_path in self.default_values:
+@@ -912,7 +911,7 @@ class i18n(dict, CustomType):
+
+ def to_bson(self, value):
+ if value is not None:
+- for l, v in value.iteritems():
++ for l, v in value.items():
+ if isinstance(v, list) and isinstance(self._field_type, list):
+ for i in v:
+ if not isinstance(i, self._field_type[0]):
+@@ -922,7 +921,7 @@ class i18n(dict, CustomType):
+ if not isinstance(v, self._field_type):
+ raise SchemaTypeError("%s (%s) must be an instance of %s not %s" % (
+ self._field_name, l, self._field_type, type(v).__name__))
+- return [{'lang': l, 'value': v} for l, v in value.iteritems()]
++ return [{'lang': l, 'value': v} for l, v in value.items()]
+
+ def to_python(self, value):
+ if value is not None: