Skip to content

Commit

Permalink
2020.3.28 v1.2 代码、单元测试、文档、demo 基本修改完成
Browse files Browse the repository at this point in the history
  • Loading branch information
wingfish committed Mar 28, 2020
1 parent 5ad44b9 commit 758ddd7
Show file tree
Hide file tree
Showing 5 changed files with 106 additions and 92 deletions.
61 changes: 0 additions & 61 deletions demo/demo_common.py
Expand Up @@ -6,34 +6,6 @@
from fishbase.fish_file import get_abs_filename_with_sub_path


# 2018.2.12 common 中 config 文件处理相关,#11013
def demo_common_config():
print('--- conf_as_dict demo---')
# 定义配置文件名
conf_filename = 'test_conf.ini'
# 读取配置文件
ds = conf_as_dict(conf_filename)

# 显示是否成功,所有 dict 的内容,dict 的 key 数量
print('flag:', ds[0])
print('dict:', ds[1])
print('length:', ds[2])

d = ds[1]

# 显示一个 section 下的所有内容
print('section show_opt:', d['show_opt'])
# 显示一个 section 下面的 key 的 value 内容
print('section show_opt, key short_opt:', d['show_opt']['short_opt'])

# 读取一个复杂的section,先读出 key 中的 count 内容,再遍历每个 key 的 value
i = int(d['get_extra_rules']['erule_count'])
print('section get_extra_rules, key erule_count:', i)
for j in range(i):
print('section get_extra_rules, key erule_type:', d['get_extra_rules']['erule_'+str(j)])
print('---')


# 2018.5.10
def demo_common_md5():
print('--- md5 demo ---')
Expand All @@ -52,22 +24,6 @@ def demo_json_contain():
print('---')


# 2018.5.19
def demo_singleton():
print('--- class singleton demo ---')
t1 = SingleTon()
t1.x = 2
print('t1.x:', t1.x)

t2 = SingleTon()

t1.x += 1

print('t1.x:', t1.x)
print('t2.x:', t2.x)
print('---')


# 2018.5.26
def demo_uuid():
print('--- uuid demo ---')
Expand Down Expand Up @@ -107,19 +63,6 @@ def demo_dict():

if __name__ == '__main__':

# 定义需要序列化的对象
class Foo(object):
a = 1
b = [1, 2, 3]
c = {'a': 1, 'b': 2}

def test(self):
print('hello')

# 序列化对象
result = serialize_instance(Foo)
print(result)

# 定义需要判断的列表
# 合法列表
test_legitimate_list = ['Hello World', 1]
Expand All @@ -132,17 +75,13 @@ def test(self):
result = if_any_elements_is_space(test_illegal_list)
print(result)

demo_common_config()

demo_common_md5()

demo_json_contain()

dic1 = {'key1': 'value1', 'key2': 'value2'}
print(splice_url_params(dic1))

demo_singleton()

demo_uuid()

demo_dict()
32 changes: 32 additions & 0 deletions demo/demo_system.py
Expand Up @@ -4,5 +4,37 @@

from fishbase.fish_system import *


# 2018.2.12 common 中 config 文件处理相关,#11013
def demo_common_config():
print('--- conf_as_dict demo---')
# 定义配置文件名
conf_filename = 'test_conf.ini'
# 读取配置文件
ds = conf_as_dict(conf_filename)

# 显示是否成功,所有 dict 的内容,dict 的 key 数量
print('flag:', ds[0])
print('dict:', ds[1])
print('length:', ds[2])

d = ds[1]

# 显示一个 section 下的所有内容
print('section show_opt:', d['show_opt'])
# 显示一个 section 下面的 key 的 value 内容
print('section show_opt, key short_opt:', d['show_opt']['short_opt'])

# 读取一个复杂的section,先读出 key 中的 count 内容,再遍历每个 key 的 value
i = int(d['get_extra_rules']['erule_count'])
print('section get_extra_rules, key erule_count:', i)
for j in range(i):
print('section get_extra_rules, key erule_type:', d['get_extra_rules']['erule_'+str(j)])
print('---')


if __name__ == '__main__':
print('current os:', get_platform())
demo_common_config()


10 changes: 10 additions & 0 deletions docs/change_log.rst
@@ -1,5 +1,15 @@
更新记录
===========================

2020.3.28 v1.2
---------------------------
* #255 #266, 开始使用 github 的 Actions 进行 CI 集成;
* `#257 <https://github.com/chinapnr/fishbase/issues/257>`_, conf_as_dict() 函数移动从 common 包移动到 system 包;
* `#259 <https://github.com/chinapnr/fishbase/issues/259>`_, 增加 `fish_object <https://fishbase.readthedocs.io/en/latest/fish_object.html>`_ 函数包,面向对象增强函数;
* `#260 <https://github.com/chinapnr/fishbase/issues/261>`_, common 包,删除 sorted_objs_by_attr() 函数和 get_group_list_data() 函数;
* `#261 <https://github.com/chinapnr/fishbase/issues/261>`_, common 包,paging 函数名称修改为 :meth:`get_page_data()`;


2019.12.5 v1.1.16
---------------------------
* `#249 <https://github.com/chinapnr/fishbase/issues/249>`_, add swagger module;
Expand Down
6 changes: 6 additions & 0 deletions docs/fish_object.rst
@@ -0,0 +1,6 @@
``fish_object`` 面向对象函数包
====================================

