structifyai 1.176.1__py3-none-any.whl → 1.177.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
structify/_version.py CHANGED
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "structify"
4
- __version__ = "1.176.1" # x-release-please-version
4
+ __version__ = "1.177.0" # x-release-please-version
@@ -44,13 +44,13 @@ from .._response import (
44
44
  from .._base_client import make_request_options
45
45
  from ..types.workflow_dag import WorkflowDag
46
46
  from ..types.autofix_context import AutofixContext
47
+ from ..types.dashboard_param import DashboardParam
47
48
  from ..types.edge_spec_param import EdgeSpecParam
48
49
  from ..types.node_spec_param import NodeSpecParam
49
50
  from ..types.workflow_session import WorkflowSession
50
51
  from ..types.get_node_response import GetNodeResponse
51
52
  from ..types.finalize_dag_response import FinalizeDagResponse
52
53
  from ..types.workflow_session_node import WorkflowSessionNode
53
- from ..types.dashboard_layout_param import DashboardLayoutParam
54
54
  from ..types.get_node_logs_response import GetNodeLogsResponse
55
55
  from ..types.session_kill_jobs_response import SessionKillJobsResponse
56
56
  from ..types.session_get_events_response import SessionGetEventsResponse
@@ -156,7 +156,7 @@ class SessionsResource(SyncAPIResource):
156
156
  *,
157
157
  edges: Iterable[EdgeSpecParam],
158
158
  nodes: Iterable[NodeSpecParam],
159
- dashboard_layout: Optional[DashboardLayoutParam] | Omit = omit,
159
+ dashboard_layout: Optional[DashboardParam] | Omit = omit,
160
160
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
161
161
  # The extra values given here take precedence over values defined on the client or passed to this method.
162
162
  extra_headers: Headers | None = None,
@@ -169,6 +169,9 @@ class SessionsResource(SyncAPIResource):
169
169
  ready
170
170
 
171
171
  Args:
172
+ dashboard_layout: A page is the top-level container with title/description Can contain multiple
173
+ dashboards with different datasets
174
+
172
175
  extra_headers: Send extra headers
173
176
 
174
177
  extra_query: Add additional query parameters to the request
@@ -611,7 +614,7 @@ class SessionsResource(SyncAPIResource):
611
614
  self,
612
615
  session_id: str,
613
616
  *,
614
- layout: DashboardLayoutParam,
617
+ layout: DashboardParam,
615
618
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
616
619
  # The extra values given here take precedence over values defined on the client or passed to this method.
617
620
  extra_headers: Headers | None = None,
@@ -621,6 +624,9 @@ class SessionsResource(SyncAPIResource):
621
624
  ) -> WorkflowSession:
622
625
  """
623
626
  Args:
627
+ layout: A page is the top-level container with title/description Can contain multiple
628
+ dashboards with different datasets
629
+
624
630
  extra_headers: Send extra headers
625
631
 
626
632
  extra_query: Add additional query parameters to the request
@@ -823,7 +829,7 @@ class AsyncSessionsResource(AsyncAPIResource):
823
829
  *,
824
830
  edges: Iterable[EdgeSpecParam],
825
831
  nodes: Iterable[NodeSpecParam],
826
- dashboard_layout: Optional[DashboardLayoutParam] | Omit = omit,
832
+ dashboard_layout: Optional[DashboardParam] | Omit = omit,
827
833
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
828
834
  # The extra values given here take precedence over values defined on the client or passed to this method.
829
835
  extra_headers: Headers | None = None,
@@ -836,6 +842,9 @@ class AsyncSessionsResource(AsyncAPIResource):
836
842
  ready
837
843
 
838
844
  Args:
845
+ dashboard_layout: A page is the top-level container with title/description Can contain multiple
846
+ dashboards with different datasets
847
+
839
848
  extra_headers: Send extra headers
840
849
 
841
850
  extra_query: Add additional query parameters to the request
@@ -1278,7 +1287,7 @@ class AsyncSessionsResource(AsyncAPIResource):
1278
1287
  self,
1279
1288
  session_id: str,
1280
1289
  *,
1281
- layout: DashboardLayoutParam,
1290
+ layout: DashboardParam,
1282
1291
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
1283
1292
  # The extra values given here take precedence over values defined on the client or passed to this method.
1284
1293
  extra_headers: Headers | None = None,
@@ -1288,6 +1297,9 @@ class AsyncSessionsResource(AsyncAPIResource):
1288
1297
  ) -> WorkflowSession:
1289
1298
  """
1290
1299
  Args:
1300
+ layout: A page is the top-level container with title/description Can contain multiple
1301
+ dashboards with different datasets
1302
+
1291
1303
  extra_headers: Send extra headers
1292
1304
 
1293
1305
  extra_query: Add additional query parameters to the request
