Skip to content

Commit 149c90d

Browse files
committed
move dployments stuff to its separate files
1 parent 401b634 commit 149c90d

File tree

8 files changed

+133
-118
lines changed

8 files changed

+133
-118
lines changed

roboflow/adapters/deploymentapi.py

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
import requests
2+
from roboflow.config import DEDICATED_DEPLOYMENT_URL
3+
4+
5+
class DeploymentApiError(Exception):
6+
pass
7+
8+
9+
def add_deployment(api_key, security_level, machine_type, deployment_name, inference_version):
10+
url = f"{DEDICATED_DEPLOYMENT_URL}/add"
11+
response = requests.post(
12+
url,
13+
json={
14+
"api_key": api_key,
15+
"security_level": security_level,
16+
"machine_type": machine_type,
17+
"deployment_name": deployment_name,
18+
"inference_version": inference_version,
19+
},
20+
)
21+
if response.status_code != 200:
22+
raise DeploymentApiError(response.text)
23+
result = response.json()
24+
return result
25+
26+
27+
def get_deployment(api_key, deployment_id):
28+
url = f"{DEDICATED_DEPLOYMENT_URL}/get"
29+
response = requests.get(url, json={"api_key": api_key, "deployment_id": deployment_id})
30+
if response.status_code != 200:
31+
raise DeploymentApiError(response.text)
32+
result = response.json()
33+
return result
34+
35+
36+
def list_deployment(api_key):
37+
url = f"{DEDICATED_DEPLOYMENT_URL}/list"
38+
response = requests.get(url, json={"api_key": api_key})
39+
if response.status_code != 200:
40+
raise DeploymentApiError(response.text)
41+
result = response.json()
42+
return result
43+
44+
45+
def delete_deployment(api_key, deployment_id):
46+
url = f"{DEDICATED_DEPLOYMENT_URL}/delete"
47+
response = requests.post(url, json={"api_key": api_key, "deployment_id": deployment_id})
48+
if response.status_code != 200:
49+
raise DeploymentApiError(response.text)
50+
result = response.json()
51+
return result

roboflow/adapters/rfapi.py

Lines changed: 1 addition & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import requests
77
from requests_toolbelt.multipart.encoder import MultipartEncoder
88

9-
from roboflow.config import API_URL, DEDICATED_DEPLOYMENT_URL, DEFAULT_BATCH_NAME, DEFAULT_JOB_NAME
9+
from roboflow.config import API_URL, DEFAULT_BATCH_NAME, DEFAULT_JOB_NAME
1010
from roboflow.util import image_utils
1111

1212

@@ -205,48 +205,3 @@ def _save_annotation_error(image_id, response):
205205
else:
206206
errmsg += f"bad response: {response.status_code}: {responsejson}"
207207
return UploadError(errmsg)
208-
209-
210-
def add_deployment(api_key, security_level, machine_type, deployment_name, inference_version):
211-
url = f"{DEDICATED_DEPLOYMENT_URL}/add"
212-
response = requests.post(
213-
url,
214-
json={
215-
"api_key": api_key,
216-
"security_level": security_level,
217-
"machine_type": machine_type,
218-
"deployment_name": deployment_name,
219-
"inference_version": inference_version,
220-
},
221-
)
222-
if response.status_code != 200:
223-
raise RoboflowError(response.text)
224-
result = response.json()
225-
return result
226-
227-
228-
def get_deployment(api_key, deployment_id):
229-
url = f"{DEDICATED_DEPLOYMENT_URL}/get"
230-
response = requests.get(url, json={"api_key": api_key, "deployment_id": deployment_id})
231-
if response.status_code != 200:
232-
raise RoboflowError(response.text)
233-
result = response.json()
234-
return result
235-
236-
237-
def list_deployment(api_key):
238-
url = f"{DEDICATED_DEPLOYMENT_URL}/list"
239-
response = requests.get(url, json={"api_key": api_key})
240-
if response.status_code != 200:
241-
raise RoboflowError(response.text)
242-
result = response.json()
243-
return result
244-
245-
246-
def delete_deployment(api_key, deployment_id):
247-
url = f"{DEDICATED_DEPLOYMENT_URL}/delete"
248-
response = requests.post(url, json={"api_key": api_key, "deployment_id": deployment_id})
249-
if response.status_code != 200:
250-
raise RoboflowError(response.text)
251-
result = response.json()
252-
return result

roboflow/config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ def get_conditional_configuration_variable(key, default):
6464
OCR_URL = get_conditional_configuration_variable("OCR_URL", "OCR URL NOT IN ENV")
6565

6666
DEDICATED_DEPLOYMENT_URL = get_conditional_configuration_variable(
67-
"DEDICATED_DEPLOYMENT_URL", "https://deployment.svc.roboflow.one"
67+
"DEDICATED_DEPLOYMENT_URL", "https://deployment.svc.roboflow.com"
6868
)
6969

7070
DEMO_KEYS = ["coco-128-sample", "chess-sample-only-api-key"]

