Python
Memray is useful python memory profiler. Minimum Viable Python is a good overview.
Ruff is nice linter.
Taichi language is interesting as it's embedded Python but with parallel code execution.
Notes
- Global interpreter lock (or GIL) is a mutex that protects access to Python objects, preventing multiple threads from executing Python bytecodes at once.
- Create separate enviornments in Conda for each program to avoid dependency issues.
- Tricks to speed up python: 1. asyncio.gather argument ordering by IO wait time (no C). 2. Shared filters in SQLAlchemy Core (no C). 3. Custom construction of Pandas DataFrame from asyncpg.Record-s (with C). 4. Iterating lists without GIL in Cython (with C). 5. Zero-copy (de)serialization data structure (no C). 6. Replacing pandas groupby with pure numpy (no C).
- "gradual typing" is often difficult to implement in established Python packages. The issue is that it runs entirely counter to the "Easier to Ask for Forgiveness than Permission" (EAFP) coding style long advocated in the Python language.
- Classic Python speed-bump: default values for function arguments are computed once, and shared for all calls. If you mutate them, the effect persists! Use None instead.
- Instead of list comprehensions, consider Python generator comprehensions (parens instead of square brackets). They use the same syntax, but are lazy. Less space, and can be less computation
Code
python
# read file line by line
with open('filename') as f:
content = f.readlines()
python
# Iterate over list
for i, _ in enumerate(nums):
..
Links
- Learn Python in Y Minutes
- Python 3 cheat sheet
- Pyre Check - Performant type-checking for python. (Article) (Web) (HN)
- Optional Static Typing for Python - Guido van Rossum (2018)
- WTF Python - Exploring and understanding Python through surprising snippets. (HN) (HN)
- My Python Development Environment, 2020 Edition (2019) (HN)
- Python 3 with pleasure
- The Hitchhiker’s Guide to Python!
- Structuring Your Python Project
- Awesome Python Features Explained Using Harry Potter
- Learn python - Playground and cheatsheet for learning Python.
- Py-Spy - Sampling profiler for Python programs.
- Profiling - Interactive continuous Python profiler.
- Pytype - Static analyzer for Python code.
- gpython - Python interpreter written in Go "batteries not included".
- RustPython - Python Interpreter written in Rust. (HN) (HN)
- Comprehensive Python Cheatsheet
- Awesome Python Security resources
- Pyright - Static type checker for the Python language. (HN)
- cpython - Python programming language source code.
- PySnooper - Never use print for debugging again.
- Python at Netflix (2019)
- Things you’re probably not using in Python 3 – but should (2019) (HN)
- Black - Uncompromising Python code formatter. (HN) (HN)
- Amber Brown: Batteries Included, But They're Leaking (HN)
- Python Cheatsheet (Code)
- PyOxidizer - Modern Python application packaging and distribution tool.
- isort - Python utility / library to sort imports.
- What's coming in Python 3.8 (HN)
- Python Handout - Turn Python scripts into handouts with Markdown and figures.
- HN: Python Is Eating the World (2019)
- Your Guide to the CPython Source Code (2019)
- 30 seconds of python - Curated collection of useful Python snippets that you can understand in 30 seconds or less.
- ptpython - Better Python REPL.
- cython - Optimising static compiler for both the Python programming language and the extended Cython programming language (based on Pyrex).
- Ask HN: How do you handle/maintain local Python environments? (2019)
- CVXPY - Python-embedded modeling language for convex optimization problems.
- Pythran - Ahead of time compiler for a subset of the Python language, with a focus on scientific computing.
- How to Python in VS Code
- Airspeed Velocity - Primarily designed to benchmark a single project over its lifetime using a given suite of benchmarks.
- New features planned for Python 4.0 satire
- Instant-feedback, instant-debugging Python coding (2019)
- HN: What’s New in Python 3.8 (2019)
- A Talk Near the Future of Python (2019)
- Pyinstrument - Call stack profiler for Python. Shows you why your code is slow.
- reloading - Python utility to reload a loop body from source on each iteration without losing state.
- Static Analysis at Scale: An Instagram Story (2019)
- Python Type Checking course
- Python Enhancement Proposals (Web)
- Cool Python features for machine learning that I used to be too afraid to use
- Python: better typed than you think (2019)
- hython - Haskell-powered Python 3 interpreter. (Article)
- Python -> Speed blog - Learn tools and techniques to help you ship better Python software, faster.
- pipx - Install and Run Python Applications in Isolated Environments.
- pyperf - Toolkit to run Python benchmarks.
- Flit - Simplified packaging of Python modules.
- Python debugger package for use with Visual Studio and Visual Studio Code
- Pyflame - Ptracing Profiler For Python.
- Classic Computer Science Problems in Python book (2019)
- PyInstaller - Freeze (package) Python programs into stand-alone executables. (Web) (HN)
- Structuring Your Project (HN)
- Pympler - Development tool to measure, monitor and analyze the memory behavior of Python objects in a running Python application.
- Poetry - Python dependency management and packaging made easy. (Web) (HN)
- SICP in Python
- The Little Book of Python Anti-Patterns (Code)
- Creator of Python Programming Language, Guido van Rossum | Oxford Union (2019)
- scalene - High-performance CPU and memory profiler for Python.
- Iterables vs. Iterators vs. Generators (2014)
- Making Python Programs Blazingly Fast (2020) (HN)
- Python built-ins worth learning (2019) (HN)
- Python Coding Guidelines for Sanity
- Human's Ultimate Guide to setup.py
- Python Guide by NSA
- Python Packaging User Guide
- Math Symbols Explained with Python (HN)
- MonkeyType - System for Python that generates static type annotations by collecting runtime types. (HN)
- CrossHair - Static analysis tool for Python that blurs the line between testing and type systems.
- Introduction to Python and Programming (2020) (HN)
- Vulture - Finds unused code in Python programs.
- Byterun - Python implementation of a Python bytecode runner.
- Clean Code Python
- cython - Most widely used Python to C compiler.
- HPy - Better API for extending Python in C. (Hello, HPy) (Web) (HN)
- Safety checks your installed dependencies for known security vulnerabilities
- The Composition Over Inheritance Principle
- Building Finite State Machines with Python Coroutines (HN)
- Awesome Python
- Distill: Why do we need Flask, Celery, and Redis? (2019) (HN)
- Building on solid ground: ensuring reproducible Docker builds for Python (2020) (Lobsters)
- Python LSP Server - Fork of the python-language-server project, maintained by the Spyder IDE team and the community.
- Python Language Server (unmaintained)
- HN: Best Practices for Working with Configuration in Python Applications (2020)
- pdb++ - Drop-in replacement for pdb.
- poetry2nix - Convert poetry projects to nix automagically.
- Ultimate Setup for Your Next Python Project (2020) (Lobsters)
- reorder_python_imports - Tool for automatically reordering python imports. Similar to isort but uses static analysis more.
- Python performance: it’s not just the interpreter (2020) (HN)
- Automating Every Aspect of Your Python Project (2020)
- Python Generated Sequence Diagrams (2020) (HN)
- GraalVM Implementation of Python
- pyp - Easily run Python at the shell! Magical, but never mysterious.
- Hypermodern Python (2020) (HN) (Lobsters)
- pyanalyze - Static analysis tool for Python.
- Full Speed Python - Book aims to teach the Python programming language using a practical approach.
- Practical Python Programming course (Code)
- Milksnake - Extension for setuptools that allows you to distribute dynamic linked libraries in Python wheels in the most portable way imaginable.
- Replacing Bash Scripting with Python
- Overview of Python Dependency Management (2020) (HN)
- Guide to Python Debugging (2020) (HN)
- Python for Lisp Programmers (2000) (HN)
- Intermediate Python book
- Using enumerated types in Python (2020) (HN)
- Subpar - Utility for creating self-contained python executables. It is designed to work well with Bazel.
- Python Wheels - New standard of Python distribution. (HN) (HN)
- Calm Code - Learn code calmly. (HN)
- How async should have been in Python (2020) (Lobsters)
- Pycopy - Minimalist and memory-efficient Python implementation. Good for desktop, cloud, constrained systems, microcontrollers, and just everything. (HN)
- Packaging without setup.py (2020)
- Async Python is not faster (2020) (HN) (Lobsters) (HN)
- Advanced pytest techniques I learned while contributing to pandas (2020) (Lobsters)
- Effective Python book (Code)
- Specific ways to write better Python (2017) (HN)
- Learning Scientific Programming with Python
- Development with Nix: Python (2020) (Lobsters)
- Picking a Language for Introductory CS - Why I don't like Python (2020)
- Clinging to memory: how Python function calls can increase your memory usage (2020)
- PEP 622 – Structural Pattern Matching (HN) (Code)
- What is the core of the Python programming language? (2020) (HN)
- NPComp - Aspirational MLIR based numpy compiler.
- Nuitka - Python compiler written in Python. (Web) (HN) (HN)
- Brython - Python 3 implementation for client-side web programming. (HN) (Code)
- Hashing it Out (2020) - A deep dive into Python dictionaries.
- An exploration of why Python doesn't require a 'main' function (2020)
- Ask HN: How do I teach intermediate Python engineering skills? (2020)
- Creating a virtual env in Python steps (2020)
- FutureCoder - Platform for beginners to learn programming in Python. (HN) (Code) (HN)
- Exactly-Once Initialization in Asynchronous Python (2020)
- Dive Into Python 3 book (Code)
- Think Python: How to Think Like a Computer Scientist
- I know Python basics, what next? (2020)
- Fluent Python (2021) (Code)
- Awesome Python Typing - Collection of awesome Python types, stubs, plugins, and tools to work with them.
- Sparking Joy with Python (2020)
- Options for packaging your Python code: Wheels, Conda, Docker, and more (2020) (HN)
- Mypy - Optional Static Typing for Python.
- Mypyc - Mypy to Python C Extension Compiler. (Lobsters)
- Developing Python with Poetry & Poetry2nix: Reproducible flexible Python environments (2020)
- Structural pattern matching for Python (2020)
- Python Language Reference
- Python Data model
- Python Documentation
- Building FunctionTrace, a graphical Python profiler (2020)
- Python 3.8 Makes me Sad Again (2020) (Lobsters) (HN)
- The Consortium for Python Data API Standards (2020) (HN)
- Write a Python to C compiler in Python (2020)
- Writing Python Extensions in Assembly (2020)
- CPython Internals Book (Code)
- A deep dive into the official Docker image for Python (2020)
- How to cheat at unit tests with pytest and Black (2020)
- Never Run ‘python’ In Your Downloads Folder (2020) (HN) (Reddit)
- Awesome Scientific Python
- Learn Python 3 with Jupyter notebooks
- Writing More Idiomatic and Pythonic Code (2020) (Lobsters)
- Package and deploy Python apps faster with Poetry and Nix (2020)
- Ultimate Python study guide
- Sync vs. Async Python: What Is the Difference? (2020) (HN)
- Nagini - Automated, modular verifier for (concurrent) Python programs, based on the Viper verification infrastructure. (Code)
- Source Code Modeling - Use Transformers and LSTMs to learn Python source code.
- Course Files for Complete Python 3 Bootcamp Course
- Awesome Python Applications - Case studies in successfully shipping Python software.
- Data-oriented Programming in Python (2020) (HN)
- Analyzing Python Code with Python (2020)
- Healthy Python Codebase (2020)
- Python Multiple Inheritance (2020)
- The Personal Python Data Science Toolkit (2020)
- Beginners Introduction to using Standard I/O (2020)
- Asynchronous Python and Databases (2015)
- What does this python package do? - Bi-weekly series, our developer advocate, Nafiul Islam, explores different Python packages both in the standard library and the community.
- PyCharm JetBrains YouTube
- How I Tried To Reduce Pylint Memory Usage (2020) (HN)
- PySDR: A Guide to SDR and DSP Using Python (HN)
- Boa - Fast Conda and Mamba Package Builder.
- NPComp - MLIR based compiler toolkit for numerical python programs.
- wemake-python-styleguide - Strictest and most opinionated python linter ever.
- codebasics learn python channel (Code)
- Python Core Developers Q&A (2020)
- Dlint - Tool for encouraging best coding practices and helping ensure Python code is secure.
- Higher Kinded Types in Python (2020)
- My Experience In Production with: Flask, Bottle, Tornado and Twisted (2020)
- FlakeHell - Flake8 wrapper to make it nice, legacy-friendly, configurable.
- Awesome Python Code Formatters
- Austin - Python frame stack sampler for CPython written in pure C.
- Pyston - Performance-oriented Python implementation built using LLVM and modern JIT techniques. (Pyston v2: 20% faster Python) (HN)
- The Magic of Python Context Managers (2020)
- Python for Everybody course
- Caching in Python Using the LRU Cache Strategy (2020)
- Annotated Algorithms in Python - With applications in Physics, Biology, and Finance.
- Composing Programs - Free online introduction to programming and computer science using Python.
- Writing Performant Parallel Python Code (2020)
- Optimizing your code is not the same as parallelizing your code (2020)
- PyPy - Interpreter that implements the Python programming language, based on the RPython compiler framework for dynamic language implementations. (PyPy: Faster Python With Minimal Effort)
- Evolution of modern python talk (2020)
- BeeWare - Write Python, run everywhere using native UIs. (Code) (HN)
- Python: The Full Monty: A Tested Semantics for the Python Programming Language
- Getting Started With Python 3 (2020)
- Python Internals Serie : Subprocess.Popen (2020)
- Run Python Applications Efficiently With malloc_trim (2020)
- wheelwright - Automated build repo for Python wheels and source packages.
- DepHell - Project management for Python.
- Minimal web server demo in Python (Tweet)
- Build a Flask microservice with OpenFaaS (2020)
- IPython for Web Devs
- Cyberbrain - Python debugging, redefined.
- mach-nix - Create highly reproducible python environments.
- The History of Python: From List Comprehensions to Generator Expressions (2010)
- blackdoc - Tool that applies black to code in documentation.
- Exhaustiveness Checking with Mypy (2020) (HN)
- Beartype - Fast O(1) runtime type-checking in pure Python. (HN)
- Python behind the scenes (2020)
- Python behind the scenes: a list of resources
- Darker - Reformat and lint modified Python code.
- Implementing Rust's dbg! in Python (2020) (Lobsters) (HN)
- line_profiler - Line-by-line profiling for Python.
- How not to be slow using Python: Functions (2020)
- Basic Python testing setup with pytest (2018)
- Legally Free Python Books List (2020)
- VizTracer - Low-overhead logging/debugging/profiling tool that can trace and visualize your python code execution.
- PyCG - Practical Python Call Graphs.
- Python at Scale: Strict Modules (2019) (HN)
- Python Patterns - Collection of design patterns/idioms in Python. (HN)
- Python Cookbook (2013) (Code)
- Practice Python Projects - Book on basic to intermediate level Python projects.
- pyastinterp - Python AST interpreter (aka tree-walking interpreter) in Python. Aka meta-circular interpreter.
- Python for Scientific Audio
- Awesome Python in Education
- Virtual Environments Demystified (2018) (HN)
- Python Standalone Builds - Self-contained, highly-portable Python distributions. (Docs) (Lobsters)
- Pyflakes - Simple program which checks Python source files for errors.
- Modern Python Environments - dependency and workspace management (2020)
- pytudes - Python programs, usually short, of considerable difficulty, to perfect particular skills by Peter Norvig.
- Implementing FastAPI Services – Abstraction and Separation of Concerns (2020) (HN)
- Tracing and visualizing the Python GIL with perf and VizTracer (2021)
- MesaPy - Memory-Safe Python Implementation based on PyPy.
- Makefile.venv - Seamlessly manage Python virtual environment with a Makefile.
- Research Software Engineering with Python Course (Code)
- OO in Python is mostly pointless (HN) (Lobsters)
- Constant Folding in Python (2021)
- You don't really need a virtualenv (2021) (HN)
- Homebrew Python Is Not For You (2021) (Lobsters) (HN)
- Pattern matching accepted for Python (2021) (HN) (Lobsters)
- 100 Page Python Intro Book (HN)
- CPython CMake Build System
- I have no name, and I must recurse (2021) (Lobsters)
- Python Concurrency: The Tricky Bits (2020) (Tweet)
- Python Programming and Numerical Methods: A Guide for Engineers and Scientists (HN)
- Why you really need to upgrade pip (2021) (Lobsters)
- 12 requests per second: A realistic look at Python web frameworks (2021) (HN)
- Conda lock - Lightweight library that can be used to generate fully reproducible lock files for conda environments.
- Interfaces and Protocols in Python (2021)
- Many models workflows in Python (2020)
- VSCode's Python Interactive mode is amazing! (2020)
- How I Beat the Berlin Rental Market With a Python Script (2021)
- Awesome asyncio
- Hypermodern Python Cookiecutter Template
- Bowler - Safe code refactoring for modern Python. (Web)
- Kuroko - Dynamic, bytecode-compiled programming language and a dialect of Python. (Code)
- IPython as a System Shell (HN)
- IPython - Productive Interactive Computing. (Docs)
- Jurigged - Hot code reloading for Python. (HN)
- Free Python Books (HN)
- Python dataclasses will save you hours (2021)
- Faster Python with Go shared objects (the easy way) (2021)
- Learn by reading code: Python standard library design decisions explained (for advanced beginners) (2021)
- Python 3 Types in the Wild: A Tale of Two Type Systems (2020) (HN)
- Sourcery - Automatically Improve Python Code Quality.
- Roadmap for mastering Python (2021)
- Awesome Flake8 Extensions
- The hidden performance overhead of Python C extensions (2021) (Lobsters)
- Cinder - Instagram's performance oriented fork of CPython. (HN) (Cinder Explorer)
- Asynchronous Tasks with FastAPI and Celery (2021)
- py2many - Python to CLike languages transpiler.
- Shrinking your Python application’s Docker image: an overview (2021)
- Tiny Python Projects Book (2020) - Learn coding and testing with puzzles and games. (Code)
- Cpython Internals - Dive into CPython internals, trying to illustrate every detail of CPython implementation.
- The guide to Python virtual environments with conda (2021)
- PyCon US 2021 Recordings (HN)
- Python in a Box - Interactive online Python REPL in 30 lines of JavaScript.
- Writing fast async HTTP requests in Python (2021) (Lobsters)
- Intuitive Python: Productive Development for Projects that Last (2021) (HN)
- Subclassing in Python: Redux (2021)
- Typeclasses in Python (2021) (Lobsters)
- Python Best Practices for a New Project in 2021 (HN)
- Coding Patterns for Python Extensions (Code)
- tryceratops - Linter to manage all your python exceptions and try/except blocks. (HN)
- Functools – The Power of Higher-Order Functions in Python (HN)
- Beating TimSort at Merging (2021) (Lobsters)
- Namedtuple in a Post-Dataclasses World (2021) (HN)
- How the Python import system works (HN)
- Epic Python - Fun exercise heavy approach to learning modern Python from scratch.
- SciPy 2021 Tutorials
- Replit.web: Python Framework With Built-in Database and Auth Support (2021) (Tweet)
- PyArmor - Tool used to obfuscate python scripts, bind obfuscated scripts to fixed machine or expire obfuscated scripts. (Web)
- The State Of Python In 2021
- Framework Patterns (2019) (HN)
- The best Docker base image for your Python application (2021) (Lobsters)
- Skybison - Instagram's experimental performance oriented greenfield implementation of Python.
- How async/await works in Python (2021) (HN)
- Fil memory profiler for Python (Web) (Docs)
- Memory analyzer for running python processes
- Darglint - Python documentation linter which checks that the docstring description matches the definition.
- Poe the Poet - Task runner that works well with poetry.
- Python Anti-Pattern (HN)
- Unravelling
Async for
Loops (2021) (HN) - Python in 2021: The Good, The Bad, and the Ugly (Lobsters)
- Objexplore - Interactive Python object explorer for the terminal.
- Python Programming Puzzles - Dataset of python programming puzzles which can be used to teach and evaluate an AI's programming proficiency.
- Debugging by starting a REPL at a breakpoint is fun (2021)
- Structural pattern matching in Python 3.10 (2021) (HN)
- SnakeViz - In-browser Python profile viewer.
- Better JIT Support for Auto-Generated Python Code (2021)
- The GIL and its effects on Python multithreading (2021) (HN)
- Yappi - Yet Another Python Profiler, but this time thread & coroutine & greenlet aware.
- Faster Python with Guido van Rossum (2021) (Lobsters) (HN)
- HN: Python 3.11: “Zero cost” exception handling (2021)
- Understanding all of Python, through its builtins (2021) (HN)
- The math behind Python's slices (2021)
- Tips for debugging with print() (2021) (Lobsters)
- The Many Ways to Exit in Python (2021)
- A Python Script Template, with and without Type Hints and Async (2021) (Extended)
- Python Multithreading without GIL (Doc) (Reddit) (Viable solution for Python concurrency) (HN)
- Violet - Python VM written in Swift. For Swift <-> Python interop. (Discussion)
- Python-Mini-Projects - Collection of simple python mini projects to enhance your Python skills.
- Magic Python - Cutting edge Python syntax highlighter for Sublime Text, Atom and Visual Studio Code. Used by GitHub to highlight your Python code.
- Lukasz Langa / Designing With Immutability (2020)
- Some thoughts on asynchronous API design in a post-async/await world (2016)
- Where does all the effort go? Looking at Python core developer activity (2021)
- Prospector - Tool to analyze Python code and output information about errors, potential problems, convention violations and complexity.
- You shouldn't invoke setup.py directly (2021) (HN)
- astor - Python AST read/write.
- pravda - Python type-checker written in Rust.
- On code isolation in Python (2020)
- Pynsights - Understanding Python programs by visualizing how modules interact.
- Bank Python: The strange world of Python, as used by big investment banks (2021) (HN) (Reddit)
- GraalVM Python - On average, Python in GraalVM is 8.92x faster than CPython. (HN)
- Mini Inch App in Python - Python asyncio backend querying with SQLAlchemy and Strawberry serving GraphQL with Starlette.
- Guide of CPython’s Parser
- Python Developer's Guide (Code)
- Bandit - Tool designed to find common security issues in Python code.
- Pyjion - Python JIT Compiler. (HN) (Code)
- Ask HN: How did Python become the lingua franca of ML/AI? (2021)
- Why Python needs to be paused during profiling - but Ruby doesn't always (2021) (HN)
- debugpy - Debugger for Python.
- Cython, Rust, and more: choosing a language for Python extensions (2021)
- What Did You Find Hardest To Learn As A Beginner In Python? (2021)
- What are the advanced concepts someone should learn to be considered as an expert in Python? (2021)
- Infinitely Nested Dictionary (2021)
- Understanding partial functions (2021)
- uncompyle6 - Cross-version Python bytecode decompiler.
- decompyle3 - Python decompiler for 3.7-3.8 Stripped down from uncompyle6 so we can refactor and start to fix up some long-standing problems.
- How Python List Works (HN)
- prometeo - Python-to-C transpiler for high-performance computing. (HN)
- Why does a = a[0] = [0] create a self-referential list in Python? (2021) (HN)
- Memory Profiler - Monitor Memory usage of Python code.
- Research Software Engineering with Python: Building software that makes research possible (2021)
- Static Duck Typing in Python with Protocols (2021) (HN)
- flake8-black - flake8 plugin to run black for checking Python coding style.
- RestrictedPython - Restricted execution environment for Python to run untrusted code.
- CPython on WASM - Build scripts and configuration for building CPython for Emscripten.
- Calling Rust from Python using PyO3 (2021) (HN)
- Late-bound argument defaults for Python (2021) (Lobsters)
- CPython's main branch running in the browser with WebAssembly (HN)
- Python's None problem, and how Mypy helps you deal with it (2021) (Lobsters)
- Hygeia - Python toolchain manager.
- Pandas Tutor - Visualize Python pandas code. (Web)
- Why your multiprocessing Pool is stuck (2021)
- Common design patterns implemented in Python
- The future of Python build systems and Gentoo (2021) (HN)
- Should You Use Upper Bound Version Constraints? (2021)
- pymemtrace - Python memory tracing.
- HTMX + Flask: Modern Python Web Apps, Hold the JavaScript
- It’s time to stop using Python 3.6 (2021) (Lobsters)
- shiv - Command line utility for building fully self-contained Python zipapps.
- Faster CPython Ideas
- Data Structures and Information Retrieval in Python (Code)
- Guide to Python's magic methods
- Comprehensive Python Cheat Sheet (HN) (HN)
- Learn Python ASTs, by building your own linter (2021) (HN)
- Scientific Computing with Python Book
- Python Launcher for Unix - Launch your Python interpreter the lazy/smart way.
- Static Typing with Python Docs (Code)
- Redowan's Reflections on Python (Code)
- Interfaces, Mixins and Building Powerful Custom Data Structures in Python (2020)
- Implementing Proxy Pattern in Python (2020)
- Deciphering Python’s Metaclasses (2020)
- Exploring Cooperative Concurrency Primitives in Python
- Python Bytecode Explained (HN)
- Python Design Patterns (Code) (HN)
- Strict Python function parameters (2022) (Lobsters)
- How vectorization speeds up your Python code (2022) (Lobsters)
- Static Typing Python Decorators (2022)
- Python Minifier - Transforms Python source code into it's most compact representation.
- Blue - Slightly less uncompromising Python code formatter.
- Speeding up Python with Rust, what works and what doesn't! (2021)
- Effective Pandas Book (Code)
- Keeping python code clean with pre-commit hooks: black, flake8 and isort (2019)
- Understanding Attributes, Dicts and Slots in Python (2022)
- Interactive Loop Optimization (Lobsters)
- List of languages that compile to python
- pylint-errors - Curated list of pylint errors with explanation and examples.
- How to write better scientific code in Python? (2022) (HN)
- When I'm Sad My Computer Sends Me Cats (2022) (Code)
- pprofile - Line-granularity, thread-aware deterministic and statistic pure-python profiler.
- Understanding Decorators in Python (2022)
- Raccoon - Language with Python 3.x syntax that is amenable to static analysis.
- CPython, C standards, and IEEE 754 (2022) (HN)
- A Gentle Introduction to Serialization for Python (2022)
- tuna - Python profile viewer.
- Sending notifications programmatically: let me count the ways (2022)
- Extreme IO performance with parallel Apache Parquet in Python (2017)
- perflint - Pylint extension for performance anti patterns.
- Processing large JSON files in Python without running out of memory (2022)
- Daily dose of Python - Advanced Python tips and tricks in easy to digest format. (Code)
- dhall-python - Dhall bindings for Python using the rust implementation.
- Running Python in WebAssembly (2022)
- Pyground - Playground for running Python using WASM on data in the browser.
- Interview with a Postdoc, Junior Python Developer in 2022
- Flake8 - Python tool that glues together pycodestyle, pyflakes, mccabe, and third-party plugins to check the style and quality of some python code.
- Python 3.11 in the Web Browser (2022) (HN)
- The counterintuitive rise of Python in scientific computing (2020) (HN) (Tweet)
- Advanced Python Programming Book (Code)
- Notes From the Meeting On Python GIL Removal Between Python Core and Sam Gross (2021)
- How to compare floats in Python (2022) (HN)
- hpython - Haskell-based language tools for Python.
- How is PyPy Tested? (2022)
- pyupgrade - Tool (and pre-commit hook) to automatically upgrade syntax for newer versions of the language.
- Cython Is 20 (2022) (HN)
- snekbox - Easy, safe evaluation of arbitrary Python code.
- Yet another Python JIT.
- Ask HN: Python Programming Books (2022)
- Best of Python Developer Tools - Ranked list of awesome python developer tools and libraries. Updated weekly.
- Faster CPython: Notes on making CPython faster (Code)
- JyNI - Enables Jython to load native CPython extensions.
- Python for Microcontrollers Newsletter
- Evrone Python Guidelines
- Memray - Memory profiler for Python. (Tweet) (HN)
- Modeling and Simulation in Python (2022)
- MicroPython in Docker Containers (2022)
- High Performance Python Princeton mini-course
- hickory - Command line tool for scheduling Python scripts.
- Why Python Data Classes Are Awesome (2022)
- When Python can’t thread: a deep-dive into the GIL’s impact (2022) (Lobsters)
- You Should Compile Your Python And Here’s Why (2022) (HN)
- Compact word vectors with Bloom embeddings (2022)
- PyScript - Run Python in your HTML. (Web) (Intro) (HN) (HN) (CLI)
- PyMC in the browser using PyScript
- Strange and odd python snippets explained
- How the Cinder JIT’s function inliner helps us optimize Instagram (2022)
- pysen - Python linting made easy.
- Modern Python Performance Considerations (2022) (HN)
- Wordle in Python using literate programming (HN)
- Spatial Environment for Python (HN)
- Managing Python Versions with Pyenv (2022) (HN)
- PyOxy Python Runner - Alternative implementation and re-imagination of the ubiquitous python command, but providing more features and control than python.
- Python Engineer Roadmap
- Why Should Async Get All The Love?: Advanced Control Flow With Threads (2022)
- OpenAI Codex Python to C++ Code Generator (HN)
- PikaScript - Ultra-lightweight Python engine that can run in 4Kb of RAM.
- Compact objects in Python
- Useful Python Decorators for Data Scientists (2022) (HN)
- Python Security (Code)
- What’s in Which Python - Summary of what features appeared in which versions of Python. (HN)
- The Python GIL: Past, Present, and Future (2022)
- What's a Python feature that is very powerful but not many people use or know about it? (2022)
- Specialist - Visualize CPython 3.11's specializing, adaptive interpreter.
- shed - Maximally opinionated autoformatting tool.
- Python Cheat Sheet
- The strange relationship between objects, functions, generators and coroutines
- Illustrating the duality of closures and objects (2022) (Lobsters)
- IPython pdb - Integration of IPython pdb.
- Python to Rust transpiler
- Introducing PyScript (summary of PyCon keynote) (2022) (HN)
- Don't let dicts spoil your code (2020) (Lobsters) (HN)
- What's New in Python 3.11? (2022) (HN)
- My Python testing style guide (Lobsters)
- Blip - Bytecode compiler for Python 3.
- Multiprocessing in Python: The Complete Guide (2022)
- rich-bench - Little Python benchmarking tool.
- EuroPython 2022 (Web Code)
- µfmt - Safe, atomic formatting with black and µsort.
- Finding performance bottlenecks in Celery tasks (2022)
- Python is Actually Portable (2021) (HN)
- Pycom - Python compiler, down to native code, using C++. (HN)
- Crimes with Python's pattern matching (2022) (HN)
- Finding performance problems: profiling or logging?
- Erg - Python compatible statically typed language.
- MVPy: Minimum Viable Python (Lobsters)
- Blackd-Client - Blazing fast Python code formatting using Black.
- You Should Be Using Python's Walrus Operator (2022) (Lobsters)
- Ruff - Extremely fast Python linter, written in Rust. (Lobsters) (HN) (Docs) (HN)
- Using Mypy in Production (HN)
- Python multi-level break and continue (HN)
- Building a Distributed Task Queue in Python (2022) (HN)
- You Can Build Portable Binaries of Python Applications (2022)
- Accelerate Python code by importing Taichi (2022) (HN)
- Functional Python, Part I: Typopædia Pythonica (2022)
- Python Type Hints are Turing Complete (2022) (HN) (Code)
- Scalpel - Python Static Analysis Framework.
- Embedded Python Interpreter for Go
- autoflake - Removes unused imports and unused variables from Python code.
- Faster CPython 3.12 Plan (HN)
- PyTA - Adventures in code analysis for teaching Python.
- Refurb - Tool for refurbishing and modernizing Python codebases.
- Making python fast for free - adventures with mypyc (2022)
- A Blueprint for Production-Ready Web Applications (2022) (Code)
- Type annotation via automated refactoring (2022)
- Python grammar for tree-sitter
- Buffers on the Edge: Python and Rust (2022) (HN)
- Python CLI Tricks That Don't Require Any Code Whatsoever (2022)
- Python 3.11.0 (2022) (HN) (Tweet)
- Better Python code grepping with pyastgrep (2022)
- Inline caches in the Skybison Python runtime (2022)
- Python Asyncio: The Complete Guide (2022) (HN)
- Trie in Python (2022) (Lobsters)
- shira - Python inspector.
- Python Type Hints: case study on parsy (2022)
- The Origins of Python (2022) (HN)
- Data-oriented Programming in Python (2022)
- What would you add to Python 4.0 (2022)
- posy - Project-oriented Python workflow manager.
- Codon - High-performance Python compiler using LLVM. (HN)
- Every modeler is supposed to be a great Python programmer (2022) (HN)
- Shed Skin - Python to C++ compiler.
- A crash course in Python “comprehensions” and “generators” (2022) (HN)
- Practical Python Programming Course
- Python Distilled Book (2021)
- Pyccel - Python extension language using accelerators.
- Boring Python: Code quality (2022) (HN)
- Signed distance functions in 46 lines of Python (2022) (HN)
- pylyzer - Fast static code analyzer & language server for Python.
- Extending Python with Rust (HN)
- Efficient Python for Data Scientists
- Minimalist Data Wrangling with Python (Code)
- s-Python - Complete solution for Python-in-browser.
- Infinite AI Array (2023) (Code) (HN)
- Lazy Evaluation Using Recursive Python Generators (2023)
- Level Up Your Python - Course over intermediate Python. (Code)
- Mapping Python to LLVM (2023) (HN)
- Making the Global Interpreter Lock Optional in CPython
- Why Polars uses less memory than Pandas (2023) (Lobsters)
- Skulpt - JavaScript implementation of Python.
- Ruff LSP - Language Server Protocol implementation for Ruff.
- Notes on ruff (2023)
- Ask HN: Which book would you recommend for learning Python in detail? (2023)
- WebAssembly: Adding Python support to WASM language runtimes (2023) (HN)
- Python's “disappointing” superpowers (2023) (HN) (Lobsters)
- How I added C-style for-loops to Python (2022) (HN)
- PocketPy - Lightweight Python interpreter for game engines. (HN)
- A Heisenbug lurking in async Python (2023) (HN)
- Google Python Style Guide (HN)
- Ask HN: How do you become a better Python developer? (2023)
- Dis This - Online Python Disassembler. (Code)
- Awesome Python Features Explained Using the World of Magic
- Even the Pylint codebase uses Ruff
- davinci-functions - Library to ask OpenAI GPT-3 for generating objects on the Python runtime.
- Using SymPy in Python doctests (2023)
- Overhead of Python Asyncio tasks (2023)
- PEP 709 – Inlined comprehensions (2023) (Lobsters)
- How virtual environments work (2023) (Lobsters) (HN)
- 30 Days Of Python
- ViperGPT: Visual Inference via Python Execution for Reasoning (2023) (Code) (HN)
- Speeding up text processing in Python (is hard) (2023)
- Making Python faster with Rust (2023) (HN)
- Learn Python Generators (2023)
- Learn Python Decorators (2023)
- Learn Python Context Managers (2023)
- The different uses of Python type hints (2023) (Lobsters)
- Aura - Python source code auditing and static analysis on a large scale. (HN)
- Astral - Next-gen Python tooling. (HN)
- Improving messages and types in GDB’s Python API (2023)
- Pythoneers here, what are some of the best python tricks you guys use when programming with python (2023)
- Debugging a Mixed Python and C Language Stack (2023) (HN)
- Goodbye to Flake8 and PyLint: faster linting with Ruff (2023) (Lobsters)
- Faster CPython at PyCon, part one (2023) (HN)
- Microsoft Python Discord
- The Python Family of Languages (Lobsters)
- PyStack - Print the stack trace of a running Python process, or of a Python core dump.
- Writing Python like it’s Rust (2023) (Lobsters) (HN)
- RustPython parser as a library
- Logicboard - In-browser code editor with code replay and REPL. (HN)
- Amazing Python Scripts
- Porting Python projects to Rust (2023)
- PEP 695 – Type Parameter Syntax (2022)
- PyVideo.org (Data)
- Proposing a struct syntax for Python (2023)
- Python on WebAssembly
- symbex: search Python code for functions and classes, then pipe them into a LLM (2023)
- pyastgrep - Grep Python Abstract Syntax Trees (AST) using XPath.
- Compiling typed Python (2023) (Lobsters) (HN)
- Miniforge - Minimal installer for Conda specific to conda-forge.
- What is "the right way" to install Python on mac? (2023)
- FunctionTrace - Graphical Python Profiler. (HN)
- Advanced Python Mastery (HN)
- symbex - Find the Python code for specified symbols.
- Ask HN: How can I get better at writing production-level Python? (2023)
- Running Untrusted Python Code (2023) (Lobsters)
- LPython: Novel, Fast, Retargetable Python Compiler (2023)
- Is anyone using PyPy for real work? (2023)
- What's up, Python? The GIL removed, a new compiler, optparse deprecated (2023) (HN)
- Untrusted Python - Run untrusted python code on the server.
- Not-so-casual Performance Optimization in Python (2023)
- Memory Management & Reference Counting Internals of Python (2023)
- GIL removal and the Faster CPython project (2023) (HN)
- Algorithmic ideas, engineering tricks, and trivia behind CPython's new sorting algorithm (2023)
- Immortalization in Python 3.12: A Dive into Python Internals (2023)
- Python DDD Example and Techniques
- Python Type Hints – args and kwargs (2021) (HN)
- Flojoy Studio - Desktop visual scripting IDE for running Python scripts.
- Ask HN: Why did Python win? (2023)
- Comfy with Python basic tooling, now what? (2023)
- Visualizing the CPython Release Process (2023)