minor tweaks to Document._build_index_specs

This commit is contained in:
Stefan Wojcik 2016-12-06 23:28:21 -05:00
parent 0fc44efbcc
commit bc83ba6a24
2 changed files with 10 additions and 12 deletions

View File

@ -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)):

View File

@ -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