Python潮流周刊#3:PyPI 的安全問題

来源:https://www.cnblogs.com/pythonista/archive/2023/05/27/17437098.html
-Advertisement-
Play Games

在Python軟體開發中,tkinter中command功能的作用是為按鈕、菜單等組件綁定回調函數,用戶操作該組件時會觸發相應的函數執行。 本文涵蓋了各種組件和功能: 1、為Button組件(按鈕)綁定回調函數 import tkinter as tk def say_hello(): print( ...


你好,我是豌豆花下貓。這裡記錄每周值得分享的 Python 及通用技術內容,部分為英文,已在小標題註明。(標題取自其中一則分享,不代表全部內容都是該主題,特此聲明。)

文章&教程

1、掌握Python面向對象編程的關鍵:類與對象

介紹類和對象概念,通過示例展示 Python 中的類和對象如何工作,包括定義、實例化和繼承等。文章出自《Python全景系列》,目前已更新七篇。

2、umongo + motor: 構建高效 MongoDB 應用的最佳組合

介紹如何在 Tornado 中集成 umongo 和 motor,實現用非同步非阻塞的方式與 MongoDB 進行交互。文章出自《tornado 併發編程系列》,目前已更新六篇。

3、徒手使用 LangChain 搭建一個 ChatGPT PDF 知識庫

演示瞭如何使用 langchain 和 ChatGPT 搭建一個本地的 PDF 知識庫,文中使用了 pdfplumber 處理 PDF 文件、使用 streamlit 繪製 UI 界面。知識庫搭建和使用流程圖如下:

知識庫的工作流

4、Python 真的是靠一個 switch 來執行位元組碼的嗎?

一個流行的觀點說:CPython 有一個大switch,會根據不同的 opcode 跳到相應的 case 分支去執行位元組碼。文章提出了質疑,最後的結論是:只要 Python 啟用了 computed goto (比如在 Mac 和 Linux 上),位元組碼的執行就不依賴 switch。而這個功能在 Python 3.2 中就已是預設開啟的。

5、SQLite 的文藝復興

文章的開頭把我震驚了:“SQLite 源碼有 15 多萬行,但測試代碼和腳本竟有九千多萬行”!文章介紹了 SQLite 的架構,以及多個基於它的開源項目,如 Litefs、sql.js、absurd-sql、postlite、sqlite3vfshttp 等等,回答了為什麼 SQLite 能在如此多領域有創新的項目出現?

6、八十行代碼實現開源的 Midjourney、Stable Diffusion “咒語”作圖工具

通過 Docker 和 80 行左右的 Python 代碼,實現一款類似 Midjourney 官方圖片解析功能 Describe 的 Prompt 工具。提供了兩個版本的工具,分別支持 CPU 和 GPU 推理使用。

7、像寫 Rust 一樣寫 Python(英文)

分享了從 Rust 中學到的一些編程習慣:使用類型提示、使用數據類代替元組或字典、使用代數數據類型、使用“newtype”、使用構造函數、使用互斥鎖等。總體而言,它們並不是那些“個人喜好式”的編程風格,而是切實能提升代碼健壯性和可維護性的編程經驗。

8、一系列的 Flask 小貼士(英文)這個《Flask Tips》欄目已分享了 58 個使用 Flask 的小知識,另外其作者在最新的博文《我開發 Flask 程式時最喜歡用的庫》中,介紹了 APIFairy、Frozen-Flask、Flask-SQLAlchemy 等 10 個常用的庫。

9、Celery 的諸多問題(英文)

Celery 是一個分散式任務隊列庫,用於實現非同步處理和定時任務等功能。但它有很多“問題”,這篇文章一口氣列出了 15 個,是一份避坑指南。不過,並非所有問題都有解決方案,比如說它 API 介面不夠 Pythonic、沒有類型檢查等,這些就只能“Live with it”了……

10、Python 藉助 Gopy 庫實現調用 Go 包(英文)

作者遇到一個靜態驗證 PromQL 查詢的需求,但沒有可用的 Python 庫。文章介紹了使用 Gopy 將 Go 代碼編譯成 wheel 文件的方法,另外也提醒幾個註意事項,比如對錯誤的處理、操作系統的相容性問題、調試和測試的問題。

在Python中使用Go包的流程

11、最適用於 Pandas 的文件格式(英文)

使用 Pandas 前需要載入數據,它支持非常多種數據格式,但哪種才最合適呢?文中給出了三個衡量標準(類型支持、磁碟格式、讀寫速率),並測試了三種數據文件(CSV、JSON 和 Parquet),你猜最後的結論是什麼呢?

12、關於 PyPI 的一系列新聞/文章(英文)

PyPI 在 3 月上線了官方博客,5 月初剛宣佈獲得了 AWS 的 14.4 萬美元贊助,用於開設一個新的安全工程師職位。巧的是本周密集出現了幾件與安全相關的事情。

  • 5.21,PyPI 在連續一周受到惡意軟體的侵擾後,臨時暫停了新用戶的註冊及新項目的上傳。(這有一篇文章,提到一則有相關性的新聞,這些惡意軟體可能是趁 ChatGPT 的熱點,通過竊取剪貼板內容從而劫持加密貨幣交易)
  • 5.23,PyPI 宣佈移除 PGP 簽名,因為近三年上傳的簽名僅有 36% 為有效的,移除這項功能有利於降低維護成本。(這有一篇文章,使用大量數據和統計圖分析了 PyPI 上糟糕的 PGP 情況)
  • 5.24,PyPI 發了一篇博客,披露 PSF 收到了美國司法部的三張要求提供 PyPI 用戶數據的傳票,在律師的建議下,他們提供了司法部索要的數據,並公開了傳票的相關細節。
  • 5.25,PyPI 發佈《通過雙因素身份驗證保護 PyPI 帳戶》,宣佈在 2023 年底前,PyPI 上的帳戶都必須啟用雙重驗證(2FA),以此提升賬戶的安全性。
  • 5.26,PyPI 發佈《減少 PyPI 中存儲的 IP 數據》,介紹了團隊出於不存儲用戶 IP 的目的而做的一些事情,試圖既要保護用戶的隱私,又能更好地運維管理。

項目&資源

1、CyberWaifu:使用 LLM 和 TTS 實現的聊天機器人

使用 LangChain 作為 LLM 主體框架,使用 go-cqhttp 進行 QQ 機器人部署,TTS 支持 vits、edge-tts,語言模型支持ChatGPT 和 Claude。

2、FastGPT:基於 openai 搭建的知識庫平臺

技術棧: NextJs + TS + ChakraUI + Mongo + Postgres,支持私有化部署,可以線上體驗。

3、jesth:更具可讀性的數據序列化格式(英文)

文檔將這種新格式與 TOML、YAML 和 JSON 分別做了對比,並詳細展示了在 Python 中的使用方法。

4、trogon:為 CLI 程式生成友好的用戶界面(英文)

命令行程式本就是無界面的,但是這對於用戶來說不夠友好。這個項目可以生成美觀的界面,用於編輯和運行命令。

友好的用戶界面

5、ipyflow:用於 Jupyter 筆記本的響應式 Python 內核(英文)

可在互動式會話期間,跟蹤符號和單元格之間的數據流關係,支持的功能:顯示執行建議、支持響應式執行、語法拓展、集成了 ipywidgets,等等。

6、solara:一個純 python、React-風格的框架(英文)

solara 可使用 Reacton(純 Python 實現的 React)創建基於 ipywidget 的程式。可用在 Jupyter Notebook,也可以作為獨立的 Web 程式在 FastAPI 等框架中使用。

7、Python 3.12 的 beta 1 版本已發佈(英文)

3.12 的最終版本計劃在 10 月 2 日發佈,目前發佈了 beta 1 版本,意味著不會再加入新功能。總體而言,這個版本更為精簡了(刪除了很多函數、類和方法),性能方面也有很多優化。值得一提的是,這個版本雖然引入了 PEP-684(每個子解釋器的獨立 GIL),但需要等 3.13 版本實現 PEP-554(標準庫中的多解釋器)後,才真正的可用。

8、對比 Python 與 Rust 的編程習慣用法(英文)

這是一個有意思的網站,可比較不同編程語言在 300 多項習慣用法上的區別,提升學習效率。我們這裡比較了 Python 和 Rust,在網站首頁可選的語言有 30 種。

Python與Rust的慣用法對比

播客&視頻

1、哈佛大學的 Python 編程入門課程(英文)

哈佛大學電腦科學專業的入門課程,向初學者介紹電腦科學和編程基礎,以及如何使用 Python 進行編程。目前已有 50 萬人參與學習。

2、推薦 10 個最好用的 Django 插件(英文)

這期視頻中,《Django by Example》書籍的作者推薦了 10 個 Django 插件,例如 Django Debug Toolbar、Django REST Framework、Django Channels,等等。

問題&討論

1、Windows 要支持 tar、7-zip、rar、gz 等格式啦?(英文)

來自一則匿名爆料,Windows 要利用開源項目 libarchive 實現對 rar 等格式的支持了。這會是真的麽?

2、構建 API 的最佳語言——TS/JS vs. Python(英文)

從可維護性、優雅性、靈活性和開發速度的角度來看,這兩種語言的 API 開發體驗哪種更好?

贊助&支持

內容創作不易,如果你覺得有幫助,請隨意贊賞買杯咖啡或在愛發電進行支持!如果你喜歡本周刊,請轉發分享給其他需要的同學~

另誠邀贊助者,歡迎通過私信聯繫。

關於周刊

Python 潮流周刊,精心篩選國內外的 200+ 信息源,為你挑選最值得分享的文章、教程、開源項目、軟體工具、播客和視頻、熱門話題等內容。願景:幫助所有讀者精進 Python 技術,並增長職業和副業的收入。

訂閱方式:Python貓 | RSS | 郵件 | Github | Telegram | Twitter


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 要使用 `systemctl` 啟動單個服務,其中包含多個進程,你可以使用 Systemd 的 `template` 機制。以下是使用 Systemd 'template' 以創建一個可同時啟動多個進程的服務單元文件的過程: 1. 為你的服務創建一個 template 服務單元文件。服務單元文件通常 ...
  • # 欄位類型 | 數據類型 | 位元組 | 範圍 | | | | | |TINYINT|1 位元組|-2^7 + 1 ~ 2^7 - 1| |SMALLINT|2 位元組|-2^15 + 1 ~ 2^15 - 1| |INT|4 位元組|-2^31 + 1 ~ 2^31 - 1| |BIGINT|8 位元組| ...
  • 摘要:條件表達式函數中出現結果集不一致問題,我們首先要考慮是否入參數據類型不一致導致出參不一致。 本文分享自華為雲社區《GaussDB(DWS)條件表達式函數返回錯誤結果集排查》,作者:yd_211369925 。 (一)案例背景 客戶使用greatest獲取並返回參數列表中值最大的表達式的值,子查 ...
  • 好久沒更新博客了,因為工作越來越忙,沒什麼時間去記錄一些問題,最近閑下來一點,由於某些原因不得不暫時在Windows下做開發,項目用到了node-canvas處理圖片什麼的,在安裝的時候各種報錯,確實讓人很抓狂,這裡簡單記錄下: 首先說明下,node-canvas的 官方git倉庫 https:// ...
  • # Web 前端常用正則校驗規則 作為 Web 前端開發,常用的正則校驗規則有很多。下麵是一些常見的示例: ## 1. 校驗手機號碼 手機號碼的正則表達式可以根據不同國家和地區的手機號碼格式進行調整。以下是中國大陸的手機號碼正則表達式: ```javascript const regex = /^1 ...
  • 如果你有 *n* 個緩存伺服器,一個常見的負載均衡方式是使用以下的哈希方法: *伺服器索引 = 哈希(鍵) % N*,其中 *N* 是伺服器池的大小。 讓我們通過一個例子來說明這是如何工作的。如表5-1所示,我們有4台伺服器和8個字元串鍵及其哈希值。 ![image-2023052022160981 ...
  • 設計一個業務改動信息時的自定義記錄,例如新增、修改、刪除數據等。並且記錄的規則可以通過配置的方式控制。大家需要根據各自業務場景參考,歡迎討論。偽代碼如下: 實體類: @TableName("tbl_user") User{ String id String name Integer age Stri ...
  • > 本文首發於公眾號:Hunter後端 > 原文鏈接:[Python連接es筆記一之連接與查詢es](https://mp.weixin.qq.com/s/smp3VvWD6ChuFVuotQ9_zg) 有幾種方式在 Python 中配置與 es 的連接,最簡單最有用的方法就是定義一個預設的連接,如 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...