Subversion Repositories SmartDukaan

Rev

Rev 5110 | Rev 5361 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5110 Rev 5185
Line 174... Line 174...
174
    Parameters:
174
    Parameters:
175
     - itemNumber
175
     - itemNumber
176
    """
176
    """
177
    pass
177
    pass
178
 
178
 
-
 
179
  def getInventoryItemsFromLastScanType(self, lastScanType):
-
 
180
    """
-
 
181
    Retrieves all inventory items given a last scan type
-
 
182
 
-
 
183
    Parameters:
-
 
184
     - lastScanType
-
 
185
    """
-
 
186
    pass
-
 
187
 
-
 
188
  def getInventoryItemFromId(self, inventoryItemId):
-
 
189
    """
-
 
190
    Retrieves inventory item given a inventoryItem id
-
 
191
 
-
 
192
    Parameters:
-
 
193
     - inventoryItemId
-
 
194
    """
-
 
195
    pass
-
 
196
 
179
 
197
 
180
class Client(shop2020.thriftpy.generic.GenericService.Client, Iface):
198
class Client(shop2020.thriftpy.generic.GenericService.Client, Iface):
181
  def __init__(self, iprot, oprot=None):
199
  def __init__(self, iprot, oprot=None):
182
    shop2020.thriftpy.generic.GenericService.Client.__init__(self, iprot, oprot)
200
    shop2020.thriftpy.generic.GenericService.Client.__init__(self, iprot, oprot)
183
 
201
 
Line 715... Line 733...
715
    self._iprot.readMessageEnd()
733
    self._iprot.readMessageEnd()
716
    if result.success is not None:
734
    if result.success is not None:
717
      return result.success
735
      return result.success
718
    raise TApplicationException(TApplicationException.MISSING_RESULT, "getItemIds failed: unknown result");
736
    raise TApplicationException(TApplicationException.MISSING_RESULT, "getItemIds failed: unknown result");
719
 
737
 
-
 
738
  def getInventoryItemsFromLastScanType(self, lastScanType):
-
 
739
    """
-
 
740
    Retrieves all inventory items given a last scan type
-
 
741
 
-
 
742
    Parameters:
-
 
743
     - lastScanType
-
 
744
    """
-
 
745
    self.send_getInventoryItemsFromLastScanType(lastScanType)
-
 
746
    return self.recv_getInventoryItemsFromLastScanType()
-
 
747
 
-
 
748
  def send_getInventoryItemsFromLastScanType(self, lastScanType):
-
 
749
    self._oprot.writeMessageBegin('getInventoryItemsFromLastScanType', TMessageType.CALL, self._seqid)
-
 
750
    args = getInventoryItemsFromLastScanType_args()
-
 
751
    args.lastScanType = lastScanType
-
 
752
    args.write(self._oprot)
-
 
753
    self._oprot.writeMessageEnd()
-
 
754
    self._oprot.trans.flush()
-
 
755
 
-
 
756
  def recv_getInventoryItemsFromLastScanType(self, ):
-
 
757
    (fname, mtype, rseqid) = self._iprot.readMessageBegin()
-
 
758
    if mtype == TMessageType.EXCEPTION:
-
 
759
      x = TApplicationException()
-
 
760
      x.read(self._iprot)
-
 
761
      self._iprot.readMessageEnd()
-
 
762
      raise x
-
 
763
    result = getInventoryItemsFromLastScanType_result()
-
 
764
    result.read(self._iprot)
-
 
765
    self._iprot.readMessageEnd()
-
 
766
    if result.success is not None:
-
 
767
      return result.success
-
 
768
    if result.wex is not None:
-
 
769
      raise result.wex
-
 
770
    raise TApplicationException(TApplicationException.MISSING_RESULT, "getInventoryItemsFromLastScanType failed: unknown result");
-
 
771
 
-
 
772
  def getInventoryItemFromId(self, inventoryItemId):
-
 
773
    """
-
 
774
    Retrieves inventory item given a inventoryItem id
-
 
775
 
-
 
776
    Parameters:
-
 
777
     - inventoryItemId
-
 
778
    """
-
 
779
    self.send_getInventoryItemFromId(inventoryItemId)
-
 
780
    return self.recv_getInventoryItemFromId()
-
 
781
 
-
 
782
  def send_getInventoryItemFromId(self, inventoryItemId):
-
 
783
    self._oprot.writeMessageBegin('getInventoryItemFromId', TMessageType.CALL, self._seqid)
-
 
784
    args = getInventoryItemFromId_args()
-
 
785
    args.inventoryItemId = inventoryItemId
-
 
