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

Code Generation for Pipelines and Components #1306

Merged
merged 24 commits into from Oct 28, 2020
Merged

Code Generation for Pipelines and Components #1306

merged 24 commits into from Oct 28, 2020

Conversation

bchen1116
Copy link
Contributor

@bchen1116 bchen1116 commented Oct 14, 2020

fix #1028

Design Doc here

Component docs here
Pipeline docs here
Api docs here and here

Requirements:

  • Functions to generate pipeline or component code as a string so users can copy and use it elsewhere
  • Documentation for usage
  • Support for custom components

@bchen1116 bchen1116 self-assigned this Oct 14, 2020
@codecov
Copy link

codecov bot commented Oct 14, 2020

Codecov Report

Merging #1306 into main will increase coverage by 0.01%.
The diff coverage is 100.00%.

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #1306      +/-   ##
==========================================
+ Coverage   99.95%   99.95%   +0.01%     
==========================================
  Files         213      213              
  Lines       13656    13795     +139     
==========================================
+ Hits        13649    13788     +139     
  Misses          7        7              
Impacted Files Coverage Δ
evalml/pipelines/components/utils.py 100.00% <100.00%> (ø)
evalml/pipelines/utils.py 100.00% <100.00%> (ø)
evalml/tests/component_tests/test_components.py 100.00% <100.00%> (ø)
evalml/tests/pipeline_tests/test_pipelines.py 100.00% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 909cf82...82da5cf. Read the comment docs.

@bchen1116 bchen1116 marked this pull request as ready for review October 19, 2020 21:02
Copy link
Contributor

@dsherry dsherry left a comment

Choose a reason for hiding this comment

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

@bchen1116 this is awesome!!! Fancy implementation for the pipeline method, wow, I like it. Means we won't have to update every time we add a new pipeline attribute.

I left a few comments but nothing major. I like the API!

I do have one consideration: for non-evalml component definitions, perhaps we should include the entire definition in the generated code. Like in your docs example, the generated code would include MyDropNullColumns. What do you think? My reasoning is that if its not included in evalml, we should include it in the code gen.

evalml/tests/component_tests/test_components.py Outdated Show resolved Hide resolved
evalml/pipelines/components/utils.py Show resolved Hide resolved
evalml/pipelines/components/utils.py Outdated Show resolved Hide resolved
evalml/pipelines/components/utils.py Outdated Show resolved Hide resolved
evalml/pipelines/utils.py Outdated Show resolved Hide resolved
evalml/pipelines/utils.py Show resolved Hide resolved
evalml/pipelines/utils.py Outdated Show resolved Hide resolved
evalml/pipelines/utils.py Outdated Show resolved Hide resolved
@dsherry
Copy link
Contributor

dsherry commented Oct 27, 2020

Followed up with @bchen1116 , we're gonna pass on including custom component source in the generated code, because the implementation for handling imports would be complex. We'll wait to get a user request / feedback before adding the ability to include custom components in the generated code output.

evalml/pipelines/utils.py Outdated Show resolved Hide resolved
Copy link
Contributor

@dsherry dsherry left a comment

Choose a reason for hiding this comment

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

🚢 ✨

@bchen1116 bchen1116 merged commit db97d15 into main Oct 28, 2020
@dsherry dsherry mentioned this pull request Oct 29, 2020
@freddyaboulton freddyaboulton deleted the bc_code_gen branch May 13, 2022 15:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Code generation for pipelines
2 participants