roboflow/deployment.py

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
import json
2+
from roboflow.adapters import deploymentapi
3+
from roboflow.config import load_roboflow_api_key
4+
5+
6+
def add_deployment_parser(subparsers):
7+
deployment_parser = subparsers.add_parser(
8+
"deployment",
9+
help="deployment related commands. type 'roboflow deployment' to see detailed command help",
10+
)
11+
deployment_subparsers = deployment_parser.add_subparsers(title="deployment subcommands")
12+
deployment_add_parser = deployment_subparsers.add_parser("add", help="create a dedicated deployment")
13+
deployment_get_parser = deployment_subparsers.add_parser(
14+
"get", help="show detailed info for a dedicated deployment"
15+
)
16+
deployment_list_parser = deployment_subparsers.add_parser("list", help="list dedicated deployments in a workspace")
17+
deployment_delete_parser = deployment_subparsers.add_parser("delete", help="delete a dedicated deployment")
18+
19+
deployment_add_parser.set_defaults(func=add_deployment)
20+
deployment_add_parser.add_argument("-a", dest="api_key", help="api key")
21+
deployment_add_parser.add_argument(
22+
"-s", dest="security_level", help="security level (protected)", default="protected"
23+
)
24+
deployment_add_parser.add_argument(
25+
"-m",
26+
dest="machine_type",
27+
help="machine type (gcp-n2-cpu, gcp-t4-gpu, gcp-l4-gpu)",
28+
default="gcp-n2-cpu",
29+
)
30+
deployment_add_parser.add_argument("-n", dest="deployment_name", help="deployment name")
31+
deployment_add_parser.add_argument(
32+
"-v", dest="inference_version", help="inference server version (default: latest)", default="latest"
33+
)
34+
35+
deployment_get_parser.set_defaults(func=get_deployment)
36+
deployment_get_parser.add_argument("-a", dest="api_key", help="api key")
37+
deployment_get_parser.add_argument("-d", dest="deployment_id", help="deployment id")
38+
39+
deployment_list_parser.set_defaults(func=list_deployment)
40+
deployment_list_parser.add_argument("-a", dest="api_key", help="api key")
41+
42+
deployment_delete_parser.set_defaults(func=delete_deployment)
43+
deployment_delete_parser.add_argument("-a", dest="api_key", help="api key")
44+
deployment_delete_parser.add_argument("-d", dest="deployment_id", help="deployment id")
45+
46+
47+
def add_deployment(args):
48+
api_key = args.api_key or load_roboflow_api_key(None)
49+
ret_json = deploymentapi.add_deployment(
50+
api_key,
51+
args.security_level,
52+
args.machine_type,
53+
args.deployment_name,
54+
args.inference_version,
55+
)
56+
print(json.dumps(ret_json, indent=2))
57+
58+
59+
def get_deployment(args):
60+
api_key = args.api_key or load_roboflow_api_key(None)
61+
ret_json = deploymentapi.get_deployment(api_key, args.deployment_id)
62+
print(json.dumps(ret_json, indent=2))
63+
64+
65+
def list_deployment(args):
66+
api_key = args.api_key or load_roboflow_api_key(None)
67+
ret_json = deploymentapi.list_deployment(api_key)
68+
print(json.dumps(ret_json, indent=2))
69+
70+
71+
def delete_deployment(args):
72+
api_key = args.api_key or load_roboflow_api_key(None)
73+
ret_json = deploymentapi.delete_deployment(api_key, args.deployment_id)
74+
print(json.dumps(ret_json, indent=2))

roboflow/roboflowpy.py

Lines changed: 2 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from roboflow.models.keypoint_detection import KeypointDetectionModel
1313
from roboflow.models.object_detection import ObjectDetectionModel
1414
from roboflow.models.semantic_segmentation import SemanticSegmentationModel
15-
15+
from roboflow import deployment
1616

1717
def login(args):
1818
roboflow.login()
@@ -161,31 +161,6 @@ def infer(args):
161161
print(group)
162162

163163

164-
def add_deployment(args):
165-
ret_json = rfapi.add_deployment(
166-
args.api_key,
167-
args.security_level,
168-
args.machine_type,
169-
args.deployment_name,
170-
args.inference_version,
171-
)
172-
print(json.dumps(ret_json, indent=2))
173-
174-
175-
def get_deployment(args):
176-
ret_json = rfapi.get_deployment(args.api_key, args.deployment_id)
177-
print(json.dumps(ret_json, indent=2))
178-
179-
180-
def list_deployment(args):
181-
ret_json = rfapi.list_deployment(args.api_key)
182-
print(json.dumps(ret_json, indent=2))
183-
184-
185-
def delete_deployment(args):
186-
ret_json = rfapi.delete_deployment(args.api_key, args.deployment_id)
187-
print(json.dumps(ret_json, indent=2))
188-
189164

