Python 潮流周刊#40:白宫建议使用 Python 等内存安全的语言

△△请给“Python猫”加星标 ,以免错过文章推送

e5262e36baf7d7229a263fab8f37c69a.jpeg

你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文。本周刊开源,欢迎投稿[1]。另有电报频道[2]作为副刊,补充发布更加丰富的资讯,欢迎关注。

🦄文章&教程

1、白宫建议使用 Python 等内存安全语言[3]

最近,白宫发布了一份报告,建议使用内存安全的编程语言。去年 CISA、NSA 等机构联合发布的报告列出了内存安全的语言有 C#、Go、Java、Python、Rust 及 Swift。PSF 这篇文章介绍了 Python 在内存安全性方面所做的工作,包括封装底层代码、从 C 向 Rust 迁移、使用编译器选项强化 C 代码构建。

e779e27acd2cde74304c4d464dbb5dce.png
CSI表中对Python的简短描述

2、回顾 Requests 库的问题[4]

文章作者是 Requests 的核心维护者之一,他列举了这个库做得糟糕的多个地方,也指出了很多想改进却没有做到的原因。文末的结语说:“the project feels dead”。这让人感觉很难受。本周刊第26期[5] 分享过该库作者 KR 的道歉文,然而社区内几无波澜,后来看到 KR 失业,从推文感觉他精神状态很糟糕,更让人难受了。(投稿by@frostming90)

3、Python 的 UV 工具确实相当不错[6]

上期周刊分享的可替换pipuv 库,你用了么?感觉如何啊?文章作者给出了积极反馈,分享了自己一些配置文件的前后对比。

4、 Python 生成器未得到充分利用[7]

Python 生成器的作用是能节省内存,这篇文章用很明白的例子对比了两种内存使用情况,让我们感受到生成器的好处,同时,文章也指出了需要避免的一些使用陷阱。

5、使用 Python 作高级 Web 抓取:从任意网站抓取数据[8]

文章讨论了从 Web 抓取内容的一些高级技术,话题包括如何更好处理 Cookie 及自定义请求头、什么是 TLS 指纹以及如何避免它、需要注意的常见 HTTP 请求头、在发出 HTTP 请求时如何集成指数回退重试,等等。

6、Django REST 框架 + Vue 对比 Django + HTMX[9]

两种 Web 开发框架的组合:DRF + Vue 以及 Django + HTMX,它们分别是如何使用的,各自又有哪些优势和劣势呢?文章用这两个组合分别实现同样的功能,分析了两组技术栈的差异,罗列了一份比对清单,可方便我们更好地作技术选型。

7、可组合数据系统之路:对过去 15 年和未来的思考[10]

文章出自pandas 库兼《Python数据分析》一书的作者 Wes McKinney,回顾了他从 2008 年以来在数据科学领域所做的事情和转变,同时分析和思考了模块化、互操作性和可组合性的未来趋势。

8、用 Django 作 SQLite 基准测试[11]

作者分别调整 SQLite 的一些主要配置项来作基准测试,另外也比较了 SQLite 和 PostgreSQL 的性能。简短结论:启用 WAL 模式、使用 IMMEDIATE 事务、synchronous=NORMAL 和内存映射 I/O 对吞吐量的影响很小。

d8ec903f77d8d0a119374085f08b5a49.png

9、Python 3.13 的 JIT 是如何实现的?[12]

文章介绍了 Python 最新正在开发中的 JIT 是如何实现的,并尝试安装了开发版本,然后与无 JIT 版本作性能比较。目前 JIT 版本的性能反而慢于普通版本,官方仍需继续努力优化。

10、Python 网页抓取的终极指南[13]

一篇详细的爬虫教程,介绍了如何使用 BeautifulSoup、Scrapy 和 Selenium 等库实现网页抓取,如何克服复杂网页、限速、反爬、动态 javascript 等挑战。

11、为简单架构作辩护[14]

Wave 是一家仅有 70 名工程师但估值 17 亿美元的公司,其产品只是一款标准的 CRUD 程序,是构建在 Postgres 之上的 Python 单体架构。文章解释了为什么要选择这样的架构,解释了这样选型的合理性,以及为了保持它而克服的相关难题和选用的技术方案。

