FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
cortex/python/client/cortex/__init__.py at master · cortexlabs/cortex · GitHub
cortexlabs
/
cortex
Public
Notifications
You must be signed in to change notification settings
Fork
591
Star
8k
Code
Issues
114
Pull requests
18
Projects
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
cortex
/
python
/
client
/
cortex
/
__init__.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
103 lines (81 loc) · 2.93 KB
Breadcrumbs
cortex
/
python
/
client
/
cortex
/
__init__.py
Copy path
File metadata and controls
103 lines (81 loc) · 2.93 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
# Copyright 2022 Cortex Labs, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import
json
from
typing
import
Optional
,
List
from
cortex
.
binary
import
run_cli
from
cortex
.
client
import
Client
from
cortex
.
exceptions
import
NotFound
from
cortex
.
telemetry
import
sentry_wrapper
__version__
=
"master"
# CORTEX_VERSION
@
sentry_wrapper
def
client
(
env_name
:
Optional
[
str
]
=
None
)
->
Client
:
"""
Initialize a client based on the specified environment. If no environment is specified, it will attempt to use the default environment.
Args:
env_name: Name of the environment to use.
Returns:
Cortex client that can be used to deploy and manage APIs in the specified environment.
"""
environments
=
env_list
()
if
env_name
is
None
:
if
not
environments
.
get
(
"default_environment"
):
raise
NotFound
(
"no default environment configured"
)
env_name
=
environments
[
"default_environment"
]
found
=
False
for
environment
in
environments
[
"environments"
]:
if
environment
[
"name"
]
==
env_name
:
found
=
True
break
if
not
found
:
raise
NotFound
(
f"can't find environment
{
env_name
}
, create one by calling `cortex.new_client()`"
)
return
Client
(
environment
)
@
sentry_wrapper
def
new_client
(
env_name
:
str
,
operator_endpoint
:
str
,
)
->
Client
:
"""
Create a new environment to connect to an existing cluster, and initialize a client to deploy and manage APIs on that cluster.
Args:
env_name: Name of the environment to create.
operator_endpoint: The endpoint for the operator of your Cortex cluster. You can get this endpoint by running the CLI command `cortex cluster info`.
Returns:
Cortex client that can be used to deploy and manage APIs on a cluster.
"""
cli_args
=
[
"env"
,
"configure"
,
env_name
,
"--operator-endpoint"
,
operator_endpoint
,
]
run_cli
(
cli_args
,
hide_output
=
True
)
return
client
(
env_name
)
@
sentry_wrapper
def
env_list
()
->
List
:
"""
List all environments configured on this machine.
"""
output
=
run_cli
([
"env"
,
"list"
,
"--output"
,
"json"
],
hide_output
=
True
)
return
json
.
loads
(
output
.
strip
())
@
sentry_wrapper
def
env_delete
(
name
:
str
):
"""
Delete an environment configured on this machine.
Args:
name: Name of the environment to delete.
"""
run_cli
([
"env"
,
"delete"
,
name
],
hide_output
=
True
)
Back
|
FazBrowse Home
|
New Git URL