Update readme, bump version
This commit is contained in:
28
README.md
28
README.md
@@ -1,10 +1,16 @@
|
|||||||
# aiodatalite
|
# aiodatalite
|
||||||
|
|
||||||
|
[](https://codeclimate.com/github/kotikotprojects/aiodatalite/maintainability)
|
||||||
|
[](https://codeclimate.com/github/kotikotprojects/aiodatalite/test_coverage)
|
||||||
|

|
||||||
|
[](https://aiodatalite.readthedocs.io/en/latest/?badge=latest)
|
||||||
|

|
||||||
|
|
||||||
> [!WARNING]
|
> [!WARNING]
|
||||||
> Original project is a hobby project and it should not be used for security-critical or user facing applications.
|
> Original project is a hobby project and it should not be used for security-critical or user facing applications.
|
||||||
> The same goes for this fork
|
> The same goes for this fork
|
||||||
|
|
||||||
It should be noted that Datalite is not suitable for secure web applications, it really is only suitable for cases when you can trust user input.
|
[Full Documentation](https://aiodatalite.readthedocs.io/en/latest/)
|
||||||
|
|
||||||
Datalite is a simple Python
|
Datalite is a simple Python
|
||||||
package that binds your dataclasses to a table in a sqlite3 database,
|
package that binds your dataclasses to a table in a sqlite3 database,
|
||||||
@@ -12,8 +18,6 @@ using it is extremely simple, say that you have a dataclass definition,
|
|||||||
just add the decorator `@datalite(db_name="db.db")` to the top of the
|
just add the decorator `@datalite(db_name="db.db")` to the top of the
|
||||||
definition, and the dataclass will now be bound to the file `db.db`
|
definition, and the dataclass will now be bound to the file `db.db`
|
||||||
|
|
||||||
[Detailed API reference](https://datalite.readthedocs.io/en/latest/)
|
|
||||||
|
|
||||||
## Download and Install
|
## Download and Install
|
||||||
|
|
||||||
You can install `aiodatalite` simply by
|
You can install `aiodatalite` simply by
|
||||||
@@ -40,7 +44,7 @@ from dataclasses import dataclass
|
|||||||
from aiodatalite import datalite
|
from aiodatalite import datalite
|
||||||
|
|
||||||
|
|
||||||
@datalite(db_path="db.db")
|
@datalite(db_path="db.db", automarkup=True)
|
||||||
@dataclass
|
@dataclass
|
||||||
class Student:
|
class Student:
|
||||||
student_id: int
|
student_id: int
|
||||||
@@ -52,6 +56,8 @@ table name `student` and rows `student_id`, `student_name` with datatypes
|
|||||||
integer and text, respectively. The default value for `student_name` is
|
integer and text, respectively. The default value for `student_name` is
|
||||||
`John Smith`.
|
`John Smith`.
|
||||||
|
|
||||||
|
Read more about types and restrictions (most of them have been removed thanks to pickle) in our docs
|
||||||
|
|
||||||
## Basic Usage
|
## Basic Usage
|
||||||
|
|
||||||
### Entry manipulation
|
### Entry manipulation
|
||||||
@@ -64,10 +70,10 @@ the middle.
|
|||||||
|
|
||||||
```python
|
```python
|
||||||
student = Student(10, "Albert Einstein")
|
student = Student(10, "Albert Einstein")
|
||||||
student.create_entry() # Adds the entry to the table associated in db.db.
|
await student.create_entry() # Adds the entry to the table associated in db.db.
|
||||||
student.student_id = 20 # Update an object on memory.
|
student.student_id = 20 # Update an object on memory.
|
||||||
student.update_entry() # Update the corresponding record in the database.
|
await student.update_entry() # Update the corresponding record in the database.
|
||||||
student.remove_entry() # Removes from the table.
|
await student.remove_entry() # Removes from the table.
|
||||||
```
|
```
|
||||||
|
|
||||||
But what if you have created your object in a previous session, or wish
|
But what if you have created your object in a previous session, or wish
|
||||||
@@ -76,15 +82,13 @@ collected by the Python interpreter? `remove_from(class_, obj_id)` is
|
|||||||
a function that can be used for this express purpose, for instance:
|
a function that can be used for this express purpose, for instance:
|
||||||
|
|
||||||
```python
|
```python
|
||||||
remove_from(Student, 2) # Removes the Student with obj_id 2.
|
await remove_from(Student, 2) # Removes the Student with obj_id 2.
|
||||||
```
|
```
|
||||||
|
|
||||||
Object IDs are auto-incremented, and correspond to the order the entry were
|
Object IDs are auto-incremented, and correspond to the order the entry were
|
||||||
inserted onto the system.
|
inserted onto the system.
|
||||||
|
|
||||||
## Fetching Records
|
## Fetching Records
|
||||||
> [!WARNING]
|
|
||||||
> **Limitation! Fetch can only fetch limited classes correctly**: int, float, bytes and str!
|
|
||||||
|
|
||||||
Finally, you may wish to recreate objects from a table that already exist, for
|
Finally, you may wish to recreate objects from a table that already exist, for
|
||||||
this purpose we have the module `fetch` module, from this you can import `
|
this purpose we have the module `fetch` module, from this you can import `
|
||||||
@@ -93,7 +97,7 @@ former fetches a record from the SQL database given its unique object_id
|
|||||||
whereas the latter checks if it is fetchable (most likely to check if it exists.)
|
whereas the latter checks if it is fetchable (most likely to check if it exists.)
|
||||||
|
|
||||||
```python
|
```python
|
||||||
>>> fetch_from(Student, 2)
|
>>> await fetch_from(Student, 2)
|
||||||
Student(student_id=10, student_name='Albert Einstein')
|
Student(student_id=10, student_name='Albert Einstein')
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -110,6 +114,6 @@ and returns the object whose `field` equals the provided `value`.
|
|||||||
|
|
||||||
#### Pagination
|
#### Pagination
|
||||||
|
|
||||||
`datalite` also supports pagination on `fetch_if`, `fetch_all` and `fetch_where`,
|
`aiodatalite` also supports pagination on `fetch_if`, `fetch_all` and `fetch_where`,
|
||||||
you can specify `page` number and `element_count` for each page (default 10), for
|
you can specify `page` number and `element_count` for each page (default 10), for
|
||||||
these functions in order to get a subgroup of records.
|
these functions in order to get a subgroup of records.
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
[tool.poetry]
|
[tool.poetry]
|
||||||
name = "aiodatalite"
|
name = "aiodatalite"
|
||||||
version = "0.7.3"
|
version = "1.0.0"
|
||||||
description = "A simple Python library to bind dataclasses with databases. Now asynchronous!"
|
description = "A simple Python library to bind dataclasses with databases. Now asynchronous!"
|
||||||
authors = ["hhh <h@localhost>", "Ege Ozkan <egeemirozkan24@gmail.com>"]
|
authors = ["hhh <h@localhost>", "Ege Ozkan <egeemirozkan24@gmail.com>"]
|
||||||
|
documentation = "https://aiodatalite.readthedocs.io"
|
||||||
|
repository = "https://github.com/kotikotprojects/aiodatalite"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user