Skip to content

Latest commit

 

History

History
96 lines (53 loc) · 2.89 KB

references.md

File metadata and controls

96 lines (53 loc) · 2.89 KB

References

Mypy http://mypy-lang.org/ is the reference implementation for type hint checking. Remember, type hints have no influence at all on runtime.

Pytype: https://github.com/google/pytype Pyright: https://github.com/microsoft/pyright Pyre: https://pyre-check.org/

Debuggers

Most Python devs use an IDE like PyCharm or VSCode. Entry points for debugging are easy to set up. If you use those or any other tool, you still want to be able to load code into pdb or one of its variants:

  • pdb is the standard debugger for Python. It's part of the PSL. You want to be familiar with basic workings of this tool. But like the default Python repl, it is awkward. Use ipdb instead which uses iPython.

  • ipdb https://github.com/gotcha/ipdb lets you access ipython features. It is generally a better experience than using pdb directly.

  • pudb is a curses based debugger and might be more friendly but won't always work as reliably as ipdb. https://github.com/inducer/pudb

Repls

iPython http://ipython.org/ is the standard repl in practice for Python.

Notebooks: jupyter https://jupyter.org/ is a web application wrapper around iPython. Jupyter notebooks have revolutionised Python development by allowing much easier sharing of programming knowledge, saving your code experiments in an easier to access form and especially scientific and numerical applications.

Functional Programming

Design Patterns in Python

Software complexity

https://www.goodreads.com/book/show/39996759-a-philosophy-of-software-design

References

Brandon Rhodes' guide to design patterns

https://refactoring.guru/design-patterns/factory-method/python/

https://realpython.com/inheritance-composition-python/#what-are-inheritance-and-composition

https://stackoverflow.com/questions/26027694/correct-style-for-python-functions-that-mutate-the-argument

https://en.wikipedia.org/wiki/Fluent_interface

https://en.wikipedia.org/wiki/Method_chaining

https://en.wikipedia.org/wiki/Method_cascading

https://mail.python.org/pipermail/python-dev/2003-October/038855.html

https://stackoverflow.com/questions/4114167/checking-if-a-number-is-a-prime-number-in-python

https://www.pythonkitchen.com/legally-free-python-books-list/

https://www.oreilly.com/programming/free/files/functional-programming-python.pdf

https://www.oreilly.com/programming/free/files/how-to-make-mistakes-in-python.pdf

https://opensource.com/article/20/5/duck-typing-python

https://treyhunner.com/2019/03/abusing-and-overusing-list-comprehensions-in-python/

Bad prime number detection

https://linuxconfig.org/function-to-check-for-a-prime-number-with-python

https://towardsdatascience.com/simplify-your-python-code-automating-code-complexity-analysis-with-wily-5c1e90c9a485

https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.94.6535&rep=rep1&type=pdf

https://en.wikipedia.org/wiki/No_Silver_Bullet

https://en.wikipedia.org/wiki/SOLID