def loose_search(self, asset_manager_id, query='<STR_LIT>', **kwargs):
self.logger.info('<STR_LIT>', asset_manager_id)<EOL>url = '<STR_LIT>'.format(<EOL>asset_manager_id=asset_manager_id,<EOL>endpoint=self.endpoint,<EOL>)<EOL>params = {'<STR_LIT>': query}<EOL>for k, v in kwargs.items():<EOL><INDENT>if not isinstance(v, str) and isinstance(v, Iterable):<EOL><INDENT>v = '<STR_LIT:U+002C>'.join(str(i) for i in v)<EOL><DEDENT>params[k] = v<EOL><DEDENT>response = self.session.get(url, params=params)<EOL>if response.ok:<EOL><INDENT>data = response.json()<EOL>assets = [json_to_asset(json_asset) for json_asset in data.get('<STR_LIT>', [])]<EOL>self.logger.info('<STR_LIT>', len(assets))<EOL>return assets<EOL><DEDENT>else:<EOL><INDENT>self.logger.error(response.text)<EOL>response.raise_for_status()<EOL><DEDENT>
Asset search API.

Possible kwargs:
   * threshold: int (default = 0)
   * page_no: int (default = 1)
   * page_size: int (default = 100)
   * sort_fields: list (default = [])
   * asset_types: list (default = [])
   * include_public: bool (default = True)
   * include_data_sources: bool (default = True)