@@ -12,6 +12,7 @@ from .project import Project as Project
12
12
  from .sandbox import Sandbox as Sandbox
13
13
  from .strategy import Strategy as Strategy
14
14
  from .connector import Connector as Connector
15
+ from .dashboard import Dashboard as Dashboard
15
16
  from .team_role import TeamRole as TeamRole
16
17
  from .user_info import UserInfo as UserInfo
17
18
  from .chat_event import ChatEvent as ChatEvent
@@ -29,6 +30,7 @@ from .workflow_dag import WorkflowDag as WorkflowDag
29
30
  from .chat_template import ChatTemplate as ChatTemplate
30
31
  from .property_type import PropertyType as PropertyType
31
32
  from .tool_metadata import ToolMetadata as ToolMetadata
33
+ from .dashboard_page import DashboardPage as DashboardPage
32
34
  from .job_event_body import JobEventBody as JobEventBody
33
35
  from .project_member import ProjectMember as ProjectMember
34
36
  from .strategy_param import StrategyParam as StrategyParam
@@ -38,6 +40,7 @@ from .token_response import TokenResponse as TokenResponse
38
40
  from .autofix_context import AutofixContext as AutofixContext
39
41
  from .chat_dependency import ChatDependency as ChatDependency
40
42
  from .chat_visibility import ChatVisibility as ChatVisibility
43
+ from .dashboard_param import DashboardParam as DashboardParam
41
44
  from .edge_spec_param import EdgeSpecParam as EdgeSpecParam
42
45
  from .exploration_run import ExplorationRun as ExplorationRun
43
46
  from .job_list_params import JobListParams as JobListParams
@@ -46,7 +49,6 @@ from .node_spec_param import NodeSpecParam as NodeSpecParam
46
49
  from .tool_invocation import ToolInvocation as ToolInvocation
47
50
  from .usage_group_key import UsageGroupKey as UsageGroupKey
48
51
  from .chat_copy_params import ChatCopyParams as ChatCopyParams
49
- from .dashboard_layout import DashboardLayout as DashboardLayout
50
52
  from .save_requirement import SaveRequirement as SaveRequirement
51
53
  from .workflow_session import WorkflowSession as WorkflowSession
52
54
  from .chat_session_role import ChatSessionRole as ChatSessionRole
@@ -95,6 +97,7 @@ from .user_usage_response import UserUsageResponse as UserUsageResponse
95
97
  from .workflow_run_params import WorkflowRunParams as WorkflowRunParams
96
98
  from .connector_table_info import ConnectorTableInfo as ConnectorTableInfo
97
99
  from .create_team_response import CreateTeamResponse as CreateTeamResponse
100
+ from .dashboard_page_param import DashboardPageParam as DashboardPageParam
98
101
  from .dataset_get_response import DatasetGetResponse as DatasetGetResponse
99
102
  from .dataset_match_params import DatasetMatchParams as DatasetMatchParams
100
103
  from .delete_team_response import DeleteTeamResponse as DeleteTeamResponse
@@ -133,7 +136,6 @@ from .chat_load_files_params import ChatLoadFilesParams as ChatLoadFilesParams
133
136
  from .connector_get_response import ConnectorGetResponse as ConnectorGetResponse
134
137
  from .connector_with_secrets import ConnectorWithSecrets as ConnectorWithSecrets
135
138
  from .credits_usage_response import CreditsUsageResponse as CreditsUsageResponse
136
- from .dashboard_layout_param import DashboardLayoutParam as DashboardLayoutParam
137
139
  from .dataset_match_response import DatasetMatchResponse as DatasetMatchResponse
138
140
  from .document_delete_params import DocumentDeleteParams as DocumentDeleteParams
139
141
  from .document_list_response import DocumentListResponse as DocumentListResponse
@@ -0,0 +1,24 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+
5
+ from .._models import BaseModel
6
+ from .dashboard_page import DashboardPage
7
+
8
+ __all__ = ["Dashboard"]
9
+
10
+
11
+ class Dashboard(BaseModel):
12
+ """
13
+ A page is the top-level container with title/description
14
+ Can contain multiple dashboards with different datasets
15
+ """
16
+
17
+ dashboards: List[DashboardPage]
18
+ """One or more dashboards on this page"""
19
+
20
+ title: str
21
+ """Page title"""
22
+
23
+ description: Optional[str] = None
24
+ """Optional page description"""
@@ -1,17 +1,61 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
- from typing import Optional
3
+ from typing import Dict, List, Union, Optional
4
+ from typing_extensions import TypeAlias
5
+
6
+ from pydantic import Field as FieldInfo
4
7
 
5
8
  from .._models import BaseModel
6
9
 
