def delete_package_version(self, pkg_name: str, top_hash: str): delete_url(self.manifest_pk(pkg_name, top_hash)) if get_bytes(self.pointer_latest_pk(pkg_name)).decode() == top_hash: delete_url(self.pointer_latest_pk(pkg_name)) timestamp, new_latest = max(self.list_package_versions_with_timestamps(pkg_name), default=(None, None)) if new_latest: put_bytes(new_latest.encode(), self.pointer_latest_pk(pkg_name)) for pointer, pointer_top_hash in self.list_package_pointers(pkg_name): if pointer_top_hash == top_hash: delete_url(self.pointer_pk(pkg_name, pointer))
def push_manifest(self, pkg_name: str, top_hash: str, manifest_data: bytes): put_bytes(manifest_data, self.manifest_pk(pkg_name, top_hash)) hash_bytes = top_hash.encode() # TODO: use a float to string formatter instead of double casting put_bytes(hash_bytes, self.pointer_pk(pkg_name, str(int(time.time())))) put_bytes(hash_bytes, self.pointer_latest_pk(pkg_name))
def push_manifest(self, pkg_name: str, top_hash: str, manifest_data: bytes): """returns: timestamp to support catalog drag-and-drop => browse""" put_bytes(manifest_data, self.manifest_pk(pkg_name, top_hash)) hash_bytes = top_hash.encode() # TODO: use a float to string formatter instead of double casting timestamp_str = str(int(time.time())) put_bytes(hash_bytes, self.pointer_pk(pkg_name, timestamp_str)) put_bytes(hash_bytes, self.pointer_latest_pk(pkg_name)) return timestamp_str
def push_manifest(self, pkg_name: str, top_hash: str, manifest_data: bytes): put_bytes(manifest_data, self.manifest_pk(pkg_name, top_hash)) put_bytes(top_hash.encode(), self.pointer_latest_pk(pkg_name))
def create_local_tmp_schema(data): pk = get_package_registry().root.join('schemas/schema') put_bytes(data.encode(), pk) return pk
def set_local_conf_data(conf_data): put_bytes(conf_data.encode(), get_package_registry().workflow_conf_pk)