rushdb 2.3.0__tar.gz → 2.6.0__tar.gz
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.
- {rushdb-2.3.0 → rushdb-2.6.0}/PKG-INFO +3 -2
- {rushdb-2.3.0 → rushdb-2.6.0}/README.md +2 -1
- {rushdb-2.3.0 → rushdb-2.6.0}/pyproject.toml +1 -1
- {rushdb-2.3.0 → rushdb-2.6.0}/src/rushdb/api/ai.py +12 -12
- {rushdb-2.3.0 → rushdb-2.6.0}/src/rushdb/api/records.py +5 -1
- {rushdb-2.3.0 → rushdb-2.6.0}/src/rushdb/api/relationship_patterns.py +3 -3
- {rushdb-2.3.0 → rushdb-2.6.0}/src/rushdb/models/api_response.py +1 -1
- {rushdb-2.3.0 → rushdb-2.6.0}/src/rushdb/models/property.py +3 -2
- {rushdb-2.3.0 → rushdb-2.6.0}/uv.lock +49 -49
- {rushdb-2.3.0 → rushdb-2.6.0}/.env.example +0 -0
- {rushdb-2.3.0 → rushdb-2.6.0}/.github/workflows/ci.yml +0 -0
- {rushdb-2.3.0 → rushdb-2.6.0}/.gitignore +0 -0
- {rushdb-2.3.0 → rushdb-2.6.0}/CODE_OF_CONDUCT.md +0 -0
- {rushdb-2.3.0 → rushdb-2.6.0}/CONTRIBUTING.md +0 -0
- {rushdb-2.3.0 → rushdb-2.6.0}/LICENSE +0 -0
- {rushdb-2.3.0 → rushdb-2.6.0}/rushdb-logo.svg +0 -0
- {rushdb-2.3.0 → rushdb-2.6.0}/src/__init__.py +0 -0
- {rushdb-2.3.0 → rushdb-2.6.0}/src/rushdb/__init__.py +0 -0
- {rushdb-2.3.0 → rushdb-2.6.0}/src/rushdb/api/__init__.py +0 -0
- {rushdb-2.3.0 → rushdb-2.6.0}/src/rushdb/api/base.py +0 -0
- {rushdb-2.3.0 → rushdb-2.6.0}/src/rushdb/api/labels.py +0 -0
- {rushdb-2.3.0 → rushdb-2.6.0}/src/rushdb/api/properties.py +0 -0
- {rushdb-2.3.0 → rushdb-2.6.0}/src/rushdb/api/query.py +0 -0
- {rushdb-2.3.0 → rushdb-2.6.0}/src/rushdb/api/relationships.py +0 -0
- {rushdb-2.3.0 → rushdb-2.6.0}/src/rushdb/api/transactions.py +0 -0
- {rushdb-2.3.0 → rushdb-2.6.0}/src/rushdb/client.py +0 -0
- {rushdb-2.3.0 → rushdb-2.6.0}/src/rushdb/common.py +0 -0
- {rushdb-2.3.0 → rushdb-2.6.0}/src/rushdb/models/__init__.py +0 -0
- {rushdb-2.3.0 → rushdb-2.6.0}/src/rushdb/models/record.py +0 -0
- {rushdb-2.3.0 → rushdb-2.6.0}/src/rushdb/models/relationship.py +0 -0
- {rushdb-2.3.0 → rushdb-2.6.0}/src/rushdb/models/result.py +0 -0
- {rushdb-2.3.0 → rushdb-2.6.0}/src/rushdb/models/search_query.py +0 -0
- {rushdb-2.3.0 → rushdb-2.6.0}/src/rushdb/models/transaction.py +0 -0
- {rushdb-2.3.0 → rushdb-2.6.0}/src/rushdb/utils/token_prefix.py +0 -0
- {rushdb-2.3.0 → rushdb-2.6.0}/tests/__init__.py +0 -0
- {rushdb-2.3.0 → rushdb-2.6.0}/tests/test_base_setup.py +0 -0
- {rushdb-2.3.0 → rushdb-2.6.0}/tests/test_create_import.py +0 -0
- {rushdb-2.3.0 → rushdb-2.6.0}/tests/test_relationship_patterns.py +0 -0
- {rushdb-2.3.0 → rushdb-2.6.0}/tests/test_search_query.py +0 -0
- {rushdb-2.3.0 → rushdb-2.6.0}/tests/test_search_result.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rushdb
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.6.0
|
|
4
4
|
Summary: RushDB Python SDK — memory layer for AI agents and modern apps
|
|
5
5
|
Project-URL: Homepage, https://github.com/rush-db/rushdb-python
|
|
6
6
|
Project-URL: Repository, https://github.com/rush-db/rushdb-python
|
|
@@ -161,7 +161,8 @@ csv_data = "name,email,age\nJohn,john@example.com,30\nJane,jane@example.com,25"
|
|
|
161
161
|
db.records.import_csv(
|
|
162
162
|
label='USER',
|
|
163
163
|
data=csv_data,
|
|
164
|
-
|
|
164
|
+
# skipEmptyValues: treat empty cells ("" / []) as unset instead of storing them (0/False are kept)
|
|
165
|
+
options={'returnResult': True, 'suggestTypes': True, 'skipEmptyValues': True},
|
|
165
166
|
parse_config={'header': True, 'skipEmptyLines': True, 'dynamicTyping': True},
|
|
166
167
|
)
|
|
167
168
|
```
|
|
@@ -136,7 +136,8 @@ csv_data = "name,email,age\nJohn,john@example.com,30\nJane,jane@example.com,25"
|
|
|
136
136
|
db.records.import_csv(
|
|
137
137
|
label='USER',
|
|
138
138
|
data=csv_data,
|
|
139
|
-
|
|
139
|
+
# skipEmptyValues: treat empty cells ("" / []) as unset instead of storing them (0/False are kept)
|
|
140
|
+
options={'returnResult': True, 'suggestTypes': True, 'skipEmptyValues': True},
|
|
140
141
|
parse_config={'header': True, 'skipEmptyLines': True, 'dynamicTyping': True},
|
|
141
142
|
)
|
|
142
143
|
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"""AI API for RushDB Python SDK.
|
|
2
2
|
|
|
3
|
-
Provides methods for graph
|
|
3
|
+
Provides methods for graph schema exploration, semantic vector search,
|
|
4
4
|
and embedding index management.
|
|
5
5
|
"""
|
|
6
6
|
|
|
@@ -123,7 +123,7 @@ class AIAPI(BaseAPI):
|
|
|
123
123
|
Example::
|
|
124
124
|
|
|
125
125
|
>>> db = RushDB(api_key="...")
|
|
126
|
-
>>>
|
|
126
|
+
>>> schema = db.ai.get_schema()
|
|
127
127
|
>>> results = db.ai.search({"query": "fast cars", "propertyName": "description"})
|
|
128
128
|
>>> db.ai.indexes.create({"propertyName": "description", "label": "Book"})
|
|
129
129
|
"""
|
|
@@ -132,12 +132,12 @@ class AIAPI(BaseAPI):
|
|
|
132
132
|
super().__init__(client)
|
|
133
133
|
self.indexes = _AIIndexesNamespace(client)
|
|
134
134
|
|
|
135
|
-
def
|
|
135
|
+
def get_schema(
|
|
136
136
|
self,
|
|
137
137
|
params: Optional[Dict[str, Any]] = None,
|
|
138
138
|
transaction: Optional[Union[Transaction, str]] = None,
|
|
139
139
|
) -> ApiResponse:
|
|
140
|
-
"""Return the full graph
|
|
140
|
+
"""Return the full graph schema as structured JSON.
|
|
141
141
|
|
|
142
142
|
Each item contains the label name, record count, properties with value
|
|
143
143
|
ranges/samples, and cross-label relationships with direction.
|
|
@@ -149,13 +149,13 @@ class AIAPI(BaseAPI):
|
|
|
149
149
|
|
|
150
150
|
Args:
|
|
151
151
|
params: Optional filter. Pass ``{"labels": ["Label1"]}`` to scope
|
|
152
|
-
the
|
|
153
|
-
to bypass the 1-hour
|
|
152
|
+
the schema to specific labels only. Pass ``{"force": True}``
|
|
153
|
+
to bypass the 1-hour schema cache and trigger a full
|
|
154
154
|
recalculation.
|
|
155
155
|
transaction: Optional transaction context.
|
|
156
156
|
|
|
157
157
|
Returns:
|
|
158
|
-
ApiResponse: Response whose ``data`` is a list of
|
|
158
|
+
ApiResponse: Response whose ``data`` is a list of schema items.
|
|
159
159
|
"""
|
|
160
160
|
headers: Dict[str, str] = {}
|
|
161
161
|
if transaction is not None:
|
|
@@ -165,7 +165,7 @@ class AIAPI(BaseAPI):
|
|
|
165
165
|
headers["x-transaction-id"] = tx_id
|
|
166
166
|
|
|
167
167
|
response = self.client._make_request(
|
|
168
|
-
"POST", "/ai/
|
|
168
|
+
"POST", "/ai/schema", params or {}, headers=headers or None
|
|
169
169
|
)
|
|
170
170
|
return ApiResponse(
|
|
171
171
|
data=response.get("data"),
|
|
@@ -173,12 +173,12 @@ class AIAPI(BaseAPI):
|
|
|
173
173
|
total=response.get("total"),
|
|
174
174
|
)
|
|
175
175
|
|
|
176
|
-
def
|
|
176
|
+
def get_schema_markdown(
|
|
177
177
|
self,
|
|
178
178
|
params: Optional[Dict[str, Any]] = None,
|
|
179
179
|
transaction: Optional[Union[Transaction, str]] = None,
|
|
180
180
|
) -> ApiResponse:
|
|
181
|
-
"""Return the full graph
|
|
181
|
+
"""Return the full graph schema as compact Markdown tables.
|
|
182
182
|
|
|
183
183
|
Token-efficient representation intended for direct LLM consumption.
|
|
184
184
|
Includes labels with counts, properties with types and value
|
|
@@ -191,7 +191,7 @@ class AIAPI(BaseAPI):
|
|
|
191
191
|
Args:
|
|
192
192
|
params: Optional filter. Pass ``{"labels": ["Label1"]}`` to scope
|
|
193
193
|
the output to specific labels only. Pass ``{"force": True}``
|
|
194
|
-
to bypass the 1-hour
|
|
194
|
+
to bypass the 1-hour schema cache and trigger a full
|
|
195
195
|
recalculation.
|
|
196
196
|
transaction: Optional transaction context.
|
|
197
197
|
|
|
@@ -206,7 +206,7 @@ class AIAPI(BaseAPI):
|
|
|
206
206
|
headers["x-transaction-id"] = tx_id
|
|
207
207
|
|
|
208
208
|
response = self.client._make_request(
|
|
209
|
-
"POST", "/ai/
|
|
209
|
+
"POST", "/ai/schema/md", params or {}, headers=headers or None
|
|
210
210
|
)
|
|
211
211
|
return ApiResponse(
|
|
212
212
|
data=response.get("data"),
|
|
@@ -172,6 +172,8 @@ class RecordsAPI(BaseAPI):
|
|
|
172
172
|
Available options:
|
|
173
173
|
- returnResult (bool): Whether to return the created record data. Defaults to True.
|
|
174
174
|
- suggestTypes (bool): Whether to automatically suggest data types. Defaults to True.
|
|
175
|
+
- skipEmptyValues (bool): Treat empty strings ("") and empty arrays ([]) as unset —
|
|
176
|
+
no property is created. 0 and False are kept. Defaults to False.
|
|
175
177
|
vectors (Optional[List[Dict[str, Any]]]): Optional pre-computed embedding vectors
|
|
176
178
|
to write alongside the record. Each entry must contain at least
|
|
177
179
|
``propertyName`` and ``vector``; ``similarityFunction`` is required when
|
|
@@ -231,7 +233,9 @@ class RecordsAPI(BaseAPI):
|
|
|
231
233
|
record. Nested objects/arrays are not supported here — raises
|
|
232
234
|
``ValueError`` if any item contains a nested object or list.
|
|
233
235
|
options: Optional write options forwarded as-is to the server
|
|
234
|
-
(e.g. ``suggestTypes``, ``
|
|
236
|
+
(e.g. ``suggestTypes``, ``skipEmptyValues``, ``mergeBy``,
|
|
237
|
+
``mergeStrategy``, etc.). ``skipEmptyValues`` treats empty strings
|
|
238
|
+
and empty arrays as unset (``0``/``False`` are kept); defaults to False.
|
|
235
239
|
vectors: Optional per-row inline vectors for external embedding indexes.
|
|
236
240
|
``vectors[i]`` is applied to ``data[i]``. Each element is a list of
|
|
237
241
|
vector entry dicts: ``[{"propertyName": str, "vector": List[float],
|
|
@@ -10,7 +10,7 @@ if TYPE_CHECKING:
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
class RelationshipPatternsAPI(BaseAPI):
|
|
13
|
-
"""Review and manage relationship patterns inferred from project
|
|
13
|
+
"""Review and manage relationship patterns inferred from project schema.
|
|
14
14
|
|
|
15
15
|
Accessed via ``db.relationships.patterns``.
|
|
16
16
|
"""
|
|
@@ -27,12 +27,12 @@ class RelationshipPatternsAPI(BaseAPI):
|
|
|
27
27
|
)
|
|
28
28
|
|
|
29
29
|
def list(self) -> ApiResponse:
|
|
30
|
-
"""List inferred patterns,
|
|
30
|
+
"""List inferred patterns, schema relationships, and analysis status."""
|
|
31
31
|
response = self.client._make_request("GET", "/relationships/patterns")
|
|
32
32
|
return self._wrap(response)
|
|
33
33
|
|
|
34
34
|
def analyze(self) -> ApiResponse:
|
|
35
|
-
"""Queue
|
|
35
|
+
"""Queue schema analysis to generate relationship pattern suggestions."""
|
|
36
36
|
response = self.client._make_request(
|
|
37
37
|
"POST", "/relationships/patterns/analyze", {}
|
|
38
38
|
)
|
|
@@ -19,7 +19,7 @@ class ApiResponse(Generic[T]):
|
|
|
19
19
|
total: Optional total count (e.g. for list endpoints).
|
|
20
20
|
|
|
21
21
|
Example:
|
|
22
|
-
>>> response = db.ai.
|
|
22
|
+
>>> response = db.ai.get_schema_markdown()
|
|
23
23
|
>>> schema_md = response.data # str
|
|
24
24
|
>>> response = db.ai.indexes.find()
|
|
25
25
|
>>> indexes = response.data # list[dict]
|
|
@@ -21,8 +21,9 @@ BooleanValue = bool
|
|
|
21
21
|
NumberValue = Union[float, int]
|
|
22
22
|
StringValue = str
|
|
23
23
|
|
|
24
|
-
# Property types
|
|
25
|
-
|
|
24
|
+
# Property types. A None/null value means the field is unset; `None` is still accepted as an
|
|
25
|
+
# input value in `PropertyWithValue.value` below.
|
|
26
|
+
PropertyType = Literal["boolean", "datetime", "number", "string"]
|
|
26
27
|
|
|
27
28
|
|
|
28
29
|
class Property(TypedDict):
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
version = 1
|
|
2
|
-
revision =
|
|
2
|
+
revision = 3
|
|
3
3
|
requires-python = ">=3.8"
|
|
4
4
|
resolution-markers = [
|
|
5
5
|
"python_full_version >= '3.10'",
|
|
@@ -15,13 +15,13 @@ resolution-markers = [
|
|
|
15
15
|
"python_full_version < '3.9'",
|
|
16
16
|
]
|
|
17
17
|
dependencies = [
|
|
18
|
-
{ name = "click", version = "8.1.8", source = { registry = "https://pypi.org/simple" }
|
|
19
|
-
{ name = "mypy-extensions"
|
|
20
|
-
{ name = "packaging"
|
|
21
|
-
{ name = "pathspec"
|
|
22
|
-
{ name = "platformdirs", version = "4.3.6", source = { registry = "https://pypi.org/simple" }
|
|
23
|
-
{ name = "tomli"
|
|
24
|
-
{ name = "typing-extensions", version = "4.13.2", source = { registry = "https://pypi.org/simple" }
|
|
18
|
+
{ name = "click", version = "8.1.8", source = { registry = "https://pypi.org/simple" } },
|
|
19
|
+
{ name = "mypy-extensions" },
|
|
20
|
+
{ name = "packaging" },
|
|
21
|
+
{ name = "pathspec" },
|
|
22
|
+
{ name = "platformdirs", version = "4.3.6", source = { registry = "https://pypi.org/simple" } },
|
|
23
|
+
{ name = "tomli" },
|
|
24
|
+
{ name = "typing-extensions", version = "4.13.2", source = { registry = "https://pypi.org/simple" } },
|
|
25
25
|
]
|
|
26
26
|
sdist = { url = "https://files.pythonhosted.org/packages/04/b0/46fb0d4e00372f4a86a6f8efa3cb193c9f64863615e39010b1477e010578/black-24.8.0.tar.gz", hash = "sha256:2500945420b6784c38b9ee885af039f5e7471ef284ab03fa35ecdde4688cd83f", size = 644810, upload-time = "2024-08-02T17:43:18.405Z" }
|
|
27
27
|
wheels = [
|
|
@@ -57,14 +57,14 @@ resolution-markers = [
|
|
|
57
57
|
"python_full_version == '3.9.*'",
|
|
58
58
|
]
|
|
59
59
|
dependencies = [
|
|
60
|
-
{ name = "click", version = "8.1.8", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version
|
|
60
|
+
{ name = "click", version = "8.1.8", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
|
|
61
61
|
{ name = "click", version = "8.2.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
|
|
62
|
-
{ name = "mypy-extensions"
|
|
63
|
-
{ name = "packaging"
|
|
64
|
-
{ name = "pathspec"
|
|
65
|
-
{ name = "platformdirs", version = "4.3.8", source = { registry = "https://pypi.org/simple" }
|
|
66
|
-
{ name = "tomli", marker = "python_full_version
|
|
67
|
-
{ name = "typing-extensions", version = "4.14.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version
|
|
62
|
+
{ name = "mypy-extensions" },
|
|
63
|
+
{ name = "packaging" },
|
|
64
|
+
{ name = "pathspec" },
|
|
65
|
+
{ name = "platformdirs", version = "4.3.8", source = { registry = "https://pypi.org/simple" } },
|
|
66
|
+
{ name = "tomli", marker = "python_full_version < '3.11'" },
|
|
67
|
+
{ name = "typing-extensions", version = "4.14.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
|
|
68
68
|
]
|
|
69
69
|
sdist = { url = "https://files.pythonhosted.org/packages/94/49/26a7b0f3f35da4b5a65f081943b7bcd22d7002f5f0fb8098ec1ff21cb6ef/black-25.1.0.tar.gz", hash = "sha256:33496d5cd1222ad73391352b4ae8da15253c5de89b93a80b3e2c8d9a19ec2666", size = 649449, upload-time = "2025-01-29T04:15:40.373Z" }
|
|
70
70
|
wheels = [
|
|
@@ -196,7 +196,7 @@ resolution-markers = [
|
|
|
196
196
|
"python_full_version < '3.9'",
|
|
197
197
|
]
|
|
198
198
|
dependencies = [
|
|
199
|
-
{ name = "colorama", marker = "
|
|
199
|
+
{ name = "colorama", marker = "sys_platform == 'win32'" },
|
|
200
200
|
]
|
|
201
201
|
sdist = { url = "https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a", size = 226593, upload-time = "2024-12-21T18:38:44.339Z" }
|
|
202
202
|
wheels = [
|
|
@@ -211,7 +211,7 @@ resolution-markers = [
|
|
|
211
211
|
"python_full_version >= '3.10'",
|
|
212
212
|
]
|
|
213
213
|
dependencies = [
|
|
214
|
-
{ name = "colorama", marker = "
|
|
214
|
+
{ name = "colorama", marker = "sys_platform == 'win32'" },
|
|
215
215
|
]
|
|
216
216
|
sdist = { url = "https://files.pythonhosted.org/packages/60/6c/8ca2efa64cf75a977a0d7fac081354553ebe483345c734fb6b6515d96bbc/click-8.2.1.tar.gz", hash = "sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202", size = 286342, upload-time = "2025-05-20T23:19:49.832Z" }
|
|
217
217
|
wheels = [
|
|
@@ -311,7 +311,7 @@ wheels = [
|
|
|
311
311
|
|
|
312
312
|
[package.optional-dependencies]
|
|
313
313
|
toml = [
|
|
314
|
-
{ name = "tomli"
|
|
314
|
+
{ name = "tomli" },
|
|
315
315
|
]
|
|
316
316
|
|
|
317
317
|
[[package]]
|
|
@@ -394,7 +394,7 @@ wheels = [
|
|
|
394
394
|
|
|
395
395
|
[package.optional-dependencies]
|
|
396
396
|
toml = [
|
|
397
|
-
{ name = "tomli", marker = "python_full_version
|
|
397
|
+
{ name = "tomli", marker = "python_full_version <= '3.11'" },
|
|
398
398
|
]
|
|
399
399
|
|
|
400
400
|
[[package]]
|
|
@@ -402,8 +402,8 @@ name = "exceptiongroup"
|
|
|
402
402
|
version = "1.3.0"
|
|
403
403
|
source = { registry = "https://pypi.org/simple" }
|
|
404
404
|
dependencies = [
|
|
405
|
-
{ name = "typing-extensions", version = "4.13.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
|
|
406
|
-
{ name = "typing-extensions", version = "4.14.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9' and python_full_version < '3.
|
|
405
|
+
{ name = "typing-extensions", version = "4.13.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9' or python_full_version >= '3.11'" },
|
|
406
|
+
{ name = "typing-extensions", version = "4.14.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9' and python_full_version < '3.11'" },
|
|
407
407
|
]
|
|
408
408
|
sdist = { url = "https://files.pythonhosted.org/packages/0b/9f/a65090624ecf468cdca03533906e7c69ed7588582240cfe7cc9e770b50eb/exceptiongroup-1.3.0.tar.gz", hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88", size = 29749, upload-time = "2025-05-10T17:42:51.123Z" }
|
|
409
409
|
wheels = [
|
|
@@ -461,9 +461,9 @@ resolution-markers = [
|
|
|
461
461
|
"python_full_version < '3.9'",
|
|
462
462
|
]
|
|
463
463
|
dependencies = [
|
|
464
|
-
{ name = "mypy-extensions"
|
|
465
|
-
{ name = "tomli"
|
|
466
|
-
{ name = "typing-extensions", version = "4.13.2", source = { registry = "https://pypi.org/simple" }
|
|
464
|
+
{ name = "mypy-extensions" },
|
|
465
|
+
{ name = "tomli" },
|
|
466
|
+
{ name = "typing-extensions", version = "4.13.2", source = { registry = "https://pypi.org/simple" } },
|
|
467
467
|
]
|
|
468
468
|
sdist = { url = "https://files.pythonhosted.org/packages/b9/eb/2c92d8ea1e684440f54fa49ac5d9a5f19967b7b472a281f419e69a8d228e/mypy-1.14.1.tar.gz", hash = "sha256:7ec88144fe9b510e8475ec2f5f251992690fcf89ccb4500b214b4226abcd32d6", size = 3216051, upload-time = "2024-12-30T16:39:07.335Z" }
|
|
469
469
|
wheels = [
|
|
@@ -515,10 +515,10 @@ resolution-markers = [
|
|
|
515
515
|
"python_full_version == '3.9.*'",
|
|
516
516
|
]
|
|
517
517
|
dependencies = [
|
|
518
|
-
{ name = "mypy-extensions"
|
|
519
|
-
{ name = "pathspec"
|
|
520
|
-
{ name = "tomli", marker = "python_full_version
|
|
521
|
-
{ name = "typing-extensions", version = "4.14.0", source = { registry = "https://pypi.org/simple" }
|
|
518
|
+
{ name = "mypy-extensions" },
|
|
519
|
+
{ name = "pathspec" },
|
|
520
|
+
{ name = "tomli", marker = "python_full_version < '3.11'" },
|
|
521
|
+
{ name = "typing-extensions", version = "4.14.0", source = { registry = "https://pypi.org/simple" } },
|
|
522
522
|
]
|
|
523
523
|
sdist = { url = "https://files.pythonhosted.org/packages/81/69/92c7fa98112e4d9eb075a239caa4ef4649ad7d441545ccffbd5e34607cbb/mypy-1.16.1.tar.gz", hash = "sha256:6bd00a0a2094841c5e47e7374bb42b83d64c527a502e3334e1173a0c24437bab", size = 3324747, upload-time = "2025-06-16T16:51:35.145Z" }
|
|
524
524
|
wheels = [
|
|
@@ -649,12 +649,12 @@ resolution-markers = [
|
|
|
649
649
|
"python_full_version < '3.9'",
|
|
650
650
|
]
|
|
651
651
|
dependencies = [
|
|
652
|
-
{ name = "colorama", marker = "
|
|
653
|
-
{ name = "exceptiongroup"
|
|
654
|
-
{ name = "iniconfig"
|
|
655
|
-
{ name = "packaging"
|
|
656
|
-
{ name = "pluggy", version = "1.5.0", source = { registry = "https://pypi.org/simple" }
|
|
657
|
-
{ name = "tomli"
|
|
652
|
+
{ name = "colorama", marker = "sys_platform == 'win32'" },
|
|
653
|
+
{ name = "exceptiongroup" },
|
|
654
|
+
{ name = "iniconfig" },
|
|
655
|
+
{ name = "packaging" },
|
|
656
|
+
{ name = "pluggy", version = "1.5.0", source = { registry = "https://pypi.org/simple" } },
|
|
657
|
+
{ name = "tomli" },
|
|
658
658
|
]
|
|
659
659
|
sdist = { url = "https://files.pythonhosted.org/packages/ae/3c/c9d525a414d506893f0cd8a8d0de7706446213181570cdbd766691164e40/pytest-8.3.5.tar.gz", hash = "sha256:f4efe70cc14e511565ac476b57c279e12a855b11f48f212af1080ef2263d3845", size = 1450891, upload-time = "2025-03-02T12:54:54.503Z" }
|
|
660
660
|
wheels = [
|
|
@@ -670,13 +670,13 @@ resolution-markers = [
|
|
|
670
670
|
"python_full_version == '3.9.*'",
|
|
671
671
|
]
|
|
672
672
|
dependencies = [
|
|
673
|
-
{ name = "colorama", marker = "
|
|
674
|
-
{ name = "exceptiongroup", marker = "python_full_version
|
|
675
|
-
{ name = "iniconfig"
|
|
676
|
-
{ name = "packaging"
|
|
677
|
-
{ name = "pluggy", version = "1.6.0", source = { registry = "https://pypi.org/simple" }
|
|
678
|
-
{ name = "pygments"
|
|
679
|
-
{ name = "tomli", marker = "python_full_version
|
|
673
|
+
{ name = "colorama", marker = "sys_platform == 'win32'" },
|
|
674
|
+
{ name = "exceptiongroup", marker = "python_full_version < '3.11'" },
|
|
675
|
+
{ name = "iniconfig" },
|
|
676
|
+
{ name = "packaging" },
|
|
677
|
+
{ name = "pluggy", version = "1.6.0", source = { registry = "https://pypi.org/simple" } },
|
|
678
|
+
{ name = "pygments" },
|
|
679
|
+
{ name = "tomli", marker = "python_full_version < '3.11'" },
|
|
680
680
|
]
|
|
681
681
|
sdist = { url = "https://files.pythonhosted.org/packages/08/ba/45911d754e8eba3d5a841a5ce61a65a685ff1798421ac054f85aa8747dfb/pytest-8.4.1.tar.gz", hash = "sha256:7c67fd69174877359ed9371ec3af8a3d2b04741818c51e5e99cc1742251fa93c", size = 1517714, upload-time = "2025-06-18T05:48:06.109Z" }
|
|
682
682
|
wheels = [
|
|
@@ -691,8 +691,8 @@ resolution-markers = [
|
|
|
691
691
|
"python_full_version < '3.9'",
|
|
692
692
|
]
|
|
693
693
|
dependencies = [
|
|
694
|
-
{ name = "coverage", version = "7.6.1", source = { registry = "https://pypi.org/simple" }, extra = ["toml"]
|
|
695
|
-
{ name = "pytest", version = "8.3.5", source = { registry = "https://pypi.org/simple" }
|
|
694
|
+
{ name = "coverage", version = "7.6.1", source = { registry = "https://pypi.org/simple" }, extra = ["toml"] },
|
|
695
|
+
{ name = "pytest", version = "8.3.5", source = { registry = "https://pypi.org/simple" } },
|
|
696
696
|
]
|
|
697
697
|
sdist = { url = "https://files.pythonhosted.org/packages/74/67/00efc8d11b630c56f15f4ad9c7f9223f1e5ec275aaae3fa9118c6a223ad2/pytest-cov-5.0.0.tar.gz", hash = "sha256:5837b58e9f6ebd335b0f8060eecce69b662415b16dc503883a02f45dfeb14857", size = 63042, upload-time = "2024-03-24T20:16:34.856Z" }
|
|
698
698
|
wheels = [
|
|
@@ -708,9 +708,9 @@ resolution-markers = [
|
|
|
708
708
|
"python_full_version == '3.9.*'",
|
|
709
709
|
]
|
|
710
710
|
dependencies = [
|
|
711
|
-
{ name = "coverage", version = "7.9.1", source = { registry = "https://pypi.org/simple" }, extra = ["toml"]
|
|
712
|
-
{ name = "pluggy", version = "1.6.0", source = { registry = "https://pypi.org/simple" }
|
|
713
|
-
{ name = "pytest", version = "8.4.1", source = { registry = "https://pypi.org/simple" }
|
|
711
|
+
{ name = "coverage", version = "7.9.1", source = { registry = "https://pypi.org/simple" }, extra = ["toml"] },
|
|
712
|
+
{ name = "pluggy", version = "1.6.0", source = { registry = "https://pypi.org/simple" } },
|
|
713
|
+
{ name = "pytest", version = "8.4.1", source = { registry = "https://pypi.org/simple" } },
|
|
714
714
|
]
|
|
715
715
|
sdist = { url = "https://files.pythonhosted.org/packages/18/99/668cade231f434aaa59bbfbf49469068d2ddd945000621d3d165d2e7dd7b/pytest_cov-6.2.1.tar.gz", hash = "sha256:25cc6cc0a5358204b8108ecedc51a9b57b34cc6b8c967cc2c01a4e00d8a67da2", size = 69432, upload-time = "2025-06-12T10:47:47.684Z" }
|
|
716
716
|
wheels = [
|
|
@@ -785,7 +785,7 @@ wheels = [
|
|
|
785
785
|
|
|
786
786
|
[[package]]
|
|
787
787
|
name = "rushdb"
|
|
788
|
-
version = "2.
|
|
788
|
+
version = "2.6.0"
|
|
789
789
|
source = { editable = "." }
|
|
790
790
|
dependencies = [
|
|
791
791
|
{ name = "python-dotenv", version = "1.0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
|
|
@@ -930,7 +930,7 @@ resolution-markers = [
|
|
|
930
930
|
"python_full_version < '3.9'",
|
|
931
931
|
]
|
|
932
932
|
dependencies = [
|
|
933
|
-
{ name = "urllib3", version = "2.2.3", source = { registry = "https://pypi.org/simple" }
|
|
933
|
+
{ name = "urllib3", version = "2.2.3", source = { registry = "https://pypi.org/simple" } },
|
|
934
934
|
]
|
|
935
935
|
sdist = { url = "https://files.pythonhosted.org/packages/fa/3c/4f2a430c01a22abd49a583b6b944173e39e7d01b688190a5618bd59a2e22/types-requests-2.32.0.20241016.tar.gz", hash = "sha256:0d9cad2f27515d0e3e3da7134a1b6f28fb97129d86b867f24d9c726452634d95", size = 18065, upload-time = "2024-10-16T02:46:10.818Z" }
|
|
936
936
|
wheels = [
|
|
@@ -946,7 +946,7 @@ resolution-markers = [
|
|
|
946
946
|
"python_full_version == '3.9.*'",
|
|
947
947
|
]
|
|
948
948
|
dependencies = [
|
|
949
|
-
{ name = "urllib3", version = "2.5.0", source = { registry = "https://pypi.org/simple" }
|
|
949
|
+
{ name = "urllib3", version = "2.5.0", source = { registry = "https://pypi.org/simple" } },
|
|
950
950
|
]
|
|
951
951
|
sdist = { url = "https://files.pythonhosted.org/packages/6d/7f/73b3a04a53b0fd2a911d4ec517940ecd6600630b559e4505cc7b68beb5a0/types_requests-2.32.4.20250611.tar.gz", hash = "sha256:741c8777ed6425830bf51e54d6abe245f79b4dcb9019f1622b773463946bf826", size = 23118, upload-time = "2025-06-11T03:11:41.272Z" }
|
|
952
952
|
wheels = [
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|