devdb-sql 1.0.4__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.
- devdb_sql-1.0.4/LICENSE +1 -0
- devdb_sql-1.0.4/PKG-INFO +155 -0
- devdb_sql-1.0.4/README.md +144 -0
- devdb_sql-1.0.4/devdb_sql.egg-info/PKG-INFO +155 -0
- devdb_sql-1.0.4/devdb_sql.egg-info/SOURCES.txt +8 -0
- devdb_sql-1.0.4/devdb_sql.egg-info/dependency_links.txt +1 -0
- devdb_sql-1.0.4/devdb_sql.egg-info/top_level.txt +1 -0
- devdb_sql-1.0.4/pyproject.toml +17 -0
- devdb_sql-1.0.4/setup.cfg +4 -0
- devdb_sql-1.0.4/test/test.py +50 -0
devdb_sql-1.0.4/LICENSE
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
MIT
|
devdb_sql-1.0.4/PKG-INFO
ADDED
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: devdb-sql
|
|
3
|
+
Version: 1.0.4
|
|
4
|
+
Summary: Lightweight SQLite SDK with a MongoDB-like developer experience
|
|
5
|
+
Author: Mahadev
|
|
6
|
+
License: MIT
|
|
7
|
+
Requires-Python: >=3.9
|
|
8
|
+
Description-Content-Type: text/markdown
|
|
9
|
+
License-File: LICENSE
|
|
10
|
+
Dynamic: license-file
|
|
11
|
+
|
|
12
|
+
# Dev SQL — Python
|
|
13
|
+
|
|
14
|
+
Python port of the Dev SQL JavaScript SDK.
|
|
15
|
+
|
|
16
|
+
It provides a MongoDB-like API while using SQLite internally. Application code does not need to write SQL.
|
|
17
|
+
|
|
18
|
+
## Install
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
pip install devdb-dql
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Usage
|
|
25
|
+
|
|
26
|
+
```python
|
|
27
|
+
from devdb import DB
|
|
28
|
+
|
|
29
|
+
db = DB("./data/file.db")
|
|
30
|
+
|
|
31
|
+
User = db.create("users", {
|
|
32
|
+
"id": {
|
|
33
|
+
"type": "integer",
|
|
34
|
+
"primary": True,
|
|
35
|
+
"autoIncrement": True
|
|
36
|
+
},
|
|
37
|
+
"name": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"required": True
|
|
40
|
+
},
|
|
41
|
+
"email": {
|
|
42
|
+
"type": "string",
|
|
43
|
+
"unique": True
|
|
44
|
+
},
|
|
45
|
+
"age": {
|
|
46
|
+
"type": "integer",
|
|
47
|
+
"default": 18
|
|
48
|
+
},
|
|
49
|
+
"active": {
|
|
50
|
+
"type": "boolean"
|
|
51
|
+
},
|
|
52
|
+
"metadata": {
|
|
53
|
+
"type": "json"
|
|
54
|
+
}
|
|
55
|
+
})
|
|
56
|
+
|
|
57
|
+
user = User.insert({
|
|
58
|
+
"name": "Mahadev",
|
|
59
|
+
"email": "mahadev@gmail.com",
|
|
60
|
+
"age": 20,
|
|
61
|
+
"active": True,
|
|
62
|
+
"metadata": {"role": "student"}
|
|
63
|
+
})
|
|
64
|
+
|
|
65
|
+
print(user)
|
|
66
|
+
|
|
67
|
+
print(User.find())
|
|
68
|
+
print(User.find({"age": {"$gte": 18}}))
|
|
69
|
+
print(User.find_by_id(user["id"]))
|
|
70
|
+
|
|
71
|
+
User.update_by_id(user["id"], {"age": 21})
|
|
72
|
+
User.delete_by_id(user["id"])
|
|
73
|
+
|
|
74
|
+
print(db.tables())
|
|
75
|
+
|
|
76
|
+
db.close()
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Supported types
|
|
80
|
+
|
|
81
|
+
- `string` -> SQLite `TEXT`
|
|
82
|
+
- `integer` -> SQLite `INTEGER`
|
|
83
|
+
- `number` -> SQLite `REAL`
|
|
84
|
+
- `boolean` -> SQLite `INTEGER`
|
|
85
|
+
- `date` -> SQLite `TEXT`
|
|
86
|
+
- `json` -> SQLite `TEXT`
|
|
87
|
+
|
|
88
|
+
## Query operators
|
|
89
|
+
|
|
90
|
+
- `$eq`
|
|
91
|
+
- `$ne`
|
|
92
|
+
- `$gt`
|
|
93
|
+
- `$gte`
|
|
94
|
+
- `$lt`
|
|
95
|
+
- `$lte`
|
|
96
|
+
- `$in`
|
|
97
|
+
|
|
98
|
+
Example:
|
|
99
|
+
|
|
100
|
+
```python
|
|
101
|
+
User.find({
|
|
102
|
+
"age": {"$gt": 18},
|
|
103
|
+
"name": "Mahadev"
|
|
104
|
+
})
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Query options
|
|
108
|
+
|
|
109
|
+
```python
|
|
110
|
+
User.find(
|
|
111
|
+
{"age": {"$gte": 18}},
|
|
112
|
+
{
|
|
113
|
+
"orderBy": "age",
|
|
114
|
+
"order": "desc",
|
|
115
|
+
"limit": 10,
|
|
116
|
+
"offset": 0
|
|
117
|
+
}
|
|
118
|
+
)
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Methods
|
|
122
|
+
|
|
123
|
+
### DB
|
|
124
|
+
|
|
125
|
+
```python
|
|
126
|
+
DB(path)
|
|
127
|
+
db.create(name, schema)
|
|
128
|
+
db.tables()
|
|
129
|
+
db.show_tables()
|
|
130
|
+
db.drop(name)
|
|
131
|
+
db.close()
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### Table
|
|
135
|
+
|
|
136
|
+
```python
|
|
137
|
+
table.insert(data)
|
|
138
|
+
table.find()
|
|
139
|
+
table.find(query)
|
|
140
|
+
table.find(query, options)
|
|
141
|
+
table.find_by_id(id)
|
|
142
|
+
table.find_all()
|
|
143
|
+
table.update_by_id(id, data)
|
|
144
|
+
table.delete_by_id(id)
|
|
145
|
+
table.drop()
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
JavaScript-style aliases are also available:
|
|
149
|
+
|
|
150
|
+
```python
|
|
151
|
+
table.findById()
|
|
152
|
+
table.findAll()
|
|
153
|
+
table.updateById()
|
|
154
|
+
table.deleteById()
|
|
155
|
+
```
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# Dev SQL — Python
|
|
2
|
+
|
|
3
|
+
Python port of the Dev SQL JavaScript SDK.
|
|
4
|
+
|
|
5
|
+
It provides a MongoDB-like API while using SQLite internally. Application code does not need to write SQL.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pip install devdb-dql
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
```python
|
|
16
|
+
from devdb import DB
|
|
17
|
+
|
|
18
|
+
db = DB("./data/file.db")
|
|
19
|
+
|
|
20
|
+
User = db.create("users", {
|
|
21
|
+
"id": {
|
|
22
|
+
"type": "integer",
|
|
23
|
+
"primary": True,
|
|
24
|
+
"autoIncrement": True
|
|
25
|
+
},
|
|
26
|
+
"name": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"required": True
|
|
29
|
+
},
|
|
30
|
+
"email": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"unique": True
|
|
33
|
+
},
|
|
34
|
+
"age": {
|
|
35
|
+
"type": "integer",
|
|
36
|
+
"default": 18
|
|
37
|
+
},
|
|
38
|
+
"active": {
|
|
39
|
+
"type": "boolean"
|
|
40
|
+
},
|
|
41
|
+
"metadata": {
|
|
42
|
+
"type": "json"
|
|
43
|
+
}
|
|
44
|
+
})
|
|
45
|
+
|
|
46
|
+
user = User.insert({
|
|
47
|
+
"name": "Mahadev",
|
|
48
|
+
"email": "mahadev@gmail.com",
|
|
49
|
+
"age": 20,
|
|
50
|
+
"active": True,
|
|
51
|
+
"metadata": {"role": "student"}
|
|
52
|
+
})
|
|
53
|
+
|
|
54
|
+
print(user)
|
|
55
|
+
|
|
56
|
+
print(User.find())
|
|
57
|
+
print(User.find({"age": {"$gte": 18}}))
|
|
58
|
+
print(User.find_by_id(user["id"]))
|
|
59
|
+
|
|
60
|
+
User.update_by_id(user["id"], {"age": 21})
|
|
61
|
+
User.delete_by_id(user["id"])
|
|
62
|
+
|
|
63
|
+
print(db.tables())
|
|
64
|
+
|
|
65
|
+
db.close()
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Supported types
|
|
69
|
+
|
|
70
|
+
- `string` -> SQLite `TEXT`
|
|
71
|
+
- `integer` -> SQLite `INTEGER`
|
|
72
|
+
- `number` -> SQLite `REAL`
|
|
73
|
+
- `boolean` -> SQLite `INTEGER`
|
|
74
|
+
- `date` -> SQLite `TEXT`
|
|
75
|
+
- `json` -> SQLite `TEXT`
|
|
76
|
+
|
|
77
|
+
## Query operators
|
|
78
|
+
|
|
79
|
+
- `$eq`
|
|
80
|
+
- `$ne`
|
|
81
|
+
- `$gt`
|
|
82
|
+
- `$gte`
|
|
83
|
+
- `$lt`
|
|
84
|
+
- `$lte`
|
|
85
|
+
- `$in`
|
|
86
|
+
|
|
87
|
+
Example:
|
|
88
|
+
|
|
89
|
+
```python
|
|
90
|
+
User.find({
|
|
91
|
+
"age": {"$gt": 18},
|
|
92
|
+
"name": "Mahadev"
|
|
93
|
+
})
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Query options
|
|
97
|
+
|
|
98
|
+
```python
|
|
99
|
+
User.find(
|
|
100
|
+
{"age": {"$gte": 18}},
|
|
101
|
+
{
|
|
102
|
+
"orderBy": "age",
|
|
103
|
+
"order": "desc",
|
|
104
|
+
"limit": 10,
|
|
105
|
+
"offset": 0
|
|
106
|
+
}
|
|
107
|
+
)
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Methods
|
|
111
|
+
|
|
112
|
+
### DB
|
|
113
|
+
|
|
114
|
+
```python
|
|
115
|
+
DB(path)
|
|
116
|
+
db.create(name, schema)
|
|
117
|
+
db.tables()
|
|
118
|
+
db.show_tables()
|
|
119
|
+
db.drop(name)
|
|
120
|
+
db.close()
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### Table
|
|
124
|
+
|
|
125
|
+
```python
|
|
126
|
+
table.insert(data)
|
|
127
|
+
table.find()
|
|
128
|
+
table.find(query)
|
|
129
|
+
table.find(query, options)
|
|
130
|
+
table.find_by_id(id)
|
|
131
|
+
table.find_all()
|
|
132
|
+
table.update_by_id(id, data)
|
|
133
|
+
table.delete_by_id(id)
|
|
134
|
+
table.drop()
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
JavaScript-style aliases are also available:
|
|
138
|
+
|
|
139
|
+
```python
|
|
140
|
+
table.findById()
|
|
141
|
+
table.findAll()
|
|
142
|
+
table.updateById()
|
|
143
|
+
table.deleteById()
|
|
144
|
+
```
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: devdb-sql
|
|
3
|
+
Version: 1.0.4
|
|
4
|
+
Summary: Lightweight SQLite SDK with a MongoDB-like developer experience
|
|
5
|
+
Author: Mahadev
|
|
6
|
+
License: MIT
|
|
7
|
+
Requires-Python: >=3.9
|
|
8
|
+
Description-Content-Type: text/markdown
|
|
9
|
+
License-File: LICENSE
|
|
10
|
+
Dynamic: license-file
|
|
11
|
+
|
|
12
|
+
# Dev SQL — Python
|
|
13
|
+
|
|
14
|
+
Python port of the Dev SQL JavaScript SDK.
|
|
15
|
+
|
|
16
|
+
It provides a MongoDB-like API while using SQLite internally. Application code does not need to write SQL.
|
|
17
|
+
|
|
18
|
+
## Install
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
pip install devdb-dql
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Usage
|
|
25
|
+
|
|
26
|
+
```python
|
|
27
|
+
from devdb import DB
|
|
28
|
+
|
|
29
|
+
db = DB("./data/file.db")
|
|
30
|
+
|
|
31
|
+
User = db.create("users", {
|
|
32
|
+
"id": {
|
|
33
|
+
"type": "integer",
|
|
34
|
+
"primary": True,
|
|
35
|
+
"autoIncrement": True
|
|
36
|
+
},
|
|
37
|
+
"name": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"required": True
|
|
40
|
+
},
|
|
41
|
+
"email": {
|
|
42
|
+
"type": "string",
|
|
43
|
+
"unique": True
|
|
44
|
+
},
|
|
45
|
+
"age": {
|
|
46
|
+
"type": "integer",
|
|
47
|
+
"default": 18
|
|
48
|
+
},
|
|
49
|
+
"active": {
|
|
50
|
+
"type": "boolean"
|
|
51
|
+
},
|
|
52
|
+
"metadata": {
|
|
53
|
+
"type": "json"
|
|
54
|
+
}
|
|
55
|
+
})
|
|
56
|
+
|
|
57
|
+
user = User.insert({
|
|
58
|
+
"name": "Mahadev",
|
|
59
|
+
"email": "mahadev@gmail.com",
|
|
60
|
+
"age": 20,
|
|
61
|
+
"active": True,
|
|
62
|
+
"metadata": {"role": "student"}
|
|
63
|
+
})
|
|
64
|
+
|
|
65
|
+
print(user)
|
|
66
|
+
|
|
67
|
+
print(User.find())
|
|
68
|
+
print(User.find({"age": {"$gte": 18}}))
|
|
69
|
+
print(User.find_by_id(user["id"]))
|
|
70
|
+
|
|
71
|
+
User.update_by_id(user["id"], {"age": 21})
|
|
72
|
+
User.delete_by_id(user["id"])
|
|
73
|
+
|
|
74
|
+
print(db.tables())
|
|
75
|
+
|
|
76
|
+
db.close()
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Supported types
|
|
80
|
+
|
|
81
|
+
- `string` -> SQLite `TEXT`
|
|
82
|
+
- `integer` -> SQLite `INTEGER`
|
|
83
|
+
- `number` -> SQLite `REAL`
|
|
84
|
+
- `boolean` -> SQLite `INTEGER`
|
|
85
|
+
- `date` -> SQLite `TEXT`
|
|
86
|
+
- `json` -> SQLite `TEXT`
|
|
87
|
+
|
|
88
|
+
## Query operators
|
|
89
|
+
|
|
90
|
+
- `$eq`
|
|
91
|
+
- `$ne`
|
|
92
|
+
- `$gt`
|
|
93
|
+
- `$gte`
|
|
94
|
+
- `$lt`
|
|
95
|
+
- `$lte`
|
|
96
|
+
- `$in`
|
|
97
|
+
|
|
98
|
+
Example:
|
|
99
|
+
|
|
100
|
+
```python
|
|
101
|
+
User.find({
|
|
102
|
+
"age": {"$gt": 18},
|
|
103
|
+
"name": "Mahadev"
|
|
104
|
+
})
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Query options
|
|
108
|
+
|
|
109
|
+
```python
|
|
110
|
+
User.find(
|
|
111
|
+
{"age": {"$gte": 18}},
|
|
112
|
+
{
|
|
113
|
+
"orderBy": "age",
|
|
114
|
+
"order": "desc",
|
|
115
|
+
"limit": 10,
|
|
116
|
+
"offset": 0
|
|
117
|
+
}
|
|
118
|
+
)
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Methods
|
|
122
|
+
|
|
123
|
+
### DB
|
|
124
|
+
|
|
125
|
+
```python
|
|
126
|
+
DB(path)
|
|
127
|
+
db.create(name, schema)
|
|
128
|
+
db.tables()
|
|
129
|
+
db.show_tables()
|
|
130
|
+
db.drop(name)
|
|
131
|
+
db.close()
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### Table
|
|
135
|
+
|
|
136
|
+
```python
|
|
137
|
+
table.insert(data)
|
|
138
|
+
table.find()
|
|
139
|
+
table.find(query)
|
|
140
|
+
table.find(query, options)
|
|
141
|
+
table.find_by_id(id)
|
|
142
|
+
table.find_all()
|
|
143
|
+
table.update_by_id(id, data)
|
|
144
|
+
table.delete_by_id(id)
|
|
145
|
+
table.drop()
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
JavaScript-style aliases are also available:
|
|
149
|
+
|
|
150
|
+
```python
|
|
151
|
+
table.findById()
|
|
152
|
+
table.findAll()
|
|
153
|
+
table.updateById()
|
|
154
|
+
table.deleteById()
|
|
155
|
+
```
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=68"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "devdb-sql"
|
|
7
|
+
version = "1.0.4"
|
|
8
|
+
description = "Lightweight SQLite SDK with a MongoDB-like developer experience"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.9"
|
|
11
|
+
license = {text = "MIT"}
|
|
12
|
+
authors = [
|
|
13
|
+
{name = "Mahadev"}
|
|
14
|
+
]
|
|
15
|
+
|
|
16
|
+
[tool.setuptools.packages.find]
|
|
17
|
+
include = ["devdb*"]
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
from dev_sql import DB
|
|
2
|
+
|
|
3
|
+
db = DB("./data/msg.db")
|
|
4
|
+
|
|
5
|
+
Message = db.create("messages", {
|
|
6
|
+
"id": {
|
|
7
|
+
"type": "integer",
|
|
8
|
+
"primary": True,
|
|
9
|
+
"autoIncrement": True
|
|
10
|
+
},
|
|
11
|
+
"name": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"required": True
|
|
14
|
+
},
|
|
15
|
+
"message": {
|
|
16
|
+
"type": "string"
|
|
17
|
+
}
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
message = Message.insert({
|
|
21
|
+
"name": "Mahadev",
|
|
22
|
+
"message": "Hello from dev-sql"
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
print("Inserted:")
|
|
26
|
+
print(message)
|
|
27
|
+
|
|
28
|
+
print("\nAll messages:")
|
|
29
|
+
print(Message.find())
|
|
30
|
+
|
|
31
|
+
print("\nFind by ID:")
|
|
32
|
+
print(Message.find_by_id(message["id"]))
|
|
33
|
+
|
|
34
|
+
Message.update_by_id(
|
|
35
|
+
message["id"],
|
|
36
|
+
{"message": "Updated message"}
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
print("\nAfter update:")
|
|
40
|
+
print(Message.find())
|
|
41
|
+
|
|
42
|
+
# Message.delete_by_id(message["id"])
|
|
43
|
+
|
|
44
|
+
print("\nAfter delete:")
|
|
45
|
+
print(Message.find())
|
|
46
|
+
|
|
47
|
+
print("\nTables:")
|
|
48
|
+
print(db.tables())
|
|
49
|
+
|
|
50
|
+
db.close()
|