Skip to content

Commit 6e2765b

Browse files
Add conversational class
1 parent f897c59 commit 6e2765b

File tree

6 files changed

+142
-0
lines changed

6 files changed

+142
-0
lines changed

.gitignore

+4
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,9 @@ sdk/diffgram/utils/__pycache__/
3131

3232
venv/*
3333

34+
diffgram.egg-info
35+
36+
playground.py
37+
3438
sdk/build/*
3539
sdk/dist/

sdk/diffgram/core/core.py

+4
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
from diffgram.brain.train import Train
1717
from diffgram.export.export import Export
1818
from diffgram.task.task import Task
19+
from diffgram.schema.schema import Schema
20+
from diffgram.schema.attribute import Attribute
1921
from requests.auth import HTTPBasicAuth
2022

2123

@@ -86,6 +88,8 @@ def __init__(
8688

8789
self.label_schema_list = self.get_label_schema_list()
8890

91+
self.schema = Schema(self)
92+
self.attribute = Attribute(self)
8993

9094

9195
def get_member_list(self):

sdk/diffgram/file/conversational.py

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
from .compound_file import CompoundFile
2+
3+
class Conversational:
4+
def __init__(self, project, name):
5+
self.parent = CompoundFile(
6+
project=project,
7+
name=name,
8+
directory_id=project.default_directory.id
9+
)
10+
11+
self.messgaes_meta = []
12+
13+
def add_message(self, message_file, author=None, time=None, date=None):
14+
message_meta = {
15+
"author": author,
16+
"time": time,
17+
"date": date
18+
}
19+
20+
self.messgaes_meta.append(message_meta)
21+
22+
self.parent.add_child_from_local(path=message_file, ordinal=len(self.messgaes_meta))
23+
24+
def upload(self):
25+
self.parent.upload()

sdk/diffgram/schema/__init__.py

Whitespace-only changes.

sdk/diffgram/schema/attribute.py

+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
class Attribute:
2+
def __init__(self, project):
3+
self.project = project
4+
5+
def list(self, schema):
6+
url = f'/api/v1/project/{self.project.project_string_id}/attribute/template/list'
7+
payload = {
8+
"schema_id": schema['id'],
9+
"mode": "from_project"
10+
}
11+
12+
response = self.project.session.post(url = self.project.host + url, json=payload)
13+
14+
self.project.handle_errors(response)
15+
data = response.json()
16+
17+
return data
18+
19+
def new(self, schema):
20+
url = f'/api/v1/project/{self.project.project_string_id}/attribute/group/new'
21+
payload = {
22+
"schema_id": schema['id']
23+
}
24+
25+
response = self.project.session.post(url = self.project.host + url, json=payload)
26+
27+
self.project.handle_errors(response)
28+
data = response.json()
29+
30+
return data
31+
32+
def update(self,
33+
attribute,
34+
prompt,
35+
kind,
36+
is_global = False,
37+
label_file_list = None,
38+
global_type = 'file'
39+
):
40+
url = f'/api/v1/project/{self.project.project_string_id}/attribute/group/update'
41+
payload = {
42+
"group_id": attribute['attribute_template_group']['id'],
43+
"mode": "UPDATE",
44+
"prompt": prompt,
45+
"kind": kind,
46+
"is_global": is_global,
47+
"label_file_list": label_file_list,
48+
"global_type": global_type
49+
}
50+
51+
response = self.project.session.post(url = self.project.host + url, json=payload)
52+
53+
self.project.handle_errors(response)
54+
data = response.json()
55+
56+
return data
57+
58+
def add_options(self, attribute, options):
59+
pass
60+
61+

sdk/diffgram/schema/schema.py

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
class Schema:
2+
def __init__(self, project):
3+
self.project = project
4+
5+
def list(self):
6+
url = f'/api/v1/project/{self.project.project_string_id}/labels-schema'
7+
response = self.project.session.get(url = self.project.host + url)
8+
self.project.handle_errors(response)
9+
data = response.json()
10+
11+
return data
12+
13+
def default_schema(self):
14+
url = f'/api/v1/project/{self.project.project_string_id}/labels-schema'
15+
response = self.project.session.get(url = self.project.host + url)
16+
self.project.handle_errors(response)
17+
data = response.json()
18+
19+
default_schema = None
20+
21+
for schema in data:
22+
if schema['is_default'] == True:
23+
default_schema = schema
24+
25+
return default_schema
26+
27+
28+
def new(self, name):
29+
url = f'/api/v1/project/{self.project.project_string_id}/labels-schema/new'
30+
payload = {
31+
"name": name
32+
}
33+
34+
response = self.project.session.post(url = self.project.host + url, json=payload)
35+
36+
self.project.handle_errors(response)
37+
data = response.json()
38+
39+
return data
40+
41+
def update(self, name):
42+
#Todo
43+
pass
44+
45+
def archive(self, name):
46+
#Todo
47+
pass
48+

0 commit comments

Comments
 (0)