7
- __all__ = ["DashboardComponent"]
10
+ __all__ = ["DashboardComponent", "Mosaic", "MosaicFields", "MosaicFieldsUnionMember2", "MosaicBin"]
11
+
12
+
13
+ class MosaicFieldsUnionMember2(BaseModel):
14
+ expr: str
15
+
16
+ target: Optional[str] = None
17
+ """Optional Plotly property path (e.g., marker.color) to assign this column to"""
18
+
19
+
20
+ MosaicFields: TypeAlias = Union[str, bool, MosaicFieldsUnionMember2]
21
+
22
+
23
+ class MosaicBin(BaseModel):
24
+ as_: str = FieldInfo(alias="as")
25
+
26
+ field: str
27
+
28
+ step: float
29
+
30
+
31
+ class Mosaic(BaseModel):
32
+ fields: Dict[str, MosaicFields]
33
+
34
+ bin: Optional[MosaicBin] = None
35
+
36
+ group_by: Optional[List[str]] = FieldInfo(alias="groupBy", default=None)
37
+
38
+ limit: Optional[int] = None
39
+
40
+ order_by: Optional[str] = FieldInfo(alias="orderBy", default=None)
41
+
42
+ table: Optional[str] = None
43
+ """Table name - optional, derived from datasetNodeName in dashboard config"""
8
44
 
9
45
 
10
46
  class DashboardComponent(BaseModel):
47
+ """A component references a viz node and optionally includes mosaic metadata"""
48
+
11
49
  node_name: str
50
+ """Function name of the viz node that outputs the chart spec"""
12
51
 
13
52
  title: str
53
+ """Display title (overrides viz node title)"""
14
54
 
15
55
  description: Optional[str] = None
56
+ """Description (optional, can override viz node's description)"""
57
+
58
+ mosaic: Optional[Mosaic] = None
16
59
 
17
60
  span: Optional[int] = None
61
+ """Grid span: 1 (quarter), 2 (half), 3 (three-quarters), 4 (full width)"""
@@ -2,17 +2,67 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Optional
6
- from typing_extensions import Required, TypedDict
5
+ from typing import Dict, Union, Optional
6
+ from typing_extensions import Required, Annotated, TypeAlias, TypedDict
7
7
 
8
- __all__ = ["DashboardComponentParam"]
8
+ from .._types import SequenceNotStr
9
+ from .._utils import PropertyInfo
10
+
11
+ __all__ = ["DashboardComponentParam", "Mosaic", "MosaicFields", "MosaicFieldsUnionMember2", "MosaicBin"]
12
+
13
+
14
+ class MosaicFieldsUnionMember2(TypedDict, total=False):
15
+ expr: Required[str]
16
+
17
+ target: Optional[str]
18
+ """Optional Plotly property path (e.g., marker.color) to assign this column to"""
19
+
20
+
21
+ MosaicFields: TypeAlias = Union[str, bool, MosaicFieldsUnionMember2]
22
+
23
+ _MosaicBinReservedKeywords = TypedDict(
24
+ "_MosaicBinReservedKeywords",
25
+ {
26
+ "as": str,
27
+ },
28
+ total=False,
29
+ )
30
+
31
+
32
+ class MosaicBin(_MosaicBinReservedKeywords, total=False):
33
+ field: Required[str]
34
+
35
+ step: Required[float]
36
+
37
+
38
+ class Mosaic(TypedDict, total=False):
39
+ fields: Required[Dict[str, MosaicFields]]
40
+
41
+ bin: Optional[MosaicBin]
42
+
43
+ group_by: Annotated[Optional[SequenceNotStr[str]], PropertyInfo(alias="groupBy")]
44
+
45
+ limit: Optional[int]
46
+
47
+ order_by: Annotated[Optional[str], PropertyInfo(alias="orderBy")]
48
+
49
+ table: Optional[str]
50
+ """Table name - optional, derived from datasetNodeName in dashboard config"""
9
51
 
10
52
 
11
53
  class DashboardComponentParam(TypedDict, total=False):
54
+ """A component references a viz node and optionally includes mosaic metadata"""
55
+
12
56
  node_name: Required[str]
57
+ """Function name of the viz node that outputs the chart spec"""
13
58
 
14
59
  title: Required[str]
60
+ """Display title (overrides viz node title)"""
15
61
 
16
62
  description: Optional[str]
63
+ """Description (optional, can override viz node's description)"""
64
+
65
+ mosaic: Optional[Mosaic]
17
66
 
18
67
  span: Optional[int]
