Skip to content

Commit fd6990b

Browse files
committed
api key precedence
1 parent 3750654 commit fd6990b

File tree

5 files changed

+90
-33
lines changed

5 files changed

+90
-33
lines changed

roboflow/__init__.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from roboflow.models import CLIPModel, GazeModel # noqa: F401
1616
from roboflow.util.general import write_line
1717

18-
__version__ = "1.1.34"
18+
__version__ = "1.1.35"
1919

2020

2121
def check_key(api_key, model, notebook, num_retries=0):
@@ -237,14 +237,18 @@ def workspace(self, the_workspace=None):
237237

238238
if the_workspace is None:
239239
the_workspace = self.current_workspace
240-
241-
if self.api_key in DEMO_KEYS:
240+
241+
if self.api_key: # Check if api_key was passed during __init__
242+
workspace_api_key = load_roboflow_api_key(the_workspace)
243+
api_key = workspace_api_key or self.api_key
244+
list_projects = rfapi.get_workspace(api_key, the_workspace)
245+
return Workspace(list_projects, api_key, the_workspace, self.model_format)
246+
247+
elif self.api_key in DEMO_KEYS:
242248
return Workspace({}, self.api_key, the_workspace, self.model_format)
243-
workspace_api_key = load_roboflow_api_key(the_workspace)
244-
api_key = workspace_api_key or self.api_key
245-
246-
list_projects = rfapi.get_workspace(api_key, the_workspace)
247-
return Workspace(list_projects, api_key, the_workspace, self.model_format)
249+
250+
else:
251+
raise ValueError("A valid API key must be provided.")
248252

