mirror of
https://github.com/lancedb/lancedb.git
synced 2025-12-27 15:12:53 +00:00
Compare commits
15 Commits
python-v0.
...
python-v0.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
40f0dbb64d | ||
|
|
3b19e96ae7 | ||
|
|
78a17ad54c | ||
|
|
a8e6b491e2 | ||
|
|
cea541ca46 | ||
|
|
873ffc1042 | ||
|
|
83273ad997 | ||
|
|
d18d63c69d | ||
|
|
c3e865e8d0 | ||
|
|
a7755cb313 | ||
|
|
3490f3456f | ||
|
|
0a1d0693e1 | ||
|
|
fd330b4b4b | ||
|
|
d4e9fc08e0 | ||
|
|
3626f2f5e1 |
@@ -1,5 +1,5 @@
|
|||||||
[tool.bumpversion]
|
[tool.bumpversion]
|
||||||
current_version = "0.16.0"
|
current_version = "0.16.1-beta.1"
|
||||||
parse = """(?x)
|
parse = """(?x)
|
||||||
(?P<major>0|[1-9]\\d*)\\.
|
(?P<major>0|[1-9]\\d*)\\.
|
||||||
(?P<minor>0|[1-9]\\d*)\\.
|
(?P<minor>0|[1-9]\\d*)\\.
|
||||||
|
|||||||
32
Cargo.lock
generated
32
Cargo.lock
generated
@@ -2631,7 +2631,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "fsst"
|
name = "fsst"
|
||||||
version = "0.23.1"
|
version = "0.23.1"
|
||||||
source = "git+https://github.com/lancedb/lance.git?tag=v0.23.1-beta.1#fbea65bbbde4d86404dd62adc4ff8f1cd706027e"
|
source = "git+https://github.com/lancedb/lance.git?tag=v0.23.1-beta.2#2e2bf1a75b464fc8bcf3f7e3f568e417b4aa9339"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"rand",
|
"rand",
|
||||||
]
|
]
|
||||||
@@ -3584,7 +3584,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "lance"
|
name = "lance"
|
||||||
version = "0.23.1"
|
version = "0.23.1"
|
||||||
source = "git+https://github.com/lancedb/lance.git?tag=v0.23.1-beta.1#fbea65bbbde4d86404dd62adc4ff8f1cd706027e"
|
source = "git+https://github.com/lancedb/lance.git?tag=v0.23.1-beta.2#2e2bf1a75b464fc8bcf3f7e3f568e417b4aa9339"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"arrow",
|
"arrow",
|
||||||
"arrow-arith",
|
"arrow-arith",
|
||||||
@@ -3644,7 +3644,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "lance-arrow"
|
name = "lance-arrow"
|
||||||
version = "0.23.1"
|
version = "0.23.1"
|
||||||
source = "git+https://github.com/lancedb/lance.git?tag=v0.23.1-beta.1#fbea65bbbde4d86404dd62adc4ff8f1cd706027e"
|
source = "git+https://github.com/lancedb/lance.git?tag=v0.23.1-beta.2#2e2bf1a75b464fc8bcf3f7e3f568e417b4aa9339"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"arrow-array",
|
"arrow-array",
|
||||||
"arrow-buffer",
|
"arrow-buffer",
|
||||||
@@ -3662,7 +3662,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "lance-core"
|
name = "lance-core"
|
||||||
version = "0.23.1"
|
version = "0.23.1"
|
||||||
source = "git+https://github.com/lancedb/lance.git?tag=v0.23.1-beta.1#fbea65bbbde4d86404dd62adc4ff8f1cd706027e"
|
source = "git+https://github.com/lancedb/lance.git?tag=v0.23.1-beta.2#2e2bf1a75b464fc8bcf3f7e3f568e417b4aa9339"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"arrow-array",
|
"arrow-array",
|
||||||
"arrow-buffer",
|
"arrow-buffer",
|
||||||
@@ -3699,7 +3699,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "lance-datafusion"
|
name = "lance-datafusion"
|
||||||
version = "0.23.1"
|
version = "0.23.1"
|
||||||
source = "git+https://github.com/lancedb/lance.git?tag=v0.23.1-beta.1#fbea65bbbde4d86404dd62adc4ff8f1cd706027e"
|
source = "git+https://github.com/lancedb/lance.git?tag=v0.23.1-beta.2#2e2bf1a75b464fc8bcf3f7e3f568e417b4aa9339"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"arrow",
|
"arrow",
|
||||||
"arrow-array",
|
"arrow-array",
|
||||||
@@ -3725,7 +3725,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "lance-encoding"
|
name = "lance-encoding"
|
||||||
version = "0.23.1"
|
version = "0.23.1"
|
||||||
source = "git+https://github.com/lancedb/lance.git?tag=v0.23.1-beta.1#fbea65bbbde4d86404dd62adc4ff8f1cd706027e"
|
source = "git+https://github.com/lancedb/lance.git?tag=v0.23.1-beta.2#2e2bf1a75b464fc8bcf3f7e3f568e417b4aa9339"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"arrayref",
|
"arrayref",
|
||||||
"arrow",
|
"arrow",
|
||||||
@@ -3764,7 +3764,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "lance-file"
|
name = "lance-file"
|
||||||
version = "0.23.1"
|
version = "0.23.1"
|
||||||
source = "git+https://github.com/lancedb/lance.git?tag=v0.23.1-beta.1#fbea65bbbde4d86404dd62adc4ff8f1cd706027e"
|
source = "git+https://github.com/lancedb/lance.git?tag=v0.23.1-beta.2#2e2bf1a75b464fc8bcf3f7e3f568e417b4aa9339"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"arrow-arith",
|
"arrow-arith",
|
||||||
"arrow-array",
|
"arrow-array",
|
||||||
@@ -3799,7 +3799,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "lance-index"
|
name = "lance-index"
|
||||||
version = "0.23.1"
|
version = "0.23.1"
|
||||||
source = "git+https://github.com/lancedb/lance.git?tag=v0.23.1-beta.1#fbea65bbbde4d86404dd62adc4ff8f1cd706027e"
|
source = "git+https://github.com/lancedb/lance.git?tag=v0.23.1-beta.2#2e2bf1a75b464fc8bcf3f7e3f568e417b4aa9339"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"arrow",
|
"arrow",
|
||||||
"arrow-array",
|
"arrow-array",
|
||||||
@@ -3852,7 +3852,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "lance-io"
|
name = "lance-io"
|
||||||
version = "0.23.1"
|
version = "0.23.1"
|
||||||
source = "git+https://github.com/lancedb/lance.git?tag=v0.23.1-beta.1#fbea65bbbde4d86404dd62adc4ff8f1cd706027e"
|
source = "git+https://github.com/lancedb/lance.git?tag=v0.23.1-beta.2#2e2bf1a75b464fc8bcf3f7e3f568e417b4aa9339"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"arrow",
|
"arrow",
|
||||||
"arrow-arith",
|
"arrow-arith",
|
||||||
@@ -3891,7 +3891,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "lance-linalg"
|
name = "lance-linalg"
|
||||||
version = "0.23.1"
|
version = "0.23.1"
|
||||||
source = "git+https://github.com/lancedb/lance.git?tag=v0.23.1-beta.1#fbea65bbbde4d86404dd62adc4ff8f1cd706027e"
|
source = "git+https://github.com/lancedb/lance.git?tag=v0.23.1-beta.2#2e2bf1a75b464fc8bcf3f7e3f568e417b4aa9339"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"arrow-array",
|
"arrow-array",
|
||||||
"arrow-ord",
|
"arrow-ord",
|
||||||
@@ -3915,7 +3915,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "lance-table"
|
name = "lance-table"
|
||||||
version = "0.23.1"
|
version = "0.23.1"
|
||||||
source = "git+https://github.com/lancedb/lance.git?tag=v0.23.1-beta.1#fbea65bbbde4d86404dd62adc4ff8f1cd706027e"
|
source = "git+https://github.com/lancedb/lance.git?tag=v0.23.1-beta.2#2e2bf1a75b464fc8bcf3f7e3f568e417b4aa9339"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"arrow",
|
"arrow",
|
||||||
"arrow-array",
|
"arrow-array",
|
||||||
@@ -3955,7 +3955,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "lance-testing"
|
name = "lance-testing"
|
||||||
version = "0.23.1"
|
version = "0.23.1"
|
||||||
source = "git+https://github.com/lancedb/lance.git?tag=v0.23.1-beta.1#fbea65bbbde4d86404dd62adc4ff8f1cd706027e"
|
source = "git+https://github.com/lancedb/lance.git?tag=v0.23.1-beta.2#2e2bf1a75b464fc8bcf3f7e3f568e417b4aa9339"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"arrow-array",
|
"arrow-array",
|
||||||
"arrow-schema",
|
"arrow-schema",
|
||||||
@@ -3966,7 +3966,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lancedb"
|
name = "lancedb"
|
||||||
version = "0.16.0"
|
version = "0.16.1-beta.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"arrow",
|
"arrow",
|
||||||
"arrow-array",
|
"arrow-array",
|
||||||
@@ -4050,7 +4050,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lancedb-node"
|
name = "lancedb-node"
|
||||||
version = "0.16.0"
|
version = "0.16.1-beta.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"arrow-array",
|
"arrow-array",
|
||||||
"arrow-ipc",
|
"arrow-ipc",
|
||||||
@@ -4075,7 +4075,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lancedb-nodejs"
|
name = "lancedb-nodejs"
|
||||||
version = "0.16.0"
|
version = "0.16.1-beta.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"arrow-array",
|
"arrow-array",
|
||||||
"arrow-ipc",
|
"arrow-ipc",
|
||||||
@@ -4093,7 +4093,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lancedb-python"
|
name = "lancedb-python"
|
||||||
version = "0.19.0"
|
version = "0.19.1-beta.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"arrow",
|
"arrow",
|
||||||
"env_logger",
|
"env_logger",
|
||||||
|
|||||||
16
Cargo.toml
16
Cargo.toml
@@ -23,14 +23,14 @@ rust-version = "1.78.0"
|
|||||||
[workspace.dependencies]
|
[workspace.dependencies]
|
||||||
lance = { "version" = "=0.23.1", "features" = [
|
lance = { "version" = "=0.23.1", "features" = [
|
||||||
"dynamodb",
|
"dynamodb",
|
||||||
], git = "https://github.com/lancedb/lance.git", tag = "v0.23.1-beta.1"}
|
], git = "https://github.com/lancedb/lance.git", tag = "v0.23.1-beta.2"}
|
||||||
lance-io = {version = "=0.23.1", tag="v0.23.1-beta.1", git = "https://github.com/lancedb/lance.git"}
|
lance-io = {version = "=0.23.1", tag="v0.23.1-beta.2", git = "https://github.com/lancedb/lance.git"}
|
||||||
lance-index = {version = "=0.23.1", tag="v0.23.1-beta.1", git = "https://github.com/lancedb/lance.git"}
|
lance-index = {version = "=0.23.1", tag="v0.23.1-beta.2", git = "https://github.com/lancedb/lance.git"}
|
||||||
lance-linalg = {version = "=0.23.1", tag="v0.23.1-beta.1", git = "https://github.com/lancedb/lance.git"}
|
lance-linalg = {version = "=0.23.1", tag="v0.23.1-beta.2", git = "https://github.com/lancedb/lance.git"}
|
||||||
lance-table = {version = "=0.23.1", tag="v0.23.1-beta.1", git = "https://github.com/lancedb/lance.git"}
|
lance-table = {version = "=0.23.1", tag="v0.23.1-beta.2", git = "https://github.com/lancedb/lance.git"}
|
||||||
lance-testing = {version = "=0.23.1", tag="v0.23.1-beta.1", git = "https://github.com/lancedb/lance.git"}
|
lance-testing = {version = "=0.23.1", tag="v0.23.1-beta.2", git = "https://github.com/lancedb/lance.git"}
|
||||||
lance-datafusion = {version = "=0.23.1", tag="v0.23.1-beta.1", git = "https://github.com/lancedb/lance.git"}
|
lance-datafusion = {version = "=0.23.1", tag="v0.23.1-beta.2", git = "https://github.com/lancedb/lance.git"}
|
||||||
lance-encoding = {version = "=0.23.1", tag="v0.23.1-beta.1", git = "https://github.com/lancedb/lance.git"}
|
lance-encoding = {version = "=0.23.1", tag="v0.23.1-beta.2", git = "https://github.com/lancedb/lance.git"}
|
||||||
# Note that this one does not include pyarrow
|
# Note that this one does not include pyarrow
|
||||||
arrow = { version = "53.2", optional = false }
|
arrow = { version = "53.2", optional = false }
|
||||||
arrow-array = "53.2"
|
arrow-array = "53.2"
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import * as vectordb from "vectordb";
|
|||||||
// --8<-- [end:import]
|
// --8<-- [end:import]
|
||||||
|
|
||||||
(async () => {
|
(async () => {
|
||||||
|
console.log("ann_indexes.ts: start");
|
||||||
// --8<-- [start:ingest]
|
// --8<-- [start:ingest]
|
||||||
const db = await vectordb.connect("data/sample-lancedb");
|
const db = await vectordb.connect("data/sample-lancedb");
|
||||||
|
|
||||||
@@ -49,5 +50,5 @@ import * as vectordb from "vectordb";
|
|||||||
.execute();
|
.execute();
|
||||||
// --8<-- [end:search3]
|
// --8<-- [end:search3]
|
||||||
|
|
||||||
console.log("Ann indexes: done");
|
console.log("ann_indexes.ts: done");
|
||||||
})();
|
})();
|
||||||
|
|||||||
@@ -107,7 +107,6 @@ const example = async () => {
|
|||||||
// --8<-- [start:search]
|
// --8<-- [start:search]
|
||||||
const query = await tbl.search([100, 100]).limit(2).execute();
|
const query = await tbl.search([100, 100]).limit(2).execute();
|
||||||
// --8<-- [end:search]
|
// --8<-- [end:search]
|
||||||
console.log(query);
|
|
||||||
|
|
||||||
// --8<-- [start:delete]
|
// --8<-- [start:delete]
|
||||||
await tbl.delete('item = "fizz"');
|
await tbl.delete('item = "fizz"');
|
||||||
@@ -119,8 +118,9 @@ const example = async () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
async function main() {
|
async function main() {
|
||||||
|
console.log("basic_legacy.ts: start");
|
||||||
await example();
|
await example();
|
||||||
console.log("Basic example: done");
|
console.log("basic_legacy.ts: done");
|
||||||
}
|
}
|
||||||
|
|
||||||
main();
|
main();
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ async function setup() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async () => {
|
async () => {
|
||||||
|
console.log("search_legacy.ts: start");
|
||||||
await setup();
|
await setup();
|
||||||
|
|
||||||
// --8<-- [start:search1]
|
// --8<-- [start:search1]
|
||||||
@@ -37,5 +38,5 @@ async () => {
|
|||||||
.execute();
|
.execute();
|
||||||
// --8<-- [end:search2]
|
// --8<-- [end:search2]
|
||||||
|
|
||||||
console.log("search: done");
|
console.log("search_legacy.ts: done");
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import * as vectordb from "vectordb";
|
import * as vectordb from "vectordb";
|
||||||
|
|
||||||
(async () => {
|
(async () => {
|
||||||
|
console.log("sql_legacy.ts: start");
|
||||||
const db = await vectordb.connect("data/sample-lancedb");
|
const db = await vectordb.connect("data/sample-lancedb");
|
||||||
|
|
||||||
let data = [];
|
let data = [];
|
||||||
@@ -34,5 +35,5 @@ import * as vectordb from "vectordb";
|
|||||||
await tbl.filter("id = 10").limit(10).execute();
|
await tbl.filter("id = 10").limit(10).execute();
|
||||||
// --8<-- [end:sql_search]
|
// --8<-- [end:sql_search]
|
||||||
|
|
||||||
console.log("SQL search: done");
|
console.log("sql_legacy.ts: done");
|
||||||
})();
|
})();
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>com.lancedb</groupId>
|
<groupId>com.lancedb</groupId>
|
||||||
<artifactId>lancedb-parent</artifactId>
|
<artifactId>lancedb-parent</artifactId>
|
||||||
<version>0.16.0-final.0</version>
|
<version>0.16.1-beta.1</version>
|
||||||
<relativePath>../pom.xml</relativePath>
|
<relativePath>../pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
<groupId>com.lancedb</groupId>
|
<groupId>com.lancedb</groupId>
|
||||||
<artifactId>lancedb-parent</artifactId>
|
<artifactId>lancedb-parent</artifactId>
|
||||||
<version>0.16.0-final.0</version>
|
<version>0.16.1-beta.1</version>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
<name>LanceDB Parent</name>
|
<name>LanceDB Parent</name>
|
||||||
|
|||||||
68
node/package-lock.json
generated
68
node/package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "vectordb",
|
"name": "vectordb",
|
||||||
"version": "0.16.0",
|
"version": "0.16.1-beta.1",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "vectordb",
|
"name": "vectordb",
|
||||||
"version": "0.16.0",
|
"version": "0.16.1-beta.1",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64",
|
"x64",
|
||||||
"arm64"
|
"arm64"
|
||||||
@@ -52,14 +52,14 @@
|
|||||||
"uuid": "^9.0.0"
|
"uuid": "^9.0.0"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"@lancedb/vectordb-darwin-arm64": "0.16.0",
|
"@lancedb/vectordb-darwin-arm64": "0.16.1-beta.1",
|
||||||
"@lancedb/vectordb-darwin-x64": "0.16.0",
|
"@lancedb/vectordb-darwin-x64": "0.16.1-beta.1",
|
||||||
"@lancedb/vectordb-linux-arm64-gnu": "0.16.0",
|
"@lancedb/vectordb-linux-arm64-gnu": "0.16.1-beta.1",
|
||||||
"@lancedb/vectordb-linux-arm64-musl": "0.16.0",
|
"@lancedb/vectordb-linux-arm64-musl": "0.16.1-beta.1",
|
||||||
"@lancedb/vectordb-linux-x64-gnu": "0.16.0",
|
"@lancedb/vectordb-linux-x64-gnu": "0.16.1-beta.1",
|
||||||
"@lancedb/vectordb-linux-x64-musl": "0.16.0",
|
"@lancedb/vectordb-linux-x64-musl": "0.16.1-beta.1",
|
||||||
"@lancedb/vectordb-win32-arm64-msvc": "0.16.0",
|
"@lancedb/vectordb-win32-arm64-msvc": "0.16.1-beta.1",
|
||||||
"@lancedb/vectordb-win32-x64-msvc": "0.16.0"
|
"@lancedb/vectordb-win32-x64-msvc": "0.16.1-beta.1"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@apache-arrow/ts": "^14.0.2",
|
"@apache-arrow/ts": "^14.0.2",
|
||||||
@@ -330,9 +330,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@lancedb/vectordb-darwin-arm64": {
|
"node_modules/@lancedb/vectordb-darwin-arm64": {
|
||||||
"version": "0.16.0",
|
"version": "0.16.1-beta.1",
|
||||||
"resolved": "https://registry.npmjs.org/@lancedb/vectordb-darwin-arm64/-/vectordb-darwin-arm64-0.16.0.tgz",
|
"resolved": "https://registry.npmjs.org/@lancedb/vectordb-darwin-arm64/-/vectordb-darwin-arm64-0.16.1-beta.1.tgz",
|
||||||
"integrity": "sha512-9lIKo0MkTm80qidEm47VXXGparzbkzezRwiWh4GSlZwDV74lQTqPaHvZ/iOwlm6JiSEkJ/Gcx/xLKl7fPBdDRw==",
|
"integrity": "sha512-dV/I7K9a8OZUk6JaY1mOFRCtq0+ae2erRaDe6AQVeA6t+IVClQaYkHiYUQa5wHqN0QTb2GU7qUCRgA8ZLilVuw==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -343,9 +343,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@lancedb/vectordb-darwin-x64": {
|
"node_modules/@lancedb/vectordb-darwin-x64": {
|
||||||
"version": "0.16.0",
|
"version": "0.16.1-beta.1",
|
||||||
"resolved": "https://registry.npmjs.org/@lancedb/vectordb-darwin-x64/-/vectordb-darwin-x64-0.16.0.tgz",
|
"resolved": "https://registry.npmjs.org/@lancedb/vectordb-darwin-x64/-/vectordb-darwin-x64-0.16.1-beta.1.tgz",
|
||||||
"integrity": "sha512-SFKRQrSP90224sVYqAdG/R86Z7qgsLabWe9hO7xFkUZLuiGqqbXfnKh/7VZOG8V+wkNu/YZCKFbfxqoQLU9o2w==",
|
"integrity": "sha512-Fyn9zTDUrYK/bjriHSu/0TiIA7NJmjQQxqzjcwFOMsghL8D0FQuxqHYWKoJSaJv6me6Kd41R4qesC9mrt2ZGDw==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -356,9 +356,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@lancedb/vectordb-linux-arm64-gnu": {
|
"node_modules/@lancedb/vectordb-linux-arm64-gnu": {
|
||||||
"version": "0.16.0",
|
"version": "0.16.1-beta.1",
|
||||||
"resolved": "https://registry.npmjs.org/@lancedb/vectordb-linux-arm64-gnu/-/vectordb-linux-arm64-gnu-0.16.0.tgz",
|
"resolved": "https://registry.npmjs.org/@lancedb/vectordb-linux-arm64-gnu/-/vectordb-linux-arm64-gnu-0.16.1-beta.1.tgz",
|
||||||
"integrity": "sha512-8pW2XUcupAzRgBcTqvaZDOQ7UORLEtdtyWm7vnIm1jSx1wo6kX2C+Y9mjNyCNhD0D0zLXB30nYYFnWjEFtVIfA==",
|
"integrity": "sha512-2vcSfg6pVzEkA7tqQssBQgnf7Rbw5fp1xdhnd0X5h4z6Xqs6CpynbkfsyMjBRuL7bDv4phl1lvJmlb3Zfre7mg==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -369,9 +369,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@lancedb/vectordb-linux-arm64-musl": {
|
"node_modules/@lancedb/vectordb-linux-arm64-musl": {
|
||||||
"version": "0.16.0",
|
"version": "0.16.1-beta.1",
|
||||||
"resolved": "https://registry.npmjs.org/@lancedb/vectordb-linux-arm64-musl/-/vectordb-linux-arm64-musl-0.16.0.tgz",
|
"resolved": "https://registry.npmjs.org/@lancedb/vectordb-linux-arm64-musl/-/vectordb-linux-arm64-musl-0.16.1-beta.1.tgz",
|
||||||
"integrity": "sha512-EVhwS8pQ9yaEu4bqrOxOsFo6dPqyH1VMyXwY/ai0X6ZhZmzK7CgQs5Aczmz8IaGxDJ3mJwd9FW492Z8cbDlyWg==",
|
"integrity": "sha512-rxE/G2PRKTU+fi5j1ojBV9dKfVLKGLnKgLezGryPkKwMYokCQ8kGxohKTmrmLaclXZpBDQo4AYIIE0oJhXG04g==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -382,9 +382,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@lancedb/vectordb-linux-x64-gnu": {
|
"node_modules/@lancedb/vectordb-linux-x64-gnu": {
|
||||||
"version": "0.16.0",
|
"version": "0.16.1-beta.1",
|
||||||
"resolved": "https://registry.npmjs.org/@lancedb/vectordb-linux-x64-gnu/-/vectordb-linux-x64-gnu-0.16.0.tgz",
|
"resolved": "https://registry.npmjs.org/@lancedb/vectordb-linux-x64-gnu/-/vectordb-linux-x64-gnu-0.16.1-beta.1.tgz",
|
||||||
"integrity": "sha512-ec4m46HqVE9jGX/Ov4mzfFV+raAeSBUZWuXUEFtksefwvGL6gIIn0rHaBg3/pBvqofOYYCtDN8aHnLgNcU6o+w==",
|
"integrity": "sha512-XWqRMif+wVTfcAPQI9n/H6eNmfwPHWBo4e0SAdWw+eifaBDxrcSTDhPpIrW+NGTJMhlm01rD7Qzh4j0y/Vcy5w==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -395,9 +395,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@lancedb/vectordb-linux-x64-musl": {
|
"node_modules/@lancedb/vectordb-linux-x64-musl": {
|
||||||
"version": "0.16.0",
|
"version": "0.16.1-beta.1",
|
||||||
"resolved": "https://registry.npmjs.org/@lancedb/vectordb-linux-x64-musl/-/vectordb-linux-x64-musl-0.16.0.tgz",
|
"resolved": "https://registry.npmjs.org/@lancedb/vectordb-linux-x64-musl/-/vectordb-linux-x64-musl-0.16.1-beta.1.tgz",
|
||||||
"integrity": "sha512-Ti4RTVmH5N2XVhzBXENVEdPslO5NwIOmswLqoj++au9jHFJmgJHG9JGrDhh5Xc7gTRa4G4SYGBqA4n44gKT1rA==",
|
"integrity": "sha512-W/OV5aXAbqhQQ8NYLJG5W/ZdHwpfjiS/9VTVVo44cOznCO6tijiSsrLYIyIw/rHU+ORhYi7My+5+JmkrIoQIgQ==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -408,9 +408,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@lancedb/vectordb-win32-arm64-msvc": {
|
"node_modules/@lancedb/vectordb-win32-arm64-msvc": {
|
||||||
"version": "0.16.0",
|
"version": "0.16.1-beta.1",
|
||||||
"resolved": "https://registry.npmjs.org/@lancedb/vectordb-win32-arm64-msvc/-/vectordb-win32-arm64-msvc-0.16.0.tgz",
|
"resolved": "https://registry.npmjs.org/@lancedb/vectordb-win32-arm64-msvc/-/vectordb-win32-arm64-msvc-0.16.1-beta.1.tgz",
|
||||||
"integrity": "sha512-2VA2zZE7v9Jpigup/lWnAjs3OZe+hjSrENeT0XvUeU3HMRThYOtm1KNbyd6RfElv11go8IVdBCKSo6QGviD/zg==",
|
"integrity": "sha512-jy18KmJUem+lInjODNfPLSXM8Dmb9xydcab/IoSPB+6qhEn/QC0HW3R1KkR3I6cfryYkEXsNd35pNdtajn9DsQ==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -421,9 +421,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@lancedb/vectordb-win32-x64-msvc": {
|
"node_modules/@lancedb/vectordb-win32-x64-msvc": {
|
||||||
"version": "0.16.0",
|
"version": "0.16.1-beta.1",
|
||||||
"resolved": "https://registry.npmjs.org/@lancedb/vectordb-win32-x64-msvc/-/vectordb-win32-x64-msvc-0.16.0.tgz",
|
"resolved": "https://registry.npmjs.org/@lancedb/vectordb-win32-x64-msvc/-/vectordb-win32-x64-msvc-0.16.1-beta.1.tgz",
|
||||||
"integrity": "sha512-PRfGbyzwe+Gj/i0ZZkd6+rvOHCjCIYeZMyYXwXZQpYdYDwcTiIjJ9n8Sx4bRn0bnmtJ+da47H96bee9LlLGpVw==",
|
"integrity": "sha512-ObGYHAkvyOxJA3QTxMukXaHCe29J2Pbsm90w2c+E3zGb8K5Xe4pLTqojGEDYrtNKZhf2d9YMsoQq8dg6mLsbag==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "vectordb",
|
"name": "vectordb",
|
||||||
"version": "0.16.0",
|
"version": "0.16.1-beta.1",
|
||||||
"description": " Serverless, low-latency vector database for AI applications",
|
"description": " Serverless, low-latency vector database for AI applications",
|
||||||
"private": false,
|
"private": false,
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
@@ -92,13 +92,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"@lancedb/vectordb-darwin-x64": "0.16.0",
|
"@lancedb/vectordb-darwin-x64": "0.16.1-beta.1",
|
||||||
"@lancedb/vectordb-darwin-arm64": "0.16.0",
|
"@lancedb/vectordb-darwin-arm64": "0.16.1-beta.1",
|
||||||
"@lancedb/vectordb-linux-x64-gnu": "0.16.0",
|
"@lancedb/vectordb-linux-x64-gnu": "0.16.1-beta.1",
|
||||||
"@lancedb/vectordb-linux-arm64-gnu": "0.16.0",
|
"@lancedb/vectordb-linux-arm64-gnu": "0.16.1-beta.1",
|
||||||
"@lancedb/vectordb-linux-x64-musl": "0.16.0",
|
"@lancedb/vectordb-linux-x64-musl": "0.16.1-beta.1",
|
||||||
"@lancedb/vectordb-linux-arm64-musl": "0.16.0",
|
"@lancedb/vectordb-linux-arm64-musl": "0.16.1-beta.1",
|
||||||
"@lancedb/vectordb-win32-x64-msvc": "0.16.0",
|
"@lancedb/vectordb-win32-x64-msvc": "0.16.1-beta.1",
|
||||||
"@lancedb/vectordb-win32-arm64-msvc": "0.16.0"
|
"@lancedb/vectordb-win32-arm64-msvc": "0.16.1-beta.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "lancedb-nodejs"
|
name = "lancedb-nodejs"
|
||||||
edition.workspace = true
|
edition.workspace = true
|
||||||
version = "0.16.0"
|
version = "0.16.1-beta.1"
|
||||||
license.workspace = true
|
license.workspace = true
|
||||||
description.workspace = true
|
description.workspace = true
|
||||||
repository.workspace = true
|
repository.workspace = true
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@lancedb/lancedb-darwin-arm64",
|
"name": "@lancedb/lancedb-darwin-arm64",
|
||||||
"version": "0.16.0",
|
"version": "0.16.1-beta.1",
|
||||||
"os": ["darwin"],
|
"os": ["darwin"],
|
||||||
"cpu": ["arm64"],
|
"cpu": ["arm64"],
|
||||||
"main": "lancedb.darwin-arm64.node",
|
"main": "lancedb.darwin-arm64.node",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@lancedb/lancedb-darwin-x64",
|
"name": "@lancedb/lancedb-darwin-x64",
|
||||||
"version": "0.16.0",
|
"version": "0.16.1-beta.1",
|
||||||
"os": ["darwin"],
|
"os": ["darwin"],
|
||||||
"cpu": ["x64"],
|
"cpu": ["x64"],
|
||||||
"main": "lancedb.darwin-x64.node",
|
"main": "lancedb.darwin-x64.node",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@lancedb/lancedb-linux-arm64-gnu",
|
"name": "@lancedb/lancedb-linux-arm64-gnu",
|
||||||
"version": "0.16.0",
|
"version": "0.16.1-beta.1",
|
||||||
"os": ["linux"],
|
"os": ["linux"],
|
||||||
"cpu": ["arm64"],
|
"cpu": ["arm64"],
|
||||||
"main": "lancedb.linux-arm64-gnu.node",
|
"main": "lancedb.linux-arm64-gnu.node",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@lancedb/lancedb-linux-arm64-musl",
|
"name": "@lancedb/lancedb-linux-arm64-musl",
|
||||||
"version": "0.16.0",
|
"version": "0.16.1-beta.1",
|
||||||
"os": ["linux"],
|
"os": ["linux"],
|
||||||
"cpu": ["arm64"],
|
"cpu": ["arm64"],
|
||||||
"main": "lancedb.linux-arm64-musl.node",
|
"main": "lancedb.linux-arm64-musl.node",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@lancedb/lancedb-linux-x64-gnu",
|
"name": "@lancedb/lancedb-linux-x64-gnu",
|
||||||
"version": "0.16.0",
|
"version": "0.16.1-beta.1",
|
||||||
"os": ["linux"],
|
"os": ["linux"],
|
||||||
"cpu": ["x64"],
|
"cpu": ["x64"],
|
||||||
"main": "lancedb.linux-x64-gnu.node",
|
"main": "lancedb.linux-x64-gnu.node",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@lancedb/lancedb-linux-x64-musl",
|
"name": "@lancedb/lancedb-linux-x64-musl",
|
||||||
"version": "0.16.0",
|
"version": "0.16.1-beta.1",
|
||||||
"os": ["linux"],
|
"os": ["linux"],
|
||||||
"cpu": ["x64"],
|
"cpu": ["x64"],
|
||||||
"main": "lancedb.linux-x64-musl.node",
|
"main": "lancedb.linux-x64-musl.node",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@lancedb/lancedb-win32-arm64-msvc",
|
"name": "@lancedb/lancedb-win32-arm64-msvc",
|
||||||
"version": "0.16.0",
|
"version": "0.16.1-beta.1",
|
||||||
"os": [
|
"os": [
|
||||||
"win32"
|
"win32"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@lancedb/lancedb-win32-x64-msvc",
|
"name": "@lancedb/lancedb-win32-x64-msvc",
|
||||||
"version": "0.16.0",
|
"version": "0.16.1-beta.1",
|
||||||
"os": ["win32"],
|
"os": ["win32"],
|
||||||
"cpu": ["x64"],
|
"cpu": ["x64"],
|
||||||
"main": "lancedb.win32-x64-msvc.node",
|
"main": "lancedb.win32-x64-msvc.node",
|
||||||
|
|||||||
4
nodejs/package-lock.json
generated
4
nodejs/package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "@lancedb/lancedb",
|
"name": "@lancedb/lancedb",
|
||||||
"version": "0.16.0",
|
"version": "0.16.1-beta.1",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@lancedb/lancedb",
|
"name": "@lancedb/lancedb",
|
||||||
"version": "0.16.0",
|
"version": "0.16.1-beta.1",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64",
|
"x64",
|
||||||
"arm64"
|
"arm64"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
"ann"
|
"ann"
|
||||||
],
|
],
|
||||||
"private": false,
|
"private": false,
|
||||||
"version": "0.16.0",
|
"version": "0.16.1-beta.1",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"exports": {
|
"exports": {
|
||||||
".": "./dist/index.js",
|
".": "./dist/index.js",
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
[tool.bumpversion]
|
[tool.bumpversion]
|
||||||
current_version = "0.19.1-beta.0"
|
current_version = "0.19.1-beta.2"
|
||||||
parse = """(?x)
|
parse = """(?x)
|
||||||
(?P<major>0|[1-9]\\d*)\\.
|
(?P<major>0|[1-9]\\d*)\\.
|
||||||
(?P<minor>0|[1-9]\\d*)\\.
|
(?P<minor>0|[1-9]\\d*)\\.
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "lancedb-python"
|
name = "lancedb-python"
|
||||||
version = "0.19.1-beta.0"
|
version = "0.19.1-beta.2"
|
||||||
edition.workspace = true
|
edition.workspace = true
|
||||||
description = "Python bindings for LanceDB"
|
description = "Python bindings for LanceDB"
|
||||||
license.workspace = true
|
license.workspace = true
|
||||||
|
|||||||
@@ -29,4 +29,4 @@ doctest: ## Run documentation tests.
|
|||||||
|
|
||||||
.PHONY: test
|
.PHONY: test
|
||||||
test: ## Run tests.
|
test: ## Run tests.
|
||||||
pytest python/tests -vv --durations=10 -m "not slow"
|
pytest python/tests -vv --durations=10 -m "not slow and not s3_test"
|
||||||
|
|||||||
@@ -341,6 +341,7 @@ def test_add_optional_vector(tmp_path):
|
|||||||
assert not (np.abs(tbl.to_pandas()["vector"][0]) < 1e-6).all()
|
assert not (np.abs(tbl.to_pandas()["vector"][0]) < 1e-6).all()
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.slow
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
"embedding_type",
|
"embedding_type",
|
||||||
[
|
[
|
||||||
|
|||||||
@@ -32,15 +32,16 @@ def make_mock_http_handler(handler):
|
|||||||
@contextlib.contextmanager
|
@contextlib.contextmanager
|
||||||
def mock_lancedb_connection(handler):
|
def mock_lancedb_connection(handler):
|
||||||
with http.server.HTTPServer(
|
with http.server.HTTPServer(
|
||||||
("localhost", 8080), make_mock_http_handler(handler)
|
("localhost", 0), make_mock_http_handler(handler)
|
||||||
) as server:
|
) as server:
|
||||||
|
port = server.server_address[1]
|
||||||
handle = threading.Thread(target=server.serve_forever)
|
handle = threading.Thread(target=server.serve_forever)
|
||||||
handle.start()
|
handle.start()
|
||||||
|
|
||||||
db = lancedb.connect(
|
db = lancedb.connect(
|
||||||
"db://dev",
|
"db://dev",
|
||||||
api_key="fake",
|
api_key="fake",
|
||||||
host_override="http://localhost:8080",
|
host_override=f"http://localhost:{port}",
|
||||||
client_config={
|
client_config={
|
||||||
"retry_config": {"retries": 2},
|
"retry_config": {"retries": 2},
|
||||||
"timeout_config": {
|
"timeout_config": {
|
||||||
@@ -59,15 +60,16 @@ def mock_lancedb_connection(handler):
|
|||||||
@contextlib.asynccontextmanager
|
@contextlib.asynccontextmanager
|
||||||
async def mock_lancedb_connection_async(handler, **client_config):
|
async def mock_lancedb_connection_async(handler, **client_config):
|
||||||
with http.server.HTTPServer(
|
with http.server.HTTPServer(
|
||||||
("localhost", 8080), make_mock_http_handler(handler)
|
("localhost", 0), make_mock_http_handler(handler)
|
||||||
) as server:
|
) as server:
|
||||||
|
port = server.server_address[1]
|
||||||
handle = threading.Thread(target=server.serve_forever)
|
handle = threading.Thread(target=server.serve_forever)
|
||||||
handle.start()
|
handle.start()
|
||||||
|
|
||||||
db = await lancedb.connect_async(
|
db = await lancedb.connect_async(
|
||||||
"db://dev",
|
"db://dev",
|
||||||
api_key="fake",
|
api_key="fake",
|
||||||
host_override="http://localhost:8080",
|
host_override=f"http://localhost:{port}",
|
||||||
client_config={
|
client_config={
|
||||||
"retry_config": {"retries": 2},
|
"retry_config": {"retries": 2},
|
||||||
"timeout_config": {
|
"timeout_config": {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "lancedb-node"
|
name = "lancedb-node"
|
||||||
version = "0.16.0"
|
version = "0.16.1-beta.1"
|
||||||
description = "Serverless, low-latency vector database for AI applications"
|
description = "Serverless, low-latency vector database for AI applications"
|
||||||
license.workspace = true
|
license.workspace = true
|
||||||
edition.workspace = true
|
edition.workspace = true
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "lancedb"
|
name = "lancedb"
|
||||||
version = "0.16.0"
|
version = "0.16.1-beta.1"
|
||||||
edition.workspace = true
|
edition.workspace = true
|
||||||
description = "LanceDB: A serverless, low-latency vector database for AI applications"
|
description = "LanceDB: A serverless, low-latency vector database for AI applications"
|
||||||
license.workspace = true
|
license.workspace = true
|
||||||
|
|||||||
@@ -23,7 +23,19 @@ impl VectorIndex {
|
|||||||
let fields = index
|
let fields = index
|
||||||
.fields
|
.fields
|
||||||
.iter()
|
.iter()
|
||||||
.map(|i| manifest.schema.fields[*i as usize].name.clone())
|
.map(|field_id| {
|
||||||
|
manifest
|
||||||
|
.schema
|
||||||
|
.field_by_id(*field_id)
|
||||||
|
.unwrap_or_else(|| {
|
||||||
|
panic!(
|
||||||
|
"field {field_id} of index {} must exist in schema",
|
||||||
|
index.name
|
||||||
|
)
|
||||||
|
})
|
||||||
|
.name
|
||||||
|
.clone()
|
||||||
|
})
|
||||||
.collect();
|
.collect();
|
||||||
Self {
|
Self {
|
||||||
columns: fields,
|
columns: fields,
|
||||||
|
|||||||
@@ -1380,10 +1380,11 @@ impl NativeTable {
|
|||||||
|
|
||||||
pub async fn load_indices(&self) -> Result<Vec<VectorIndex>> {
|
pub async fn load_indices(&self) -> Result<Vec<VectorIndex>> {
|
||||||
let dataset = self.dataset.get().await?;
|
let dataset = self.dataset.get().await?;
|
||||||
let (indices, mf) = futures::try_join!(dataset.load_indices(), dataset.latest_manifest())?;
|
let mf = dataset.manifest();
|
||||||
|
let indices = dataset.load_indices().await?;
|
||||||
Ok(indices
|
Ok(indices
|
||||||
.iter()
|
.iter()
|
||||||
.map(|i| VectorIndex::new_from_format(&(mf.0), i))
|
.map(|i| VectorIndex::new_from_format(mf, i))
|
||||||
.collect())
|
.collect())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user