68
+ """Grid span: 1 (quarter), 2 (half), 3 (three-quarters), 4 (full width)"""
@@ -0,0 +1,108 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Union, Optional
4
+ from typing_extensions import Literal, Annotated, TypeAlias
5
+
6
+ from pydantic import Field as FieldInfo
7
+
8
+ from .._utils import PropertyInfo
9
+ from .._models import BaseModel
10
+ from .dashboard_component import DashboardComponent
11
+
12
+ __all__ = [
13
+ "DashboardPage",
14
+ "Control",
15
+ "ControlDropdown",
16
+ "ControlDropdownOption",
17
+ "ControlRange",
18
+ "ControlCheckbox",
19
+ "ControlCheckboxOption",
20
+ ]
21
+
22
+
23
+ class ControlDropdownOption(BaseModel):
24
+ label: str
25
+
26
+ value: str
27
+
28
+
29
+ class ControlDropdown(BaseModel):
30
+ id: str
31
+
32
+ field: str
33
+
34
+ label: str
35
+
36
+ options: List[ControlDropdownOption]
37
+
38
+ type: Literal["dropdown"]
39
+
40
+ default_value: Optional[str] = None
41
+
42
+
43
+ class ControlRange(BaseModel):
44
+ id: str
45
+
46
+ field: str
47
+
48
+ label: str
49
+
50
+ max: float
51
+
52
+ min: float
53
+
54
+ type: Literal["range"]
55
+
56
+ default_value: Optional[List[float]] = None
57
+
58
+ step: Optional[float] = None
59
+
60
+
61
+ class ControlCheckboxOption(BaseModel):
62
+ label: str
63
+
64
+ value: str
65
+
66
+
67
+ class ControlCheckbox(BaseModel):
68
+ id: str
69
+
70
+ field: str
71
+
72
+ label: str
73
+
74
+ options: List[ControlCheckboxOption]
75
+
76
+ type: Literal["checkbox"]
77
+
78
+ default_value: Optional[List[str]] = None
79
+
80
+
81
+ Control: TypeAlias = Annotated[
82
+ Union[ControlDropdown, ControlRange, ControlCheckbox], PropertyInfo(discriminator="type")
83
+ ]
84
+
85
+
86
+ class DashboardPage(BaseModel):
87
+ """
88
+ A dashboard groups components that share a common dataset.
89
+ If dataset_node_name is None, components render static viz without Mosaic cross-filtering.
90
+ """
91
+
92
+ components: List[DashboardComponent]
93
+ """Components (charts) in this dashboard"""
94
+
95
+ title: str
96
+ """Title for this dashboard section"""
97
+
98
+ controls: Optional[List[Control]] = None
99
+ """Control filters (dropdowns, checkboxes, ranges) for this dashboard"""
100
+
101
+ dataset_node_name: Optional[str] = FieldInfo(alias="datasetNodeName", default=None)
102
+ """
103
+ Function name of the node that returns the dataset (DataFrame/Parquet). If None,
104
+ no cross-filtering is available.
105
+ """
106
+
107
+ description: Optional[str] = None
108
+ """Optional description"""
@@ -0,0 +1,106 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Union, Iterable, Optional
6
+ from typing_extensions import Literal, Required, Annotated, TypeAlias, TypedDict
7
+
8
+ from .._types import SequenceNotStr
9
+ from .._utils import PropertyInfo
10
+ from .dashboard_component_param import DashboardComponentParam
11
+
12
+ __all__ = [
13
+ "DashboardPageParam",
14
+ "Control",
15
+ "ControlDropdown",
16
+ "ControlDropdownOption",
17
+ "ControlRange",
18
+ "ControlCheckbox",
19
+ "ControlCheckboxOption",
20
+ ]
21
+
22
+
23
+ class ControlDropdownOption(TypedDict, total=False):
24
+ label: Required[str]
25
+
26
+ value: Required[str]
27
+
28
+
29
+ class ControlDropdown(TypedDict, total=False):
30
+ id: Required[str]
31
+
32
+ field: Required[str]
33
+
34
+ label: Required[str]
35
+
36
+ options: Required[Iterable[ControlDropdownOption]]
37
+
38
+ type: Required[Literal["dropdown"]]
39
+
40
+ default_value: Optional[str]
41
+
42
+
43
+ class ControlRange(TypedDict, total=False):
44
+ id: Required[str]
45
+
46
+ field: Required[str]
47
+
48
+ label: Required[str]
49
+
50
+ max: Required[float]
51
+
52
+ min: Required[float]
53
+
54
+ type: Required[Literal["range"]]
55
+
56
+ default_value: Optional[Iterable[float]]
57
+
58
+ step: Optional[float]
59
+
60
+
61
+ class ControlCheckboxOption(TypedDict, total=False):
62
+ label: Required[str]
63
+
64
+ value: Required[str]
65
+
66
+
67
+ class ControlCheckbox(TypedDict, total=False):
68
+ id: Required[str]
69
+
70
+ field: Required[str]
71
+
72
+ label: Required[str]
73
+
74
+ options: Required[Iterable[ControlCheckboxOption]]
75
+
76
+ type: Required[Literal["checkbox"]]
77
+
78
+ default_value: Optional[SequenceNotStr[str]]
79
+
80
+
81
+ Control: TypeAlias = Union[ControlDropdown, ControlRange, ControlCheckbox]
82
+
83
+
84
+ class DashboardPageParam(TypedDict, total=False):
85
+ """
86
+ A dashboard groups components that share a common dataset.
87
+ If dataset_node_name is None, components render static viz without Mosaic cross-filtering.
88
+ """
89
+
90
+ components: Required[Iterable[DashboardComponentParam]]
91
+ """Components (charts) in this dashboard"""
92
+
93
+ title: Required[str]
94
+ """Title for this dashboard section"""
95
+
96
+ controls: Optional[Iterable[Control]]
97
+ """Control filters (dropdowns, checkboxes, ranges) for this dashboard"""
98
+
99
+ dataset_node_name: Annotated[Optional[str], PropertyInfo(alias="datasetNodeName")]
100
+ """
101
+ Function name of the node that returns the dataset (DataFrame/Parquet). If None,
102
+ no cross-filtering is available.
103
+ """
104
+
105
+ description: Optional[str]
106
+ """Optional description"""
@@ -0,0 +1,26 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Iterable, Optional
6
+ from typing_extensions import Required, TypedDict
7
+
8
+ from .dashboard_page_param import DashboardPageParam
9
+
10
+ __all__ = ["DashboardParam"]
11
+
12
+
13
+ class DashboardParam(TypedDict, total=False):
14
+ """
15
+ A page is the top-level container with title/description
16
+ Can contain multiple dashboards with different datasets
17
+ """
18
+
19
+ dashboards: Required[Iterable[DashboardPageParam]]
20
+ """One or more dashboards on this page"""
21
+
22
+ title: Required[str]
23
+ """Page title"""
24
+
25
+ description: Optional[str]
26
+ """Optional page description"""
@@ -5,9 +5,9 @@ from __future__ import annotations
5
5
  from typing import Iterable, Optional
