Top all-time · #3527
Paul Ganssle
Personal blog · blog.ganssle.ioprogramming
Paul Ganssle's personal blog at blog.ganssle.io covers programming. Since 2018, 22 different Hacker News readers have linked it 26 times, most often “You shouldn't invoke setup.py directly”. No feed was found, so read it on the site itself.
Too few sampled comments (11) to say how often HN recommends it.?
Why HN links it
HN readers link Paul Ganssle's posts on Python datetime pitfalls, such as deprecating utcnow and naive local datetimes, and on moving away from setup.py in Python packaging.
Summarised by Claude from a sample of 11 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Most-linked posts?
- You shouldn't invoke setup.py directly6 people · 7 mentions · first linked 2021-10-19
- Stop using utcnow and utcfromtimestamp6 people · 6 mentions · first linked 2019-11-05
- Pytz: The Fastest Footgun in the West5 people · 5 mentions · first linked 2018-03-20
- /articles/2022/04/naive-local-datetimes.html2 people · 3 mentions · first linked 2022-10-09
What Hacker News says?
> If I wanted to package my Python stuff, though, I'm getting confused. Is it now setup.py or pyproject.toml? Or maybe both? What if I need to support an older Python version as seen in some old-but-still-supported Linux distributions? Your Python version is irrelevant, as long as your tools and code both run under that version. The current ecosystem standard is to move in lock-step with the Python versions that the…
Comment linking /articles/2021/10/setup-py-deprecated.html
on “PYX: The next step in Python packaging”Submitted Stop using utcnow and utcfromtimestamp as a story · 140 points
HN discussionhttps://blog.ganssle.io/articles/2019/11/utcnow.html
Comment linking /articles/2019/11/utcnow.html
on “Best Practices for Working with Configuration in Python Applications”Submitted You shouldn't invoke setup.py directly as a story · 139 points
HN discussionIt took me some effort to understand the issue here, so an alternative explanation in case it helps someone. First, the part that's independent of programming language. You may want to read about absolute time and civil time (e.g. from https://abseil.io/docs/cpp/guides/time ) but if you don't, in short: “civil time” refers to something like “2019 May 26 at 2:45 pm in New York City” (or “in the America/New_York time…
Comment linking /articles/2018/03/pytz-fastest-footgun.html
on “What the Royal Astronomical Society in 1884 Tells Us About Python Today”Submitted Subtests in Python as a story · 2 points
HN discussionAs mentioned in the article, this was a deliberate change in Python 3. If you read this article: https://blog.ganssle.io/articles/2022/04/naive-local-datetim... you will see why this actually makes quite a bit of sense, given the design constraints the authors were working with.
Comment linking /articles/2022/04/naive-local-datetimes.html
on “Stop using utcnow and utcfromtimestamp”Submitted Xfail and Code Coverage as a story · 2 points
HN discussion(2019) A follow up from April 2022: https://blog.ganssle.io/articles/2022/04/naive-local-datetim...
Comment linking /articles/2022/04/naive-local-datetimes.html
on “Stop using utcnow and utcfromtimestamp”Submitted A pseudo-TDD workflow using expected failures as a story · 2 points
HN discussionPoetry still uses setuptools! It makes it a lot easier for mortals. This is the blog post that convinced me to switch away from my old build system: https://blog.ganssle.io/articles/2021/10/setup-py-deprecated...
Comment linking /articles/2021/10/setup-py-deprecated.html
on “Why does a = a[0] = [0] create a self-referential list in Python?”Submitted Stop using utcnow and utcfromtimestamp (2019) as a story · 2 points
HN discussionWhat do you mean? You type `pip install west` and a binary will appear in `~/.local/bin/west`. This directory needs to be part of your $PATH variable. Done. Using virtual envs or pipx or poetry or whatever are non-standard. Packaging Python projects, however, ... don't get me started on the whole `setup.py`, `setup.cfg`, `pyproject.toml` debacle. This article has more information about it, but the fact that this is…
Comment linking /articles/2021/10/setup-py-deprecated.html
on “Ask HN: Why is Python package management still a dumpster fire?”Submitted Stop using utcnow and utcfromtimestamp in Python as a story · 2 points
HN discussionPaul Ganssle released a great article[1] explaining why you shouldn't use utcnow in 2019. [1] https://blog.ganssle.io/articles/2019/11/utcnow.html
Comment linking /articles/2019/11/utcnow.html
on “It's Time for a Change: Datetime.utcnow() Is Now Deprecated”Submitted Semantics of timezone-aware datetime arithmetic as a story · 1 points
HN discussionClickable footnotes: [0]: https://pypi.org/project/stringcase [1]: https://pypistats.org/packages/stringcase [2]: https://pradyunsg.me/blog/2022/12/31/wheels-are-faster-pure-... [3]: https://github.com/pypa/setuptools/issues/4910 [4]: https://github.com/zahlman/stringcase-new [5]: https://pypi.org/project/stringcase-new [6]: https://github.com/dmlls/python-casefy [7]: https://pypistats.org/packages/casefy [8]: https…
Comment linking /articles/2021/10/setup-py-deprecated.html
on “Tell HN: I forked and republished a popular, abandoned Python library”Submitted You shouldn't invoke setup.py directly as a story · 1 points
HN discussion> Isn't assigning out what all made things fast presumptive without benchmarks? We also have the benchmark of "pip now vs. pip years ago". That has to be controlled for pip version and Python version, but the former hasn't seen a lot of changes that are relevant for most cases, as far as I can tell. > This also doesn't cover subtle things. Unsure if rkyv is being used to reduce the number of times that TOML is parse…
Comment linking /articles/2021/10/setup-py-deprecated.html
on “How uv got so fast”Submitted Pytz: The Fastest Footgun in the West as a story · 1 points
HN discussionActually, naïve times are considered aware in the system time zone. There's no good way to create a `tzinfo` object that behaves like "the system time zone" and doesn't have unfortunate consequences. See this article: https://blog.ganssle.io/articles/2022/04/naive-local-datetim... It's not an ideal situation, but given path dependence I don't think it can be improved much from here.
Comment linking /articles/2022/04/naive-local-datetimes.html
on “Pytz: The Fastest Footgun in the West”Submitted Attractive Nuisances in Software Design as a story · 1 points
HN discussionSubmitted Pytz: The Fastest Footgun in the West (2018) as a story · 1 points
HN discussionSubmitted Pytz: The Fastest Footgun in the West as a story · 1 points
HN discussionSubmitted Stop Using Utcnow and Utcfromtimestamp as a story · 1 points
HN discussionSubmitted Pytz: The Fastest Footgun in the West (or why switch to dateutil in Python 3.6) as a story · 1 points
HN discussion