Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add flytekit-omegaconf plugin #2299

Merged
merged 28 commits into from
Aug 1, 2024
Merged

Conversation

mg515
Copy link
Contributor

@mg515 mg515 commented Mar 27, 2024

Why are the changes needed?

Flytekit natively supports serialization of many data types for exchanging information between tasks.

The Flytekit OmegaConf Plugin extends these by the DictConfig type from the OmegaConf package as well as related types that are being used by the hydra package for configuration management.

Task example

from dataclasses import dataclass
from flytekit import task, workflow
from omegaconf import DictConfig
import flytekitplugins.omegaconf  # noqa F401


@dataclass
class MySimpleConf:
    _target_: str = "lightning_module.MyEncoderModule"
    learning_rate: float = 0.0001


@task
def my_task(cfg: DictConfig) -> None:
    print(f"Doing things with {cfg.learning_rate=}")


@workflow
def pipeline(cfg: DictConfig) -> None:
    my_task(cfg=cfg)


if __name__ == "__main__":
    from omegaconf import OmegaConf

    cfg = OmegaConf.structured(MySimpleConf)
    pipeline(cfg=cfg)

How was this patch tested?

Unit tests are added within the same PR.

Additionally, the plugin has been in private use for a while and is tested within multiple projects.

Check all the applicable boxes

  • I updated the documentation accordingly.
  • All new and existing tests passed.
  • All commits are signed-off.

Acknowledgements

The first version of the plugin was developed roughly at the end of year 2021 by some of the current and former members of Merantix Momentum. Shoutout to @SebS94 @fg91 @AdemFr @YmirKhang @axkoenig @adrianloy @ThomasWollmann

Copy link

welcome bot commented Mar 27, 2024

Thank you for opening this pull request! 🙌

These tips will help get your PR across the finish line:

  • Most of the repos have a PR template; if not, fill it out to the best of your knowledge.
  • Sign off your commits (Reference: DCO Guide).

@dosubot dosubot bot added the size:XXL This PR changes 1000+ lines, ignoring generated files. label Mar 27, 2024
Signed-off-by: mg515 <miha.garafolj@gmail.com>
Signed-off-by: mg515 <miha.garafolj@gmail.com>
Copy link

codecov bot commented Mar 27, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 76.15%. Comparing base (fa2aa0b) to head (0a745d0).
Report is 227 commits behind head on master.

❗ There is a different number of reports uploaded between BASE (fa2aa0b) and HEAD (0a745d0). Click for more details.

HEAD has 148 uploads less than BASE
Flag BASE (fa2aa0b) HEAD (0a745d0)
151 3
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2299      +/-   ##
==========================================
- Coverage   83.89%   76.15%   -7.75%     
==========================================
  Files         342      185     -157     
  Lines       25483    18883    -6600     
  Branches     3725     3715      -10     
==========================================
- Hits        21380    14380    -7000     
- Misses       3472     3868     +396     
- Partials      631      635       +4     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Signed-off-by: mg515 <miha.garafolj@gmail.com>
Signed-off-by: mg515 <miha.garafolj@gmail.com>
Copy link

@SebS94 SebS94 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for taking care of this Miha!

One small consideration - would it be more fitting to rename this plugin into flytekit-omegaconf as this is what it actually serialises? Obviously, our main consideration is the combination with hydra, but there is no actual direct dependency here.

@mg515
Copy link
Contributor Author

mg515 commented Apr 3, 2024

@SebS94 was having the same thoughts myself as well, could as well do it yeah.

@mg515 mg515 requested a review from samhita-alla as a code owner April 4, 2024 10:19
@mg515 mg515 changed the title Add flytekit-hydra plugin Add flytekit-omegaconf plugin Apr 4, 2024
Signed-off-by: mg515 <miha.garafolj@gmail.com>
Signed-off-by: mg515 <miha.garafolj@gmail.com>
Copy link
Collaborator

@eapolinario eapolinario left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did one pass. It's looking pretty good. I left a few comments, but no showstopper. I worry about conflicts with other plugins, like pydantic. We don't necessarily have to fix everything in this PR.

Signed-off-by: mg515 <miha.garafolj@gmail.com>
Signed-off-by: mg515 <miha.garafolj@gmail.com>
Signed-off-by: mg515 <miha.garafolj@gmail.com>
Signed-off-by: mg515 <miha.garafolj@gmail.com>
Signed-off-by: mg515 <miha.garafolj@gmail.com>
Signed-off-by: mg515 <miha.garafolj@gmail.com>
Signed-off-by: mg515 <miha.garafolj@gmail.com>
@mg515 mg515 requested a review from eapolinario April 11, 2024 09:05


