Reverse Geocoding of Japanese Administrative Divisions

A few months ago, I wanted to map Japanese coordinate data to administrative division levels. To achieve this, I developed a reverse geocoding tool reversejp using administrative boundary data from the Japan Meteorological Agency (JMA). The core functionality is implemented in Rust, and I packaged it as a Python library using PyO3 and Maturin. Although Japan’s land area is not very large, the JMA dataset subdivides the country into over 3,000 administrative units at its finest level. Considering Japan’s total land area, this results in extremely fine-grained coverage. ...

 · 2 min · 231 words · ringsaturn

Better Python Project Maintenance

This article introduces two major pain points in Python project maintenance and their solutions: 1) Passwordless publishing using PyPI’s Trusted Publishers with GitHub Actions, and 2) Ultra-fast dependency locking with the uv tool. It also discusses version management when depending on machine learning frameworks like PyTorch, providing specific configuration examples.

 · 4 min · 644 words · ringsaturn

What Does the Python Version Number x.y Actually Mean?

At work, we use uv to manage Python projects, which allows us to quickly install dependencies and lock sub-dependency versions. After returning from a period of leave, I routinely updated the packages on my computer and noticed that uv had a new version, so I updated it. However, after updating the uv.lock file in a project, I found that many wheels for dependencies had disappeared from the lock file. For example, here’s the configuration of the pyproject.toml file: ...

 · 3 min · 441 words · ringsaturn

Python you let me down

Personally, I’m very disappointed about the some Python community people/projects. It’s been years that PEP 3000(the year was 2006) came up, but we need to wait years until Python 3.11(the year was 2022) to get real performance improvements? Why people keep using Python and spending lots of time to add typing which doesn’t have run time check instead of rewriting codes in Go to get huge speed up while enjoying static language’s safe static type? ...

 · 2 min · 236 words · ringsaturn

Thought on Python's DataFrame

Note ...

 · 2 min · 254 words · ringsaturn

History of package tzf

Introduces the evolution of tzf, from the initial implementation in Go, to the later Python extension, and finally to the current Rust implementation with a PyO3 wrapper.

 · 4 min · 1875 words · ringsaturn