Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change package structure - enable plugin support #53

Closed
4 tasks done
pylipp opened this issue Dec 28, 2019 · 0 comments
Closed
4 tasks done

Change package structure - enable plugin support #53

pylipp opened this issue Dec 28, 2019 · 0 comments
Assignees
Labels
Milestone

Comments

@pylipp
Copy link
Owner

pylipp commented Dec 28, 2019

WIP

  • this is being solved by making financeager support Python plugins. It brings the opportunity to modularize the code base, and to enable extending the core package easily
  • financeager version 0.23.0.0 was released, bringing plugin support

Current Situation

financeager can be used to communicate with a database on the local machine, or a database on a remote machine (which has a webservice installed).
Having both ways combined in a single package is powerful but has some smells. First of all it has to be reconsidered of how much value the 'remote' variant is at all.
When users want to use the 'local' variant,

  • they still have to install dependencies relevant to the remote variant (requests, Flask)
  • some package functionality is irrelevant (offline, httprequests, fflask, resources modules)

When users want to use the 'remote' variant,

  • they have to configure financeager on the client side
  • set up the webservice running behind an FCGI/WSGI

which might be too much of a hazzle already.

Now one major feature I'd like to introduce is a financeager client TUI (like e.g. tig or pudb). When used with the 'remote' variant however, the client would have to hold a copy of the remote database for performance/connectivity reasons, and sync this local copy periodically. This brings

  • need for error-prone synchronization logic (re-inventing the wheel?)
  • a local database which is already exactly what the local variant would do

Proposal

  • the 'remote' variant is marked as deprecated
  • the 'remote' variant implementation is split from the package
  • the 'remote' variant implementation can be additionally installed and, by config, be selected for use
  • the 'local' variant becomes the core of financeager

Then

  • financeager can be extended by a TUI mode (see Non-CL user interface #50) which accesses the local database
  • for synchronizing database files (if desired) users can
    • select a cloud storage service (e.g. Dropbox)
    • use version control, also in combination with a service, or a remote
@pylipp pylipp added this to the v1.0.0 milestone Dec 28, 2019
@pylipp pylipp self-assigned this Dec 28, 2019
@pylipp pylipp pinned this issue Dec 28, 2019
pylipp added a commit that referenced this issue Dec 28, 2019
pylipp added a commit that referenced this issue Dec 28, 2019
- prepare for #53
- simplify return values of safely_run()
- introduce Client.latest_exception attribute
@pylipp pylipp changed the title Change package structure Change package structure - enable plugin support Dec 30, 2019
pylipp added a commit that referenced this issue Dec 30, 2019
Preparation of #53 for supporting client-'plugins'.
pylipp added a commit that referenced this issue Dec 30, 2019
pylipp added a commit that referenced this issue Dec 30, 2019
- affects modules: httprequests, fflask, resources
- probably in version v0.24.0.0
- related to #53
pylipp added a commit that referenced this issue Dec 30, 2019
- affects modules: httprequests, fflask, resources
- probably in version v0.24.0.0
- related to #53
@pylipp pylipp closed this as completed in bd29767 Dec 5, 2020
@pylipp pylipp unpinned this issue Dec 5, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant