Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: MadeInPierre/finalynx
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.14.3
Choose a base ref
...
head repository: MadeInPierre/finalynx
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref
Loading
Showing with 7,624 additions and 1,300 deletions.
  1. +23 −3 .github/workflows/semantic-release.yml
  2. +11 −2 .gitignore
  3. +0 −4 .gitmodules
  4. +1 −1 .pre-commit-config.yaml
  5. +1 −1 .readthedocs.yaml
  6. +1,339 −118 CHANGELOG.md
  7. +2 −1 CONTRIBUTING.md
  8. +126 −0 README.fr.md
  9. +54 −21 README.md
  10. +6 −0 docs/README.md
  11. BIN docs/_static/{screenshot.png → _old_screenshot_demo.png}
  12. BIN docs/_static/budget.png
  13. BIN docs/_static/budget_review.png
  14. BIN docs/_static/buymeacoffee.png
  15. BIN docs/_static/screenshot_dashboard.png
  16. BIN docs/_static/screenshot_demo.png
  17. BIN docs/_static/screenshot_demo_frameless.png
  18. BIN docs/_static/screenshot_full.png
  19. BIN docs/_static/screenshot_recommendations.png
  20. +1 −1 docs/conf.py
  21. +13 −3 docs/index.md
  22. +40 −27 docs/{tutorials → quickstart}/customization.md
  23. 0 docs/{tutorials → quickstart}/getting_started.md
  24. +73 −0 docs/quickstart/installation.md
  25. +41 −0 docs/quickstart/tutorials.md
  26. +0 −18 docs/tutorials/installation.md
  27. +58 −33 examples/demo.py
  28. +620 −0 examples/full_example.py
  29. +119 −0 examples/telegram_bot.py
  30. +28 −0 examples/tutorials/1_basics/1_minimal.py
  31. +47 −0 examples/tutorials/1_basics/2_theme.py
  32. +44 −0 examples/tutorials/1_basics/3_login.py
  33. +51 −0 examples/tutorials/1_basics/4_export.py
  34. +59 −0 examples/tutorials/1_basics/5_display_options.py
  35. +40 −0 examples/tutorials/1_basics/6_dashboard.py
  36. +46 −0 examples/tutorials/1_basics/7_sources.py
  37. +67 −0 examples/tutorials/2_portfolio/1_structure.py
  38. +76 −0 examples/tutorials/2_portfolio/2_buckets.py
  39. +76 −0 examples/tutorials/2_portfolio/3_attributes.py
  40. +69 −0 examples/tutorials/2_portfolio/4_targets.py
  41. +113 −0 examples/tutorials/2_portfolio/5_envelopes.py
  42. +84 −0 examples/tutorials/3_simulation/1_basics.py
  43. +144 −0 examples/tutorials/3_simulation/2_template.py
  44. +92 −0 examples/tutorials/4_budget/1_setup.py
  45. +7 −0 examples/tutorials/README.md
  46. +11 −9 finalynx/__init__.py
  47. +2 −2 finalynx/__main__.py
  48. +1 −1 finalynx/__meta__.py
  49. +26 −1 finalynx/analyzer/asset_class.py
  50. +162 −0 finalynx/analyzer/asset_subclass.py
  51. +46 −0 finalynx/analyzer/lines.py
  52. +286 −114 finalynx/assistant.py
  53. +6 −0 finalynx/budget/__init__.py
  54. +87 −0 finalynx/budget/_render.py
  55. +239 −0 finalynx/budget/_review.py
  56. +256 −0 finalynx/budget/budget.py
  57. +128 −0 finalynx/budget/expense.py
  58. +50 −0 finalynx/budget/source_base_expense.py
  59. +153 −0 finalynx/budget/source_n26.py
  60. +18 −1 finalynx/config.py
  61. +93 −0 finalynx/copilot/recommendations.py
  62. +67 −14 finalynx/dashboard/dashboard.py
  63. +6 −5 finalynx/fetch/__init__.py
  64. +35 −0 finalynx/fetch/_source_template.py
  65. +46 −24 finalynx/fetch/fetch.py
  66. +0 −442 finalynx/fetch/fetch_finary.py
  67. +123 −0 finalynx/fetch/source_base.py
  68. +87 −0 finalynx/fetch/source_base_line.py
  69. +303 −0 finalynx/fetch/source_finary.py
  70. +86 −0 finalynx/fetch/source_realt.py
  71. +0 −1 finalynx/finary_api
  72. +2 −1 finalynx/parse/parser.py
  73. +1 −0 finalynx/portfolio/__init__.py
  74. +35 −5 finalynx/portfolio/bucket.py
  75. +3 −0 finalynx/portfolio/constants.py
  76. +4 −4 finalynx/portfolio/envelope.py
  77. +65 −33 finalynx/portfolio/folder.py
  78. +44 −7 finalynx/portfolio/line.py
  79. +40 −27 finalynx/portfolio/node.py
  80. +65 −55 finalynx/portfolio/targets.py
  81. +18 −3 finalynx/simulator/__init__.py
  82. +157 −0 finalynx/simulator/actions.py
  83. +135 −0 finalynx/simulator/events.py
  84. +67 −0 finalynx/simulator/recurrence.py
  85. +0 −67 finalynx/simulator/simulator.py
  86. +300 −0 finalynx/simulator/timeline.py
  87. +69 −0 finalynx/theme.py
  88. +23 −13 finalynx/usage.py
  89. +664 −226 poetry.lock
  90. +9 −5 pyproject.toml
  91. +35 −7 tests/test_dryrun.py
