切换的魔法 - greenlet

本文所使用的 greenlet 为 0.4.14, commit sha f946722143a9bd65764204202fe0c39fbb526d15 Introduction of greenlet 首先来体验一下 greenlet 的执行流程 from greenlet import greenlet def test1(): print(12) gr2.switch() print( »

XDG 基本目录规范

Abstract XDG Base Directory Specification(XDG 基本目录规范) 对应用程序的文件存储路径给出了一个明确的定义。目前有许多应用都支持 XDG Base Directory Specification,比如 pip,Laravel。具体可以参考 XDG Base Directory support Basics XDG 基本目录规范包含以下概念: XDG_DATA_ »

Docker build cache

首先镜像是分层的,通常来说 Dockerfile 中每一条指令都会构建出一个新的镜像层。但是 Docker 存在 cache 机制,当新的镜像层和已有的镜像重复时,它会直接复用已有的那层镜像。以下面前端项目的 Dockerfile 来说 FROM node:9.2-stretch WORKDIR /app ADD package*.json /tmp/ RUN cd »

毕业

对于一个直到毕业时才发现学校里还有天鹅的人来说,四年究竟意味着什么呢 想了想,发现这个问题真的难以回答。四年来没有发生过什么印象深刻的事情,大部分的时间都是和这台笔记本一起度过的 但是我依旧怀念这四年,每一天都是我生命中不可或缺的一部分 还有很多想要记录的东西,但转念一想还是算了吧 2018/06/23 凌晨 上海 »

手工实现 Docker

本文中的代码建议找一台废弃的 vps 中运行 Image 传统上 Linux 内核启动时会首先挂载一个 read-only 的 rootfs,当系统检测其完整性后再决定是否将其切换为 read-write 模式,或者最后在 rootfs 之上挂载另一种文件系统并忽略 rootfs。而在 Docker 中,当 daemon 挂载了 read-only 的 rootfs »

你好,类型

简单地列一下最近在个人项目中使用 mypy 的一些体会,import cycles 这种常见的问题就不再多提了。另外本文所使用的 mypy 版本为 0.600。因为版本变动比较大,可能有些问题以后并不会复现 艰难的选择 def set_non_blocking(fd: int) -> None: flags = fcntl.fcntl( »

PEP 567 Context Variables

contextvars 于 Python 3.7 纳入标准库,之前的版本可以使用 backport,但是不支持 asyncio。为什么这么说呢,看下文你就明白了 应用场景如下 Context managers like decimal contexts and numpy.errstate. Request-related data, such as security »