6
6
  from typing_extensions import Required, TypedDict
7
7
 
8
+ from .dashboard_param import DashboardParam
8
9
  from .edge_spec_param import EdgeSpecParam
9
10
  from .node_spec_param import NodeSpecParam
10
- from .dashboard_layout_param import DashboardLayoutParam
11
11
 
12
12
  __all__ = ["SessionFinalizeDagParams"]
13
13
 
@@ -17,4 +17,8 @@ class SessionFinalizeDagParams(TypedDict, total=False):
17
17
 
18
18
  nodes: Required[Iterable[NodeSpecParam]]
19
19
 
20
- dashboard_layout: Optional[DashboardLayoutParam]
20
+ dashboard_layout: Optional[DashboardParam]
21
+ """
22
+ A page is the top-level container with title/description Can contain multiple
23
+ dashboards with different datasets
24
+ """
@@ -4,10 +4,14 @@ from __future__ import annotations
4
4
 
5
5
  from typing_extensions import Required, TypedDict
6
6
 
7
- from .dashboard_layout_param import DashboardLayoutParam
7
+ from .dashboard_param import DashboardParam
8
8
 
9
9
  __all__ = ["SessionUploadDashboardLayoutParams"]
10
10
 
11
11
 
12
12
  class SessionUploadDashboardLayoutParams(TypedDict, total=False):
13
- layout: Required[DashboardLayoutParam]
13
+ layout: Required[DashboardParam]
14
+ """
15
+ A page is the top-level container with title/description Can contain multiple
16
+ dashboards with different datasets
17
+ """
@@ -4,7 +4,7 @@ from typing import List, Optional
4
4
  from datetime import datetime
5
5
 
6
6
  from .._models import BaseModel
7
- from .dashboard_layout import DashboardLayout
7
+ from .dashboard import Dashboard
8
8
  from .workflow_session_edge import WorkflowSessionEdge
9
9
  from .workflow_session_node import WorkflowSessionNode
10
10
 
@@ -24,7 +24,11 @@ class WorkflowDag(BaseModel):
24
24
 
25
25
  dag_ready_at: Optional[datetime] = None
26
26
 
27
- dashboard_layout: Optional[DashboardLayout] = None
27
+ dashboard_layout: Optional[Dashboard] = None
28
+ """
29
+ A page is the top-level container with title/description Can contain multiple
30
+ dashboards with different datasets
31
+ """
28
32
 
29
33
  error: Optional[str] = None
30
34
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: structifyai
3
- Version: 1.176.1
3
+ Version: 1.177.0
4
4
  Summary: The official Python library for the structify API
5
5
  Project-URL: Homepage, https://github.com/StructifyAI/structify-python
6
6
  Project-URL: Repository, https://github.com/StructifyAI/structify-python