190165
def _argparser():
191166
parser = argparse.ArgumentParser(description="Welcome to the roboflow CLI: computer vision at your fingertips 🪄")
@@ -199,7 +174,7 @@ def _argparser():
199174
_add_workspaces_parser(subparsers)
200175
_add_upload_model_parser(subparsers)
201176
_add_get_workspace_project_version_parser(subparsers)
202-
_add_deployment_parser(subparsers)
177+
deployment.add_deployment_parser(subparsers)
203178

204179
return parser
205180

@@ -479,53 +454,10 @@ def _add_get_workspace_project_version_parser(subparsers):
479454
)
480455
workspace_project_version_parser.set_defaults(func=get_workspace_project_version)
481456

482-
483457
def _add_login_parser(subparsers):
484458
login_parser = subparsers.add_parser("login", help="Log in to Roboflow")
485459
login_parser.set_defaults(func=login)
486460

487-
488-
def _add_deployment_parser(subparsers):
489-
deployment_parser = subparsers.add_parser(
490-
"deployment",
491-
help="deployment related commands. type 'roboflow deployment' to see detailed command help",
492-
)
493-
deployment_subparsers = deployment_parser.add_subparsers(title="deployment subcommands")
494-
deployment_add_parser = deployment_subparsers.add_parser("add", help="create a dedicated deployment")
495-
deployment_get_parser = deployment_subparsers.add_parser(
496-
"get", help="show detailed info for a dedicated deployment"
497-
)
498-
deployment_list_parser = deployment_subparsers.add_parser("list", help="list dedicated deployments in a workspace")
499-
deployment_delete_parser = deployment_subparsers.add_parser("delete", help="delete a dedicated deployment")
500-
501-
deployment_add_parser.set_defaults(func=add_deployment)
502-
deployment_add_parser.add_argument("-a", dest="api_key", help="api key")
503-
deployment_add_parser.add_argument(
504-
"-s", dest="security_level", help="security level (protected)", default="protected"
505-
)
506-
deployment_add_parser.add_argument(
507-
"-m",
508-
dest="machine_type",
509-
help="machine type (gcp-n2-cpu, gcp-t4-gpu, gcp-l4-gpu)",
510-
default="gcp-n2-cpu",
511-
)
512-
deployment_add_parser.add_argument("-n", dest="deployment_name", help="deployment name")
513-
deployment_add_parser.add_argument(
514-
"-v", dest="inference_version", help="inference server version (docker image tag)", default="latest"
515-
)
516-
517-
deployment_get_parser.set_defaults(func=get_deployment)
518-
deployment_get_parser.add_argument("-a", dest="api_key", help="api key")
519-
deployment_get_parser.add_argument("-d", dest="deployment_id", help="deployment id")
520-
521-
deployment_list_parser.set_defaults(func=list_deployment)
522-
deployment_list_parser.add_argument("-a", dest="api_key", help="api key")
523-
524-
deployment_delete_parser.set_defaults(func=delete_deployment)
525-
deployment_delete_parser.add_argument("-a", dest="api_key", help="api key")
526-
deployment_delete_parser.add_argument("-d", dest="deployment_id", help="deployment id")
527-
528-
529461
def main():
530462
parser = _argparser()
531463
args = parser.parse_args()

tests/manual/debugme.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@
3939
# f"import {thisdir}/data/cultura-pepino-coco -w wolfodorpythontests -p yellow-auto -c 100".split() # noqa: E501 // docs
4040
# f"import {thisdir}/data/cultura-pepino-yolov8 -w wolfodorpythontests -p yellow-auto -c 100".split() # noqa: E501 // docs
4141
# f"import {thisdir}/data/cultura-pepino-yolov8_voc -w wolfodorpythontests -p yellow-auto -c 100".split() # noqa: E501 // docs
42-
f"import {thisdir}/data/cultura-pepino-yolov5pytorch -w wolfodorpythontests -p yellow-auto -c 100 -n papaiasso".split() # noqa: E501 // docs
42+
# f"import {thisdir}/data/cultura-pepino-yolov5pytorch -w wolfodorpythontests -p yellow-auto -c 100 -n papaiasso".split() # noqa: E501 // docs
4343
# f"import {thisdir}/../datasets/mosquitos -w wolfodorpythontests -p yellow-auto -n papaiasso".split() # noqa: E501 // docs
44+
f"deployment list".split() # noqa: E501 // docs
4445
)
4546
args.func(args)

tests/manual/useprod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ cp data/.config-prod data/.config
44
export API_URL=https://api.roboflow.com
55
export APP_URL=https://app.roboflow.com
66
export OBJECT_DETECTION_URL=https://detect.roboflow.one
7+
export DEDICATED_DEPLOYMENT_URL=https://deployment.svc.roboflow.com

tests/manual/usestaging

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ cp data/.config-staging data/.config
44
export API_URL=https://api.roboflow.one
55
export APP_URL=https://app.roboflow.one
66
export OBJECT_DETECTION_URL=https://lambda-object-detection.staging.roboflow.com
7+
export DEDICATED_DEPLOYMENT_URL=https://deployment.svc.roboflow.one

0 commit comments

Comments
 (0)