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? )ripe-alarm-8919
02/27/2025, 1:47 AM@pypi directly in the metaflow-fork itself but it led to so many instability that’s beyond my ability to tackle.
I’m planning to integrate with metaflow-nflx-extensions instead.
Since i’ll need to make it point to my metaflow-fork, (not the upstream metaflow), I don’t think I can directly install it. i’ll have to maintain a fork of metaflow-nflx-extensions so that:
user flow ----> metaflow-{my-org}-extensions ------> metaflow-nflx-extensions ----> metaflow-fork
@dry-beach-38304 Please let me know your thoughts on this approach or if you see better way. thankyoudry-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!