Mercurial > repos > shellac > guppy_basecaller
diff env/lib/python3.7/site-packages/boto/cloudsearch2/domain.py @ 5:9b1c78e6ba9c draft default tip
"planemo upload commit 6c0a8142489327ece472c84e558c47da711a9142"
author | shellac |
---|---|
date | Mon, 01 Jun 2020 08:59:25 -0400 |
parents | 79f47841a781 |
children |
line wrap: on
line diff
--- a/env/lib/python3.7/site-packages/boto/cloudsearch2/domain.py Thu May 14 16:47:39 2020 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,542 +0,0 @@ -# Copyright (c) 2014 Amazon.com, Inc. or its affiliates. All Rights Reserved. -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the -# "Software"), to deal in the Software without restriction, including -# without limitation the rights to use, copy, modify, merge, publish, dis- -# tribute, sublicense, and/or sell copies of the Software, and to permit -# persons to whom the Software is furnished to do so, subject to the fol- -# lowing conditions: -# -# The above copyright notice and this permission notice shall be included -# in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL- -# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -# IN THE SOFTWARE. -# - -from boto.cloudsearch2.optionstatus import IndexFieldStatus -from boto.cloudsearch2.optionstatus import ServicePoliciesStatus -from boto.cloudsearch2.optionstatus import ExpressionStatus -from boto.cloudsearch2.optionstatus import AvailabilityOptionsStatus -from boto.cloudsearch2.optionstatus import ScalingParametersStatus -from boto.cloudsearch2.document import DocumentServiceConnection -from boto.cloudsearch2.search import SearchConnection - - -def handle_bool(value): - if value in [True, 'true', 'True', 'TRUE', 1]: - return True - return False - - -class Domain(object): - """ - A Cloudsearch domain. - - :ivar name: The name of the domain. - - :ivar id: The internally generated unique identifier for the domain. - - :ivar created: A boolean which is True if the domain is - created. It can take several minutes to initialize a domain - when CreateDomain is called. Newly created search domains are - returned with a False value for Created until domain creation - is complete - - :ivar deleted: A boolean which is True if the search domain has - been deleted. The system must clean up resources dedicated to - the search domain when delete is called. Newly deleted - search domains are returned from list_domains with a True - value for deleted for several minutes until resource cleanup - is complete. - - :ivar processing: True if processing is being done to activate the - current domain configuration. - - :ivar num_searchable_docs: The number of documents that have been - submittted to the domain and indexed. - - :ivar requires_index_document: True if index_documents needs to be - called to activate the current domain configuration. - - :ivar search_instance_count: The number of search instances that are - available to process search requests. - - :ivar search_instance_type: The instance type that is being used to - process search requests. - - :ivar search_partition_count: The number of partitions across which - the search index is spread. - """ - - def __init__(self, layer1, data): - """ - Constructor - Create a domain object from a layer1 and data params - - :type layer1: :class:`boto.cloudsearch2.layer1.Layer1` object - :param layer1: A :class:`boto.cloudsearch2.layer1.Layer1` object - which is used to perform operations on the domain. - """ - self.layer1 = layer1 - self.update_from_data(data) - - def update_from_data(self, data): - self.created = data['Created'] - self.deleted = data['Deleted'] - self.processing = data['Processing'] - self.requires_index_documents = data['RequiresIndexDocuments'] - self.domain_id = data['DomainId'] - self.domain_name = data['DomainName'] - self.search_instance_count = data['SearchInstanceCount'] - self.search_instance_type = data.get('SearchInstanceType', None) - self.search_partition_count = data['SearchPartitionCount'] - self._doc_service = data['DocService'] - self._service_arn = data['ARN'] - self._search_service = data['SearchService'] - - @property - def service_arn(self): - return self._service_arn - - @property - def doc_service_endpoint(self): - return self._doc_service['Endpoint'] - - @property - def search_service_endpoint(self): - return self._search_service['Endpoint'] - - @property - def created(self): - return self._created - - @created.setter - def created(self, value): - self._created = handle_bool(value) - - @property - def deleted(self): - return self._deleted - - @deleted.setter - def deleted(self, value): - self._deleted = handle_bool(value) - - @property - def processing(self): - return self._processing - - @processing.setter - def processing(self, value): - self._processing = handle_bool(value) - - @property - def requires_index_documents(self): - return self._requires_index_documents - - @requires_index_documents.setter - def requires_index_documents(self, value): - self._requires_index_documents = handle_bool(value) - - @property - def search_partition_count(self): - return self._search_partition_count - - @search_partition_count.setter - def search_partition_count(self, value): - self._search_partition_count = int(value) - - @property - def search_instance_count(self): - return self._search_instance_count - - @search_instance_count.setter - def search_instance_count(self, value): - self._search_instance_count = int(value) - - @property - def name(self): - return self.domain_name - - @property - def id(self): - return self.domain_id - - def delete(self): - """ - Delete this domain and all index data associated with it. - """ - return self.layer1.delete_domain(self.name) - - def get_analysis_schemes(self): - """ - Return a list of Analysis Scheme objects. - """ - return self.layer1.describe_analysis_schemes(self.name) - - def get_availability_options(self): - """ - Return a :class:`boto.cloudsearch2.option.AvailabilityOptionsStatus` - object representing the currently defined availability options for - the domain. - :return: OptionsStatus object - :rtype: :class:`boto.cloudsearch2.option.AvailabilityOptionsStatus` - object - """ - return AvailabilityOptionsStatus( - self, refresh_fn=self.layer1.describe_availability_options, - refresh_key=['DescribeAvailabilityOptionsResponse', - 'DescribeAvailabilityOptionsResult', - 'AvailabilityOptions'], - save_fn=self.layer1.update_availability_options) - - def get_scaling_options(self): - """ - Return a :class:`boto.cloudsearch2.option.ScalingParametersStatus` - object representing the currently defined scaling options for the - domain. - :return: ScalingParametersStatus object - :rtype: :class:`boto.cloudsearch2.option.ScalingParametersStatus` - object - """ - return ScalingParametersStatus( - self, refresh_fn=self.layer1.describe_scaling_parameters, - refresh_key=['DescribeScalingParametersResponse', - 'DescribeScalingParametersResult', - 'ScalingParameters'], - save_fn=self.layer1.update_scaling_parameters) - - def get_access_policies(self): - """ - Return a :class:`boto.cloudsearch2.option.ServicePoliciesStatus` - object representing the currently defined access policies for the - domain. - :return: ServicePoliciesStatus object - :rtype: :class:`boto.cloudsearch2.option.ServicePoliciesStatus` object - """ - return ServicePoliciesStatus( - self, refresh_fn=self.layer1.describe_service_access_policies, - refresh_key=['DescribeServiceAccessPoliciesResponse', - 'DescribeServiceAccessPoliciesResult', - 'AccessPolicies'], - save_fn=self.layer1.update_service_access_policies) - - def index_documents(self): - """ - Tells the search domain to start indexing its documents using - the latest text processing options and IndexFields. This - operation must be invoked to make options whose OptionStatus - has OptionState of RequiresIndexDocuments visible in search - results. - """ - self.layer1.index_documents(self.name) - - def get_index_fields(self, field_names=None): - """ - Return a list of index fields defined for this domain. - :return: list of IndexFieldStatus objects - :rtype: list of :class:`boto.cloudsearch2.option.IndexFieldStatus` - object - """ - data = self.layer1.describe_index_fields(self.name, field_names) - - data = (data['DescribeIndexFieldsResponse'] - ['DescribeIndexFieldsResult'] - ['IndexFields']) - - return [IndexFieldStatus(self, d) for d in data] - - def create_index_field(self, field_name, field_type, - default='', facet=False, returnable=False, - searchable=False, sortable=False, - highlight=False, source_field=None, - analysis_scheme=None): - """ - Defines an ``IndexField``, either replacing an existing - definition or creating a new one. - - :type field_name: string - :param field_name: The name of a field in the search index. - - :type field_type: string - :param field_type: The type of field. Valid values are - int | double | literal | text | date | latlon | - int-array | double-array | literal-array | text-array | date-array - - :type default: string or int - :param default: The default value for the field. If the - field is of type ``int`` this should be an integer value. - Otherwise, it's a string. - - :type facet: bool - :param facet: A boolean to indicate whether facets - are enabled for this field or not. Does not apply to - fields of type ``int, int-array, text, text-array``. - - :type returnable: bool - :param returnable: A boolean to indicate whether values - of this field can be returned in search results or - used in ranking. - - :type searchable: bool - :param searchable: A boolean to indicate whether search - is enabled for this field or not. - - :type sortable: bool - :param sortable: A boolean to indicate whether sorting - is enabled for this field or not. Does not apply to - fields of array types. - - :type highlight: bool - :param highlight: A boolean to indicate whether highlighting - is enabled for this field or not. Does not apply to - fields of type ``double, int, date, latlon`` - - :type source_field: list of strings or string - :param source_field: For array types, this is the list of fields - to treat as the source. For singular types, pass a string only. - - :type analysis_scheme: string - :param analysis_scheme: The analysis scheme to use for this field. - Only applies to ``text | text-array`` field types - - :return: IndexFieldStatus objects - :rtype: :class:`boto.cloudsearch2.option.IndexFieldStatus` object - - :raises: BaseException, InternalException, LimitExceededException, - InvalidTypeException, ResourceNotFoundException - """ - index = { - 'IndexFieldName': field_name, - 'IndexFieldType': field_type - } - if field_type == 'literal': - index['LiteralOptions'] = { - 'FacetEnabled': facet, - 'ReturnEnabled': returnable, - 'SearchEnabled': searchable, - 'SortEnabled': sortable - } - if default: - index['LiteralOptions']['DefaultValue'] = default - if source_field: - index['LiteralOptions']['SourceField'] = source_field - elif field_type == 'literal-array': - index['LiteralArrayOptions'] = { - 'FacetEnabled': facet, - 'ReturnEnabled': returnable, - 'SearchEnabled': searchable - } - if default: - index['LiteralArrayOptions']['DefaultValue'] = default - if source_field: - index['LiteralArrayOptions']['SourceFields'] = \ - ','.join(source_field) - elif field_type == 'int': - index['IntOptions'] = { - 'DefaultValue': default, - 'FacetEnabled': facet, - 'ReturnEnabled': returnable, - 'SearchEnabled': searchable, - 'SortEnabled': sortable - } - if default: - index['IntOptions']['DefaultValue'] = default - if source_field: - index['IntOptions']['SourceField'] = source_field - elif field_type == 'int-array': - index['IntArrayOptions'] = { - 'FacetEnabled': facet, - 'ReturnEnabled': returnable, - 'SearchEnabled': searchable - } - if default: - index['IntArrayOptions']['DefaultValue'] = default - if source_field: - index['IntArrayOptions']['SourceFields'] = \ - ','.join(source_field) - elif field_type == 'date': - index['DateOptions'] = { - 'FacetEnabled': facet, - 'ReturnEnabled': returnable, - 'SearchEnabled': searchable, - 'SortEnabled': sortable - } - if default: - index['DateOptions']['DefaultValue'] = default - if source_field: - index['DateOptions']['SourceField'] = source_field - elif field_type == 'date-array': - index['DateArrayOptions'] = { - 'FacetEnabled': facet, - 'ReturnEnabled': returnable, - 'SearchEnabled': searchable - } - if default: - index['DateArrayOptions']['DefaultValue'] = default - if source_field: - index['DateArrayOptions']['SourceFields'] = \ - ','.join(source_field) - elif field_type == 'double': - index['DoubleOptions'] = { - 'FacetEnabled': facet, - 'ReturnEnabled': returnable, - 'SearchEnabled': searchable, - 'SortEnabled': sortable - } - if default: - index['DoubleOptions']['DefaultValue'] = default - if source_field: - index['DoubleOptions']['SourceField'] = source_field - elif field_type == 'double-array': - index['DoubleArrayOptions'] = { - 'FacetEnabled': facet, - 'ReturnEnabled': returnable, - 'SearchEnabled': searchable - } - if default: - index['DoubleArrayOptions']['DefaultValue'] = default - if source_field: - index['DoubleArrayOptions']['SourceFields'] = \ - ','.join(source_field) - elif field_type == 'text': - index['TextOptions'] = { - 'ReturnEnabled': returnable, - 'HighlightEnabled': highlight, - 'SortEnabled': sortable - } - if default: - index['TextOptions']['DefaultValue'] = default - if source_field: - index['TextOptions']['SourceField'] = source_field - if analysis_scheme: - index['TextOptions']['AnalysisScheme'] = analysis_scheme - elif field_type == 'text-array': - index['TextArrayOptions'] = { - 'ReturnEnabled': returnable, - 'HighlightEnabled': highlight - } - if default: - index['TextArrayOptions']['DefaultValue'] = default - if source_field: - index['TextArrayOptions']['SourceFields'] = \ - ','.join(source_field) - if analysis_scheme: - index['TextArrayOptions']['AnalysisScheme'] = analysis_scheme - elif field_type == 'latlon': - index['LatLonOptions'] = { - 'FacetEnabled': facet, - 'ReturnEnabled': returnable, - 'SearchEnabled': searchable, - 'SortEnabled': sortable - } - if default: - index['LatLonOptions']['DefaultValue'] = default - if source_field: - index['LatLonOptions']['SourceField'] = source_field - - data = self.layer1.define_index_field(self.name, index) - - data = (data['DefineIndexFieldResponse'] - ['DefineIndexFieldResult'] - ['IndexField']) - - return IndexFieldStatus(self, data, - self.layer1.describe_index_fields) - - def get_expressions(self, names=None): - """ - Return a list of rank expressions defined for this domain. - :return: list of ExpressionStatus objects - :rtype: list of :class:`boto.cloudsearch2.option.ExpressionStatus` - object - """ - fn = self.layer1.describe_expressions - data = fn(self.name, names) - - data = (data['DescribeExpressionsResponse'] - ['DescribeExpressionsResult'] - ['Expressions']) - - return [ExpressionStatus(self, d, fn) for d in data] - - def create_expression(self, name, value): - """ - Create a new expression. - - :type name: string - :param name: The name of an expression for processing - during a search request. - - :type value: string - :param value: The expression to evaluate for ranking - or thresholding while processing a search request. The - Expression syntax is based on JavaScript expressions - and supports: - - * Single value, sort enabled numeric fields (int, double, date) - * Other expressions - * The _score variable, which references a document's relevance - score - * The _time variable, which references the current epoch time - * Integer, floating point, hex, and octal literals - * Arithmetic operators: + - * / % - * Bitwise operators: | & ^ ~ << >> >>> - * Boolean operators (including the ternary operator): && || ! ?: - * Comparison operators: < <= == >= > - * Mathematical functions: abs ceil exp floor ln log2 log10 logn - max min pow sqrt pow - * Trigonometric functions: acos acosh asin asinh atan atan2 atanh - cos cosh sin sinh tanh tan - * The haversin distance function - - Expressions always return an integer value from 0 to the maximum - 64-bit signed integer value (2^63 - 1). Intermediate results are - calculated as double-precision floating point values and the return - value is rounded to the nearest integer. If the expression is - invalid or evaluates to a negative value, it returns 0. If the - expression evaluates to a value greater than the maximum, it - returns the maximum value. - - The source data for an Expression can be the name of an - IndexField of type int or double, another Expression or the - reserved name _score. The _score source is - defined to return as a double from 0 to 10.0 (inclusive) to - indicate how relevant a document is to the search request, - taking into account repetition of search terms in the - document and proximity of search terms to each other in - each matching IndexField in the document. - - For more information about using rank expressions to - customize ranking, see the Amazon CloudSearch Developer - Guide. - - :return: ExpressionStatus object - :rtype: :class:`boto.cloudsearch2.option.ExpressionStatus` object - - :raises: BaseException, InternalException, LimitExceededException, - InvalidTypeException, ResourceNotFoundException - """ - data = self.layer1.define_expression(self.name, name, value) - - data = (data['DefineExpressionResponse'] - ['DefineExpressionResult'] - ['Expression']) - - return ExpressionStatus(self, data, - self.layer1.describe_expressions) - - def get_document_service(self): - return DocumentServiceConnection(domain=self) - - def get_search_service(self): - return SearchConnection(domain=self) - - def __repr__(self): - return '<Domain: %s>' % self.domain_name