# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: NearestNeighbors.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from . import DataStructures_pb2 as DataStructures__pb2
try:
  FeatureTypes__pb2 = DataStructures__pb2.FeatureTypes__pb2
except AttributeError:
  FeatureTypes__pb2 = DataStructures__pb2.FeatureTypes_pb2
from . import Parameters_pb2 as Parameters__pb2
try:
  DataStructures__pb2 = Parameters__pb2.DataStructures__pb2
except AttributeError:
  DataStructures__pb2 = Parameters__pb2.DataStructures_pb2
try:
  FeatureTypes__pb2 = Parameters__pb2.FeatureTypes__pb2
except AttributeError:
  FeatureTypes__pb2 = Parameters__pb2.FeatureTypes_pb2

from .DataStructures_pb2 import *
from .Parameters_pb2 import *

DESCRIPTOR = _descriptor.FileDescriptor(
  name='NearestNeighbors.proto',
  package='CoreML.Specification',
  syntax='proto3',
  serialized_pb=_b('\n\x16NearestNeighbors.proto\x12\x14\x43oreML.Specification\x1a\x14\x44\x61taStructures.proto\x1a\x10Parameters.proto\"\xb6\x04\n\x1bKNearestNeighborsClassifier\x12J\n\x15nearestNeighborsIndex\x18\x01 \x01(\x0b\x32+.CoreML.Specification.NearestNeighborsIndex\x12?\n\x11numberOfNeighbors\x18\x03 \x01(\x0b\x32$.CoreML.Specification.Int64Parameter\x12?\n\x11stringClassLabels\x18\x64 \x01(\x0b\x32\".CoreML.Specification.StringVectorH\x00\x12=\n\x10int64ClassLabels\x18\x65 \x01(\x0b\x32!.CoreML.Specification.Int64VectorH\x00\x12\x1c\n\x12\x64\x65\x66\x61ultStringLabel\x18n \x01(\tH\x01\x12\x1b\n\x11\x64\x65\x66\x61ultInt64Label\x18o \x01(\x03H\x01\x12\x43\n\x10uniformWeighting\x18\xc8\x01 \x01(\x0b\x32&.CoreML.Specification.UniformWeightingH\x02\x12S\n\x18inverseDistanceWeighting\x18\xd2\x01 \x01(\x0b\x32..CoreML.Specification.InverseDistanceWeightingH\x02\x42\r\n\x0b\x43lassLabelsB\x13\n\x11\x44\x65\x66\x61ultClassLabelB\x11\n\x0fWeightingScheme\"\xe2\x02\n\x15NearestNeighborsIndex\x12\x1a\n\x12numberOfDimensions\x18\x01 \x01(\x05\x12\x37\n\x0c\x66loatSamples\x18\x02 \x03(\x0b\x32!.CoreML.Specification.FloatVector\x12\x38\n\x0blinearIndex\x18\x64 \x01(\x0b\x32!.CoreML.Specification.LinearIndexH\x00\x12\x44\n\x11singleKdTreeIndex\x18n \x01(\x0b\x32\'.CoreML.Specification.SingleKdTreeIndexH\x00\x12S\n\x18squaredEuclideanDistance\x18\xc8\x01 \x01(\x0b\x32..CoreML.Specification.SquaredEuclideanDistanceH\x01\x42\x0b\n\tIndexTypeB\x12\n\x10\x44istanceFunction\"\x12\n\x10UniformWeighting\"\x1a\n\x18InverseDistanceWeighting\"\r\n\x0bLinearIndex\"%\n\x11SingleKdTreeIndex\x12\x10\n\x08leafSize\x18\x01 \x01(\x05\"\x1a\n\x18SquaredEuclideanDistanceB\x02H\x03P\x00P\x01\x62\x06proto3')
  ,
  dependencies=[DataStructures__pb2.DESCRIPTOR,Parameters__pb2.DESCRIPTOR,],
  public_dependencies=[DataStructures__pb2.DESCRIPTOR,Parameters__pb2.DESCRIPTOR,])




