mirror of
https://github.com/google/earthengine-api.git
synced 2025-12-08 19:26:12 +00:00
67 lines
1.8 KiB
Python
67 lines
1.8 KiB
Python
#!/usr/bin/env python
|
|
"""Interfaces implemented by serializable objects."""
|
|
|
|
|
|
|
|
# Using lowercase function naming to match the JavaScript names.
|
|
# pylint: disable-msg=g-bad-name
|
|
|
|
|
|
class Encodable(object):
|
|
"""An interface implemented by objects that can serialize themselves."""
|
|
|
|
def encode(self, encoder):
|
|
"""Encodes the object in a format compatible with Serializer.
|
|
|
|
Args:
|
|
encoder: A function that can be called to encode the components of
|
|
an object.
|
|
|
|
Returns:
|
|
The encoded form of the object.
|
|
"""
|
|
raise NotImplementedError('Encodable classes must implement encode().')
|
|
|
|
def encode_cloud_value(self, encoder):
|
|
"""Encodes the object as a ValueNode.
|
|
|
|
Args:
|
|
encoder: A function that can be called to encode the components of
|
|
an object.
|
|
|
|
Returns:
|
|
The encoded form of the object.
|
|
"""
|
|
raise NotImplementedError(
|
|
'Encodable classes must implement encode_cloud_value().')
|
|
|
|
|
|
class EncodableFunction(object):
|
|
"""An interface implemented by functions that can serialize themselves."""
|
|
|
|
def encode_invocation(self, encoder):
|
|
"""Encodes the function in a format compatible with Serializer.
|
|
|
|
Args:
|
|
encoder: A function that can be called to encode the components of
|
|
an object.
|
|
|
|
Returns:
|
|
The encoded form of the function.
|
|
"""
|
|
raise NotImplementedError(
|
|
'EncodableFunction classes must implement encode_invocation().')
|
|
|
|
def encode_cloud_invocation(self, encoder):
|
|
"""Encodes the function as a FunctionInvocation.
|
|
|
|
Args:
|
|
encoder: A function that can be called to encode the components of
|
|
an object. Returns a reference to the encoded value.
|
|
|
|
Returns:
|
|
The encoded form of the function.
|
|
"""
|
|
raise NotImplementedError(
|
|
'EncodableFunction classes must implement encode_cloud_invocation().')
|