@@ -11,7 +11,7 @@ structify/_resource.py,sha256=tJi4pDQooQZ_zJwEwrLj-U-ye2hC-cbmr1GzIwCT10Y,1118
11
11
  structify/_response.py,sha256=RuNhMDiZUdPqEbmFJHDVI4FMPDszk8QjK9LVWm1Fagk,28806
12
12
  structify/_streaming.py,sha256=n4C9M7ITmANYn9LaWHNoqJdIIyF7svLco2qst7u3M7U,10233
13
13
  structify/_types.py,sha256=jj4p-m3vpUma0AdhPWIaljHZXeb4RKnrAusjVdpDy5Y,7597
14
- structify/_version.py,sha256=muAQHElBudUzLDa4haEdKoXXGJrRhqWRFTFcNJPqGRY,163
14
+ structify/_version.py,sha256=eU9JOmkhTHjI3x58Ff2ihBWGUwxnvrP8j_cONBsukgs,163
15
15
  structify/pagination.py,sha256=ycybhWcpKk4ztsMcCA6C0WZiJejGrSx6bSr8LLskJUY,4346
16
16
  structify/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
17
  structify/_utils/__init__.py,sha256=7fch0GT9zpNnErbciSpUNa-SjTxxjY6kxHxKMOM4AGs,2305
@@ -45,7 +45,7 @@ structify/resources/public_sessions.py,sha256=_JmssE0MMjeGdxT0FWtrkcceSV4skeEkVG
45
45
  structify/resources/sandbox.py,sha256=KgpZ623G6T_3_oovCgjlxO81M63NanMBAezVDdesOCc,12807
46
46
  structify/resources/scrape.py,sha256=vAEjjOqH0gVOlEs_JvHLMQ-W9zfF28vwdm45CCO2bSs,12119
47
47
  structify/resources/server.py,sha256=39G3yhj3NYWgnLq0PdS86lwDvXK6MIWAIl7G0ZLMJro,4934
48
- structify/resources/sessions.py,sha256=N_ilELx5tjeng3Lw6Laa-y548QegkEN7tZFuhopoWiE,66179
48
+ structify/resources/sessions.py,sha256=TWTnvSVuh_oIhXB2LCq9FP8gcwN1Sf_2kKmWX_jBoLs,66746
49
49
  structify/resources/slack.py,sha256=CSMW3Eo-XRjISvNOgAcGyBdnmI9SdkQplE0P0lqTnjM,13082
50
50
  structify/resources/sources.py,sha256=K5jLPKu3LNH5vKL9V1NQlHaG8UI982H74enN_cjdf-0,13181
51
51
  structify/resources/structure.py,sha256=jXcVdUuNc6Q-HwUhSDcsJONbBqRf_FcPAjNtjXYxrdo,33124
@@ -77,7 +77,7 @@ structify/resources/user/__init__.py,sha256=vkGsM7uGlBXVVwuEZlICVLlIY3F75n_MIMpm
77
77
  structify/resources/user/api_keys.py,sha256=LgKvDGkHPGIumWmEsPCA1XYAKNuRN48nqG6anv8AVHE,14331
78
78
  structify/resources/user/stripe.py,sha256=MazkGQ5VuNY7TxMPXxJULBVerMGmOXaEcXpfQsUYoNs,13574
79
79
  structify/resources/user/user.py,sha256=Hk8D5KB8in-A9eJSYFIosILz4HgSWDwDDAVIQeQ8Sew,25411
80
- structify/types/__init__.py,sha256=iysU4RCVpcamOqJTXjmk3wd4nFykazAxUpueJF3ONCw,28167
80
+ structify/types/__init__.py,sha256=VwDo_-l00XThTgU8EghjklOtSq5sJy8yKuS4FB9Y3MY,28263
81
81
  structify/types/accept_invitation_response.py,sha256=hWIn0Sscg7U0uOqoZA5SG8ENZQuM0tsbgOlrJbcW37s,260
82
82
  structify/types/add_member_response.py,sha256=_YjqwGpsfdR9Dw6SAQ99TveFSD8Hov1IjVPMH2KC3CM,882
83
83
  structify/types/admin_grant_access_response.py,sha256=xCPdmejgZs1oXOsfgbW-cYKZa8getHRotRnsCav5QPU,390
@@ -152,10 +152,12 @@ structify/types/create_match_jobs_response.py,sha256=2p2eTdkfSakQuqa3mVwUKd-VLBe
152
152
  structify/types/create_team_response.py,sha256=mx1zK2SVOkJhbMGn84U-ZLopAOJc5s7cEQIDD4Sxd_g,230
153
153
  structify/types/credits_usage_response.py,sha256=O9ts7pDvcLYq8ROfrjdoNoKjITGdpYECNTOGIMxXgsQ,395
154
154
  structify/types/credits_usage_timeseries_point.py,sha256=YYlcuWQtsuYspxEy3Upxa4p81ERaP0KRWpVpIJxdsQ8,320
