Skip to main content

A model library for all signal providers of Freya Alpha using python. It includes models to handle signal ingestion, signal status reports, profit & performance reports, etc.

Project description

fa-signal-provider

A model library for all signal providers of Freya Alpha using python. It includes models to handle signal ingestion, signal status reports, profit and performance reports, etc.

Sponsors

Freya Alpha, The Kára System, Spark & Hale Robotic Industries

General

Run and compiled for Python 3.9.13. Expected to run for Python 3+

Development

Testing

run tests with pytest -s -vv to see all the details. This is extremely important for the library. It could make multiple pods fail.

Installation as Consuming Developer

Simply run: pip install fa-signal-provider

Import in modules without the dash (e.g.): from fasignalprovider.trading_signal import TradingSignal

Setup as Contributor

Create the virtul environment:

py -m venv .venv

Start the Environment:

./.venv/Scripts/activate

(or allow VS Code to start it). Use deactivateto stop it.

Upgrade the PIP.

python -m pip install --upgrade pip

All the required libraries must be listed in requirements.txt and installed by

python -m pip install -r .\requirements.txt

For Dev use

python -m pip install -r .\requirements-dev.txt

To cleanup the environment run:

pip3 freeze > to-uninstall.txt

and then

pip3 uninstall -y -r to-uninstall.txt

or

pip3 install pip-autoremove

Build Library

Prerequisite: make sure that you give your Operating System user the right to modify files in the python directory. The directory where pyhton is installed. Use python setup.py bdist_wheel to create the dist, build and .eggs folder.

Reference from a different project

In order to use your own version of the project - to maybe contribute to the library - simply clone the code from github into new directory. Then add the path of that new directory to the requirements.txt file of your project. Then change in fa-signal-provider whatever you recommend to improve. Don't forget the Open-Closed Principle: extend only (unless it requires a breaking change)

Releasing a new version

Simply commit and push into MAIN. Make sure you have tested well.

Github Actions (.github/workflows/testing_and_deployment.yml) will deploy the file to pypi.org.

Manual and old process

Delete any old files in the /dist and build folder of your local environment. Update your pip:

python -m pip install --upgrade pip

Install the tools build, twine and bumpver:

python -m pip install build twine bumpver

Upgrade the setuptools:

pip install --upgrade setuptools

Bump the version in pyproject.toml:

bumpver update --patch

This will commit a new version to GitHub.

Build the project:

python -m build

Check the distribution:

twine check dist/*

Upload to test-pypi to validate:

twine upload -r testpypi dist/*

Login with username: (password should be known)

If the test-upload was successful, finally, upload to pypi production:

twine upload dist/*

Done.

(P.S. Do not forget to update the library in your projects: pip install --upgrade fa-signal-provider)bumpver update --patch

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fa-signal-provider-1.1.26.tar.gz (16.7 kB view hashes)

Uploaded Source

Built Distribution

fa_signal_provider-1.1.26-py3-none-any.whl (15.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page