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: