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

news2024/9/22 15:32:06

写在前面

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

关于库

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

库使用

安装方式

pip install myz_tools

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

使用方式如下

from myz_tools.source2md import dir2md

dir2md("./待处理的目录")

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


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2042079.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

volatile 浅谈

在Java中,volatile 关键字是一种轻量级的同步机制,它用于确保变量的可见性和有序性,但不保证原子性。当我们说 volatile 屏障时,我们实际上是在讨论 volatile 变量如何影响Java内存模型(JMM)中的操作重排序…

Vue3+vite+ts 项目使用mockjs

1、安装mockjs npm i mockjs 2、安装vite-plugin-mock npm i vite-plugin-mock -D 3、安装axios npm i axios 4.在src目录下创建mock文件夹,在文件夹内创建login.ts等文件,并在文件夹内放置以下内容(注:URL要和真实请求地址保持一致&am…

使用html+css+js实现完整的登录注册页面

在这篇博客中,我们将讨论如何使用简单的 HTML 和 CSS 构建一个登录与注册页面。这个页面包含两个主要部分:登录界面和注册界面。我们还会展示如何通过 JavaScript 切换这两个部分的显示状态。 页面结构 我们将创建一个页面,其中包含两个主要…

DALL-E 2:重新定义图像生成的人工智能

DALL-E 2是一款先进的人工智能模型,它在图像生成领域取得了突破性进展。与前一代DALL-E相比,DALL-E 2能够以更高的分辨率和更精细的细节生成图像,同时还能更好地理解并处理复杂的文本描述。这意味着,用户可以通过输入描述性的文本…

⌈ 传知代码 ⌋ Visual SLAM函数

💛前情提要💛 本文是传知代码平台中的相关前沿知识与技术的分享~ 接下来我们即将进入一个全新的空间,对技术有一个全新的视角~ 本文所涉及所有资源均在传知代码平台可获取 以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦&#x…

【扩散模型入门教程】

DDPM 从零实现代码:https://huggingface.co/blog/annotated-diffusion improved-diffusion,openai代码:https://github.com/openai/improved-diffusion diffusion_tutorial:https://github.com/sunlin-ai/diffusion_tutorial St…

RCE多种绕过技巧+贷齐乐漏洞复现

文章目录 1、RCE绕过2、贷齐乐的漏洞复现3、函数绕过 1、RCE绕过 <?php if(isset($_GET[code])){$code $_GET[code];if(strlen($code)>35){die("Long.");}if(preg_match("/[A-Za-z0-9_$]/",$code)){die("NO.");}eval($code); }else{hig…

医疗挂号管理系统

TOC springboot203医疗挂号管理系统 第一章 绪论 1.1 选题背景 目前整个社会发展的速度&#xff0c;严重依赖于互联网&#xff0c;如果没有了互联网的存在&#xff0c;市场可能会一蹶不振&#xff0c;严重影响经济的发展水平&#xff0c;影响人们的生活质量。计算机的发展&…

51单片机-LCD1602显示屏

简介 是一个液晶显示屏&#xff0c;通过电压对显示区域进行控制&#xff0c;有电就显示。 能够同时显示32个字符&#xff0c;分为两行&#xff0c;一行显示16个字符。可以显示的内容只能是字母、数字或者一些特殊符号。 使用ASCII码来让LCD1602来显示对应的字符。 电路图 …

HarmonyOS应用三之组件生命周期和参数传递

目录&#xff1a; 1、生命周期的执行顺序2、页面数据传递3、图片的读取4、数据的备份和恢复5、轮播图6、页面布局图 1、生命周期的执行顺序 /** Copyright (c) 2023 Huawei Device Co., Ltd.* Licensed under the Apache License, Version 2.0 (the "License");* yo…

OpenSSL源码编译及Debug

** 1. 环境 Linux 5.19.0-14-generic 22.04.1-Ubuntu 2. 所需工具 gcc version 11.3.0 (Ubuntu 11.3.0-1ubuntu1~22.04) cmake version 3.22.1 3. 步骤 3.1 获取openssl源码 方法可以git clone获得源码&#xff0c;或者直接去GitHub上下载压缩包&#xff0c;GitHub网址&#xf…

4 C 语言变量、printf 基本输出、scanf 基本输入、关键字、标识符及其命名规则

目录 1 为什么需要变量 2 变量的概念 3 变量的声明和使用 3.1 vscode 管理代码 4 printf 输出变量 5 scanf 输入数据赋值给变量 6 标识符 6.1 标识符命名规范 6.1.1 强制规范 6.1.2 建议规范 6.2 关键字 7 案例&#xff1a;求从键盘输入整数的和 8 测试题 1 为什么…

如何用20块钱创建一个国际网站 VC编程网站 www.vcbcw.top

我一直想弄一个网站。 但是网页设计这一块一直没有精力学习。 所以打算先用最少的投入创建一个属于自己的网站。 第一步&#xff1a; 到万网www.net.cn上申请一个域名&#xff0c;8块钱的&#xff0c;10块钱的都有&#xff0c;自己好好想一个名称就行了。 新手&#xff0c…

【重新定义matlab强大系列二十】Matlab显示地球地貌数据

&#x1f517; 运行环境&#xff1a;Matlab &#x1f6a9; 撰写作者&#xff1a;左手の明天 &#x1f947; 精选专栏&#xff1a;《python》 &#x1f525; 推荐专栏&#xff1a;《算法研究》 #### 防伪水印——左手の明天 #### &#x1f497; 大家好&#x1f917;&#x1f91…

探索Java Stream API:高效处理集合的利器

文章目录 一、Stream API简介1.1 什么是Stream&#xff1f;1.2 Stream的特点 二、Stream API的基本操作2.1 创建Stream2.2 中间操作2.3 终端操作 三、Stream API的高级应用3.1 并行Stream3.2 复杂数据处理3.3 Stream与Optional 四、最佳实践例子 1: 筛选和映射例子 2: 排序和收…

【Linux修行路】进程控制——程序替换

目录 ⛳️推荐 一、单进程版程序替换看现象 二、程序替换的基本原理 三、程序替换接口学习 3.1 替换自己写的可执行程序 3.2 第三个参数 envp 验证 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下…

Dify 开源大语言模型(LLM) 应用开发平台如何使用Docker部署与远程访问

目录 ⛳️推荐 前言 1. Docker部署Dify 2. 本地访问Dify 3. Ubuntu安装Cpolar 4. 配置公网地址 5. 远程访问 6. 固定Cpolar公网地址 7. 固定地址访问 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享…

Vue3列表(List)

效果如下图&#xff1a;在线预览 APIs List 参数说明类型默认值bordered是否展示边框booleanfalsevertical是否使用竖直样式booleanfalsesplit是否展示分割线booleantruesize列表尺寸‘small’ | ‘middle’ | ‘large’‘middle’loading是否加载中booleanfalsehoverable是否…

mysql写个分区表

因为表量已经达到1个亿了。现在想做个优化&#xff0c;先按照 create_time 时间进行分区吧。 create_time 是varchar类型。 CREATE TABLE orders (id varchar(40) NOT NULL ,order_no VARCHAR(20) NOT NULL,create_time VARCHAR(20) NOT NULL,amount DECIMAL(10,2) NOT NULL,…

Unity如何使用Spine动画导出的动画

Unity如何使用Spine动画导出的动画 介绍使用版本Spine导出源文件修改Spine3.8.75版本导入Unity的3.8版本Spine的报错Unity辅助修改Json中版本号方式总结 介绍 最近公司在做抖音小程序的小游戏&#xff0c;我们这边动画部分使用的是spine动画&#xff0c;所以会有spine导入的问…