12、关于“调度”的内部原理[15]

一篇非常深度的长文,深入探讨了“并发”,解释了单线程服务器如何通过异步 IO 和事件驱动编程来处理数以百万计的任务。讨论了实现并发的各种方法和工具,不同编程语言的实现。文中有不少动画,可方便读者理解。

🎁Python潮流周刊🎁每 30 期为一季,第一季的精华内容已整理成一篇,方便你随时查看。在线访问地址:Python 潮流周刊第一季精华合集(1~30)[16]

🐿️项目&资源

1、ingestr:用单个命令在任何数据库间无缝复制数据[17]

这是一个 CLI 工具,使用简单的命令即可实现跨数据库的内容复制。支持增量加载:appendmergedelete+insert 模式。(star 1.3K)

2、justpath:在 Windows 和 Linux 上检查和优化 PATH 环境变量[18]

一个用于管理操作系统 PATH 环境变量的命令行工具,典型功能包括:筛选目录、识别和清理无效配置、PATH 转储为 JSON、创建新的环境变量、统计数量。

3、mountaineer:用于 Python 和 React 的自带电池的 Web 框架[19]

全栈的 Web 开发框架,主要特点:全栈的类型提示、友好的服务通信及数据绑定、服务器端渲染、对网页作静态分析的增强校验、等等。

4、generate:一个 API 访问国内外大模型平台[20]

使用一个统一的 API 访问大模型,特点:统一的 API、支持多模态、支持 10+ 大模型平台、异步&流式和并发、自带电池、轻量化、高质量代码。(投稿by@wangyuxinwhy)

5、StringZilla:将 C、C++、Python、Rust 和 Swift 的字符串速度提高 10 倍[21]

“由于低效的字符串操作,世界每年至少浪费 1 亿美元”。这个项目可替换编程语言原生的字符串类型,提高性能。可加速精确和模糊字符串匹配、编辑距离计算、排序、延迟计算范围以避免内存分配,甚至随机字符串生成器。(star 1.4K)

6、DrissionPage: 网页自动化工具,能控制浏览器,也能收发数据包[22]

采用全自研内核,对比 Selenium 有以下优点:无 webdriver 特征、跨 iframe 查找元素、把 iframe  看作普通元素、可同时操作多个标签页、可直接读取浏览器缓存来保存图片、可对整个网页截图,等等。(star 4.1K)

7、Daft:Rust 开发的面向云的分布式 Python DataFrame[23]

用 Rust 开发的用于大规模数据处理的分布式查询引擎,熟悉的交互式 API、专注于查询优化、集成数据目录、丰富的多模态类型系统、专为云而构建。(star 1.4K)

8、magika:使用深度学习来检测文件内容的类型[24]

谷歌最新开源作品,使用 AI 来检测文件类型,具有 99% 的精确度。可作为 Python 命令行和 API 使用,支持超过 100 中文件类型,每个文件的推理时间约为 5 毫秒。(star 7K)

55a2b27caa6c60d466a5dc282e4af253.png
magika与其它工具的得分对比图

9、frappe:低代码 Web 框架,使用 Python 和 Javascript[25]

自带电池的全栈 Web 框架,低代码,服务器端使用 Python 和 MariaDB,特点:元数据优先、管理员界面、开箱即用的角色和权限、支持插件、支持任务调度、邮箱管理、多租户,等等。(star 6.3K)

10、Umi-OCR: 开源、免费的离线 OCR 软件,支持截屏/批量导入图片[26]

解压即用,离线运行,无需网络;自带高效率的离线OCR引擎,内置多种语言识别库;支持命令行、HTTP接口等多种调用方式;截图OCR / 批量OCR / PDF识别 / 二维码。(star 19.4K)

11、xonsh:Python 开发的跨平台的类 Unix 的 shell[27]

这个项目是 Python 3.6+ 的超集,带有 shell 原语。可以作为 shell 和 Python 单独使用,也可以在 Python 里写 shell,在 shell 里写 Python。(star 7.8K)

8b41e4520aec2d88f606d4ccb10882e0.png