155
- structify/types/dashboard_component.py,sha256=ZNSvKp3TD8syR-VlumQbJseqVWIxrYD1tM-WEwxwbts,327
156
- structify/types/dashboard_component_param.py,sha256=-L38A7W88C35urYE7pzNh3xbKzDi5MlqekhaAI6b310,409
157
- structify/types/dashboard_layout.py,sha256=YLgwm4Knbeux1rUuuXv0habRnFN11zkD_IpQiLbM59I,369
158
- structify/types/dashboard_layout_param.py,sha256=waC-lwjTlJnjJdyNc2spToUv69zg0cYmoTZriP7m7ek,483
155
+ structify/types/dashboard.py,sha256=vW4mMWHP8RZCTWhTewtxNhRlvVOqpyYWx8kJ2LsyaR0,583
156
+ structify/types/dashboard_component.py,sha256=F-qV0WvWNPUb9MP1MjLUNK1UBlFG2p_TVbMBPv3_9JY,1632
157
+ structify/types/dashboard_component_param.py,sha256=rvuSDuPApM6BufdeY2SZY3095hvFoJQB8ZJNEUuxOD4,1877
158
+ structify/types/dashboard_page.py,sha256=VN8Yq_ufQNJHozBVXUjkqtBvTjYdwDNlaW969ZYuHYs,2190
159
+ structify/types/dashboard_page_param.py,sha256=8Bz8tfhjJDYrT-j7-oI9zd0Bb2--lmIXJC7B9KTOxEc,2472
160
+ structify/types/dashboard_param.py,sha256=XNvfcb6dKVam7qNxQCJZrNtPIt16M8_xNguOs3EYO_o,697
159
161
  structify/types/dataset_add_property_params.py,sha256=jKruESCLtFzH0uer5jh-uCqv1FFov6MOaa5u-W1rQYc,641
160
162
  structify/types/dataset_count_missing_embeddings_params.py,sha256=w3ZUrh8B9QKEKC87ZKIH6L01SjtMHZ-BIFh6JvI8EcQ,317
161
163
  structify/types/dataset_count_missing_embeddings_response.py,sha256=AHTgmBzk99XUHOMcxCoOjVgYvNexy5uLTDraWZnTPBY,245
@@ -313,7 +315,7 @@ structify/types/select_team_response.py,sha256=oeaOS6JMvl60Ub3ERg9qHDgGHjgWiMVFJ
313
315
  structify/types/server_information.py,sha256=JLj58jDeeXB4QlYxDNpNUivEHTGQlohOKf9RRbJIJmc,207
314
316
  structify/types/session_confirm_node_params.py,sha256=rLI5622Gm7BG6TZsWR29bqafVOwOs-TdS0jLOMxoEQI,301
315
317
  structify/types/session_create_session_params.py,sha256=f1p_2GNHMLX_JJE81qx2oi-uUpWHLFhvf4GauU68KbY,379
316
- structify/types/session_finalize_dag_params.py,sha256=fTSx4jqb6qvgs0aO09QeBLXOvu3SCfMH3oCGg9mWLDg,598
318
+ structify/types/session_finalize_dag_params.py,sha256=A7bRmRwWeWei59ePU5r5H-aZbBsqmjDjK-GA3l2ixfs,716
317
319
  structify/types/session_get_events_params.py,sha256=cwtwE54FsCPi09H27SbPTq4XEL8fQ611INVEjHLPvUE,433
318
320
  structify/types/session_get_events_response.py,sha256=77FUiIRnZFnLu8oXIUoRuzlPrSKo4U5fhw6lSb9zb0U,1083
319
321
  structify/types/session_get_node_progress_response.py,sha256=cmQMtCmPoZWcls5qAc9azYhIcgHp5D5x8gfn5W2yTZ4,559
@@ -323,7 +325,7 @@ structify/types/session_mark_errored_params.py,sha256=h9AKahlA9zPuAintBt46CtFmYO
323
325
  structify/types/session_request_confirmation_params.py,sha256=M_SxEfbod-EdeAE5CQ1h82NSvhiCZbBAyNiHrtscazs,389
324
326
  structify/types/session_update_node_params.py,sha256=kuPrrAdMs2H6ikDKsUkIWKsPcvNnkBAj2bTeXNNF9B4,538
325
327
  structify/types/session_update_node_progress_params.py,sha256=Ow_oam4MR73s_Cvon0RNM5dk66NTq9IVODKItUuVDMw,430
326
- structify/types/session_upload_dashboard_layout_params.py,sha256=JKO4UHdIvnpco0zCDvXiBsoCpsFNgt_8uOCk0mREiZs,392
328
+ structify/types/session_upload_dashboard_layout_params.py,sha256=e0Wl58rImZujwwwIwzCWv_dThTnhKWLUCD4fBcPQMJU,510
327
329
  structify/types/session_upload_node_output_data_params.py,sha256=9Jr6QHTjJ22XZsTvZtHxtgpr6xoqiKwhj7jT6EAmDMM,416
