Difference between revisions of "Python"
From jWiki
Jump to navigationJump to search
(Add manylinux timeline link) |
(→Misc.) |
||
Line 62: | Line 62: | ||
== Misc. == | == Misc. == | ||
* [https://sinoroc.gitlab.io/kb/python/packaging_tools_comparisons.html Packaging tools comparisons] (note: slightly out of date in Jan 2024, but still a nice set of tables) | |||
* [https://mayeut.github.io/manylinux-timeline/ `manylinux` timeline] - visualizations of supported manylinux standards/glibc versions in PyPI packages over time | * [https://mayeut.github.io/manylinux-timeline/ `manylinux` timeline] - visualizations of supported manylinux standards/glibc versions in PyPI packages over time | ||
* [https://blog.glyph.im/2023/08/get-your-mac-python-from-python-dot-org.html "Get Your Mac Python From Python.org"] - An excellent summary of the various ways to get a Python installation. Written with MacOS in mind, but much of what it says generalizes to other platforms. | * [https://blog.glyph.im/2023/08/get-your-mac-python-from-python-dot-org.html "Get Your Mac Python From Python.org"] - An excellent summary of the various ways to get a Python installation. Written with MacOS in mind, but much of what it says generalizes to other platforms. |
Latest revision as of 00:40, 12 January 2024
🐍🐍🐍
Official documentation
- Built-in Functions
- Format Specification Mini-Language - for string formatting
- Python's formal guidance on dunders as a reserved class of identifier
- Unpacking Argument Lists
- Guide to CPython's Parser
Python Enhancement Proposals (PEPs)
Here in no particular order are some PEPs I find to be interesting reading
- PEP 1 - PEP Purpose and Guidelines (i.e. "what the heck is a PEP?")
- PEP 0 - Index of all PEPs
- PEP 8 - Style Guide for Python Code
- PEP 257 - Docstring Conventions
- PEP 602 - Annual Release Cycle for Python
- PEP 636 - Structural Pattern Matching: Tutorial
- PEP 517 - A build-system independent format for source trees - Information on the modern organization of Python packaging, namely the division of concerns between:
- integration frontends ("a tool that...attempts...to satisfy [a set of package requirements]")
- build frontends ("a tool that...builds wheels from [source trees/distributions]")
- build backends (the thing that actually does the building, at the request of the build frontend
- PEP 518 - Specifying Minimum Build System Requirements for Python Projects - i.e. _"what the heck is
pyproject.toml
?"_ - PEP 513 - A Platform Tag for Portable Linux Built Distributions - i.e. the
manylinux1
platform target (see PEP 600 for the modern tagging system)
Talks
- Machete-mode Debugging - Ned Batchelder, PyCon 2016
- Raymond Hettinger "The Mental Game of Python", PyBay2019
- Beyond PEP8 - Raymond Hettinger talking about foolish consistency
- Pandas from the Ground up - PyCon 2015
Explanations
- Why you shouldn't invoke setup.py directly
- Python Virtual Environments in Five Minutes
- Python Names and Values - a discussion of how name resolution works in Python (e.g. why Python doesn't have "variables")
- Pragmatic Unicode - a crash-course introduction to text encoding, Unicode, and some of the Python pitfalls
- Weird Python Integers
- Python's calling model is "Call By Object"
- Understanding Python Decorators in 12 Easy Steps!
- Memory Management in Python - an overview of memory management in CPython
- Memory use in CPython and MicroPython - a comparison of memory management in CPython and MicroPython, based on Kavya Joshi's PyCon 2017 talk
Interesting libraries
friendly
: replacing standard traceback by something easier to understandtenacity
: general-purpose retrying library
SciPy stack
- Python visualization landscape
- SciPy lectures
- Numpy ndarray structure under the hood
- Numpy: Array Indexing
- Numpy: Broadcasting
- see also the older "Eric's broadcasting doc"
- MATLAB to Numpy cheatsheet
Misc.
- Packaging tools comparisons (note: slightly out of date in Jan 2024, but still a nice set of tables)
manylinux
timeline - visualizations of supported manylinux standards/glibc versions in PyPI packages over time- "Get Your Mac Python From Python.org" - An excellent summary of the various ways to get a Python installation. Written with MacOS in mind, but much of what it says generalizes to other platforms.
- Ned Batchelder's sample package
- The Python Control Flow Graph - Article showing how to build a tool to visualize the CFG of a Python program
- Mailing list discussion of adding a TOML parser to the standard library - tl;dr it's still a mess,
toml
isn't maintained enough,tomlkit
does too much.tomli
seems to be the leading favorite. - Why you should use
python -m pip
- Under the hood of calling C/C++ from Python
- Python's Memory Allocator - some notes on arena allocation in CPython
- Your Guide to the CPython Source Code
- "How python implements super long integers?" - an excellent article about how CPython implements arbitrarily large integers.
- Common Python Gotchas
- Think Python
- Automate the Boring Stuff with Python
- Python's Hidden Regular Expression Gems (particularly nice because of the
Scanner
class therein) - Animating Regular Expressions With Python and Graphviz
- A Brief Look at Cpython String