class DictConfigTransformer(TypeTransformer[DictConfig]):
def __init__(self, mode: typing.Optional[OmegaConfTransformerMode] = None):
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As discussed here, shell we remove the mode here and only provide a global mode?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bump.

Copy link
Contributor Author

@mg515 mg515 Jul 30, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed in e6e1896

We provide global mode and a context manager for ability to control it locally still.
Please resolve the conversation if you think this is a suitable solution.

@kumare3
Copy link
Contributor

kumare3 commented Jul 20, 2024

@fg91 / @mg515 I would love for this to go in if you folks are into pushing it?

@cameronraysmith
Copy link
Contributor

cameronraysmith commented Jul 20, 2024

Note

The thread from this comment to here is migrated to flyteorg/flyte#5576

I think it's a good idea to support omegaconf's dictconfig directly because it is a foundational layer, but would just note that you get something like this, in terms of the more general ability to configure flyte workflows with hydra, almost for free if you use hydra-zen because it already provides a bridge from omegaconf's types to dataclasses, which are of course already supported by Flyte.

@fg91
Copy link
Member

fg91 commented Jul 21, 2024

I think it's a good idea to support omegaconf's dictconfig directly because it is a foundational layer, but would just note that you get something like this almost for free if you use hydra-zen because it already provides a bridge from omegaconf's types to dataclasses.

Do you have a minimal working example that shows how a DictConfig can be passed to a Flyte task using hydra-zen? 🙏

@cameronraysmith
Copy link
Contributor

cameronraysmith commented Jul 22, 2024

@fg91 let's redirect this discussion to flyteorg/flyte#5576 to avoid getting into details that aren't directly relevant to this particular PR.

I probably should have done this instead of posting #2299 (comment) here, but I'll leave it for the record.

Copy link
Collaborator

@eapolinario eapolinario left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All the string manipulation to load modules in runtime seems a bit brittle to me, but won't block the PR on it. Besides that, we really should get on the same page on some of the outstanding @fg91 's comments before proceeding with this change.



class DictConfigTransformer(TypeTransformer[DictConfig]):
def __init__(self, mode: typing.Optional[OmegaConfTransformerMode] = None):
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bump.

Signed-off-by: mg515 <miha.garafolj@gmail.com>
Signed-off-by: mg515 <miha.garafolj@gmail.com>
Signed-off-by: mg515 <miha.garafolj@gmail.com>
Signed-off-by: mg515 <miha.garafolj@gmail.com>
Signed-off-by: mg515 <miha.garafolj@gmail.com>
Signed-off-by: mg515 <miha.garafolj@gmail.com>
Signed-off-by: mg515 <miha.garafolj@gmail.com>
Signed-off-by: mg515 <miha.garafolj@gmail.com>
@mg515 mg515 requested review from eapolinario and fg91 July 30, 2024 11:02
Copy link
Collaborator

@eapolinario eapolinario left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the persistence. This is looking great!

Copy link
Collaborator

@eapolinario eapolinario left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually before we get this in, can you add flytekit-omegaconf to the list of plugins in CI?

mg515 and others added 2 commits August 1, 2024 16:34
Signed-off-by: Eduardo Apolinario <eapolinario@users.noreply.github.com>
@eapolinario eapolinario merged commit df94e1c into flyteorg:master Aug 1, 2024
97 checks passed
Copy link

welcome bot commented Aug 1, 2024

Congrats on merging your first pull request! 🎉

@cameronraysmith
Copy link
Contributor

Many thanks @mg515!

mao3267 pushed a commit to mao3267/flytekit that referenced this pull request Aug 2, 2024
* add flytekit-hydra

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* fix small typo readme

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* ruff ruff

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* lint more

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* rename plugin into flytekit-omegaconf

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* lint sort imports

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* use flytekit logger

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* use flytekit logger flyteorg#2

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* fix typing info in is_flatable

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* use default_factory instead of mutable default value

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* add python3.11 and python3.12 to setup.py

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* make fmt

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* define error message only once

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* add docstring

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* remove GenericEnumTransformer and tests

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* fallback to TypeEngine.get_transformer(node_type) to find suitable transformer

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* explicit valueerrors instead of asserts

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* minor style improvements

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* remove obsolete warnings

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* import flytekit logger instead of instantiating our own

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* docstrings in reST format

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* refactor transformer mode

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* improve docs

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* refactor dictconfig class into smaller methods

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* add unit tests for dictconfig transformer

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* refactor of parse_type_description()

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* add omegaconf plugin to pythonbuild.yaml

