Skip to content

Commit 518c638

Browse files
author
Matt Sokoloff
committed
clean up
1 parent 215d73f commit 518c638

File tree

8 files changed

+40
-39
lines changed

8 files changed

+40
-39
lines changed

labelbox/orm/db_object.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
from dataclasses import field
21
from datetime import datetime, timezone
32
from functools import partial
43
import logging
5-
from os import EX_CANTCREAT
64

75
from labelbox import utils
86
from labelbox.exceptions import InvalidQueryError, InvalidAttributeError
@@ -48,7 +46,7 @@ def __init__(self, client, field_values):
4846

4947
for relationship in self.relationships():
5048
value = field_values.get(relationship.name)
51-
if relationship.precompute and value is None:
49+
if relationship.cache and value is None:
5250
raise KeyError(
5351
f"Expected field values for {relationship.name}")
5452

labelbox/orm/model.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ class Relationship:
184184
name (str): Name of the relationship in the snake_case format.
185185
graphql_name (str): Name of the relationships server-side. Most often
186186
(not always) just a camelCase version of `name`.
187-
precompute (bool) : Whether or not to precompute the relationship.
187+
cache (bool) : Whether or not to cache the relationship values.
188188
Useful for objects that aren't directly queryable from the api (relationship query builder won't work)
189189
Also useful for expensive ToOne relationships
190190
@@ -195,10 +195,8 @@ class Type(Enum):
195195
ToMany = auto()
196196

197197
@staticmethod
198-
def ToOne(*args, precompute=False):
199-
return Relationship(Relationship.Type.ToOne,
200-
*args,
201-
precompute=precompute)
198+
def ToOne(*args, cache=False):
199+
return Relationship(Relationship.Type.ToOne, *args, cache=cache)
202200

203201
@staticmethod
204202
def ToMany(*args):
@@ -210,11 +208,11 @@ def __init__(self,
210208
filter_deleted=True,
211209
name=None,
212210
graphql_name=None,
213-
precompute=False):
211+
cache=False):
214212
self.relationship_type = relationship_type
215213
self.destination_type_name = destination_type_name
216214
self.filter_deleted = filter_deleted
217-
self.precompute = precompute
215+
self.cache = cache
218216

