<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def from_object(cls, o, base_uri):
 """Returns a new ``Link`` based on a JSON object or array. Arguments: - ``o``: a dictionary holding the deserializated JSON for the new ``Link``, or a ``list`` of such documents. - ``base_uri``: optional URL used as the basis when expanding relative URLs in the link. """

        if isinstance(o, list):
            if len(o) == 1:
                return cls.from_object(o[0], base_uri)

            return [cls.from_object(x, base_uri) for x in o]

        return cls(o, base_uri)