-
Notifications
You must be signed in to change notification settings - Fork 1.6k
/
component.yaml
149 lines (142 loc) · 5.05 KB
/
component.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
name: Automl create dataset for tables
description: |
automl_create_dataset_for_tables creates an empty Dataset for AutoML tables
inputs:
- name: gcp_project_id
type: String
- name: gcp_region
type: String
- name: display_name
type: String
- name: description
type: String
optional: true
- name: tables_dataset_metadata
type: JsonObject
default: '{}'
optional: true
- name: retry
optional: true
- name: timeout
type: Float
optional: true
- name: metadata
type: JsonObject
optional: true
outputs:
- name: dataset_path
type: String
- name: create_time
type: String
- name: dataset_id
type: String
implementation:
container:
image: python:3.7
command:
- python3
- -u
- -c
- |
from typing import NamedTuple
def automl_create_dataset_for_tables(
gcp_project_id: str,
gcp_region: str,
display_name: str,
description: str = None,
tables_dataset_metadata: dict = {},
retry=None, #=google.api_core.gapic_v1.method.DEFAULT,
timeout: float = None, #=google.api_core.gapic_v1.method.DEFAULT,
metadata: dict = None,
) -> NamedTuple('Outputs', [('dataset_path', str), ('create_time', str), ('dataset_id', str)]):
'''automl_create_dataset_for_tables creates an empty Dataset for AutoML tables
'''
import sys
import subprocess
subprocess.run([sys.executable, '-m', 'pip', 'install', 'google-cloud-automl==0.4.0', '--quiet', '--no-warn-script-location'], env={'PIP_DISABLE_PIP_VERSION_CHECK': '1'}, check=True)
import google
from google.cloud import automl
client = automl.AutoMlClient()
location_path = client.location_path(gcp_project_id, gcp_region)
dataset_dict = {
'display_name': display_name,
'description': description,
'tables_dataset_metadata': tables_dataset_metadata,
}
dataset = client.create_dataset(
location_path,
dataset_dict,
retry or google.api_core.gapic_v1.method.DEFAULT,
timeout or google.api_core.gapic_v1.method.DEFAULT,
metadata,
)
print(dataset)
dataset_id = dataset.name.rsplit('/', 1)[-1]
return (dataset.name, dataset.create_time, dataset_id)
import json
import argparse
_missing_arg = object()
_parser = argparse.ArgumentParser(prog='Automl create dataset for tables', description='automl_create_dataset_for_tables creates an empty Dataset for AutoML tables\n')
_parser.add_argument("--gcp-project-id", dest="gcp_project_id", type=str, required=True, default=_missing_arg)
_parser.add_argument("--gcp-region", dest="gcp_region", type=str, required=True, default=_missing_arg)
_parser.add_argument("--display-name", dest="display_name", type=str, required=True, default=_missing_arg)
_parser.add_argument("--description", dest="description", type=str, required=False, default=_missing_arg)
_parser.add_argument("--tables-dataset-metadata", dest="tables_dataset_metadata", type=json.loads, required=False, default=_missing_arg)
_parser.add_argument("--retry", dest="retry", type=str, required=False, default=_missing_arg)
_parser.add_argument("--timeout", dest="timeout", type=float, required=False, default=_missing_arg)
_parser.add_argument("--metadata", dest="metadata", type=json.loads, required=False, default=_missing_arg)
_parser.add_argument("----output-paths", dest="_output_paths", type=str, nargs=3)
_parsed_args = {k: v for k, v in vars(_parser.parse_args()).items() if v is not _missing_arg}
_output_files = _parsed_args.pop("_output_paths", [])
_outputs = automl_create_dataset_for_tables(**_parsed_args)
if not hasattr(_outputs, '__getitem__') or isinstance(_outputs, str):
_outputs = [_outputs]
import os
for idx, output_file in enumerate(_output_files):
try:
os.makedirs(os.path.dirname(output_file))
except OSError:
pass
with open(output_file, 'w') as f:
f.write(str(_outputs[idx]))
args:
- --gcp-project-id
- inputValue: gcp_project_id
- --gcp-region
- inputValue: gcp_region
- --display-name
- inputValue: display_name
- if:
cond:
isPresent: description
then:
- --description
- inputValue: description
- if:
cond:
isPresent: tables_dataset_metadata
then:
- --tables-dataset-metadata
- inputValue: tables_dataset_metadata
- if:
cond:
isPresent: retry
then:
- --retry
- inputValue: retry
- if:
cond:
isPresent: timeout
then:
- --timeout
- inputValue: timeout
- if:
cond:
isPresent: metadata
then:
- --metadata
- inputValue: metadata
- '----output-paths'
- outputPath: dataset_path
- outputPath: create_time
- outputPath: dataset_id