I Turned the GetBirthChart Astrology Engine Into a Python Package
A few weeks ago, I open-sourced the Python calculation engine behind GetBirthChart. The source was public, but using it still meant cloning the repository, setting up the environment, and understanding the internal package structure. That is useful if you want to inspect the code. It is less useful if you just want to use the engine. So I packaged it properly. Today, gbc-astro can be installed…
A few weeks ago, the author of GetBirthChart decided to open-source the Python calculation engine behind the website. While the source was already available, using it required setting up the environment and understanding the package structure. This made the engine less accessible for those who simply wanted to use it. To address this, the author created a properly packaged version that can be directly installed from PyPI using pip install gbc-astro.
The package remains open on GitHub, but now it functions as a Python library. The author did not want to create a separate engine, maintaining the existing calculation code used by GetBirthChart. The public package is essentially a thin interface around the same calculation code, with a basic chart creation example provided. The engine currently handles various aspects of astrology, such as planetary positions, zodiac placements, houses, Ascendant and Midheaven, aspects, retrograde states, and timezone-aware birth data.
Missing information, like unknown birth time, is handled gracefully by not silently inventing values. The package also includes an optional HTTP API layer for use with FastAPI and Uvicorn. The architecture remains simple, with the Python application using the gbc-astro library, and an optional HTTP service layer. The package version (1.12.2) may differ from the calculation engine version (1.12.1) due to packaging and distribution changes, rather than alterations to the underlying astrology calculations.
Zenodo provides an archived release with a DOI for traceability and reproducibility. This open-source effort aimed to make the engine's assumptions and architecture explicit, ensuring a clear path from the installed package back to its source code.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.