Skip to content

Commit 092513f

Browse files
committed
update parameters for usage_workspace and usage_deployment
1 parent 13dfeb2 commit 092513f

File tree

2 files changed

+49
-12
lines changed

2 files changed

+49
-12
lines changed

roboflow/adapters/deploymentapi.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -41,20 +41,16 @@ def list_deployment(api_key):
4141
return response.status_code, response.json()
4242

4343

44-
def get_workspace_usage(api_key, target_month):
45-
url = f"{DEDICATED_DEPLOYMENT_URL}/usage_workspace?api_key={api_key}"
46-
if target_month is not None:
47-
url += f"&target_month={target_month}"
44+
def get_workspace_usage(api_key, from_timestamp, to_timestamp):
45+
url = f"{DEDICATED_DEPLOYMENT_URL}/usage_workspace?api_key={api_key}&from_timestamp={from_timestamp.isoformat()}&to_timestamp={to_timestamp.isoformat()}"
4846
response = requests.get(url)
4947
if response.status_code != 200:
5048
return response.status_code, response.text
5149
return response.status_code, response.json()
5250

5351

54-
def get_deployment_usage(api_key, deployment_name, target_month):
55-
url = f"{DEDICATED_DEPLOYMENT_URL}/usage_deployment?api_key={api_key}&deployment_name={deployment_name}"
56-
if target_month is not None:
57-
url += f"&target_month={target_month}"
52+
def get_deployment_usage(api_key, deployment_name, from_timestamp, to_timestamp):
53+
url = f"{DEDICATED_DEPLOYMENT_URL}/usage_deployment?api_key={api_key}&deployment_name={deployment_name}&from_timestamp={from_timestamp.isoformat()}&to_timestamp={to_timestamp.isoformat()}"
5854
response = requests.get(url)
5955
if response.status_code != 200:
6056
return response.status_code, response.text

roboflow/deployment.py

Lines changed: 45 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,41 @@
55
from roboflow.adapters import deploymentapi
66
from roboflow.config import load_roboflow_api_key
77

8+
def is_valid_ISO8601_timestamp(ts):
9+
try:
10+
datetime.fromisoformat(ts)
11+
return True
12+
except:
13+
return False
14+
15+
def check_from_to_timestamp(from_timestamp, to_timestamp, default_timedelta):
16+
if from_timestamp and not is_valid_ISO8601_timestamp(from_timestamp):
17+
print("Please provide a valid from_timestamp in ISO8601 format")
18+
exit(1)
19+
20+
if to_timestamp and not is_valid_ISO8601_timestamp(to_timestamp):
21+
print("Please provide a valid to_timestamp in ISO8601 format")
22+
exit(1)
23+
24+
time_now = datetime.now().replace(tzinfo=None)
25+
if from_timestamp is None and to_timestamp is None:
26+
from_timestamp = time_now - default_timedelta
27+
to_timestamp = time_now
28+
elif from_timestamp is not None and to_timestamp is None:
29+
from_timestamp = datetime.fromisoformat(from_timestamp).replace(tzinfo=None)
30+
to_timestamp = from_timestamp + default_timedelta
31+
elif from_timestamp is None and to_timestamp is not None:
32+
to_timestamp = datetime.fromisoformat(to_timestamp).replace(tzinfo=None)
33+
from_timestamp = to_timestamp - default_timedelta
34+
else:
35+
from_timestamp = datetime.fromisoformat(from_timestamp).replace(tzinfo=None)
36+
to_timestamp = datetime.fromisoformat(to_timestamp).replace(tzinfo=None)
37+
if from_timestamp >= to_timestamp:
38+
print("from_timestamp should be earlier than to_timestamp")
39+
exit(1)
40+
41+
return from_timestamp, to_timestamp
42+
843

944
def add_deployment_parser(subparsers):
1045
deployment_parser = subparsers.add_parser(
@@ -74,12 +109,14 @@ def add_deployment_parser(subparsers):
74109

75110
deployment_usage_workspace_parser.set_defaults(func=get_workspace_usage)
76111
deployment_usage_workspace_parser.add_argument("-a", "--api_key", help="api key")
77-
deployment_usage_workspace_parser.add_argument("target_month", help="target month (format: YYYYMM)", nargs="?")
112+
deployment_usage_workspace_parser.add_argument("-f", "--from_timestamp", help="begin time stamp in ISO8601 format (YYYY-MM-DD HH:MM:SS)", default=None)
113+
deployment_usage_workspace_parser.add_argument("-t", "--to_timestamp", help="end time stamp in ISO8601 format (YYYY-MM-DD HH:MM:SS)", default=None)
78114

79115
deployment_usage_deployment_parser.set_defaults(func=get_deployment_usage)
80116
deployment_usage_deployment_parser.add_argument("-a", "--api_key", help="api key")
81117
deployment_usage_deployment_parser.add_argument("deployment_name", help="deployment name")
82-
deployment_usage_deployment_parser.add_argument("target_month", help="target month (format: YYYYMM)", nargs="?")
118+
deployment_usage_deployment_parser.add_argument("-f", "--from_timestamp", help="begin time stamp in ISO8601 format (YYYY-MM-DD HH:MM:SS)", default=None)
119+
deployment_usage_deployment_parser.add_argument("-t", "--to_timestamp", help="end time stamp in ISO8601 format (YYYY-MM-DD HH:MM:SS)", default=None)
83120

84121
deployment_delete_parser.set_defaults(func=delete_deployment)
85122
deployment_delete_parser.add_argument("-a", "--api_key", help="api key")
@@ -171,7 +208,9 @@ def get_workspace_usage(args):
171208
if api_key is None:
172209
print("Please provide an api key")
173210
exit(1)
174-
status_code, msg = deploymentapi.get_workspace_usage(api_key, args.target_month)
211+
212+
from_timestamp, to_timestamp = check_from_to_timestamp(args.from_timestamp, args.to_timestamp, timedelta(days=1))
213+
status_code, msg = deploymentapi.get_workspace_usage(api_key, from_timestamp, to_timestamp)
175214
if status_code != 200:
176215
print(f"{status_code}: {msg}")
177216
exit(status_code)
@@ -183,7 +222,9 @@ def get_deployment_usage(args):
183222
if api_key is None:
184223
print("Please provide an api key")
185224
exit(1)
186-
status_code, msg = deploymentapi.get_deployment_usage(api_key, args.deployment_name, args.target_month)
225+
226+
from_timestamp, to_timestamp = check_from_to_timestamp(args.from_timestamp, args.to_timestamp, timedelta(days=1))
227+
status_code, msg = deploymentapi.get_deployment_usage(api_key, args.deployment_name, from_timestamp, to_timestamp)
187228
if status_code != 200:
188229
print(f"{status_code}: {msg}")
189230
exit(status_code)

0 commit comments

Comments
 (0)