87
87
< div itemprop ="articleBody ">
88
88
89
89
< h1 > Source code for viam.app.viam_client</ h1 > < div class ="highlight "> < pre >
90
- < span > </ span > < span class ="kn "> from</ span > < span class ="nn "> typing</ span > < span class ="kn "> import</ span > < span class ="n "> Mapping</ span > < span class ="p "> ,</ span > < span class ="n "> Optional</ span >
90
+ < span > </ span > < span class ="kn "> import</ span > < span class ="nn "> os</ span >
91
+ < span class ="kn "> from</ span > < span class ="nn "> typing</ span > < span class ="kn "> import</ span > < span class ="n "> Mapping</ span > < span class ="p "> ,</ span > < span class ="n "> Optional</ span >
91
92
92
93
< span class ="kn "> from</ span > < span class ="nn "> grpclib.client</ span > < span class ="kn "> import</ span > < span class ="n "> Channel</ span >
93
94
< span class ="kn "> from</ span > < span class ="nn "> typing_extensions</ span > < span class ="kn "> import</ span > < span class ="n "> Self</ span >
@@ -99,7 +100,7 @@ <h1>Source code for viam.app.viam_client</h1><div class="highlight"><pre>
99
100
< span class ="kn "> from</ span > < span class ="nn "> viam.app.ml_training_client</ span > < span class ="kn "> import</ span > < span class ="n "> MLTrainingClient</ span >
100
101
< span class ="kn "> from</ span > < span class ="nn "> viam.app.provisioning_client</ span > < span class ="kn "> import</ span > < span class ="n "> ProvisioningClient</ span >
101
102
< span class ="kn "> from</ span > < span class ="nn "> viam.robot.client</ span > < span class ="kn "> import</ span > < span class ="n "> RobotClient</ span >
102
- < span class ="kn "> from</ span > < span class ="nn "> viam.rpc.dial</ span > < span class ="kn "> import</ span > < span class ="n "> DialOptions</ span > < span class ="p "> ,</ span > < span class ="n "> _dial_app</ span > < span class ="p "> ,</ span > < span class ="n "> _get_access_token</ span >
103
+ < span class ="kn "> from</ span > < span class ="nn "> viam.rpc.dial</ span > < span class ="kn "> import</ span > < span class ="n "> Credentials </ span > < span class =" p " > , </ span > < span class =" n " > DialOptions</ span > < span class ="p "> ,</ span > < span class ="n "> _dial_app</ span > < span class ="p "> ,</ span > < span class ="n "> _get_access_token</ span >
103
104
104
105
< span class ="n "> LOGGER</ span > < span class ="o "> =</ span > < span class ="n "> logging</ span > < span class ="o "> .</ span > < span class ="n "> getLogger</ span > < span class ="p "> (</ span > < span class ="vm "> __name__</ span > < span class ="p "> )</ span >
105
106
@@ -113,14 +114,46 @@ <h1>Source code for viam.app.viam_client</h1><div class="highlight"><pre>
113
114
< span class ="sd "> ViamClient.create_from_dial_options(...)</ span >
114
115
< span class ="sd "> """</ span >
115
116
117
+ < div class ="viewcode-block " id ="ViamClient.create_from_env_vars "> < a class ="viewcode-back " href ="../../../autoapi/viam/app/viam_client/index.html#viam.app.viam_client.ViamClient.create_from_env_vars "> [docs]</ a > < span class ="nd "> @classmethod</ span >
118
+ < span class ="k "> async</ span > < span class ="k "> def</ span > < span class ="nf "> create_from_env_vars</ span > < span class ="p "> (</ span > < span class ="bp "> cls</ span > < span class ="p "> ,</ span > < span class ="n "> dial_options</ span > < span class ="p "> :</ span > < span class ="n "> Optional</ span > < span class ="p "> [</ span > < span class ="n "> DialOptions</ span > < span class ="p "> ]</ span > < span class ="o "> =</ span > < span class ="kc "> None</ span > < span class ="p "> ,</ span > < span class ="n "> app_url</ span > < span class ="p "> :</ span > < span class ="n "> Optional</ span > < span class ="p "> [</ span > < span class ="nb "> str</ span > < span class ="p "> ]</ span > < span class ="o "> =</ span > < span class ="kc "> None</ span > < span class ="p "> )</ span > < span class ="o "> -></ span > < span class ="n "> Self</ span > < span class ="p "> :</ span >
119
+ < span class ="w "> </ span > < span class ="sd "> """Create `ViamClient` using credentials set in the environment as `VIAM_API_KEY` and `VIAM_API_KEY_ID`.</ span >
120
+
121
+ < span class ="sd "> ::</ span >
122
+
123
+ < span class ="sd "> client = await ViamClient.create_from_env_vars()</ span >
124
+
125
+ < span class ="sd "> Args:</ span >
126
+ < span class ="sd "> dial_options (Optional[viam.rpc.dial.DialOptions]): Options for authorization and connection to app.</ span >
127
+ < span class ="sd "> If not provided, default options will be selected. Note that `creds` and `auth_entity`</ span >
128
+ < span class ="sd "> fields will be overwritten by the values set by a module.</ span >
129
+ < span class ="sd "> app_url: (Optional[str]): URL of app. Uses app.viam.com if not specified.</ span >
130
+
131
+ < span class ="sd "> Raises:</ span >
132
+ < span class ="sd "> ValueError: If there are no env vars set by the module, or if they are set improperly</ span >
133
+
134
+ < span class ="sd "> """</ span >
135
+ < span class ="n "> dial_options</ span > < span class ="o "> =</ span > < span class ="n "> dial_options</ span > < span class ="k "> if</ span > < span class ="n "> dial_options</ span > < span class ="k "> else</ span > < span class ="n "> DialOptions</ span > < span class ="p "> ()</ span >
136
+ < span class ="n "> api_key</ span > < span class ="o "> =</ span > < span class ="n "> os</ span > < span class ="o "> .</ span > < span class ="n "> environ</ span > < span class ="o "> .</ span > < span class ="n "> get</ span > < span class ="p "> (</ span > < span class ="s2 "> "VIAM_API_KEY"</ span > < span class ="p "> )</ span >
137
+ < span class ="k "> if</ span > < span class ="n "> api_key</ span > < span class ="ow "> is</ span > < span class ="kc "> None</ span > < span class ="p "> :</ span >
138
+ < span class ="k "> raise</ span > < span class ="ne "> ValueError</ span > < span class ="p "> (</ span > < span class ="s2 "> "api key cannot be None"</ span > < span class ="p "> )</ span >
139
+ < span class ="n "> api_key_id</ span > < span class ="o "> =</ span > < span class ="n "> os</ span > < span class ="o "> .</ span > < span class ="n "> environ</ span > < span class ="o "> .</ span > < span class ="n "> get</ span > < span class ="p "> (</ span > < span class ="s2 "> "VIAM_API_KEY_ID"</ span > < span class ="p "> )</ span >
140
+ < span class ="k "> if</ span > < span class ="n "> api_key_id</ span > < span class ="ow "> is</ span > < span class ="kc "> None</ span > < span class ="p "> :</ span >
141
+ < span class ="k "> raise</ span > < span class ="ne "> ValueError</ span > < span class ="p "> (</ span > < span class ="s2 "> "api key ID cannot be None"</ span > < span class ="p "> )</ span >
142
+ < span class ="n "> credentials</ span > < span class ="o "> =</ span > < span class ="n "> Credentials</ span > < span class ="p "> (</ span > < span class ="nb "> type</ span > < span class ="o "> =</ span > < span class ="s2 "> "api-key"</ span > < span class ="p "> ,</ span > < span class ="n "> payload</ span > < span class ="o "> =</ span > < span class ="n "> api_key</ span > < span class ="p "> )</ span >
143
+ < span class ="n "> dial_options</ span > < span class ="o "> .</ span > < span class ="n "> credentials</ span > < span class ="o "> =</ span > < span class ="n "> credentials</ span >
144
+ < span class ="n "> dial_options</ span > < span class ="o "> .</ span > < span class ="n "> auth_entity</ span > < span class ="o "> =</ span > < span class ="n "> api_key_id</ span >
145
+
146
+ < span class ="k "> return</ span > < span class ="k "> await</ span > < span class ="bp "> cls</ span > < span class ="o "> .</ span > < span class ="n "> create_from_dial_options</ span > < span class ="p "> (</ span > < span class ="n "> dial_options</ span > < span class ="p "> ,</ span > < span class ="n "> app_url</ span > < span class ="p "> )</ span > </ div >
147
+
148
+
116
149
< div class ="viewcode-block " id ="ViamClient.create_from_dial_options "> < a class ="viewcode-back " href ="../../../autoapi/viam/app/viam_client/index.html#viam.app.viam_client.ViamClient.create_from_dial_options "> [docs]</ a > < span class ="nd "> @classmethod</ span >
117
150
< span class ="k "> async</ span > < span class ="k "> def</ span > < span class ="nf "> create_from_dial_options</ span > < span class ="p "> (</ span > < span class ="bp "> cls</ span > < span class ="p "> ,</ span > < span class ="n "> dial_options</ span > < span class ="p "> :</ span > < span class ="n "> DialOptions</ span > < span class ="p "> ,</ span > < span class ="n "> app_url</ span > < span class ="p "> :</ span > < span class ="n "> Optional</ span > < span class ="p "> [</ span > < span class ="nb "> str</ span > < span class ="p "> ]</ span > < span class ="o "> =</ span > < span class ="kc "> None</ span > < span class ="p "> )</ span > < span class ="o "> -></ span > < span class ="n "> Self</ span > < span class ="p "> :</ span >
118
151
< span class ="w "> </ span > < span class ="sd "> """Create `ViamClient` that establishes a connection to the Viam app.</ span >
119
152
120
153
< span class ="sd "> ::</ span >
121
154
122
155
< span class ="sd "> dial_options = DialOptions.with_api_key("<API-KEY>", "<API-KEY-ID>")</ span >
123
- < span class ="sd "> ViamClient.create_from_dial_options(dial_options)</ span >
156
+ < span class ="sd "> client = await ViamClient.create_from_dial_options(dial_options)</ span >
124
157
125
158
< span class ="sd "> Args:</ span >
126
159
< span class ="sd "> dial_options (viam.rpc.dial.DialOptions): Required information for authorization and connection to app.</ span >
0 commit comments