786
    args.write(self._oprot)
-
 
787
    self._oprot.writeMessageEnd()
-
 
788
    self._oprot.trans.flush()
-
 
789
 
-
 
790
  def recv_getInventoryItemFromId(self, ):
-
 
791
    (fname, mtype, rseqid) = self._iprot.readMessageBegin()
-
 
792
    if mtype == TMessageType.EXCEPTION:
-
 
793
      x = TApplicationException()
-
 
794
      x.read(self._iprot)
-
 
795
      self._iprot.readMessageEnd()
-
 
796
      raise x
-
 
797
    result = getInventoryItemFromId_result()
-
 
798
    result.read(self._iprot)
-
 
799
    self._iprot.readMessageEnd()
-
 
800
    if result.success is not None:
-
 
801
      return result.success
-
 
802
    if result.wex is not None:
-
 
803
      raise result.wex
-
 
804
    raise TApplicationException(TApplicationException.MISSING_RESULT, "getInventoryItemFromId failed: unknown result");
-
 
805
 
720
 
806
 
721
class Processor(shop2020.thriftpy.generic.GenericService.Processor, Iface, TProcessor):
807
class Processor(shop2020.thriftpy.generic.GenericService.Processor, Iface, TProcessor):
722
  def __init__(self, handler):
808
  def __init__(self, handler):
723
    shop2020.thriftpy.generic.GenericService.Processor.__init__(self, handler)
809
    shop2020.thriftpy.generic.GenericService.Processor.__init__(self, handler)
724
    self._processMap["createSerializedInventoryItem"] = Processor.process_createSerializedInventoryItem
810
    self._processMap["createSerializedInventoryItem"] = Processor.process_createSerializedInventoryItem
Line 734... Line 820...
734
    self._processMap["scanSerializedItemForOrder"] = Processor.process_scanSerializedItemForOrder
820
    self._processMap["scanSerializedItemForOrder"] = Processor.process_scanSerializedItemForOrder
735
    self._processMap["scanForOrder"] = Processor.process_scanForOrder
821
    self._processMap["scanForOrder"] = Processor.process_scanForOrder
736
    self._processMap["createItemNumberMapping"] = Processor.process_createItemNumberMapping
822
    self._processMap["createItemNumberMapping"] = Processor.process_createItemNumberMapping
737
    self._processMap["getItemNumbers"] = Processor.process_getItemNumbers
823
    self._processMap["getItemNumbers"] = Processor.process_getItemNumbers
738
    self._processMap["getItemIds"] = Processor.process_getItemIds
824
    self._processMap["getItemIds"] = Processor.process_getItemIds
-
 
825
    self._processMap["getInventoryItemsFromLastScanType"] = Processor.process_getInventoryItemsFromLastScanType
-
 
826
    self._processMap["getInventoryItemFromId"] = Processor.process_getInventoryItemFromId
739
 
827
 
740
  def process(self, iprot, oprot):
828
  def process(self, iprot, oprot):
741
    (name, type, seqid) = iprot.readMessageBegin()
829
    (name, type, seqid) = iprot.readMessageBegin()
742
    if name not in self._processMap:
830
    if name not in self._processMap:
743
      iprot.skip(TType.STRUCT)
831
      iprot.skip(TType.STRUCT)
Line 939... Line 1027...
939
    oprot.writeMessageBegin("getItemIds", TMessageType.REPLY, seqid)
1027
    oprot.writeMessageBegin("getItemIds", TMessageType.REPLY, seqid)
940
    result.write(oprot)
1028
    result.write(oprot)
941
    oprot.writeMessageEnd()
1029
    oprot.writeMessageEnd()
942
    oprot.trans.flush()
1030
    oprot.trans.flush()
943
 
1031
 
-
 
1032
  def process_getInventoryItemsFromLastScanType(self, seqid, iprot, oprot):
-
 
1033
    args = getInventoryItemsFromLastScanType_args()
-
 
1034
    args.read(iprot)
-
 
1035
    iprot.readMessageEnd()
-
 
1036
    result = getInventoryItemsFromLastScanType_result()
-
 
1037
    try:
-
 
1038
      result.success = self._handler.getInventoryItemsFromLastScanType(args.lastScanType)
-
 
1039
    except WarehouseServiceException, wex:
-
 
1040
      result.wex = wex
-
 
1041
    oprot.writeMessageBegin("getInventoryItemsFromLastScanType", TMessageType.REPLY, seqid)
-
 
1042
    result.write(oprot)
-
 
1043
    oprot.writeMessageEnd()
-
 
1044
    oprot.trans.flush()
-
 
1045
 
-
 
1046
  def process_getInventoryItemFromId(self, seqid, iprot, oprot):
-
 
1047
    args = getInventoryItemFromId_args()
-
 
1048
    args.read(iprot)
-
 
1049
    iprot.readMessageEnd()
-
 
1050
    result = getInventoryItemFromId_result()
-
 
1051
    try:
-
 
1052
      result.success = self._handler.getInventoryItemFromId(args.inventoryItemId)
-
 
1053
    except WarehouseServiceException, wex:
-
 
1054
      result.wex = wex
-
 
1055
    oprot.writeMessageBegin("getInventoryItemFromId", TMessageType.REPLY, seqid)
-
 
1056
    result.write(oprot)
-
 
1057
    oprot.writeMessageEnd()
-
 
1058
    oprot.trans.flush()
-
 
1059
 
944
 
1060
 
945
# HELPER FUNCTIONS AND STRUCTURES
1061
# HELPER FUNCTIONS AND STRUCTURES
946
 
1062
 
947
class createSerializedInventoryItem_args:
1063
class createSerializedInventoryItem_args:
948
  """
1064
  """
Line 3113... Line 3229...
3113
      oprot.writeFieldEnd()
3229
      oprot.writeFieldEnd()
3114
    oprot.writeFieldStop()
3230
    oprot.writeFieldStop()
3115
    oprot.writeStructEnd()
3231
    oprot.writeStructEnd()
3116
 
3232
 
3117
  def validate(self):
3233
  def validate(self):
-
 
3234
    return
-
 
3235
 
-
 
3236
 
-
 
3237
  def __repr__(self):
-
 
3238
    L = ['%s=%r' % (key, value)
-
 
3239
      for key, value in self.__dict__.iteritems()]
-
 
3240
    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
-
 
3241
 
-
 
3242
  def __eq__(self, other):
-
 
3243
    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
-
 
3244
 
-
 
3245
  def __ne__(self, other):
-
 
3246
    return not (self == other)
-
 
3247
 
-
 
3248
class getInventoryItemsFromLastScanType_args:
-
 
3249
  """
-
 
3250
  Attributes:
-
 
3251
   - lastScanType
-
 
3252
  """
-
 
3253
 
-
 
3254
  thrift_spec = (
-
 
3255
    None, # 0
-
 
3256
    (1, TType.I32, 'lastScanType', None, None, ), # 1
-
 
3257
  )
-
 
3258
 
-
 
3259
  def __init__(self, lastScanType=None,):
-
 
3260
    self.lastScanType = lastScanType
-
 
3261
 
-
 
3262
  def read(self, iprot):
-
 
3263
    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
-
 
3264
      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
-
 
3265
      return
-
 
3266
    iprot.readStructBegin()
-
 
3267
    while True:
-
 
3268
      (fname, ftype, fid) = iprot.readFieldBegin()
-
 
3269
      if ftype == TType.STOP:
-
 
3270
        break
-
 
3271
      if fid == 1:
-
 
3272
        if ftype == TType.I32:
-
 
3273
          self.lastScanType = iprot.readI32();
-
 
3274
        else:
-
 
3275
          iprot.skip(ftype)
-
 
3276
      else:
-
 
3277
        iprot.skip(ftype)
-
 
3278
      iprot.readFieldEnd()
-
 
3279
    iprot.readStructEnd()
-
 
3280
 
-
 
3281
  def write(self, oprot):
-
 
3282
    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
-
 
3283
      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
-
 
3284
      return
-
 
3285
    oprot.writeStructBegin('getInventoryItemsFromLastScanType_args')
-
 
3286
    if self.lastScanType is not None:
-
 
3287
      oprot.writeFieldBegin('lastScanType', TType.I32, 1)
-
 
3288
      oprot.writeI32(self.lastScanType)
-
 
3289
      oprot.writeFieldEnd()
-
 
3290
    oprot.writeFieldStop()
-
 
3291
    oprot.writeStructEnd()
-
 
3292
 
-
 
3293
  def validate(self):
-
 
3294
    return
-
 
3295
 
-
 
3296
 
-
 
3297
  def __repr__(self):
-
 
3298
    L = ['%s=%r' % (key, value)
-
 
3299
      for key, value in self.__dict__.iteritems()]
-
 
3300
    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
-
 
3301
 
-
 
3302
  def __eq__(self, other):
-
 
3303
    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
-
 
3304
 
-
 
3305
  def __ne__(self, other):
-
 
3306
    return not (self == other)
-
 
3307
 
-
 
3308
class getInventoryItemsFromLastScanType_result:
-
 
3309
  """
-
 
3310
  Attributes:
-
 
3311
   - success
-
 
3312
   - wex
-
 
3313
  """
-
 
3314
 
-
 
3315
  thrift_spec = (
-
 
3316
    (0, TType.LIST, 'success', (TType.STRUCT,(InventoryItem, InventoryItem.thrift_spec)), None, ), # 0
-
 
3317
    (1, TType.STRUCT, 'wex', (WarehouseServiceException, WarehouseServiceException.thrift_spec), None, ), # 1
-
 
3318
  )
-
 
3319
 
-
 
3320
  def __init__(self, success=None, wex=None,):
-
 
3321
    self.success = success
-
 
3322
    self.wex = wex
-
 
3323
 
-
 
3324
  def read(self, iprot):
-
 
3325
    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
-
 
3326
      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
-
 
3327
      return
-
 
3328
    iprot.readStructBegin()
-
 
3329
    while True:
-
 
3330
      (fname, ftype, fid) = iprot.readFieldBegin()
-
 
3331
      if ftype == TType.STOP:
-
 
3332
        break
-
 
3333
      if fid == 0:
-
 
3334
        if ftype == TType.LIST:
-
 
3335
          self.success = []
-
 
3336
          (_etype45, _size42) = iprot.readListBegin()
-
 
3337
          for _i46 in xrange(_size42):
-
 
3338
            _elem47 = InventoryItem()
-
 
3339
            _elem47.read(iprot)
-
 
3340
            self.success.append(_elem47)
-
 
3341
          iprot.readListEnd()
-
 
3342
        else:
-
 
3343
          iprot.skip(ftype)
-
 
3344
      elif fid == 1:
-
 
3345
        if ftype == TType.STRUCT:
-
 
3346
          self.wex = WarehouseServiceException()
-
 
3347
          self.wex.read(iprot)
-
 
3348
        else:
-
 
3349
          iprot.skip(ftype)
-
 
3350
      else:
-
 
3351
        iprot.skip(ftype)
-
 
3352
      iprot.readFieldEnd()
-
 
3353
    iprot.readStructEnd()
-
 
3354
 
-
 
3355
  def write(self, oprot):
-
 
3356
    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
-
 
3357
      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
-
 
3358
      return
-
 
3359
    oprot.writeStructBegin('getInventoryItemsFromLastScanType_result')
-
 
3360
    if self.success is not None:
-
 
3361
      oprot.writeFieldBegin('success', TType.LIST, 0)
-
 
3362
      oprot.writeListBegin(TType.STRUCT, len(self.success))
-
 
3363
      for iter48 in self.success:
-
 
3364
        iter48.write(oprot)
-
 
3365
      oprot.writeListEnd()
-
 
3366
      oprot.writeFieldEnd()
-
 
3367
    if self.wex is not None:
-
 
3368
      oprot.writeFieldBegin('wex', TType.STRUCT, 1)
-
 
3369
      self.wex.write(oprot)
-
 
3370
      oprot.writeFieldEnd()
-
 
3371
    oprot.writeFieldStop()
-
 
3372
    oprot.writeStructEnd()
-
 
3373
 
-
 
3374
  def validate(self):
-
 
3375
    return
-
 
3376
 
-
 
3377
 
-
 
3378
  def __repr__(self):
-
 
3379
    L = ['%s=%r' % (key, value)
-
 
3380
      for key, value in self.__dict__.iteritems()]
-
 
3381
    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
-
 
3382
 
-
 
3383
  def __eq__(self, other):
-
 
3384
    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
-
 
3385
 
-
 
3386
  def __ne__(self, other):
-
 
3387
    return not (self == other)
-
 
3388
 
-
 
3389
class getInventoryItemFromId_args:
-
 
3390
  """
-
 
3391
  Attributes:
-
 
3392
   - inventoryItemId
-
 
3393
  """
-
 
3394
 
-
 
3395
  thrift_spec = (
-
 
3396
    None, # 0
-
 
3397
    (1, TType.I64, 'inventoryItemId', None, None, ), # 1
-
 
3398
  )
-
 
3399
 
-
 
3400
  def __init__(self, inventoryItemId=None,):
-
 
3401
    self.inventoryItemId = inventoryItemId
-
 
3402
 
-
 
3403
  def read(self, iprot):
-
 
3404
    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
-
 
3405
      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
-
 
3406
      return
-
 
3407
    iprot.readStructBegin()
-
 
3408
    while True:
-
 
3409
      (fname, ftype, fid) = iprot.readFieldBegin()
-
 
3410
      if ftype == TType.STOP:
-
 
3411
        break
