处女座程序员,请喜欢 Black

python代码美化工具black 装了一个好使的python代码美化工具,我用的是pycharm 下面是方法: 1.先装一下black: pip install black 2.装好了以后看下安装地址,把地址复制下来待会要用: where black 3.打开pycharm,依次打开 File–>settings–>Tools–>External Tools 看到这个页面 4.依次填:BlackFormatter 、 你black的地址 、 FilePathFilePathFilePath 、ProjectF 阅读详情

5. Formatter工具

Formatter工具也有很多种,但是我们几乎没有去考查其它的formatter,就选择了black,只因为它的logo:

The Uncompromising Code Formatter

与其它Formatter工具提供了体贴入微的自定义配置不同,Black坚持不让您做任何自定义(几乎)。这样做是有道理的,允许定制只会让团队陷入到无意义地争辩当中,而风格并无对错,习惯就好。我们常常看到在团队里,一些人为代码风格争论,其实他们反对的并不是某种风格本身,他们只是在反对自己的同事而已。

当然Black还是开了一个小窗口,允许你定义代码行的换行长度,Black的推荐是88字符。有的团队会把这个更改为120字符宽,按照阴谋论的观点,幕后的推手可能是生产带鱼屏的资本力量。

在ppw生成的项目中,我们把black的设置放在pyproject.toml中:

[tool.black]
line-length = 88
include = '\.pyi?$'

另外一个值得一提的工具是isort。它的作用是对代码中的import语句进行格式化,包括排序,将一行里的多个导入拆分成每行一个导入;始终把导入语句置于正式代码之前等等。通过 ppw向导生成的项目,这个工具也开箱即用的:

[tool.isort]
profile = "black"

这里的配置是防止isort与black相冲突。实际上flake8、black和isort都的配置需要精心同步才能避免冲突。一时发生冲突,就会出现这样的情况,被A工具改过的代码,又被B工具改回去,始终无法收敛。

比较遗憾的是,在vscode下没有一个好的工具可以自动移除没有使用的导入。Pycharm是可以做到这一点的。开源的工具中有可以做到这一点的,但是因为容易出错,这里也就不推荐了。

在vscode中,Lint工具可以检查出未使用的导入,然后您需要手动移除。移除未使用的import是必要的,它可以适当加快程序启动速度,降低内存占用,并且避免导入带来的副作用。

在这里插入图片描述

6. pre-commit hooks

我们把pre-commit hooks放在这一章里介绍,是因为高效的编码也必须是正确的编码。有时候我们会觉得国内的公司不需要计划和文档,需求、设计和编码各方之间不需要反复协商和沟通,一个指令下来,就很快得到执行。这被认为是执行力强,是一大体制优势,但这些“执行力”强的公司,却又累得要死。方向不正确,累死又有何益?

pre-commit是一个python包,可以通过pip安装:

$ pip install pre-commit

pre-commit安装后,会在你的项目目录下创建一个.git/hooks目录,里面有一个pre-commit文件。这个文件是一个shell脚本,它会在你执行git commit命令时被调用。pre-commit hooks的作用是在你提交代码之前,对代码进行检查,如果有错误,就会阻止你提交代码,从而保证代码库不被这些错误的、不合规范的代码污染。

如果使用向导生成项目的话,向导已经为您安装了pre-commit hooks,当您运行git commit命令时,就会看到这样的输出:

可以看出,pre-commit hooks对换行符进行了检查和修复,调用black进行了格式化,以及调用flake8进行了查错,并报告对f-string的错误使用。

当出现错误时,您必须进行修复后,才能进行再次提交。

6.1. pre-commit hooks的配置

在ppw生成的项目中,我们已经集成了这些配置:


        
GPT Image 2提示词五条底层规律:相机型号、光线行为、画幅坐标、风格门类与文化ID 提示词工程不是堆砌形容词,而是向AI传递可执行的视觉指令。其核心原理在于模型对具象物理参数(如35mm胶片、侧逆光、9:16竖版)、行业公认风格门类(如1960年代旅游海报、宋代文人水墨)及高信度文化专有名词(如苏东坡、阿马尔菲柠檬)具备强语义映射能力。这种响应机制源于多模态训练中沉淀的光学知识图谱、空间关系建模与文化实体数据库,技术价值在于显著降低试错成本、提升构图稳定性与细节可信度。典型应用场景涵盖商业人像、城市海报、复古插画、社交媒体创意及跨文化视觉生成。本文聚焦GPT Image 2原生能力验证的五 阅读详情

