Source code for pacifica.metadata.rest.instrument_queries.query_base
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""CherryPy Status Metadata projectinfo base class."""
from pacifica.metadata.orm.instrument_group import InstrumentGroup
from pacifica.metadata.orm.groups import Groups
[docs]class QueryBase(object):
"""Retrieves a set of instruments for a given keyword set."""
[docs] @staticmethod
def format_instrument_block(instrument_entry):
"""Construct a dictionary from a given instrument instance in the metadata stack."""
_ie = instrument_entry
# pylint: disable=no-member
g_names = Groups.select(
Groups.name
).join(
InstrumentGroup
).where(
InstrumentGroup.instrument == _ie.id
)
# pylint: enable=no-member
category = g_names[0].name if g_names else 'Miscellaneous'
name = _ie.name
display_name = u'[{0} / ID:{1}] {2}'.format(
category, _ie.id, name
)
return {
'id': _ie.id,
'category': category,
'groups': [g.name for g in g_names],
'display_name': display_name,
'name': name,
'name_short': _ie.name_short,
'active': _ie.active
}
[docs] @staticmethod
def instrument_help_block_message():
"""Assemble a block of relevant help text to be returned with an invalid request."""
message = 'You must supply either a instrument id (like "/instrumentinfo/<instrument_id>")'
message += ' or search for one using the form "/instrumentinfo/search/<search_term_1>+<search_term_2>"'
return message