That's some wonderful work and I'm glad to be the first fork of that project! =D
Refactoring the repo
I'm doing a small technical issue to make sure we organize your code properly. I'm putting these tasks in the same issue as they all pertain to code and folder structure ; making sure everything is nice and neat, but mostly readable.
Note : we might want to keep issues as specific as we can. That way, we'll be able to make PR (pull requests) that address these issues iteratively. So here's a relatively thorough description of wanted changes and of the reasons why they should be addressed.
why include a .gitignore
We want to use easy git commands when pushing files, like this :
git status
git add -a
git commit -m "this change"
git push
Say, you work on a notebook and want to add it with some changes to the README, and whatever other file, while also not wanting to push the .ipynb_checkpoints
that comes with. Here's some docs. And a template for python usage.
why include a requirements.txt
We want to make the repo reproducible and get the tests workflow going, so we need all information pertaining to the package/version you use.
Ideally, we'd have a requirements files based directly on the conda/python environment that you are using.
Like this :
pip freeze > requirements.txt
This command essentially allows you to save all the current package/version you are using, but you can write them manually :
# specific version
scipy==14.0.1
# minimum specification
scipy>=13.9.0
# not recommended way that works
scipy
I'm writing bullshit here but you get the gist. You may want to enter you packages manually because the env you're using may contain packages not used in this current project. That or you go back from scratch, create an empty conda/python env and try to run your code after pip installing the packages you think you need, then pip freeze with specific package/versions.
Lintering
Let's forget the details here, but let's remember that conventions in python code are given by the PEP8 style guide. I suggest that we go back on written code and make sure it follows basic recommendation such as : line length (<80 characters), function docs format, proper empty lines and spaces. You'll get the hang of it if you use a proper dev env, as opposed to jupyter script editor or notepad, or any other text editor that's not optimized for the level of software dev you're asking for here.
There's an efficient way to check that : PyLint
I use Atom IDE and added a linter to check my code automatically (it sends error messages where your code does not respect conventions). It should be pre-installed in Windows Visual Code. I encourage you to look it up, or we'll chat it out at some point. Call me whenever, buddy!
I'll make a small PR to address the some changes.