🐼欢迎订阅

  • 微信公众号[28]:除更新周刊外,还发布其它原创作品,并转载一些优质文章。(可加好友,可加读者交流群)

  • 博客[29] 及 RSS[30]:我的独立博客,上面有历年原创/翻译的技术文章,以及从 2009 年以来的一些随笔。

  • 邮件[31] 及 RSS[32]:在 Substack 上开通的频道,满足你通过邮件阅读时事通讯的诉求。

  • Github[33]:你可以获取本周刊的 Markdown 源文件,做任何想做的事!

  • Telegram[34]:除了发布周刊的通知外,我将它视为一个“副刊”,补充发布更加丰富的资讯。

  • Twitter[35]:我的关注列表里有大量 Python 相关的开发者与组织的账号。

参考资料

[1]

投稿: https://github.com/chinesehuazhou/python-weekly

[2]

电报频道: https://t.me/pythontrendingweekly

[3]

白宫建议使用 Python 等内存安全语言: https://pyfound.blogspot.com/2024/02/white-house-recommends-.html

[4]

回顾 Requests 库的问题: https://blog.ian.stapletoncordas.co/2024/02/a-retrospective-on-requests

[5]

第26期: https://pythoncat.top/posts/2023-11-11-weekly

[6]

Python 的 UV 工具确实相当不错: https://micro.webology.dev/2024/02/29/pythons-uv-tool.html

[7]

Python 生成器未得到充分利用: https://www.slashtmp.io/posts/generators/

[8]

使用 Python 作高级 Web 抓取:从任意网站抓取数据: https://jacobpadilla.com/articles/advanced-web-scraping-techniques

[9]

Django REST 框架 + Vue 对比 Django + HTMX: https://testdriven.io/blog/drf-vue-vs-django-htmx/

[10]

可组合数据系统之路:对过去 15 年和未来的思考: https://wesmckinney.com/blog/looking-back-15-years/

[11]

用 Django 作 SQLite 基准测试: https://blog.pecar.me/django-sqlite-benchmark

[12]

Python 3.13 的 JIT 是如何实现的?: https://zhuanlan.zhihu.com/p/682997904

[13]

Python 网页抓取的终极指南: https://proxiesapi.com/articles/web-scraping-in-python-the-complete-guide

[14]

为简单架构作辩护: https://danluu.com/simple-architectures/

[15]

关于“调度”的内部原理: https://tontinton.com/posts/scheduling-internals/

[16]

Python 潮流周刊第一季精华合集(1~30): https://pythoncat.top/posts/2023-12-11-weekly

[17]

ingestr:用单个命令在任何数据库间无缝复制数据: https://github.com/bruin-data/ingestr

[18]

justpath:在 Windows 和 Linux 上检查和优化 PATH 环境变量: https://github.com/epogrebnyak/justpath

[19]

mountaineer:用于 Python 和 React 的自带电池的 Web 框架: https://github.com/piercefreeman/mountaineer

[20]

generate:一个 API 访问国内外大模型平台: https://github.com/wangyuxinwhy/generate

[21]

StringZilla:将 C、C++、Python、Rust 和 Swift 的字符串速度提高 10 倍: https://github.com/ashvardanian/StringZilla

[22]

DrissionPage: 网页自动化工具,能控制浏览器,也能收发数据包: https://github.com/g1879/DrissionPage

[23]

Daft:Rust 开发的面向云的分布式 Python DataFrame: https://github.com/Eventual-Inc/Daft

[24]

magika:使用深度学习来检测文件内容的类型: https://github.com/google/magika

[25]

frappe:低代码 Web 框架,使用 Python 和 Javascript: https://github.com/frappe/frappe

[26]

Umi-OCR: 开源、免费的离线 OCR 软件,支持截屏/批量导入图片: https://github.com/hiroi-sora/Umi-OCR

[27]

xonsh:Python 开发的跨平台的类 Unix 的 shell: https://github.com/xonsh/xonsh

[28]

微信公众号: https://img.pythoncat.top/python_cat.jpg

[29]

博客: https://pythoncat.top

[30]

RSS: https://pythoncat.top/rss.xml

[31]

邮件: https://pythoncat.substack.com

[32]

RSS: https://pythoncat.substack.com/feed

[33]

Github: https://github.com/chinesehuazhou/python-weekly

[34]

