-
Notifications
You must be signed in to change notification settings - Fork 12
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
Create a REST API #28
Comments
A good first step here would be to refactor all the URL fetches to occur with a single method call that returns the dictionary of final results for the UI. Then the URL handler can just call this function and return the result. Separate code could then call into this function manually for things like APIs. |
This is the first step toward #28
Code is now separated, but feasibility is limited by AppEngine. I'd have to rate limit the API and provide API keys, which feels like a lot of work for minimal payout. It's easiest to just clone the code locally and execute the DataFetcher calls manually. (As a short-term workaround.) |
I added a separate repo to do this: https://github.com/mrhappyasthma/Rule1-StockScreener Coding up an API (even if it's not enable for now due to cost limitations) may still be a nice stretch goal. |
I view the API-like endpoint you created in 2021 as a convenient test interface for the computing logic. While the test methods calling particular classes would need to be updated in case the internal logic changes, such tests would ensure no update would be needed as long as the output ( This may be a totally unhelpful idea. I just wanted to let you know I've been experimenting with it, and the test code is here. Credit: Thinking of such tests was possible for me only thanks to the internal "endpoint" you created in 2021:) |
While fiddling with this, I've identified 4 perspectives I'd appreciate your feedback on (#78):
|
* Add an API test. * Try to enable GitHub Actions. * Try to remove the Werkzeug warning. * Get a real quote. * Rename package to src for now. While pyproject.toml must contain the package name, using a name other than "src" would require cascading changes to the submodules. Let's leave that for a later stage, if required. * Allow Python 3.10. * Allow Python ^3.8. Recent Flask requires ^3.8. * Skip checking for requirements.txt (extra step). * Remove requirements.txt. * Add PyTest as a plain dependency. * Specify Mark as the author. * Refactor: Move server logic from main.py to src/server.py. * Debug: Print current values. * Remove a debug print. * Remove CircleCI config. Configured GitHub Actions instead. If that isn't equivalent, we can revert. * Untrack .envrc. * Remove .envrc. * Add PyLint exclusions for most common warnings. These specific warnings were so numerous they obscured the code. Before anyone gets to cleaning these warnings [1], let's disable them for now just to make reading the code easier. [1]: *If* they should ever be cleaned at all. * Move test_api to tests/. * Remove unneeded mock.
This will be useful for headless usage of the calculations on the site.
The text was updated successfully, but these errors were encountered: