Our great sponsors
- CodiumAI - TestGPT | Generating meaningful tests for busy devs
- ONLYOFFICE ONLYOFFICE Docs — document collaboration in your environment
- Sonar - Write Clean Python Code. Always.
- InfluxDB - Access the most powerful time series database as a service
A framework for training and evaluating AI models on a variety of openly available dialogue datasets.
I run a fairly large open source project (https://github.com/facebookresearch/ParlAI/) and we use mypy. Our experience has been that it can be quite difficult to placate, so we usually treat it only as a warning. However, having our code annotated with types in many places has significantly improved developer productivity, just from having less ambiguity with what you're dealing with.
Performant type-checking for python.
TestGPT | Generating meaningful tests for busy devs. Get non-trivial tests (and trivial, too!) suggested right inside your IDE, so you can code smart, create more value, and stay confident when you push.
Optional static typing for Python
mypy is actually compiled via mypyc, which should be a few times faster than interpreted Python https://github.com/python/mypy/tree/master/mypyc
The Algoneer Python library.
I gave a presentation on type checking at the EuroPython 2017 where I also investigated how many Python projects really use type checking, I present the results at the end (35 minutes in):
My conclusion was that only a small fraction of projects really used them, there were a lot of projects that had type checks in their code but only in "homeopathic" doses.
I started using them for some of my Python projects as well (e.g https://github.com/algoneer/algoneer) and while I find them useful I think they're not as useful as a "real" type system in a fully typed language like Golang. Still, they're very useful for discovering simple mistakes that would only show up in unit testing otherwise.
You can also "misuse" them for other purposes, at the end of the presentation I e.g. show how you can implement software contracts with them. Of course this would wreck a type checker like mypy, so don't do that in your codebase. That's probably also one of my critiques as the annotation syntax can in principle be used for anything, but mypy and other tools are not able to deal with code that does that.
Free Code Analysis
2 projects | reddit.com/r/Python | 21 Jan 2023
[D] What is some cool python magic(s) that you've learned over the years?
7 projects | reddit.com/r/Python | 29 Jul 2022
Which Python static analysis tools should I use?
2 projects | dev.to | 2 Mar 2021
Extend Python VENV: Organize Dependencies Your Way
2 projects | dev.to | 11 May 2023
The Power of Pre-Commit for Python Developers: Tips and Best Practices
3 projects | dev.to | 1 May 2023