ripe-alarm-8919
02/18/2025, 8:17 PM[[package]]
name = "daff"
version = "1.3.46"
description = "Diff and patch tables"
optional = false
python-versions = "*"
files = [
{file = "daff-1.3.46.tar.gz", hash = "sha256:22d0da9fd6a3275b54c926a9c97b180f9258aad65113ea18f3fec52cbadcd818"},
]
Wonder what are your thoughts and whether there’s a better way to approach this instead of forking this behavior. thankyoudry-beach-38304
02/18/2025, 8:43 PMripe-alarm-8919
02/19/2025, 2:05 AM@pypi
decorator for source tarballs.
For context, we maintain our own metaflow-fork
and metaflow_extensions/css
now we would need the following override precedence:
metaflow_extensions/css
-> metaflow_extensions/netflix_ext
-> metaflow-fork
I’m struggling with the best way to organize this. I want to avoid maintaining another fork of netflix_ext.
@dry-beach-38304 Wonder if you have any context on whether the extension framework can allow multiple extensions work in chain like this.dry-beach-38304
02/19/2025, 11:18 AMdry-beach-38304
02/19/2025, 11:19 AMripe-alarm-8919
02/19/2025, 7:48 PMmetaflow-fork
(i.e. forking https://github.com/Netflix/metaflow)
2. and a metaflow extension metaflow_extensions/css
. (similar to the netflix extension, folder structure is copied from the template)
> extA depends on extB,
how to make this happen?
Currently my extension metaflow_extensions/css
depends on my fork metaflow==2.14.0+css.2
. (see screenshot of extension folder)
Should I update the setup.py
of my extension to depend on netflix_ext, then modify netflix_ext to depend on my fork? (how to avoid modifying netflix_ext? )dry-beach-38304
02/27/2025, 7:15 PMripe-alarm-8919
02/27/2025, 8:29 PMmetaflow/metaflow_environment.py
to support UNSIGNED call to s3.
def _get_download_code_package_cmd(self, code_package_url, datastore_type):
...
boto3.client(...).download_file
here we updated the boto3 client usage so that it makes the request with Config(signature_version=UNSIGNED)
config.
2. metaflow/plugins/argo/argo_workflows.py
modifications to support our custom decorator @rayStep
(where the step should run on Ray)
... to invoke the task_finished method for raysteps. This is because the raystep itself runs on a remote ray cluster, while argo workflow expects some steps after the task finishes, which includes writing task_ids to files on the argo pods. This is the reason we cannot perform these operations in the task_finished() method of the RaystepDecorator, and the reason why we need to use this cli wrapper to invoke the task_finished method.
I’m not sure how to achieve above in a plugin. (maybe module override?) Would love to hear your thoughts on this!