_KNEARESTNEIGHBORSCLASSIFIER = _descriptor.Descriptor(
  name='KNearestNeighborsClassifier',
  full_name='CoreML.Specification.KNearestNeighborsClassifier',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='nearestNeighborsIndex', full_name='CoreML.Specification.KNearestNeighborsClassifier.nearestNeighborsIndex', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='numberOfNeighbors', full_name='CoreML.Specification.KNearestNeighborsClassifier.numberOfNeighbors', index=1,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='stringClassLabels', full_name='CoreML.Specification.KNearestNeighborsClassifier.stringClassLabels', index=2,
      number=100, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='int64ClassLabels', full_name='CoreML.Specification.KNearestNeighborsClassifier.int64ClassLabels', index=3,
      number=101, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='defaultStringLabel', full_name='CoreML.Specification.KNearestNeighborsClassifier.defaultStringLabel', index=4,
      number=110, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='defaultInt64Label', full_name='CoreML.Specification.KNearestNeighborsClassifier.defaultInt64Label', index=5,
      number=111, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='uniformWeighting', full_name='CoreML.Specification.KNearestNeighborsClassifier.uniformWeighting', index=6,
      number=200, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='inverseDistanceWeighting', full_name='CoreML.Specification.KNearestNeighborsClassifier.inverseDistanceWeighting', index=7,
      number=210, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='ClassLabels', full_name='CoreML.Specification.KNearestNeighborsClassifier.ClassLabels',
      index=0, containing_type=None, fields=[]),
    _descriptor.OneofDescriptor(
      name='DefaultClassLabel', full_name='CoreML.Specification.KNearestNeighborsClassifier.DefaultClassLabel',
      index=1, containing_type=None, fields=[]),
    _descriptor.OneofDescriptor(
      name='WeightingScheme', full_name='CoreML.Specification.KNearestNeighborsClassifier.WeightingScheme',
      index=2, containing_type=None, fields=[]),
  ],
  serialized_start=89,
  serialized_end=655,
)


_NEARESTNEIGHBORSINDEX = _descriptor.Descriptor(
  name='NearestNeighborsIndex',
  full_name='CoreML.Specification.NearestNeighborsIndex',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='numberOfDimensions', full_name='CoreML.Specification.NearestNeighborsIndex.numberOfDimensions', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='floatSamples', full_name='CoreML.Specification.NearestNeighborsIndex.floatSamples', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='linearIndex', full_name='CoreML.Specification.NearestNeighborsIndex.linearIndex', index=2,
      number=100, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='singleKdTreeIndex', full_name='CoreML.Specification.NearestNeighborsIndex.singleKdTreeIndex', index=3,
      number=110, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='squaredEuclideanDistance', full_name='CoreML.Specification.NearestNeighborsIndex.squaredEuclideanDistance', index=4,
      number=200, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='IndexType', full_name='CoreML.Specification.NearestNeighborsIndex.IndexType',
      index=0, containing_type=None, fields=[]),
    _descriptor.OneofDescriptor(
      name='DistanceFunction', full_name='CoreML.Specification.NearestNeighborsIndex.DistanceFunction',
      index=1, containing_type=None, fields=[]),
  ],
  serialized_start=658,
  serialized_end=1012,
)


_UNIFORMWEIGHTING = _descriptor.Descriptor(
  name='UniformWeighting',
  full_name='CoreML.Specification.UniformWeighting',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1014,
  serialized_end=1032,
)


_INVERSEDISTANCEWEIGHTING = _descriptor.Descriptor(
  name='InverseDistanceWeighting',
  full_name='CoreML.Specification.InverseDistanceWeighting',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1034,
  serialized_end=1060,
)


_LINEARINDEX = _descriptor.Descriptor(
  name='LinearIndex',
  full_name='CoreML.Specification.LinearIndex',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1062,
  serialized_end=1075,
)


_SINGLEKDTREEINDEX = _descriptor.Descriptor(
  name='SingleKdTreeIndex',
  full_name='CoreML.Specification.SingleKdTreeIndex',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='leafSize', full_name='CoreML.Specification.SingleKdTreeIndex.leafSize', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1077,
  serialized_end=1114,
)


_SQUAREDEUCLIDEANDISTANCE = _descriptor.Descriptor(
  name='SquaredEuclideanDistance',
  full_name='CoreML.Specification.SquaredEuclideanDistance',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1116,
  serialized_end=1142,
)