---------

Signed-off-by: mg515 <miha.garafolj@gmail.com>
Signed-off-by: Eduardo Apolinario <eapolinario@users.noreply.github.com>
Co-authored-by: Eduardo Apolinario <eapolinario@users.noreply.github.com>
Signed-off-by: mao3267 <chenvincent610@gmail.com>
Future-Outlier added a commit that referenced this pull request Aug 26, 2024
…class] (#2603)

* fix: set dataclass member as optional if default value is provided

Signed-off-by: mao3267 <chenvincent610@gmail.com>

* lint

Signed-off-by: mao3267 <chenvincent610@gmail.com>

* feat: handle nested dataclass conversion in JsonParamType

Signed-off-by: mao3267 <chenvincent610@gmail.com>

* fix: handle errors caused by NoneType default value

Signed-off-by: mao3267 <chenvincent610@gmail.com>

* test: add nested dataclass unit tests

Signed-off-by: mao3267 <chenvincent610@gmail.com>

* Sagemaker dict determinism (#2597)

* truncate sagemaker agent outputs

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* fix tests and update agent output

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* lint

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* fix test

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* add idempotence token to workflow

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* fix type

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* fix mixin

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* modify output handler

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* make the dictionary deterministic

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* nit

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

---------

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>
Signed-off-by: mao3267 <chenvincent610@gmail.com>

* refactor(core): Enhance return type extraction logic (#2598)

Signed-off-by: Kevin Su <pingsutw@apache.org>
Signed-off-by: mao3267 <chenvincent610@gmail.com>

* Feat: Make exception raised by external command authenticator more actionable (#2594)

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>
Co-authored-by: Fabio Grätz <fabiogratz@googlemail.com>
Signed-off-by: mao3267 <chenvincent610@gmail.com>

* Fix: Properly re-raise non-grpc exceptions during refreshing of proxy-auth credentials in auth interceptor (#2591)

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>
Co-authored-by: Fabio Grätz <fabiogratz@googlemail.com>
Signed-off-by: mao3267 <chenvincent610@gmail.com>

* validate idempotence token length in subsequent tasks (#2604)

* validate idempotence token length in subsequent tasks

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* remove redundant param

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* add tests

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

---------

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>
Signed-off-by: mao3267 <chenvincent610@gmail.com>

* Add nvidia-l4 gpu accelerator (#2608)

Signed-off-by: Eduardo Apolinario <eapolinario@users.noreply.github.com>
Co-authored-by: Eduardo Apolinario <eapolinario@users.noreply.github.com>
Signed-off-by: mao3267 <chenvincent610@gmail.com>

* eliminate redundant literal conversion for `Iterator[JSON]` type (#2602)

* eliminate redundant literal conversion for  type

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* add test

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* lint

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* add isclass check

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

---------

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>
Signed-off-by: mao3267 <chenvincent610@gmail.com>

* [FlyteSchema] Fix numpy problems (#2619)

Signed-off-by: Future-Outlier <eric901201@gmail.com>
Signed-off-by: mao3267 <chenvincent610@gmail.com>

* add nim plugin (#2475)

* add nim plugin

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* move nim to inference

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* import fix

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* fix port

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* add pod_template method

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* add containers

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* update

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* clean up

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* remove cloud import

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* fix extra config

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* remove decorator

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* add tests, update readme

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* add env

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* add support for lora adapter

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* minor fixes

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* add startup probe

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* increase failure threshold

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* remove ngc secret group

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* move plugin to flytekit core

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* fix docs

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* remove hf group

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* modify podtemplate import

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* fix import

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* fix ngc api key

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* fix tests

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* fix formatting

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* lint

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* docs fix

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* docs fix

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* update secrets interface

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* add secret prefix

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* fix tests

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* add urls

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* add urls

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* remove urls

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* minor modifications

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* remove secrets prefix; add failure threshold

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* add hard-coded prefix

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* add comment

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* make secrets prefix a required param

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* move nim to flytekit plugin

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* update readme

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* update readme

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* update readme

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

---------

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>
Signed-off-by: mao3267 <chenvincent610@gmail.com>

* [Elastic/Artifacts] Pass through model card (#2575)

Signed-off-by: Yee Hing Tong <wild-endeavor@users.noreply.github.com>
Signed-off-by: mao3267 <chenvincent610@gmail.com>

* Remove pyarrow as a direct dependency (#2228)

Signed-off-by: Thomas J. Fan <thomasjpfan@gmail.com>
Signed-off-by: mao3267 <chenvincent610@gmail.com>

* Boolean flag to show local container logs to the terminal (#2521)

Signed-off-by: aditya7302 <aditya7302@gmail.com>
Signed-off-by: Kevin Su <pingsutw@apache.org>
Co-authored-by: Kevin Su <pingsutw@apache.org>
Signed-off-by: mao3267 <chenvincent610@gmail.com>

* Enable Ray Fast Register (#2606)

Signed-off-by: Jan Fiedler <jan@union.ai>
Signed-off-by: mao3267 <chenvincent610@gmail.com>

* [Artifacts/Elastic] Skip partitions (#2620)

Signed-off-by: Yee Hing Tong <wild-endeavor@users.noreply.github.com>
Signed-off-by: mao3267 <chenvincent610@gmail.com>

* Install flyteidl from master in plugins tests (#2621)

Signed-off-by: Eduardo Apolinario <eapolinario@users.noreply.github.com>
Co-authored-by: Eduardo Apolinario <eapolinario@users.noreply.github.com>
Signed-off-by: mao3267 <chenvincent610@gmail.com>

* Using ParamSpec to show underlying typehinting (#2617)

Signed-off-by: JackUrb <jack@datologyai.com>
Signed-off-by: mao3267 <chenvincent610@gmail.com>

* Support ArrayNode mapping over Launch Plans (#2480)

* set up array node

Signed-off-by: Paul Dittamo <pvdittamo@gmail.com>

* wip array node task wrapper

Signed-off-by: Paul Dittamo <pvdittamo@gmail.com>

* support function like callability

Signed-off-by: Paul Dittamo <pvdittamo@gmail.com>

* temp check in some progress on python func wrapper

Signed-off-by: Paul Dittamo <pvdittamo@gmail.com>

* only support launch plans in new array node class for now

Signed-off-by: Paul Dittamo <pvdittamo@gmail.com>

* add map task array node implementation wrapper

Signed-off-by: Paul Dittamo <pvdittamo@gmail.com>

* ArrayNode only supports LPs for now

Signed-off-by: Paul Dittamo <pvdittamo@gmail.com>

* support local execute for new array node implementation

Signed-off-by: Paul Dittamo <pvdittamo@gmail.com>

* add local execute unit tests for array node

Signed-off-by: Paul Dittamo <pvdittamo@gmail.com>

* set exeucution version in array node spec

Signed-off-by: Paul Dittamo <pvdittamo@gmail.com>

* check input types for local execute

Signed-off-by: Paul Dittamo <pvdittamo@gmail.com>

* remove code that is un-needed for now

Signed-off-by: Paul Dittamo <pvdittamo@gmail.com>

* clean up array node class

Signed-off-by: Paul Dittamo <pvdittamo@gmail.com>

* improve naming

Signed-off-by: Paul Dittamo <pvdittamo@gmail.com>

* clean up

Signed-off-by: Paul Dittamo <pvdittamo@gmail.com>

* utilize enum execution mode to set array node execution path

Signed-off-by: Paul Dittamo <pvdittamo@gmail.com>

* default execution mode to FULL_STATE for new array node class

Signed-off-by: Paul Dittamo <pvdittamo@gmail.com>

* support min_successes for new array node

Signed-off-by: Paul Dittamo <pvdittamo@gmail.com>

* add map task wrapper unit test

Signed-off-by: Paul Dittamo <pvdittamo@gmail.com>

* set min successes for array node map task wrapper

Signed-off-by: Paul Dittamo <pvdittamo@gmail.com>

* update docstrings

Signed-off-by: Paul Dittamo <pvdittamo@gmail.com>

* Install flyteidl from master in plugins tests

Signed-off-by: Eduardo Apolinario <eapolinario@users.noreply.github.com>

* lint

Signed-off-by: Paul Dittamo <pvdittamo@gmail.com>

* clean up min success/ratio setting

Signed-off-by: Paul Dittamo <pvdittamo@gmail.com>

* lint

Signed-off-by: Paul Dittamo <pvdittamo@gmail.com>

* make array node class callable

Signed-off-by: Paul Dittamo <pvdittamo@gmail.com>

---------

Signed-off-by: Paul Dittamo <pvdittamo@gmail.com>
Signed-off-by: Eduardo Apolinario <eapolinario@users.noreply.github.com>
Co-authored-by: Eduardo Apolinario <eapolinario@users.noreply.github.com>
Signed-off-by: mao3267 <chenvincent610@gmail.com>

* Richer printing for some artifact objects (#2624)

Signed-off-by: Yee Hing Tong <wild-endeavor@users.noreply.github.com>
Signed-off-by: mao3267 <chenvincent610@gmail.com>

* ci: Add Python 3.9 to build matrix (#2622)

Signed-off-by: Kevin Su <pingsutw@apache.org>
Signed-off-by: Eduardo Apolinario <eapolinario@users.noreply.github.com>
Signed-off-by: Future-Outlier <eric901201@gmail.com>
Co-authored-by: Eduardo Apolinario <eapolinario@users.noreply.github.com>
Co-authored-by: Future-Outlier <eric901201@gmail.com>
Signed-off-by: mao3267 <chenvincent610@gmail.com>

* bump (#2627)

Signed-off-by: Yee Hing Tong <wild-endeavor@users.noreply.github.com>
Signed-off-by: mao3267 <chenvincent610@gmail.com>

* Added alt prefix head to FlyteFile.new_remote (#2601)

* Added alt prefix head to FlyteFile.new_remote

Signed-off-by: pryce-turner <pryce.turner@gmail.com>

* Added get_new_path method to FileAccessProvider, fixed new_remote method of FlyteFile

Signed-off-by: pryce-turner <pryce.turner@gmail.com>

* Updated tests and added new path creator to FlyteFile/Dir new_remote methods

Signed-off-by: pryce-turner <pryce.turner@gmail.com>

* Improved docstrings, fixed minor path sep bug, more descriptive naming, better test

Signed-off-by: pryce-turner <pryce.turner@gmail.com>

* Formatting

Signed-off-by: pryce-turner <pryce.turner@gmail.com>

---------

Signed-off-by: pryce-turner <pryce.turner@gmail.com>
Signed-off-by: mao3267 <chenvincent610@gmail.com>

* Feature gate for FlyteMissingReturnValueException (#2623)

Signed-off-by: Kevin Su <pingsutw@apache.org>
Signed-off-by: mao3267 <chenvincent610@gmail.com>

* Remove use of multiprocessing from the OAuth client (#2626)

* Remove use of multiprocessing from the OAuth client

Signed-off-by: Robert Deaton <robert.deaton@freenome.com>

* Lint

Signed-off-by: Robert Deaton <robert.deaton@freenome.com>

---------

Signed-off-by: Robert Deaton <robert.deaton@freenome.com>
Signed-off-by: mao3267 <chenvincent610@gmail.com>

* Update codespell in precommit to version 2.3.0 (#2630)

Signed-off-by: mao3267 <chenvincent610@gmail.com>

* Fix Snowflake Agent Bug (#2605)

* fix snowflake agent bug

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* a work version

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* Snowflake work version

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* fix secret encode

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* all works, I am so happy

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* improve additional protocol

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* fix tests

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* Fix Tests

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* update agent

Signed-off-by: Kevin Su <pingsutw@apache.org>

* Add snowflake test

Signed-off-by: Kevin Su <pingsutw@apache.org>

* nit

Signed-off-by: Kevin Su <pingsutw@apache.org>

* sd

Signed-off-by: Kevin Su <pingsutw@apache.org>

* snowflake loglinks

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* add metadata

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* secret

Signed-off-by: Kevin Su <pingsutw@apache.org>

* nit

Signed-off-by: Kevin Su <pingsutw@apache.org>

* remove table

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* add comment for get private key

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* update comments:

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* Fix Tests

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* update comments

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* update comments

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* Better Secrets

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* use union secret

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* Update Changes

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* use if not get_plugin().secret_requires_group()

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* Use Union SDK

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* Update

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* Fix Secrets

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* Fix Secrets

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* remove pacakge.json

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* lint

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* add snowflake-connector-python

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* fix test_snowflake

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* Try to fix tests

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* fix tests

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* Try Fix snowflake Import

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* snowflake test passed

Signed-off-by: Future-Outlier <eric901201@gmail.com>

---------

Signed-off-by: Future-Outlier <eric901201@gmail.com>
Signed-off-by: Kevin Su <pingsutw@apache.org>
Co-authored-by: Kevin Su <pingsutw@apache.org>
Signed-off-by: mao3267 <chenvincent610@gmail.com>

* run test_missing_return_value on python 3.10+ (#2637)

Signed-off-by: Kevin Su <pingsutw@apache.org>
Signed-off-by: mao3267 <chenvincent610@gmail.com>

* [Elastic] Fix context usage and apply fix to fork method (#2628)

Signed-off-by: Yee Hing Tong <wild-endeavor@users.noreply.github.com>
Signed-off-by: mao3267 <chenvincent610@gmail.com>

* Add flytekit-omegaconf plugin (#2299)

* add flytekit-hydra

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* fix small typo readme

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* ruff ruff

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* lint more

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* rename plugin into flytekit-omegaconf

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* lint sort imports

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* use flytekit logger

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* use flytekit logger #2

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* fix typing info in is_flatable

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* use default_factory instead of mutable default value

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* add python3.11 and python3.12 to setup.py

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* make fmt

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* define error message only once

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* add docstring

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* remove GenericEnumTransformer and tests

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* fallback to TypeEngine.get_transformer(node_type) to find suitable transformer

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* explicit valueerrors instead of asserts

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* minor style improvements

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* remove obsolete warnings

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* import flytekit logger instead of instantiating our own

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* docstrings in reST format

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* refactor transformer mode

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* improve docs

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* refactor dictconfig class into smaller methods

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* add unit tests for dictconfig transformer

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* refactor of parse_type_description()

Signed-off-by: mg515 <miha.garafolj@gmail.com>

* add omegaconf plugin to pythonbuild.yaml

---------

Signed-off-by: mg515 <miha.garafolj@gmail.com>
Signed-off-by: Eduardo Apolinario <eapolinario@users.noreply.github.com>
Co-authored-by: Eduardo Apolinario <eapolinario@users.noreply.github.com>
Signed-off-by: mao3267 <chenvincent610@gmail.com>

* Adds extra-index-url to default image builder (#2636)

Signed-off-by: Thomas J. Fan <thomasjpfan@gmail.com>
Co-authored-by: Kevin Su <pingsutw@apache.org>
Signed-off-by: mao3267 <chenvincent610@gmail.com>

* reference_task should inherit from PythonTask (#2643)

Signed-off-by: Kevin Su <pingsutw@apache.org>
Signed-off-by: mao3267 <chenvincent610@gmail.com>

* Fix Get Agent Secret Using Key (#2644)

Signed-off-by: Future-Outlier <eric901201@gmail.com>
Signed-off-by: mao3267 <chenvincent610@gmail.com>

* fix: prevent converting Flyte types as custom dataclasses

Signed-off-by: mao3267 <chenvincent610@gmail.com>

* fix: add None to output type

Signed-off-by: mao3267 <chenvincent610@gmail.com>

* test: add unit test for nested dataclass inputs

Signed-off-by: mao3267 <chenvincent610@gmail.com>

* test: add unit tests for nested dataclass, dataclass default value as None, and flyte type exceptions

Signed-off-by: mao3267 <chenvincent610@gmail.com>

* fix: handle NoneType as default value of list type dataclass members

Signed-off-by: mao3267 <chenvincent610@gmail.com>

* fix: add comments for `has_nested_dataclass` function

Signed-off-by: mao3267 <chenvincent610@gmail.com>

* fix: make lint

Signed-off-by: mao3267 <chenvincent610@gmail.com>

* fix: update tests regarding input through file and pipe

Signed-off-by: mao3267 <chenvincent610@gmail.com>

* Make JsonParamType convert faster

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* make has_nested_dataclass func more clean and add tests for dataclass_with_optional_fields

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* make logic more backward compatible

Signed-off-by: Future-Outlier <eric901201@gmail.com>

* fix: handle indexing errors in dict/list while checking nested dataclass, add comments

Signed-off-by: mao3267 <chenvincent610@gmail.com>

---------

Signed-off-by: mao3267 <chenvincent610@gmail.com>
Co-authored-by: Kevin Su <pingsutw@apache.org>
Co-authored-by: Future-Outlier <eric901201@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
size:XXL This PR changes 1000+ lines, ignoring generated files.
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

6 participants