MCPcopy Create free account
hub / github.com/Keeper-Security/Commander / TypedField

Class TypedField

keepercommander/vault.py:307–848  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

305
306
307class TypedField(object):
308 def __init__(self, typed_field=None):
309 if typed_field is None:
310 typed_field = {}
311 self.type = sanitize_str_field_value(typed_field.get('type')).strip()
312 self.label = sanitize_str_field_value(typed_field.get('label')).strip()
313 value = typed_field.get('value')
314 if not isinstance(value, list):
315 if isinstance(value, (str, int, bool)):
316 value = [value]
317 elif isinstance(value, collections.abc.Iterable):
318 value = [x for x in value]
319 else:
320 value = []
321 self.value = value
322 self.required = sanitize_bool_field_value(typed_field.get('required'))
323
324 @classmethod
325 def new_field(cls, field_type, field_value, field_label=None):
326 # type: (str, Any, Optional[str]) -> 'TypedField'
327 f_type = sanitize_str_field_value(field_type) or 'text'
328 # TODO check field value
329 if not isinstance(field_value, list):
330 if field_value is not None:
331 field_value = [field_value]
332 else:
333 field_value = []
334 tf = TypedField()
335 tf.type = f_type
336 tf.value = field_value
337 tf.label = sanitize_str_field_value(field_label)
338 return tf
339
340 def get_default_value(self, value_type=None): # type: (Optional[Type]) -> any
341 value = None
342 if isinstance(self.value, list):
343 if len(self.value) > 0:
344 value = self.value[0]
345 else:
346 value = self.value
347 if isinstance(value_type, type):
348 if not isinstance(value, value_type):
349 return
350 return value
351
352 def get_field_name(self):
353 return f'({self.type}).{self.label}' if self.type and self.label else \
354 f'({self.type})' if self.type else \
355 f'{self.label}'
356
357 @staticmethod
358 def export_host_field(value): # type: (dict) -> Optional[str]
359 if isinstance(value, dict):
360 host = value.get('hostName') or ''
361 port = value.get('port') or ''
362 if host or port:
363 if port:
364 host += ':' + str(port)

Callers 5

createMethod · 0.85
new_fieldMethod · 0.85
load_record_dataMethod · 0.85
update_passwordFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected