当前位置: 首页 > news >正文

【myz_tools】Python库 myz_tools:Python算法及文档自动化生成工具

写在前面

本来最开始只是单纯的想整理一下常用到的各类算法,还有一些辅助类的函数,方便时间短的情况下快速开发。后来发现整理成库更方便些,索性做成库,通过pip install 直接可以安装使用

关于库

平时见到的各类算法大多数还是需要自己手动敲,比如四分位距法,还得知道了原理后详改代码,索性直接做成函数,直接传入原始数据,返回清洗后的数据。内部的话代码也已经开源,也做过几轮测试,所以不用担心会出现什么奇奇怪怪的BUG之类,当然如果有的话还请提出

库使用

安装方式

pip install myz_tools

目前主要两部分,一个算法,一个是用于python文件转化为文档的函数,使用也很方便,支持自定义目录和指定输出到一个md或者各自转化的不同的md文件里面,虽然有Sphinx可以用,但是我还是期待可以找到一种更加简洁的方式快速解决问题

使用方式如下

from myz_tools.source2md import dir2mddir2md("./待处理的目录")

dir2md会自动检查此目录下的所有的python文件并且生成文档,完整参数可以鼠标放到上面查看

image-20240815105239302


最终的效果是下面这样的(把生成的md文件里面的内容拷贝到了下面)

文件名称: all_test.py


文章目录

  • 写在前面
  • 关于库
  • 库使用
  • 文件名称: all_test.py
    • 函数部分:
    • 类部分:
      • 类TestCreateDir
        • 类方法setUp
        • 类方法tearDown
        • 类方法test_create_new_directory
        • 类方法test_directory_already_exists
      • 类TestGetMaxDiff
        • 类方法test_standard_case
        • 类方法test_single_column_array
        • 类方法test_invalid_input
        • 类方法test_non_numeric_data
      • 类TestRemoveOutliersIQR
        • 类方法test_remove_outliers_basic
        • 类方法test_all_inliers
        • 类方法test_single_column
      • 类TestExportToCsv
        • 类方法setUp
        • 类方法tearDown
        • 类方法test_file_creation
        • 类方法test_data_written_correctly
        • 类方法test_append_data
  • 文件名称: common_maths.py
    • 函数部分:
        • 函数create_dir
        • 函数get_max_diff
        • 函数remove_outliers_iqr
        • 函数export_to_csv
    • 类部分:
  • 文件名称: source2md.py
    • 函数部分:
        • 函数dir2md
        • 函数extract_info
        • 函数all_save_markdown
        • 函数all2md
        • 函数extract_function_docs_from_file
        • 函数save_docs_to_markdown
        • 函数pyFun2md
    • 类部分:
  • 仓库的链接
  • END


函数部分:


类部分:

类TestCreateDir

TestCreateDir
类方法setUp
在每个测试之前运行的代码,用于设置测试环境
类方法tearDown
在每个测试之后运行的代码,用于清理测试环境
类方法test_create_new_directory
测试函数在不存在的路径中创建目录
类方法test_directory_already_exists
测试函数在目录已经存在的情况下处理

类TestGetMaxDiff

类方法test_standard_case
测试函数在正常二维数组中的行为
类方法test_single_column_array
测试函数在只有一列的二维数组中的行为
类方法test_invalid_input
测试函数在非二维数组输入中的行为
类方法test_non_numeric_data
测试函数在包含非数字数据的二维数组中的行为

类TestRemoveOutliersIQR

类方法test_remove_outliers_basic
测试简单的二维数组,确保函数能正确去除异常值。
类方法test_all_inliers
测试当没有异常值时,所有数据都应该保留。
类方法test_single_column
测试只有一列数据的情况。

类TestExportToCsv

类方法setUp
在每个测试之前运行的代码,用于设置测试环境
类方法tearDown
在每个测试之后运行的代码,用于清理测试环境
类方法test_file_creation
测试函数是否能够创建CSV文件
类方法test_data_written_correctly
测试函数是否正确写入数据到CSV文件
类方法test_append_data
测试函数在文件存在时是否能够正确追加数据

文件名称: common_maths.py



函数部分:

函数create_dir
在指定路径下创建名称为{dir_name}的文件夹
Args:dir_name: 文件夹名称path: 要创建文件夹的路径,默认为当前路径Returns:无
函数get_max_diff
参数:two_dimensional_array: 二维数组
返回值:每一列里面最大值和最小值的差值,类型是一个一维数组
功能:传入一个二维数组,函数返回每一列里面最大值和最小值的差值。
函数remove_outliers_iqr
参数:data: 二维数组
返回值:去除异常值后的二维数组和有效的行索引,类型是一个元组
功能:四分位距法去除传入的二维数组中的异常值,注意是对于每一列来说的自己的异常值
函数export_to_csv
参数:array_data: 二维数组,要保存的数据file_name: 字符串,CSV文件的名称(不包含扩展名)output_directory: 字符串,保存文件的目录路径,默认为当前目录
返回:None
功能:将给定的二维数组保存到指定目录中的CSV文件。如果文件已存在,则追加数据,并在每次写入时添加空行作为分隔符。

类部分:


文件名称: source2md.py



函数部分:

函数dir2md
Args:source_dir: 待处理目录output_dir: 输出目录single_file: 是否将所有文件放到一个md文件中
函数extract_info
功能:解析python文件,提取函数和类信息
Args:file_path: 待处理文件路径
Returns:function_docs: 函数信息class_info: 类信息
函数all_save_markdown
功能:将提取的函数和类信息保存为markdown文件
Args:file_path: 待处理文件路径output_path: 保存路径function_docs: 函数信息class_info: 类信息
Returns:无
函数all2md
功能:调用,将一个python文件中的函数和类信息提取出来,并保存为markdown文件
Args:file_path: 字符串,python文件的路径output_path: 字符串,markdown文件的保存路径
Returns:无
函数extract_function_docs_from_file
从 Python 文件中提取函数的 docstring(注释部分)。参数:file_path: 字符串,Python 文件的路径。返回:字典,键为函数名,值为函数的 docstring。
函数save_docs_to_markdown
将函数的 docstring 保存到 Markdown 文件中。参数:docs: 字典,包含函数名和 docstring 的映射。output_path: 字符串,Markdown 文件的保存路径。
函数pyFun2md
将 Python 文件中提取 docstring 并保存为 Markdown 文件。参数:source_file: 字符串,源 Python 文件的路径。output_md: 字符串,输出 Markdown 文件的路径。

类部分:


仓库的链接

如果使用中有问题或者是需要别的什么算法,欢迎到
Issues · yi/myz_tools - Gitee.com提Issues,我会逐个看过去的

END


相关文章:

  • 基于NXP IMX6Q+FPGA全自动血液分析仪解决方案
  • 分布式事务和一致性
  • 基于 Konva 实现Web PPT 编辑器(一)
  • ORB-SLAM3(Failed to load image)问题解决(WSL2配置)
  • 电脑版视频剪辑软件哪个好?适合新手使用的剪辑软件!
  • 贪心算法介绍(Greedy Algorithm)
  • enhanced Input Action IA_Look中Action value引脚没有分割结构体引脚的选项
  • Repeat方法:取模运算教材与Unity控制台输出数值不同的原因
  • Linux 基本指令讲解 上
  • 详解Redis 高可用的方式 Redis Cluster
  • 【Hugging Face】 Hugging Face 公司和 Hugging Face 网站介绍
  • C#中常用的扩展类
  • 行业大模型:信用评分大模型、生产优化大模型、库存管理大模型、物流行业大模型、零售行业大模型
  • 财务会计与管理会计(四)
  • 【C++ 面试 - 基础题】每日 3 题(十九)
  • 时间复杂度分析经典问题——最大子序列和
  • 自己简单写的 事件订阅机制
  • __proto__ 和 prototype的关系
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 《剑指offer》分解让复杂问题更简单
  • 【Linux系统编程】快速查找errno错误码信息
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • avalon2.2的VM生成过程
  • ES10 特性的完整指南
  • HTTP 简介
  • javascript数组去重/查找/插入/删除
  • Java比较器对数组,集合排序
  • java多线程
  • Java面向对象及其三大特征
  • Python3爬取英雄联盟英雄皮肤大图
  • REST架构的思考
  • SpringBoot 实战 (三) | 配置文件详解
  • 读懂package.json -- 依赖管理
  • 什么软件可以剪辑音乐?
  • 微信小程序填坑清单
  • 我建了一个叫Hello World的项目
  • 线性表及其算法(java实现)
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • ​【已解决】npm install​卡主不动的情况
  • ​HTTP与HTTPS:网络通信的安全卫士
  • #define
  • #HarmonyOS:基础语法
  • #Linux(Source Insight安装及工程建立)
  • #微信小程序:微信小程序常见的配置传值
  • $$$$GB2312-80区位编码表$$$$
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (1)svelte 教程:hello world
  • (13):Silverlight 2 数据与通信之WebRequest
  • (2020)Java后端开发----(面试题和笔试题)
  • (31)对象的克隆
  • (补)B+树一些思想
  • (独孤九剑)--文件系统
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (三)Honghu Cloud云架构一定时调度平台
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介