相关推荐

Pseudobulk与FindMarkers单细胞差异基因分析实战对比

本文深入对比了单细胞差异基因分析中Pseudobulk与FindMarkers两种主流方法。通过实战演示,详细解析了二者在底层逻辑、数据准备、分析流程及结果解读上的核心差异,并提供了基于不同生物学问题与数据特点的选择策略,帮助研究者做出更精准的分析决策。

weixin_29218963的博客 332

【AirSim+PX4】WSL2上运行PX4连接Airsim步骤

在 Linux 命令行中输入以下命令以添加(或改变)环境变量。注意,此处的 IP 地址应为。4.启动 sln 文件的调试以进入 UE4 编辑器,并在 Linux 中启动 PX4。

m0_53538421的博客 1505

TI C2000 , .cmd文件,.TI.ramfunc,将程序分配为在RAM中运行/Flash运行的配置方法和原理讲解,(如28375S ,280049,28335等等芯片)

1 基础知识讲解 1.1 在RAM中运行还是在flash中运行指的是什么? 1.1.1 背景:程序编译完之后生成的.bin文件,.bin文件中包含代码段,代码段中全是汇编指令,而汇编指令中包含多个函数,各函数头的地址不同,如存在A函数和B函数,假设RAM地址区间是0x0000-0x8000,flash的地址区间是0xA000-0xF000,A函数要调用B函数,则A函数调用B函数的那段汇编指令中包含的是B函数头的存储地址,A函数和B函数都在flash中有存储 1.1.2 情况1:B函数是配置为在RAM中运行,

weixin_43776284的博客 8065

浅谈迪杰斯特拉(Dijkstra)算法和A*算法原理及实现

迪杰斯特拉(Dijkstra)算法和A*算法的原理及实现。

Guo_Zhanyu 9598

语音AI Agent落地实战:从ASR-NLP-TTS到多通道协同决策

语音AI Agent并非简单的自动语音识别(ASR)、自然语言处理(NLP)和文本转语音(TTS)三模块串联,而是在真实场景中需兼顾实时性、鲁棒性与隐私合规的端到端交互系统。其核心原理在于打破‘文本中间态’依赖,通过声学-文本-上下文多通道协同决策,融合原始音频特征、N-best置信度与设备环境信号,实现动态意图推演。技术价值体现在低延迟(如120ms离线唤醒)、高抗噪(-5dB SNR下WER≤25%)及强可控性(断网降级、本地热更新)。典型应用场景覆盖车载语音、智能家居与银行网点等边缘受限环境,尤其适用

weixin_29065959的博客 326

大模型训练和推理

大模型训练moe是指混合专家(Mixture-of-experts,简称MoE)的,这是一种用于提高大型神经网络性能的技术,它可以将模型的一部分替换为多个专家,每个专家只负责处理一部分输入数据,从而增加模型的参数量和表达能力,同时减少计算量和训练时间。指令可以作为模型的输入的一部分,也可以作为模型的输出的一部分,具体取决于任务的类型。上下文扩展技术的,这是一种用于提高大型语言模型(LLM)对长文本的处理能力的技术,它可以让模型在不增加参数量的情况下,扩展其注意力范围,从而提高模型的语言理解和生成能力。

weixin_45325331的博客 6020

数据挖掘实战-基于情感分析+网络语义分析对泾阳茯茶用户评论进行文本分析

本实验数据集来源于京东商城,使用Python爬虫获取泾阳茯茶商品的用户评论,共计3416条数据,字段有用户ID、用户昵称、IP属地、评论时间、评分、评论内容,共计6个字段信息。'''作者:艾派森csdn主页:https://blog.youkuaiyun.com/m0_64336780时间:2024/5/28'''# 导包import csv# 获取评论q=0.01',q=0.9,en;b_avif=1;b_dw=1412;b_dh=650;areaId=27;

m0_64336780的博客 1万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

上一篇: Python能做大项目(9) - Mypy: 把静态类型检查带给Python
下一篇: 我的剑,传给能挥舞它的人--量化书籍推荐!
量化风云
博客等级 码龄10年 1581粉丝 105原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

量化风云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值