summaryrefslogtreecommitdiff
path: root/python-pydbapi.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-pydbapi.spec')
-rw-r--r--python-pydbapi.spec686
1 files changed, 686 insertions, 0 deletions
diff --git a/python-pydbapi.spec b/python-pydbapi.spec
new file mode 100644
index 0000000..1cb0079
--- /dev/null
+++ b/python-pydbapi.spec
@@ -0,0 +1,686 @@
+%global _empty_manifest_terminate_build 0
+Name: python-pydbapi
+Version: 0.0.106
+Release: 1
+Summary: A simple database API
+License: MIT License
+URL: https://pypi.org/project/pydbapi/
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/86/d8/9581e1d319cf0ba55afea61f5aeca6190ad75c1027c6effa64bfdbb59f75/pydbapi-0.0.106.tar.gz
+BuildArch: noarch
+
+Requires: python3-psycopg2-binary
+Requires: python3-pandas
+Requires: python3-pymysql
+Requires: python3-colorlog
+Requires: python3-tqdm
+
+%description
+# pydbapi
+
+## Installation
+```python
+pip install pydbapi
+```
+
+## 支持的数据库类型
++ sqlite
+```python
+from pydbapi.api import SqliteDB
+db = SqliteDB(database=None) # 或者传入路径
+sql = 'select * from [table];'
+row, action, result = db.execute(sql)
+```
++ Amazon Redshift
+```python
+from pydbapi.api import RedshiftDB
+db = RedshiftDB(host, user, password, database, port='5439', safe_rule=True)
+sql = 'select * from [schema].[table];'
+row, action, result = db.execute(sql)
+```
++ Mysql
+```python
+from pydbapi.api import MysqlDB
+db = MysqlDB(host, user, password, database, port=3306, safe_rule=True, isdoris=False)
+sql = 'select * from [table];'
+row, action, result = db.execute(sql)
+```
++ Snowflake(删除)
+```python
+from pydbapi.api import SnowflakeDB
+db = SnowflakeDB(user, password, account, warehouse, database, schema, safe_rule=True)
+sql = 'select * from [table];'
+row, action, result = db.execute(sql)
+```
+
++ instance模式
+```python
+from pydbapi.api import SqliteDB
+db = SqliteDB.get_instance(database=None) # 或者传入路径
+sql = 'select * from [table];'
+row, action, result = db.execute(sql)
+```
+
+## Column
+`from pydbapi.col import ColumnModel`
++ ColumnModel
+ + 代码
+ `col = ColumnModel(newname, coltype='varchar', sqlexpr=None, func=None, order=0)`
+ + params
+ * `newname`: 新命名;
+ * `coltype`: 类型
+ * `sqlexpr`: 查询sql表达式
+ * `func`: 查询函数,暂时支持'min', 'max', 'sum', 'count'
+ * `order`: 排序
+
++ ColumnsModel
+ + 代码
+ `cols = ColumnsModel(ColumnModel, ColumnModel, ……)`
+ + property
+ * `func_cols`: 返回col列表
+ * `nonfunc_cols`: 返回col列表
+ * `new_cols`: 返回拼接字符串
+ * `create_cols`: 返回拼接字符串
+ * `select_cols`: 返回拼接字符串
+ * `group_cols`: 返回拼接字符串
+ * `order_cols`: 返回拼接字符串
+ + mothed
+ * get_column_by_name
+ - `cols.get_column_by_name(name)`
+ - 返回`ColumnModel`
+## 支持的操作
++ execute[【db/base.py】](https://github.com/longfengpili/pydbapi/blob/master/pydbapi/db/base.py)
+ + 代码
+ `db.execute(sql, count=None, ehandling=None, verbose=0)`
+ + params
+ * `count`: 返回结果的数量;
+ * `ehandling`: sql执行出错的时候处理方式, default: None
+ * `verbose`: 执行的进度展示方式(0:不打印, 1:文字进度, 2:进度条)
++ select
+ + 代码
+ `db.select(tablename, columns, condition=None, verbose=0)`
+ + params
+ * `tablename`: 表名;
+ * `columns`: 列内容;
+ * `condition`: sql where 中的条件
++ create
+ + sqlite/redshift
+ + 代码
+ `db.create(tablename, columns, indexes=None, verbose=0)`
+ + params
+ - `tablename`: 表名;
+ - `columns`: 列内容;
+ - `indexes`: 索引,sqlite暂不支持索引
+ - `verbose`: 是否打印执行进度。
+ + mysql
+ + 代码
+ `db.create(tablename, columns, indexes=None, index_part=128, ismultiple_index=True, partition=None, verbose=0)`
+ + params
+ - `tablename`: 表名;
+ - `columns`: 列内容;
+ - `indexes`: 索引
+ - `index_part`: 索引part
+ - `ismultiple_index`: 多重索引
+ - `partition`: 分区
+ - `verbose`: 是否打印执行进度。
++ insert[【db/base.py】](https://github.com/longfengpili/pydbapi/blob/master/pydbapi/db/base.py)
+ + 代码
+ `db.insert(tablename, columns, inserttype='value', values=None, chunksize=1000, fromtable=None, condition=None)`
+ + params
+ * `tablename`: 表名;
+ * `columns`: 列内容;
+ * `inserttype`: 插入数据类型,支持value、select
+ * `values`: inserttype='value',插入的数值;
+ * `chunksize`: inserttype='value', 每个批次插入的量级;
+ * `fromtable`: inserttype='select',数据来源表;
+ * `condition`: inserttype='select',数据来源条件;
++ drop[【db/base.py】](https://github.com/longfengpili/pydbapi/blob/master/pydbapi/db/base.py)
+ + 代码
+ `db.drop(tablename)`
+ + params
+ * `tablename`: 表名;
++ delete[【db/base.py】](https://github.com/longfengpili/pydbapi/blob/master/pydbapi/db/base.py)
+ + 代码
+ `db.delete(tablename, condition)`
+ + params
+ * `tablename`: 表名;
+ * `condition`: 插入的数值;
++ get_columns
+ + 代码
+ `db.get_columns(tablename)`
+ + params
+ * `tablename`: 表名;
++ add_columns
+ + 代码
+ `db.add_columns(tablename, columns)`
+ + params
+ * `tablename`: 表名;
+ * `columns`: 列内容;
++ get_filesqls[【db/fileexec.py】](https://github.com/longfengpili/pydbapi/blob/master/pydbapi/db/fileexec.py)
+ + 代码
+ `db.get_filesqls(filepath, **kw)`
+ + params
+ * `filepath`: sql文件路径;
+ * `kw`: sql文件中需要替换的参数,会替换sqlfile中的arguments;
++ file_exec[【db/fileexec.py】](https://github.com/longfengpili/pydbapi/blob/master/pydbapi/db/fileexec.py)
+ + 代码
+ `db.file_exec(filepath, ehandling=None, verbose=0, **kw)`
+ + params
+ * `filepath`: sql文件路径; 文件名以<font color=red>`test`</font>开始或者结尾会打印sql执行的步骤;
+ * `ehandling`: sql执行出错的时候处理方式, default: None
+ * `verbose`: 执行的进度展示方式(0:不打印, 1:文字进度, 2:进度条)
+ * `kw`: sql文件中需要替换的参数 在sql文件中用`$param`, 会替换sqlfile中的arguments;
+ + sql文件格式(在desc中增加<font color=red>`verbose`</font>会打印sql执行的步骤;)
+ ```sql
+ #【arguments】#
+ ts = '2020-06-28'
+ date = today
+ date_max = date + timedelta(days=10)
+ #【arguments】#
+ ###
+ --【desc1 [verbose]】 #sql描述
+ --step1
+ sql1;
+ --step2
+ sql2 where name = $name;
+ ###
+ ###
+ --【desc2 [verbose]】 #sql描述
+ --step1
+ sql1;
+ --step2
+ sql2;
+ ###
+ ```
+ + arguments
+ * 支持python表达式(datetime、date、timedelta)
+ * 支持全局变量和当前sqlfile设置过的变量
+ * now:获取执行的时间
+ * today: 获取执行的日期
+
+## 支持的的settings[【conf/settings.py】](https://github.com/longfengpili/pydbapi/blob/master/pydbapi/conf/settings.py)
++ AUTO_RULES
+ 可以自动执行表名(表名包含即可)
++ REDSHIFT_AUTO_RULES
+ Amazon Redshift 可以自动执行表名(表名包含即可)
+
+## 调用日志格式
+1. 调用基础日志格式(已添加至工程init)
+```python
+import logging.config
+from pydbapi.conf.settings import LOGGING_CONFIG
+logging.config.dictConfig(LOGGING_CONFIG)
+```
+
+
+2. 查看每步sql可以使用如下日志格式(如果还出错,同时加上上面的内容)
+```python
+import logging
+dblogger = logging.getLogger('pydbapi.db.base')
+dblogger.setLevel(logging.DEBUG)
+```
+
+
+%package -n python3-pydbapi
+Summary: A simple database API
+Provides: python-pydbapi
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-pydbapi
+# pydbapi
+
+## Installation
+```python
+pip install pydbapi
+```
+
+## 支持的数据库类型
++ sqlite
+```python
+from pydbapi.api import SqliteDB
+db = SqliteDB(database=None) # 或者传入路径
+sql = 'select * from [table];'
+row, action, result = db.execute(sql)
+```
++ Amazon Redshift
+```python
+from pydbapi.api import RedshiftDB
+db = RedshiftDB(host, user, password, database, port='5439', safe_rule=True)
+sql = 'select * from [schema].[table];'
+row, action, result = db.execute(sql)
+```
++ Mysql
+```python
+from pydbapi.api import MysqlDB
+db = MysqlDB(host, user, password, database, port=3306, safe_rule=True, isdoris=False)
+sql = 'select * from [table];'
+row, action, result = db.execute(sql)
+```
++ Snowflake(删除)
+```python
+from pydbapi.api import SnowflakeDB
+db = SnowflakeDB(user, password, account, warehouse, database, schema, safe_rule=True)
+sql = 'select * from [table];'
+row, action, result = db.execute(sql)
+```
+
++ instance模式
+```python
+from pydbapi.api import SqliteDB
+db = SqliteDB.get_instance(database=None) # 或者传入路径
+sql = 'select * from [table];'
+row, action, result = db.execute(sql)
+```
+
+## Column
+`from pydbapi.col import ColumnModel`
++ ColumnModel
+ + 代码
+ `col = ColumnModel(newname, coltype='varchar', sqlexpr=None, func=None, order=0)`
+ + params
+ * `newname`: 新命名;
+ * `coltype`: 类型
+ * `sqlexpr`: 查询sql表达式
+ * `func`: 查询函数,暂时支持'min', 'max', 'sum', 'count'
+ * `order`: 排序
+
++ ColumnsModel
+ + 代码
+ `cols = ColumnsModel(ColumnModel, ColumnModel, ……)`
+ + property
+ * `func_cols`: 返回col列表
+ * `nonfunc_cols`: 返回col列表
+ * `new_cols`: 返回拼接字符串
+ * `create_cols`: 返回拼接字符串
+ * `select_cols`: 返回拼接字符串
+ * `group_cols`: 返回拼接字符串
+ * `order_cols`: 返回拼接字符串
+ + mothed
+ * get_column_by_name
+ - `cols.get_column_by_name(name)`
+ - 返回`ColumnModel`
+## 支持的操作
++ execute[【db/base.py】](https://github.com/longfengpili/pydbapi/blob/master/pydbapi/db/base.py)
+ + 代码
+ `db.execute(sql, count=None, ehandling=None, verbose=0)`
+ + params
+ * `count`: 返回结果的数量;
+ * `ehandling`: sql执行出错的时候处理方式, default: None
+ * `verbose`: 执行的进度展示方式(0:不打印, 1:文字进度, 2:进度条)
++ select
+ + 代码
+ `db.select(tablename, columns, condition=None, verbose=0)`
+ + params
+ * `tablename`: 表名;
+ * `columns`: 列内容;
+ * `condition`: sql where 中的条件
++ create
+ + sqlite/redshift
+ + 代码
+ `db.create(tablename, columns, indexes=None, verbose=0)`
+ + params
+ - `tablename`: 表名;
+ - `columns`: 列内容;
+ - `indexes`: 索引,sqlite暂不支持索引
+ - `verbose`: 是否打印执行进度。
+ + mysql
+ + 代码
+ `db.create(tablename, columns, indexes=None, index_part=128, ismultiple_index=True, partition=None, verbose=0)`
+ + params
+ - `tablename`: 表名;
+ - `columns`: 列内容;
+ - `indexes`: 索引
+ - `index_part`: 索引part
+ - `ismultiple_index`: 多重索引
+ - `partition`: 分区
+ - `verbose`: 是否打印执行进度。
++ insert[【db/base.py】](https://github.com/longfengpili/pydbapi/blob/master/pydbapi/db/base.py)
+ + 代码
+ `db.insert(tablename, columns, inserttype='value', values=None, chunksize=1000, fromtable=None, condition=None)`
+ + params
+ * `tablename`: 表名;
+ * `columns`: 列内容;
+ * `inserttype`: 插入数据类型,支持value、select
+ * `values`: inserttype='value',插入的数值;
+ * `chunksize`: inserttype='value', 每个批次插入的量级;
+ * `fromtable`: inserttype='select',数据来源表;
+ * `condition`: inserttype='select',数据来源条件;
++ drop[【db/base.py】](https://github.com/longfengpili/pydbapi/blob/master/pydbapi/db/base.py)
+ + 代码
+ `db.drop(tablename)`
+ + params
+ * `tablename`: 表名;
++ delete[【db/base.py】](https://github.com/longfengpili/pydbapi/blob/master/pydbapi/db/base.py)
+ + 代码
+ `db.delete(tablename, condition)`
+ + params
+ * `tablename`: 表名;
+ * `condition`: 插入的数值;
++ get_columns
+ + 代码
+ `db.get_columns(tablename)`
+ + params
+ * `tablename`: 表名;
++ add_columns
+ + 代码
+ `db.add_columns(tablename, columns)`
+ + params
+ * `tablename`: 表名;
+ * `columns`: 列内容;
++ get_filesqls[【db/fileexec.py】](https://github.com/longfengpili/pydbapi/blob/master/pydbapi/db/fileexec.py)
+ + 代码
+ `db.get_filesqls(filepath, **kw)`
+ + params
+ * `filepath`: sql文件路径;
+ * `kw`: sql文件中需要替换的参数,会替换sqlfile中的arguments;
++ file_exec[【db/fileexec.py】](https://github.com/longfengpili/pydbapi/blob/master/pydbapi/db/fileexec.py)
+ + 代码
+ `db.file_exec(filepath, ehandling=None, verbose=0, **kw)`
+ + params
+ * `filepath`: sql文件路径; 文件名以<font color=red>`test`</font>开始或者结尾会打印sql执行的步骤;
+ * `ehandling`: sql执行出错的时候处理方式, default: None
+ * `verbose`: 执行的进度展示方式(0:不打印, 1:文字进度, 2:进度条)
+ * `kw`: sql文件中需要替换的参数 在sql文件中用`$param`, 会替换sqlfile中的arguments;
+ + sql文件格式(在desc中增加<font color=red>`verbose`</font>会打印sql执行的步骤;)
+ ```sql
+ #【arguments】#
+ ts = '2020-06-28'
+ date = today
+ date_max = date + timedelta(days=10)
+ #【arguments】#
+ ###
+ --【desc1 [verbose]】 #sql描述
+ --step1
+ sql1;
+ --step2
+ sql2 where name = $name;
+ ###
+ ###
+ --【desc2 [verbose]】 #sql描述
+ --step1
+ sql1;
+ --step2
+ sql2;
+ ###
+ ```
+ + arguments
+ * 支持python表达式(datetime、date、timedelta)
+ * 支持全局变量和当前sqlfile设置过的变量
+ * now:获取执行的时间
+ * today: 获取执行的日期
+
+## 支持的的settings[【conf/settings.py】](https://github.com/longfengpili/pydbapi/blob/master/pydbapi/conf/settings.py)
++ AUTO_RULES
+ 可以自动执行表名(表名包含即可)
++ REDSHIFT_AUTO_RULES
+ Amazon Redshift 可以自动执行表名(表名包含即可)
+
+## 调用日志格式
+1. 调用基础日志格式(已添加至工程init)
+```python
+import logging.config
+from pydbapi.conf.settings import LOGGING_CONFIG
+logging.config.dictConfig(LOGGING_CONFIG)
+```
+
+
+2. 查看每步sql可以使用如下日志格式(如果还出错,同时加上上面的内容)
+```python
+import logging
+dblogger = logging.getLogger('pydbapi.db.base')
+dblogger.setLevel(logging.DEBUG)
+```
+
+
+%package help
+Summary: Development documents and examples for pydbapi
+Provides: python3-pydbapi-doc
+%description help
+# pydbapi
+
+## Installation
+```python
+pip install pydbapi
+```
+
+## 支持的数据库类型
++ sqlite
+```python
+from pydbapi.api import SqliteDB
+db = SqliteDB(database=None) # 或者传入路径
+sql = 'select * from [table];'
+row, action, result = db.execute(sql)
+```
++ Amazon Redshift
+```python
+from pydbapi.api import RedshiftDB
+db = RedshiftDB(host, user, password, database, port='5439', safe_rule=True)
+sql = 'select * from [schema].[table];'
+row, action, result = db.execute(sql)
+```
++ Mysql
+```python
+from pydbapi.api import MysqlDB
+db = MysqlDB(host, user, password, database, port=3306, safe_rule=True, isdoris=False)
+sql = 'select * from [table];'
+row, action, result = db.execute(sql)
+```
++ Snowflake(删除)
+```python
+from pydbapi.api import SnowflakeDB
+db = SnowflakeDB(user, password, account, warehouse, database, schema, safe_rule=True)
+sql = 'select * from [table];'
+row, action, result = db.execute(sql)
+```
+
++ instance模式
+```python
+from pydbapi.api import SqliteDB
+db = SqliteDB.get_instance(database=None) # 或者传入路径
+sql = 'select * from [table];'
+row, action, result = db.execute(sql)
+```
+
+## Column
+`from pydbapi.col import ColumnModel`
++ ColumnModel
+ + 代码
+ `col = ColumnModel(newname, coltype='varchar', sqlexpr=None, func=None, order=0)`
+ + params
+ * `newname`: 新命名;
+ * `coltype`: 类型
+ * `sqlexpr`: 查询sql表达式
+ * `func`: 查询函数,暂时支持'min', 'max', 'sum', 'count'
+ * `order`: 排序
+
++ ColumnsModel
+ + 代码
+ `cols = ColumnsModel(ColumnModel, ColumnModel, ……)`
+ + property
+ * `func_cols`: 返回col列表
+ * `nonfunc_cols`: 返回col列表
+ * `new_cols`: 返回拼接字符串
+ * `create_cols`: 返回拼接字符串
+ * `select_cols`: 返回拼接字符串
+ * `group_cols`: 返回拼接字符串
+ * `order_cols`: 返回拼接字符串
+ + mothed
+ * get_column_by_name
+ - `cols.get_column_by_name(name)`
+ - 返回`ColumnModel`
+## 支持的操作
++ execute[【db/base.py】](https://github.com/longfengpili/pydbapi/blob/master/pydbapi/db/base.py)
+ + 代码
+ `db.execute(sql, count=None, ehandling=None, verbose=0)`
+ + params
+ * `count`: 返回结果的数量;
+ * `ehandling`: sql执行出错的时候处理方式, default: None
+ * `verbose`: 执行的进度展示方式(0:不打印, 1:文字进度, 2:进度条)
++ select
+ + 代码
+ `db.select(tablename, columns, condition=None, verbose=0)`
+ + params
+ * `tablename`: 表名;
+ * `columns`: 列内容;
+ * `condition`: sql where 中的条件
++ create
+ + sqlite/redshift
+ + 代码
+ `db.create(tablename, columns, indexes=None, verbose=0)`
+ + params
+ - `tablename`: 表名;
+ - `columns`: 列内容;
+ - `indexes`: 索引,sqlite暂不支持索引
+ - `verbose`: 是否打印执行进度。
+ + mysql
+ + 代码
+ `db.create(tablename, columns, indexes=None, index_part=128, ismultiple_index=True, partition=None, verbose=0)`
+ + params
+ - `tablename`: 表名;
+ - `columns`: 列内容;
+ - `indexes`: 索引
+ - `index_part`: 索引part
+ - `ismultiple_index`: 多重索引
+ - `partition`: 分区
+ - `verbose`: 是否打印执行进度。
++ insert[【db/base.py】](https://github.com/longfengpili/pydbapi/blob/master/pydbapi/db/base.py)
+ + 代码
+ `db.insert(tablename, columns, inserttype='value', values=None, chunksize=1000, fromtable=None, condition=None)`
+ + params
+ * `tablename`: 表名;
+ * `columns`: 列内容;
+ * `inserttype`: 插入数据类型,支持value、select
+ * `values`: inserttype='value',插入的数值;
+ * `chunksize`: inserttype='value', 每个批次插入的量级;
+ * `fromtable`: inserttype='select',数据来源表;
+ * `condition`: inserttype='select',数据来源条件;
++ drop[【db/base.py】](https://github.com/longfengpili/pydbapi/blob/master/pydbapi/db/base.py)
+ + 代码
+ `db.drop(tablename)`
+ + params
+ * `tablename`: 表名;
++ delete[【db/base.py】](https://github.com/longfengpili/pydbapi/blob/master/pydbapi/db/base.py)
+ + 代码
+ `db.delete(tablename, condition)`
+ + params
+ * `tablename`: 表名;
+ * `condition`: 插入的数值;
++ get_columns
+ + 代码
+ `db.get_columns(tablename)`
+ + params
+ * `tablename`: 表名;
++ add_columns
+ + 代码
+ `db.add_columns(tablename, columns)`
+ + params
+ * `tablename`: 表名;
+ * `columns`: 列内容;
++ get_filesqls[【db/fileexec.py】](https://github.com/longfengpili/pydbapi/blob/master/pydbapi/db/fileexec.py)
+ + 代码
+ `db.get_filesqls(filepath, **kw)`
+ + params
+ * `filepath`: sql文件路径;
+ * `kw`: sql文件中需要替换的参数,会替换sqlfile中的arguments;
++ file_exec[【db/fileexec.py】](https://github.com/longfengpili/pydbapi/blob/master/pydbapi/db/fileexec.py)
+ + 代码
+ `db.file_exec(filepath, ehandling=None, verbose=0, **kw)`
+ + params
+ * `filepath`: sql文件路径; 文件名以<font color=red>`test`</font>开始或者结尾会打印sql执行的步骤;
+ * `ehandling`: sql执行出错的时候处理方式, default: None
+ * `verbose`: 执行的进度展示方式(0:不打印, 1:文字进度, 2:进度条)
+ * `kw`: sql文件中需要替换的参数 在sql文件中用`$param`, 会替换sqlfile中的arguments;
+ + sql文件格式(在desc中增加<font color=red>`verbose`</font>会打印sql执行的步骤;)
+ ```sql
+ #【arguments】#
+ ts = '2020-06-28'
+ date = today
+ date_max = date + timedelta(days=10)
+ #【arguments】#
+ ###
+ --【desc1 [verbose]】 #sql描述
+ --step1
+ sql1;
+ --step2
+ sql2 where name = $name;
+ ###
+ ###
+ --【desc2 [verbose]】 #sql描述
+ --step1
+ sql1;
+ --step2
+ sql2;
+ ###
+ ```
+ + arguments
+ * 支持python表达式(datetime、date、timedelta)
+ * 支持全局变量和当前sqlfile设置过的变量
+ * now:获取执行的时间
+ * today: 获取执行的日期
+
+## 支持的的settings[【conf/settings.py】](https://github.com/longfengpili/pydbapi/blob/master/pydbapi/conf/settings.py)
++ AUTO_RULES
+ 可以自动执行表名(表名包含即可)
++ REDSHIFT_AUTO_RULES
+ Amazon Redshift 可以自动执行表名(表名包含即可)
+
+## 调用日志格式
+1. 调用基础日志格式(已添加至工程init)
+```python
+import logging.config
+from pydbapi.conf.settings import LOGGING_CONFIG
+logging.config.dictConfig(LOGGING_CONFIG)
+```
+
+
+2. 查看每步sql可以使用如下日志格式(如果还出错,同时加上上面的内容)
+```python
+import logging
+dblogger = logging.getLogger('pydbapi.db.base')
+dblogger.setLevel(logging.DEBUG)
+```
+
+
+%prep
+%autosetup -n pydbapi-0.0.106
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-pydbapi -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed May 10 2023 Python_Bot <Python_Bot@openeuler.org> - 0.0.106-1
+- Package Spec generated