a more efficient and concise SQLite framework.
Project description
ysql框架
更高效更简洁的sqlite数据库框架,借鉴了安卓Room框架的设计,将框架划分为Entity数据类、Dao数据访问类、Database数据库类三个层次。
框架直接建立在sqlite官方库的基础之上,无其他依赖,性能损失很小,隐藏(自动实现)了许多烦人的中间细节,只需要关心sql语句与python数据应用场景。
- 第三方库依赖:无
- 项目地址:ysql (gitee)
- 更新日志:CHANGELOG.md
- 使用文档:ysql (github)
作者:大风起兮呼呼呼
时间:2023-9-9# 更新日志
[1.3.10] - 2023-12-08
新增
- 新增了DaoFunc类,用Dao类继承后可以获取更明确的代码提示,将insert方法、execute_sql方法均移动到了此类中。
- Dao新增了execute_sql方法,对于复杂的sql语句应该通过此方法执行。
优化
- 移除了InsertMany装饰器,将批量插入的功能集成到了Insert装饰器中。
变更
- Sql装饰器不再具有传递静态sql隐藏参数的功能,只允许直接向Sql装饰器传递静态sql语句,简化了用法。
[1.3.9] - 2023-12-06
优化
- 优化了单条记录的返回形式。若sql中使用了 'limit 1' 则直接以Record类型返回这条记录,而不再使用list存储并返回。
[1.3.8] - 2023-12-06
新增
- 新增了InsertMany装饰器,可以批量插入数据。
- 新增了Dao数据访问类的内置批量插入函数insert_many(entities)
[1.3.7] - 2023-12-06
优化
- 去除了表名替代符的次数检查,可以在复杂sql中任意使用表名替代符。
[1.3.6] - 2023-12-06
新增
- 新增了ignore约束,允许entity数据类的属性不参与建表。
[1.3.5] - 2023-12-01
修复
- 修复了异常处理中的问题。
新增
- 补充了部分测试用例。
[1.3.4] - 2023-11-25
新增
- 完善了文档。
[1.3.3] - 2023-11-24
变更
- 移除了Path装饰器。
新增
- 初步发布了使用文档。
[1.3.2] - 2023-11-23
修复
- 修复了日志的错误导入问题。
[1.3.1] - 2023-11-23
变更
- 完善了README文件和示例。
[1.3.0] - 2023-11-23
新增
- 补充了详细的源码文档。
优化
- 重构了部分设计与实现。
- 移除了部分不合理的函数。
- 优化了部分函数名称。
- 内部启用了日志库。
[1.2.2] - 2023-11-22
修复
- 修复了解析类属性值时无法正确返回的问题。
优化
- 更改内部获取属性值函数名为parse_attr_value。
[1.2.1] - 2023-11-19
优化
- entity类型检查时会跳过值为None的属性,不进行检查。
[1.2.0] - 2023-11-19
新增
- entity装饰器现在可以执行类型检查,在每个数据类被实例化的时候,检查其属性值的类型是否与类型注释的一致,并且也会检查类型注释是否在允许的四个基本数据类型中。
优化
- 更改了部分函数的名称,统一‘属性’为'attribute'。
修复
- 修复了解析约束条件函数时,对多元素元组数量判断的问题。
- 修复了对entity使用getattribute方法时,无法获取内部属性的问题。
[1.1.6] - 2023-10-22
新增
- sql装饰器现在可以传递函数对象,在外部调用被装饰方法时,通过decorator_sql_params参数指定其需要的参数。
优化
- dao类中开放了原来私有的cursor属性。
- database类中新增了execute方法,提供了直接执行sql语句的接口。
- 将entity文件中的部分方法签名由field改为了property
[1.1.5] - 2023-10-20
修复
- 修复了database类中开启外键方法中漏掉下划线的语法错误。
[1.1.4] - 2023-10-20
新增
- 新增了database类中开启外键的方法。
[1.1.3] - 2023-10-10
修复
- 修复了entity中注释属性未换行造成的sqlite语法错误。
[1.1.1] - 2023-09-24
修复
- 修复从对数据类赋默认的None值引发的bug,在entity文件的get_value_from_field函数中增加了对None的处理。
- 修复了Constraint类注释方法引发的‘sqlite3.OperationalError: incomplete input’错误。
[1.1.0] - 2023-09-24
优化
- 重新设计并实现了更好的数据类使用方式,实例化速度提高一倍。
- 取消了数据类的描述符,代替为特定格式的元组解析和约束解析。
- 提供了更完整的约束,包括更完整的外键约束、默认值约束、条件约束等。
[1.0.9] - 2023-09-20
修复
- 修复Path装饰器传递路径时,未判断分割出的父目录是否为空,导致makedirs方法报错。
优化
- 隔离了get_example函数到单独的tool文件。
- 添加了包中init文件的导入,可更简洁的导入get_example及各个装饰器。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ysql-1.3.10.tar.gz
(19.8 kB
view hashes)
Built Distribution
ysql-1.3.10-py3-none-any.whl
(15.5 kB
view hashes)