Telegram: https://t.me/pythontrendingweekly

[35]

Twitter: https://twitter.com/chinesehuazhou

f3f9bc848142e028976efe882bd04bb1.gif

如果你觉得本文有帮助

请慷慨分享点赞,感谢啦

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

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

相关文章

三层靶机靶场之环境搭建

下载: 链接:百度网盘 请输入提取码 提取码:f4as 简介 2019某CTF线下赛真题内网结合WEB攻防题库,涉 及WEB攻击,内网代理路由等技术,每台服务器存在一个 Flag,获取每一 个Flag对应一个积分&…

在docker中搭建selenium 爬虫环境(3分钟快速搭建)

1、安装docker 省略 2、拉取镜像 docker pull selenium/standalone-chrome-debug 3、运行容器 docker run -d -p 4444:4444 -p 5900:5900 -v C:\Users\Public\VNC_Donwnloads:/home/seluser/Downloads --memory6g --name selenium_chrome selenium/standalone-chrome-debu…

大数据核心技术概论

大数据核心技术概述 大数据基石三大论文:GFS(Hadoop HDFS)、BigTable(Apache HBase)、MapReduce(Hadoop MapReduce)。 搜索引擎的核心任务:一是数据采集,也就是网页的爬…

matlab 感知器算法

1. 原理 两类线性可分的模式类:,设判别函数为:。 对样本进行规范化处理,即类样本全部乘以(-1),则有: 感知器算法通过对已知类别的训练样本集的学习,寻找一个满足上式的权向量。 2. 过程 2.1 …

力扣 分割回文串

输出的是不同的分割方案 class Solution { public:vector<vector<bool>>flag;vector<string>ans;vector<vector<string>>nums;void dfs(string &s,int i){int ns.size();if(in){i表示s长度&#xff0c;等于即全部分割完毕nums.push_back(ans…

第十三篇【传奇开心果系列】Python的文本和语音相互转换库技术点案例示例:Microsoft Azure的Face API开发人脸识别门禁系统经典案例

传奇开心果博文系列 系列博文目录Python的文本和语音相互转换库技术点案例示例系列 博文目录前言一、实现步骤和雏形示例代码二、扩展思路介绍三、活体检测深度解读和示例代码四、人脸注册和管理示例代码五、实时监控和报警示例代码六、多因素认证示例代码七、访客管理示例代码…

03-JNI 类型和数据结构

上一篇&#xff1a; 02-设计概述 本章讨论 JNI 如何将 Java 类型映射为本地 C 类型。 3.1 原始类型 下表描述了 Java 原始类型及其与机器相关的本地等价类型。 为方便起见&#xff0c;定义如下&#xff1a; #define JNI_FALSE 0 #define JNI_TRUE 1 jsize 整数类型用于描述…

逻辑回归与决策边界解析

目录 前言1 逻辑回归基础1.1 Sigmoid函数&#xff1a;打开分类之门1.2 决策函数&#xff1a;划定分类界限1.3 逻辑回归详解 2 决策边界2.1 线性决策边界2.2 非线性决策边界2.3 决策边界的优化 3 应用与实例3.1 垃圾邮件分类&#xff1a;精准过滤3.2 金融欺诈检测&#xff1a;保…

.idea文件详解

.idea文件的作用&#xff1a; .idea文件夹是存储IntelliJ IDEA项目的配置信息&#xff0c;主要内容有IntelliJ IDEA项目本身的一些编译配置、文件编码信息、jar包的数据源和相关的插件配置信息。一般用git做版本控制的时候会把.idea文件夹排除&#xff0c;因为这个文件下保存的…

ISO_IEC_18598-2016自动化基础设施管理(AIM)系统国际标准解读(一)

██ ISO_IEC_18598-2016是什么标准&#xff1f; ISO/IEC 18598国际标准是由ISO&#xff08;国际标准化组织&#xff09;/IEC&#xff08;国际电工委员会&#xff09;联合技术委员会1-信息技术的第25分委员会-信息技术设备互连小组制定的关于信息基础设施自动化管理的国际标准&…

【AI Agent系列】【MetaGPT多智能体学习】6. 多智能体实战 - 基于MetaGPT实现游戏【你说我猜】(附完整代码)

本系列文章跟随《MetaGPT多智能体课程》&#xff08;https://github.com/datawhalechina/hugging-multi-agent&#xff09;&#xff0c;深入理解并实践多智能体系统的开发。 本文为该课程的第四章&#xff08;多智能体开发&#xff09;的第四篇笔记。今天我们来完成第四章的作…

java垃圾回收

垃圾回收 一个对象如果不再使用&#xff0c;需要手动释放&#xff0c;否则就会出现内存泄漏。我们称这种释放对象的过程为垃圾回收&#xff0c;而需要程序员编写代码进行回收的方式为手动回收。 内存泄漏指的是不再使用的对象在系统中未被回收&#xff0c;内存泄漏的积累可能…

【ArcGIS Pro二次开发】(83):ProWindow和WPF的一些技巧

在ArcGIS Pro二次开发中&#xff0c;SDK提供了一种工具界面【ArcGIS Pro ProWindow】。 关于ProWindow的用法&#xff0c;之前写过一篇基础的教程&#xff1a; 【ArcGIS Pro二次开发】(13)&#xff1a;ProWindow的用法_arcgispro二次开发教程-CSDN博客 主要是对几个常用控件…

【嵌入式实践】【芝麻】【设计篇-2】从0到1给电动车添加指纹锁:项目可行性分析

0. 前言 该项目是基于stm32F103和指纹模块做了一个通过指纹锁控制电动车的小工具。支持添加指纹、删除指纹&#xff0c;电动车进入P档等待时计时&#xff0c;计时超过5min则自动锁车&#xff0c;计时过程中按刹车可中断P档状态&#xff0c;同时中断锁车计时。改项目我称之为“芝…

EMR StarRocks实战——猿辅导的OLAP演进之路

目录 一、数据需求产生 二、OLAP选型 2.1 需求 2.2 调研 2.3 对比 三、StarRocks的优势 四、业务场景和技术方案 4.1 整体的数据架构 4.2 BI自助/报表/多维分析 4.3 实时事件分析 4.5 直播教室引擎性能监控 4.4 B端业务后台—斑马 4.5 学校端数据产品—飞象星球 4…

Ajax(黑马学习笔记)

Ajax介绍 Ajax概述 我们前端页面中的数据&#xff0c;如下图所示的表格中的学生信息&#xff0c;应该来自于后台&#xff0c;那么我们的后台和前端是互不影响的2个程序&#xff0c;那么我们前端应该如何从后台获取数据呢&#xff1f;因为是2个程序&#xff0c;所以必须涉及到…

【ACM】—蓝桥杯大一暑期集训Day3

&#x1f680;欢迎来到本文&#x1f680; &#x1f349;个人简介&#xff1a;陈童学哦&#xff0c;目前学习C/C、算法、Python、Java等方向&#xff0c;一个正在慢慢前行的普通人。 &#x1f3c0;系列专栏&#xff1a;陈童学的日记 &#x1f4a1;其他专栏&#xff1a;CSTL&…

langchain学习笔记(九)

RunnableBranch: Dynamically route logic based on input | &#x1f99c;️&#x1f517; Langchain 基于输入的动态路由逻辑&#xff0c;通过上一步的输出选择下一步操作&#xff0c;允许创建非确定性链。路由保证路由间的结构和连贯。 有以下两种方法执行路由 1、通过Ru…

Vue开发实例(一)Vue环境搭建第一个项目

Vue环境搭建&第一个项目 一、环境搭建二、安装Vue脚手架三、创建Vue项目 一、环境搭建 下载方式从官网下载&#xff1a;http://nodejs.cn/download/ 建议下载v12.16.0版本以上的&#xff0c;因为版本低无法创建Vue的脚手架 检验是否安装成功 配置环境变量 新增NODE_HOME&…

win11系统中nginx简单的代理配置

一.背景 为了公司安排的师带徒任务。 操作系统版本&#xff1a;win11家庭版 nginx版本&#xff1a;1.24.0 二.配置代理 之前文章已经说明了nginx简单的安装&#xff0c;要看阅读这个文章哈。web服务器nginx下载及在win11的安装-CSDN博客 1.配置需求识别 前端服务nginx(80…