.. automodule:: fish_object
:members:
:exclude-members: SafeFileHandler
89 changes: 58 additions & 31 deletions docs/index.rst
Expand Up @@ -18,15 +18,19 @@
fishbase 简介
=================

fishbase 是由我们自主开发和整理的一套 Python 基础函数库。
fishbase 是由我们自主开发和整理的一套 Python 基础函数库,将我们平时在开发 Python 项目时候的各类工具函数汇聚到一起,方便集中管理和使用。

fishbase 当前版本为 v1.2,支持 Python 3.5-3.8,绝大部分函数也能工作在 Python 2.7 下,但是我们不推荐使用 Python 2.7 。

自 2016/3 初次发布以来,我们坚持不断更新,先后发布了 20 余个版本。近一年来,我们逐步形成每月更新 1 到 2 个版本的频率,抽象出了很多通用的方法,主要分为以下模块:


+----------------------------------------------------------------------------------+----------------------------------------+
| 模块 | 功能函数 |
| 模块 | 功能函数 |
+==================================================================================+========================================+
| `fish_common <https://fishbase.readthedocs.io/en/latest/fish_common.html>`_ | 基本函数包 |
| `fish_common <https://fishbase.readthedocs.io/en/latest/fish_common.html>`_ | 基本功能函数包 |
+----------------------------------------------------------------------------------+----------------------------------------+
| `fish_object <https://fishbase.readthedocs.io/en/latest/fish_object.html>`_ | 面向对象函数包 |
+----------------------------------------------------------------------------------+----------------------------------------+
| `fish_crypt <https://fishbase.readthedocs.io/en/latest/fish_crypt.html>`_ | 加密数据函数包 |
+----------------------------------------------------------------------------------+----------------------------------------+
Expand All @@ -46,7 +50,7 @@ fishbase 是由我们自主开发和整理的一套 Python 基础函数库。
+----------------------------------------------------------------------------------+----------------------------------------+
| `fish_system <https://fishbase.readthedocs.io/en/latest/fish_system.html>`_ | 系统增强函数包 |
+----------------------------------------------------------------------------------+----------------------------------------+
| `swagger <https://fishbase.readthedocs.io/en/latest/swagger.html>`_ | 集成 swagger为flask应用生成接口文档信息|
| `swagger <https://fishbase.readthedocs.io/en/latest/swagger.html>`_ | 集成swagger为flask应用生成接口文档信息 |
+----------------------------------------------------------------------------------+----------------------------------------+


Expand All @@ -63,33 +67,6 @@ fishbase 能干什么?
===================


集成 swagger 为 flask 应用生成接口文档信息
-----------------------------------------------

.. code:: python
>>> from fishbase.swagger import doc
>>> from fishbase.swagger.swagger import flask_swagger
>>> from flask import Flask
>>> # 创建 Flask app
>>> app = Flask("Demo Server")
>>> @app.route('/v1/query', methods=['GET'])
>>> @doc.summary("xx业务查询接口", group="xx业务")
>>> @doc.description("测试 Swagger 使用, 参数为 URL 参数 token, 且必传")
>>> @doc.consumes("token", required=True)
>>> def test_query():
>>> pass
>>> # 将 app 对象传递给 swagger 模块
>>> flask_swagger(app)
>>> if __name__ == "__main__":
>>> app.run("127.0.0.1", "8899", debug=False)
访问: http://127.0.0.1:8899/swagger/ 即可查看接口信息,并在线调试。更多 swagger 使用技巧,可参考 https://fishbase.readthedocs.io/en/latest/swagger.html

获取文件的绝对路径
------------------------------

Expand Down Expand Up @@ -145,6 +122,34 @@ fishbase 能干什么?
['requirements.txt', 'README.md', 'setup.py']
集成 swagger 为 flask 应用生成接口文档信息
-----------------------------------------------

.. code:: python
>>> from fishbase.swagger import doc
>>> from fishbase.swagger.swagger import flask_swagger
>>> from flask import Flask
>>> # 创建 Flask app
>>> app = Flask("Demo Server")
>>> @app.route('/v1/query', methods=['GET'])
>>> @doc.summary("xx业务查询接口", group="xx业务")
>>> @doc.description("测试 Swagger 使用, 参数为 URL 参数 token, 且必传")
>>> @doc.consumes("token", required=True)
>>> def test_query():
>>> pass
>>> # 将 app 对象传递给 swagger 模块
>>> flask_swagger(app)
>>> if __name__ == "__main__":
>>> app.run("127.0.0.1", "8899", debug=False)
访问: http://127.0.0.1:8899/swagger/ 即可查看接口信息,并在线调试。更多 swagger 使用技巧,可参考 https://fishbase.readthedocs.io/en/latest/swagger.html


.. toctree::
:maxdepth: 1

Expand All @@ -160,6 +165,7 @@ API 函数列表
:maxdepth: 2

fish_common
fish_object
fish_crypt
fish_csv
fish_data
Expand All @@ -176,3 +182,24 @@ API 函数列表
====

如有好的建议,欢迎提 issue :https://github.com/chinapnr/fishbase/issues

感谢
====

非常感谢所有在 fishbase 函数包发展过程中做出共享的朋友们:

Leo

Zhang Muqing

Hu Jun

Jia Chunyin

Yan Runsha

Miao Tianshi

Jin Xiongwei

Yi Jun

0 comments on commit 758ddd7

Please sign in to comment.