|
2 | 2 |
|
3 | 3 | Immanuel is a Python >= 3.10 package to allow your applications to painlessly produce simple, readable, chart-centred astrology data from [pyswisseph](https://github.com/astrorigin/pyswisseph), with extra calculations modelled on those of [astro.com](https://astro.com) and [Astro Gold](https://www.astrogold.io). Easy-to-use chart classes take date, time, and location data and return an object which can be output as either human-friendly text or easily serialised into JSON. |
4 | 4 |
|
5 | | -## Documentation |
6 | 5 |
|
7 | | -Full markdown documentation is available [here](https://github.com/theriftlab/immanuel-python/blob/master/docs/0-contents.md). |
8 | 6 |
|
9 | | -## Quick Start |
| 7 | +Full markdown documentation is available [here](https://github.com/theriftlab/immanuel-python/tree/v1.0.11/docs/0-contents.md). |
10 | 8 |
|
11 | | -If all that documentation looks boring, you can get started generating chart data in minutes. Simply install Immanuel, import the chart classes into your project, and with one line of code you can produce all the data you need to construct a full chart. |
| 9 | +## Quick Start |
12 | 10 |
|
13 | | -## Installation |
| 11 | +You can get started generating chart data in minutes. Simply install Immanuel: |
14 | 12 |
|
15 | 13 | ```bash |
16 | 14 | pip install immanuel |
17 | 15 | ``` |
18 | 16 |
|
19 | | -## Chart Types |
20 | | - |
21 | | -Currently Immanuel supports the following chart types: |
22 | | - |
23 | | -* Natal |
24 | | -* Solar return |
25 | | -* Progressed |
26 | | -* Synastry |
27 | | -* Composite |
28 | | - |
29 | | -## Example |
30 | | - |
31 | | -Chart class constructors take dates in standard timezone-naive ISO format (YYYY-MM-DD HH:MM:SS), and coordinates in either standard text format (as in the following examples) or decimal. To generate data for a natal chart, you could use something like this: |
| 17 | +Now import Immanuel's chart classes and generate a natal chart from a date & coordinates: |
32 | 18 |
|
33 | 19 | ```python |
34 | 20 | from immanuel import charts |
35 | 21 |
|
36 | 22 |
|
37 | 23 | natal = charts.Natal(dob='2000-01-01 10:00', lat='32n43', lon='117w09') |
38 | | -``` |
39 | | - |
40 | | -## Returned Chart Data |
41 | 24 |
|
42 | | -The various chart types return their own sets of data, but for a basic natal chart you can expect to receive the following: |
43 | | - |
44 | | -* Chart date |
45 | | -* Chart coordinates |
46 | | -* House system |
47 | | -* Chart shape type (eg. bowl, splash etc.) |
48 | | -* Whether the chart is diurnal (ie. daytime) |
49 | | -* Moon phase |
50 | | -* All chart objects (eg. planets, asteroids, primary angles etc.) and their positions & dignities if applicable |
51 | | -* Houses |
52 | | -* Aspects |
53 | | -* Weightings (ie. which objects are in which elements / modalities etc.) |
54 | | - |
55 | | -The data is available in both human-readable and JSON format. To see the human-readable planets & angles in the above natal chart: |
56 | | - |
57 | | -```python |
58 | 25 | for object in natal.objects.values(): |
59 | 26 | print(object) |
60 | 27 | ``` |
61 | 28 |
|
62 | | -This will output all the chart objects in this format: |
| 29 | +This will output all the chart objects (planets, points, asteroids etc.) in this format: |
63 | 30 |
|
64 | 31 | ``` |
65 | 32 | Sun 10°37'26" in Capricorn, 11th House |
66 | 33 | Moon 16°19'29" in Scorpio, 8th House |
67 | 34 | ... |
68 | 35 | ``` |
69 | 36 |
|
70 | | -We can get much more data from the JSON output like this: |
| 37 | +We can see much more data by serializing the chart's `objects` property to JSON like this: |
71 | 38 |
|
72 | 39 | ```python |
73 | | -# Add these extra imports at the top... |
74 | 40 | import json |
| 41 | + |
75 | 42 | from immanuel.classes.serialize import ToJSON |
| 43 | +from immanuel import charts |
76 | 44 |
|
77 | | -# ...and try this after you've generated your chart |
| 45 | + |
| 46 | +natal = charts.Natal(dob='2000-01-01 10:00', lat='32n43', lon='117w09') |
78 | 47 |
|
79 | 48 | print(json.dumps(natal.objects, cls=ToJSON, indent=4)) |
80 | 49 | ``` |
81 | 50 |
|
82 | | -Which will output all the chart objects in this format: |
| 51 | +Which will output each of the chart's objects in this format: |
83 | 52 |
|
84 | 53 | ```json |
85 | 54 | { |
@@ -167,15 +136,42 @@ Note that the entire chart can also be serialized to JSON, eg.: |
167 | 136 | print(json.dumps(natal, cls=ToJSON, indent=4)) |
168 | 137 | ``` |
169 | 138 |
|
| 139 | +## Chart Types |
| 140 | + |
| 141 | +Currently Immanuel supports the following chart types: |
| 142 | + |
| 143 | +* Natal |
| 144 | +* Solar return |
| 145 | +* Progressed |
| 146 | +* Synastry |
| 147 | +* Composite |
| 148 | + |
| 149 | +## Returned Chart Data |
| 150 | + |
| 151 | +The various chart types return their own sets of data, but for a basic natal chart you can expect to receive the following: |
| 152 | + |
| 153 | +* Chart date |
| 154 | +* Chart coordinates |
| 155 | +* House system |
| 156 | +* Chart shape type (eg. bowl, splash etc.) |
| 157 | +* Whether the chart is diurnal (ie. daytime) |
| 158 | +* Moon phase |
| 159 | +* All chart objects (eg. planets, asteroids, primary angles etc.) and their positions & dignities if applicable |
| 160 | +* Houses |
| 161 | +* Aspects |
| 162 | +* Weightings (ie. which objects are in which elements / modalities etc.) |
| 163 | + |
| 164 | +All properties are available in both human-readable and JSON format as demonstrated above. |
| 165 | + |
170 | 166 | ## Calculations |
171 | 167 |
|
172 | | -Calculations for the secondary progressions are based on those of astro.com. The same three methods for MC progression are available and will produce the same progressed date, sidereal time, and house positions as astro.com. |
| 168 | +Immanuel offers the same three methods for MC progression as astro.com, and will produce the same progressed date, sidereal time, and house positions. |
173 | 169 |
|
174 | 170 | Planetary dignity scores are based on those of Astro Gold, although these are somewhat flexible via the settings. |
175 | 171 |
|
176 | 172 | ## Settings |
177 | 173 |
|
178 | | -The full documentation covers [settings](docs/6-settings.md) in more detail, but much of the output can be customised. The settings module allows you specify what data each chart returns, what planets etc. to include, and to fine-tune many intricate details of the aspect calculations. |
| 174 | +The full documentation covers [settings](https://github.com/theriftlab/immanuel-python/tree/v1.0.11/docs/6-settings.md) in more detail, but much of the output can be customised. The settings module allows you specify what data each chart returns, what planets etc. to include, and to fine-tune many intricate details of the aspect calculations. |
179 | 175 |
|
180 | 176 | ## Tests |
181 | 177 |
|
|
0 commit comments