From bc83ba6a24b5b589fde24cb1e292a8d925426f18 Mon Sep 17 00:00:00 2001 From: Stefan Wojcik Date: Tue, 6 Dec 2016 23:28:21 -0500 Subject: [PATCH] minor tweaks to Document._build_index_specs --- mongoengine/base/document.py | 20 +++++++++----------- setup.cfg | 2 +- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/mongoengine/base/document.py b/mongoengine/base/document.py index a2acae00..38a55bdd 100644 --- a/mongoengine/base/document.py +++ b/mongoengine/base/document.py @@ -732,9 +732,7 @@ class BaseDocument(object): @classmethod def _build_index_specs(cls, meta_indexes): - """Generate and merge the full index specs - """ - + """Generate and merge the full index specs.""" geo_indices = cls._geo_indices() unique_indices = cls._unique_with_indexes() index_specs = [cls._build_index_spec(spec) @@ -744,14 +742,15 @@ class BaseDocument(object): if not indices: return index_specs - spec_fields = [v['fields'] - for k, v in enumerate(index_specs)] + spec_fields = [idx['fields'] for idx in index_specs] + # Merge unique_indexes with existing specs - for k, v in enumerate(indices): - if v['fields'] in spec_fields: - index_specs[spec_fields.index(v['fields'])].update(v) + for idx in indices: + if idx['fields'] in spec_fields: + index_specs[spec_fields.index(idx['fields'])].update(idx) else: - index_specs.append(v) + index_specs.append(idx) + return index_specs index_specs = merge_index_specs(index_specs, geo_indices) @@ -760,8 +759,7 @@ class BaseDocument(object): @classmethod def _build_index_spec(cls, spec): - """Build a PyMongo index spec from a MongoEngine index spec. - """ + """Build a PyMongo index spec from a MongoEngine index spec.""" if isinstance(spec, six.string_types): spec = {'fields': [spec]} elif isinstance(spec, (list, tuple)): diff --git a/setup.cfg b/setup.cfg index 67f66fa3..ac98a0f3 100644 --- a/setup.cfg +++ b/setup.cfg @@ -8,6 +8,6 @@ tests = tests [flake8] ignore=E501,F401,F403,F405,I201 -exclude=build,dist,docs,venv,venv3,.tox,.eggs,tests +exclude=build,dist,docs,venv,venv26,venv3,.tox,.eggs,tests max-complexity=42 application-import-names=mongoengine,tests