this post was submitted on 20 May 2024
28 points (88.9% liked)
Python
6422 readers
40 users here now
Welcome to the Python community on the programming.dev Lemmy instance!
📅 Events
Past
November 2023
- PyCon Ireland 2023, 11-12th
- PyData Tel Aviv 2023 14th
October 2023
- PyConES Canarias 2023, 6-8th
- DjangoCon US 2023, 16-20th (!django 💬)
July 2023
- PyDelhi Meetup, 2nd
- PyCon Israel, 4-5th
- DFW Pythoneers, 6th
- Django Girls Abraka, 6-7th
- SciPy 2023 10-16th, Austin
- IndyPy, 11th
- Leipzig Python User Group, 11th
- Austin Python, 12th
- EuroPython 2023, 17-23rd
- Austin Python: Evening of Coding, 18th
- PyHEP.dev 2023 - "Python in HEP" Developer's Workshop, 25th
August 2023
- PyLadies Dublin, 15th
- EuroSciPy 2023, 14-18th
September 2023
- PyData Amsterdam, 14-16th
- PyCon UK, 22nd - 25th
🐍 Python project:
- Python
- Documentation
- News & Blog
- Python Planet blog aggregator
💓 Python Community:
- #python IRC for general questions
- #python-dev IRC for CPython developers
- PySlackers Slack channel
- Python Discord server
- Python Weekly newsletters
- Mailing lists
- Forum
✨ Python Ecosystem:
🌌 Fediverse
Communities
- #python on Mastodon
- c/django on programming.dev
- c/pythorhead on lemmy.dbzer0.com
Projects
- Pythörhead: a Python library for interacting with Lemmy
- Plemmy: a Python package for accessing the Lemmy API
- pylemmy pylemmy enables simple access to Lemmy's API with Python
- mastodon.py, a Python wrapper for the Mastodon API
Feeds
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Salty huh
Saying you need to set up type hinting in Python shows that you're the one assuming it's a hassle like TS, where you need a different runtime to have access to something the language (JS) should have provided from the start.
Everything you need is provided by
typing
, which is included in a Python install. Just import it and start using it.Very. Python's shit tooling has cost me literal weeks of my life. It's so bad. Have you ever used Go or Rust? If not go and try them and then you will realise that it doesn't have to be like that.
I'm not assuming. I have done this. It is absolutely a hassle. TS isn't exactly hassle free but it's still better than Python.
You mean like MyPy or Pyright? At least Typescript defines the semantics of its type hints. Python only defines the syntax! You can have multiple type checkers that conflict with each other!
If you do that, nothing will actually be checked. You need to explicitly run
pyright
in CI.Are you suggesting that you prefer to do the type validation upon execution? I'd like to have the checks done beforehand, be it in the IDE during coding or in CI. This way the feedback loop is shorter.
Then, backwards compatibility is a big thing in python, unlike node. So when typehints were introduced in 3.5 with PEP 484, they had to be optional.
It is a bit more complicated than that. Here's a quote the above-mentioned PEP (3.5 was back in 2015, we're at 3.12 now and typehints have evolved):
https://peps.python.org/pep-0484/
No. But I would like them to actually be done! If you just write some Python code and put type hints in it and don't do anything else then those types are not checked at all. It requires some set up and a third party tool to use them properly.
That quote is exactly what I was saying. It does not require any particular processing or type hints.
Type checkers can and do differ in whether they accept a particular piece of code.