glidepath 1.0.0__tar.gz → 1.0.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {glidepath-1.0.0 → glidepath-1.0.2}/PKG-INFO +47 -12
- {glidepath-1.0.0 → glidepath-1.0.2}/README.md +45 -10
- {glidepath-1.0.0 → glidepath-1.0.2}/pyproject.toml +2 -2
- {glidepath-1.0.0 → glidepath-1.0.2}/LICENSE +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/LICENSE-DATA +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/__init__.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/app/__init__.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/app/backtest.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/app/charts.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/app/copy.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/app/display.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/app/drawdown.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/app/example.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/app/exports.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/app/files.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/app/firstrun.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/app/forms.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/app/inspector.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/app/labels.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/app/montecarlo.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/app/outlook.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/app/plan.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/app/retirement.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/app/scenarios.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/app/shell.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/app/tables.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/core/__init__.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/core/annuities.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/core/backtest.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/core/comparison.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/core/config.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/core/contributions.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/core/engine.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/core/entities.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/core/glide.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/core/investments.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/core/money.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/core/montecarlo.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/core/pensions.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/core/periods.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/core/provenance.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/core/randomness.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/core/region.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/core/reporting.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/core/results.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/core/retirement.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/core/returns.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/core/scenarios.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/core/state_pension.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/core/tax.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/core/withdrawals.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/core/wrappers.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/gui/__init__.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/gui/assets/icon_128.png +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/gui/assets/icon_16.png +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/gui/assets/icon_24.png +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/gui/assets/icon_256.png +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/gui/assets/icon_32.png +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/gui/assets/icon_48.png +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/gui/assets/icon_64.png +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/gui/assets/wordmark.png +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/gui/charts.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/gui/forms.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/gui/inspector.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/gui/main.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/gui/scenarios.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/gui/style.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/gui/tableview.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/gui/widgets.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/persistence/__init__.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/persistence/assumptions.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/persistence/decode.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/persistence/document.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/persistence/encode.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/persistence/migrations.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/persistence/values.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/py.typed +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/regions/__init__.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/regions/uk/__init__.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/regions/uk/ages.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/regions/uk/contributions.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/regions/uk/data/age_rules.toml +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/regions/uk/data/assumptions_default.toml +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/regions/uk/data/returns_history.toml +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/regions/uk/data/tax_year_2026_27.toml +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/regions/uk/extension.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/regions/uk/loader.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/regions/uk/region.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/regions/uk/schema.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/regions/uk/state_pension.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/regions/uk/tax.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/regions/uk/wrappers.py +0 -0
- {glidepath-1.0.0 → glidepath-1.0.2}/src/glidepath/regions/uk/years.py +0 -0
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: glidepath
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.2
|
|
4
4
|
Summary: Desktop retirement and investment planner (UK-first, region-extensible).
|
|
5
5
|
Keywords: retirement,pension,financial-planning,investment,uk,sipp,isa,monte-carlo
|
|
6
6
|
Author: James Williams
|
|
7
7
|
License-Expression: MIT AND CC-BY-NC-SA-4.0
|
|
8
8
|
License-File: LICENSE
|
|
9
9
|
License-File: LICENSE-DATA
|
|
10
|
-
Classifier: Development Status ::
|
|
10
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
11
11
|
Classifier: Environment :: Win32 (MS Windows)
|
|
12
12
|
Classifier: Environment :: X11 Applications :: Qt
|
|
13
13
|
Classifier: Intended Audience :: End Users/Desktop
|
|
@@ -130,19 +130,45 @@ It is not financial advice and is not regulated; its outputs depend on
|
|
|
130
130
|
assumptions that will not match reality. Do not make financial decisions
|
|
131
131
|
based solely on this tool.
|
|
132
132
|
|
|
133
|
-
##
|
|
133
|
+
## Install
|
|
134
134
|
|
|
135
|
-
|
|
136
|
-
|
|
135
|
+
Glidepath is installed from [PyPI](https://pypi.org/project/glidepath/)
|
|
136
|
+
with [uv](https://docs.astral.sh/uv/), which also fetches the Python it
|
|
137
|
+
needs — you do not need Python installed first.
|
|
137
138
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
139
|
+
1. **Install uv.** Windows (PowerShell):
|
|
140
|
+
|
|
141
|
+
```powershell
|
|
142
|
+
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
macOS or Linux:
|
|
146
|
+
|
|
147
|
+
```sh
|
|
148
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Close and reopen the terminal, then check `uv --version` prints a
|
|
152
|
+
version.
|
|
142
153
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
154
|
+
2. **Install glidepath:**
|
|
155
|
+
|
|
156
|
+
```sh
|
|
157
|
+
uv tool install glidepath
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
3. **Launch it:**
|
|
161
|
+
|
|
162
|
+
```sh
|
|
163
|
+
glidepath
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
If the shell cannot find `glidepath` afterwards, run
|
|
167
|
+
`uv tool update-shell` once and reopen the terminal. Upgrade to a new
|
|
168
|
+
release later with `uv tool upgrade glidepath`. (`pipx install
|
|
169
|
+
glidepath` works too. Glidepath is a desktop app distributed through
|
|
170
|
+
PyPI, not a library — importing `glidepath` modules is not a supported
|
|
171
|
+
API.)
|
|
146
172
|
|
|
147
173
|
Or run straight from a checkout:
|
|
148
174
|
|
|
@@ -164,6 +190,15 @@ use glidepath" walks through every tab. Save your plan from the File
|
|
|
164
190
|
menu as a `.glidepath.json` file you own, stored wherever you choose;
|
|
165
191
|
the next launch reopens your last plan automatically.
|
|
166
192
|
|
|
193
|
+
## User guide
|
|
194
|
+
|
|
195
|
+
[`docs/getting-started.md`](https://github.com/williajm/glidepath/blob/main/docs/getting-started.md)
|
|
196
|
+
walks through the app step by step: installing on a machine with
|
|
197
|
+
nothing on it, what to gather before you start, entering it on the
|
|
198
|
+
Facts tab, reading the projection, and changing the assumptions behind
|
|
199
|
+
it — the growth rate, inflation, fees, the planning horizon — on the
|
|
200
|
+
Stated vs assumed tab.
|
|
201
|
+
|
|
167
202
|
## Developing
|
|
168
203
|
|
|
169
204
|
Development additionally requires GNU Make, which drives every workflow
|
|
@@ -102,19 +102,45 @@ It is not financial advice and is not regulated; its outputs depend on
|
|
|
102
102
|
assumptions that will not match reality. Do not make financial decisions
|
|
103
103
|
based solely on this tool.
|
|
104
104
|
|
|
105
|
-
##
|
|
105
|
+
## Install
|
|
106
106
|
|
|
107
|
-
|
|
108
|
-
|
|
107
|
+
Glidepath is installed from [PyPI](https://pypi.org/project/glidepath/)
|
|
108
|
+
with [uv](https://docs.astral.sh/uv/), which also fetches the Python it
|
|
109
|
+
needs — you do not need Python installed first.
|
|
109
110
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
111
|
+
1. **Install uv.** Windows (PowerShell):
|
|
112
|
+
|
|
113
|
+
```powershell
|
|
114
|
+
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
macOS or Linux:
|
|
118
|
+
|
|
119
|
+
```sh
|
|
120
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Close and reopen the terminal, then check `uv --version` prints a
|
|
124
|
+
version.
|
|
114
125
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
126
|
+
2. **Install glidepath:**
|
|
127
|
+
|
|
128
|
+
```sh
|
|
129
|
+
uv tool install glidepath
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
3. **Launch it:**
|
|
133
|
+
|
|
134
|
+
```sh
|
|
135
|
+
glidepath
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
If the shell cannot find `glidepath` afterwards, run
|
|
139
|
+
`uv tool update-shell` once and reopen the terminal. Upgrade to a new
|
|
140
|
+
release later with `uv tool upgrade glidepath`. (`pipx install
|
|
141
|
+
glidepath` works too. Glidepath is a desktop app distributed through
|
|
142
|
+
PyPI, not a library — importing `glidepath` modules is not a supported
|
|
143
|
+
API.)
|
|
118
144
|
|
|
119
145
|
Or run straight from a checkout:
|
|
120
146
|
|
|
@@ -136,6 +162,15 @@ use glidepath" walks through every tab. Save your plan from the File
|
|
|
136
162
|
menu as a `.glidepath.json` file you own, stored wherever you choose;
|
|
137
163
|
the next launch reopens your last plan automatically.
|
|
138
164
|
|
|
165
|
+
## User guide
|
|
166
|
+
|
|
167
|
+
[`docs/getting-started.md`](https://github.com/williajm/glidepath/blob/main/docs/getting-started.md)
|
|
168
|
+
walks through the app step by step: installing on a machine with
|
|
169
|
+
nothing on it, what to gather before you start, entering it on the
|
|
170
|
+
Facts tab, reading the projection, and changing the assumptions behind
|
|
171
|
+
it — the growth rate, inflation, fees, the planning horizon — on the
|
|
172
|
+
Stated vs assumed tab.
|
|
173
|
+
|
|
139
174
|
## Developing
|
|
140
175
|
|
|
141
176
|
Development additionally requires GNU Make, which drives every workflow
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "glidepath"
|
|
3
|
-
version = "1.0.
|
|
3
|
+
version = "1.0.2"
|
|
4
4
|
description = "Desktop retirement and investment planner (UK-first, region-extensible)."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
# MIT code plus one CC BY-NC-SA 4.0 data file (returns_history.toml —
|
|
@@ -22,7 +22,7 @@ keywords = [
|
|
|
22
22
|
# No License :: classifier — PEP 639: the SPDX expression above is the
|
|
23
23
|
# license metadata, and mixing it with license classifiers is deprecated.
|
|
24
24
|
classifiers = [
|
|
25
|
-
"Development Status ::
|
|
25
|
+
"Development Status :: 5 - Production/Stable",
|
|
26
26
|
"Environment :: Win32 (MS Windows)",
|
|
27
27
|
"Environment :: X11 Applications :: Qt",
|
|
28
28
|
"Intended Audience :: End Users/Desktop",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|