def __init__(self, client, method, href, rel, schema=None, target_schema=None): self.method = method self.href_placeholders = re.findall(r"{(\w+)}", href) self.href = href self.rel = rel self.schema = Schema(schema) self.target_schema = Schema(target_schema)
class Link(object): def __init__(self, client, method, href, rel, schema=None, target_schema=None): self.method = method self.href_placeholders = re.findall(r"{(\w+)}", href) self.href = href self.rel = rel self.schema = Schema(schema) self.target_schema = Schema(target_schema) @property def requires_instance(self): return '{id}' in self.href def returns_pagination(self): if self.method == 'GET' and self.schema is not None: schema_properties = self.schema.get('properties', {}) return 'page' in schema_properties and 'per_page' in schema_properties return False def __get__(self, instance, owner): return LinkBinding(self, instance, owner)