Package: wl-utilities
Utility code to be used in the WEAVE-QAG/SV environmentThis package is calledwl-utilitieson PyPI and can be installed withpip install wl-utilitiesand then imported withimport wl_utilitiesThis package is a collaborative effort and will comprise the scientific code that allows the QAG tests and SV to run.wl_utilitieswill be a dependency of those projects.wl_utilitiesshould not useweaveioorqagpackages.Please seesetupfor setting up githubWorkflowThere will be 2 branches in use on this repository:main- where the production-ready version exists and which is uploaded automatically to PyPI for use by everyone.develop- where changes and merges all take place before merging into themainbranchSetup gitTo setup git to deal with collaboration. This will allow you to use our custom git aliases, shortcuts that make your life easier.On github clickFork. This creates a copy ofwl_utilitiesfor you to work on (WARNING: make sure your repo is called "wl_utilities" and not "utilities")Check that your machine can usessh key authentication with githubOn the pc where you develop QAG tests,cdsomewhere for development on thiswl_utiltitiesrepository. There is no need to create awl_utilitiesdirectory.git clonegit@github.com:YOURUSERNAME/wl-utilities.git(the link can be found under the greencodebutton on your github page)cd wl_utilitieson your local machine.Activate your development environment (maybe:conda activate weaveioor similar)Install helper aliaseschmod +x setup.sh && ./setup.shTo add/modify this repository with your own changes and improvements please use this workflow:Activate your development environment (maybe:conda activate weaveioor similar)Pull the latest updates:git sync-forkCreate a new branch for your changes to live on:git fork-branch my-clever editMake your changes on this branchView what has happened:git statusAdd your changes to be commited:git add <file1> <file2> ...View what has changed:git statusSave your changes:git commit -m "description of changes"Wait for automated checks to complete (and then commit again if necessary:git commit -m "description of changes")Push changes to your fork only:git pushOpen a pull request on your github page (https://github.com/USERNAME/wl-utilities), click contribute->open pull request, and check "allow edits by maintainer"You can also usegh pr create --fillto open a pull request on command line. This requires thegithub cli utilitywhich can be installed with  apt-get or condaIn general we should be writing code like this:* Play with code in jupyter notebook (all weaveio queries, new functions, plotting)
* Refactor this notebook and the wl_utilities module to move new functions/plotting to wl_utilities
* Run notebook to make sure its still doing what you wantAll changes therefore end up in thedevelopbranch of the weave-lofar shared repo.All pull requests will be reviewed before merging, so we can limit mistakes.StructureThe structure of this package will be:wl_utilities/
  misc/  # for random short but useful snippets
  spectrum/  # for anything that processes spectra
    e.g. cross-correlation.py
    e.g. reduction.py
  stats/  # for anything that looks like a statistical test
    e.g. zscores.pyWe will not use separate folders for individual's code since the objective is to put them together and not repeat.Rules:This repo will be autoformatted according toblackon server-sideNo change is merged with themainbranch until approved by "enough" peopleKeep the code as modular as possible