This repository is organized as follows:
pip install -r requirements*.txt should install all three for you.brew install pre-commit if you haven't.pre-commit install from the root of the repository.git checkout -b my_branch.You need to have installed the requirements-test.txt dependencies into the environment you're running for this to work. You can run tests two ways:
.circleci/config.yml which also shows commands to run tests from the command line.You can debug and execute unit tests in pycharm easily. To set it up, you just hit Edit configurations and then add New > Python Tests > pytest. You then want to specify the tests/ folder under Script path, and ensure the python environment executing it is the appropriate one with all the dependencies installed. If you add -v to the additional arguments part, you'll then get verbose diffs if any tests fail.
You need to install the circleci command line tooling for this to work. See the unit testing algo curriculum slides for details. Once you have installed it you just need to run circleci local execute from the root directory and it'll run the entire suite of tests that are setup to run each time you push a commit to a branch in github.
These are the steps to push to pypi. This is taken from the python packaging tutorial.
Have an account & be granted the ability to push to sf-hamilton on testpypi & real pypi.
Setup API tokens and add them to your ~/.pypirc.
Run python3 -m pip install --upgrade build.
Run python3 -m pip install --upgrade twine
Push to test pypi - python3 -m twine upload --repository testpypi dist/*.
Note: you cannot push the same version twice to test or real pypi. So it‘s useful to append -rcX to the version. Once you’re happy, you can remove that; just remember to not check that in.
Validate you can install from testpypi - follow the URL output.
If you can, then push to real pypi. python3 -m twine upload dist/*
Double check you can download and install what you just pushed in a fresh environment. A good thing to test is to run the hello world example.
Now that you've pushed to pypi, announce your release! We plan to automate this, but for now...
sf-hamilton-{version_string}. See 1.2.0 for an example.