_KNEARESTNEIGHBORSCLASSIFIER.fields_by_name['nearestNeighborsIndex'].message_type = _NEARESTNEIGHBORSINDEX
_KNEARESTNEIGHBORSCLASSIFIER.fields_by_name['numberOfNeighbors'].message_type = Parameters__pb2._INT64PARAMETER
_KNEARESTNEIGHBORSCLASSIFIER.fields_by_name['stringClassLabels'].message_type = DataStructures__pb2._STRINGVECTOR
_KNEARESTNEIGHBORSCLASSIFIER.fields_by_name['int64ClassLabels'].message_type = DataStructures__pb2._INT64VECTOR
_KNEARESTNEIGHBORSCLASSIFIER.fields_by_name['uniformWeighting'].message_type = _UNIFORMWEIGHTING
_KNEARESTNEIGHBORSCLASSIFIER.fields_by_name['inverseDistanceWeighting'].message_type = _INVERSEDISTANCEWEIGHTING
_KNEARESTNEIGHBORSCLASSIFIER.oneofs_by_name['ClassLabels'].fields.append(
  _KNEARESTNEIGHBORSCLASSIFIER.fields_by_name['stringClassLabels'])
_KNEARESTNEIGHBORSCLASSIFIER.fields_by_name['stringClassLabels'].containing_oneof = _KNEARESTNEIGHBORSCLASSIFIER.oneofs_by_name['ClassLabels']
_KNEARESTNEIGHBORSCLASSIFIER.oneofs_by_name['ClassLabels'].fields.append(
  _KNEARESTNEIGHBORSCLASSIFIER.fields_by_name['int64ClassLabels'])
_KNEARESTNEIGHBORSCLASSIFIER.fields_by_name['int64ClassLabels'].containing_oneof = _KNEARESTNEIGHBORSCLASSIFIER.oneofs_by_name['ClassLabels']
_KNEARESTNEIGHBORSCLASSIFIER.oneofs_by_name['DefaultClassLabel'].fields.append(
  _KNEARESTNEIGHBORSCLASSIFIER.fields_by_name['defaultStringLabel'])
_KNEARESTNEIGHBORSCLASSIFIER.fields_by_name['defaultStringLabel'].containing_oneof = _KNEARESTNEIGHBORSCLASSIFIER.oneofs_by_name['DefaultClassLabel']
_KNEARESTNEIGHBORSCLASSIFIER.oneofs_by_name['DefaultClassLabel'].fields.append(
  _KNEARESTNEIGHBORSCLASSIFIER.fields_by_name['defaultInt64Label'])
_KNEARESTNEIGHBORSCLASSIFIER.fields_by_name['defaultInt64Label'].containing_oneof = _KNEARESTNEIGHBORSCLASSIFIER.oneofs_by_name['DefaultClassLabel']
_KNEARESTNEIGHBORSCLASSIFIER.oneofs_by_name['WeightingScheme'].fields.append(
  _KNEARESTNEIGHBORSCLASSIFIER.fields_by_name['uniformWeighting'])
_KNEARESTNEIGHBORSCLASSIFIER.fields_by_name['uniformWeighting'].containing_oneof = _KNEARESTNEIGHBORSCLASSIFIER.oneofs_by_name['WeightingScheme']
_KNEARESTNEIGHBORSCLASSIFIER.oneofs_by_name['WeightingScheme'].fields.append(
  _KNEARESTNEIGHBORSCLASSIFIER.fields_by_name['inverseDistanceWeighting'])
_KNEARESTNEIGHBORSCLASSIFIER.fields_by_name['inverseDistanceWeighting'].containing_oneof = _KNEARESTNEIGHBORSCLASSIFIER.oneofs_by_name['WeightingScheme']
_NEARESTNEIGHBORSINDEX.fields_by_name['floatSamples'].message_type = DataStructures__pb2._FLOATVECTOR
_NEARESTNEIGHBORSINDEX.fields_by_name['linearIndex'].message_type = _LINEARINDEX
_NEARESTNEIGHBORSINDEX.fields_by_name['singleKdTreeIndex'].message_type = _SINGLEKDTREEINDEX
_NEARESTNEIGHBORSINDEX.fields_by_name['squaredEuclideanDistance'].message_type = _SQUAREDEUCLIDEANDISTANCE
_NEARESTNEIGHBORSINDEX.oneofs_by_name['IndexType'].fields.append(
  _NEARESTNEIGHBORSINDEX.fields_by_name['linearIndex'])
_NEARESTNEIGHBORSINDEX.fields_by_name['linearIndex'].containing_oneof = _NEARESTNEIGHBORSINDEX.oneofs_by_name['IndexType']
_NEARESTNEIGHBORSINDEX.oneofs_by_name['IndexType'].fields.append(
  _NEARESTNEIGHBORSINDEX.fields_by_name['singleKdTreeIndex'])
