Name | natal JSON |
Version |
0.7.6
JSON |
| download |
home_page | https://github.com/hoishing/natal |
Summary | create Natal Chart with ease |
upload_time | 2024-11-13 17:47:55 |
maintainer | None |
docs_url | None |
author | Kelvin Ng |
requires_python | <4.0,>=3.12 |
license | MIT |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Natal
[![ci-badge]][ci-url] [![pypi-badge]][pypi-url] [![MIT-badge]][MIT-url] [![black-badge]][black-url]
> create Natal Chart with ease
## Features
- SVG natal chart generation in pure python
- composite chart (transit/synastry/sun return ... etc) generation
- highly configurable
- all planets, asteroids, vertices can be enabled / disabled
- orbs for each aspect
- light, dark, or mono theme
- light / dark theme color definitions
- chart stroke, opacity, font, spacing between planets ...etc
- high precision astrological data with [Swiss Ephemeris]
- timezone, latitude and longitude database from [GeoNames]
- auto aware of daylight saving for a given time and location
- natal chart data statistics
- element, quality, and polarity counts
- planets in each houses
- quadrant and hemisphere distribution
- aspect pair counts
- composite chart aspects
- aspects cross reference table
- generate report in markdown or html
- thoroughly tested with `pytest`
## Sample Charts
- default dark theme
<img src="https://bit.ly/4eufbuW" width=600/>
- default light theme
<img src="https://bit.ly/3MT86Zl" width=600/>
- mono theme
<img src="https://bit.ly/3ZygoNw" width=600/>
[Swiss Ephemeris]: https://www.astro.com/swisseph/swephinfo_e.htm
[GeoNames]: https://www.geonames.org
## Quick Start
- installation
`pip install natal`
- generate a chart
```python
from natal import Data, Chart
# create chart data object
mimi = Data(
name = "MiMi",
city = "Taipei",
dt = "1980-04-20 14:30"
)
# return natal chart in SVG string
Chart(mimi, width=600).svg
# create transit data object
current = Data(
name = "Current",
city = "Taipei",
dt = datetime.now()
)
# create a transit chart
transit_chart = Chart(
data1=mimi,
data2=current,
width=600
)
# view the composite chart in jupyter notebook
from IPython.display import HTML
HTML(transit_chart.svg)
```
following SVG chart will be produced:
<img src="https://bit.ly/3MX7H8e" width=600/>
## Data Object
```python
## -- retrieve natal chart properties -- ##
mimi.planets # list[Planet]
mimi.houses # list[House]
mimi.extras # list[Extra]
mimi.vertices # list[Vertex]
mimi.signs # list[Sign]
mimi.aspects # list[Aspect]
mimi.quadrants # list[list[Aspectable]]
# Planet object
sun = mimi.planets[0]
sun.degree # 30.33039116987769
sun.normalized_degree # 230.62043431588035 # degree relative to Asc
sun.color # fire
sun.speed # 0.9761994105153413
sun.retro # False
sun.dms # 00°19'
sun.signed_dms # 00°♉19'
sun.signed_deg # 0
sun.sign.name # taurus
sun.sign.symbol # ♉
sun.sign.value # 2
sun.sign.color # earth
sun.sign.ruler # venus
sun.sign.classic_ruler # venus
sun.sign.element # earth
sun.sign.quality # fixed
sun.sign.polarity # negative
# Aspect object
aspect = mimi.aspects[0]
aspect.body1 # sun Planet obj
aspect.body2 # mars Planet obj
aspect.aspect_member # AspectMember(name='trine', symbol='△', value=120, color='air')
aspect.applying # False
aspect.orb # 3.3424
```
## Stats
- statistics of Data object in tabular form
```python
from natal import Data, Stats
mimi = Data(
name = "MiMi",
city = "Taipei",
dt = "1980-04-20 14:30"
)
transit = Data(
name = "Transit",
city = "Taipei",
dt = "2024-10-10 12:00"
)
stats = Stats(data1=mimi, data2=transit)
print(stats.full_report(kind="markdown"))
```
- following markdown report will be produced:
```markdown
# Element Distribution (MiMi)
| element | count | bodies |
|-----------|---------|----------------------------------------------|
| earth | 4 | sun ♉, jupiter ♍, saturn ♍, asc ♍ |
| water | 2 | moon ♋, uranus ♏ |
| fire | 4 | mercury ♈, mars ♌, neptune ♐, asc_node ♌ |
| air | 3 | venus ♊, pluto ♎, mc ♊ |
# Quality Distribution (MiMi)
| quality | count | bodies |
|-----------|---------|------------------------------------------------------------|
| fixed | 4 | sun ♉, mars ♌, uranus ♏, asc_node ♌ |
| cardinal | 3 | moon ♋, mercury ♈, pluto ♎ |
| mutable | 6 | venus ♊, jupiter ♍, saturn ♍, neptune ♐, asc ♍, mc ♊ |
# Polarity Distribution (MiMi)
| polarity | count | bodies |
|------------|---------|-------------------------------------------------------------------------|
| negative | 6 | sun ♉, moon ♋, jupiter ♍, saturn ♍, uranus ♏, asc ♍ |
| positive | 7 | mercury ♈, venus ♊, mars ♌, neptune ♐, pluto ♎, asc_node ♌, mc ♊ |
# Celestial Bodies (MiMi)
| body | sign | house |
|----------|-----------|---------|
| sun | 00°♉19' | 8 |
| moon | 08°♋29' | 10 |
| mercury | 08°♈28' | 8 |
| venus | 15°♊12' | 10 |
| mars | 26°♌59' | 12 |
| jupiter | 00°♍17'℞ | 12 |
| saturn | 21°♍03'℞ | 1 |
| uranus | 24°♏31'℞ | 3 |
| neptune | 22°♐29'℞ | 4 |
| pluto | 20°♎06'℞ | 2 |
| asc_node | 26°♌03'℞ | 12 |
| asc | 09°♍42' | 1 |
| mc | 09°♊13' | 10 |
# Houses (MiMi)
| house | sign | ruler | ruler sign | ruler house |
|---------|----------|---------|--------------|---------------|
| 1 | 09°♍41' | mercury | ♈ | 8 |
| 2 | 07°♎13' | venus | ♊ | 10 |
| 3 | 07°♏38' | pluto | ♎ | 2 |
| 4 | 09°♐13' | jupiter | ♍ | 12 |
| 5 | 10°♑25' | saturn | ♍ | 1 |
| 6 | 10°♒44' | uranus | ♏ | 3 |
| 7 | 09°♓41' | neptune | ♐ | 4 |
| 8 | 07°♈13' | mars | ♌ | 12 |
| 9 | 07°♉38' | venus | ♊ | 10 |
| 10 | 09°♊13' | mercury | ♈ | 8 |
| 11 | 10°♋25' | moon | ♋ | 10 |
| 12 | 10°♌44' | sun | ♉ | 8 |
# Quadrants (MiMi)
| quadrant | count | bodies |
|------------|---------|--------------------------------------|
| 1st ◵ | 3 | saturn, uranus, pluto |
| 2nd ◶ | 1 | neptune |
| 3rd ◷ | 2 | sun, mercury |
| 4th ◴ | 5 | moon, venus, mars, jupiter, asc_node |
# Hemispheres (MiMi)
| hemisphere | count | bodies |
|--------------|---------|-------------------------------------------------------------|
| ← | 8 | saturn, uranus, pluto, moon, venus, mars, jupiter, asc_node |
| → | 3 | neptune, sun, mercury |
| ↑ | 7 | sun, mercury, moon, venus, mars, jupiter, asc_node |
| ↓ | 4 | saturn, uranus, pluto, neptune |
# Celestial Bodies of Transit in MiMi's chart
| Transit | sign | house |
|-----------|-----------|---------|
| sun | 17°♎20' | 2 |
| moon | 09°♑49' | 4 |
| mercury | 24°♎04' | 2 |
| venus | 20°♏44' | 3 |
| mars | 19°♋29' | 11 |
| jupiter | 21°♊20'℞ | 10 |
| saturn | 13°♓47'℞ | 7 |
| uranus | 26°♉39'℞ | 9 |
| neptune | 27°♓59'℞ | 7 |
| pluto | 29°♑38'℞ | 5 |
| asc_node | 05°♈52'℞ | 7 |
| asc | 08°♑29' | 4 |
| mc | 22°♎28' | 2 |
# Aspects of Transit vs MiMi
| Transit | aspect | MiMi | phase | orb |
|-----------|----------|----------|---------|--------|
| sun | △ | venus | ← → | 2° 08' |
| sun | ☌ | pluto | → ← | 2° 46' |
| moon | ☍ | moon | → ← | 1° 20' |
| moon | □ | mercury | ← → | 1° 21' |
| moon | △ | asc | ← → | 0° 07' |
| mercury | ⚹ | mars | → ← | 2° 55' |
| mercury | ⚹ | neptune | ← → | 1° 35' |
| mercury | ☌ | pluto | ← → | 3° 58' |
| mercury | ⚹ | asc_node | → ← | 1° 59' |
| venus | ⚹ | saturn | → ← | 0° 19' |
| venus | ☌ | uranus | → ← | 3° 47' |
| venus | □ | asc_node | → ← | 5° 19' |
| mars | ⚹ | saturn | → ← | 1° 34' |
| mars | △ | uranus | → ← | 5° 02' |
| mars | □ | pluto | → ← | 0° 38' |
| jupiter | ☌ | venus | → ← | 6° 08' |
| jupiter | □ | saturn | ← → | 0° 17' |
| jupiter | ☍ | neptune | → ← | 1° 09' |
| jupiter | △ | pluto | ← → | 1° 13' |
| jupiter | ⚹ | asc_node | → ← | 4° 43' |
| saturn | △ | moon | → ← | 5° 18' |
| saturn | □ | venus | ← → | 1° 25' |
| saturn | ☍ | asc | → ← | 4° 05' |
| saturn | □ | mc | → ← | 4° 34' |
| uranus | □ | mars | ← → | 0° 20' |
| uranus | □ | jupiter | ← → | 3° 38' |
| uranus | △ | saturn | ← → | 5° 36' |
| uranus | ☍ | uranus | ← → | 2° 08' |
| uranus | □ | asc_node | ← → | 0° 36' |
| neptune | △ | uranus | ← → | 3° 28' |
| neptune | □ | neptune | → ← | 5° 31' |
| pluto | □ | sun | ← → | 0° 41' |
| asc_node | □ | moon | ← → | 2° 36' |
| asc_node | ☌ | mercury | ← → | 2° 35' |
| asc_node | ⚹ | mc | ← → | 3° 20' |
| asc | ☍ | moon | → ← | 0° 01' |
| asc | □ | mercury | → ← | 0° 02' |
| asc | △ | asc | → ← | 1° 13' |
| mc | ⚹ | mars | ← → | 4° 31' |
| mc | ⚹ | neptune | → ← | 0° 01' |
| mc | ☌ | pluto | ← → | 2° 22' |
| mc | ⚹ | asc_node | → ← | 3° 35' |
# Aspect Cross Reference of Transit(cols) vs MiMi(rows)
| | ☉ | ☽ | ☿ | ♀ | ♂ | ♃ | ♄ | ♅ | ♆ | ♇ | ☊ | Asc | MC | Total |
|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-------|------|---------|
| ☉ | | | | | | | | | | □ | | | | 1 |
| ☽ | | ☍ | | | | | △ | | | | □ | ☍ | | 4 |
| ☿ | | □ | | | | | | | | | ☌ | □ | | 3 |
| ♀ | △ | | | | | ☌ | □ | | | | | | | 3 |
| ♂ | | | ⚹ | | | | | □ | | | | | ⚹ | 3 |
| ♃ | | | | | | | | □ | | | | | | 1 |
| ♄ | | | | ⚹ | ⚹ | □ | | △ | | | | | | 4 |
| ♅ | | | | ☌ | △ | | | ☍ | △ | | | | | 4 |
| ♆ | | | ⚹ | | | ☍ | | | □ | | | | ⚹ | 4 |
| ♇ | ☌ | | ☌ | | □ | △ | | | | | | | ☌ | 5 |
| ☊ | | | ⚹ | □ | | ⚹ | | □ | | | | | ⚹ | 5 |
| Asc | | △ | | | | | ☍ | | | | | △ | | 3 |
| MC | | | | | | | □ | | | | ⚹ | | | 2 |
```
- see [demo.ipynb] for the HTML output
## Configuration
- create a `Config` object and assign it to `Data` object
- it will override the default settings in `config.py`
- a sample config as follow:
```py
from natal.config import Display, Config, Orb
# adjust which celestial bodies to display
display = Display(
mc = False,
asc_node = False,
chiron = True
)
# adjust orbs for each aspect
orb = Orb(
conjunction = 8,
opposition = 8,
trine = 6,
square = 6,
sextile = 6
)
# the complete config object
config = Config(
theme_type = "light", # or "dark", "mono"
display = display,
orb = orb
)
# create data object with the config
data = Data(
name = "MiMi",
city = "Taipei",
dt = "1980-04-20 14:30",
config = config,
)
```
read the [docs] for complete references
[docs]: https://hoishing.github.io/natal
## Tech Stack
- [tagit] for creating and manipulating SVG
- [pyswisseph] python extension to the Swiss Ephemeris
- [mkdocs-material] for docs site generation
[black-badge]: https://img.shields.io/badge/code%20style-black-000000.svg
[black-url]: https://github.com/psf/black
[ci-badge]: https://github.com/hoishing/natal/actions/workflows/ci.yml/badge.svg
[ci-url]: https://github.com/hoishing/natal/actions/workflows/ci.yml
[demo.ipynb]: https://github.com/hoishing/natal/blob/main/demo.ipynb
[MIT-badge]: https://img.shields.io/github/license/hoishing/natal
[MIT-url]: https://opensource.org/licenses/MIT
[mkdocs-material]: https://github.com/squidfunk/mkdocs-material
[tagit]: https://github.com/hoishing/tagit
[pypi-badge]: https://img.shields.io/pypi/v/natal
[pypi-url]: https://pypi.org/project/natal
[pyswisseph]: https://github.com/astrorigin/pyswisseph
Raw data
{
"_id": null,
"home_page": "https://github.com/hoishing/natal",
"name": "natal",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.12",
"maintainer_email": null,
"keywords": null,
"author": "Kelvin Ng",
"author_email": "hoishing@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/1d/1b/480ba05ffefbb0d410654f51d0272588745cf012ea2b85af871fcbdd81d7/natal-0.7.6.tar.gz",
"platform": null,
"description": "# Natal\n\n[![ci-badge]][ci-url] [![pypi-badge]][pypi-url] [![MIT-badge]][MIT-url] [![black-badge]][black-url]\n\n> create Natal Chart with ease\n\n## Features\n\n- SVG natal chart generation in pure python\n- composite chart (transit/synastry/sun return ... etc) generation\n- highly configurable\n - all planets, asteroids, vertices can be enabled / disabled\n - orbs for each aspect\n - light, dark, or mono theme\n - light / dark theme color definitions\n - chart stroke, opacity, font, spacing between planets ...etc\n- high precision astrological data with [Swiss Ephemeris]\n- timezone, latitude and longitude database from [GeoNames]\n - auto aware of daylight saving for a given time and location\n- natal chart data statistics\n - element, quality, and polarity counts\n - planets in each houses\n - quadrant and hemisphere distribution\n - aspect pair counts\n - composite chart aspects\n - aspects cross reference table\n - generate report in markdown or html\n- thoroughly tested with `pytest`\n\n## Sample Charts\n\n- default dark theme\n\n<img src=\"https://bit.ly/4eufbuW\" width=600/>\n\n- default light theme\n\n<img src=\"https://bit.ly/3MT86Zl\" width=600/>\n\n- mono theme\n\n<img src=\"https://bit.ly/3ZygoNw\" width=600/>\n\n[Swiss Ephemeris]: https://www.astro.com/swisseph/swephinfo_e.htm\n[GeoNames]: https://www.geonames.org\n\n## Quick Start\n\n- installation\n\n`pip install natal`\n\n- generate a chart\n\n```python\nfrom natal import Data, Chart\n\n# create chart data object\nmimi = Data(\n name = \"MiMi\",\n city = \"Taipei\",\n dt = \"1980-04-20 14:30\"\n)\n\n# return natal chart in SVG string\nChart(mimi, width=600).svg\n\n# create transit data object\ncurrent = Data(\n name = \"Current\",\n city = \"Taipei\",\n dt = datetime.now()\n)\n\n# create a transit chart\ntransit_chart = Chart(\n data1=mimi, \n data2=current, \n width=600\n)\n\n# view the composite chart in jupyter notebook\nfrom IPython.display import HTML\n\nHTML(transit_chart.svg)\n```\n\nfollowing SVG chart will be produced:\n\n<img src=\"https://bit.ly/3MX7H8e\" width=600/>\n\n## Data Object\n\n```python\n## -- retrieve natal chart properties -- ##\n\nmimi.planets # list[Planet]\nmimi.houses # list[House]\nmimi.extras # list[Extra]\nmimi.vertices # list[Vertex]\nmimi.signs # list[Sign]\nmimi.aspects # list[Aspect]\nmimi.quadrants # list[list[Aspectable]]\n\n# Planet object \nsun = mimi.planets[0]\n\nsun.degree # 30.33039116987769\nsun.normalized_degree # 230.62043431588035 # degree relative to Asc\nsun.color # fire\nsun.speed # 0.9761994105153413\nsun.retro # False\nsun.dms # 00\u00b019'\nsun.signed_dms # 00\u00b0\u264919'\nsun.signed_deg # 0\nsun.sign.name # taurus\nsun.sign.symbol # \u2649\nsun.sign.value # 2\nsun.sign.color # earth\nsun.sign.ruler # venus\nsun.sign.classic_ruler # venus\nsun.sign.element # earth\nsun.sign.quality # fixed\nsun.sign.polarity # negative\n\n# Aspect object\naspect = mimi.aspects[0]\n\naspect.body1 # sun Planet obj \naspect.body2 # mars Planet obj\naspect.aspect_member # AspectMember(name='trine', symbol='\u25b3', value=120, color='air')\naspect.applying # False\naspect.orb # 3.3424\n```\n\n## Stats\n\n- statistics of Data object in tabular form\n\n```python\nfrom natal import Data, Stats\n\nmimi = Data(\n name = \"MiMi\",\n city = \"Taipei\",\n dt = \"1980-04-20 14:30\"\n)\n\ntransit = Data(\n name = \"Transit\",\n city = \"Taipei\",\n dt = \"2024-10-10 12:00\"\n)\n\nstats = Stats(data1=mimi, data2=transit)\n\nprint(stats.full_report(kind=\"markdown\"))\n```\n\n- following markdown report will be produced:\n\n```markdown\n# Element Distribution (MiMi)\n\n| element | count | bodies |\n|-----------|---------|----------------------------------------------|\n| earth | 4 | sun \u2649, jupiter \u264d, saturn \u264d, asc \u264d |\n| water | 2 | moon \u264b, uranus \u264f |\n| fire | 4 | mercury \u2648, mars \u264c, neptune \u2650, asc_node \u264c |\n| air | 3 | venus \u264a, pluto \u264e, mc \u264a |\n\n\n# Quality Distribution (MiMi)\n\n| quality | count | bodies |\n|-----------|---------|------------------------------------------------------------|\n| fixed | 4 | sun \u2649, mars \u264c, uranus \u264f, asc_node \u264c |\n| cardinal | 3 | moon \u264b, mercury \u2648, pluto \u264e |\n| mutable | 6 | venus \u264a, jupiter \u264d, saturn \u264d, neptune \u2650, asc \u264d, mc \u264a |\n\n\n# Polarity Distribution (MiMi)\n\n| polarity | count | bodies |\n|------------|---------|-------------------------------------------------------------------------|\n| negative | 6 | sun \u2649, moon \u264b, jupiter \u264d, saturn \u264d, uranus \u264f, asc \u264d |\n| positive | 7 | mercury \u2648, venus \u264a, mars \u264c, neptune \u2650, pluto \u264e, asc_node \u264c, mc \u264a |\n\n\n# Celestial Bodies (MiMi)\n\n| body | sign | house |\n|----------|-----------|---------|\n| sun | 00\u00b0\u264919' | 8 |\n| moon | 08\u00b0\u264b29' | 10 |\n| mercury | 08\u00b0\u264828' | 8 |\n| venus | 15\u00b0\u264a12' | 10 |\n| mars | 26\u00b0\u264c59' | 12 |\n| jupiter | 00\u00b0\u264d17'\u211e | 12 |\n| saturn | 21\u00b0\u264d03'\u211e | 1 |\n| uranus | 24\u00b0\u264f31'\u211e | 3 |\n| neptune | 22\u00b0\u265029'\u211e | 4 |\n| pluto | 20\u00b0\u264e06'\u211e | 2 |\n| asc_node | 26\u00b0\u264c03'\u211e | 12 |\n| asc | 09\u00b0\u264d42' | 1 |\n| mc | 09\u00b0\u264a13' | 10 |\n\n\n# Houses (MiMi)\n\n| house | sign | ruler | ruler sign | ruler house |\n|---------|----------|---------|--------------|---------------|\n| 1 | 09\u00b0\u264d41' | mercury | \u2648 | 8 |\n| 2 | 07\u00b0\u264e13' | venus | \u264a | 10 |\n| 3 | 07\u00b0\u264f38' | pluto | \u264e | 2 |\n| 4 | 09\u00b0\u265013' | jupiter | \u264d | 12 |\n| 5 | 10\u00b0\u265125' | saturn | \u264d | 1 |\n| 6 | 10\u00b0\u265244' | uranus | \u264f | 3 |\n| 7 | 09\u00b0\u265341' | neptune | \u2650 | 4 |\n| 8 | 07\u00b0\u264813' | mars | \u264c | 12 |\n| 9 | 07\u00b0\u264938' | venus | \u264a | 10 |\n| 10 | 09\u00b0\u264a13' | mercury | \u2648 | 8 |\n| 11 | 10\u00b0\u264b25' | moon | \u264b | 10 |\n| 12 | 10\u00b0\u264c44' | sun | \u2649 | 8 |\n\n\n# Quadrants (MiMi)\n\n| quadrant | count | bodies |\n|------------|---------|--------------------------------------|\n| 1st \u25f5 | 3 | saturn, uranus, pluto |\n| 2nd \u25f6 | 1 | neptune |\n| 3rd \u25f7 | 2 | sun, mercury |\n| 4th \u25f4 | 5 | moon, venus, mars, jupiter, asc_node |\n\n\n# Hemispheres (MiMi)\n\n| hemisphere | count | bodies |\n|--------------|---------|-------------------------------------------------------------|\n| \u2190 | 8 | saturn, uranus, pluto, moon, venus, mars, jupiter, asc_node |\n| \u2192 | 3 | neptune, sun, mercury |\n| \u2191 | 7 | sun, mercury, moon, venus, mars, jupiter, asc_node |\n| \u2193 | 4 | saturn, uranus, pluto, neptune |\n\n\n# Celestial Bodies of Transit in MiMi's chart\n\n| Transit | sign | house |\n|-----------|-----------|---------|\n| sun | 17\u00b0\u264e20' | 2 |\n| moon | 09\u00b0\u265149' | 4 |\n| mercury | 24\u00b0\u264e04' | 2 |\n| venus | 20\u00b0\u264f44' | 3 |\n| mars | 19\u00b0\u264b29' | 11 |\n| jupiter | 21\u00b0\u264a20'\u211e | 10 |\n| saturn | 13\u00b0\u265347'\u211e | 7 |\n| uranus | 26\u00b0\u264939'\u211e | 9 |\n| neptune | 27\u00b0\u265359'\u211e | 7 |\n| pluto | 29\u00b0\u265138'\u211e | 5 |\n| asc_node | 05\u00b0\u264852'\u211e | 7 |\n| asc | 08\u00b0\u265129' | 4 |\n| mc | 22\u00b0\u264e28' | 2 |\n\n\n# Aspects of Transit vs MiMi\n\n| Transit | aspect | MiMi | phase | orb |\n|-----------|----------|----------|---------|--------|\n| sun | \u25b3 | venus | \u2190 \u2192 | 2\u00b0 08' |\n| sun | \u260c | pluto | \u2192 \u2190 | 2\u00b0 46' |\n| moon | \u260d | moon | \u2192 \u2190 | 1\u00b0 20' |\n| moon | \u25a1 | mercury | \u2190 \u2192 | 1\u00b0 21' |\n| moon | \u25b3 | asc | \u2190 \u2192 | 0\u00b0 07' |\n| mercury | \u26b9 | mars | \u2192 \u2190 | 2\u00b0 55' |\n| mercury | \u26b9 | neptune | \u2190 \u2192 | 1\u00b0 35' |\n| mercury | \u260c | pluto | \u2190 \u2192 | 3\u00b0 58' |\n| mercury | \u26b9 | asc_node | \u2192 \u2190 | 1\u00b0 59' |\n| venus | \u26b9 | saturn | \u2192 \u2190 | 0\u00b0 19' |\n| venus | \u260c | uranus | \u2192 \u2190 | 3\u00b0 47' |\n| venus | \u25a1 | asc_node | \u2192 \u2190 | 5\u00b0 19' |\n| mars | \u26b9 | saturn | \u2192 \u2190 | 1\u00b0 34' |\n| mars | \u25b3 | uranus | \u2192 \u2190 | 5\u00b0 02' |\n| mars | \u25a1 | pluto | \u2192 \u2190 | 0\u00b0 38' |\n| jupiter | \u260c | venus | \u2192 \u2190 | 6\u00b0 08' |\n| jupiter | \u25a1 | saturn | \u2190 \u2192 | 0\u00b0 17' |\n| jupiter | \u260d | neptune | \u2192 \u2190 | 1\u00b0 09' |\n| jupiter | \u25b3 | pluto | \u2190 \u2192 | 1\u00b0 13' |\n| jupiter | \u26b9 | asc_node | \u2192 \u2190 | 4\u00b0 43' |\n| saturn | \u25b3 | moon | \u2192 \u2190 | 5\u00b0 18' |\n| saturn | \u25a1 | venus | \u2190 \u2192 | 1\u00b0 25' |\n| saturn | \u260d | asc | \u2192 \u2190 | 4\u00b0 05' |\n| saturn | \u25a1 | mc | \u2192 \u2190 | 4\u00b0 34' |\n| uranus | \u25a1 | mars | \u2190 \u2192 | 0\u00b0 20' |\n| uranus | \u25a1 | jupiter | \u2190 \u2192 | 3\u00b0 38' |\n| uranus | \u25b3 | saturn | \u2190 \u2192 | 5\u00b0 36' |\n| uranus | \u260d | uranus | \u2190 \u2192 | 2\u00b0 08' |\n| uranus | \u25a1 | asc_node | \u2190 \u2192 | 0\u00b0 36' |\n| neptune | \u25b3 | uranus | \u2190 \u2192 | 3\u00b0 28' |\n| neptune | \u25a1 | neptune | \u2192 \u2190 | 5\u00b0 31' |\n| pluto | \u25a1 | sun | \u2190 \u2192 | 0\u00b0 41' |\n| asc_node | \u25a1 | moon | \u2190 \u2192 | 2\u00b0 36' |\n| asc_node | \u260c | mercury | \u2190 \u2192 | 2\u00b0 35' |\n| asc_node | \u26b9 | mc | \u2190 \u2192 | 3\u00b0 20' |\n| asc | \u260d | moon | \u2192 \u2190 | 0\u00b0 01' |\n| asc | \u25a1 | mercury | \u2192 \u2190 | 0\u00b0 02' |\n| asc | \u25b3 | asc | \u2192 \u2190 | 1\u00b0 13' |\n| mc | \u26b9 | mars | \u2190 \u2192 | 4\u00b0 31' |\n| mc | \u26b9 | neptune | \u2192 \u2190 | 0\u00b0 01' |\n| mc | \u260c | pluto | \u2190 \u2192 | 2\u00b0 22' |\n| mc | \u26b9 | asc_node | \u2192 \u2190 | 3\u00b0 35' |\n\n\n# Aspect Cross Reference of Transit(cols) vs MiMi(rows)\n\n| | \u2609 | \u263d | \u263f | \u2640 | \u2642 | \u2643 | \u2644 | \u2645 | \u2646 | \u2647 | \u260a | Asc | MC | Total |\n|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-------|------|---------|\n| \u2609 | | | | | | | | | | \u25a1 | | | | 1 |\n| \u263d | | \u260d | | | | | \u25b3 | | | | \u25a1 | \u260d | | 4 |\n| \u263f | | \u25a1 | | | | | | | | | \u260c | \u25a1 | | 3 |\n| \u2640 | \u25b3 | | | | | \u260c | \u25a1 | | | | | | | 3 |\n| \u2642 | | | \u26b9 | | | | | \u25a1 | | | | | \u26b9 | 3 |\n| \u2643 | | | | | | | | \u25a1 | | | | | | 1 |\n| \u2644 | | | | \u26b9 | \u26b9 | \u25a1 | | \u25b3 | | | | | | 4 |\n| \u2645 | | | | \u260c | \u25b3 | | | \u260d | \u25b3 | | | | | 4 |\n| \u2646 | | | \u26b9 | | | \u260d | | | \u25a1 | | | | \u26b9 | 4 |\n| \u2647 | \u260c | | \u260c | | \u25a1 | \u25b3 | | | | | | | \u260c | 5 |\n| \u260a | | | \u26b9 | \u25a1 | | \u26b9 | | \u25a1 | | | | | \u26b9 | 5 |\n| Asc | | \u25b3 | | | | | \u260d | | | | | \u25b3 | | 3 |\n| MC | | | | | | | \u25a1 | | | | \u26b9 | | | 2 |\n```\n\n- see [demo.ipynb] for the HTML output\n\n## Configuration\n\n- create a `Config` object and assign it to `Data` object\n- it will override the default settings in `config.py`\n- a sample config as follow:\n\n```py\nfrom natal.config import Display, Config, Orb\n\n# adjust which celestial bodies to display\ndisplay = Display(\n mc = False,\n asc_node = False,\n chiron = True\n)\n\n# adjust orbs for each aspect\norb = Orb(\n conjunction = 8,\n opposition = 8,\n trine = 6,\n square = 6,\n sextile = 6\n)\n\n# the complete config object\nconfig = Config(\n theme_type = \"light\", # or \"dark\", \"mono\"\n display = display,\n orb = orb\n)\n\n# create data object with the config\ndata = Data(\n name = \"MiMi\",\n city = \"Taipei\",\n dt = \"1980-04-20 14:30\",\n config = config,\n)\n```\n\nread the [docs] for complete references\n\n[docs]: https://hoishing.github.io/natal\n\n## Tech Stack\n\n- [tagit] for creating and manipulating SVG\n- [pyswisseph] python extension to the Swiss Ephemeris\n- [mkdocs-material] for docs site generation\n\n[black-badge]: https://img.shields.io/badge/code%20style-black-000000.svg\n[black-url]: https://github.com/psf/black\n[ci-badge]: https://github.com/hoishing/natal/actions/workflows/ci.yml/badge.svg\n[ci-url]: https://github.com/hoishing/natal/actions/workflows/ci.yml\n[demo.ipynb]: https://github.com/hoishing/natal/blob/main/demo.ipynb\n[MIT-badge]: https://img.shields.io/github/license/hoishing/natal\n[MIT-url]: https://opensource.org/licenses/MIT\n[mkdocs-material]: https://github.com/squidfunk/mkdocs-material\n[tagit]: https://github.com/hoishing/tagit\n[pypi-badge]: https://img.shields.io/pypi/v/natal\n[pypi-url]: https://pypi.org/project/natal\n[pyswisseph]: https://github.com/astrorigin/pyswisseph\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "create Natal Chart with ease",
"version": "0.7.6",
"project_urls": {
"Documentation": "https://hoishing.github.io/natal",
"Homepage": "https://github.com/hoishing/natal",
"Repository": "https://github.com/hoishing/natal"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "98ef7cc1d425c02001bd517fd3bac95e08e7e9f8be715ed9b064accb155bab0c",
"md5": "0fe8334f2ae3b5e1cf7796fe2716b9ba",
"sha256": "91322b9d062088767f0dc2218f8d91b1e5fc469e99b0a0ef4a2d9adc6cc81e21"
},
"downloads": -1,
"filename": "natal-0.7.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0fe8334f2ae3b5e1cf7796fe2716b9ba",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.12",
"size": 1023475,
"upload_time": "2024-11-13T17:47:53",
"upload_time_iso_8601": "2024-11-13T17:47:53.057072Z",
"url": "https://files.pythonhosted.org/packages/98/ef/7cc1d425c02001bd517fd3bac95e08e7e9f8be715ed9b064accb155bab0c/natal-0.7.6-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1d1b480ba05ffefbb0d410654f51d0272588745cf012ea2b85af871fcbdd81d7",
"md5": "011e8fa6c4d154e2a67a83b7287c9548",
"sha256": "01dd9fe994b95f243e57c340e1927f6d482578dfdf57d90908deb9b29da8b9e6"
},
"downloads": -1,
"filename": "natal-0.7.6.tar.gz",
"has_sig": false,
"md5_digest": "011e8fa6c4d154e2a67a83b7287c9548",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.12",
"size": 1016714,
"upload_time": "2024-11-13T17:47:55",
"upload_time_iso_8601": "2024-11-13T17:47:55.199987Z",
"url": "https://files.pythonhosted.org/packages/1d/1b/480ba05ffefbb0d410654f51d0272588745cf012ea2b85af871fcbdd81d7/natal-0.7.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-13 17:47:55",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "hoishing",
"github_project": "natal",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "natal"
}