-
 
3412
      if fid == 1:
-
 
3413
        if ftype == TType.I64:
-
 
3414
          self.inventoryItemId = iprot.readI64();
-
 
3415
        else:
-
 
3416
          iprot.skip(ftype)
-
 
3417
      else:
-
 
3418
        iprot.skip(ftype)
-
 
3419
      iprot.readFieldEnd()
-
 
3420
    iprot.readStructEnd()
-
 
3421
 
-
 
3422
  def write(self, oprot):
-
 
3423
    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
-
 
3424
      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
-
 
3425
      return
-
 
3426
    oprot.writeStructBegin('getInventoryItemFromId_args')
-
 
3427
    if self.inventoryItemId is not None:
-
 
3428
      oprot.writeFieldBegin('inventoryItemId', TType.I64, 1)
-
 
3429
      oprot.writeI64(self.inventoryItemId)
-
 
3430
      oprot.writeFieldEnd()
-
 
3431
    oprot.writeFieldStop()
-
 
3432
    oprot.writeStructEnd()
-
 
3433
 
-
 
3434
  def validate(self):
-
 
3435
    return
-
 
3436
 
-
 
3437
 
-
 
3438
  def __repr__(self):
-
 
3439
    L = ['%s=%r' % (key, value)
-
 
3440
      for key, value in self.__dict__.iteritems()]
-
 
3441
    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
-
 
3442
 
-
 
3443
  def __eq__(self, other):
-
 
3444
    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
-
 
3445
 
-
 
3446
  def __ne__(self, other):
-
 
3447
    return not (self == other)
-
 
3448
 
-
 
3449
class getInventoryItemFromId_result:
-
 
3450
  """
-
 
3451
  Attributes:
-
 
3452
   - success
-
 
3453
   - wex
-
 
3454
  """
-
 
3455
 
-
 
3456
  thrift_spec = (
-
 
3457
    (0, TType.STRUCT, 'success', (InventoryItem, InventoryItem.thrift_spec), None, ), # 0
-
 
3458
    (1, TType.STRUCT, 'wex', (WarehouseServiceException, WarehouseServiceException.thrift_spec), None, ), # 1
-
 
3459
  )
-
 
3460
 
-
 
3461
  def __init__(self, success=None, wex=None,):
-
 
3462
    self.success = success
-
 
3463
    self.wex = wex
-
 
3464
 
-
 
3465
  def read(self, iprot):
-
 
3466
    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
-
 
3467
      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
-
 
3468
      return
-
 
3469
    iprot.readStructBegin()
-
 
3470
    while True:
-
 
3471
      (fname, ftype, fid) = iprot.readFieldBegin()
-
 
3472
      if ftype == TType.STOP:
-
 
3473
        break
-
 
3474
      if fid == 0:
-
 
3475
        if ftype == TType.STRUCT:
-
 
3476
          self.success = InventoryItem()
-
 
3477
          self.success.read(iprot)
-
 
3478
        else:
-
 
3479
          iprot.skip(ftype)
-
 
3480
      elif fid == 1:
-
 
3481
        if ftype == TType.STRUCT:
-
 
3482
          self.wex = WarehouseServiceException()
-
 
3483
          self.wex.read(iprot)
-
 
3484
        else:
-
 
3485
          iprot.skip(ftype)
-
 
3486
      else:
-
 
3487
        iprot.skip(ftype)
-
 
3488
      iprot.readFieldEnd()
-
 
3489
    iprot.readStructEnd()
-
 
3490
 
-
 
3491
  def write(self, oprot):
-
 
3492
    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
-
 
3493
      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
-
 
3494
      return
-
 
3495
    oprot.writeStructBegin('getInventoryItemFromId_result')
-
 
3496
    if self.success is not None:
-
 
3497
      oprot.writeFieldBegin('success', TType.STRUCT, 0)
-
 
3498
      self.success.write(oprot)
-
 
3499
      oprot.writeFieldEnd()
-
 
3500
    if self.wex is not None:
-
 
3501
      oprot.writeFieldBegin('wex', TType.STRUCT, 1)
-
 
3502
      self.wex.write(oprot)
-
 
3503
      oprot.writeFieldEnd()
-
 
3504
    oprot.writeFieldStop()
-
 
3505
    oprot.writeStructEnd()
-
 
3506
 
-
 
3507
  def validate(self):
3118
    return
3508
    return
3119
 
3509
 
3120
 
3510
 
3121
  def __repr__(self):
3511
  def __repr__(self):
3122
    L = ['%s=%r' % (key, value)
3512
    L = ['%s=%r' % (key, value)