Releases: g-battaglia/kerykeion
💫 V4.21 Configurable Geonames Cache Timeout
What's New
- Customizable Cache Timeout: Users can now adjust the Geonames cache expiration, with the default extended from 24 hours to 30 days.
- This reduces API calls while allowing periodic updates to the Geonames data.
Huge thanks to @tomshaffner for the idea, implementation, and effort!
💫 V4.19: Lunar Nodes (Rahu & Ketu) Support
I'm excited to announce the addition of Lunar Nodes (Rahu & Ketu) support in Kerykeion. This new feature allows you to work with both True and Mean Lunar Nodes in your astrological calculations and charts.
Available Lunar Nodes
The following Lunar Nodes are now available:
- True North Lunar Node: Simply referred to as "true_node" (without the term "north") for backward compatibility.
- True South Lunar Node: Referred to as "true_south_node."
- Mean North Lunar Node: Referred to as "mean_node" (without the term "north") for backward compatibility.
- Mean South Lunar Node: Referred to as "mean_south_node."
Default Activation
- In instances of the
AstrologicalSubject
class, all Lunar Nodes are active by default. - In instances of the classes used to generate aspects and SVG charts, only the mean nodes are active by default.
How to Activate True Nodes
To activate the true nodes in your aspects and SVG charts, you need to edit the configuration file (kr.config.json
). Here is an example of how to activate the True South Node:
{
"id": 19,
"name": "True_South_Node",
"color": "var(--kerykeion-chart-color-true-node)",
"is_active": true, // Set to true to activate the true node
"element_points": 0,
"related_zodiac_signs": [],
"label": "True_South_Node"
}
I hope this new feature enhances your astrological analysis and charting experience. As always, we appreciate your feedback and support.
Happy charting! ✨
💫 V4.17.0: New Features: Simplified Chart Language Support and Enhanced `get_settings` Function
New Features: Simplified Chart Language Support and Enhanced get_settings
Function
Chart Language Support
I have added a new feature in the charts functionality: chart_language. You can now set the language for the chart, making it more accessible and user-friendly for non-English speakers. The default language is English (EN).
Available Languages:
- EN (English)
- FR (French)
- PT (Portuguese)
- ES (Spanish)
- TR (Turkish)
- RU (Russian)
- IT (Italian)
- CN (Chinese)
- DE (German)
To set the language for your chart, simply use the [chart_language
] parameter.
Eg:
from kerykeion import AstrologicalSubject, KerykeionChartSVG
# Italian Language Chart
italian_subject = AstrologicalSubject("Sofia Loren", 1934, 9, 20, 4, 30, "Rome", "IT")
italian_chart = KerykeionChartSVG(italian_subject, chart_language="IT")
italian_chart.makeSVG()
Enhanced get_settings
Function
I have improved the get_settings
function to provide more flexibility when retrieving settings.
Now, the function signature has been updated to:
This enhancement allows you to pass a dictionary or an instance of KerykeionSettingsModel
directly to the function, providing greater flexibility and ease of use.
I hope these new features enhance your experience with the library. As always, I appreciate your feedback and support.
Happy charting! ✨
🎉 V4.16: Astrological Charts Enhanced! 🌟
I'm excited to introduce several new features to enhance your astrological chart experience!
✨ Themed Astrological Charts
You can now customize the look and feel of your astrological charts with themes! I've added four unique themes to choose from:
- Classic (default)
- Dark
- Dark High Contrast
- Light
How to Use Themes
Here's a quick example of how you can apply the "Dark" theme:
dark_theme_subject = AstrologicalSubject("John Lennon - Dark Theme", 1940, 10, 9, 18, 30, "Liverpool", "GB")
dark_theme_natal_chart = KerykeionChartSVG(dark_theme_subject, theme="dark")
dark_theme_natal_chart.makeSVG()
You can also choose not to set any theme, which makes it easier to override the default CSS variables. For more details, check out the documentation.
🌐 Minimalist Charts & Aspect Table
-
Wheel-Only Charts: I've added an option to generate a minimalist chart that only includes the wheel, stripping away any extra details.
-
Separate Aspect Table SVG: Now, you can extract the aspect table as a separate SVG file, giving you more flexibility in your analysis and presentations.
For further information, see the details.
🔄 Synastry & Transit Chart Enhancements
- Aspect Table Grid View: You can now display aspects in a grid format, providing a clearer and more organized view compared to the traditional list format.
More details on these updates can be found here.
I hope these new features make your astrological charting experience even more powerful and enjoyable. Happy charting! ✨
Release v4.14.0: Lilith Implementation
I'm excited to announce the release of version 1.2.0 of our library! This update brings significant enhancements, including the implementation of Lilith in both astrological_subject.py
and charts/kerykeion_chart_svg.py
. Below are the details of what's new and how to use these features.
What's New
Lilith Implementation
- Lilith has been added to the astrological calculations and chart rendering.
- You can now include Lilith in your astrological subjects and charts.
Backward Compatibility
- The old argument
disable_chiron
is now deprecated and replaced withdisable_chiron_and_lilith
. - A deprecation warning will be issued if
disable_chiron
is used, ensuring a smooth transition.
How to Use
In astrological_subject.py
Initialization
- The constructor now accepts
disable_chiron_and_lilith
to control the inclusion of both Chiron and Lilith. - Example:
subject = AstrologicalSubject( ..., disable_chiron_and_lilith=True )
Backward Compatibility
- If you still use
disable_chiron
, a warning will be issued, and it will be mapped todisable_chiron_and_lilith
.
In charts/kerykeion_chart_svg.py
Rendering Lilith
- Lilith is now included in the aspect list and rendered in the chart.
- To disable Lilith rendering in the chart, you should update the
kr.config.json
file:{ "id": 17, "name": "Mean_Lilith", "color": "#000", "is_active": false, "element_points": 0, "related_zodiac_signs": [], "label": "Mean_Lilith" }
Deprecation Notice
- The
disable_chiron
argument is deprecated and will be removed in a future version. Please update your code to usedisable_chiron_and_lilith
.
Conclusion
I hope these enhancements improve your experience with our library. As always, I appreciate your feedback and contributions. Please report any issues or suggestions on our GitHub Issues page.
Happy charting!
Giacomo
Full Changelog: V4.13.3...V4.14.0
New Release: Kerykeion 4.13.0
🚀 New Release: Kerykeion 4.13.0 🚀
I'm excited to announce the release of Kerykeion 4.13.0!
🌟 New Feature: Ephemeris Data Factory 🌟
I have introduced a powerful new feature that allows you to generate ephemeris data for a specified date range with ease. The EphemerisDataFactory
class provides extensive customization options to suit your astrological needs.
Key Features:
- Date Range Customization: Specify
start_datetime
andend_datetime
for generating data. - Step Type Flexibility: Choose from
days
,hours
, orminutes
for step intervals. - Location Parameters: Define latitude and longitude for precise calculations.
- Timezone Support: Set the timezone string and daylight saving time status.
- Zodiac and Houses System Options: Customize zodiac type, sidereal mode, houses system identifier, and perspective type.
- Data Limits: Configure maximum allowable days, hours, or minutes to prevent overload.
Usage Example
from datetime import datetime
from kerykeion.ephemeris_data_factory import EphemerisDataFactory
start_date = datetime.fromisoformat("2020-01-01")
end_date = datetime.fromisoformat("2050-01-03")
factory = EphemerisDataFactory(
start_datetime=start_date,
end_datetime=end_date,
step_type="hours",
step=1,
lat=37.9838,
lng=23.7275,
tz_str="Europe/Athens",
is_dst=False,
)
ephemeris_data = factory.get_ephemeris_data(as_model=True)
print(ephemeris_data[0])
print(len(ephemeris_data))
🌟 New Parameter: is_dst
in AstrologicalSubject
🌟
A new parameter, is_dst
, has been added to the AstrologicalSubject
class to enhance the handling of daylight saving time (DST).
Parameter Details:
- is_dst (Union[None, bool], optional): Specify if the time is in DST. Defaults to
None
.- By default (
None
), the library will try to guess if the time is in DST or not and raise anAmbiguousTimeError
if it can't guess. - If you know the time is in DST, set this to
True
; if you know it's not, set it toFalse
.
- By default (
🛠️ Bug Fixes
I have addressed several bugs in this release to improve the stability of the library.
🆙 Upgrade
Upgrade to Kerykeion 4.13.0 now to take advantage of these new features and improvements!
Happy coding and clear skies! 🌠
Version 4.12.0
🚀 New Release: Kerykeion 4.12.0 🚀
I'm thrilled to announce the release of Kerykeion 4.12.0!
🌟 New Feature: Perspective Type 🌟
You can now specify the perspective type for your calculations:
- Heliocentric
- True Geocentric
- Apparent Geocentric
- Topocentric
This allows for even more accurate and varied astrological analyses.
Breaking Changes
Please note that there are some breaking changes in this version:
-
Removal of Initialization from utc string
- It was redundant and created confusion. In the next major release, I'll introduce a new and cleaner way to use this kind of functionality.
-
Deprecation of
local_time
andutc_time
Fields from the AstrologicalSubject instance- The previous fields:
"local_time": 0.0, "utc_time": 5.0
- The previous fields:
-
Introduction of ISO Formatted Datetime Fields to the AstrologicalSubject instance
- Replaced with:
"iso_formatted_local_datetime": "1963-06-09T00:00:00-05:00", "iso_formatted_utc_datetime": "1963-06-09T05:00:00+00:00"
- Replaced with:
Version 4.11.0
🌟 New Feature: House Systems 🌟
We're excited to announce that Kerykeion now supports multiple House Systems! 🌠
Enhance your astrological analysis with the flexibility to choose from various house systems for more tailored and accurate readings.
Version 4.10.0
🌟 Exciting Update: Ayanamsa 🌟
I'm thrilled to announce that Kerykeion now supports not only the tropical mode but also various Ayanamsa (sidereal modes)! 🌠
Version 4
🚀 Exciting News: Version 4.0 Release! 🎉
Breaking Change Alert: Version 4.0
Version 4.0 marks a big step forward. It brings significant improvements but introduces breaking changes impacting Version 3 projects. Adapting might be needed for Version 3-based projects due to potential incompatibilities.
Coming Soon: Enhanced Documentation
Clear transition info matters. I'm enhancing documentation for Version 4.0 to aid migration, including changes, guides, and best practices.
Thank you for your support. I'm here to assist. Reach out for help.