Skip to content

Commit d181d0f

Browse files
author
Matt Sokoloff
committed
add support for attachments
1 parent 898b471 commit d181d0f

File tree

3 files changed

+25
-6
lines changed

3 files changed

+25
-6
lines changed

labelbox/orm/model.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,8 @@ def DateTime(*args):
104104
return Field(Field.Type.DateTime, *args)
105105

106106
@staticmethod
107-
def Enum(enum_cls: type, *args, **kwargs):
108-
return Field(Field.EnumType(enum_cls), *args, **kwargs)
107+
def Enum(enum_cls: type, *args):
108+
return Field(Field.EnumType(enum_cls), *args)
109109

110110
@staticmethod
111111
def Json(*args):

labelbox/schema/data_row.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ class DataRow(DbObject, Updateable, BulkDeletable):
4949
name="metadata",
5050
graphql_name="customMetadata",
5151
result_subquery="customMetadata { schemaId value }")
52-
media_type = Field.Enum(MediaType, "media_type", result_subquery="")
5352

5453
# Relationships
5554
dataset = Relationship.ToOne("Dataset")
@@ -67,7 +66,6 @@ def __init__(self, *args, **kwargs):
6766
self.attachments.supports_sorting = False
6867

6968
def _set_field_values(self, field_values):
70-
field_values.update({'mediaType': MediaType.Unknown})
7169
super()._set_field_values(field_values)
7270

7371
@staticmethod

labelbox/schema/dataset.py

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
from labelbox.exceptions import InvalidQueryError, LabelboxError, ResourceNotFoundError, InvalidAttributeError
1616
from labelbox.orm.db_object import DbObject, Updateable, Deletable
1717
from labelbox.orm.model import Entity, Field, Relationship
18+
from labelbox.orm import query
1819
from labelbox.exceptions import MalformedQueryException
1920

2021
if TYPE_CHECKING:
@@ -102,15 +103,35 @@ def convert_field_keys(items):
102103
elif os.path.exists(row_data):
103104
# If row data is a local file path, upload it to server.
104105
args[DataRow.row_data.name] = self.client.upload_file(row_data)
105-
args[DataRow.dataset.name] = self
106106

107107
# Parse metadata fields, if they are provided
108108
if DataRow.metadata_fields.name in args:
109109
mdo = self.client.get_data_row_metadata_ontology()
110110
args[DataRow.metadata_fields.name] = mdo.parse_upsert_metadata(
111111
args[DataRow.metadata_fields.name])
112112

113-
return self.client._create(DataRow, args)
113+
query_str = """mutation CreateDataRowPyApi(
114+
$row_data: String!,
115+
$metadata_fields: [DataRowCustomMetadataUpsertInput!]!,
116+
$attachments: [DataRowAttachmentInput!],
117+
$media_type : MediaType,
118+
$dataset: ID!
119+
){
120+
createDataRow(
121+
data:
122+
{
123+
rowData: $row_data
124+
mediaType: $media_type
125+
metadataFields: $metadata_fields
126+
attachments: $attachments
127+
dataset: {connect: {id: $dataset}}
128+
}
129+
)
130+
{%s}
131+
}
132+
""" % query.results_query_part(Entity.DataRow)
133+
res = self.client.execute(query_str, {**args, 'dataset': self.uid})
134+
return DataRow(self.client, res['createDataRow'])
114135

115136
def create_data_rows_sync(self, items) -> None:
116137
""" Synchronously bulk upload data rows.

0 commit comments

Comments
 (0)