249253
def project(self, project_name, the_workspace=None):
250254
"""Function that takes in the name of the project and returns the project object

roboflow/core/project.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,8 @@ def __init__(self, api_key: str, a_project: dict, model_format: Optional[str] =
5353
5454
>>> project = rf.workspace().project("PROJECT_ID")
5555
"""
56-
if api_key in DEMO_KEYS:
57-
self.__api_key = api_key
58-
self.model_format = model_format
59-
else:
56+
57+
if api_key:
6058
self.__api_key = api_key
6159
self.annotation = a_project["annotation"]
6260
self.classes = a_project["classes"]
@@ -75,6 +73,14 @@ def __init__(self, api_key: str, a_project: dict, model_format: Optional[str] =
7573
temp = self.id.rsplit("/")
7674
self.__workspace = temp[0]
7775
self.__project_name = temp[1]
76+
77+
elif DEMO_KEYS:
78+
self.__api_key = DEMO_KEYS[0]
79+
self.model_format = model_format
80+
81+
else:
82+
raise ValueError("A valid API key must be provided.")
83+
7884

7985
def get_version_information(self):
8086
"""

roboflow/core/version.py

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -64,19 +64,7 @@ def __init__(
6464
"""
6565
Initialize a Version object.
6666
"""
67-
if api_key in DEMO_KEYS:
68-
if api_key == "coco-128-sample":
69-
self.__api_key = api_key
70-
self.model_format = model_format
71-
self.name = "coco-128"
72-
self.version = "1"
73-
else:
74-
self.__api_key = api_key
75-
self.model_format = model_format
76-
self.name = "chess-pieces-new"
77-
self.version = "23"
78-
self.id = "joseph-nelson/chess-pieces-new"
79-
else:
67+
if api_key:
8068
self.__api_key = api_key
8169
self.name = name
8270
self.version = unwrap_version_id(version_id=version)
@@ -144,6 +132,20 @@ def __init__(
144132
self.model = KeypointDetectionModel(self.__api_key, self.id, version=version_without_workspace)
145133
else:
146134
self.model = None
135+
136+
elif DEMO_KEYS:
137+
api_key = DEMO_KEYS[0]
138+
if api_key == "coco-128-sample":
139+
self.__api_key = api_key
140+
self.model_format = model_format
141+
self.name = "coco-128"
142+
self.version = "1"
143+
else:
144+
self.__api_key = api_key
145+
self.model_format = model_format
146+
self.name = "chess-pieces-new"
147+
self.version = "23"
148+
self.id = "joseph-nelson/chess-pieces-new"
147149

148150
def __check_if_generating(self):
149151
# check Roboflow API to see if this version is still generating

roboflow/core/workspace.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,11 @@ class Workspace:
2323
"""
2424
Manage a Roboflow workspace.
2525
"""
26-
2726
def __init__(self, info, api_key, default_workspace, model_format):
28-
if api_key in DEMO_KEYS:
29-
self.__api_key = api_key
30-
self.model_format = model_format
31-
self.project_list = []
32-
else:
27+
28+
if api_key:
29+
self.__api_key = api_key
30+
3331
workspace_info = info["workspace"]
3432
self.name = workspace_info["name"]
3533
self.project_list = workspace_info["projects"]
@@ -38,8 +36,14 @@ def __init__(self, info, api_key, default_workspace, model_format):
3836
self.url = workspace_info["url"]
3937
self.model_format = model_format
4038

41-
self.__api_key = api_key
39+
elif DEMO_KEYS:
40+
self.__api_key = DEMO_KEYS[0]
41+
self.model_format = model_format
42+
self.project_list = []
4243

44+
else:
45+
raise ValueError("A valid API key must be provided.")
46+
4347
def list_projects(self):
4448
"""
4549
Print all projects in the workspace to the console.

roboflow/roboflowpy.py

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,17 @@ def get_workspace(args):
113113
print(json.dumps(workspace_json, indent=2))
114114

115115

116+
117+
def get_workspace_project_version(args):
118+
#api_key = load_roboflow_api_key(args.workspaceId)
119+
rf = roboflow.Roboflow(args.api_key)
120+
workspace = rf.workspace()
121+
print('workspace',workspace)
122+
project = workspace.project(args.project)
123+
print('project',project)
124+
version = project.version(args.version_number)
125+
print('version',version)
126+
116127
def get_project(args):
117128
workspace_url = args.workspace or get_conditional_configuration_variable("RF_WORKSPACE", default=None)
118129
api_key = load_roboflow_api_key(workspace_url)
@@ -161,6 +172,9 @@ def _argparser():
161172
_add_projects_parser(subparsers)
162173
_add_workspaces_parser(subparsers)
163174
_add_upload_model_parser(subparsers)
175+
_add_get_workspace_project_version_parser(subparsers)
176+
177+
164178
return parser
165179

166180

@@ -410,7 +424,34 @@ def _add_upload_model_parser(subparsers):
410424
)
411425
upload_model_parser.set_defaults(func=upload_model)
412426

413-
427+
def _add_get_workspace_project_version_parser(subparsers):
428+
workspace_project_version_parser = subparsers.add_parser(
429+
"get_workspace_info",
430+
help="get workspace project version info",
431+
)
432+
workspace_project_version_parser.add_argument(
433+
"-a",
434+
dest="api_key",
435+
help="api_key",
436+
)
437+
workspace_project_version_parser.add_argument(
438+
"-w",
439+
dest="workspace",
440+
help="specify a workspace url or id (will use default workspace if not specified)",
441+
)
442+
workspace_project_version_parser.add_argument(
443+
"-p",
444+
dest="project",
445+
help="project_id to upload the model into",
446+
)
447+
workspace_project_version_parser.add_argument(
448+
"-v",
449+
dest="version_number",
450+
type=int,
451+
help="version number to upload the model to",
452+
)
453+
workspace_project_version_parser.set_defaults(func=get_workspace_project_version)
454+
414455
def _add_login_parser(subparsers):
415456
login_parser = subparsers.add_parser("login", help="Log in to Roboflow")
416457
login_parser.set_defaults(func=login)

0 commit comments

Comments
 (0)