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.
@@ -0,0 +1 @@
1
+ MIT
@@ -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,8 @@
1
+ LICENSE
2
+ README.md
3
+ pyproject.toml
4
+ devdb_sql.egg-info/PKG-INFO
5
+ devdb_sql.egg-info/SOURCES.txt
6
+ devdb_sql.egg-info/dependency_links.txt
7
+ devdb_sql.egg-info/top_level.txt
8
+ test/test.py
@@ -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,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -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()