weave-python 0.28.2__py3-none-any.whl → 0.30.3__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.
Files changed (104) hide show
  1. weave/weaveapi/auth/v1/service_pb2.py +194 -98
  2. weave/weaveapi/auth/v1/service_pb2.pyi +1288 -1134
  3. weave/weaveapi/auth/v1/service_pb2_grpc.pyi +248 -335
  4. weave/weaveapi/auth/v1/session_pb2.py +14 -6
  5. weave/weaveapi/auth/v1/session_pb2.pyi +109 -89
  6. weave/weaveapi/auth/v1/session_pb2_grpc.pyi +11 -10
  7. weave/weaveapi/auth/v1/usage_pb2.py +18 -14
  8. weave/weaveapi/auth/v1/usage_pb2.pyi +251 -197
  9. weave/weaveapi/auth/v1/usage_pb2_grpc.pyi +11 -10
  10. weave/weaveapi/auth/v1/user_pb2.py +60 -18
  11. weave/weaveapi/auth/v1/user_pb2.pyi +588 -505
  12. weave/weaveapi/auth/v1/user_pb2_grpc.pyi +11 -10
  13. weave/weaveapi/generate/v1/configuration_pb2.py +31 -19
  14. weave/weaveapi/generate/v1/configuration_pb2.pyi +277 -241
  15. weave/weaveapi/generate/v1/configuration_pb2_grpc.pyi +11 -10
  16. weave/weaveapi/generate/v1/generate_pb2.py +32 -6
  17. weave/weaveapi/generate/v1/generate_pb2.pyi +138 -40
  18. weave/weaveapi/generate/v1/generate_pb2_grpc.pyi +11 -10
  19. weave/weaveapi/generate/v1/service_pb2.py +52 -22
  20. weave/weaveapi/generate/v1/service_pb2.pyi +264 -135
  21. weave/weaveapi/generate/v1/service_pb2_grpc.py +47 -0
  22. weave/weaveapi/generate/v1/service_pb2_grpc.pyi +89 -78
  23. weave/weaveapi/llmx/v1/architecture_pb2.py +42 -42
  24. weave/weaveapi/llmx/v1/architecture_pb2.pyi +664 -555
  25. weave/weaveapi/llmx/v1/architecture_pb2_grpc.pyi +11 -10
  26. weave/weaveapi/llmx/v1/capabilities_pb2.py +88 -56
  27. weave/weaveapi/llmx/v1/capabilities_pb2.pyi +967 -852
  28. weave/weaveapi/llmx/v1/capabilities_pb2_grpc.pyi +11 -10
  29. weave/weaveapi/llmx/v1/model_pb2.py +56 -20
  30. weave/weaveapi/llmx/v1/model_pb2.pyi +533 -455
  31. weave/weaveapi/llmx/v1/model_pb2_grpc.pyi +11 -10
  32. weave/weaveapi/llmx/v1/pricing_pb2.py +24 -20
  33. weave/weaveapi/llmx/v1/pricing_pb2.pyi +194 -172
  34. weave/weaveapi/llmx/v1/pricing_pb2_grpc.pyi +11 -10
  35. weave/weaveapi/llmx/v1/provider_pb2.py +6 -6
  36. weave/weaveapi/llmx/v1/provider_pb2.pyi +84 -59
  37. weave/weaveapi/llmx/v1/provider_pb2_grpc.pyi +11 -10
  38. weave/weaveapi/llmx/v1/service_pb2.py +228 -90
  39. weave/weaveapi/llmx/v1/service_pb2.pyi +1651 -1403
  40. weave/weaveapi/llmx/v1/service_pb2_grpc.pyi +160 -203
  41. weave/weaveapi/mcpregistry/v1/server_pb2.py +16 -10
  42. weave/weaveapi/mcpregistry/v1/server_pb2.pyi +143 -121
  43. weave/weaveapi/mcpregistry/v1/server_pb2_grpc.pyi +11 -10
  44. weave/weaveapi/mcpregistry/v1/service_pb2.py +51 -31
  45. weave/weaveapi/mcpregistry/v1/service_pb2.pyi +132 -122
  46. weave/weaveapi/mcpregistry/v1/service_pb2_grpc.pyi +87 -112
  47. weave/weaveapi/payment/v1/invoice_pb2.py +38 -12
  48. weave/weaveapi/payment/v1/invoice_pb2.pyi +352 -291
  49. weave/weaveapi/payment/v1/invoice_pb2_grpc.pyi +11 -10
  50. weave/weaveapi/payment/v1/service_pb2.py +264 -98
  51. weave/weaveapi/payment/v1/service_pb2.pyi +1381 -1242
  52. weave/weaveapi/payment/v1/service_pb2_grpc.pyi +229 -319
  53. weave/weaveapi/payment/v1/subscription_pb2.py +99 -23
  54. weave/weaveapi/payment/v1/subscription_pb2.pyi +727 -611
  55. weave/weaveapi/payment/v1/subscription_pb2_grpc.pyi +11 -10
  56. weave/weaveapi/storage/v1/auth_pb2.py +6 -6
  57. weave/weaveapi/storage/v1/auth_pb2.pyi +42 -29
  58. weave/weaveapi/storage/v1/auth_pb2_grpc.pyi +11 -10
  59. weave/weaveapi/storage/v1/nosql_database_pb2.py +47 -23
  60. weave/weaveapi/storage/v1/nosql_database_pb2.pyi +438 -372
  61. weave/weaveapi/storage/v1/nosql_database_pb2_grpc.pyi +11 -10
  62. weave/weaveapi/storage/v1/object_store_pb2.py +27 -13
  63. weave/weaveapi/storage/v1/object_store_pb2.pyi +203 -187
  64. weave/weaveapi/storage/v1/object_store_pb2_grpc.pyi +11 -10
  65. weave/weaveapi/storage/v1/service_pb2.py +96 -36
  66. weave/weaveapi/storage/v1/service_pb2.pyi +414 -357
  67. weave/weaveapi/storage/v1/service_pb2_grpc.pyi +88 -107
  68. weave/weaveapi/storage/v1/sql_database_pb2.py +39 -23
  69. weave/weaveapi/storage/v1/sql_database_pb2.pyi +481 -400
  70. weave/weaveapi/storage/v1/sql_database_pb2_grpc.pyi +11 -10
  71. weave/weaveapi/storage/v1/storage_pb2.py +20 -6
  72. weave/weaveapi/storage/v1/storage_pb2.pyi +79 -70
  73. weave/weaveapi/storage/v1/storage_pb2_grpc.pyi +11 -10
  74. weave/weaveapi/synthesize/v1/dataset_pb2.py +14 -12
  75. weave/weaveapi/synthesize/v1/dataset_pb2.pyi +158 -128
  76. weave/weaveapi/synthesize/v1/dataset_pb2_grpc.pyi +11 -10
  77. weave/weaveapi/synthesize/v1/inline_data_pb2.py +9 -9
  78. weave/weaveapi/synthesize/v1/inline_data_pb2.pyi +31 -27
  79. weave/weaveapi/synthesize/v1/inline_data_pb2_grpc.pyi +11 -10
  80. weave/weaveapi/synthesize/v1/relationship_pb2.py +19 -11
  81. weave/weaveapi/synthesize/v1/relationship_pb2.pyi +67 -64
  82. weave/weaveapi/synthesize/v1/relationship_pb2_grpc.pyi +11 -10
  83. weave/weaveapi/synthesize/v1/service_pb2.py +42 -24
  84. weave/weaveapi/synthesize/v1/service_pb2.pyi +202 -168
  85. weave/weaveapi/synthesize/v1/service_pb2_grpc.pyi +67 -79
  86. weave/weaveapi/synthesize/v1/training_pb2.py +19 -13
  87. weave/weaveapi/synthesize/v1/training_pb2.pyi +119 -106
  88. weave/weaveapi/synthesize/v1/training_pb2_grpc.pyi +11 -10
  89. weave/weavesql/llmxdb/capabilities.py +487 -0
  90. weave/weavesql/llmxdb/changes.py +297 -0
  91. weave/weavesql/llmxdb/models.py +594 -0
  92. weave/weavesql/llmxdb/providers.py +348 -0
  93. weave/weavesql/llmxdb/scraper_runs.py +287 -0
  94. weave/weavesql/llmxdb/search.py +721 -0
  95. weave/weavesql/weavedb/dataset.py +75 -0
  96. weave/weavesql/weavedb/models.py +135 -0
  97. weave/weavesql/weavedb/relationships.py +72 -0
  98. weave/weavesql/weavedb/storage.py +113 -0
  99. weave/weavesql/weavedb/synthesizer.py +107 -0
  100. {weave_python-0.28.2.dist-info → weave_python-0.30.3.dist-info}/METADATA +3 -3
  101. weave_python-0.30.3.dist-info/RECORD +131 -0
  102. {weave_python-0.28.2.dist-info → weave_python-0.30.3.dist-info}/WHEEL +1 -1
  103. weave_python-0.28.2.dist-info/RECORD +0 -120
  104. {weave_python-0.28.2.dist-info → weave_python-0.30.3.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,75 @@
1
+ # Code generated by sqlc. DO NOT EDIT.
2
+ # versions:
3
+ # sqlc v1.28.0
4
+ # source: dataset.sql
5
+ import dataclasses
6
+ from typing import Optional
7
+ import uuid
8
+
9
+ import sqlalchemy
10
+ import sqlalchemy.ext.asyncio
11
+
12
+
13
+ UPSERT_DATASET = """-- name: upsert_dataset \\:exec
14
+ INSERT INTO generate_v1.dataset (id, organization_id, name, description, storage_connection_id, schema_id,
15
+ synthesizer_id, is_synthetic)
16
+ VALUES (:p1, :p2, :p3, :p4, :p5, :p6, :p7, :p8)
17
+ ON CONFLICT (id) DO UPDATE SET name = EXCLUDED.name,
18
+ description = EXCLUDED.description,
19
+ storage_connection_id = EXCLUDED.storage_connection_id,
20
+ schema_id = EXCLUDED.schema_id,
21
+ synthesizer_id = EXCLUDED.synthesizer_id,
22
+ is_synthetic = EXCLUDED.is_synthetic
23
+ """
24
+
25
+
26
+ @dataclasses.dataclass()
27
+ class UpsertDatasetParams:
28
+ id: uuid.UUID
29
+ organization_id: uuid.UUID
30
+ name: str
31
+ description: Optional[str]
32
+ storage_connection_id: uuid.UUID
33
+ schema_id: Optional[uuid.UUID]
34
+ synthesizer_id: Optional[uuid.UUID]
35
+ is_synthetic: Optional[bool]
36
+
37
+
38
+ class Querier:
39
+ def __init__(self, conn: sqlalchemy.engine.Connection):
40
+ self._conn = conn
41
+
42
+ def upsert_dataset(self, arg: UpsertDatasetParams) -> None:
43
+ self._conn.execute(
44
+ sqlalchemy.text(UPSERT_DATASET),
45
+ {
46
+ "p1": arg.id,
47
+ "p2": arg.organization_id,
48
+ "p3": arg.name,
49
+ "p4": arg.description,
50
+ "p5": arg.storage_connection_id,
51
+ "p6": arg.schema_id,
52
+ "p7": arg.synthesizer_id,
53
+ "p8": arg.is_synthetic,
54
+ },
55
+ )
56
+
57
+
58
+ class AsyncQuerier:
59
+ def __init__(self, conn: sqlalchemy.ext.asyncio.AsyncConnection):
60
+ self._conn = conn
61
+
62
+ async def upsert_dataset(self, arg: UpsertDatasetParams) -> None:
63
+ await self._conn.execute(
64
+ sqlalchemy.text(UPSERT_DATASET),
65
+ {
66
+ "p1": arg.id,
67
+ "p2": arg.organization_id,
68
+ "p3": arg.name,
69
+ "p4": arg.description,
70
+ "p5": arg.storage_connection_id,
71
+ "p6": arg.schema_id,
72
+ "p7": arg.synthesizer_id,
73
+ "p8": arg.is_synthetic,
74
+ },
75
+ )
@@ -0,0 +1,135 @@
1
+ # Code generated by sqlc. DO NOT EDIT.
2
+ # versions:
3
+ # sqlc v1.28.0
4
+ import dataclasses
5
+ import datetime
6
+ import enum
7
+ from typing import Any, Optional
8
+ import uuid
9
+
10
+
11
+ class StorageCategory(enum.StrEnum):
12
+ OBJECT_STORE = "object_store"
13
+ SQL_DATABASE = "sql_database"
14
+ NOSQL_DATABASE = "nosql_database"
15
+
16
+
17
+ class StorageVariant(enum.StrEnum):
18
+ AWS_S3 = "aws_s3"
19
+ AZURE_BLOB_STORAGE = "azure_blob_storage"
20
+ GOOGLE_CLOUD_STORAGE = "google_cloud_storage"
21
+ MYSQL = "mysql"
22
+ POSTGRES = "postgres"
23
+ SQL_SERVER = "sql_server"
24
+ ORACLE = "oracle"
25
+ MARIADB = "mariadb"
26
+ SNOWFLAKE = "snowflake"
27
+ BIGQUERY = "bigquery"
28
+ DATABRICKS = "databricks"
29
+ CASSANDRA = "cassandra"
30
+ MONGODB = "mongodb"
31
+ DYNAMODB = "dynamodb"
32
+ COSMOSDB = "cosmosdb"
33
+ REDIS = "redis"
34
+ VALKEY = "valkey"
35
+ ELASTICSEARCH = "elasticsearch"
36
+ OPENSEARCH = "opensearch"
37
+
38
+
39
+ class SynthesizeV1ColumnDataType(enum.StrEnum):
40
+ STRING = "string"
41
+ INTEGER = "integer"
42
+ FLOAT = "float"
43
+ BOOLEAN = "boolean"
44
+ TIMESTAMP = "timestamp"
45
+ DATE = "date"
46
+ BINARY = "binary"
47
+ CATEGORICAL = "categorical"
48
+ ORDINAL = "ordinal"
49
+
50
+
51
+ class SynthesizeV1ColumnRelationshipType(enum.StrEnum):
52
+ CONTEXT_FOREIGN_KEY = "context_foreign_key"
53
+ NON_CONTEXT_FOREIGN_KEY = "non_context_foreign_key"
54
+ ONE_TO_MANY = "one_to_many"
55
+ MANY_TO_ONE = "many_to_one"
56
+ MANY_TO_MANY = "many_to_many"
57
+ SELF_REFERENCE = "self_reference"
58
+
59
+
60
+ @dataclasses.dataclass()
61
+ class GenerateV1Dataset:
62
+ id: uuid.UUID
63
+ organization_id: uuid.UUID
64
+ name: str
65
+ description: Optional[str]
66
+ storage_connection_id: uuid.UUID
67
+ schema_id: Optional[uuid.UUID]
68
+ synthesizer_id: Optional[uuid.UUID]
69
+ is_synthetic: Optional[bool]
70
+
71
+
72
+ @dataclasses.dataclass()
73
+ class LlmProviderCredential:
74
+ id: uuid.UUID
75
+ organization_id: uuid.UUID
76
+ provider_slug: str
77
+ credentials: Any
78
+ created_at: Optional[datetime.datetime]
79
+ updated_at: Optional[datetime.datetime]
80
+
81
+
82
+ @dataclasses.dataclass()
83
+ class Organization:
84
+ id: uuid.UUID
85
+ name: str
86
+ description: Optional[str]
87
+
88
+
89
+ @dataclasses.dataclass()
90
+ class StorageConnection:
91
+ id: uuid.UUID
92
+ organization_id: uuid.UUID
93
+ name: str
94
+ description: Optional[str]
95
+ category: StorageCategory
96
+ variant: StorageVariant
97
+ details: Any
98
+
99
+
100
+ @dataclasses.dataclass()
101
+ class SynthesizeV1ColumnRelationship:
102
+ id: uuid.UUID
103
+ source_column_id: uuid.UUID
104
+ source_dataset_id: uuid.UUID
105
+ target_column_id: uuid.UUID
106
+ target_dataset_id: uuid.UUID
107
+ relationship_type: Any
108
+
109
+
110
+ @dataclasses.dataclass()
111
+ class SynthesizeV1DataColumn:
112
+ id: uuid.UUID
113
+ schema_id: uuid.UUID
114
+ name: str
115
+ data_type: Any
116
+ is_primary_key: Optional[bool]
117
+ description: Optional[str]
118
+
119
+
120
+ @dataclasses.dataclass()
121
+ class SynthesizeV1DataSchema:
122
+ id: uuid.UUID
123
+ organization_id: uuid.UUID
124
+ name: str
125
+ description: Optional[str]
126
+
127
+
128
+ @dataclasses.dataclass()
129
+ class SynthesizeV1Synthesizer:
130
+ id: uuid.UUID
131
+ organization_id: uuid.UUID
132
+ name: str
133
+ description: Optional[str]
134
+ storage_connection_id: uuid.UUID
135
+ metadata: Optional[Any]
@@ -0,0 +1,72 @@
1
+ # Code generated by sqlc. DO NOT EDIT.
2
+ # versions:
3
+ # sqlc v1.28.0
4
+ # source: relationships.sql
5
+ import dataclasses
6
+ from typing import AsyncIterator, Iterator, List
7
+ import uuid
8
+
9
+ import sqlalchemy
10
+ import sqlalchemy.ext.asyncio
11
+
12
+
13
+ GET_FOREIGN_KEY_RELATIONSHIPS = """-- name: get_foreign_key_relationships \\:many
14
+ SELECT cr.source_dataset_id,
15
+ cr.target_dataset_id,
16
+ sc.name AS source_column_name,
17
+ tc.name AS target_column_name
18
+ FROM synthesize_v1.column_relationship cr
19
+ JOIN
20
+ synthesize_v1.data_column sc ON cr.source_column_id = sc.id
21
+ JOIN
22
+ synthesize_v1.data_column tc ON cr.target_column_id = tc.id
23
+ WHERE cr.relationship_type IN ('context_foreign_key', 'non_context_foreign_key')
24
+ AND cr.source_dataset_id = ANY (:p1\\:\\:UUID[])
25
+ AND cr.target_dataset_id = ANY (:p1\\:\\:UUID[])
26
+ """
27
+
28
+
29
+ @dataclasses.dataclass()
30
+ class GetForeignKeyRelationshipsRow:
31
+ source_dataset_id: uuid.UUID
32
+ target_dataset_id: uuid.UUID
33
+ source_column_name: str
34
+ target_column_name: str
35
+
36
+
37
+ class Querier:
38
+ def __init__(self, conn: sqlalchemy.engine.Connection):
39
+ self._conn = conn
40
+
41
+ def get_foreign_key_relationships(
42
+ self, *, dataset_ids: List[uuid.UUID]
43
+ ) -> Iterator[GetForeignKeyRelationshipsRow]:
44
+ result = self._conn.execute(
45
+ sqlalchemy.text(GET_FOREIGN_KEY_RELATIONSHIPS), {"p1": dataset_ids}
46
+ )
47
+ for row in result:
48
+ yield GetForeignKeyRelationshipsRow(
49
+ source_dataset_id=row[0],
50
+ target_dataset_id=row[1],
51
+ source_column_name=row[2],
52
+ target_column_name=row[3],
53
+ )
54
+
55
+
56
+ class AsyncQuerier:
57
+ def __init__(self, conn: sqlalchemy.ext.asyncio.AsyncConnection):
58
+ self._conn = conn
59
+
60
+ async def get_foreign_key_relationships(
61
+ self, *, dataset_ids: List[uuid.UUID]
62
+ ) -> AsyncIterator[GetForeignKeyRelationshipsRow]:
63
+ result = await self._conn.stream(
64
+ sqlalchemy.text(GET_FOREIGN_KEY_RELATIONSHIPS), {"p1": dataset_ids}
65
+ )
66
+ async for row in result:
67
+ yield GetForeignKeyRelationshipsRow(
68
+ source_dataset_id=row[0],
69
+ target_dataset_id=row[1],
70
+ source_column_name=row[2],
71
+ target_column_name=row[3],
72
+ )
@@ -0,0 +1,113 @@
1
+ # Code generated by sqlc. DO NOT EDIT.
2
+ # versions:
3
+ # sqlc v1.28.0
4
+ # source: storage.sql
5
+ from typing import Optional
6
+ import uuid
7
+
8
+ import sqlalchemy
9
+ import sqlalchemy.ext.asyncio
10
+
11
+ from weave.weavesql.weavedb import models
12
+
13
+
14
+ GET_STORAGE_CONNECTION = """-- name: get_storage_connection \\:one
15
+ SELECT id, organization_id, name, description, category, variant, details
16
+ FROM storage_connection
17
+ WHERE id = :p1
18
+ """
19
+
20
+
21
+ GET_STORAGE_CONNECTION_BY_DATASET_ID = """-- name: get_storage_connection_by_dataset_id \\:one
22
+ SELECT sc.id, sc.organization_id, sc.name, sc.description, sc.category, sc.variant, sc.details
23
+ FROM storage_connection sc
24
+ JOIN generate_v1.dataset d ON d.storage_connection_id = sc.id
25
+ WHERE d.id = :p1
26
+ """
27
+
28
+
29
+ class Querier:
30
+ def __init__(self, conn: sqlalchemy.engine.Connection):
31
+ self._conn = conn
32
+
33
+ def get_storage_connection(
34
+ self, *, id: uuid.UUID
35
+ ) -> Optional[models.StorageConnection]:
36
+ row = self._conn.execute(
37
+ sqlalchemy.text(GET_STORAGE_CONNECTION), {"p1": id}
38
+ ).first()
39
+ if row is None:
40
+ return None
41
+ return models.StorageConnection(
42
+ id=row[0],
43
+ organization_id=row[1],
44
+ name=row[2],
45
+ description=row[3],
46
+ category=row[4],
47
+ variant=row[5],
48
+ details=row[6],
49
+ )
50
+
51
+ def get_storage_connection_by_dataset_id(
52
+ self, *, dataset_id: uuid.UUID
53
+ ) -> Optional[models.StorageConnection]:
54
+ row = self._conn.execute(
55
+ sqlalchemy.text(GET_STORAGE_CONNECTION_BY_DATASET_ID), {"p1": dataset_id}
56
+ ).first()
57
+ if row is None:
58
+ return None
59
+ return models.StorageConnection(
60
+ id=row[0],
61
+ organization_id=row[1],
62
+ name=row[2],
63
+ description=row[3],
64
+ category=row[4],
65
+ variant=row[5],
66
+ details=row[6],
67
+ )
68
+
69
+
70
+ class AsyncQuerier:
71
+ def __init__(self, conn: sqlalchemy.ext.asyncio.AsyncConnection):
72
+ self._conn = conn
73
+
74
+ async def get_storage_connection(
75
+ self, *, id: uuid.UUID
76
+ ) -> Optional[models.StorageConnection]:
77
+ row = (
78
+ await self._conn.execute(
79
+ sqlalchemy.text(GET_STORAGE_CONNECTION), {"p1": id}
80
+ )
81
+ ).first()
82
+ if row is None:
83
+ return None
84
+ return models.StorageConnection(
85
+ id=row[0],
86
+ organization_id=row[1],
87
+ name=row[2],
88
+ description=row[3],
89
+ category=row[4],
90
+ variant=row[5],
91
+ details=row[6],
92
+ )
93
+
94
+ async def get_storage_connection_by_dataset_id(
95
+ self, *, dataset_id: uuid.UUID
96
+ ) -> Optional[models.StorageConnection]:
97
+ row = (
98
+ await self._conn.execute(
99
+ sqlalchemy.text(GET_STORAGE_CONNECTION_BY_DATASET_ID),
100
+ {"p1": dataset_id},
101
+ )
102
+ ).first()
103
+ if row is None:
104
+ return None
105
+ return models.StorageConnection(
106
+ id=row[0],
107
+ organization_id=row[1],
108
+ name=row[2],
109
+ description=row[3],
110
+ category=row[4],
111
+ variant=row[5],
112
+ details=row[6],
113
+ )
@@ -0,0 +1,107 @@
1
+ # Code generated by sqlc. DO NOT EDIT.
2
+ # versions:
3
+ # sqlc v1.28.0
4
+ # source: synthesizer.sql
5
+ import dataclasses
6
+ from typing import Any, Optional
7
+ import uuid
8
+
9
+ import sqlalchemy
10
+ import sqlalchemy.ext.asyncio
11
+
12
+ from weave.weavesql.weavedb import models
13
+
14
+
15
+ GET_SYNTHESIZER = """-- name: get_synthesizer \\:one
16
+ SELECT id, organization_id, name, description, storage_connection_id, metadata
17
+ FROM synthesize_v1.synthesizer
18
+ WHERE id = :p1
19
+ """
20
+
21
+
22
+ UPSERT_SYNTHESIZER = """-- name: upsert_synthesizer \\:exec
23
+ INSERT INTO synthesize_v1.synthesizer (id, organization_id, name, description, storage_connection_id, metadata)
24
+ VALUES (:p1, :p2, :p3, :p4, :p5, :p6)
25
+ ON CONFLICT (id) DO UPDATE SET name = EXCLUDED.name,
26
+ description = EXCLUDED.description,
27
+ storage_connection_id = EXCLUDED.storage_connection_id,
28
+ metadata = EXCLUDED.metadata
29
+ """
30
+
31
+
32
+ @dataclasses.dataclass()
33
+ class UpsertSynthesizerParams:
34
+ id: uuid.UUID
35
+ organization_id: uuid.UUID
36
+ name: str
37
+ description: Optional[str]
38
+ storage_connection_id: uuid.UUID
39
+ metadata: Optional[Any]
40
+
41
+
42
+ class Querier:
43
+ def __init__(self, conn: sqlalchemy.engine.Connection):
44
+ self._conn = conn
45
+
46
+ def get_synthesizer(
47
+ self, *, id: uuid.UUID
48
+ ) -> Optional[models.SynthesizeV1Synthesizer]:
49
+ row = self._conn.execute(sqlalchemy.text(GET_SYNTHESIZER), {"p1": id}).first()
50
+ if row is None:
51
+ return None
52
+ return models.SynthesizeV1Synthesizer(
53
+ id=row[0],
54
+ organization_id=row[1],
55
+ name=row[2],
56
+ description=row[3],
57
+ storage_connection_id=row[4],
58
+ metadata=row[5],
59
+ )
60
+
61
+ def upsert_synthesizer(self, arg: UpsertSynthesizerParams) -> None:
62
+ self._conn.execute(
63
+ sqlalchemy.text(UPSERT_SYNTHESIZER),
64
+ {
65
+ "p1": arg.id,
66
+ "p2": arg.organization_id,
67
+ "p3": arg.name,
68
+ "p4": arg.description,
69
+ "p5": arg.storage_connection_id,
70
+ "p6": arg.metadata,
71
+ },
72
+ )
73
+
74
+
75
+ class AsyncQuerier:
76
+ def __init__(self, conn: sqlalchemy.ext.asyncio.AsyncConnection):
77
+ self._conn = conn
78
+
79
+ async def get_synthesizer(
80
+ self, *, id: uuid.UUID
81
+ ) -> Optional[models.SynthesizeV1Synthesizer]:
82
+ row = (
83
+ await self._conn.execute(sqlalchemy.text(GET_SYNTHESIZER), {"p1": id})
84
+ ).first()
85
+ if row is None:
86
+ return None
87
+ return models.SynthesizeV1Synthesizer(
88
+ id=row[0],
89
+ organization_id=row[1],
90
+ name=row[2],
91
+ description=row[3],
92
+ storage_connection_id=row[4],
93
+ metadata=row[5],
94
+ )
95
+
96
+ async def upsert_synthesizer(self, arg: UpsertSynthesizerParams) -> None:
97
+ await self._conn.execute(
98
+ sqlalchemy.text(UPSERT_SYNTHESIZER),
99
+ {
100
+ "p1": arg.id,
101
+ "p2": arg.organization_id,
102
+ "p3": arg.name,
103
+ "p4": arg.description,
104
+ "p5": arg.storage_connection_id,
105
+ "p6": arg.metadata,
106
+ },
107
+ )
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: weave-python
3
- Version: 0.28.2
3
+ Version: 0.30.3
4
4
  Author: Weave Labs
5
5
  License: FCL-1.0-ALv2
6
6
  License-File: LICENSE
7
- Requires-Python: >=3.8
7
+ Requires-Python: >=3.10
8
8
  Requires-Dist: protobuf>=6.30.2
9
9
  Requires-Dist: sqlalchemy>=2.0.40
10
10
  Description-Content-Type: text/markdown
@@ -22,7 +22,7 @@ low-level HTTP plumbing.
22
22
  pip install weave-python
23
23
  ```
24
24
 
25
- The package requires Python 3.8 or newer.
25
+ The package requires Python 3.10 or newer.
26
26
 
27
27
  ## Quick Start
28
28
 
@@ -0,0 +1,131 @@
1
+ weave/weaveapi/auth/v1/service_pb2.py,sha256=4pTfRTY5lCHu-kiw8v3o9_dqf_tA1HjyFkjl8NSm9Dw,30161
2
+ weave/weaveapi/auth/v1/service_pb2.pyi,sha256=QSBtehu4YPePVk8ZqTEMGUFFrz2BBz0E-JX3jTijDgY,52719
3
+ weave/weaveapi/auth/v1/service_pb2_grpc.py,sha256=ImK3Ovp6_ixBS6SDa3N6W1NF6xREA9ASYAscqizq9Ks,41686
4
+ weave/weaveapi/auth/v1/service_pb2_grpc.pyi,sha256=VWJu4iQ9cDlDuRCbBTtWdkzcYnfRT1Fk36gHFrOsWsk,17487
5
+ weave/weaveapi/auth/v1/session_pb2.py,sha256=JORUSmCSoDpH5gFqyV2FaHzKYEp4IKKrtkT7cHqBC_k,3305
6
+ weave/weaveapi/auth/v1/session_pb2.pyi,sha256=NL41qtt3A5n-NyOA-CYiYvLaMHA08FNNzz67ZhmoiPs,3842
7
+ weave/weaveapi/auth/v1/session_pb2_grpc.py,sha256=fdRE784m723PjH1jxpy3TgXFFaFZ4gLdJHbKGuy-4F4,146
8
+ weave/weaveapi/auth/v1/session_pb2_grpc.pyi,sha256=G0Gw-l0k7rGGVi6-DNXJmNkkNCNZImXUYWpsBPRbZ0k,500
9
+ weave/weaveapi/auth/v1/usage_pb2.py,sha256=SApXFghJ7zRHMY04Vy8s8lz9OHpSKVSPHwWuWN_uHEc,5568
10
+ weave/weaveapi/auth/v1/usage_pb2.pyi,sha256=Rj2DWHeJBBu5k-ljZMCRqoMxZbtNxoc_Nxb-PIeKDec,10411
11
+ weave/weaveapi/auth/v1/usage_pb2_grpc.py,sha256=fdRE784m723PjH1jxpy3TgXFFaFZ4gLdJHbKGuy-4F4,146
12
+ weave/weaveapi/auth/v1/usage_pb2_grpc.pyi,sha256=G0Gw-l0k7rGGVi6-DNXJmNkkNCNZImXUYWpsBPRbZ0k,500
13
+ weave/weaveapi/auth/v1/user_pb2.py,sha256=qxyoGdhp9pToh2g3N-EHETXdzFMzi-7jLbFzmDradLg,10288
14
+ weave/weaveapi/auth/v1/user_pb2.pyi,sha256=Ub3qb4i0Db1TBCE30ZqGwCY3WrBUBAVRJ6MLPI8qzjw,21770
15
+ weave/weaveapi/auth/v1/user_pb2_grpc.py,sha256=fdRE784m723PjH1jxpy3TgXFFaFZ4gLdJHbKGuy-4F4,146
16
+ weave/weaveapi/auth/v1/user_pb2_grpc.pyi,sha256=G0Gw-l0k7rGGVi6-DNXJmNkkNCNZImXUYWpsBPRbZ0k,500
17
+ weave/weaveapi/generate/v1/configuration_pb2.py,sha256=PGP2W-V4qCI6PWCLcF988ILZ2SYDVI8SaKgervzS7SM,6237
18
+ weave/weaveapi/generate/v1/configuration_pb2.pyi,sha256=Hp96hbmyNDV1Acj9nm3p2htMiiJziJ9ynNuNP4-PgMk,13983
19
+ weave/weaveapi/generate/v1/configuration_pb2_grpc.py,sha256=fdRE784m723PjH1jxpy3TgXFFaFZ4gLdJHbKGuy-4F4,146
20
+ weave/weaveapi/generate/v1/configuration_pb2_grpc.pyi,sha256=G0Gw-l0k7rGGVi6-DNXJmNkkNCNZImXUYWpsBPRbZ0k,500
21
+ weave/weaveapi/generate/v1/generate_pb2.py,sha256=pFPKeP-xfaJ3UL0nKD5ow2y-K67PwzbTeKs_Ybwm4rI,4229
22
+ weave/weaveapi/generate/v1/generate_pb2.pyi,sha256=W72UdTwgDYs4PSrSz9jcV_5bWM2FlUefUw_D-tDfoqM,5214
23
+ weave/weaveapi/generate/v1/generate_pb2_grpc.py,sha256=fdRE784m723PjH1jxpy3TgXFFaFZ4gLdJHbKGuy-4F4,146
24
+ weave/weaveapi/generate/v1/generate_pb2_grpc.pyi,sha256=G0Gw-l0k7rGGVi6-DNXJmNkkNCNZImXUYWpsBPRbZ0k,500
25
+ weave/weaveapi/generate/v1/service_pb2.py,sha256=tIJG6TsWk4CwQvksylicaq4A-BA32C8xfZIes5XLg9Q,8841
26
+ weave/weaveapi/generate/v1/service_pb2.pyi,sha256=F7YwRjTqjb5oZ9CW9_zxHYPDcsrRCXUzbIO8MpgAnFw,11962
27
+ weave/weaveapi/generate/v1/service_pb2_grpc.py,sha256=JbQgDTTPx_MJy1uVMaeLFa71rwwhJ9bjFh6fnGY5al4,11052
28
+ weave/weaveapi/generate/v1/service_pb2_grpc.pyi,sha256=QW28VKjAU5uBps7Ohxl8-u9eMPfjK4bAw2Bcr0Ebd8I,4555
29
+ weave/weaveapi/llmx/v1/architecture_pb2.py,sha256=-W_9cAg6Vfjx8R9vZdyJb7lxUTSYT4NecoFuR0Vrsag,17271
30
+ weave/weaveapi/llmx/v1/architecture_pb2.pyi,sha256=9KNv_ZbJmiKffRDwhk7TNynwa40Zg_mKQfdD2u3LDYA,56804
31
+ weave/weaveapi/llmx/v1/architecture_pb2_grpc.py,sha256=fdRE784m723PjH1jxpy3TgXFFaFZ4gLdJHbKGuy-4F4,146
32
+ weave/weaveapi/llmx/v1/architecture_pb2_grpc.pyi,sha256=G0Gw-l0k7rGGVi6-DNXJmNkkNCNZImXUYWpsBPRbZ0k,500
33
+ weave/weaveapi/llmx/v1/capabilities_pb2.py,sha256=EifjAP7s4Nho-0uhJwZbQM3Y7L6athPmeXVe0fwBZoY,19851
34
+ weave/weaveapi/llmx/v1/capabilities_pb2.pyi,sha256=PzuGxs-SYp4z1rdgjWahWyPhfJKE9t5SRVDB49U2CY4,65451
35
+ weave/weaveapi/llmx/v1/capabilities_pb2_grpc.py,sha256=fdRE784m723PjH1jxpy3TgXFFaFZ4gLdJHbKGuy-4F4,146
36
+ weave/weaveapi/llmx/v1/capabilities_pb2_grpc.pyi,sha256=G0Gw-l0k7rGGVi6-DNXJmNkkNCNZImXUYWpsBPRbZ0k,500
37
+ weave/weaveapi/llmx/v1/model_pb2.py,sha256=dR-qqExeoQTukwhAerV7ynXl3D0HNq5cxhybkwM50UQ,10360
38
+ weave/weaveapi/llmx/v1/model_pb2.pyi,sha256=SaXWX8RFSU81SPY1CXDAGiUNx-ryc2EOiBGhVpa2GAk,28151
39
+ weave/weaveapi/llmx/v1/model_pb2_grpc.py,sha256=fdRE784m723PjH1jxpy3TgXFFaFZ4gLdJHbKGuy-4F4,146
40
+ weave/weaveapi/llmx/v1/model_pb2_grpc.pyi,sha256=G0Gw-l0k7rGGVi6-DNXJmNkkNCNZImXUYWpsBPRbZ0k,500
41
+ weave/weaveapi/llmx/v1/pricing_pb2.py,sha256=sfkM-WYV9O0b-iaNFiFuxO0-nt7QS8g6OKY5dojOCGs,6266
42
+ weave/weaveapi/llmx/v1/pricing_pb2.pyi,sha256=06WeqXW1gJxy70KoTqHWheMHOFMZ8AO8clsgX6CcHpw,23070
43
+ weave/weaveapi/llmx/v1/pricing_pb2_grpc.py,sha256=fdRE784m723PjH1jxpy3TgXFFaFZ4gLdJHbKGuy-4F4,146
44
+ weave/weaveapi/llmx/v1/pricing_pb2_grpc.pyi,sha256=G0Gw-l0k7rGGVi6-DNXJmNkkNCNZImXUYWpsBPRbZ0k,500
45
+ weave/weaveapi/llmx/v1/provider_pb2.py,sha256=Uaa_hatAJEhq4I3j_Bpsk4FJpZSy7pOfioZt0A92Yb4,2483
46
+ weave/weaveapi/llmx/v1/provider_pb2.pyi,sha256=dZ0R2qrK3oPDvzZtwXSczb9JY1vjneTEL7BUjOB9ByE,3867
47
+ weave/weaveapi/llmx/v1/provider_pb2_grpc.py,sha256=fdRE784m723PjH1jxpy3TgXFFaFZ4gLdJHbKGuy-4F4,146
48
+ weave/weaveapi/llmx/v1/provider_pb2_grpc.pyi,sha256=G0Gw-l0k7rGGVi6-DNXJmNkkNCNZImXUYWpsBPRbZ0k,500
49
+ weave/weaveapi/llmx/v1/service_pb2.py,sha256=8La2B-hTib14PozRAkmhV7ZXohBUjoZ1wdWNePFGgT8,30607
50
+ weave/weaveapi/llmx/v1/service_pb2.pyi,sha256=M6vCEaGPnLR2RdYuniBviB3N9JZWisq7ZLMwY640fDE,67912
51
+ weave/weaveapi/llmx/v1/service_pb2_grpc.py,sha256=_cFzFnPrvA7d86HBWeOriDT48k5qrAzaf7OfdOCXnq4,23339
52
+ weave/weaveapi/llmx/v1/service_pb2_grpc.pyi,sha256=7DIS-0ZwDLmNM_3clYQFAxTe0XZLdZTQy8Rje3CAo4M,8197
53
+ weave/weaveapi/mcpregistry/v1/server_pb2.py,sha256=oZdVOPUuD9oWA6uqkkWWk9Lq2hyFe85gCsHFhMwG898,3870
54
+ weave/weaveapi/mcpregistry/v1/server_pb2.pyi,sha256=ekwKuliiNyZGmzasIi9IwgAIdlnonLaRvGdLnDmcNIg,5810
55
+ weave/weaveapi/mcpregistry/v1/server_pb2_grpc.py,sha256=fdRE784m723PjH1jxpy3TgXFFaFZ4gLdJHbKGuy-4F4,146
56
+ weave/weaveapi/mcpregistry/v1/server_pb2_grpc.pyi,sha256=G0Gw-l0k7rGGVi6-DNXJmNkkNCNZImXUYWpsBPRbZ0k,500
57
+ weave/weaveapi/mcpregistry/v1/service_pb2.py,sha256=6oLsWbmfOyAsJwig6WYGuTZp4W14yST-uLehUYq2Awg,8374
58
+ weave/weaveapi/mcpregistry/v1/service_pb2.pyi,sha256=HEn--VawgHXzfXMlR_0dNV6ufETJZisQMonhQo2wGH4,7818
59
+ weave/weaveapi/mcpregistry/v1/service_pb2_grpc.py,sha256=gGPYVuamgmJAkY0RpWiEPeUBhgPSA5rnPM-O7N8Ao4M,12664
60
+ weave/weaveapi/mcpregistry/v1/service_pb2_grpc.pyi,sha256=NavhvkiIFFgvue4jRvYuytsdgMt-cM0rMB9uRx1kcpI,4703
61
+ weave/weaveapi/payment/v1/invoice_pb2.py,sha256=l6ptdynrzzaBJagmF-MfGyZwfXmTwrPWVTKVHlkc7_w,7351
62
+ weave/weaveapi/payment/v1/invoice_pb2.pyi,sha256=obcWN7QroQqwGWarnwopzp_f2-25QEV88MtVwFENBhw,12725
63
+ weave/weaveapi/payment/v1/invoice_pb2_grpc.py,sha256=fdRE784m723PjH1jxpy3TgXFFaFZ4gLdJHbKGuy-4F4,146
64
+ weave/weaveapi/payment/v1/invoice_pb2_grpc.pyi,sha256=G0Gw-l0k7rGGVi6-DNXJmNkkNCNZImXUYWpsBPRbZ0k,500
65
+ weave/weaveapi/payment/v1/service_pb2.py,sha256=oazyIAl94zJfrYr-9C8mP6a9QWEa83hnsQxAIsk188c,35456
66
+ weave/weaveapi/payment/v1/service_pb2.pyi,sha256=jcwWwQM_peGlksruz2WuhOP43ZtgzbCBdFYENHbjYrM,56107
67
+ weave/weaveapi/payment/v1/service_pb2_grpc.py,sha256=M4aRmjzJltHLw4J7svJVzDOKbWtjPP4GXhA3S5OwNmM,37856
68
+ weave/weaveapi/payment/v1/service_pb2_grpc.pyi,sha256=__O0LErlMscDsTGarqqrJ7_L1n1tQ_oUFD_l11RgjJs,16372
69
+ weave/weaveapi/payment/v1/subscription_pb2.py,sha256=2yTzh0uMcWzSoh_dge3Hn_XndxnqWgyoEaJtVvsdfVc,12838
70
+ weave/weaveapi/payment/v1/subscription_pb2.pyi,sha256=2WP97OAdUcx01LAI0sla86unapaB6SXJG8IztmlvA-w,25089
71
+ weave/weaveapi/payment/v1/subscription_pb2_grpc.py,sha256=fdRE784m723PjH1jxpy3TgXFFaFZ4gLdJHbKGuy-4F4,146
72
+ weave/weaveapi/payment/v1/subscription_pb2_grpc.pyi,sha256=G0Gw-l0k7rGGVi6-DNXJmNkkNCNZImXUYWpsBPRbZ0k,500
73
+ weave/weaveapi/storage/v1/auth_pb2.py,sha256=-v_I4gQ3ypfoSv5Lr1CNi7Ozp2N6uF1wIYIep6eKoeU,2250
74
+ weave/weaveapi/storage/v1/auth_pb2.pyi,sha256=KRh5pGGz0sdiN1lS7hEixchZpc9P4WbKyP17qLqMX68,1670
75
+ weave/weaveapi/storage/v1/auth_pb2_grpc.py,sha256=fdRE784m723PjH1jxpy3TgXFFaFZ4gLdJHbKGuy-4F4,146
76
+ weave/weaveapi/storage/v1/auth_pb2_grpc.pyi,sha256=G0Gw-l0k7rGGVi6-DNXJmNkkNCNZImXUYWpsBPRbZ0k,500
77
+ weave/weaveapi/storage/v1/nosql_database_pb2.py,sha256=N_i4REVBjT2aJX1GhidbBsAfN8k0G-31EOg_mNe4jNE,7399
78
+ weave/weaveapi/storage/v1/nosql_database_pb2.pyi,sha256=BENzJouGNmWQ4K4MMHH9y0H9IeGuEigwG8IwqyldY1A,15119
79
+ weave/weaveapi/storage/v1/nosql_database_pb2_grpc.py,sha256=fdRE784m723PjH1jxpy3TgXFFaFZ4gLdJHbKGuy-4F4,146
80
+ weave/weaveapi/storage/v1/nosql_database_pb2_grpc.pyi,sha256=G0Gw-l0k7rGGVi6-DNXJmNkkNCNZImXUYWpsBPRbZ0k,500
81
+ weave/weaveapi/storage/v1/object_store_pb2.py,sha256=rVThXJrehMpUNRei2oGvzAwj1uSij_hOuCKan5_t8AM,4587
82
+ weave/weaveapi/storage/v1/object_store_pb2.pyi,sha256=cLchhr4PItzf4LB-AY4LYypDGpnlS_Ij9-bRu4MffOQ,8020
83
+ weave/weaveapi/storage/v1/object_store_pb2_grpc.py,sha256=fdRE784m723PjH1jxpy3TgXFFaFZ4gLdJHbKGuy-4F4,146
84
+ weave/weaveapi/storage/v1/object_store_pb2_grpc.pyi,sha256=G0Gw-l0k7rGGVi6-DNXJmNkkNCNZImXUYWpsBPRbZ0k,500
85
+ weave/weaveapi/storage/v1/service_pb2.py,sha256=IT3JZQFOtNO8PF_A0BnzK7fyljR4zqi3k1uKrXrztHs,10042
86
+ weave/weaveapi/storage/v1/service_pb2.pyi,sha256=CFGBw_XJW7vl38d4NBpLndlRCSxj_NnuVrXaixM58iU,19770
87
+ weave/weaveapi/storage/v1/service_pb2_grpc.py,sha256=ZMxsN0teDpQw5VaP0JDX13Zc-N5qxrxW4--Ws2BQDWI,12495
88
+ weave/weaveapi/storage/v1/service_pb2_grpc.pyi,sha256=USrbGbP7OMExcp7n-J2_KhDM5ProIYygaY4cm-9R6xY,6191
89
+ weave/weaveapi/storage/v1/sql_database_pb2.py,sha256=v1dWhfcqSrdyzeQ4uDRmDKQpNuLkxJCDyTMCiJXwGd4,7526
90
+ weave/weaveapi/storage/v1/sql_database_pb2.pyi,sha256=lwhDxXsVpDOBQHFyb1AUGVqSTSWNF-KRVxz_7i0EHhU,16458
91
+ weave/weaveapi/storage/v1/sql_database_pb2_grpc.py,sha256=fdRE784m723PjH1jxpy3TgXFFaFZ4gLdJHbKGuy-4F4,146
92
+ weave/weaveapi/storage/v1/sql_database_pb2_grpc.pyi,sha256=G0Gw-l0k7rGGVi6-DNXJmNkkNCNZImXUYWpsBPRbZ0k,500
93
+ weave/weaveapi/storage/v1/storage_pb2.py,sha256=mhR8sStysWGFtFsN1n7QhmGHz7nsTWvAHzA8kw0DqC4,3358
94
+ weave/weaveapi/storage/v1/storage_pb2.pyi,sha256=dUZ2yFaLTZW0nk6Z0crirP49k2QyqcaqVSAQsxKzvJE,3161
95
+ weave/weaveapi/storage/v1/storage_pb2_grpc.py,sha256=fdRE784m723PjH1jxpy3TgXFFaFZ4gLdJHbKGuy-4F4,146
96
+ weave/weaveapi/storage/v1/storage_pb2_grpc.pyi,sha256=G0Gw-l0k7rGGVi6-DNXJmNkkNCNZImXUYWpsBPRbZ0k,500
97
+ weave/weaveapi/synthesize/v1/dataset_pb2.py,sha256=Z-jgwkbJIvAQopLufq9BfU2_N9tR4tx0H8F4422OAQo,3944
98
+ weave/weaveapi/synthesize/v1/dataset_pb2.pyi,sha256=VFaHo6PAmWHkXM2YyACoqCdNR4pnnUvawPQp6v1iD78,6823
99
+ weave/weaveapi/synthesize/v1/dataset_pb2_grpc.py,sha256=fdRE784m723PjH1jxpy3TgXFFaFZ4gLdJHbKGuy-4F4,146
100
+ weave/weaveapi/synthesize/v1/dataset_pb2_grpc.pyi,sha256=G0Gw-l0k7rGGVi6-DNXJmNkkNCNZImXUYWpsBPRbZ0k,500
101
+ weave/weaveapi/synthesize/v1/inline_data_pb2.py,sha256=s_oIsgbNZCufc10sK2RHjr8545VDTT8ZF8hVVyGdEWM,2705
102
+ weave/weaveapi/synthesize/v1/inline_data_pb2.pyi,sha256=YQWOR_B6882gccmhIyoY7dAYvDuZjERB0mA_sFRWKNg,2726
103
+ weave/weaveapi/synthesize/v1/inline_data_pb2_grpc.py,sha256=fdRE784m723PjH1jxpy3TgXFFaFZ4gLdJHbKGuy-4F4,146
104
+ weave/weaveapi/synthesize/v1/inline_data_pb2_grpc.pyi,sha256=G0Gw-l0k7rGGVi6-DNXJmNkkNCNZImXUYWpsBPRbZ0k,500
105
+ weave/weaveapi/synthesize/v1/relationship_pb2.py,sha256=Dxv5Ec1rht1uaZ0DZZEyzucK34vVwslAB7U7_9p6SsA,3639
106
+ weave/weaveapi/synthesize/v1/relationship_pb2.pyi,sha256=X_9gaxwc_Sg3zmFmoz9r-vBsWVHWs7zOtaXirjUEvHE,5139
107
+ weave/weaveapi/synthesize/v1/relationship_pb2_grpc.py,sha256=fdRE784m723PjH1jxpy3TgXFFaFZ4gLdJHbKGuy-4F4,146
108
+ weave/weaveapi/synthesize/v1/relationship_pb2_grpc.pyi,sha256=G0Gw-l0k7rGGVi6-DNXJmNkkNCNZImXUYWpsBPRbZ0k,500
109
+ weave/weaveapi/synthesize/v1/service_pb2.py,sha256=JE1uGRGIH8Ud3Hzdje1iQ9Wc8FYbz7pihAcEkRldx_w,7484
110
+ weave/weaveapi/synthesize/v1/service_pb2.pyi,sha256=k804aHEc_S61ii-4cteAUp05Ds-dN2QY6HvuYyyG2Jw,9864
111
+ weave/weaveapi/synthesize/v1/service_pb2_grpc.py,sha256=770CZOF6q0x284xjaSP71l_wGuv3Mf2y2JLLR2tSg7w,8944
112
+ weave/weaveapi/synthesize/v1/service_pb2_grpc.pyi,sha256=bIKxRSk9XOMLm6X4fi78rAePzxX5upAjz6L56rlYCD8,3674
113
+ weave/weaveapi/synthesize/v1/training_pb2.py,sha256=4lWoBxoT3BB7TuLVWgOOEVEdqFc0kKiMHl_jBdRGZYk,4038
114
+ weave/weaveapi/synthesize/v1/training_pb2.pyi,sha256=TUTzDRZD2D7g5O0ArA6Yv4D3R_LbdYmNUDjLzPUzGW8,6154
115
+ weave/weaveapi/synthesize/v1/training_pb2_grpc.py,sha256=fdRE784m723PjH1jxpy3TgXFFaFZ4gLdJHbKGuy-4F4,146
116
+ weave/weaveapi/synthesize/v1/training_pb2_grpc.pyi,sha256=G0Gw-l0k7rGGVi6-DNXJmNkkNCNZImXUYWpsBPRbZ0k,500
117
+ weave/weavesql/llmxdb/capabilities.py,sha256=3JJ4_4f5N2CfRSKAxalF13DD2clkOL14TssvB9BEpZk,16748
118
+ weave/weavesql/llmxdb/changes.py,sha256=Arr46CNUbkrnZ1B5fyjLHcx6KgZ47OOPaflmFIL86PI,9102
119
+ weave/weavesql/llmxdb/models.py,sha256=nRlCNfWk9YT_HEcNkJvIZ_1FfhBzwDClkcJriBvD-Ns,21785
120
+ weave/weavesql/llmxdb/providers.py,sha256=o7S_6FOrsptM40RSSJUBRi4vzG7y4ieHnn_ICtJnCNY,12118
121
+ weave/weavesql/llmxdb/scraper_runs.py,sha256=zd4kj0xtTKtd42w27aIaCmktv6uJlkd3VSCvhjBMf-E,8996
122
+ weave/weavesql/llmxdb/search.py,sha256=Ok0vQ7acxsV_8vW4o7_zQpJibN88dUEWiQde-LfbmOU,27166
123
+ weave/weavesql/weavedb/dataset.py,sha256=89EdDDoJZlFXSjtwe_1NWXwUnnMiWy4XaCEOWmat85k,2444
124
+ weave/weavesql/weavedb/models.py,sha256=mM0EiMdysx_Q9ZWoKKtU9Damm-oKbencpPpN1peXBkw,3107
125
+ weave/weavesql/weavedb/relationships.py,sha256=5SIiS4Dd16lkP0z7iF49hh5_nC-166dHULVs02doVac,2304
126
+ weave/weavesql/weavedb/storage.py,sha256=8qwV74Oh_cTsPbyswMNGLJgPSuDd0MDLl46TD1cmEL0,3233
127
+ weave/weavesql/weavedb/synthesizer.py,sha256=-PRvJz0N_ONF-sUyh4VdamJFUw7AnC7HrQ7MEFsHXWY,3253
128
+ weave_python-0.30.3.dist-info/METADATA,sha256=V9uN6vCPxvzdTqBBLnVJQcVSWDADNpNLbFAD-OOtv5g,1444
129
+ weave_python-0.30.3.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
130
+ weave_python-0.30.3.dist-info/licenses/LICENSE,sha256=oO00b58BS5uBxjk80lqVRUm_p8yMsGilVGCdO4ulm5Y,4216
131
+ weave_python-0.30.3.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: hatchling 1.27.0
2
+ Generator: hatchling 1.28.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any