说明

有时候反复的搭建一些东西很麻烦(创建文件夹,拷贝粘贴), 这里构建一个工具包,用于快速在指定位置搭建所需的环境。

内容

该包处理一系列的文件夹和文件,使其按照指定的层次和内容准备好。使用者指定磁盘上的一处位置,FastBuild就在那个位置自动的生成所有所需的东西。

准备环节:在某个位置准备好文档,FastBuild去读取所有的文件和文件结构。形成一张参数表,记录了路径,文件名和文件内容。

应用环节:指定某个位置,函数包直接复制。也可以重新下载和上传新的参数表,有选择的复制。

FastBuild.PythonPack

我希望在不同场景下编写的函数可以尽量复用(减少重复编码,这样可以有更好的稳定性并节约时间);除此之外,在很多场景既希望可以使用自己的函数包,又不希望暴露过多的代码,通过FastBuild允许配置式的选择部分函数,构建一个需要的最小包。
首先会考虑到这样一张表:

索引 Index

路径 Path

函数名 FuncName

依赖 Dependency

功能 Function

描述 Description

例子 Example

1

./xx/xx

abc

a1,a2

计算和

简单计算和

1+1=2

从关系图的角度分析:
节点:函数
边:各种关系

节点的一些属性:

  • 1 路径
  • 2 名称
  • 3 功能
  • 4 描述
  • 5 样例

关系:

  • 1 路径 | -> 兄弟关系(一个包的函数都是兄弟, init.py是特殊的兄弟)
  • 2 依赖 | -> 依赖关系

从函数本身出发,节点还会有一些重要的属性,需要通过一些规范来约束:

  1. __ init __.py
    在这里的头部导入整个包需要的所有外部包,并在之下导回所有新编辑的函数
# 导入所有的外部包
# 析取这部分使用两个特征/规范,外部包一律使用import开始,且引用包名不是以.开头
# *********  IMPORT PACKAGES START ******************
import pandas as pd
import numpy as np 
# *********  IMPORT PACKAGES END ******************

# 导回所有的函数包
# 使用from开始,并以.func x作为规范导入函数
# 不允许导入多个函数(一个py文件一个函数)
# 1 求和函数
from .func1 import psuedo_func
  1. funcn.py
    头部标明描述和例子。
    导入部分导入__ init __.py导入的基础包,以及其他可能需要的本包内的函数
# 固定表达,只有.表名导入包通用的函数;通用函数包可以跟多个,用逗号分开
from . import pd, np 
# 固定表达,.加上func x表示从本地导入其他函数
# 这里可以析取依赖关系
from .funcx import xxx

# 用变量description开始,用三个单引号夹多行
description = '''这里是详细的描述 '''
# 用变量example 开始,用三个单引号夹多行
example = '''这里是简单的例子'''

# 函数体
# 用def+空格+函数名,小括号,冒号开始【必要的化可以使用正则】
def psuedo_func(a,b):
	return a+b

最终,每个py文件被解析为一个内存对象,可以重新写入新的py文件。这个内存对象有几个内容(节点属性):

  1. 函数名
  2. 函数参数的形式(定参、不定参)
  3. 依赖的通用包
  4. 依赖的包内函数
  5. 描述文本
  6. 例子文本
  7. 函数内容(文本)

通过路径的组织和安排(whl包封装),依赖关系的梳理,FastBuild需要生成一批新的funcs, 里面的内容根据函数表的勾选选定,按照先后顺序生成一批funcs文件,里面修改对应的py文件内容。

FastBuild.FlaskPack

迅速搭建Flask环境。

未完待续…