the full playlist is on youtube
- introducing anthony explains!
- python cli tested with pytest - (beginner to intermediate)
- python @decorators - (intermediate)
- my favorite python str method! (beginner - intermediate)
- how to make a simple github PR (beginner)
- the python @property decorator (beginner - intermediate)
- python type(x).__name__ vs x.__class__.__name__ (intermediate)
- python return annotations: NoReturn vs None (intermediate)
- what's wrong with python's blank except:? (beginner - intermediate)
- how I use selenium + html/css to make thumbnails (intermediate)
- python: raising Error without parens (intermediate)
- python's tricky
for ...: else:
statement (beginner - intermediate) - python's
pass
statement (beginner - intermediate) - shell bling strings! (beginner - intermediate)
- setting up an ubuntu focal virtual machine (beginner - intermediate)
- python executable zipapps (intermediate)
- pretty python profiling (intermediate)
- python implicit string joining (beginner - intermediate)
- postmortem debugging in python (beginner - intermediate)
- configuration management (devops) (intermediate)
- how to pronounce PyPI (beginner)
- all python argument / parameter types (beginner - intermediate)
- what is a tty? (beginner - intermediate)
- introduction to markdown (beginner)
- how do I get started in open source? (beginner)
- a flake8 plugin from scratch (intermediate)
- finding regressions with git bisect (intermediate)
- pytest's parametrize (beginner - intermediate)
- python curses "hello world" (beginner - intermediate)
- git: empty initial commit (beginner - intermediate)
- dockerfile RUN : \ && syntax (beginner)
- python variable unpackings (beginner - intermediate)
- docker: ADD «url» considered harmful? (intermediate)
- what is a shebang (#!)? (beginner - intermediate)
- what is test driven development? (beginner - intermediate)
- python single vs double quote strings! (beginner)
- git: ignoring noisy whitespace changes (beginner - intermediate)
- git: useful trick for pushing branches (beginner - intermediate)
- python github actions w/ tox and pre-commit (intermediate)
- releasing a python package to pypi (beginner - intermediate)
- virtualenv vs. venv (beginner - intermediate)
- implementing --version with importlib.metadata (intermediate)
- string formatting in python (beginner - intermediate)
- introduction to tox (beginner - intermediate)
- python argparse tutorial (beginner - intermediate)
- typing __getitem__ (python / mypy) (intermediate)
- fixing a git mistake with reflog (intermediate)
- introduction to python typing + mypy (beginner - intermediate)
- python packaging: src layout (intermediate)
- three ways to edit git commits (intermediate)
- stdin / stdout / stderr (beginner - intermediate)
- hacker mode tmux debugging (intermediate)
- regular expressions crash course (beginner - intermediate)
- web security: what is a csrf exploit? (intermediate)
- python: functools.lru_cache (beginner - intermediate)
- python __future__ "module" (beginner - intermediate)
- undoing an accidental git commit (intermediate)
- python packaging: basic setup.py and declarative metadata (intermediate)
- what is deadsnakes? (beginner - intermediate)
- getting started with programming (beginner)
- git show (+ some tips!) (beginner)
- python star imports (beginner - intermediate)
- intro to apt (debian / ubuntu) (beginner + intermediate)
- correct conditional arguments in bash (beginner - intermediate)
- using the python __import__ builtin correctly (intermediate)
- special paths: ~, ~user, ., .. (beginner)
- protip: exiting really fast! (beginner)
- python: Ellipsis (...) and typing (beginner - intermediate)
- git cherry-pick (intermediate)
- customizing the python repl (intermediate)
- what is PATH? (beginner - intermediate)
- python packaging: data files (intermediate)
- a virtualenv from nothing! (beginner - intermediate)
- tox --devenv (beginner - intermediate)
- python packaging: optional dependencies (intermediate)
- regexes: capture groups (beginner - intermediate)
- python typing: why not self? (intermediate)
- generator basics (+typing) (beginner - intermediate)
- stop using
git add .
(beginner - intermediate) - why not global pip / virtualenv? (intermediate)
- bash hash cache! (beginner - intermediate)
- git: a checked-in directory (intermediate)
- typing: exception types (intermediate)
- why you should end a file in a newline (beginner)
- git workflow: branch name collisions (intermediate)
- sort your imports! (beginner - intermediate)
- what is the underscore (_) for? (beginner)
- python curses: color (intermediate)
- semantic versioning (beginner - intermediate)
- file modes and chmod (beginner - intermediate)
- making a regex not match itself! (intermediate)
- I run 'rm -rf /' and see what happens (beginner - intermediate)
- git fetch (--prune) (beginner - intermediate)
- top 10 new things in python3.9 (beginner - intermediate)
- testing functools.lru_cache with pytest! (beginner - intermediate)
- git: commit message pro tip (beginner - intermediate)
- typing: what is Type[X]? (intermediate)
- python debugger crash course: pdb / breakpoint (beginner - intermediate)
- why pytest.mark.usefixtures? (intermediate)
- git apply and manual stashing (intermediate) -
- intro to python namedtuples! (beginner - intermediate)
- namedtuple to json and other pitfalls (intermediate)
- how namedtuple works (advanced)
- why python -m pip? (beginner - intermediate)
- fixing NameError / TypeError in python type annotations (intermediate)
- why backslash in triple-quoted-strings """\ (intermediate)
- what's (wrong with) hacktoberfest? (beginner)
- pure python windows .exe (no compiler!) (intermediate)
- python dist-packages vs. site-packages (intermediate)
- testing optional python dependencies (intermediate)
- typing: why main() -˃ int (beginner - intermediate)
- debugging with dir() (+__dir__) (beginner - intermediate)
- python: pretty headers with str.center (beginner)
- don't put passwords in commands! (beginner - intermediate)
- python: comma, = assignment! (beginner - intermediate)
- python typing: re.match and Optional (intermediate)
- python: .sort() vs sorted(...) (beginner - intermediate)
- python typing: @property (beginner - intermediate)
- python: 4 ways to set namedtuple defaults (intermediate)