Commit Graph

1335 Commits

Author SHA1 Message Date
Jonny Browning b59b70875e
fix(sdk): allow user to choose platform for component container build. Fixes #8883 (#9212)
Co-authored-by: Jonny Browning <jonathan.browning@datatonic.com>
2023-04-25 19:41:45 +00:00
Connor McCarthy 04306dc3cb
chore(sdk): release KFP SDK 2.0.0b15 (#9218) 2023-04-24 18:32:43 +00:00
Connor McCarthy 946c51bafe
feat(sdk): support extracting input/output descriptions from component/pipeline docstrings (#9156)
* feat(sdk): support extracting input/output descriptions from component/pipeline docstrings

* remove numpydoc tests
2023-04-24 17:16:44 +00:00
Chen Sun 91277b1e91
fix(SDK): fix `client.run_pipeline` with `pipeline_id` and `version_id` gives error (#9191) 2023-04-20 21:17:40 +00:00
Connor McCarthy 41c0d78f5f
fix(sdk): fix handling of PipelineTaskFinalStatus in ir_type_ attribute hack (#9186) 2023-04-20 13:53:31 -07:00
Connor McCarthy 91abbeaf2f
feat(sdk): support `display_name` and `description` in `@dsl.pipeline` decorator (#9153)
* feat(sdk): support display_name and description in @dsl.pipeline decorator

* add release note

* test additional case
2023-04-17 14:15:39 -07:00
Mithil Poojary 3164dfb01a
fix(sdk): fixes module not found error for containerized python components. Fixes #8385 (#9157)
* Add module directory to sys.path

* Add nested module imports unit test

* Add release note to release.md
2023-04-17 11:46:02 -07:00
Connor McCarthy 30466586d0
chore(sdk): add kfp-kubernetes as kfp extras_require (#9152) 2023-04-17 10:08:22 -07:00
Connor McCarthy 80bd8f17b1
chore(sdk): bump kfp version in test data to 2.0.0-beta.14 (#9145) 2023-04-12 16:27:09 -07:00
Chen Sun a107fb1bcf
chore: release SDK 2.0.0b14 (#9144)
* release SDK 2.0.0b14

* doc ref
2023-04-12 14:29:29 -07:00
Chen Sun 952e0730a8
feat(sdk): Support submitting pipeline with platform config. (#9140)
* SDK client v2beta1 API integration.

* fix unit tests

* create alias for use of methods and fields referencing `job`.`

* fix cli

* fix pipeline list-versions

* more cli fixes

* client fix

* Support submitting pipeline with platform spec.

* unit test

* move util functions
2023-04-12 13:06:12 -07:00
Chen Sun 07d6c1816b
feat(SDK)!: SDK client v2beta1 API integration. Fixes #8706 (#9112)
* SDK client v2beta1 API integration.

* fix unit tests

* create alias for use of methods and fields referencing `job`.`

* fix cli

* fix pipeline list-versions

* more cli fixes

* client fix
2023-04-12 09:54:45 -07:00
IronPan 5e98b3b6f0
feat(sdk): Support PIPELINE_ROOT_PLACEHOLDER (#9134)
* Support PIPELINE_ROOT_PLACEHOLDER

/assign @connor-mccarthy

* Update __init__.py
2023-04-11 08:56:49 -07:00
Chen Sun a6ef77b784
feat(sdk): Support setting cpu/memory requests. (#9121)
* Support setting cpu/memory requests.

* address review comments

* address review comments
2023-04-10 23:35:16 -07:00
Connor McCarthy e907b6343e
set _ir_type attribute (#9105) 2023-04-10 12:01:36 -07:00
Connor McCarthy 5828632c2f
feat(sdk): support indexing into top-level artifact metadata in Container Components (#9131) 2023-04-10 11:46:01 -07:00
Connor McCarthy 5a769e9080
Revert "update compiler type annotations (#9090)" (#9095)
This reverts commit ad6f55e8f3.
2023-04-03 16:01:26 -07:00
Connor McCarthy ad6f55e8f3
update compiler type annotations (#9090) 2023-04-03 09:20:17 -07:00
Connor McCarthy 0cbcebcf88
fix(sdk): support accessing `.dsl` attribute on `kfp` module object (#9048) 2023-03-27 15:12:17 -07:00
Connor McCarthy 3026e452ff
fix(sdk): fix loading non-canonical type strings from v1 component YAML (#9041) 2023-03-27 10:25:23 -07:00
Alex 3e1f3c6d7a
feat(sdk): add experiment_id parameter to create run methods (#9004)
Co-authored-by: alenawang <alena.n.wang@gmail.com>
Co-authored-by: andreafehrman <andrea.k.fehrman@vanderbilt.edu>
Co-authored-by: owmasch <owenmaschal0598@gmail.com>
Co-authored-by: ryanrusson <ryan.russon@gmail.com>
2023-03-24 09:56:48 -07:00
Connor McCarthy 2bbfd5e89f
fix: support setting task dependencies via kfp.kubernetes.mount_pvc (#8999)
* enable accessing .task on pipeline channel

* set task dependencies in mount_pvc

* update tests
2023-03-16 21:10:54 -07:00
Ze Mao 0fd1e69c74
cpu and memory resource can be optional (#8992)
Co-authored-by: Ze Mao <zemao@google.com>
2023-03-16 09:23:55 -07:00
Connor McCarthy e96754cb53
feat(sdk): deprecate .add_node_selector_constraint in favor of .set_accelerator_type (#8980)
* rename method

* update docstring
2023-03-14 09:22:35 -07:00
Connor McCarthy a38d7479d7
feat(sdk): support compiling platform specific features (#8940)
* support compiling platform-specific features

* fix map size change during iteration
2023-03-10 11:18:25 -08:00
Connor McCarthy abdc08b773
chore(sdk): pin kfp-pipeline-spec to 0.2.1 (#8971) 2023-03-10 10:19:03 -08:00
JOCSTAA 6777e8f445
fix(sdk): Support python 3.11 (#8907)
* new branch

* add to release.md

* edit setup.py
2023-03-03 13:36:53 -08:00
b4sus ed66ba327f
feat(sdk): using component's pip_index_urls for Dockerfile generation. Fixes #8816 (#8871)
* feat(sdk): using component's pip_index_urls for Dockerfile generation

* Update sdk/python/kfp/cli/component.py

Co-authored-by: Connor McCarthy <mccarthy.connor.james@gmail.com>

* feat(sdk): PR changes: removed additional space from index url options string; duplicate removal not necessary

* feat(sdk): feature mentioned in RELEASE.md

* deduplication back - more components in a file can specify same pypi url - we need it only once for docker image

* feature note moved to current development section

---------

Co-authored-by: Connor McCarthy <mccarthy.connor.james@gmail.com>
2023-03-01 09:32:56 -08:00
Connor McCarthy 86554be46a
release kfp sdk 2.0.b13 (#8904) 2023-02-27 16:52:53 -08:00
Connor McCarthy 87062dbf22
fix(sdk): fix attribute error for Containerized Python Components (#8887) 2023-02-27 16:42:50 -08:00
Chen Sun 8d3e0dd805
fix(sdk): Fix environment variable set in component yaml lost during compilation. Fixes #8884 (#8885)
* Fix env set in component yaml not captured

* release note

* clean up unnecessary code in test
2023-02-23 14:28:26 -08:00
Connor McCarthy 386ff88236
fix(sdk): fix unknown artifact string in dsl.OutputPath/dsl.InputPath (#8880) 2023-02-23 08:37:04 -08:00
Connor McCarthy 31298c479b
fix(sdk): fix bug when passing data between tasks using f-strings (#8879) 2023-02-23 08:36:53 -08:00
Connor McCarthy c046879dda
support fanning-in artifacts (#8808) 2023-02-22 10:39:00 -08:00
Connor McCarthy 41752608bc
support list of artifact input placeholders (#8484) 2023-02-16 09:26:53 -08:00
JOCSTAA 1e1a02066a
fix(sdk): Add outputDefinitions of root pipeline to compiled components IR YAML file (#8848)
* base

* add to readme

* adress comments
2023-02-15 09:28:33 -08:00
Chen Sun 8552226c41
chore(test): revert api changes to deprecated client (#8841)
* revert api changes to deprecated client

* list experiments

* fix

* fix sample v2 test
2023-02-14 11:01:58 -08:00
JOCSTAA 5684bfccff
feat(sdk): Ignore upstream failure (#8838)
* main

* adress comments

* adress comments

* adress comments 2

* address comments 3

* address comments 4
2023-02-13 11:40:42 -08:00
Connor McCarthy e7ad073f1d
feat(sdk): deprecate .set_gpu_limit in favor of .set_accelerator_limit (#8836) 2023-02-09 15:46:10 -08:00
Chen Sun 0fc174ae28
chore(sdk): release KFP SDK 2.0.0b12 (#8823) 2023-02-08 09:46:17 -08:00
Chen Sun cc5373281d
chore(sdk): Pin kfp-server-api to an exact version (#8822) 2023-02-07 23:04:44 -08:00
Connor McCarthy b575950a75
feat(sdk): support for fan-in from `dsl.ParallelFor` (#8631)
* implement parallelfor fan-in

* temporarily block fan-in of artifacts

* clean up

* unify and clarify error messages

* remove comment

* remove unnecessary compiler condition

* make test cases more realistic

* use better ParallelFor variable name

* add and rename test cases

* add ParallelFor fan-in test cases

* fix return collected bug

* clean up compilation tests

* update docstrings; update error message

* remove fan-in artifacts read/write tests

* implement review feedback

* change use of additional_input_name_for_pipeline_channel

* move additional_input_name_for_pipeline_channel

* provide additional pipeline topology validation and tests; refactor existing validation

* add release note for parameter fan-in
2023-02-04 20:50:51 -08:00
Tara Tufano e50f40305d
fix(sdk): fix upload_pipeline when no pipeline name is provided (#8695) 2023-01-31 13:45:39 -08:00
Connor McCarthy edfb267790
bump version; update release notes; add docs (#8745) 2023-01-20 12:56:56 -08:00
Connor McCarthy 1c7ab4c5f5
pin kfp-pipeline-spec version exactly (#8737) 2023-01-20 12:49:36 -08:00
Connor McCarthy 78d31dc8a3
chore(sdk): remove v1 dependencies from SDK v2 (#8668)
* split out deprecated requirements

* pip install deprecated requirements for sample tests

* remove superfluous comments in requirements.in

* update release notes

* ignore deprecated directory in unit tests

* remove unused argo compiler

* ignore deprecated path

* update run sample yaml

* install deprecated requirements for e2e tests

* add todos
2023-01-19 12:53:27 -08:00
Owen 07615eb88a
chore(sdk): Improve CLI utility function (#8686) 2023-01-17 14:51:50 -08:00
Alex 5adc7f1b50
chore(sdk): clean up client.py (#8656) 2023-01-17 11:04:46 -08:00
Mai Nakagawa 6040334e84
feat(sdk): Accepts higher PyYAML versions (#8665)
* Accepts higher PyYAML versions

* Update the release note
2023-01-17 10:46:42 -08:00
Connor McCarthy fdf3ee7b68
chore(sdk): release KFP SDK 2.0.0b10 (#8638)
* bump version

* update release notes

* add docs version
2022-12-29 18:05:36 -05:00
Connor McCarthy 84241d6460
fix(sdk): fix deserializing v1 component yaml defaults (#8639)
* fix deserializing v1 defaults

* update test cases

* update type annotation

* add unit tests
2022-12-29 17:48:58 -05:00
Connor McCarthy 151e8a3c6e
feat(sdk): support optional artifact inputs (#8623)
* add compiler tests

* support optional artifact inputs

* update executor test

* update existing golden snapshot

* add new compiler test/snapshot

* add release note

* bump kfp-pipeline-spec dependency
2022-12-28 13:40:12 -05:00
Connor McCarthy 5491f6f3db
fix(sdk): support writing/reading isOptional for input parameters (#8612)
* add tests

* support writing/reading isOptional for parameters

* update golden snapshots

* temporarily maintain workaround for v1 optional artifact inputs

* add release note
2022-12-21 14:46:59 -08:00
Connor McCarthy ecfdc665c4
chore(sdk): release KFP SDK 2.0.0b9 (#8609) 2022-12-21 00:55:12 +00:00
Connor McCarthy f64348f29e
fix(sdk): make executor output writer more permissive [sdk v2] (#8607) 2022-12-21 00:23:13 +00:00
Sune Debel 2eef97cfc7
fix(sdk): add special handling for PipelineTaskFinalStatus to get_parameter_type (#8587) 2022-12-19 18:48:46 +00:00
Connor McCarthy 08b2408d3d
feat(sdk): add support for lists of artifacts in Python components [support lists of artifacts pt. 3] (#8465)
* remove unused codepath

* rename to avoid confusing variable names

* implement support in executor

* add comment

* make executor code safer
2022-12-15 21:34:21 +00:00
Connor McCarthy 47eb1cad92
chore(sdk): update golden snapshots with pipeline interface comments (#8575)
* update path in readme

* update golden snapshots
2022-12-15 01:32:21 +00:00
Connor McCarthy d4b896d3e3
fix(sdk): new fix for multiple workers writing with gcsfuse bug [KFP SDK v2] (#8544)
* fix and test

* update release notes

* extract constants
2022-12-13 18:01:29 +00:00
Connor McCarthy f4588f3112
chore(sdk): idiomatic Python pure refactorings (#8537)
* use f-strings

* inline immediately returned variables

* simplify comprehension

* use list literals

* lift return statements into control flow blocks

* other pure refactorings

* remove passthrough function

* use a ternary when it improves readability

* use __getitem__ for regex match groups; introduced in Python 3.6

* fix changed comments

* revert one change
2022-12-06 23:44:36 +00:00
JOCSTAA 49db63c916
feat(sdk): Add comments to IR YAML file (#8467)
* base

* add tests

* fix bug

* adress comments

* address comments 2

* sort comments

* sort signatures

* add indempotent test

* add indempotent test2

* support multiline docstring

* review

* docformatter presubmit exclude

* docformatter presubmit exclude

* docformatter

* docformatter

* merge 1

* update readme

* nit .items()

* remove reduntant test
2022-12-05 14:43:14 -08:00
Alex 1d6a52b9ff
fix(sdk): print max_attempts instead of sleep_duration (#8523) 2022-12-02 19:32:16 +00:00
Connor McCarthy 00c6b01040
fix(sdk): fix bug when referencing component.pipeline_spec in a pipeline body (#8514)
* add tests

* implement fix

* add TODO
2022-12-02 09:35:16 +00:00
JOCSTAA 614c231ae6
fix(sdk): unblock valid topology. (#8416)
* unblock valid topology

* add more tests

* handle git fork

* sample_test_cases

* main

* restore to master

* resolve comments on PR

* resolve conflicts

* resolve conflict 2

* revert conflict fix

* fix changes

* address comments

* review

* docformatter presubmit

* revert docformatter

* update release.md
2022-12-02 00:15:15 +00:00
andreafehrman b26dd100e1
test(sdk): implement small tests for Client class (#8517)
Co-authored-by: droctothorpe <mythicalsunlight@gmail.com>

Co-authored-by: droctothorpe <mythicalsunlight@gmail.com>
2022-12-01 19:39:45 +00:00
Connor McCarthy e7c82c0593
feat(sdk): support list of artifacts annotations [list of artifacts support pt. 1] (#8464)
* update get_io_artifact_class function

* update various type annotation tests

* support list of artifacts in component interfaces

* move helper function

* clarify function name

* respond to review feedback
2022-11-30 05:24:15 +00:00
Connor McCarthy 249e7af384
chore(sdk): release KFP SDK 2.0.0b8 (#8508)
* update release notes

* bump version

* add beta 8 to docs; remove beta 7
2022-11-30 05:04:15 +00:00
Connor McCarthy 834bfbe90a
fix(sdk): revert premature client changes (#8507)
* revert _v1 client changes

* do not install kfp_server_api from source
2022-11-29 20:39:23 -08:00
Connor McCarthy 1043a88842
chore(sdk): release KFP SDK 2.0.0b7 (#8503)
* update release notes

* bump version

* add docs version to dropdown
2022-11-28 22:58:42 +00:00
Connor McCarthy b829e4a5da
feat(sdk): enable use of primitive placeholders in f-string (#8494)
* support primitive placeholders in fstring

* add read/write test component
2022-11-28 14:45:48 -08:00
Connor McCarthy 4bb57e6723
fix(sdk): fix multiple workers writing with gcsfuse bug [KFP SDK v2] (#8455)
* fix(sdk): fix multiple workers writing with gcsfuse bug [KFP SDK v1]

* add comment for context
2022-11-23 00:38:48 +00:00
Connor McCarthy e97fe8e04f
feat(sdk): add pipeline job placholders for scheduled runs (#8447)
* add pipeline job placeholders

* simplify example code in docs

* add _PLACEHOLDER suffix to variable names
2022-11-23 00:38:42 +00:00
Connor McCarthy be766dc352
docs(sdk): update pipeline task .set_gpu_limit reference docs (#8477) 2022-11-18 17:58:22 +00:00
Connor McCarthy 6b3b4df3d2
refactor(sdk): simplify InputSpec (#8422)
* simplify usage of inputspec

* remove underscore from optional

* add error message and test

* remove optional
2022-11-14 18:39:26 +00:00
Connor McCarthy 9e9e1081c6
fix(sdk): fix boolean default value serialization bug (#8444)
* add test cases

* fix bug

* add v1 component yaml back compat changes

* update golden snapshot
2022-11-11 15:42:33 -08:00
Lingqing Gan 3f2e20d14f
chore(backend): regenerate v1beta1 api clients (#8403)
* add v2 experiment.proto

* regenerate v1beta1 client

* remove api version from combined swagger file

* Revert "regenerate v1beta1 client"

This reverts commit 02769d779b.

* regenerate v1beta1 clients

* regenerate python packages without api version

* remove regenerated v1 python packages&change proto

* refactor v1 exp apis and functions

* remove v2 api package and refactor v1 proto

* regenerate v1 go clients

* regenerate v1 python package

* refactor and update the human maintained swagger

* renew swagger file

* regenerate v1 packages

* regenerate v1 python package

* refactor

* regenerate v1 go clients

* regenerate v1 python package

* recover dockerfile and add s in python

* fix func name

* use commit for sdk execution test

* change sdk execution test

* update test script

* add v1 to methods

* proto update v1 method names

* regenerate v1 go packages

* regenerate python client

* update server methods

* refactor

* refactor

* refactor

* refactor python client

* fix get_healthz

* update sample-test.sh in v2 backend

* sample test script

* change v2 sample test

* change package install order

* Revert "change package install order"

This reverts commit c24fcfbed9.

* use KFP server api from commit for v2 sample tests

* small fix
2022-11-10 19:18:00 +00:00
Connor McCarthy 24e17f7352
chore(sdk): quiet noisy SDK unit test output (#8434) 2022-11-09 17:47:39 +00:00
Connor McCarthy d33f359797
fix(sdk): fix nested placeholders and block illegal IfPresent form in Concat (#8414)
* support single element IfPresentPlaceholders that contain a primitive placeholder

* block list then and else_ inside concat

* support single element IfPresent in v1

* clean up typing

* skip loading batch_predict_job yaml
2022-11-04 18:20:16 +00:00
Connor McCarthy 08a8b1df97
refactor(sdk): remove dead BaseModel code (#8415)
* remove dead basemodel code

* remove unused deserialization logic

* remove more dead code

* remove basemodel entirely
2022-11-03 21:58:15 +00:00
Connor McCarthy 4c6abe5afc
refactor(sdk): simplify placeholders and logic (#8402)
* simplify placeholders

* update placeholders_test.py

* update structures to use placeholders correctly

* update use of placeholders elsewhere in codebase

* clean up

* move placeholder type checking logic to PipelineTask to prevent v1 load breaks

* clean up

* update docstrings

* make to_dict and to_string private methods

* revert unnecessary change to tests

* improve type safety of code

* prefix module-level constant with underscore
2022-11-02 00:31:45 +00:00
Connor McCarthy ca6ad27020
chore(sdk): remove unused linter comments (#8405) 2022-11-01 18:31:46 +00:00
Jonny Browning (Datatonic) 5b75d75ad7
feat(sdk): add --build-image option to 'kfp components build' to allow users to skip docker build. Fixes #8382 for 2.0 (#8387)
* feat: added --build-image/--no-build-image flags to skip docker build

* fix: logic error for warnings/errors
2022-10-26 15:58:31 +00:00
Chen Sun 8df22db757
chore(release): release sdk 2.0.0b6 (#8373)
* release sdk 2.0.0b6

* address review comments
2022-10-18 00:30:27 +00:00
JOCSTAA ac02a0e191
fix(sdk): Throw exception for component parameter named Output (#8367)
* fix(sdk): Throw exception for component parameter named Output

* Add unit test

* lint fix

* nit fixes

* nit

* nit

* format fixes
2022-10-17 23:40:27 +00:00
Connor McCarthy 30669e46dc
chore(sdk): improve KFP SDK reference documentation (#8337)
* use autodoc default options

* sort symbol order by typical usage patterns

* include summary of submodule symbols

* expose Input[] and Output[] type generics

* include tables of contents on API reference docs pages

* expand global TOC for discoverability

* fix missing reference / circular import problem
2022-10-17 19:58:53 +00:00
Chen Sun 54922b32c6
fix(sdk): fix `kfp component build` only produces empty requirements.txt (#8372)
* fix CUJ2 always writes empty requirements.txt

* sort dependencies
2022-10-17 19:22:53 +00:00
Chen Sun 4cc0e80183
fix(sdk): Allow using cli `kfp dsl compile` to compile components (#8371)
* Allow using cli `kfp dsl compile` to compile components

* improve error message

* address review comments
2022-10-17 16:06:52 +00:00
Chen Sun 83e0f16af1
fix(sdk): Fix "No KFP components found in file" error. Fixes #8353 (#8359)
* Update component.py

* Update component.py

* Update component.py
2022-10-13 21:04:03 +00:00
JOCSTAA 764140153f
fix(sdk): Fix PyPi typo in cli/component docstring (#8361) 2022-10-13 20:28:03 +00:00
Connor McCarthy 26f1fe4dfa
fix(sdk): fix NamedTuple output with Dict/List bug (#8316) 2022-09-28 02:25:10 +00:00
Connor McCarthy 19b8709ca3
chore(release): release sdk 2.0.0b5 (#8309)
* bump reference docs

* update release notes; modify structure

* bump version

* implement review feedback
2022-09-26 21:38:35 +00:00
Connor McCarthy 8ab690f3ed
feat(sdk): add workaround for google artifact (support custom artifact types pt. 4) (#8279) 2022-09-19 22:32:38 +00:00
Connor McCarthy 0cb0d99d69
fix(sdk): fix InputPath error in executor (#8273)
* fix inputpath error

* add tests

* fix nit
2022-09-19 22:32:31 +00:00
Connor McCarthy c353245baf
feat(sdk): enable dynamic importer metadata (#7660)
* support placeholder in metadata dict

* add unit tests

* add compilation test

* fix tests

* update compiler test

* use 'metadata' as input key

* update compiler test and golden snapshot

* add int input to compiler test

* change constant name

* use util function

* support f-strings in dynamic import metadata; add and update tests

* update method name after rebase

* make compile consistent across python versions
2022-09-19 21:58:31 +00:00
Scott_Xu 6443fc17dc
chore(sdk): hide private methods in placeholders for simpler doc (#8271)
* hide private methods in ConcatPlaceholders and IfPresentPlaceholder by renaming

* rename transform and validate methods
2022-09-16 16:16:30 -06:00
gkcalat 65f2b644df
fix(sdk): Replace OOB authentication with loopback flow (#8262)
* Replace oob authentication with loopback flow. Fixes #7474. Closes #7526.

* Replace oob authentication with loopback flow. Fixes #7474. Closes #7526.

* Improve error messages

* Resolve comments in the PR

* Fix refresh/access token misconception

* Fix type hint annotation
2022-09-15 23:27:24 +00:00
Connor McCarthy f54f0b9341
fix v1 output deserialization (#8272) 2022-09-15 15:51:23 -06:00
Connor McCarthy 166d6bb917
feat(sdk): add runtime logic for custom artifact types (support for custom artifact types pt. 3) (#8233)
* add runtime artifact instance creation logic

* refactor executor

* add executor tests

* add custom artifact type import handling and tests

* fix artifact class construction

* fix custom artifact type in tests

* add typing extensions dependency for all python versions

* use mock google namespace artifact for tests

* remove print statement

* update google artifact golden snapshot

* resolve some review feedback

* remove handling for OutputPath and InputPath custom artifact types; update function names and tests

* clarify named tuple tests

* update executor tests

* add artifact return and named tuple support; refactor; clean tests

* implement review feedback; clean up artifact names

* move test method
2022-09-15 01:00:40 +00:00
Sune Debel 231c5079f0
fix(sdk): make sdk installable with poetry (#8263)
* Make kfp package installable with poetry

The poetry package manager executes `setup.py` differently than pip, which means that `__file__` is initialized to just `setup.py`, which means that `where` would be set to the empty string. The proposed change has been tested with both pip and poetry.

* apply yapf formatting
2022-09-14 21:08:08 +00:00
Scott_Xu 5dff29a071
fix(sdk): keeping placeholder strings in command and args even if default value is set (#8259)
* return string representation of placeholder in pipeline_task

* return string representation of placeholder in pipeline_task
2022-09-13 23:44:31 +00:00
Connor McCarthy e371fa3795
feat(sdk): add compilation logic for google artifact types (support custom artifact types pt. 2) (#8232)
* remove dependency of deprecated on v2

* use new artifact identification logic

* add custom artifact type compiler test

* compile schema_version from non-kfp artifacts

* update tests

* add importer to compiler test

* update golden snapshots

* fix type checking code

* undo executor_test diff

* remove gcpc types compiler test

* add compilation test comment

* update google artifact handling

* update compiler test

* only permit system. and google. artifact types; add tests

* update compiler test

* simplify type checking logic

* use bundled artifact types in PipelineArtifactChannel

* raise error on unknown v1 input or output

* add type utils and move functions

* add type utils tests

* remove schema_version from inputspec and outputspec

* update artifact proto creation and tests

* propogate bundled artifact type string changes throughout sdk

* update golden snapshot

* remove unused v1 compat and tests

* update type checking and tests to validate schema_version using semantic versioning

* update importer sample

* update test data config

* update test_data config

* clean up sample

* clean up sample
2022-09-12 14:00:02 -06:00
Connor McCarthy 16c7d6658e
test(sdk): create SDK execution test suite and restructure read/write tests (#8245)
* update client for graph components

* use yaml for config

* simplify read write tests

* add test script

* restructure yaml and read/write tests

* add execution test file

* move test_data; update paths; update readme

* update kfp endpoint

* update pipeline with env

* update logging

* update config

* update kfp endpoint and timeout

* add kfp as requirement

* mock kfp_package_path for lightweight component execution

* revert pipeline name changes

* update config with name

* update read write tests to use explicit name

* update execution tests to use explicit name
2022-09-12 18:33:06 +00:00
Alex 92a1e1fe26
feature(sdk): print links outside of ipython. Fixes #8141 (#8142) 2022-09-09 00:00:27 +00:00
Connor McCarthy e14a784327
feat(sdk): migrate v1 auth to v2 (#7789)
* initial auth migration (@ji-yaqi)

* clean up files

* update imports

* add type annotations

* update docstrings

* add tests
2022-09-06 17:54:29 -06:00
Connor McCarthy eb453d10a9
fix(sdk): fix dsl control flow docstrings (#8183)
* fix dsl control flow docstrings

* update docstring
2022-09-01 16:33:07 -06:00
Chen Sun 2a566181bf
chore(sdk): bump kfp version to 2.0.0-beta.4 (#8229) 2022-09-01 06:41:55 +00:00
Connor McCarthy 25cd45d772
chore(sdk): add script to check for unused imports (#8221)
* add dev requirement

* add unused import check to isort script
2022-08-31 22:53:51 -07:00
Chen Sun d88358201d
feat(sdk): Support using pipeline in exit handlers (#8220)
* Support using pipeline in exit handlers

* release note

* remove dead code

* fix component spec merging flakiness

* address comments in PR#8209

* address review comments

* fix bad merge in release note
2022-09-01 01:45:54 +00:00
Alex Latchford c34e5e4edd
chore(sdk): Update upper bound for kubernetes dependency (#8173)
* Update upper bound for kubernetes dependency

* Add in release note for change
2022-08-31 22:47:54 +00:00
Connor McCarthy 889637ade1
fix(sdk): fix constructor signature on dsl.Condition (#8182) 2022-08-31 21:35:54 +00:00
Chen Sun 410e99c604
feat(sdk): Support loading pipeline from yaml (#8209)
* support loading pipeline from yaml

* release note

* cleanup

* maintain read/write consistency with component/pipeline compilation.
2022-08-31 12:05:55 +00:00
Yusuke Nishioka f5277d3078
Fix the example pipeline in sdk/python/README.md (#8206) 2022-08-30 14:55:45 -06:00
Chen Sun 48574dc648
feat(sdk): Support pipeline outputs (#8204)
* Support pipeline outputs

* release note
2022-08-29 20:26:53 +00:00
Connor McCarthy 72c1d10a33
feat(sdk): rename kfp artifact attributes (support custom artifact types pt. 1) (#8191) 2022-08-27 13:20:50 +00:00
Chen Sun 5ce4954d6b
feat(sdk)!: Implement Graph Component (#8179)
* Implement Graph Component

* isort imports

* release note

* address review comments

* address review comments
2022-08-26 09:28:49 +00:00
Scott_Xu 121ddcbc04
fix(sdk): fix v2 sample tests for cuj3 (#8168)
* fix v2 sample tests for cuj3

* separate sh -c

* fix two step pipeline

* fix piping error

* fix nit

* change path to uri to correct cat command

* correct bash script

* remove display name

* change directory reference in commands

* remove old files
2022-08-25 15:30:22 -07:00
Alex Latchford 459e5358e6
chore(sdk): Bump KFP Python SDK to support Python v3.10 (#8186)
* Update upper bound for kubernetes dependency

* Bump KFP Python SDK to support Py v3.10

* Reset requirements.* changes to isolate out Python v3.10 changes

* Add in release note
2022-08-24 21:34:08 +00:00
chongyouquan 5ccf53a251
fix(sdk): fix output type of importer (#8172)
* change output type of importer to artifact_class.TYPE_NAME

* use the same logic as component_factory._annotation_to_type_struct for determining type_name

* format using yapf

* fix type_name

* format using yapf

* add yaml file

* changes with regards to PR comments

* format pipeline_with_importer_and_gcpc_types.py

* remove unused imports

* change name of test component

* add pipeline_with_importer_and_gcpc_types to config

* update yaml file
2022-08-24 20:15:07 +00:00
Scott_Xu 88a1b314c9
feat(sdk): add support for metadata placeholders (#8151) 2022-08-17 23:10:06 +00:00
Bo 51bea09833
feat(sdk): Support Parallelism in ParallelFor in KFP SDK V2 (#8146)
* feat(sdk): add support for ParallelFor parallelism setting

* add parallelism value check

* Add unit tests

* Adding a compiler test

* used None as default parallelism input signature, other minor fixes on format and tests

* fix import statements

* add release.md message

* update ParallelFor docstring

* fixed docstring comments

* removed 'optional' in docstrings
2022-08-17 21:06:01 +00:00
Connor McCarthy 41b69fd90d
chore(sdk): bump kfp version to 2.0.0-beta.3 (#8149)
* update release notes

* bump version
2022-08-17 14:21:52 +00:00
Scott_Xu c7a90a3fa8
feat(sdk): expose IfPresentPlaceholder and ConcatPlaceholder to kfp.dsl (#8145) 2022-08-15 23:22:06 +00:00
Scott_Xu 35fccb1fae
feat(sdk): expose new ContainerSpec API (#8144)
* rename ContainerSpec to ContainerSpecImplementation for internal usage

* fix nit
2022-08-15 20:33:34 +00:00
Chen Sun 6137a236a5
chore(sdk): bump kfp sdk version to 2.0.0b2 (#8135) 2022-08-11 00:08:03 +00:00
Scott_Xu d3c0537c8b
chore(sdk): Add test for if and concat placeholder and validate artifact channel usage (#8120)
* test if and concat placeholder and validate artifact channel usage

* fix nit in read write test config

* resolve comments

* resolve comments and move test cases

* resolve comments and add placeholder validation

* remove unused imports

* update release file
2022-08-10 23:35:03 +00:00
Connor McCarthy bdff332ac6
feat(sdk): support more than one exit handler per pipeline (#8088)
* add compiler test pipeline with multiple exit handlers

* remove blocker of multiple exit handlers

* move exit handler builder logic to pipeline_spec_builder

* build all exit handlers per pipeline

* add compiler test with IR inspection

* prevent usage of cross-pipeline after

* test cross-pipeline after is prevented

* update existing task dependency logic and tests

* add v2 sample test

* remove cross-pipeline .after

* prevent cross-dag data dependency for dsl features

* add compiler test pipeline with nested exit handlers

* add support for nested exit handlers

* clean up pipeline with nested exit handlers

* remove sample with multiple exit handlers

* remove compiler test with nested exit handlers

* add compilation guard against nested exit handlers in subdag

* update release notes
2022-08-10 16:56:21 +00:00
Connor McCarthy e728d0871b
chore(sdk): add pre-commit hook to remove unused imports (#8123)
* add pycln pre-commit hook to remove unused imports

* remove existing unused imports
2022-08-10 08:17:21 +00:00
Connor McCarthy e47a784035
docs(sdk): clean up kfp v2 cli reference docs (#8115)
* use expanded "Command Line Interface" for title

* remove alpha feature stage in help text

* hide deprecated argument

* use compile as command name
2022-08-09 18:40:39 +00:00
Scott_Xu 04c827fc3a
feat(sdk): supporting bring your own container for arbitrary input and outputs (#8066)
* support container_component decorator for function with no inputs

* resolve review comments

* add sample tests for milestone 1

* modify compiler test data

* resolve reviews

* resolve reviews

* WIP

* implementation of function of no inputs

* fixed sample test

* re-fix sample test

* fix rebase merge conflict

* resolve formatting

* resolve isort error for test data

* resolve comments

* fix nit

* resolve nit

* add implementation for placeholders i/o, sample and compiler tests

* resolve comments and merge logic for constructing container component

* resolve comments

* resolve comments

* fix assertion messages

* add error handling for accessing artifact by itself

* add test for raising error for accessing artifact by itself
2022-08-08 21:00:53 +00:00
Chen Sun 45f3bacc0d
fix(sdk): fix compiling components with artifact inputs (#8106) 2022-08-05 17:36:15 +00:00
Deepyaman Datta 257f8dbe0a
chore(sdk): change "PipelienSpec" to "PipelineSpec" (#8102) 2022-08-04 16:55:06 +00:00
Deepyaman Datta f221d855b1
chore(sdk): remove the unreachable validation code (#8082) 2022-08-01 21:03:47 +00:00
Chen Sun 1dd06cd8e8
feat(sdk): Allow artifact inputs in pipeline definition. (#8044)
* Allow artifact inputs in pipeline definition.

* release note

* isort fix

* remove unused imports

* Delete flycheck_compiler.py

* Delete flycheck_pipeline_spec_builder.py

* Delete flycheck_structures.py

* address cr comment
2022-07-28 00:17:53 +00:00
Connor McCarthy c6a5e387dd
docs(sdk): refresh SDK public API docstrings (#8057)
* add module-level docstrings

* update compiler docstrings

* update registry module docstrings

* add BaseComponent and children to public api, but discourage use

* update artifact docstrings and type annotations

* update dsl docstrings

* update client docstrings

* clean up kfp.__init__

* add dsl placeholder docstrings

* many more docstring updates

* document type aliases in dsl module
2022-07-21 19:51:18 +00:00
Connor McCarthy d8b9439ef9
add kfp v2 api reference docs (#8042)
* use __all__ in top-level modules to record public api

* add index and source files

* add kubeflow assets to _static/

* add and pin requirements

* use block quote instead of header for readme notice

* update conf.py

* delete old files
2022-07-19 15:53:54 -06:00
Connor McCarthy e6c9411ddf
fix(sdk): fixes kfp.components module type annotations, docstrings, and string/bytes processing (#8040)
* clean up components types, docstrings, and processing

* update tests

* use real request to get component yaml

* move docstring below copyright
2022-07-19 21:02:49 +00:00
Connor McCarthy 13736b85b6
chore(sdk): clean up kfp code style (#8027)
* remove unused imports

* use google as isort profile

* sort imports

* format with yapf

* clean end of file new line, trailing whitespace, double quoted strings
2022-07-15 00:06:34 +00:00
Connor McCarthy be5ff7215f
chore(sdk): update contributing guidelines/tests (#7802)
* add presubmit checks, contributing guidelines, and pre-commit file

* delete old unused formatting script

* modify scripts
2022-07-12 20:35:29 -06:00
Scott_Xu b95c5aba85
feat(sdk/client): implements overriding caching options at submission (#7912)
* implement override caching options for client

* use absolute path in test for overriding caching

* format code and add unit tests from pipeline

* delete typo

* add two-step pipeline test and review changes

* fix formatting

* fix typo on deprecated code

* update release file

* resolve comments on docstring and testing

* update release file
2022-07-12 16:49:30 +00:00
Connor McCarthy 850a750496
feat(sdk): add retry policy support to kfp v2 (#7867)
* depend on kfp-pipeline-spec>=0.1.16

* implement RetryPolicy structure

* implement RetryPolicy structure tests

* implement .set_retry method on PipelineTask

* implement retry policy compilation logic

* implement compiler tests for retry

* implement pipeline with retry compilation test

* add release note

* clean up
2022-07-11 16:44:52 +00:00
Connor McCarthy d3592b9bbd
chore(sdk): bump kfp version to 2.0.0b1 (#7993)
* bump version

* update release notes
2022-07-07 11:30:01 -06:00
Connor McCarthy 7253203239
add registry json to package data (#7987) 2022-07-07 10:48:40 -06:00
Christian Kadner aab7fda89b
feat(sdk): Add default registry context (#7948)
* Add default registry context

Signed-off-by: Christian Kadner <ckadner@us.ibm.com>

* Address review comments

* Reinstate `_is_ar_host()` check
* Remove `view=FULL` flag for default list and get
  version URLs

Signed-off-by: Christian Kadner <ckadner@us.ibm.com>

* Change outdated test name

Signed-off-by: Christian Kadner <ckadner@us.ibm.com>
2022-06-30 13:51:05 -06:00
Connor McCarthy 42600a796d
chore(sdk): bump kfp version to 2.0.0b0 (#7952) 2022-06-27 18:11:59 -06:00
Connor McCarthy f877a1ffc8
fix(sdk): fix ifpresent and concat placeholder compile (#7930)
* fix ifpresent and concat placeholder expansion

* update golden snapshots

* uncomment v1 ifpresent component test case
2022-06-27 16:59:34 -06:00
Connor McCarthy ad458d535c
fix(sdk): fix placeholder read/write logic (#7928)
* fix ExecutorInputPlaceholder() usage

* fix OutputPath and OutputParameter placeholder task creation logic

* fix v1 component yaml deserialization logic

* fix typo in test

* ignore description when comparing ComponentSpec

* uncomment fixed test cases
2022-06-27 15:06:38 -06:00
Connor McCarthy ecb55bde74
feat(sdk): throw informative exception on uncalled @pipeline decorator (#7913)
* add informative error message for uncalled @pipeline

* add test for exception
2022-06-27 12:29:48 -06:00
Connor McCarthy a020c9b01c
fix(sdk): fix extract docstring in load component (#7921)
* fix extract docstring in load component

* implement review feedback
2022-06-24 12:12:35 -06:00
Connor McCarthy 281151c051
chore(sdk): improve IR read/write testing (#7920)
* add more load component test cases

* add read write equality tests

* add copyright

* remove duplicative structures tests

* add if __name__ == '__main__' block
2022-06-24 09:45:15 -06:00
chongyouquan 58f7ab8b49
chore(sdk): Registry Client - default to read full spec of versions (#7936)
* default to read full spec of versions

* update tests

* fix formatting
2022-06-24 09:43:51 -06:00