#python tag pages

Python / A primer for Python that I wrote.

I wrote this because many classmates and friends had little to no experience with Python before the MATH-340 class. Programming in Python (and in general) will make much more sense if you pay special attention to tidiness, syntax and semantics (what does things mean). In many Java and C++ classes I'd see poorly formatted code, making projects basically impossible for me to read and understand let alone the person who wrote it. But in Python we must be tidy, the syntax requires it. Python is a rare language where whitespace actually matters (every control block must be consistently indented). And lastly, because Python is a language which does not ask much of us as programmers (i.e. dynamically typed) we actually should be more careful in understanding what we're writing and how things change.

Pyright and Pylama for neovim Python development

Switching to pyright 🪨

It turned out that pylsp wasn't all that I thought it was, and I've switch to Microsoft's LSP, pyright. It's job is to do, in addition to a limited amount of linting (which I'll probably turn off), the static type-checking that I was using mypy for, except even better: finally match statement support! This left me to re-include null-ls for formatting with black and isort, and diagnostics with pylama. But there were a few problems.

Writing Python libraries

If working on a library that has some strict lower Python version, e.g. lower than 3.10, then it is a good idea to require pyright locally, to have a local poetry.toml file with the following