26 changes: 23 additions & 3 deletions .github/workflows/semantic-release.yml
Original file line number Diff line number Diff line change
@@ -43,6 +43,9 @@ jobs:
- uses: pre-commit/action@v3.0.0

- name: Test with pytest
env:
FINARY_EMAIL: ${{ secrets.FINARY_EMAIL }}
FINARY_PASSWORD: ${{ secrets.FINARY_PASSWORD }}
run: python -m poetry run pytest

- uses: pre-commit-ci/lite-action@v1.0.1
@@ -52,6 +55,10 @@ jobs:
needs: pre-commit
if: github.event_name == 'push' && github.ref == 'refs/heads/main' && !contains(github.event.head_commit.message, 'chore(release):')
runs-on: ubuntu-latest
permissions:
issues: write
id-token: write
contents: write
steps:
- uses: actions/setup-python@v2
with:
@@ -64,8 +71,21 @@ jobs:
submodules: recursive

- name: Python Semantic Release
uses: relekang/python-semantic-release@master
id: release
uses: python-semantic-release/python-semantic-release@v8.0.6
with:
github_token: ${{ secrets.GITHUB_TOKEN }}

- name: Publish package distributions to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
if: steps.release.outputs.released == 'true'
# Use the traditional API Token instead of the new trusted auth method for simplicity
# See https://github.com/pypa/gh-action-pypi-publish#specifying-a-different-username
# with:
# password: ${{ secrets.PYPI_API_TOKEN }}

- name: Publish package distributions to GitHub Releases
uses: python-semantic-release/upload-to-gh-release@main
if: steps.release.outputs.released == 'true'
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
repository_username: __token__
repository_password: ${{ secrets.PYPI_API_TOKEN }}
13 changes: 11 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,13 +1,21 @@
# Define your own portfolio using this name if you plan to contribute
assistant_config.py

# Saved log files are personal and therefore ignored
logs/
portfolio.png
portfolio.html

# Ignore the cached files used for fetching
finary_data.json
*_cache.json
*_credentials.json
*_cookies.txt

# Setup your finary credentials in this repo directly
# Keep old file names to make sure no one uploads their credentials
finary_data.json
credentials.json
localCookiesMozilla.txt
jwt.json

# Byte-compiled / optimized / DLL files
__pycache__/
@@ -82,6 +90,7 @@ instance/

# Sphinx documentation
docs/_build/
docs/apidocs/

# PyBuilder
.pybuilder/
4 changes: 0 additions & 4 deletions .gitmodules

This file was deleted.

2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -20,7 +20,7 @@ repos:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-merge-conflict
- id: check-docstring-first
# - id: check-docstring-first
- id: check-shebang-scripts-are-executable
- id: check-added-large-files # TODO add many others!

2 changes: 1 addition & 1 deletion .readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@ version: 2
build:
os: ubuntu-20.04
tools:
python: "3.8"
python: "3.10"
jobs:
post_create_environment:
# Install poetry
Loading