├── resources ├── python_weekly.db ├── img │ ├── python-weekly.jpg │ ├── weekly_wordcloud_1.png │ ├── weekly_wordcloud_2.png │ ├── weekly_wordcloud_3.png │ └── weekly_wordcloud_4.png ├── requirements.txt ├── prompt │ ├── trans_to_en.txt │ └── trans_to_zh.txt ├── README.md ├── weekly_season_link.py ├── weekly_project.md ├── weekly_template_en.md ├── weekly-ebook.py ├── weekly_season_summary.py └── weekly_summary_en.py ├── landing-page ├── public │ ├── favicon.ico │ ├── og-image.png │ ├── og-image-en.png │ ├── wechat_pythoncat.jpg │ ├── stats.json │ ├── _redirects │ ├── logo_python_weekly.svg │ ├── _headers │ └── logo_pythonlink.svg ├── postcss.config.js ├── hooks │ └── useTranslations.ts ├── next-env.d.ts ├── i18n.ts ├── i18n │ └── request.ts ├── .eslintrc.json ├── next.config.js ├── tsconfig.json ├── package.json ├── app │ ├── [locale] │ │ ├── page.tsx │ │ └── layout.tsx │ ├── layout.tsx │ ├── page.tsx │ └── globals.css ├── tailwind.config.js ├── .gitignore ├── components │ └── FAQSection.tsx └── README.md ├── .gitignore ├── .github └── workflows │ ├── weekly_collection_job.yml │ └── weekly_summary_job.yml └── docs ├── 2025-05-10-weekly.md ├── 2025-03-15-weekly.md ├── 2025-01-04-weekly.md ├── 2025-01-18-weekly.md ├── 2025-03-01-weekly.md ├── 2025-02-23-weekly.md ├── 2025-03-08-weekly.md ├── 2025-06-07-weekly.md ├── 2025-08-23-weekly.md ├── 2025-09-13-weekly.md ├── 2025-11-01-weekly.md ├── 2025-09-06-weekly.md ├── 2025-01-25-weekly.md ├── 2025-09-27-weekly.md ├── 2025-08-09-weekly.md ├── 2025-02-08-weekly.md ├── 2025-12-13-weekly.md ├── 2025-12-20-weekly.md ├── 2025-07-12-weekly.md ├── 2025-08-16-weekly.md ├── 2025-07-05-weekly.md ├── 2025-11-08-weekly.md ├── 2025-03-29-weekly.md ├── 2025-06-28-weekly.md ├── 2025-07-26-weekly.md ├── 2025-11-22-weekly.md ├── 2025-12-07-weekly.md ├── 2025-02-16-weekly.md ├── 2025-08-02-weekly.md ├── 2025-01-11-weekly.md ├── 2025-10-11-weekly.md ├── 2024-12-28-weekly.md ├── 2025-06-14-weekly.md ├── 2025-05-24-weekly.md ├── 2025-08-30-weekly.md ├── 2025-05-17-weekly.md ├── 2025-11-29-weekly.md ├── 2025-03-23-weekly.md ├── 2025-05-03-weekly.md ├── 2025-07-19-weekly.md ├── 2025-10-25-weekly.md ├── 2025-11-15-weekly.md ├── 2025-04-19-weekly.md ├── 2025-04-05-weekly.md ├── 2025-06-21-weekly.md ├── 2025-04-12-weekly.md ├── 2025-05-31-weekly.md ├── 2025-10-18-weekly.md ├── 2025-09-20-weekly.md ├── 2025-04-26-weekly.md └── en ├── 2025-12-20-weekly.md ├── 2025-11-22-weekly.md ├── 2025-06-07-weekly.md ├── 2025-11-01-weekly.md ├── 2025-11-08-weekly.md ├── 2025-09-13-weekly.md ├── 2025-08-09-weekly.md ├── 2025-11-29-weekly.md ├── 2025-11-15-weekly.md ├── 2025-09-06-weekly.md ├── 2025-12-07-weekly.md ├── 2025-09-27-weekly.md ├── 2025-07-12-weekly.md ├── 2025-08-23-weekly.md ├── 2025-12-13-weekly.md ├── 2025-10-25-weekly.md ├── 2025-07-05-weekly.md ├── 2025-08-02-weekly.md ├── 2025-06-28-weekly.md └── 2025-08-30-weekly.md /resources/python_weekly.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chinesehuazhou/python-weekly/HEAD/resources/python_weekly.db -------------------------------------------------------------------------------- /landing-page/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chinesehuazhou/python-weekly/HEAD/landing-page/public/favicon.ico -------------------------------------------------------------------------------- /landing-page/public/og-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chinesehuazhou/python-weekly/HEAD/landing-page/public/og-image.png -------------------------------------------------------------------------------- /resources/img/python-weekly.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chinesehuazhou/python-weekly/HEAD/resources/img/python-weekly.jpg -------------------------------------------------------------------------------- /landing-page/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } -------------------------------------------------------------------------------- /landing-page/public/og-image-en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chinesehuazhou/python-weekly/HEAD/landing-page/public/og-image-en.png -------------------------------------------------------------------------------- /resources/img/weekly_wordcloud_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chinesehuazhou/python-weekly/HEAD/resources/img/weekly_wordcloud_1.png -------------------------------------------------------------------------------- /resources/img/weekly_wordcloud_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chinesehuazhou/python-weekly/HEAD/resources/img/weekly_wordcloud_2.png -------------------------------------------------------------------------------- /resources/img/weekly_wordcloud_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chinesehuazhou/python-weekly/HEAD/resources/img/weekly_wordcloud_3.png -------------------------------------------------------------------------------- /resources/img/weekly_wordcloud_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chinesehuazhou/python-weekly/HEAD/resources/img/weekly_wordcloud_4.png -------------------------------------------------------------------------------- /landing-page/hooks/useTranslations.ts: -------------------------------------------------------------------------------- 1 | 'use client'; 2 | 3 | // 直接使用 next-intl 官方提供的钩子函数 4 | export { useTranslations, useLocale } from 'next-intl'; -------------------------------------------------------------------------------- /landing-page/public/wechat_pythoncat.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chinesehuazhou/python-weekly/HEAD/landing-page/public/wechat_pythoncat.jpg -------------------------------------------------------------------------------- /resources/requirements.txt: -------------------------------------------------------------------------------- 1 | feedparser 2 | httpx 3 | python-dotenv 4 | python-telegram-bot 5 | readability-lxml 6 | pyecharts 7 | jieba 8 | wordcloud 9 | PyYAML 10 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .env 2 | .idea 3 | resources/.DS_Store 4 | .DS_Store 5 | docs/tmp 6 | docs/en/tmp 7 | docs/en/summary 8 | landing-page/node_modules 9 | landing-page/.next 10 | .vscode -------------------------------------------------------------------------------- /landing-page/public/stats.json: -------------------------------------------------------------------------------- 1 | { 2 | "total_articles": 1603, 3 | "total_projects": 1524, 4 | "total_audio_video": 133, 5 | "total_hot_topics": 57, 6 | "total_books": 98, 7 | "total_issues": 132 8 | } -------------------------------------------------------------------------------- /landing-page/next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/app/api-reference/config/typescript for more information. 6 | -------------------------------------------------------------------------------- /landing-page/public/_redirects: -------------------------------------------------------------------------------- 1 | # Cloudflare Pages Redirects Configuration 2 | 3 | # Redirect root to default locale (zh) 4 | / /zh 302 5 | 6 | # Handle locale redirects for unsupported locales 7 | /zh-cn/* /zh/:splat 301 8 | /zh-Hans/* /zh/:splat 301 9 | /zh-Hant/* /zh-TW/:splat 301 10 | /en-US/* /en/:splat 301 11 | /en-GB/* /en/:splat 301 12 | 13 | # Fallback for any unmatched routes to 404 14 | /* /zh/404 404 -------------------------------------------------------------------------------- /landing-page/i18n.ts: -------------------------------------------------------------------------------- 1 | // Static export compatible i18n configuration 2 | // 支持的语言:简体中文、英文、繁体中文、日语、韩语、法语、德语、西班牙语、俄语、意大利语、葡萄牙语 3 | export const locales = ['zh', 'en', 'zh-TW', 'ja', 'ko', 'fr', 'de', 'es', 'ru', 'it', 'pt'] as const; 4 | // 默认语言为英文,除非检测到中文浏览器语言 5 | export const defaultLocale = 'en'; 6 | 7 | // Helper function to get messages for static export 8 | export async function getMessages(locale: string) { 9 | const validLocale = locales.includes(locale as any) ? locale : defaultLocale; 10 | return (await import(`./messages/${validLocale}.json`)).default; 11 | } -------------------------------------------------------------------------------- /landing-page/i18n/request.ts: -------------------------------------------------------------------------------- 1 | import {notFound} from 'next/navigation'; 2 | import {getRequestConfig} from 'next-intl/server'; 3 | import {locales, defaultLocale} from '../i18n'; 4 | 5 | export default getRequestConfig(async ({requestLocale}) => { 6 | // Obtain the locale from the request 7 | const locale = (await requestLocale) || defaultLocale; 8 | 9 | // Validate that the incoming `locale` parameter is valid 10 | if (!locales.includes(locale as any)) { 11 | notFound(); 12 | } 13 | 14 | return { 15 | locale, 16 | messages: (await import(`../messages/${locale}.json`)).default 17 | }; 18 | }); -------------------------------------------------------------------------------- /landing-page/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "next/core-web-vitals", 4 | "next/typescript" 5 | ], 6 | "rules": { 7 | "@typescript-eslint/no-unused-vars": "error", 8 | "@typescript-eslint/no-explicit-any": "warn", 9 | "react-hooks/exhaustive-deps": "warn", 10 | "react/no-unescaped-entities": "off", 11 | "@next/next/no-img-element": "error", 12 | "prefer-const": "error", 13 | "no-var": "error" 14 | }, 15 | "parser": "@typescript-eslint/parser", 16 | "parserOptions": { 17 | "ecmaVersion": "latest", 18 | "sourceType": "module", 19 | "ecmaFeatures": { 20 | "jsx": true 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /landing-page/next.config.js: -------------------------------------------------------------------------------- 1 | const createNextIntlPlugin = require('next-intl/plugin'); 2 | 3 | const withNextIntl = createNextIntlPlugin('./i18n/request.ts'); 4 | 5 | /** @type {import('next').NextConfig} */ 6 | const nextConfig = { 7 | output: 'export', // 启用静态导出 8 | trailingSlash: true, 9 | images: { 10 | unoptimized: true 11 | }, 12 | // 确保静态资源路径正确 13 | assetPrefix: process.env.NODE_ENV === 'production' ? '' : '', 14 | experimental: { 15 | optimizeCss: true, 16 | optimizePackageImports: ['react-icons', 'framer-motion'], 17 | }, 18 | // 移除turbopack配置,因为我们已经在package.json中移除了--turbo参数 19 | // 如果需要启用turbopack,可以使用以下配置 20 | // turbopack: {} 21 | }; 22 | 23 | module.exports = withNextIntl(nextConfig); -------------------------------------------------------------------------------- /landing-page/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2022", 4 | "lib": ["dom", "dom.iterable", "ES2022"], 5 | "allowJs": true, 6 | "skipLibCheck": true, 7 | "strict": true, 8 | "noEmit": true, 9 | "esModuleInterop": true, 10 | "module": "esnext", 11 | "moduleResolution": "bundler", 12 | "resolveJsonModule": true, 13 | "isolatedModules": true, 14 | "jsx": "preserve", 15 | "incremental": true, 16 | "forceConsistentCasingInFileNames": true, 17 | "noUncheckedIndexedAccess": true, 18 | "exactOptionalPropertyTypes": true, 19 | "plugins": [ 20 | { 21 | "name": "next" 22 | } 23 | ], 24 | "baseUrl": ".", 25 | "paths": { 26 | "@/*": ["./*"] 27 | } 28 | }, 29 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], 30 | "exclude": ["node_modules", ".next", "out"] 31 | } -------------------------------------------------------------------------------- /resources/prompt/trans_to_en.txt: -------------------------------------------------------------------------------- 1 | 你是一位精通简体中文和美式英语的专业翻译,尤其擅长将专业学术论文翻译成浅显易懂的科普文章。你的翻译规则和策略如下: 2 | 3 | 规则: 4 | - 翻译前要逐句阅读,理解上下文,翻译时要准确传达原文的事实和背景 5 | - 直译和意译都要保留原始段落格式,比如内容若以数字序号或者无序列表符号开头,则翻译时需要保留序号符 6 | - 保留英文术语缩写,例如 FLAC,JPEG 等 7 | - 中文人名需要翻译成对应的英文名 8 | - 全角括号换成半角括号,并在左括号前面加半角空格,右括号后面加半角空格 9 | - 输入格式为 Markdown 格式,输出格式也必须保留原始 Markdown 格式;例如`[文字](url)`是文字链接格式,请小心保持格式不被破坏 10 | - 对于一词多义的词汇和短语,请仔细考虑词义,选择最合适的翻译 11 | - 如果翻译得好,我会以我最感激的方式表扬你,也许会给你一些小惊喜 12 | - 以下固定翻译的对应表(中文 -> English): 13 | * Python 潮流周刊 -> Python Trending Weekly 14 | 15 | 策略: 16 | 分三步进行翻译工作,并打印每步的结果: 17 | 1. 根据输入内容直译,保持原有格式不变,不要遗漏任何信息 18 | 2. 根据第一步直译的结果,指出其中存在的具体问题,要准确描述,不宜笼统的表示,也不需要增加原文不存在的内容或格式,包括不仅限于: 19 | - 不符合英文表达习惯,明确指出不符合的地方 20 | - 语句不通顺,指出位置,不需要给出修改意见,意译时修复 21 | - 晦涩难懂,不易理解,可以尝试给出解释 22 | 3. 根据第一步直译的结果和第二步指出的问题,重新进行意译,保证内容原有格式和原意的基础上,使其更易于理解,更符合英文母语人士的表达习惯 23 | 24 | 你翻译后,只需返回最终意译的结果,不需要返回直译结果和问题。 25 | 26 | 现在请严格按照上面的规则、策略和结果要求,将接下来第一个冒号后的格式内容翻译为美式英语: 27 | -------------------------------------------------------------------------------- /.github/workflows/weekly_collection_job.yml: -------------------------------------------------------------------------------- 1 | name: Obtain the latest Python weekly newsletters every week 2 | 3 | on: 4 | workflow_dispatch: 5 | schedule: 6 | - cron: '0 10 * * 0' # on Sunday 18:00 UTC+8 7 | 8 | jobs: 9 | build: 10 | name: Build 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions/checkout@v3 14 | with: 15 | fetch-depth: 0 16 | ref: main 17 | - name: Set up Python 18 | uses: actions/setup-python@v4 19 | with: 20 | python-version: '3.10' 21 | - name: Install dependencies 22 | run: | 23 | python -m pip install --upgrade pip 24 | pip install -r resources/requirements.txt 25 | - name: Obtain weekly newsletters 26 | run: | 27 | python resources/weekly_collection.py 28 | env: 29 | TG_BOT_TOKEN: ${{ secrets.TG_BOT_TOKEN }} 30 | TG_CHAT_ID: ${{ secrets.TG_CHAT_ID }} 31 | -------------------------------------------------------------------------------- /landing-page/public/logo_python_weekly.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /resources/README.md: -------------------------------------------------------------------------------- 1 | # Python 潮流周刊的辅助脚本 2 | 3 | 在创作周刊时,我经常遇到一些重复性的工作,有些是工序比较繁琐的,有些是频繁需要做的。作为一名程序员,这些事怎么能忍? 4 | 5 | 我决定要使用技术来释放双手,提升个人的效能。 6 | 7 | 这里将收录我为方便周刊的创作与推广而写的脚本。 8 | 9 | - [周刊信息摘要,自动发送给 Telegram 机器人](./weekly_summary.py) :提取 Python 潮流周刊的摘要内容,用于在各平台发布 10 | 11 | - [聚合社区里最新发布的 Python 周刊,自动发送给 Telegram 机器人](./weekly_collection.py) :Python 社区里有很多技术周刊,每周日将最新信息采集起来,发布到我们周刊的 Telegram 频道中 12 | 13 | - [自动给已发布文章添加超链接](./weekly_season_link.py) :在发布第一季周刊的汇总文后,我发现它里面缺少指向每期周刊的链接,这个脚本的目的是补充相应的链接 14 | 15 | - [分拆中英文混合标题的原始文件](./split_weekly_file.py) :在写周刊的初稿时,若分享内容是英文的,我会在中文标题后保留原始的英文标题。等完成初稿后,我用这个脚本分拆成中文标题版+英文标题版。这样可以保留原始分享内容的标题,避免后续作二次翻译 16 | 17 | - [周刊中译英脚本](./weekly_translation.py) :获取待译的文件,解析正文后调用 LLM 实现翻译,再写入到模板文件中,归档在“docs/en”目录下 18 | 19 | - [记录每期周刊中条目的数量](./weekly_save_count.py) :获取每一期的文章、项目等条目的数量,记录到数据库中 20 | 21 | - [生成周刊词云脚本](./weekly_wordcloud.py) :获取每一季周刊的主要内容,生成词云,并保存为图片文件 22 | 23 | - [生成周刊统计看板页面](./weekly_kanban.py) :统计每一季周刊的柱状图、饼图和词云等数据,使用pyecharts库生成页面 24 | 25 | - todo:Telegram 机器人接收投稿,自动创建 Github issue 26 | 27 | - 待续 -------------------------------------------------------------------------------- /.github/workflows/weekly_summary_job.yml: -------------------------------------------------------------------------------- 1 | name: Send Python weekly summary to telegram bot 2 | 3 | on: 4 | workflow_dispatch: 5 | push: 6 | paths: 7 | - 'docs/**/*-weekly.md' # when adding weekly file 8 | - '!docs/en/**/*-weekly.md' 9 | 10 | jobs: 11 | build: 12 | name: Build 13 | runs-on: ubuntu-latest 14 | steps: 15 | - uses: actions/checkout@v3 16 | with: 17 | fetch-depth: 0 18 | ref: main 19 | - name: Set up Python 20 | uses: actions/setup-python@v1 21 | with: 22 | python-version: '3.10' 23 | - name: Install dependencies 24 | run: | 25 | python -m pip install --upgrade pip 26 | pip install -r resources/requirements.txt 27 | 28 | - name: Generate weekly summary 29 | run: | 30 | python resources/weekly_summary.py 31 | env: 32 | TG_BOT_TOKEN: ${{ secrets.TG_BOT_TOKEN }} 33 | TG_CHAT_ID: ${{ secrets.TG_CHAT_ID }} 34 | ONLINE_ACTION: 'True' 35 | -------------------------------------------------------------------------------- /resources/prompt/trans_to_zh.txt: -------------------------------------------------------------------------------- 1 | 你是一位精通简体中文的专业翻译,尤其擅长将技术文章翻译成浅显易懂的科普文章。你的翻译规则和策略如下: 2 | 3 | 规则: 4 | - 翻译时要准确传达原文的事实和背景。 5 | - 即使是意译也要保留原始段落格式,以及保留术语,例如 FLAC,JPEG 等。保留公司缩写,例如 Microsoft, Amazon, OpenAI 等。 6 | - 人名不翻译 7 | - 同时要保留引用的论文,例如 [20] 这样的引用。 8 | - 全角括号换成半角括号,并在左括号前面加半角空格,右括号后面加半角空格。 9 | - 输入格式为 Markdown 格式,输出格式也必须保留原始 Markdown 格式 10 | - 在翻译专业术语时,第一次出现时要在括号里面写上英文原文,例如:“生成式 AI (Generative AI)”,之后就可以只写中文了。 11 | - 以下是常见的 AI 相关术语词汇对应表(English -> 中文): 12 | * Transformer -> Transformer 13 | * Token -> Token 14 | * LLM/Large Language Model -> 大模型 15 | * Zero-shot -> 零样本 16 | * Few-shot -> 少样本 17 | * AI Agent -> AI 智能体 18 | * AGI -> 通用人工智能 19 | * build -> 开发 20 | 21 | 策略: 22 | 分三步进行翻译工作,并打印每步的结果: 23 | 1. 根据输入内容直译,保持原有格式不变,不要遗漏任何信息 24 | 2. 根据第一步直译的结果,指出其中存在的具体问题,要准确描述,不宜笼统的表示,也不需要增加原文不存在的内容或格式,包括不仅限于: 25 | - 不符合英文表达习惯,明确指出不符合的地方 26 | - 语句不通顺,指出位置,不需要给出修改意见,意译时修复 27 | - 晦涩难懂,不易理解,可以尝试给出解释 28 | 3. 根据第一步直译的结果和第二步指出的问题,重新进行意译,保证内容原有格式和原意的基础上,使其更易于理解,更符合中文母语人士的表达习惯 29 | 30 | 你翻译后,只需返回最终意译的结果,不需要返回直译结果和问题。 31 | 32 | 现在请严格按照上面的规则、策略和结果要求,将接下来的内容翻译为地道的中文: 33 | -------------------------------------------------------------------------------- /resources/weekly_season_link.py: -------------------------------------------------------------------------------- 1 | import re 2 | 3 | 4 | def convert_to_markdown_link(title): 5 | match = re.match(r"## 第(\d+)期((\d+-\d+-\d+))", title) 6 | if match: 7 | issue_number = match.group(1) 8 | date = match.group(2) 9 | markdown_link = f"## [第{issue_number}期({date})](https://pythoncat.top/posts/{date}-weekly)" 10 | return markdown_link 11 | else: 12 | return title 13 | 14 | 15 | def process_markdown_file(file_path): 16 | with open(file_path, 'r', encoding='utf-8') as file: 17 | content = file.read() 18 | 19 | # 使用正则表达式匹配所有二级标题 20 | pattern = r"## .*" 21 | matches = re.findall(pattern, content) 22 | 23 | # 对每个匹配到的标题进行替换 24 | for match in matches: 25 | converted_title = convert_to_markdown_link(match) 26 | content = content.replace(match, converted_title) 27 | 28 | with open(file_path, 'w', encoding='utf-8') as file: 29 | file.write(content) 30 | 31 | 32 | markdown_file_path = 'path/to/2023-12-11-weekly.md' 33 | process_markdown_file(markdown_file_path) 34 | -------------------------------------------------------------------------------- /landing-page/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "python-weekly-landing", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "dev": "next dev", 7 | "build": "next build", 8 | "build:cloudflare": "next build", 9 | "build:static": "next build", 10 | "start": "next start", 11 | "lint": "next lint", 12 | "type-check": "tsc --noEmit", 13 | "build:analyze": "ANALYZE=true npm run build", 14 | "clean": "rm -rf .next out", 15 | "preview": "npx serve out" 16 | }, 17 | "dependencies": { 18 | "critters": "^0.0.24", 19 | "framer-motion": "^11.0.0", 20 | "next": "^15.0.0", 21 | "next-intl": "^3.26.5", 22 | "react": "^19.0.0", 23 | "react-dom": "^19.0.0", 24 | "react-icons": "^5.5.0", 25 | "react-markdown": "^10.1.0", 26 | "remark-gfm": "^4.0.1" 27 | }, 28 | "devDependencies": { 29 | "@types/node": "^22", 30 | "@types/react": "^18.3.0", 31 | "@types/react-dom": "^18.3.0", 32 | "autoprefixer": "^10.4.20", 33 | "eslint": "^8.57.0", 34 | "eslint-config-next": "^15.0.0", 35 | "postcss": "^8.4.47", 36 | "tailwindcss": "^3.4.13", 37 | "typescript": "^5.6.0", 38 | "webpack-bundle-analyzer": "^4.10.2" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /resources/weekly_project.md: -------------------------------------------------------------------------------- 1 | # Python潮流周刊自动化工作流 2 | 3 | ## 功能概述 4 | 5 | 自动化处理 Python潮流周刊 的发布流程,包括内容拆分、字数统计、摘要生成、文件归档和消息推送等任务。 6 | 7 | ## 工作流程 8 | 9 | 1. ✓ 更新 README.md 10 | - 从原始周刊文件中提取期号和标题 11 | - 在"往期列表"部分添加新的周刊链接 12 | 13 | 2. ✓ 拆分中英文版本 14 | - 分离中英文标题,生成中文版(覆盖原文件),生成英文版(保存到 tmp 目录) 15 | 16 | 3. ✓ 统计和更新字数 17 | - 统计中文版的字数(不含链接URL和元数据) 18 | - 更新文件中的统计数据 19 | 20 | 4. ✓ 归档中文完整版 21 | - 复制更新了字数的中文完整版到 ebook 目录 22 | 23 | 5. ✓ 生成摘要版本 24 | - 生成博客版本 25 | * 保留完整的元数据 26 | * 包含摘要内容和固定文本 27 | - 生成 GitHub 版本 28 | * 简化的元数据 29 | * 包含摘要内容和固定文本 30 | 31 | 6. ✓ 摘要发送到 Telegram 32 | - 组装消息内容(标题、摘要、页脚、频道信息)+ 图片 33 | 34 | 7. 代码推送到仓库 35 | - 周刊文件推送到周刊代码仓 36 | - 博客文件推送到博客代码仓 37 | 38 | 8. 周刊发布到各大平台 39 | - 周刊完整版发布到:小报童、爱发电、FlowUs 40 | - 周刊摘要版发布到其它博客平台 41 | - 周刊海报和预览版发布到推特、即刻等平台 42 | 43 | ## 环境要求 44 | 45 | - 环境变量: 46 | * TG_BOT_TOKEN:Telegram 机器人 token 47 | * TG_CHAT_ID:目标频道 ID 48 | 49 | ## 使用方法 50 | 51 | 1. 准备原始周刊文件 52 | - 按格式编写中英双语版本,保存到 docs 目录 53 | - 文件名格式:YYYY-MM-DD-weekly.md 54 | 55 | 2. 运行工作流脚本 56 | ```bash 57 | # 处理指定日期的周刊 58 | python resources/weekly_workflow.py YYYY-MM-DD 59 | 60 | # 处理当天的周刊 61 | python resources/weekly_workflow.py 62 | ``` 63 | -------------------------------------------------------------------------------- /landing-page/app/[locale]/page.tsx: -------------------------------------------------------------------------------- 1 | import Header from '@/components/Header'; 2 | import HeroSection from '@/components/HeroSection'; 3 | import FeaturesSection from '@/components/FeaturesSection'; 4 | import SubscriptionSection from '@/components/SubscriptionSection'; 5 | import LatestIssueSection from '@/components/LatestIssueSection'; 6 | import SocialProofSection from '@/components/SocialProofSection'; 7 | import FAQSection from '@/components/FAQSection'; 8 | import Footer from '@/components/Footer'; 9 | import {setRequestLocale} from 'next-intl/server'; 10 | import {locales} from '../../i18n'; 11 | 12 | // 为静态导出生成所有语言参数 13 | export function generateStaticParams() { 14 | return locales.map((locale) => ({ locale })); 15 | } 16 | 17 | type Props = { 18 | params: Promise<{locale: string}>; 19 | }; 20 | 21 | export default async function HomePage({ params }: Props) { 22 | const { locale } = await params; 23 | 24 | // Enable static rendering 25 | setRequestLocale(locale); 26 | 27 | return ( 28 |
29 |
30 |
31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |
41 |
42 |
43 | ); 44 | } -------------------------------------------------------------------------------- /landing-page/public/_headers: -------------------------------------------------------------------------------- 1 | # Cloudflare Pages Headers Configuration 2 | 3 | # Security headers for all pages 4 | /* 5 | X-Content-Type-Options: nosniff 6 | X-Frame-Options: DENY 7 | X-XSS-Protection: 1; mode=block 8 | Referrer-Policy: strict-origin-when-cross-origin 9 | Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' data:; connect-src 'self' https:; 10 | 11 | # Cache static assets 12 | /_next/static/* 13 | Cache-Control: public, max-age=31536000, immutable 14 | 15 | # Cache docs 16 | /docs/* 17 | Cache-Control: public, max-age=31536000, immutable 18 | 19 | # Cache images 20 | /*.jpg 21 | Cache-Control: public, max-age=31536000, immutable 22 | /*.jpeg 23 | Cache-Control: public, max-age=31536000, immutable 24 | /*.png 25 | Cache-Control: public, max-age=31536000, immutable 26 | /*.svg 27 | Cache-Control: public, max-age=31536000, immutable 28 | /*.webp 29 | Cache-Control: public, max-age=31536000, immutable 30 | /*.avif 31 | Cache-Control: public, max-age=31536000, immutable 32 | 33 | # Cache fonts 34 | /*.woff 35 | Cache-Control: public, max-age=31536000, immutable 36 | /*.woff2 37 | Cache-Control: public, max-age=31536000, immutable 38 | /*.ttf 39 | Cache-Control: public, max-age=31536000, immutable 40 | /*.otf 41 | Cache-Control: public, max-age=31536000, immutable -------------------------------------------------------------------------------- /landing-page/tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | module.exports = { 3 | content: [ 4 | './pages/**/*.{js,ts,jsx,tsx,mdx}', 5 | './components/**/*.{js,ts,jsx,tsx,mdx}', 6 | './app/**/*.{js,ts,jsx,tsx,mdx}', 7 | './src/**/*.{js,ts,jsx,tsx,mdx}', 8 | ], 9 | darkMode: 'class', 10 | future: { 11 | hoverOnlyWhenSupported: true, 12 | }, 13 | theme: { 14 | extend: { 15 | colors: { 16 | 'python-blue': '#3776ab', 17 | 'python-yellow': '#ffd43b', 18 | 'deep-green': '#27ae60', 19 | 'warm-gray': '#2c3e50', 20 | 'accent-orange': '#e67e22', 21 | }, 22 | fontFamily: { 23 | 'sans': ['Inter', 'PingFang SC', 'system-ui', 'sans-serif'], 24 | 'mono': ['JetBrains Mono', 'Fira Code', 'monospace'], 25 | }, 26 | animation: { 27 | 'fade-in': 'fadeIn 0.5s ease-in-out', 28 | 'slide-up': 'slideUp 0.6s ease-out', 29 | 'bounce-gentle': 'bounceGentle 2s infinite', 30 | }, 31 | keyframes: { 32 | fadeIn: { 33 | '0%': { opacity: '0' }, 34 | '100%': { opacity: '1' }, 35 | }, 36 | slideUp: { 37 | '0%': { transform: 'translateY(20px)', opacity: '0' }, 38 | '100%': { transform: 'translateY(0)', opacity: '1' }, 39 | }, 40 | bounceGentle: { 41 | '0%, 20%, 50%, 80%, 100%': { transform: 'translateY(0)' }, 42 | '40%': { transform: 'translateY(-10px)' }, 43 | '60%': { transform: 'translateY(-5px)' }, 44 | }, 45 | }, 46 | }, 47 | }, 48 | plugins: [], 49 | corePlugins: { 50 | preflight: true, 51 | }, 52 | } -------------------------------------------------------------------------------- /docs/2025-05-10-weekly.md: -------------------------------------------------------------------------------- 1 | # Python 潮流周刊#101:Rust 开发的 Python 类型检查工具 2 | 3 | 本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 4 | 5 | 分享了 12 篇文章,12 个开源项目 6 | 7 | 以下是本期摘要: 8 | 9 | **[🦄文章&教程](https://xiaobot.net/p/python_weekly)** 10 | 11 | 12 | ① Python 3.14 新特性盘点,更新了些什么? 13 | 14 | ② Python π(3.14) 15 | 16 | ③ 再见 PyCon APAC,开启 PAO 新篇章 17 | 18 | ④ 让 AI 做语义单元测试 19 | 20 | ⑤ 解密 Asyncio:从零开始手搓一个 21 | 22 | ⑥ Python 依赖管理的新进展:PEP 751 锁文件标准 23 | 24 | ⑦ 用温度参数调整随机权重 25 | 26 | ⑧ 使用 MCP 和 Amazon Q 开发新闻智能体 27 | 28 | ⑨ Python 任务队列的扩展指南 29 | 30 | ⑩ pip 25.1 发布,支持依赖组管理 31 | 32 | ⑪ Django 模板语言的小怪癖 33 | 34 | ⑫ Python 代码质量工具大全 35 | 36 | **[🐿️项目&资源](https://xiaobot.net/p/python_weekly)** 37 | 38 | 39 | ① ty:Rust 开发的 Python 类型检查工具 40 | 41 | ② WeClone:用微信聊天记录创造数字分身 42 | 43 | ③ AI-Media2Doc:将音/视频转化为小红书/公众号/知识笔记/思维导图 44 | 45 | ④ blast:AI 浏览 Web 的高性能服务引擎 46 | 47 | ⑤ contextgem:LLM 提取文档的结构化数据 48 | 49 | ⑥ Fluent-M3U8:PySide6 开发的跨平台 m3u8/mpd 下载器 50 | 51 | ⑦ Python-UIAutomation-for-Windows: Windows 平台的 Python UI 自动化库 52 | 53 | ⑧ video-subtitle-extractor:提取视频硬字幕,生成srt文件 54 | 55 | ⑨ epub-utils:EPUB 文件解析与元数据提取 56 | 57 | ⑩ novelWriter:纯文本小说写作编辑器 58 | 59 | ⑪ asciimatics:跨平台文本界面与 ASCII 动画开发库 60 | 61 | ⑫ 谷歌的提示词工程白皮书 62 | 63 | 64 | 65 | 周刊实行付费订阅制,年费 148 元,平均每天不到 4 毛钱,但绝对是一笔有眼光的投资。花钱学习知识,花钱提升自己,欢迎订阅这个你绝对不会后悔的专栏:https://xiaobot.net/p/python_weekly 66 | 67 | 订阅后,可免费查看 第 101 期周刊的全文:https://www.xiaobot.net/post/8e8f2642-3f93-4568-93d3-abe9b215d10b 68 | 69 | Python 潮流周刊第 2 季完结了,分享几项总结:https://pythoncat.top/posts/2024-07-14-iweekly 70 | 71 | 周刊前30期的免费合集,含精美电子书(EPUB/PDF):https://pythoncat.top/posts/2023-12-11-weekly 72 | 73 | 万字浓缩版,Python 潮流周刊第 1 季的 800 个链接!:https://xiaobot.net/post/78c3d645-86fa-4bd8-8eac-46fb192a339e 74 | 75 | **微信关注 Python猫**:[https://img.pythoncat.top/python_cat.jpg](https://img.pythoncat.top/python_cat.jpg) 76 | 77 | -------------------------------------------------------------------------------- /docs/2025-03-15-weekly.md: -------------------------------------------------------------------------------- 1 | # Python 潮流周刊#93:为什么“if not list”比len()快2倍? 2 | 3 | 本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 4 | 5 | 分享了 12 篇文章,12 个开源项目 6 | 7 | 以下是本期摘要: 8 | 9 | **[🦄文章&教程](https://xiaobot.net/p/python_weekly)** 10 | 11 | 12 | ① 为什么 Python 中'if not list'比 len() 快 2 倍? 13 | 14 | ② 掌握 Python 单体代码库 15 | 16 | ③ Python 3.14 尾调用解释器的性能 17 | 18 | ④ Python 解释器引入了尾调用 19 | 20 | ⑤ 用 Python 解答 LinkedIn 的“皇后”谜题 21 | 22 | ⑥ 再也别问 Singleton 了好吗? 23 | 24 | ⑦ 用 OpenStreetMap、Web Mercator 和 Pillow 创建静态地图 25 | 26 | ⑧ PEP-779:自由线程 Python 的评估标准 27 | 28 | ⑨ Python "break"语句的 4 种替代方案 29 | 30 | ⑩ 我的 Python 提交:2025 年 2 月 31 | 32 | ⑪ 投资银行独特的 Python 生态 33 | 34 | ⑫ 生成器在交错迭代中的优雅应用 35 | 36 | **[🐿️项目&资源](https://xiaobot.net/p/python_weekly)** 37 | 38 | 39 | ① feeds\.fun:支持标签、评分和 AI 的新闻阅读器 40 | 41 | ② wild-card-ai:将 OpenAPI 翻译得适用于 LLM 42 | 43 | ③ opendbc:用于汽车的 Python API 44 | 45 | ④ pydoll:无需 WebDriver 的 Chromium 浏览器自动化 46 | 47 | ⑤ shorts\_maker: YouTube 短视频自动化 48 | 49 | ⑥ seed-vc:零样本语音转换与歌声转换 50 | 51 | ⑦ Sonic:肖像动画转向全局音频感知 52 | 53 | ⑧ mssql-python:微软 SQL Server 和 Azure SQL 的新驱动 54 | 55 | ⑨ autoMate:AI 驱动的计算机自动化助手 56 | 57 | ⑩ 0xtools:Linux 系统的 X 射线透视 58 | 59 | ⑪ geoai:地理空间数据的人工智能 60 | 61 | ⑫ NotaGen:一种符号音乐生成模型 62 | 63 | 64 | 65 | 周刊实行付费订阅制,年费 128 元,平均每天不到 4 毛钱,但绝对是一笔有眼光的投资。花钱学习知识,花钱提升自己,欢迎订阅这个你绝对不会后悔的专栏:https://xiaobot.net/p/python_weekly 66 | 67 | 订阅后,可免费查看 第 93 期周刊的全文:https://www.xiaobot.net/post/66bd5d84-165a-4564-85e7-881e29541afb 68 | 69 | Python 潮流周刊第 2 季完结了,分享几项总结:https://pythoncat.top/posts/2024-07-14-iweekly 70 | 71 | 周刊前30期的免费合集,含精美电子书(EPUB/PDF):https://pythoncat.top/posts/2023-12-11-weekly 72 | 73 | 万字浓缩版,Python 潮流周刊第 1 季的 800 个链接!:https://xiaobot.net/post/78c3d645-86fa-4bd8-8eac-46fb192a339e 74 | 75 | **微信关注 Python猫**:[https://img.pythoncat.top/python_cat.jpg](https://img.pythoncat.top/python_cat.jpg) 76 | 77 | -------------------------------------------------------------------------------- /docs/2025-01-04-weekly.md: -------------------------------------------------------------------------------- 1 | # Python 潮流周刊#84:2024 年 Python 的最佳实践(摘要) 2 | 3 | 本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 4 | 5 | 分享了 12 篇文章,12 个开源项目,全文 2200 字。 6 | 7 | 以下是本期摘要: 8 | 9 | **[🦄文章&教程](https://xiaobot.net/p/python_weekly)** 10 | 11 | 12 | ① 现代 Python 开发的良好实践 13 | 14 | ② 2024 年最先进的 Python 15 | 16 | ③ 回顾一年:2024 年的 Flask 17 | 18 | ④ 介绍 Annotated Logger:一个在日志中添加元数据的 Python 包 19 | 20 | ⑤ 用 Cowboy 调试 Python 内存泄漏 21 | 22 | ⑥ 使用 shiv 将 Python 项目打包成一个可执行文件 23 | 24 | ⑦ PyPI 的项目隔离功能 25 | 26 | ⑧ 使用 VS Code 和 Sentry 调试 Python 27 | 28 | ⑨ 使用 Solara 开发 Jupyter 仪表板 29 | 30 | ⑩ 用于临时分析的一次性 Python 环境 31 | 32 | ⑪ Python:使用 sys.monitoring 监视变化 33 | 34 | ⑫ 实现与扩展:Boids 算法的应用 35 | 36 | **[🐿️项目&资源](https://xiaobot.net/p/python_weekly)** 37 | 38 | 39 | ① enlighten:Python 控制台程序的进度条增强 40 | 41 | ② migrate-to-uv:将项目从 Poetry/Pipenv 迁移到 uv 42 | 43 | ③ minimalistic-fastapi-template:简单但健壮的 FastAPI 项目模板 44 | 45 | ④ minimind:3 小时完全从 0 训练 26 M的小参数 GPT 46 | 47 | ⑤ adrf:Django REST 框架的异步支持 48 | 49 | ⑥ FastVideo:用于加速大视频模型的开源框架 50 | 51 | ⑦ codegate:AI 编程助手的隐私与安全 52 | 53 | ⑧ shrlnk:随心所欲定制短链接 54 | 55 | ⑨ dutch\_vocabulary:每天自动发邮件学外语 56 | 57 | ⑩ mixbox:基于真实颜料的自然色彩混合库 58 | 59 | ⑪ Kats:用于分析时间序列数据的工具包 60 | 61 | ⑫ ajenti:模块化的服务器管理面板 62 | 63 | 64 | 65 | 周刊实行付费订阅制,年费 128 元,平均每天不到 4 毛钱,但绝对是一笔有眼光的投资。花钱学习知识,花钱提升自己,欢迎订阅这个你绝对不会后悔的专栏:https://xiaobot.net/p/python_weekly 66 | 67 | 订阅后,可免费查看 第 84 期周刊的全文: https://www.xiaobot.net/post/f44ab50a-5019-4d84-8b92-c005123fe052 68 | 69 | Python 潮流周刊第 2 季完结了,分享几项总结:https://pythoncat.top/posts/2024-07-14-iweekly 70 | 71 | 周刊前30期的免费合集,含精美电子书(EPUB/PDF):https://pythoncat.top/posts/2023-12-11-weekly 72 | 73 | 万字浓缩版,Python 潮流周刊第 1 季的 800 个链接!:https://xiaobot.net/post/78c3d645-86fa-4bd8-8eac-46fb192a339e 74 | 75 | **微信关注 Python猫**:[https://img.pythoncat.top/python_cat.jpg](https://img.pythoncat.top/python_cat.jpg) 76 | 77 | -------------------------------------------------------------------------------- /docs/2025-01-18-weekly.md: -------------------------------------------------------------------------------- 1 | # Python 潮流周刊#86:Jupyter Notebook 智能编码助手(摘要) 2 | 3 | 本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 4 | 5 | 分享了 12 篇文章,12 个开源项目,全文 2000 字。 6 | 7 | 以下是本期摘要: 8 | 9 | **[🦄文章&教程](https://xiaobot.net/p/python_weekly)** 10 | 11 | 12 | ① 介绍 Jupyter Notebook 智能助手 13 | 14 | ② 用纯 Python 写一个“Redis”,速度比原生 Redis 还快? 15 | 16 | ③ 30 分钟入门 Python 桌面端 + 分享我的开箱即用脚手架 17 | 18 | ④ 用 aiofiles 和 asyncio 异步处理文件 19 | 20 | ⑤ 2025 年我如何运行独立的 Python? 21 | 22 | ⑥ 用 Python Reflex 开发一个健身追踪应用 23 | 24 | ⑦ 自动化检查 Python Web 应用的可访问性 25 | 26 | ⑧ 使用测试套件检测内存泄漏 27 | 28 | ⑨ 使用 Whisper 生成电视剧字幕 29 | 30 | ⑩ 吴恩达分享个人的 Web 技术栈 31 | 32 | ⑪ Python 时间序列分类的完整指南 33 | 34 | ⑫ Python 是新一代的 BASIC 35 | 36 | **[🐿️项目&资源](https://xiaobot.net/p/python_weekly)** 37 | 38 | 39 | ① MoneyPrinterV2:将在线赚钱的流程自动化 40 | 41 | ② Ghost-Downloader-3:跨平台多线程下载器 42 | 43 | ③ Channels:为 Django 提供易于使用的异步功能 44 | 45 | ④ pyper:让并发 Python 变得简单 46 | 47 | ⑤ uv-secure:扫描 uv.lock 文件,检查是否有漏洞依赖 48 | 49 | ⑥ ZerePy:开源的 AI 代理启动平台 50 | 51 | ⑦ fastcrud:专为 FastAPI 设计的异步 CRUD 操作 52 | 53 | ⑧ Winloop:用于 Windows 的 uvloop 替代库 54 | 55 | ⑨ fast-grpc:在 Python 中快速实现 gRPC 56 | 57 | ⑩ bashplotlib: 在终端中进行绘图 58 | 59 | ⑪ klp:查看结构化日志文件和流(logfmt、JSONL 等格式) 60 | 61 | ⑫ Open-Interface: 使用 LLM 控制任意电脑 62 | 63 | 64 | 65 | 周刊实行付费订阅制,年费 128 元,平均每天不到 4 毛钱,但绝对是一笔有眼光的投资。花钱学习知识,花钱提升自己,欢迎订阅这个你绝对不会后悔的专栏:https://xiaobot.net/p/python_weekly 66 | 67 | 订阅后,可免费查看 第 86 期周刊的全文:https://www.xiaobot.net/post/d94584e7-fd26-4ab5-95ac-eeb660a95f06 68 | 69 | Python 潮流周刊第 2 季完结了,分享几项总结:https://pythoncat.top/posts/2024-07-14-iweekly 70 | 71 | 周刊前30期的免费合集,含精美电子书(EPUB/PDF):https://pythoncat.top/posts/2023-12-11-weekly 72 | 73 | 万字浓缩版,Python 潮流周刊第 1 季的 800 个链接!:https://xiaobot.net/post/78c3d645-86fa-4bd8-8eac-46fb192a339e 74 | 75 | **微信关注 Python猫**:[https://img.pythoncat.top/python_cat.jpg](https://img.pythoncat.top/python_cat.jpg) 76 | 77 | -------------------------------------------------------------------------------- /landing-page/public/logo_pythonlink.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /docs/2025-03-01-weekly.md: -------------------------------------------------------------------------------- 1 | # Python 潮流周刊#91:Python 在浏览器中的未来 2 | 3 | 本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 4 | 5 | 分享了 12 篇文章,12 个开源项目 6 | 7 | 以下是本期摘要: 8 | 9 | **[🦄文章&教程](https://xiaobot.net/p/python_weekly)** 10 | 11 | 12 | ① 窥探 Python 在浏览器中的未来可能 13 | 14 | ② 在云之上:CPython、Pyodide 和 SPy 15 | 16 | ③ FastAPI 解构:现代 ASGI 框架解剖 17 | 18 | ④ 介绍 Python 的 Flask-SQLAlchemy 19 | 20 | ⑤ 便携式使用文本嵌入的最佳方法是 Parquet 和 Polars 21 | 22 | ⑥ 到底要不要用 Python 类型提示? 23 | 24 | ⑦ 2025 年应该使用哪个 Python GUI 库? 25 | 26 | ⑧ 利用 Notebook 智能,开发 JupyterLab 的 AI 代理 27 | 28 | ⑨ 用 llm-mlx 和 MLX 框架在 macOS 上运行 LLM 29 | 30 | ⑩ 面向 Python 开发者的 CUDA 编程入门指南 31 | 32 | ⑪ 日常 API 的设计原则 33 | 34 | ⑫ 丑陋的代码和愚蠢的事情 35 | 36 | **[🐿️项目&资源](https://xiaobot.net/p/python_weekly)** 37 | 38 | 39 | ① tinycompiler:500 行 Python 代码实现的编译器 40 | 41 | ② django-rusty-templates:Rust 实现的 Django 模板语言 42 | 43 | ③ when:在不同时区之间转换日期时间 44 | 45 | ④ opendrop:Python 开发的 Apple AirDrop 开源实现 46 | 47 | ⑤ MakeItPrivate:将图片转换为 PDF 48 | 49 | ⑥ codegen-sdk:用于操作代码库的 Python 库 50 | 51 | ⑦ mindmap-generator:将任意文档提炼成思维导图 52 | 53 | ⑧ probly:AI 驱动的电子表格应用 54 | 55 | ⑨ gpustack:管理运行 AI 模型的 GPU 集群 56 | 57 | ⑩ PocketFlow:极简 LLM 框架,支持自动编程 58 | 59 | ⑪ smolagents: 用于代理的基础库 60 | 61 | ⑫ awesome-ai-agents:300+ 个 AI 代理资源 62 | 63 | 64 | 65 | 周刊实行付费订阅制,年费 128 元,平均每天不到 4 毛钱,但绝对是一笔有眼光的投资。花钱学习知识,花钱提升自己,欢迎订阅这个你绝对不会后悔的专栏:https://xiaobot.net/p/python_weekly 66 | 67 | 订阅后,可免费查看 第 91 期周刊的全文:https://www.xiaobot.net/post/8df1468a-95cf-4d2b-aecf-eac3d3545c49 68 | 69 | Python 潮流周刊第 2 季完结了,分享几项总结:https://pythoncat.top/posts/2024-07-14-iweekly 70 | 71 | 周刊前30期的免费合集,含精美电子书(EPUB/PDF):https://pythoncat.top/posts/2023-12-11-weekly 72 | 73 | 万字浓缩版,Python 潮流周刊第 1 季的 800 个链接!:https://xiaobot.net/post/78c3d645-86fa-4bd8-8eac-46fb192a339e 74 | 75 | **微信关注 Python猫**:[https://img.pythoncat.top/python_cat.jpg](https://img.pythoncat.top/python_cat.jpg) 76 | 77 | -------------------------------------------------------------------------------- /docs/2025-02-23-weekly.md: -------------------------------------------------------------------------------- 1 | # Python 潮流周刊#90:uv 一周岁了,优缺点分析 2 | 3 | 本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 4 | 5 | 分享了 12 篇文章,12 个开源项目 6 | 7 | 以下是本期摘要: 8 | 9 | **[🦄文章&教程](https://xiaobot.net/p/python_weekly)** 10 | 11 | 12 | ① Python 3.14 的尾调用解释器(及其它更新) 13 | 14 | ② UV 一周年:优点、缺点以及是否迁移? 15 | 16 | ③ 创建 Django 的 MongoDB 数据库后端 17 | 18 | ④ PyPI 已支持 iOS 和 Android,用于 Python 移动端开发 19 | 20 | ⑤ 开发 Python 编译器和解释器系列:实现 elif 和 else 21 | 22 | ⑥ 用 Python 开发一副扑克牌 23 | 24 | ⑦ 用 100 行纯 Jax 代码实现 LLaMA3 25 | 26 | ⑧ 测量 Python any() 函数的性能 27 | 28 | ⑨ 用 Django 实现网页通知推送 29 | 30 | ⑩ 用“# coding:”技巧来魔改 Python 语法 31 | 32 | ⑪ 关于不同编程语言的继承和子类型化 33 | 34 | ⑫ 当 Python 遇见 WebGL:用 PyScript 打造浏览器 3D 创作工具 35 | 36 | **[🐿️项目&资源](https://xiaobot.net/p/python_weekly)** 37 | 38 | 39 | ① pyquery:类似 jQuery 的 Python 库 40 | 41 | ② Youtube-playlist-to-formatted-text:提取 YouTube 列表字幕并制成电子书 42 | 43 | ③ podcastfy:NotebookLM 播客功能的开源替代 44 | 45 | ④ harbor:一键运行 LLM 后端、API、前端和服务 46 | 47 | ⑤ gixy: NGINX 配置静态分析器 48 | 49 | ⑥ bagofwords:由 AI 驱动的数据工具 50 | 51 | ⑦ OmniParser:基于纯视觉的屏幕解析工具 52 | 53 | ⑧ Tamga:多种格式和彩色打印的 Python 日志工具 54 | 55 | ⑨ frames\_of\_mind:将 R1 的思考过程动画化 56 | 57 | ⑩ vlmrun-hub:视觉大模型工具库 58 | 59 | ⑪ ExtractThinker:灵活的智能文档工具 60 | 61 | ⑫ cartography:可视化基础设施资产间的关系 62 | 63 | 64 | 65 | 周刊实行付费订阅制,年费 128 元,平均每天不到 4 毛钱,但绝对是一笔有眼光的投资。花钱学习知识,花钱提升自己,欢迎订阅这个你绝对不会后悔的专栏:https://xiaobot.net/p/python_weekly 66 | 67 | 订阅后,可免费查看 第 90 期周刊的全文:https://www.xiaobot.net/post/85891d8b-d742-48c3-87f6-a78d0c455585 68 | 69 | Python 潮流周刊第 2 季完结了,分享几项总结:https://pythoncat.top/posts/2024-07-14-iweekly 70 | 71 | 周刊前30期的免费合集,含精美电子书(EPUB/PDF):https://pythoncat.top/posts/2023-12-11-weekly 72 | 73 | 万字浓缩版,Python 潮流周刊第 1 季的 800 个链接!:https://xiaobot.net/post/78c3d645-86fa-4bd8-8eac-46fb192a339e 74 | 75 | **微信关注 Python猫**:[https://img.pythoncat.top/python_cat.jpg](https://img.pythoncat.top/python_cat.jpg) 76 | 77 | -------------------------------------------------------------------------------- /docs/2025-03-08-weekly.md: -------------------------------------------------------------------------------- 1 | # Python 潮流周刊#92:一张 Python 软件包的地图 2 | 3 | 本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 4 | 5 | 分享了 12 篇文章,12 个开源项目 6 | 7 | 以下是本期摘要: 8 | 9 | **[🦄文章&教程](https://xiaobot.net/p/python_weekly)** 10 | 11 | 12 | ① 一张 Python 软件包的地图 13 | 14 | ② Python pickle 模块的漏洞利用 15 | 16 | ③ 深入浅出 Django 信号:结构、用例和最佳实践 17 | 18 | ④ Python 3.13 的突破:No-GIL、支持 JIT 和 iOS 19 | 20 | ⑤ PEP-775:使 zlib 成为构建 CPython 的必需项 21 | 22 | ⑥ Python 不是 Java 或 C++:Python 作为第二语言的同理心 23 | 24 | ⑦ 用 Python 和 Kivy 开发一个 To-do 应用 25 | 26 | ⑧ 使用 Marimo 和 Anywidget 可视化进程树 27 | 28 | ⑨ 将 Python 嵌入到 Elixir 中 29 | 30 | ⑩ 分析和可视化 Satellogic 的开放卫星数据 31 | 32 | ⑪ 为忙碌的 Rails 开发者介绍 Django 和 Postgres 33 | 34 | ⑫ 调试视觉 Transformer 编译的问题 35 | 36 | **[🐿️项目&资源](https://xiaobot.net/p/python_weekly)** 37 | 38 | 39 | ① Pokemon-Terminal:终端里的宝可梦主题背景 40 | 41 | ② smallpond:基于 DuckDB 和 3FS 的数据处理框架 42 | 43 | ③ PRevent:防止在 PR 中合并恶意代码 44 | 45 | ④ stealthkit:增强 Python 的请求处理 46 | 47 | ⑤ fastrtc:Python 实时通信库 48 | 49 | ⑥ VisualCrypto:视觉密码学和随机网格技术 50 | 51 | ⑦ awesome-stream-processing:用流处理解决现实问题的示例 52 | 53 | ⑧ onyx:面向团队的通用 AI 聊天工具 54 | 55 | ⑨ FoleyCrafter:AI拟音大师,给无声视频添加音效 56 | 57 | ⑩ SmartestKid:Windows 桌面 AI 助手 58 | 59 | ⑪ Merlion:用于时间序列的机器学习框架 60 | 61 | ⑫ developer-portfolios:开发者作品集列表 62 | 63 | 64 | 65 | 周刊实行付费订阅制,年费 128 元,平均每天不到 4 毛钱,但绝对是一笔有眼光的投资。花钱学习知识,花钱提升自己,欢迎订阅这个你绝对不会后悔的专栏:https://xiaobot.net/p/python_weekly 66 | 67 | 订阅后,可免费查看 第 92 期周刊的全文:https://www.xiaobot.net/post/1bb085b2-a55b-4df9-acde-ff8ab59b3dc8 68 | 69 | Python 潮流周刊第 2 季完结了,分享几项总结:https://pythoncat.top/posts/2024-07-14-iweekly 70 | 71 | 周刊前30期的免费合集,含精美电子书(EPUB/PDF):https://pythoncat.top/posts/2023-12-11-weekly 72 | 73 | 万字浓缩版,Python 潮流周刊第 1 季的 800 个链接!:https://xiaobot.net/post/78c3d645-86fa-4bd8-8eac-46fb192a339e 74 | 75 | **微信关注 Python猫**:[https://img.pythoncat.top/python_cat.jpg](https://img.pythoncat.top/python_cat.jpg) 76 | 77 | -------------------------------------------------------------------------------- /docs/2025-06-07-weekly.md: -------------------------------------------------------------------------------- 1 | # Python 潮流周刊#105:Dify突破10万星、2025全栈开发的最佳实践 2 | 3 | 本周刊由 Python猫 出品,精心筛选国内外的 400+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 4 | 5 | **温馨提示:** 在微信关注 **Python猫**,发送“**优惠券**”,即可领取 9 折优惠码,订阅专栏可享 15 元优惠。 6 | 7 | 分享了 12 篇文章,12 个开源项目 8 | 9 | 以下是本期标题摘要: 10 | 11 | **[🦄文章&教程](https://weekly.pythoncat.top)** 12 | 13 | 14 | ① 2025 开发 React+Flask 项目的最佳实践 15 | 16 | ② 如何用 Django 和 rspack 打包前端资源? 17 | 18 | ③ 在 Python unittest 中共享通用测试 19 | 20 | ④ 本地速度,顺畅部署:Heroku 增加对 uv 的支持 21 | 22 | ⑤ Python 代码优化的四种方法 23 | 24 | ⑥ PEP-794:包的导入名称元数据 25 | 26 | ⑦ 如何在不用微服务的情况下拆分 Django 单体应用 27 | 28 | ⑧ Python 字节码中的局部变量是如何工作的? 29 | 30 | ⑨ Django 全局禁用外键 31 | 32 | ⑩ 我做了一个比 Elasticsearch 更差的搜索引擎 33 | 34 | ⑪ 用 Pinata、OpenAI 和 Streamlit 开发 PDF 聊天应用 35 | 36 | ⑫ 一只恐龙学习 Poetry 37 | 38 | **[🐿️项目&资源](https://weekly.pythoncat.top)** 39 | 40 | 41 | ① dify:开源的大模型应用开发平台 42 | 43 | ② sequor:以 SQL 为中心的 API 集成平台 44 | 45 | ③ bilive:B 站直播录制和自动化处理工具 46 | 47 | ④ local-ai-packaged:本地 AI 一体化部署包 48 | 49 | ⑤ NLWeb:自然语言网站交互平台 50 | 51 | ⑥ OpenThinkIMG:让 LVLM 能够用图像思考 52 | 53 | ⑦ pageql:在 HTML 中直接嵌入 SQL 54 | 55 | ⑧ AutoAgent:全自动化零代码 LLM 智能体框架 56 | 57 | ⑨ LMCache:大模型的 Redis 58 | 59 | ⑩ davia:将 Python 代码快速转换成应用 60 | 61 | ⑪ ovld:Python 函数的高级多重分派 62 | 63 | ⑫ arc-export:Arc 浏览器固定标签页导出工具 64 | 65 | 66 | 67 | 周刊实行付费订阅制,年费 148 元,平均每天 4 毛钱,为你精准筛选高质量技术内容。在信息洪流中为你淘金,助力技术视野拓展和职业发展,欢迎订阅:[https://xiaobot.net/p/python_weekly](https://xiaobot.net/p/python_weekly) 68 | 69 | 订阅后,可免费查看 第 105 期周刊的全文:https://www.xiaobot.net/post/792aac38-0b47-43be-98b0-24a7f8a32428 70 | 71 | [Python 潮流周刊第3季总结,附电子书下载](https://pythoncat.top/posts/2025-04-20-sweekly) 72 | 73 | [Python 潮流周刊第二季完结(31~60)](https://pythoncat.top/posts/2025-04-20-iweekly) 74 | 75 | [Python 潮流周刊第一季精华合集(1~30)](https://pythoncat.top/posts/2023-12-11-weekly) 76 | 77 | **微信关注 Python猫**:[https://img.pythoncat.top/python_cat.jpg](https://img.pythoncat.top/python_cat.jpg) 78 | 79 | -------------------------------------------------------------------------------- /resources/weekly_template_en.md: -------------------------------------------------------------------------------- 1 | # Python Trending Weekly #{weekly_no} ({pub_date}) 2 | 3 | Welcome to the Python Trending Weekly, a weekly newsletter about Python, AI and general programming techniques, with the majority links in English and a small portion in Chinese. 4 | 5 | The [original version](https://pythoncat.top/posts/{pub_date}-weekly) of the weekly was written in Chinese. What you are reading here is mostly translated by LLMs. 6 | 7 | **Substack Channel** : [Click to subscribe](https://pythoncat.substack.com/s/python-trending-weekly) 8 | 9 | ## 🦄Articles & Tutorials 10 | 11 | 🎁 Python Trending Weekly 🎁 organizes its content into seasons, with every 30 issues forming a season. The highlights from the first season have been compiled for your convenience. You can access them online [here](https://pythoncat.top/posts/2023-12-11-weekly) (Chinese). 12 | 13 | ## 🐿️Projects & Resources 14 | 15 | ## 🐢Podcasts & Videos 16 | 17 | ## 🥂Discussion & Questions 18 | 19 | ## 🐼Subscribe Welcome 20 | 21 | - [Blog](https://pythoncat.top): Explore my independent blog where you can find a collection of original/translated technical articles over the years, along with some reflections since 2009. 22 | - [Newsletter](https://pythoncat.substack.com/s/python-trending-weekly): Subscribe to my channel on Substack for a curated newsletter delivered straight to your inbox, keeping you updated on current affairs. 23 | - [Github](https://github.com/chinesehuazhou/python-weekly): Access the Markdown source files of this weekly digest on Github and feel free to use them for anything you have in mind! 24 | - [Telegram](https://t.me/pythontrendingweekly): Beyond notifications for the weekly digest, I consider it an "extra edition," providing additional, more diverse information. 25 | - [Twitter](https://twitter.com/chinesehuazhou): Follow me on Twitter where my feed is filled with numerous accounts of developers and organizations in the Python community. -------------------------------------------------------------------------------- /docs/2025-08-23-weekly.md: -------------------------------------------------------------------------------- 1 | # Python 潮流周刊#116:Python 2025 年现状 2 | 3 | 本周刊由 Python猫 出品,精心筛选国内外的 400+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 4 | 5 | **温馨提示:** 在微信关注 **Python猫**,发送数字“**9**”,即可领取 9 折优惠码,订阅专栏可享 15 元优惠。 6 | 7 | 去专栏阅读全文:[全文链接](https://www.xiaobot.net/post/0ebc9561-d2a6-4c72-bd46-343e8b70e0e3) 8 | 9 | 分享了 12 篇文章,12 个开源项目 10 | 11 | 以下是本期标题摘要: 12 | 13 | **[🦄文章&教程](https://weekly.pythoncat.top)** 14 | 15 | 16 | ① Python 2025 年现状报告 17 | 18 | ② Python 文件流传输:8 美元服务器上实现 237MB/s 19 | 20 | ③ 有时 LFU 比 LRU 更好 21 | 22 | ④ 上下文工程:DSPy 全面实战教程 23 | 24 | ⑤ Python 代理对象的实现原理 25 | 26 | ⑥ PyPI 防范域名复活攻击 27 | 28 | ⑦ 以符号模式匹配的视角设计算法 29 | 30 | ⑧ Python 约束编程:用 CP-SAT 解决优化问题 31 | 32 | ⑨ Python BDFL 称号的起源 33 | 34 | ⑩ ASCII 雨滴滚动艺术 35 | 36 | ⑪ 人性化的超时和取消机制 37 | 38 | ⑫ 你只需要两个日志级别:INFO 和 ERROR 39 | 40 | **[🐿️项目&资源](https://weekly.pythoncat.top)** 41 | 42 | 43 | ① parlant:可控的 LLM AI 智能体 44 | 45 | ② GhostTrack:位置和手机号追踪工具 46 | 47 | ③ Archon:AI 编程助手的知识管理平台 48 | 49 | ④ mcp-context-forge:MCP 网关和注册中心 50 | 51 | ⑤ tensorlake:文档摄取 API 和无服务器数据处理平台 52 | 53 | ⑥ flower:Celery 分布式任务队列监控工具 54 | 55 | ⑦ AI-Researcher:自主科学创新研究系统 56 | 57 | ⑧ tilf:像素艺术编辑器 58 | 59 | ⑨ plutoprint:HTML 到 PDF 和图像生成库 60 | 61 | ⑩ SpatialLM:3D 点云数据大模型 62 | 63 | ⑪ One-KVM:DIY IP-KVM 远程控制解决方案 64 | 65 | ⑫ Notte:可靠的浏览器 AI 智能体框架 66 | 67 | 68 | 69 | 周刊实行付费订阅制,年费 148 元,平均每天 4 毛钱,为你精准筛选高质量技术内容。在信息洪流中为你淘金,助力技术视野拓展和职业发展,欢迎订阅:[https://xiaobot.net/p/python_weekly](https://xiaobot.net/p/python_weekly) 70 | 71 | 订阅后,可免费查看 第 116 期周刊的全文:https://www.xiaobot.net/post/0ebc9561-d2a6-4c72-bd46-343e8b70e0e3 72 | 73 | [Python 潮流周刊第3季总结,附电子书下载](https://pythoncat.top/posts/2025-04-20-sweekly) 74 | 75 | [Python 潮流周刊第二季完结(31~60)](https://pythoncat.top/posts/2025-04-20-iweekly) 76 | 77 | [Python 潮流周刊第一季精华合集(1~30)](https://pythoncat.top/posts/2023-12-11-weekly) 78 | 79 | **微信关注 Python猫**:[https://img.pythoncat.top/python_cat.jpg](https://img.pythoncat.top/python_cat.jpg) 80 | 81 | -------------------------------------------------------------------------------- /docs/2025-09-13-weekly.md: -------------------------------------------------------------------------------- 1 | # Python 潮流周刊#119:Google 停止开发 Pytype! 2 | 3 | 本周刊由 Python猫 出品,精心筛选国内外的 400+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 4 | 5 | **温馨提示:** 在微信关注 **Python猫**,发送数字“**9**”,即可领取 9 折优惠码,订阅专栏可享 15 元优惠。 6 | 7 | 去专栏阅读全文:[全文链接](https://www.xiaobot.net/post/de65c2a1-8eef-45a6-b45a-034daa7d81b6) 8 | 9 | 分享了 12 篇文章,12 个开源项目 10 | 11 | 以下是本期标题摘要: 12 | 13 | **[🦄文章&教程](https://weekly.pythoncat.top)** 14 | 15 | 16 | ① 在自由线程 Python 中扩展 asyncio 17 | 18 | ② Google 停止支持 Pytype:Python 类型检查时代的终结 19 | 20 | ③ 测试代码依赖的编译器优化 21 | 22 | ④ 自定义 Python REPL 颜色方案 23 | 24 | ⑤ Semlib:LLM 驱动的数据处理 25 | 26 | ⑥ 如何/为何用 Bazel 开发 Python 代码? 27 | 28 | ⑦ PEP-679:支持 assert 语句括号语法 29 | 30 | ⑧ PEP-803:为自由线程开发提供稳定 ABI 31 | 32 | ⑨ 为 R 和 Python 设置本地 LLM 33 | 34 | ⑩ 如何让 AI "看懂"网页?拆解 Browser-Use 的三大核心技术模块 35 | 36 | ⑪ 为 AI 智能体编写有效工具 37 | 38 | ⑫ Chrome 浏览器 17 年发展史 39 | 40 | **[🐿️项目&资源](https://weekly.pythoncat.top)** 41 | 42 | 43 | ① AiNiee:AI 翻译工具 44 | 45 | ② Newelle:AI 智能体桌面助手 46 | 47 | ③ PageIndex:基于推理的文档索引系统 48 | 49 | ④ XLeRobot:660 美元双臂家用机器人 50 | 51 | ⑤ RAG-Anything:全能多模态 RAG 系统 52 | 53 | ⑥ ROMA:递归开放元智能体框架 54 | 55 | ⑦ Ducky:网络工程师桌面工具箱 56 | 57 | ⑧ BiliNote:AI 视频笔记生成工具 58 | 59 | ⑨ MAESTRO:自托管 AI 研究助手 60 | 61 | ⑩ furl:Python URL 解析和操作库 62 | 63 | ⑪ f2:多平台高速下载器 64 | 65 | ⑫ StreamCap:多平台直播录制工具 66 | 67 | 68 | 69 | 周刊实行付费订阅制,年费 148 元,平均每天 4 毛钱,为你精准筛选高质量技术内容。在信息洪流中为你淘金,助力技术视野拓展和职业发展,欢迎订阅:[https://xiaobot.net/p/python_weekly](https://xiaobot.net/p/python_weekly) 70 | 71 | 订阅后,可免费查看 第 119 期周刊的全文:https://www.xiaobot.net/post/de65c2a1-8eef-45a6-b45a-034daa7d81b6 72 | 73 | [Python 潮流周刊第3季总结,附电子书下载](https://pythoncat.top/posts/2025-04-20-sweekly) 74 | 75 | [Python 潮流周刊第二季完结(31~60)](https://pythoncat.top/posts/2025-04-20-iweekly) 76 | 77 | [Python 潮流周刊第一季精华合集(1~30)](https://pythoncat.top/posts/2023-12-11-weekly) 78 | 79 | **微信关注 Python猫**:[https://img.pythoncat.top/python_cat.jpg](https://img.pythoncat.top/python_cat.jpg) 80 | 81 | -------------------------------------------------------------------------------- /docs/2025-11-01-weekly.md: -------------------------------------------------------------------------------- 1 | # Python 潮流周刊#125:个人 AI 笔记本工具 2 | 3 | 本周刊由 Python猫 出品,精心筛选国内外的 400+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 4 | 5 | **温馨提示:** 在微信关注 **Python猫**,发送数字“**9**”,即可领取 9 折优惠码,订阅专栏可享 15 元优惠。 6 | 7 | 去专栏阅读全文:[全文链接](https://xiaobot.net/post/59d44ad5-8ddb-434f-b145-871985aafeb5) 8 | 9 | 分享了 12 篇文章,12 个开源项目 10 | 11 | 以下是本期标题摘要: 12 | 13 | **[🦄文章&教程](https://weekly.pythoncat.top)** 14 | 15 | 16 | ① PSF 撤回 150 万美元政府资助申请 17 | 18 | ② CPython 核心开发者 2025 冲刺活动创历史新高 19 | 20 | ③ Python 的 OrderedDict 为什么有序? 21 | 22 | ④ 探索和改进 NumPy 测试套件的线程安全性 23 | 24 | ⑤ 可靠的 Django 信号 25 | 26 | ⑥ uv 是十年来 Python 生态系统最好的工具 27 | 28 | ⑦ 理解 Docker 内部原理:用 Python 构建容器运行时 29 | 30 | ⑧ PEP 686:默认启用 UTF-8 模式 31 | 32 | ⑨ 我第一个创业公司的糟糕技术架构 33 | 34 | ⑩ Python 3.14 那些没上头条的新特性 35 | 36 | ⑪ Helion:高性能机器学习内核 DSL 37 | 38 | ⑫ 缓存:计算机中最优雅的创新 39 | 40 | **[🐿️项目&资源](https://weekly.pythoncat.top)** 41 | 42 | 43 | ① surf:个人 AI 笔记本 44 | 45 | ② quark-auto-save:夸克网盘自动转存 46 | 47 | ③ AI-Trader:AI 智能体股票交易 48 | 49 | ④ httptap:HTTP 请求分析工具 50 | 51 | ⑤ kanchi:Celery 任务监控系统 52 | 53 | ⑥ IsaacSim:AI 机器人仿真平台 54 | 55 | ⑦ scikit-opt:群体智能优化算法库 56 | 57 | ⑧ BettaFish: 多 Agent 舆情分析助手 58 | 59 | ⑨ moon-dev-ai-agents:自主交易 AI 智能体 60 | 61 | ⑩ wove:优雅的 Python 异步编程 62 | 63 | ⑪ agent-framework:微软 AI 智能体框架 64 | 65 | ⑫ ViMax:智能体视频生成平台 66 | 67 | 68 | 69 | 周刊实行付费订阅制,年费 148 元,平均每天 4 毛钱,为你精准筛选高质量技术内容。在信息洪流中为你淘金,助力技术视野拓展和职业发展,欢迎订阅:[https://xiaobot.net/p/python_weekly](https://xiaobot.net/p/python_weekly) 70 | 71 | 订阅后,可免费查看 第 125 期周刊的全文:https://xiaobot.net/post/59d44ad5-8ddb-434f-b145-871985aafeb5 72 | 73 | [Python 潮流周刊第3季总结,附电子书下载](https://pythoncat.top/posts/2025-04-20-sweekly) 74 | 75 | [Python 潮流周刊第二季完结(31~60)](https://pythoncat.top/posts/2025-04-20-iweekly) 76 | 77 | [Python 潮流周刊第一季精华合集(1~30)](https://pythoncat.top/posts/2023-12-11-weekly) 78 | 79 | **微信关注 Python猫**:[https://img.pythoncat.top/python_cat.jpg](https://img.pythoncat.top/python_cat.jpg) 80 | 81 | -------------------------------------------------------------------------------- /docs/2025-09-06-weekly.md: -------------------------------------------------------------------------------- 1 | # Python 潮流周刊#118:Python 异步为何不够流行? 2 | 3 | 本周刊由 Python猫 出品,精心筛选国内外的 400+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 4 | 5 | **温馨提示:** 在微信关注 **Python猫**,发送数字“**9**”,即可领取 9 折优惠码,订阅专栏可享 15 元优惠。 6 | 7 | 去专栏阅读全文:[全文链接](https://www.xiaobot.net/post/80c1f843-fdef-426b-94e6-7608ec00583a) 8 | 9 | 分享了 12 篇文章,12 个开源项目 10 | 11 | 以下是本期标题摘要: 12 | 13 | **[🦄文章&教程](https://weekly.pythoncat.top)** 14 | 15 | 16 | ① Python 已有异步十年,为何仍不够流行? 17 | 18 | ② 用 Python、uv、Caddy 和 Docker 开发静态网站 19 | 20 | ③ 追踪 Python 恶意代码的执行 21 | 22 | ④ 修复 Python 3.14+ 中 finally 块的语法警告 23 | 24 | ⑤ Django 6.0 新特性展望 25 | 26 | ⑥ Polars GPU 执行实现 70% 性能提升 27 | 28 | ⑦ SQLModel 异步操作 PostgreSQL 实战指南 29 | 30 | ⑧ 使用 Celery 和 RabbitMQ 调度 Python 后台任务 31 | 32 | ⑨ 与 Python 共享可变引用 33 | 34 | ⑩ Jupyter Notebook 在生产环境中的隐藏危险 35 | 36 | ⑪ 纯 Python Web 应用开发 37 | 38 | ⑫ 开发者陷阱大全 39 | 40 | **[🐿️项目&资源](https://weekly.pythoncat.top)** 41 | 42 | 43 | ① mihomo:崩坏星穹铁道数据解析库 44 | 45 | ② chatterbox:最先进的开源文本转语音系统 46 | 47 | ③ TrendRadar:多平台热点聚合工具 48 | 49 | ④ AIHawk:求职申请 AI 智能体 50 | 51 | ⑤ Skylos:Python 无用代码检测工具 52 | 53 | ⑥ Zuban:高性能 Python 语言服务器 54 | 55 | ⑦ Kronos:金融市场语言基础模型 56 | 57 | ⑧ theHarvester:开源情报信息收集工具 58 | 59 | ⑨ surya:多语言文档 OCR 工具包 60 | 61 | ⑩ ag2:开源 AI 智能体操作系统 62 | 63 | ⑪ youtu-agent:简单强大的 AI 智能体框架 64 | 65 | ⑫ toolfront:AI 智能体数据检索工具 66 | 67 | 68 | 69 | 周刊实行付费订阅制,年费 148 元,平均每天 4 毛钱,为你精准筛选高质量技术内容。在信息洪流中为你淘金,助力技术视野拓展和职业发展,欢迎订阅:[https://xiaobot.net/p/python_weekly](https://xiaobot.net/p/python_weekly) 70 | 71 | 订阅后,可免费查看 第 118 期周刊的全文:https://www.xiaobot.net/post/80c1f843-fdef-426b-94e6-7608ec00583a 72 | 73 | [Python 潮流周刊第3季总结,附电子书下载](https://pythoncat.top/posts/2025-04-20-sweekly) 74 | 75 | [Python 潮流周刊第二季完结(31~60)](https://pythoncat.top/posts/2025-04-20-iweekly) 76 | 77 | [Python 潮流周刊第一季精华合集(1~30)](https://pythoncat.top/posts/2023-12-11-weekly) 78 | 79 | **微信关注 Python猫**:[https://img.pythoncat.top/python_cat.jpg](https://img.pythoncat.top/python_cat.jpg) 80 | 81 | -------------------------------------------------------------------------------- /docs/2025-01-25-weekly.md: -------------------------------------------------------------------------------- 1 | # Python 潮流周刊#87:媲美 OpenAI-o1 的开源模型 2 | 3 | 本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 4 | 5 | 本期分享了 12 篇文章,12 个开源项目。 6 | 7 | 下周因春节假期停更一周,提前恭祝大家蛇年吉祥,万事顺意!(PS. 我在 Python猫 公众号给大家准备了一些红包封面🧧,免费领取哟~) 8 | 9 | 以下是本期摘要: 10 | 11 | **[🦄文章&教程](https://xiaobot.net/p/python_weekly)** 12 | 13 | 14 | ① 优化 Jupyter Notebook 来用于 LLM 15 | 16 | ② 2024 年的 urllib3 17 | 18 | ③ 2025 年如何成为 AI 开发者(完整指南与资源) 19 | 20 | ④ 在 Rust 中嵌入 Python(用于测试) 21 | 22 | ⑤ PEP-773:Windows 平台的 Python 安装管理器 23 | 24 | ⑥ 基于 Emacs 的高级 Python 开发工作流 25 | 26 | ⑦ 10 种在 Python 中处理大文件的技巧 27 | 28 | ⑧ 调查 Python 构建后端的流行趋势(II) 29 | 30 | ⑨ Python ASGI 应用的日志上下文传播 31 | 32 | ⑩ PEP-771:Python 软件包的默认可选依赖 33 | 34 | ⑪ 使用 Turtle 绘制各国国旗 35 | 36 | ⑫ 我的开发工具和工作流分享 37 | 38 | **[🐿️项目&资源](https://xiaobot.net/p/python_weekly)** 39 | 40 | 41 | ① DeepSeek-R1:媲美 OpenAI-o1 的开源模型 42 | 43 | ② wiseflow:从网站/公众号/RSS等提取简洁的信息 44 | 45 | ③ beaverhabits:自托管的习惯追踪应用 46 | 47 | ④ django-templated-email-md:用 Markdown 格式生成电子邮件 48 | 49 | ⑤ isd:更便捷的 systemd 管理方式 50 | 51 | ⑥ ccrl\_challenger\_flask\_app:Flask 开发的国际象棋对战网站 52 | 53 | ⑦ micropie:超轻量的 Python Web 框架 54 | 55 | ⑧ zasper:高效运行 Jupyter Notebook 的 IDE 56 | 57 | ⑨ UI-TARS:字节跳动开源的 GUI 代理模型 58 | 59 | ⑩ WebWalker:用网页导航任务中对 LLM 作基准测试 60 | 61 | ⑪ coagent:用于开发单体或分布式代理系统的框架 62 | 63 | ⑫ Python 数据可视化工具网站 64 | 65 | 66 | 67 | 周刊实行付费订阅制,年费 128 元,平均每天不到 4 毛钱,但绝对是一笔有眼光的投资。花钱学习知识,花钱提升自己,欢迎订阅这个你绝对不会后悔的专栏:https://xiaobot.net/p/python_weekly 68 | 69 | 订阅后,可免费查看 第 87 期周刊的全文:https://www.xiaobot.net/post/cd111999-3cd9-4520-95f3-1f6ded061036 70 | 71 | Python 潮流周刊第 2 季完结了,分享几项总结:https://pythoncat.top/posts/2024-07-14-iweekly 72 | 73 | 周刊前30期的免费合集,含精美电子书(EPUB/PDF):https://pythoncat.top/posts/2023-12-11-weekly 74 | 75 | 万字浓缩版,Python 潮流周刊第 1 季的 800 个链接!:https://xiaobot.net/post/78c3d645-86fa-4bd8-8eac-46fb192a339e 76 | 77 | **微信关注 Python猫**:[https://img.pythoncat.top/python_cat.jpg](https://img.pythoncat.top/python_cat.jpg) 78 | 79 | -------------------------------------------------------------------------------- /docs/2025-09-27-weekly.md: -------------------------------------------------------------------------------- 1 | # Python 潮流周刊#121:工程师如何做出高效决策? 2 | 3 | 本周刊由 Python猫 出品,精心筛选国内外的 400+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 4 | 5 | **温馨提示:** 在微信关注 **Python猫**,发送数字“**9**”,即可领取 9 折优惠码,订阅专栏可享 15 元优惠。 6 | 7 | 去专栏阅读全文:[全文链接](https://xiaobot.net/post/b082e48b-a1d4-480a-89bf-fd4bc9614b63) 8 | 9 | 分享了 12 篇文章,12 个开源项目 10 | 11 | 以下是本期标题摘要: 12 | 13 | **[🦄文章&教程](https://weekly.pythoncat.top)** 14 | 15 | 16 | ① 在现实世界中追踪 JIT 17 | 18 | ② 编译 Python 让其随处运行 19 | 20 | ③ PEP-806:混合 sync/async 上下文管理器 21 | 22 | ④ 介绍 django-watchfiles:高效的 runserver 自动重载 23 | 24 | ⑤ 使用 Cursor AI 将 Bash 测试套件迁移到 Python 25 | 26 | ⑥ 解锁 Python 自由线程的性能潜力:垃圾收集优化 27 | 28 | ⑦ 边缘计算中的 Python:基于 WebAssembly 的快速沙盒化运行 29 | 30 | ⑧ Python 依赖混淆攻击:我如何入侵苹果、微软等公司? 31 | 32 | ⑨ 在 Django 项目中使用内省强制执行约定 33 | 34 | ⑩ 计算机科学中的优秀思想 35 | 36 | ⑪ 为什么事件驱动系统难以开发? 37 | 38 | ⑫ 软件工程师如何做出高效决策? 39 | 40 | **[🐿️项目&资源](https://weekly.pythoncat.top)** 41 | 42 | 43 | ① timesfm:Google 时间序列基础模型 44 | 45 | ② aipyapp:AI 驱动的 Python 解释器 46 | 47 | ③ ticket-purchase:大麦自动抢票脚本 48 | 49 | ④ memvid:视频化 AI 记忆库 50 | 51 | ⑤ noScribe:AI 音频转录工具 52 | 53 | ⑥ klavis:AI 智能体工具集成平台 54 | 55 | ⑦ fastapi-radar:FastAPI 调试仪表板 56 | 57 | ⑧ air:新一代 Python Web 框架 58 | 59 | ⑨ OM1:模块化机器人 AI 运行时 60 | 61 | ⑩ Ciphey:全自动加密破解工具 62 | 63 | ⑪ DBOS Transact:轻量级持久化工作流 64 | 65 | ⑫ CleverBee:AI 驱动的在线数据信息合成助手 66 | 67 | 68 | 69 | 周刊实行付费订阅制,年费 148 元,平均每天 4 毛钱,为你精准筛选高质量技术内容。在信息洪流中为你淘金,助力技术视野拓展和职业发展,欢迎订阅:[https://xiaobot.net/p/python_weekly](https://xiaobot.net/p/python_weekly) 70 | 71 | 订阅后,可免费查看 第 121 期周刊的全文:https://xiaobot.net/post/b082e48b-a1d4-480a-89bf-fd4bc9614b63 72 | 73 | [Python 潮流周刊第3季总结,附电子书下载](https://pythoncat.top/posts/2025-04-20-sweekly) 74 | 75 | [Python 潮流周刊第二季完结(31~60)](https://pythoncat.top/posts/2025-04-20-iweekly) 76 | 77 | [Python 潮流周刊第一季精华合集(1~30)](https://pythoncat.top/posts/2023-12-11-weekly) 78 | 79 | **微信关注 Python猫**:[https://img.pythoncat.top/python_cat.jpg](https://img.pythoncat.top/python_cat.jpg) 80 | 81 | -------------------------------------------------------------------------------- /landing-page/.gitignore: -------------------------------------------------------------------------------- 1 | # Dependencies 2 | node_modules/ 3 | npm-debug.log* 4 | yarn-debug.log* 5 | yarn-error.log* 6 | pnpm-debug.log* 7 | 8 | # Next.js 9 | .next/ 10 | out/ 11 | build/ 12 | dist/ 13 | 14 | # Production builds 15 | *.tgz 16 | *.tar.gz 17 | 18 | # Runtime data 19 | pids 20 | *.pid 21 | *.seed 22 | *.pid.lock 23 | 24 | # Coverage directory used by tools like istanbul 25 | coverage/ 26 | *.lcov 27 | 28 | # nyc test coverage 29 | .nyc_output 30 | 31 | # Dependency directories 32 | node_modules/ 33 | jspm_packages/ 34 | 35 | # TypeScript cache 36 | *.tsbuildinfo 37 | 38 | # Optional npm cache directory 39 | .npm 40 | 41 | # Optional eslint cache 42 | .eslintcache 43 | 44 | # Optional stylelint cache 45 | .stylelintcache 46 | 47 | # Microbundle cache 48 | .rpt2_cache/ 49 | .rts2_cache_cjs/ 50 | .rts2_cache_es/ 51 | .rts2_cache_umd/ 52 | 53 | # Optional REPL history 54 | .node_repl_history 55 | 56 | # Output of 'npm pack' 57 | *.tgz 58 | 59 | # Yarn Integrity file 60 | .yarn-integrity 61 | 62 | # dotenv environment variable files 63 | .env 64 | .env.development.local 65 | .env.test.local 66 | .env.production.local 67 | .env.local 68 | 69 | # Parcel-bundler cache (https://parceljs.org/) 70 | .cache 71 | .parcel-cache 72 | 73 | # Next.js build output 74 | .next 75 | out 76 | 77 | # Nuxt.js build / generate output 78 | .nuxt 79 | dist 80 | 81 | # Gatsby files 82 | .cache/ 83 | # public - 注释掉这行,允许Next.js的public目录被提交 84 | 85 | # Storybook build outputs 86 | .out 87 | .storybook-out 88 | 89 | # Temporary folders 90 | tmp/ 91 | temp/ 92 | 93 | # Logs 94 | logs 95 | *.log 96 | 97 | # Editor directories and files 98 | .vscode/ 99 | .idea/ 100 | *.swp 101 | *.swo 102 | *~ 103 | 104 | # OS generated files 105 | .DS_Store 106 | .DS_Store? 107 | ._* 108 | .Spotlight-V100 109 | .Trashes 110 | ehthumbs.db 111 | Thumbs.db 112 | 113 | # Vercel 114 | .vercel 115 | 116 | # Turbo 117 | .turbo -------------------------------------------------------------------------------- /docs/2025-08-09-weekly.md: -------------------------------------------------------------------------------- 1 | # Python 潮流周刊#114:Python 的性能神话与真相 2 | 3 | 本周刊由 Python猫 出品,精心筛选国内外的 400+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 4 | 5 | **温馨提示:** 在微信关注 **Python猫**,发送数字“**9**”,即可领取 9 折优惠码,订阅专栏可享 15 元优惠。 6 | 7 | 去专栏阅读全文:[全文链接](https://www.xiaobot.net/post/a07209bc-67eb-46bb-9a57-552a29126ca0) 8 | 9 | 分享了 12 篇文章,12 个开源项目 10 | 11 | 以下是本期标题摘要: 12 | 13 | **[🦄文章&教程](https://weekly.pythoncat.top)** 14 | 15 | 16 | ① CPython JIT 的原理解密 17 | 18 | ② 我为何会对 Litestar 感兴趣? 19 | 20 | ③ 你或许不需要用到 Python 类 21 | 22 | ④ Rust、Python、TypeScript:新的三剑客 23 | 24 | ⑤ Python 的性能神话与真相 25 | 26 | ⑥ Django 原子计数器的三种实现 27 | 28 | ⑦ 别直接调用 Python 双下方法了 29 | 30 | ⑧ 在 OpenGist 中渲染 Jupyter Notebook 31 | 32 | ⑨ 如何解决 Python 版本管理混乱? 33 | 34 | ⑩ Conda 生态系统详解 35 | 36 | ⑪ setuptools 与 setup\.py 的前世今生 37 | 38 | ⑫ 系统设计的朴素智慧 39 | 40 | **[🐿️项目&资源](https://weekly.pythoncat.top)** 41 | 42 | 43 | ① zotero-arxiv-daily:基于 Zotero 文献库的 arXiv 论文智能推荐 44 | 45 | ② Office-PowerPoint-MCP-Server:PowerPoint 文稿操作的 MCP 服务器 46 | 47 | ③ pipecat:实时语音和多模态对话 AI 智能体框架 48 | 49 | ④ sniffly:Claude Code 分析面板 50 | 51 | ⑤ FastVideo:统一的视频生成加速框架 52 | 53 | ⑥ judgeval:AI 智能体后训练层工具 54 | 55 | ⑦ viser:基于 Web 的 3D 可视化库 56 | 57 | ⑧ stock: 股票分析利器 58 | 59 | ⑨ langmem: AI 智能体长期记忆管理 60 | 61 | ⑩ Auto-Gmail-Creator: 批量 Gmail 账户自动创建 62 | 63 | ⑪ nvda: 免费开源的屏幕阅读器 64 | 65 | ⑫ sshsync:远程服务器命令同步工具 66 | 67 | 68 | 69 | 周刊实行付费订阅制,年费 148 元,平均每天 4 毛钱,为你精准筛选高质量技术内容。在信息洪流中为你淘金,助力技术视野拓展和职业发展,欢迎订阅:[https://xiaobot.net/p/python_weekly](https://xiaobot.net/p/python_weekly) 70 | 71 | 订阅后,可免费查看 第 114 期周刊的全文:https://www.xiaobot.net/post/a07209bc-67eb-46bb-9a57-552a29126ca0 72 | 73 | [Python 潮流周刊第3季总结,附电子书下载](https://pythoncat.top/posts/2025-04-20-sweekly) 74 | 75 | [Python 潮流周刊第二季完结(31~60)](https://pythoncat.top/posts/2025-04-20-iweekly) 76 | 77 | [Python 潮流周刊第一季精华合集(1~30)](https://pythoncat.top/posts/2023-12-11-weekly) 78 | 79 | **微信关注 Python猫**:[https://img.pythoncat.top/python_cat.jpg](https://img.pythoncat.top/python_cat.jpg) 80 | 81 | -------------------------------------------------------------------------------- /docs/2025-02-08-weekly.md: -------------------------------------------------------------------------------- 1 | # Python 潮流周刊#88:Python 第一个稳定版本是怎样的? 2 | 3 | 本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 4 | 5 | 分享了 12 篇文章,12 个开源项目,1 则热门讨论 6 | 7 | 以下是本期摘要: 8 | 9 | **[🦄文章&教程](https://xiaobot.net/p/python_weekly)** 10 | 11 | 12 | ① 让我们来编译 Python 1.0 吧! 13 | 14 | ② 如何可视化 Python 项目的依赖图? 15 | 16 | ③ 令人惊讶的用 BytesIO 节省内存的方法 17 | 18 | ④ 猴子补丁:单文件 Django 的实现与技巧 19 | 20 | ⑤ Python 作为 DSL:JIT 装饰器的实现 21 | 22 | ⑥ 重写 Python AST 以实现持久化执行 23 | 24 | ⑦ Windows 上的可移植 Python 包 25 | 26 | ⑧ 给 R 语言开发者的 Python 学习指南 27 | 28 | ⑨ Python + LibreTranslate 实现语言翻译 29 | 30 | ⑩ Python 自由线程的使用指南 31 | 32 | ⑪ 不同 Python 游戏库间的对比 33 | 34 | ⑫ 对比 Django 的任务队列和调度工具 35 | 36 | **[🐿️项目&资源](https://xiaobot.net/p/python_weekly)** 37 | 38 | 39 | ① open-r1:DeepSeek-R1 的完全开源复现 40 | 41 | ② YuE:开源的全曲音乐生成模型,类似于 Suno.ai 42 | 43 | ③ kreuzberg:提取 PDF、图片、office 文档 44 | 45 | ④ Janus:统一的多模态理解与生成模型 46 | 47 | ⑤ AstrBot:多平台 LLM 聊天机器人及开发框架 48 | 49 | ⑥ cosmicpython-book:《Cosmic Python》的中文翻译 50 | 51 | ⑦ orange-intelligence:Apple Intelligence 的开源替代 52 | 53 | ⑧ django-webflix:用 Django 开发的 Netflix 风格流媒体平台 54 | 55 | ⑨ FilmAgent:在虚拟 3D 空间自动化拍电影 56 | 57 | ⑩ leviathan:用 Zig 开发的用于 asyncio 的事件循环 58 | 59 | ⑪ ScrapeServ:接受 URL 并返回浏览器截图 60 | 61 | ⑫ subauto:用 AI 作视频字幕转录、翻译和嵌入 62 | 63 | **[🥂讨论&问题](https://xiaobot.net/p/python_weekly)** 64 | 65 | 66 | ① Ruff 正在开发静态类型检查功能 67 | 68 | 69 | 70 | 周刊实行付费订阅制,年费 128 元,平均每天不到 4 毛钱,但绝对是一笔有眼光的投资。花钱学习知识,花钱提升自己,欢迎订阅这个你绝对不会后悔的专栏:https://xiaobot.net/p/python_weekly 71 | 72 | 订阅后,可免费查看 第 88 期周刊的全文:https://www.xiaobot.net/post/05c03f2d-f1a7-414c-aa3b-3b872aaa2db1 73 | 74 | Python 潮流周刊第 2 季完结了,分享几项总结:https://pythoncat.top/posts/2024-07-14-iweekly 75 | 76 | 周刊前30期的免费合集,含精美电子书(EPUB/PDF):https://pythoncat.top/posts/2023-12-11-weekly 77 | 78 | 万字浓缩版,Python 潮流周刊第 1 季的 800 个链接!:https://xiaobot.net/post/78c3d645-86fa-4bd8-8eac-46fb192a339e 79 | 80 | **微信关注 Python猫**:[https://img.pythoncat.top/python_cat.jpg](https://img.pythoncat.top/python_cat.jpg) 81 | 82 | -------------------------------------------------------------------------------- /docs/2025-12-13-weekly.md: -------------------------------------------------------------------------------- 1 | # Python 潮流周刊#131:从零开始构建智能体 2 | 3 | 本周刊由 Python猫 出品,精心筛选国内外的 400+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 4 | 5 | **温馨提示:** 在微信关注 **Python猫**,发送数字“**9**”,即可领取 9 折优惠码,订阅专栏可享 15 元优惠。 6 | 7 | 去专栏阅读全文:[全文链接](https://xiaobot.net/post/c5c77fc3-e8ba-45ab-87d3-abfc9e68a5ae) 8 | 9 | 分享了 12 篇文章,12 个开源项目 10 | 11 | 以下是本期标题摘要: 12 | 13 | **[🦄文章&教程](https://weekly.pythoncat.top)** 14 | 15 | 16 | ① 警告式弃用对 Python 库不起作用 17 | 18 | ② PEP 816:CPython 对 WASI 的支持规范 19 | 20 | ③ 2025 年 PyTorch 硬件加速现状报告 21 | 22 | ④ 30 分钟开发基于 Django 和 MongoDB 的 RAG 应用 23 | 24 | ⑤ 正则表达式高尔夫解题实录 25 | 26 | ⑥ Django RAPID 架构指南 27 | 28 | ⑦ Python 应用日志指南:可观测性秘籍 29 | 30 | ⑧ 日语语料库语言学方向的 Python 入门指北 31 | 32 | ⑨ 开发单文件 HTML 工具的实用模式 33 | 34 | ⑩ 利用生成式 AI 开发 Pandas Dataframe AI 智能体 35 | 36 | ⑪ AI 智能体记忆机制全解析 37 | 38 | ⑫ Bloom 过滤器:让 API 提速 16 倍的小众技巧 39 | 40 | **[🐿️项目&资源](https://weekly.pythoncat.top)** 41 | 42 | 43 | ① Lada:视频马赛克消除与修复工具 44 | 45 | ② Hello-Agents:从零开始开发智能体教程 46 | 47 | ③ TotalSegmentator:CT/MR 图像解剖结构分割工具 48 | 49 | ④ pal-mcp-server:多模型协作的智能体编排服务器 50 | 51 | ⑤ MemMachine:AI 智能体通用记忆层 52 | 53 | ⑥ Flask-Pydantic:Flask 的 Pydantic 集成扩展 54 | 55 | ⑦ TEN-Framework:实时多模态 AI 智能体框架 56 | 57 | ⑧ GLM-V:智谱 AI 开源的视觉语言模型系列 58 | 59 | ⑨ cuTile-Python:英伟达 GPU 并行计算编程语言 60 | 61 | ⑩ tau2-bench:客户服务智能体评估基准 62 | 63 | ⑪ Metacode:机器可读代码注释的通用标准 64 | 65 | ⑫ Syd:离线网络安全 AI 助手 66 | 67 | 68 | 69 | 周刊实行付费订阅制,年费 148 元,平均每天 4 毛钱,为你精准筛选高质量技术内容。在信息洪流中为你淘金,助力技术视野拓展和职业发展,欢迎订阅:[https://xiaobot.net/p/python_weekly](https://xiaobot.net/p/python_weekly) 70 | 71 | 订阅后,可免费查看 第 131 期周刊的全文:https://xiaobot.net/post/c5c77fc3-e8ba-45ab-87d3-abfc9e68a5ae 72 | 73 | [Python 潮流周刊第3季总结,附电子书下载](https://pythoncat.top/posts/2025-04-20-sweekly) 74 | 75 | [Python 潮流周刊第二季完结(31~60)](https://pythoncat.top/posts/2025-04-20-iweekly) 76 | 77 | [Python 潮流周刊第一季精华合集(1~30)](https://pythoncat.top/posts/2023-12-11-weekly) 78 | 79 | **微信关注 Python猫**:[https://img.pythoncat.top/python_cat.jpg](https://img.pythoncat.top/python_cat.jpg) 80 | 81 | -------------------------------------------------------------------------------- /docs/2025-12-20-weekly.md: -------------------------------------------------------------------------------- 1 | # Python 潮流周刊#132:30 年 Python 自由职业经验 2 | 3 | 本周刊由 Python猫 出品,精心筛选国内外的 400+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 4 | 5 | **温馨提示:** 在微信关注 **Python猫**,发送数字“**9**”,即可领取 9 折优惠码,订阅专栏可享 15 元优惠。 6 | 7 | 去专栏阅读全文:[全文链接](https://xiaobot.net/post/2f1f3b0d-239a-469f-a58e-7959f8570d1d) 8 | 9 | 分享了 12 篇文章,12 个开源项目 10 | 11 | 以下是本期标题摘要: 12 | 13 | **[🦄文章&教程](https://weekly.pythoncat.top)** 14 | 15 | 16 | ① 不必担心 Python 子进程和 Go 代码生成 17 | 18 | ② 打造最快的 Python CI 19 | 20 | ③ 我的 Python 开发配置(2025.12 版) 21 | 22 | ④ 常被忽视的高级 Python 类型提示 23 | 24 | ⑤ 30 年 Python 自由职业教会我的 30 件事 25 | 26 | ⑥ Python 的“冻结”字典 27 | 28 | ⑦ 具备动态上下文和持续学习能力的 Text2Sql 智能体 29 | 30 | ⑧ 一个 Python 的测试难题 31 | 32 | ⑨ 善用 Python 的空白字符 33 | 34 | ⑩ 利用 Django QuerySets 提升查询性能 35 | 36 | ⑪ 依赖组与 uv run 37 | 38 | ⑫ 2025 年终总结 39 | 40 | **[🐿️项目&资源](https://weekly.pythoncat.top)** 41 | 42 | 43 | ① xianyu-auto-reply:闲鱼自动回复管理系统 44 | 45 | ② rendercv:基于 Typst 的简历生成器 46 | 47 | ③ pdf-document-layout-analysis:PDF 文档布局分析工具 48 | 49 | ④ mash-playbook:自托管服务的终极 Ansible 剧本 50 | 51 | ⑤ CosyVoice:多语言大模型语音生成系统 52 | 53 | ⑥ sam3:Meta 最新万物分割模型 SAM 3 54 | 55 | ⑦ robin:AI 驱动的暗网 OSINT 工具 56 | 57 | ⑧ sqlit:像 Lazygit 一样好用的 SQL 数据库终端工具 58 | 59 | ⑨ Awesome-ML-SYS-Tutorial:机器学习系统学习笔记 60 | 61 | ⑩ MHR:Meta 开源的高保真 3D 人体模型 62 | 63 | ⑪ chanx:功能完备的 WebSocket 框架 64 | 65 | ⑫ VideoDataset:高性能视频解码与加载库 66 | 67 | 68 | 69 | 周刊实行付费订阅制,年费 148 元,平均每天 4 毛钱,为你精准筛选高质量技术内容。在信息洪流中为你淘金,助力技术视野拓展和职业发展,欢迎订阅:[https://xiaobot.net/p/python_weekly](https://xiaobot.net/p/python_weekly) 70 | 71 | 订阅后,可免费查看 第 132 期周刊的全文:https://xiaobot.net/post/2f1f3b0d-239a-469f-a58e-7959f8570d1d 72 | 73 | [Python 潮流周刊第3季总结,附电子书下载](https://pythoncat.top/posts/2025-04-20-sweekly) 74 | 75 | [Python 潮流周刊第二季完结(31~60)](https://pythoncat.top/posts/2025-04-20-iweekly) 76 | 77 | [Python 潮流周刊第一季精华合集(1~30)](https://pythoncat.top/posts/2023-12-11-weekly) 78 | 79 | **微信关注 Python猫**:[https://img.pythoncat.top/python_cat.jpg](https://img.pythoncat.top/python_cat.jpg) 80 | 81 | -------------------------------------------------------------------------------- /docs/2025-07-12-weekly.md: -------------------------------------------------------------------------------- 1 | # Python 潮流周刊#110:JIT 编译器两年回顾,AI 智能体工具大爆发 2 | 3 | 本周刊由 Python猫 出品,精心筛选国内外的 400+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 4 | 5 | **温馨提示:** 在微信关注 **Python猫**,发送数字“**9**”,即可领取 9 折优惠码,订阅专栏可享 15 元优惠。 6 | 7 | 分享了 12 篇文章,12 个开源项目。去专栏阅读全文:[全文链接](https://www.xiaobot.net/post/a3c4b6b4-b60b-4d43-86b1-c179bd361cc7) 8 | 9 | 以下是本期标题摘要: 10 | 11 | **[🦄文章&教程](https://weekly.pythoncat.top)** 12 | 13 | 14 | ① CPython JIT 编译器两年回顾 15 | 16 | ② 类型系统正在改变 Python 17 | 18 | ③ 用 uv 依赖解析器解决 Wordle 19 | 20 | ④ 使用 FastAPI、MongoDB 和 WebSockets 开发实时仪表板 21 | 22 | ⑤ Python 类型检查中的逆变问题解决方案 23 | 24 | ⑥ LangFlow 教程:用可视化工作流构建生产级 AI 应用 25 | 26 | ⑦ FastAPI 推荐服务的扩展实战 27 | 28 | ⑧ 让扩展适配自由线程 Python 29 | 30 | ⑨ Augmented Coding:超越感觉 31 | 32 | ⑩ 智能体的上下文工程 33 | 34 | ⑪ PyTorch 已死,JAX 万岁 35 | 36 | ⑫ 操作者,而非用户和程序员 37 | 38 | **[🐿️项目&资源](https://weekly.pythoncat.top)** 39 | 40 | 41 | ① trae-agent:基于 LLM 的通用软件工程智能体 42 | 43 | ② xai-sdk-python:xAI 官方 Python SDK 44 | 45 | ③ desto:tmux 会话中的脚本管理工具 46 | 47 | ④ devin\.cursorrules:将 Cursor 转换为 Devin 级 AI 助手 48 | 49 | ⑤ LingChat:灵动的 AI 聊天陪伴助手 50 | 51 | ⑥ rowboat:AI 驱动的多智能体构建器 52 | 53 | ⑦ agent-factory:智能体工作流代码生成工具 54 | 55 | ⑧ throttled-py:高性能 Python 限流库 56 | 57 | ⑨ tubearchivist:自托管 YouTube 媒体服务 58 | 59 | ⑩ mlx-audio:基于 Apple MLX 框架的语音处理库 60 | 61 | ⑪ sloppy-xml-py: 容错性 XML 解析库 62 | 63 | ⑫ Python-Scripts: 自动化任务 Python 脚本集合 64 | 65 | 66 | 67 | 周刊实行付费订阅制,年费 148 元,平均每天 4 毛钱,为你精准筛选高质量技术内容。在信息洪流中为你淘金,助力技术视野拓展和职业发展,欢迎订阅:[https://xiaobot.net/p/python_weekly](https://xiaobot.net/p/python_weekly) 68 | 69 | 订阅后,可免费查看 第 110 期周刊的全文:https://www.xiaobot.net/post/a3c4b6b4-b60b-4d43-86b1-c179bd361cc7 70 | 71 | [Python 潮流周刊第3季总结,附电子书下载](https://pythoncat.top/posts/2025-04-20-sweekly) 72 | 73 | [Python 潮流周刊第二季完结(31~60)](https://pythoncat.top/posts/2025-04-20-iweekly) 74 | 75 | [Python 潮流周刊第一季精华合集(1~30)](https://pythoncat.top/posts/2023-12-11-weekly) 76 | 77 | **微信关注 Python猫**:[https://img.pythoncat.top/python_cat.jpg](https://img.pythoncat.top/python_cat.jpg) 78 | 79 | -------------------------------------------------------------------------------- /docs/2025-08-16-weekly.md: -------------------------------------------------------------------------------- 1 | # Python 潮流周刊#115:Astral 推出 pyx 包仓库,AI 优化 20 年古老代码 2 | 3 | 本周刊由 Python猫 出品,精心筛选国内外的 400+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 4 | 5 | **温馨提示:** 在微信关注 **Python猫**,发送数字“**9**”,即可领取 9 折优惠码,订阅专栏可享 15 元优惠。 6 | 7 | 去专栏阅读全文:[全文链接](https://www.xiaobot.net/post/f81bc4ff-dded-4b95-a49e-97796f4dd7ff) 8 | 9 | 分享了 12 篇文章,12 个开源项目 10 | 11 | 以下是本期标题摘要: 12 | 13 | **[🦄文章&教程](https://weekly.pythoncat.top)** 14 | 15 | 16 | ① pyx:Python 原生软件包仓库 17 | 18 | ② pytest parametrize 入门指南 19 | 20 | ③ HRT 的 Python 分支:利用 PEP 690 实现更快导入 21 | 22 | ④ Python Wheel:从标签到变体 23 | 24 | ⑤ 7 个加速 Python 数据科学工作流的方案 25 | 26 | ⑥ DeepSeek-R1 能否优化世界上最古老的代码库之一? 27 | 28 | ⑦ Python 半自动化汇编验证 29 | 30 | ⑧ Python 版本依赖路径问题 31 | 32 | ⑨ Python 如何从语言发展为社区? 33 | 34 | ⑩ PEP-802:空集显示语法 35 | 36 | ⑪ mssql-python vs pyodbc:SQL Server 性能基准测试 37 | 38 | ⑫ 使用 plotnine 创建注释面积图 39 | 40 | **[🐿️项目&资源](https://weekly.pythoncat.top)** 41 | 42 | 43 | ① marker:高精度快速 PDF 转换工具 44 | 45 | ② stagehand-python:AI 浏览器自动化框架 46 | 47 | ③ Anthias:开源数字标牌解决方案 48 | 49 | ④ YTSage:现代化 YouTube 下载器 50 | 51 | ⑤ free-llm-api-resources:免费 LLM API 资源列表 52 | 53 | ⑥ Biomni:通用生物医学 AI 智能体 54 | 55 | ⑦ genai-processors:模块化 AI 管道开发库 56 | 57 | ⑧ SQLBot: 基于大模型和 RAG 的智能问数系统 58 | 59 | ⑨ notte:可靠的浏览器 AI 智能体 60 | 61 | ⑩ Dolphin:异构锚点提示的文档图像解析 62 | 63 | ⑪ open-notebook:Notebook LM 开源替代 64 | 65 | ⑫ botasaurus:强大的爬虫开发框架 66 | 67 | 68 | 69 | 周刊实行付费订阅制,年费 148 元,平均每天 4 毛钱,为你精准筛选高质量技术内容。在信息洪流中为你淘金,助力技术视野拓展和职业发展,欢迎订阅:[https://xiaobot.net/p/python_weekly](https://xiaobot.net/p/python_weekly) 70 | 71 | 订阅后,可免费查看 第 115 期周刊的全文:https://www.xiaobot.net/post/f81bc4ff-dded-4b95-a49e-97796f4dd7ff 72 | 73 | [Python 潮流周刊第3季总结,附电子书下载](https://pythoncat.top/posts/2025-04-20-sweekly) 74 | 75 | [Python 潮流周刊第二季完结(31~60)](https://pythoncat.top/posts/2025-04-20-iweekly) 76 | 77 | [Python 潮流周刊第一季精华合集(1~30)](https://pythoncat.top/posts/2023-12-11-weekly) 78 | 79 | **微信关注 Python猫**:[https://img.pythoncat.top/python_cat.jpg](https://img.pythoncat.top/python_cat.jpg) 80 | 81 | -------------------------------------------------------------------------------- /docs/2025-07-05-weekly.md: -------------------------------------------------------------------------------- 1 | # Python 潮流周刊#109:Python 性能优化技巧 2 | 3 | 本周刊由 Python猫 出品,精心筛选国内外的 400+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 4 | 5 | **温馨提示:** 在微信关注 **Python猫**,发送数字“**9**”,即可领取 9 折优惠码,订阅专栏可享 15 元优惠。 6 | 7 | 分享了 13 篇文章,13 个开源项目 8 | 9 | 以下是本期标题摘要: 10 | 11 | **[🦄文章&教程](https://weekly.pythoncat.top)** 12 | 13 | 14 | ① 330 倍提升:四种性能优化方法 15 | 16 | ② 为什么这个 Python 性能技巧不再重要 17 | 18 | ③ Python 3.14 的进一步性能进化:Tail Call Interpreter 19 | 20 | ④ 常用库中不常见的 Python 用法 21 | 22 | ⑤ 代码阅读:Python 标准库模块 shelve\.py 23 | 24 | ⑥ Anthropic 是如何开发多智能体研究系统? 25 | 26 | ⑦ LLM 时代的编程语言设计:回归平庸? 27 | 28 | ⑧ Python 全局变量在字节码中的工作原理 29 | 30 | ⑨ 万字长文彻底剖析 Python 正则表达式 31 | 32 | ⑩ Pyodide 中的 JavaScript Promise 集成 33 | 34 | ⑪ 编写玩具软件是一种乐趣 35 | 36 | ⑫ 我对各种 AI Coding Agent 工具的看法 37 | 38 | ⑬ Vibe Coding 一段时间后的感受 39 | 40 | **[🐿️项目&资源](https://weekly.pythoncat.top)** 41 | 42 | 43 | ① PythonLink:Python 精选优质资源导航站 44 | 45 | ② spegel:AI 驱动的终端网页浏览器 46 | 47 | ③ autoMate:类 Manus 的 AI 本地自动化助手 48 | 49 | ④ claude-code:终端中的智能编程助手 50 | 51 | ⑤ ebook2audiobook:电子书转有声书工具 52 | 53 | ⑥ mcp:AWS MCP 服务器套件 54 | 55 | ⑦ happy-llm:大语言模型原理与实践教程 56 | 57 | ⑧ Office-PowerPoint-MCP-Server:PowerPoint MCP 服务器 58 | 59 | ⑨ octopusdash:动态 Django 管理面板 60 | 61 | ⑩ cognee:5 行代码实现 AI 智能体记忆 62 | 63 | ⑪ FastAPI-boilerplate:FastAPI 异步 API 模板 64 | 65 | ⑫ spy-search:比 Perplexity 更快的 LLM 搜索引擎 66 | 67 | ⑬ premier:灵活轻量的 API 网关 68 | 69 | 70 | 71 | 周刊实行付费订阅制,年费 148 元,平均每天 4 毛钱,为你精准筛选高质量技术内容。在信息洪流中为你淘金,助力技术视野拓展和职业发展,欢迎订阅:[https://xiaobot.net/p/python_weekly](https://xiaobot.net/p/python_weekly) 72 | 73 | 订阅后,可免费查看 第 109 期周刊的全文:https://www.xiaobot.net/post/dd1f1826-bfd8-4251-b539-e9c57f6f0795 74 | 75 | [Python 潮流周刊第3季总结,附电子书下载](https://pythoncat.top/posts/2025-04-20-sweekly) 76 | 77 | [Python 潮流周刊第二季完结(31~60)](https://pythoncat.top/posts/2025-04-20-iweekly) 78 | 79 | [Python 潮流周刊第一季精华合集(1~30)](https://pythoncat.top/posts/2023-12-11-weekly) 80 | 81 | **微信关注 Python猫**:[https://img.pythoncat.top/python_cat.jpg](https://img.pythoncat.top/python_cat.jpg) 82 | 83 | -------------------------------------------------------------------------------- /docs/2025-11-08-weekly.md: -------------------------------------------------------------------------------- 1 | # Python 潮流周刊#126:新一代静态网站生成器 2 | 3 | 本周刊由 Python猫 出品,精心筛选国内外的 400+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 4 | 5 | **温馨提示:** 在微信关注 **Python猫**,发送数字“**9**”,即可领取 9 折优惠码,订阅专栏可享 15 元优惠。 6 | 7 | 去专栏阅读全文:[全文链接](https://xiaobot.net/post/f85519cd-e6cc-40e2-946a-666bd247377a) 8 | 9 | 分享了 12 篇文章,12 个开源项目 10 | 11 | 以下是本期标题摘要: 12 | 13 | **[🦄文章&教程](https://weekly.pythoncat.top)** 14 | 15 | 16 | ① 2025 年 Python 核心开发者冲刺会议 17 | 18 | ② 10 个提升 Python 代码性能的技巧 19 | 20 | ③ PEP-798:在推导式中使用解包操作符 21 | 22 | ④ 开发易于安装的 Python 应用 23 | 24 | ⑤ Zensical:新一代静态网站生成器 25 | 26 | ⑥ Conda 在包管理光谱中的定位:从 pip 到 Docker 再到 Nix 27 | 28 | ⑦ Python + SQLAlchemy ORM 深度指南 29 | 30 | ⑧ 包装 Python 不可变对象 31 | 32 | ⑨ 文本模式匹配工具选型:Regex、Pregex 与 Pyparsing 33 | 34 | ⑩ 当生成器、鸭子类型和无分支条件走进酒吧 35 | 36 | ⑪ 用 CPython 3.14 调试实时代码 37 | 38 | ⑫ 当按下 ChatGPT 发送键时究竟发生了什么? 39 | 40 | **[🐿️项目&资源](https://weekly.pythoncat.top)** 41 | 42 | 43 | ① chandra:高精度 OCR 模型 44 | 45 | ② zensical:Material for MkDocs 团队开发的静态网站生成器 46 | 47 | ③ strix:AI 智能体安全测试工具 48 | 49 | ④ nano-vllm:轻量级 vLLM 实现 50 | 51 | ⑤ deepagents:开发深度 AI 智能体的 Python 库 52 | 53 | ⑥ ktransformers:灵活的 LLM 推理优化框架 54 | 55 | ⑦ agents:Claude Code 智能自动化插件系统 56 | 57 | ⑧ DeepAnalyze:首个自主数据科学智能体 LLM 58 | 59 | ⑨ caniscrape:网站反爬虫保护分析工具 60 | 61 | ⑩ pytogether:Google Docs 风格的 Python 协作 IDE 62 | 63 | ⑪ pipelex:AI 智能体工作流开源语言 64 | 65 | ⑫ amplifier:元认知 AI 开发工具 66 | 67 | 68 | 69 | 周刊实行付费订阅制,年费 148 元,平均每天 4 毛钱,为你精准筛选高质量技术内容。在信息洪流中为你淘金,助力技术视野拓展和职业发展,欢迎订阅:[https://xiaobot.net/p/python_weekly](https://xiaobot.net/p/python_weekly) 70 | 71 | 订阅后,可免费查看 第 126 期周刊的全文:https://xiaobot.net/post/f85519cd-e6cc-40e2-946a-666bd247377a 72 | 73 | [Python 潮流周刊第3季总结,附电子书下载](https://pythoncat.top/posts/2025-04-20-sweekly) 74 | 75 | [Python 潮流周刊第二季完结(31~60)](https://pythoncat.top/posts/2025-04-20-iweekly) 76 | 77 | [Python 潮流周刊第一季精华合集(1~30)](https://pythoncat.top/posts/2023-12-11-weekly) 78 | 79 | **微信关注 Python猫**:[https://img.pythoncat.top/python_cat.jpg](https://img.pythoncat.top/python_cat.jpg) 80 | 81 | -------------------------------------------------------------------------------- /docs/2025-03-29-weekly.md: -------------------------------------------------------------------------------- 1 | # Python 潮流周刊#95:像人类一样使用计算机 2 | 3 | 本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 4 | 5 | 分享了 11 篇文章,12 个开源项目 6 | 7 | **重要提示:**本周刊即将迎来第 100 期,即日起续订或新订阅,可享受八折优惠,欢迎领取优惠券 --> [https://www.xiaobot.net/coupon/d2c69b05-91b8-4e2b-b346-e7bc4dbc141a](https://www.xiaobot.net/coupon/d2c69b05-91b8-4e2b-b346-e7bc4dbc141a) 8 | 9 | 以下是本期摘要: 10 | 11 | **[🦄文章&教程](https://xiaobot.net/p/python_weekly)** 12 | 13 | 14 | ① Python 中如何使用与异步无关的装饰器? 15 | 16 | ② 无服务器的 Python 网站 17 | 18 | ③ 简单聊聊常见的负载均衡算法 19 | 20 | ④ CPython 中隐藏的 XKCD 彩蛋 21 | 22 | ⑤ 朋友不会让朋友用 Python 开发生产软件 23 | 24 | ⑥ 为什么我们选择 LangGraph 开发编码助手? 25 | 26 | ⑦ 能生成正确代码的 Python 测试执行器 27 | 28 | ⑧ Prospero 挑战:更多垃圾回收 29 | 30 | ⑨ PyTorch 的内部机制 31 | 32 | ⑩ 程序员阅读清单:我喜欢的 100 篇技术文章(41-50) 33 | 34 | ⑪ 编程十年的感悟 35 | 36 | **[🐿️项目&资源](https://xiaobot.net/p/python_weekly)** 37 | 38 | 39 | ① Agent-S:像人类一样使用计算机的 agent 框架 40 | 41 | ② basedpyright:给 pyright 加上类型检查和 pylance 功能 42 | 43 | ③ gurubase:RAG 系统,创建 AI 问答助手 44 | 45 | ④ compress\_json:读写压缩的 JSON 46 | 47 | ⑤ lihil:速度飞快的异步 Web 框架--lihil: Unbelievably fast async webframework 48 | 49 | ⑥ fastapi\_mcp:将 FastAPI 接口配置成 MCP 50 | 51 | ⑦ arrg:开发模块化的命令行应用 52 | 53 | ⑧ mcp-obsidian:与 Obsidian 交互的 MCP server 54 | 55 | ⑨ local-deep-researcher:网页研究和报告撰写助手 56 | 57 | ⑩ douyin-downloader:抖音批量下载工具 58 | 59 | ⑪ fastopenapi:生成和集成 OpenAPI 文档 60 | 61 | ⑫ star-vector:用于 SVG 生成的基础模型 62 | 63 | 64 | 65 | 周刊实行付费订阅制,年费 128 元,平均每天不到 4 毛钱,但绝对是一笔有眼光的投资。花钱学习知识,花钱提升自己,欢迎订阅这个你绝对不会后悔的专栏:https://xiaobot.net/p/python_weekly 66 | 67 | 订阅后,可免费查看 第 95 期周刊的全文:https://www.xiaobot.net/post/19eb0efb-4bdc-408e-b55c-9fc31afce4cf 68 | 69 | Python 潮流周刊第 2 季完结了,分享几项总结:https://pythoncat.top/posts/2024-07-14-iweekly 70 | 71 | 周刊前30期的免费合集,含精美电子书(EPUB/PDF):https://pythoncat.top/posts/2023-12-11-weekly 72 | 73 | 万字浓缩版,Python 潮流周刊第 1 季的 800 个链接!:https://xiaobot.net/post/78c3d645-86fa-4bd8-8eac-46fb192a339e 74 | 75 | **微信关注 Python猫**:[https://img.pythoncat.top/python_cat.jpg](https://img.pythoncat.top/python_cat.jpg) 76 | 77 | -------------------------------------------------------------------------------- /landing-page/app/[locale]/layout.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import {NextIntlClientProvider} from 'next-intl'; 3 | import {setRequestLocale} from 'next-intl/server'; 4 | import {notFound} from 'next/navigation'; 5 | import {locales} from '../../i18n'; 6 | import {generateMetadata as generateLocalizedMetadata, generateStructuredData} from '../../lib/metadata'; 7 | import Script from 'next/script'; 8 | 9 | // 为静态导出生成所有语言参数 10 | export function generateStaticParams() { 11 | return locales.map((locale) => ({ locale })); 12 | } 13 | 14 | // 生成多语言 metadata 15 | export async function generateMetadata({ params }: { params: Promise<{locale: string}> }) { 16 | const { locale } = await params; 17 | return generateLocalizedMetadata(locale); 18 | } 19 | 20 | type Props = { 21 | children: React.ReactNode; 22 | params: Promise<{locale: string}>; 23 | }; 24 | 25 | export default async function LocaleLayout({ 26 | children, 27 | params 28 | }: Props) { 29 | const { locale } = await params; 30 | 31 | // Validate that the incoming `locale` parameter is valid 32 | if (!locales.includes(locale as any)) { 33 | notFound(); 34 | } 35 | 36 | // Enable static rendering 37 | setRequestLocale(locale); 38 | 39 | let messages; 40 | try { 41 | messages = (await import(`../../messages/${locale}.json`)).default; 42 | } catch (error) { 43 | console.error(`Failed to load messages for locale ${locale}:`, error); 44 | messages = {}; // Provide an empty object as fallback 45 | } 46 | 47 | // 生成结构化数据 48 | const structuredData = generateStructuredData(locale, messages); 49 | 50 | return ( 51 | <> 52 | {/* 结构化数据 */} 53 |