219217
if name is None:
220218
name = utils.snake_case(destination_type_name) + (

labelbox/schema/invite.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
from dataclasses import dataclass
2-
from typing import Optional
3-
from datetime import datetime
42

53
from labelbox.orm.db_object import DbObject, beta
64
from labelbox.orm.model import Field

labelbox/schema/organization.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
from typing import Any, Dict, List, Optional
1+
from typing import List, Optional
22

33
from labelbox.exceptions import LabelboxError
44
from labelbox import utils
5-
from labelbox.pagination import PaginatedCollection
65
from labelbox.orm.db_object import DbObject, beta
76
from labelbox.orm.model import Field, Relationship
87
from labelbox.schema.invite import Invite, InviteLimit, ProjectRole

labelbox/schema/project.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,10 @@
99

1010
from labelbox import utils
1111
from labelbox.schema.data_row import DataRow
12-
from labelbox.schema.invite import Invite
1312
from labelbox.orm import query
1413
from labelbox.schema.bulk_import_request import BulkImportRequest
1514
from labelbox.exceptions import InvalidQueryError
16-
from labelbox.orm.db_object import DbObject, Updateable, Deletable, beta
15+
from labelbox.orm.db_object import DbObject, Updateable, Deletable
1716
from labelbox.orm.model import Entity, Field, Relationship
1817
from labelbox.pagination import PaginatedCollection
1918

@@ -630,8 +629,8 @@ def _is_url_valid(url: Union[str, Path]) -> bool:
630629

631630

632631
class ProjectMember(DbObject):
633-
user = Relationship.ToOne("User", precompute=True)
634-
role = Relationship.ToOne("Role", precompute=True)
632+
user = Relationship.ToOne("User", cache=True)
633+
role = Relationship.ToOne("Role", cache=True)
635634

636635

637636
class LabelingParameterOverride(DbObject):

labelbox/schema/role.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,5 +68,5 @@ class UserRole(Role):
6868

6969
@dataclass
7070
class ProjectRole:
71-
project: "Project"
71+
project: Project
7272
role: Role

tests/integration/conftest.py

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
11
from collections import namedtuple
22
from enum import Enum
33
from datetime import datetime
4-
from labelbox.orm.model import Entity
5-
from labelbox.orm.query import Query, results_query_part
6-
from labelbox.schema.invite import Invite
7-
from labelbox.pagination import PaginatedCollection
8-
import os
94
from random import randint
10-
import re
115
from string import ascii_letters
6+
import os
7+
import re
128

139
import pytest
1410

11+
from labelbox.orm.query import results_query_part
12+
from labelbox.schema.invite import Invite
13+
from labelbox.pagination import PaginatedCollection
1514
from labelbox.schema.user import User
1615
from labelbox import Client
1716

@@ -49,15 +48,19 @@ def testing_api_key(environ: str) -> str:
4948
return os.environ["LABELBOX_TEST_API_KEY_PROD"]
5049
return os.environ["LABELBOX_TEST_API_KEY_STAGING"]
5150

51+
5252
def beta_endpoint(fn):
53-
def beta(client,*args, **kwargs):
53+
54+
def beta(client, *args, **kwargs):
5455
try:
5556
client.endpoint = client.endpoint.replace("/graphql", "/_gql")
56-
return fn(client, *args, **kwargs)
57+
return fn(client, *args, **kwargs)
5758
finally:
5859
client.endpoint = client.endpoint.replace("/_gql", "/graphql")
60+
5961
return beta
6062

63+
6164
@beta_endpoint
6265
def cancel_invite(client, invite_id):
6366
"""
@@ -67,6 +70,7 @@ def cancel_invite(client, invite_id):
6770
cancelInvite(where: $where) {id}}"""
6871
client.execute(query_str, {'where': {'id': invite_id}})
6972

73+
7074
@beta_endpoint
7175
def get_project_invites(client, project_id):
7276
"""
@@ -78,11 +82,13 @@ def get_project_invites(client, project_id):
7882
invites(from: $from, first: $first) { nodes { %s
7983
projectInvites { projectId projectRoleName } } nextCursor}}}
8084
""" % (id_param, id_param, results_query_part(Invite))
81-
return list(PaginatedCollection(
82-
client,
83-
query_str, {id_param: project_id}, ['project', 'invites', 'nodes'],
84-
Invite,
85-
cursor_path=['project', 'invites', 'nextCursor']))
85+
return list(
86+
PaginatedCollection(client,
87+
query_str, {id_param: project_id},
88+
['project', 'invites', 'nodes'],
89+
Invite,
90+
cursor_path=['project', 'invites', 'nextCursor']))
91+
8692

8793
@beta_endpoint
8894
def get_invites(client):
@@ -93,11 +99,13 @@ def get_invites(client):
9399
organization { id invites(from: $from, first: $first) {
94100
nodes { id createdAt organizationRoleName inviteeEmail } nextCursor }}}"""
95101
invites = PaginatedCollection(
96-
client,
97-
query_str, {}, ['organization', 'invites', 'nodes'],
98-
Invite,
99-
cursor_path=['organization', 'invites', 'nextCursor'])
100-
return list(invites) # list() so that it makes the request to the right endpoint.
102+
client,
103+
query_str, {}, ['organization', 'invites', 'nodes'],
104+
Invite,
105+
cursor_path=['organization', 'invites', 'nextCursor'])
106+
return list(
107+
invites) # list() so that it makes the request to the right endpoint.
108+
101109

102110
class IntegrationClient(Client):
103111

@@ -188,6 +196,7 @@ def organization(client):
188196
if "@labelbox.com" in invite.email:
189197
cancel_invite(client, invite.uid)
190198

199+
191200
@pytest.fixture
192201
def project_based_user(client, rand_gen):
193202
email = rand_gen(str)
@@ -211,6 +220,7 @@ def project_based_user(client, rand_gen):
211220
yield user
212221
client.get_organization().remove_user(user)
213222

223+
214224
@pytest.fixture
215225
def project_pack(client):
216226
projects = [

tests/integration/test_user_management.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
from labelbox import ProjectRole
55

66

7-
87
def test_org_invite(client, organization, environ):
98
role = client.get_roles()['LABELER']
109
dummy_email = "none@labelbox.com"
@@ -23,7 +22,7 @@ def test_org_invite(client, organization, environ):
2322
# One user added
2423
assert invite_limit.remaining - invite_limit_after.remaining == 1
2524
# An invite shouldn't effect the user count until after it is accepted
26-
25+
2726
outstanding_invites = get_invites(client)
2827
in_list = False
2928
for invite in outstanding_invites:

0 commit comments

Comments
 (0)