_NEARESTNEIGHBORSINDEX.fields_by_name['singleKdTreeIndex'].containing_oneof = _NEARESTNEIGHBORSINDEX.oneofs_by_name['IndexType']
_NEARESTNEIGHBORSINDEX.oneofs_by_name['DistanceFunction'].fields.append(
  _NEARESTNEIGHBORSINDEX.fields_by_name['squaredEuclideanDistance'])
_NEARESTNEIGHBORSINDEX.fields_by_name['squaredEuclideanDistance'].containing_oneof = _NEARESTNEIGHBORSINDEX.oneofs_by_name['DistanceFunction']
DESCRIPTOR.message_types_by_name['KNearestNeighborsClassifier'] = _KNEARESTNEIGHBORSCLASSIFIER
DESCRIPTOR.message_types_by_name['NearestNeighborsIndex'] = _NEARESTNEIGHBORSINDEX
DESCRIPTOR.message_types_by_name['UniformWeighting'] = _UNIFORMWEIGHTING
DESCRIPTOR.message_types_by_name['InverseDistanceWeighting'] = _INVERSEDISTANCEWEIGHTING
DESCRIPTOR.message_types_by_name['LinearIndex'] = _LINEARINDEX
DESCRIPTOR.message_types_by_name['SingleKdTreeIndex'] = _SINGLEKDTREEINDEX
DESCRIPTOR.message_types_by_name['SquaredEuclideanDistance'] = _SQUAREDEUCLIDEANDISTANCE
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

KNearestNeighborsClassifier = _reflection.GeneratedProtocolMessageType('KNearestNeighborsClassifier', (_message.Message,), dict(
  DESCRIPTOR = _KNEARESTNEIGHBORSCLASSIFIER,
  __module__ = 'NearestNeighbors_pb2'
  # @@protoc_insertion_point(class_scope:CoreML.Specification.KNearestNeighborsClassifier)
  ))
_sym_db.RegisterMessage(KNearestNeighborsClassifier)

NearestNeighborsIndex = _reflection.GeneratedProtocolMessageType('NearestNeighborsIndex', (_message.Message,), dict(
  DESCRIPTOR = _NEARESTNEIGHBORSINDEX,
  __module__ = 'NearestNeighbors_pb2'
  # @@protoc_insertion_point(class_scope:CoreML.Specification.NearestNeighborsIndex)
  ))
_sym_db.RegisterMessage(NearestNeighborsIndex)

UniformWeighting = _reflection.GeneratedProtocolMessageType('UniformWeighting', (_message.Message,), dict(
  DESCRIPTOR = _UNIFORMWEIGHTING,
  __module__ = 'NearestNeighbors_pb2'
  # @@protoc_insertion_point(class_scope:CoreML.Specification.UniformWeighting)
  ))
_sym_db.RegisterMessage(UniformWeighting)

InverseDistanceWeighting = _reflection.GeneratedProtocolMessageType('InverseDistanceWeighting', (_message.Message,), dict(
  DESCRIPTOR = _INVERSEDISTANCEWEIGHTING,
  __module__ = 'NearestNeighbors_pb2'
  # @@protoc_insertion_point(class_scope:CoreML.Specification.InverseDistanceWeighting)
  ))
_sym_db.RegisterMessage(InverseDistanceWeighting)

LinearIndex = _reflection.GeneratedProtocolMessageType('LinearIndex', (_message.Message,), dict(
  DESCRIPTOR = _LINEARINDEX,
  __module__ = 'NearestNeighbors_pb2'
  # @@protoc_insertion_point(class_scope:CoreML.Specification.LinearIndex)
  ))
_sym_db.RegisterMessage(LinearIndex)

SingleKdTreeIndex = _reflection.GeneratedProtocolMessageType('SingleKdTreeIndex', (_message.Message,), dict(
  DESCRIPTOR = _SINGLEKDTREEINDEX,
  __module__ = 'NearestNeighbors_pb2'
  # @@protoc_insertion_point(class_scope:CoreML.Specification.SingleKdTreeIndex)
  ))
_sym_db.RegisterMessage(SingleKdTreeIndex)

SquaredEuclideanDistance = _reflection.GeneratedProtocolMessageType('SquaredEuclideanDistance', (_message.Message,), dict(
  DESCRIPTOR = _SQUAREDEUCLIDEANDISTANCE,
  __module__ = 'NearestNeighbors_pb2'
  # @@protoc_insertion_point(class_scope:CoreML.Specification.SquaredEuclideanDistance)
  ))
_sym_db.RegisterMessage(SquaredEuclideanDistance)


DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('H\003'))
# @@protoc_insertion_point(module_scope)
