minor tweaks to Document._build_index_specs
This commit is contained in:
parent
0fc44efbcc
commit
bc83ba6a24
@ -732,9 +732,7 @@ class BaseDocument(object):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def _build_index_specs(cls, meta_indexes):
|
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()
|
geo_indices = cls._geo_indices()
|
||||||
unique_indices = cls._unique_with_indexes()
|
unique_indices = cls._unique_with_indexes()
|
||||||
index_specs = [cls._build_index_spec(spec)
|
index_specs = [cls._build_index_spec(spec)
|
||||||
@ -744,14 +742,15 @@ class BaseDocument(object):
|
|||||||
if not indices:
|
if not indices:
|
||||||
return index_specs
|
return index_specs
|
||||||
|
|
||||||
spec_fields = [v['fields']
|
spec_fields = [idx['fields'] for idx in index_specs]
|
||||||
for k, v in enumerate(index_specs)]
|
|
||||||
# Merge unique_indexes with existing specs
|
# Merge unique_indexes with existing specs
|
||||||
for k, v in enumerate(indices):
|
for idx in indices:
|
||||||
if v['fields'] in spec_fields:
|
if idx['fields'] in spec_fields:
|
||||||
index_specs[spec_fields.index(v['fields'])].update(v)
|
index_specs[spec_fields.index(idx['fields'])].update(idx)
|
||||||
else:
|
else:
|
||||||
index_specs.append(v)
|
index_specs.append(idx)
|
||||||
|
|
||||||
return index_specs
|
return index_specs
|
||||||
|
|
||||||
index_specs = merge_index_specs(index_specs, geo_indices)
|
index_specs = merge_index_specs(index_specs, geo_indices)
|
||||||
@ -760,8 +759,7 @@ class BaseDocument(object):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def _build_index_spec(cls, spec):
|
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):
|
if isinstance(spec, six.string_types):
|
||||||
spec = {'fields': [spec]}
|
spec = {'fields': [spec]}
|
||||||
elif isinstance(spec, (list, tuple)):
|
elif isinstance(spec, (list, tuple)):
|
||||||
|
@ -8,6 +8,6 @@ tests = tests
|
|||||||
|
|
||||||
[flake8]
|
[flake8]
|
||||||
ignore=E501,F401,F403,F405,I201
|
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
|
max-complexity=42
|
||||||
application-import-names=mongoengine,tests
|
application-import-names=mongoengine,tests
|
||||||
|
Loading…
x
Reference in New Issue
Block a user