328
330
  structify/types/session_upload_node_visualization_output_params.py,sha256=yMIKhede3dc7-Nng9VqM09TSauulIGMKkzUgU9yvG0I,385
329
331
  structify/types/slack_api_response.py,sha256=V2gZUhcFGy4UFdgu1WF3fHS25Jyly3mgfCx_rYf4AeI,506
@@ -389,7 +391,7 @@ structify/types/wiki_create_params.py,sha256=hXUfnnBb2cVnTOQ_KnplqwYq9cHx-u-oSSS
389
391
  structify/types/wiki_list_response.py,sha256=IbrCZ_-Ma41RXoXe7e1I_JcKLBJGPzDs7CBTAZ3yBpg,275
390
392
  structify/types/wiki_page_with_references.py,sha256=xTHqixI1_kVnXPZ1i5QFoqS_8e7glSsDi4uBsILrHRc,343
391
393
  structify/types/wiki_update_params.py,sha256=S7dLzmJ1rVk0OSl1T7_zFE-y_OmqtDQNR2KPeBu9r5o,384
392
- structify/types/workflow_dag.py,sha256=sOFbdU7DoFFcCbttwSbkoGZO17PhZsE_k_E70HFMmRE,711
394
+ structify/types/workflow_dag.py,sha256=rgyIEaVDhEQNR_P-miSrt6N2YjjAJDku2XbkXEkFxbM,829
393
395
  structify/types/workflow_node_execution_status.py,sha256=YXJLd-P4SGdu_IsJjyO44IRYoO4Bm0zEIjUhCSy_HFY,316
394
396
  structify/types/workflow_node_log.py,sha256=I3VRmr9hE3yYLbBZ9zJ1JnF_JPi153gzuZeDhDwkvRI,311
395
397
  structify/types/workflow_run_params.py,sha256=eYW64PomqPjLbAAuE7NpChEAFZBAh6rAClpSCYS9NGs,328
@@ -490,7 +492,7 @@ structify/types/user/stripe_create_portal_session_params.py,sha256=5AYRC8z_SlKmd
490
492
  structify/types/user/stripe_create_session_params.py,sha256=DFcNLNzEWeupkGQ9J5PafsuL_bIU9cLEIhAmFPsRlfo,387
491
493
  structify/types/user/stripe_create_subscription_params.py,sha256=d8HfiC94gJbG-cC_WvBz6xYCvxKJO_EP2yyVmVvufrU,424
492
494
  structify/types/user/subscription_plan.py,sha256=qKJMM-zPpYolYC1DlypOwPpxlyJBLkQqFK_0VpwktJs,222
493
- structifyai-1.176.1.dist-info/METADATA,sha256=L1Yf5pVmxQu1EZ61CWbBE7IIQGc7IPgbFfu9mJyHtBc,16399
494
- structifyai-1.176.1.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
495
- structifyai-1.176.1.dist-info/licenses/LICENSE,sha256=9CwgrmGz3rZSTT-KqGc1gua-7g8B4ThTgMtUgPALh5c,11339
496
- structifyai-1.176.1.dist-info/RECORD,,
495
+ structifyai-1.177.0.dist-info/METADATA,sha256=V1fDbr3ZhvU5KVj40qYtmNBshvhZQ0eWeEW7bmpwOQ4,16399
496
+ structifyai-1.177.0.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
497
+ structifyai-1.177.0.dist-info/licenses/LICENSE,sha256=9CwgrmGz3rZSTT-KqGc1gua-7g8B4ThTgMtUgPALh5c,11339
498
+ structifyai-1.177.0.dist-info/RECORD,,
@@ -1,16 +0,0 @@
1
- # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
-
3
- from typing import List, Optional
4
-
5
- from .._models import BaseModel
6
- from .dashboard_component import DashboardComponent
7
-
8
- __all__ = ["DashboardLayout"]
9
-
10
-
11
- class DashboardLayout(BaseModel):
12
- components: List[DashboardComponent]
13
-
14
- title: str
15
-
16
- description: Optional[str] = None
@@ -1,18 +0,0 @@
1
- # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
-
3
- from __future__ import annotations
4
-
5
- from typing import Iterable, Optional
6
- from typing_extensions import Required, TypedDict
7
-
8
- from .dashboard_component_param import DashboardComponentParam
9
-
10
- __all__ = ["DashboardLayoutParam"]
11
-
12
-
13
- class DashboardLayoutParam(TypedDict, total=False):
14
- components: Required[Iterable[DashboardComponentParam]]
15
-
16
- title: Required[str]
17
-
18
- description: Optional[str]