def __generate_single_srcset_url(self, breakpoint, **options): """ Helper function. Generates a single srcset item url. :param width: Width in pixels of the srcset item :param options: A dict with additional options :return: Resulting URL of the item """ # The following line is used for the next purposes: # 1. Generate raw transformation string # 2. Cleanup transformation parameters from options. # We call it intentionally even when the user provided custom transformation in srcset raw_transformation, options = utils.generate_transformation_string( **options) # Handle custom transformation provided for srcset items if "srcset" in options and "transformation" in options[ "srcset"] and options["srcset"]["transformation"]: options["transformation"] = options["srcset"]["transformation"] raw_transformation, options = utils.generate_transformation_string( **options) options[ "raw_transformation"] = raw_transformation + "/c_scale,w_{}".format( breakpoint) # We might still have width and height params left if they were provided. # We don't want to use them for the second time for key in {"width", "height"}: options.pop(key, None) return utils.cloudinary_url(self.public_id, **options)[0]
def build_upload_params(**options): params = {"timestamp": now(), "transformation" : utils.generate_transformation_string(**options)[0], "public_id": options.get("public_id"), "callback": options.get("callback"), "format": options.get("format"), "type": options.get("type"), "backup": options.get("backup"), "tags": options.get("tags") and ",".join(utils.build_array(options["tags"]))} if "eager" in options: params["eager"] = "|".join([utils.generate_transformation_string(**tr)[0] for tr in utils.build_array(options["eager"]) if tr]) return params
def build_eager(transformations): eager = [] for tr in utils.build_array(transformations): format = tr.get("format") single_eager = "/".join([x for x in [utils.generate_transformation_string(**tr)[0], format] if x]) eager.append(single_eager) return "|".join(eager)
def build_upload_params(**options): params = { "timestamp": now(), "transformation": utils.generate_transformation_string(**options)[0], "public_id": options.get("public_id"), "callback": options.get("callback"), "format": options.get("format"), "type": options.get("type"), "backup": options.get("backup"), "faces": options.get("faces"), "exif": options.get("exif"), "colors": options.get("colors"), "headers": build_custom_headers(options.get("headers")), "eager": build_eager(options.get("eager")), "tags": options.get("tags") and ",".join(utils.build_array(options["tags"])) } return params
def explode(public_id, **options): params = { "timestamp": utils.now(), "public_id": public_id, "format": options.get("format"), "notification_url": options.get("notification_url"), "transformation": utils.generate_transformation_string(**options)[0] } return call_api("explode", params, **options)
def generate_sprite(tag, **options): params = { "timestamp": utils.now(), "tag": tag, "async": options.get("async"), "notification_url": options.get("notification_url"), "transformation": utils.generate_transformation_string(fetch_format=options.get("format"), **options)[0] } return call_api("sprite", params, **options)
def multi(tag, **options): params = { "timestamp": utils.now(), "tag": tag, "format": options.get("format"), "async": options.get("async"), "notification_url": options.get("notification_url"), "transformation": utils.generate_transformation_string(**options)[0] } return call_api("multi", params, **options)
def build_upload_params(**options): params = {"timestamp": now(), "transformation" : utils.generate_transformation_string(**options)[0], "public_id": options.get("public_id"), "callback": options.get("callback"), "format": options.get("format"), "type": options.get("type"), "backup": options.get("backup"), "headers": build_custom_headers(options.get("headers")), "eager": build_eager(options.get("eager")), "tags": options.get("tags") and ",".join(utils.build_array(options["tags"]))} return params
def url_with_options_chain(self, *options): # Allow transformations to be chained together by passing in array of # transformations # XXX Note that some fancy transformations will only work in the first # XXX transformation, we'll build this functionality out further in the # XXX future if we need it # Generate a base url based on the first transformation url = utils.cloudinary_url(self.name, **options[0][0])[0] # For the rest of transformations in the chain, insert into the image # url appropriately for transformation in options[0][1:]: split_pos = re.search('upload/.+?/',url).end() url = url[:split_pos] + \ utils.generate_transformation_string(**transformation)[0] + '/' + \ url[split_pos:] return url
def build_upload_params(**options): params = {"timestamp": now(), "transformation": utils.generate_transformation_string(**options)[0], "public_id": options.get("public_id"), "callback": options.get("callback"), "format": options.get("format"), "type": options.get("type"), "backup": options.get("backup"), "faces": options.get("faces"), "image_metadata": options.get("image_metadata"), "exif": options.get("exif"), "colors": options.get("colors"), "headers": build_custom_headers(options.get("headers")), "eager": build_eager(options.get("eager")), "use_filename": options.get("use_filename"), "notification_url": options.get("notification_url"), "eager_notification_url": options.get("eager_notification_url"), "eager_async": options.get("eager_async"), "tags": options.get("tags") and ",".join(utils.build_array(options["tags"]))} return params
def build_upload_params(**options): params = {"timestamp": utils.now(), "transformation": utils.generate_transformation_string(**options)[0], "public_id": options.get("public_id"), "callback": options.get("callback"), "format": options.get("format"), "type": options.get("type"), "backup": options.get("backup"), "faces": options.get("faces"), "image_metadata": options.get("image_metadata"), "exif": options.get("exif"), "colors": options.get("colors"), "headers": build_custom_headers(options.get("headers")), "eager": build_eager(options.get("eager")), "use_filename": options.get("use_filename"), "unique_filename": options.get("unique_filename"), "discard_original_filename": options.get("discard_original_filename"), "invalidate": options.get("invalidate"), "notification_url": options.get("notification_url"), "eager_notification_url": options.get("eager_notification_url"), "eager_async": options.get("eager_async"), "proxy": options.get("proxy"), "folder": options.get("folder"), "overwrite": options.get("overwrite"), "tags": options.get("tags") and ",".join(utils.build_array(options["tags"])), "allowed_formats": options.get("allowed_formats") and ",".join(utils.build_array(options["allowed_formats"])), "face_coordinates": utils.encode_double_array(options.get("face_coordinates")), "context": utils.encode_dict(options.get("context")), "moderation": options.get("moderation"), "raw_convert": options.get("raw_convert"), "ocr": options.get("ocr"), "categorization": options.get("categorization"), "detection": options.get("detection"), "similarity_search": options.get("similarity_search"), "auto_tagging": options.get("auto_tagging") and float(options.get("auto_tagging"))} params = dict( [ (k, __safe_value(v)) for (k,v) in params.items()] ) return params
def build_upload_params(**options): params = { "timestamp": utils.now(), "transformation": utils.generate_transformation_string(**options)[0], "public_id": options.get("public_id"), "callback": options.get("callback"), "format": options.get("format"), "type": options.get("type"), "backup": options.get("backup"), "faces": options.get("faces"), "image_metadata": options.get("image_metadata"), "exif": options.get("exif"), "colors": options.get("colors"), "headers": build_custom_headers(options.get("headers")), "eager": build_eager(options.get("eager")), "use_filename": options.get("use_filename"), "unique_filename": options.get("unique_filename"), "discard_original_filename": options.get("discard_original_filename"), "invalidate": options.get("invalidate"), "notification_url": options.get("notification_url"), "eager_notification_url": options.get("eager_notification_url"), "eager_async": options.get("eager_async"), "proxy": options.get("proxy"), "folder": options.get("folder"), "overwrite": options.get("overwrite"), "tags": options.get("tags") and ",".join(utils.build_array(options["tags"])), "allowed_formats": options.get("allowed_formats") and ",".join(utils.build_array(options["allowed_formats"])), "face_coordinates": utils.encode_double_array(options.get("face_coordinates")), "context": utils.encode_dict(options.get("context")), "moderation": options.get("moderation"), "raw_convert": options.get("raw_convert"), "ocr": options.get("ocr"), "categorization": options.get("categorization"), "detection": options.get("detection"), "similarity_search": options.get("similarity_search"), "auto_tagging": options.get("auto_tagging") and float(options.get("auto_tagging")) } params = dict([(k, __safe_value(v)) for (k, v) in params.items()]) return params