in azure-protected-vm-secrets/DynamicSecretsProvisioningLibrary/pySecretsProvisioningLibrary.py [0:0]
def from_param(cls, obj):
# Convert None or 0
if obj is None or obj == 0:
return cls(ctypes.POINTER(ctypes.c_char)())
# Convert from String
elif isinstance(obj, String):
return obj
# Convert from bytes
elif isinstance(obj, bytes):
return cls(obj)
# Convert from str
elif isinstance(obj, str):
return cls(obj.encode())
# Convert from c_char_p
elif isinstance(obj, ctypes.c_char_p):
return obj
# Convert from POINTER(ctypes.c_char)
elif isinstance(obj, ctypes.POINTER(ctypes.c_char)):
return obj
# Convert from raw pointer
elif isinstance(obj, int):
return cls(ctypes.cast(obj, ctypes.POINTER(ctypes.c_char)))
# Convert from ctypes.c_char array
elif isinstance(obj, ctypes.c_char * len(obj)):
return obj
# Convert from object
else:
return String.from_param(obj._as_parameter_)