diff --git a/{{ cookiecutter.repo_name }}/Makefile b/{{ cookiecutter.repo_name }}/Makefile index 2f08b4c..490679e 100644 --- a/{{ cookiecutter.repo_name }}/Makefile +++ b/{{ cookiecutter.repo_name }}/Makefile @@ -1,133 +1,133 @@ -.PHONY: clean data lint requirements sync_data_to_s3 sync_data_from_s3 doc_reqs test +# .PHONY: clean data lint requirements sync_data_to_s3 sync_data_from_s3 doc_reqs test -################################################################################# -# GLOBALS # -################################################################################# +# ################################################################################# +# # GLOBALS # +# ################################################################################# -SHELL := /bin/bash -PROJECT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) -BUCKET = {{ cookiecutter.s3_bucket }} -PROFILE = {{ cookiecutter.aws_profile }} -PROJECT_NAME = {{ cookiecutter.repo_name }} -PYTHON_INTERPRETER = {{ cookiecutter.python_interpreter }} +# SHELL := /bin/bash +# PROJECT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) +# BUCKET = {{ cookiecutter.s3_bucket }} +# PROFILE = {{ cookiecutter.aws_profile }} +# PROJECT_NAME = {{ cookiecutter.repo_name }} +# PYTHON_INTERPRETER = {{ cookiecutter.python_interpreter }} -################################################################################# -# COMMANDS # -################################################################################# +# ################################################################################# +# # COMMANDS # +# ################################################################################# -## Install Python Dependencies -requirements: test_environment - conda env create --name {{ cookiecutter.repo_name }} python=3.7 -f ./requirements/environment.yaml +# ## Install Python Dependencies +# requirements: test_environment +# conda env create --name {{ cookiecutter.repo_name }} python=3.7 -f ./requirements/environment.yaml -## Make Dataset -data: requirements - $(PYTHON_INTERPRETER) src/data/make_dataset.py data/raw data/processed +# ## Make Dataset +# data: requirements +# $(PYTHON_INTERPRETER) src/data/make_dataset.py data/raw data/processed -## Delete all compiled Python files -clean: - find . -type f -name "*.py[co]" -delete - find . -type d -name "__pycache__" -delete +# ## Delete all compiled Python files +# clean: +# find . -type f -name "*.py[co]" -delete +# find . -type d -name "__pycache__" -delete -## Lint using flake8 -lint: - flake8 src +# ## Lint using flake8 +# lint: +# flake8 src -## Upload Data to S3 -sync_data_to_s3: -ifeq (default,$(PROFILE)) - aws s3 sync data/ s3://$(BUCKET)/data/ -else - aws s3 sync data/ s3://$(BUCKET)/data/ --profile $(PROFILE) -endif +# ## Upload Data to S3 +# sync_data_to_s3: +# ifeq (default,$(PROFILE)) +# aws s3 sync data/ s3://$(BUCKET)/data/ +# else +# aws s3 sync data/ s3://$(BUCKET)/data/ --profile $(PROFILE) +# endif -## Download Data from S3 -sync_data_from_s3: -ifeq (default,$(PROFILE)) - aws s3 sync s3://$(BUCKET)/data/ data/ -else - aws s3 sync s3://$(BUCKET)/data/ data/ --profile $(PROFILE) -endif +# ## Download Data from S3 +# sync_data_from_s3: +# ifeq (default,$(PROFILE)) +# aws s3 sync s3://$(BUCKET)/data/ data/ +# else +# aws s3 sync s3://$(BUCKET)/data/ data/ --profile $(PROFILE) +# endif -## Set up python interpreter environment -create_environment: - @echo ">>> Detected conda, creating conda environment." - conda env create --name $(PROJECT_NAME) python=3 -f ./requirements/environment.yaml - @echo ">>> New conda env created. Activate with:\nsource activate $(PROJECT_NAME)" +# ## Set up python interpreter environment +# create_environment: +# @echo ">>> Detected conda, creating conda environment." +# conda env create --name $(PROJECT_NAME) python=3 -f ./requirements/environment.yaml +# @echo ">>> New conda env created. Activate with:\nsource activate $(PROJECT_NAME)" -## Run pytest -test: - $(PYTHON_INTERPRETER) -m pytest ./test -v -s +# ## Run pytest +# test: +# $(PYTHON_INTERPRETER) -m pytest ./test -v -s -## Export project requirements in multiple formats -doc_reqs: - conda env export --no-builds --from-history --name $(PROJECT_NAME) > requirements/environment.min.yaml - conda env export --name $(PROJECT_NAME) > requirements/environment.max.yaml - $(PYTHON_INTERPRETER) -m pip freeze > requirements/pip.conda.txt - cd requirements && conda-lock -f environment.max.yaml -p linux-64 +# ## Export project requirements in multiple formats +# doc_reqs: +# conda env export --no-builds --from-history --name $(PROJECT_NAME) > requirements/environment.min.yaml +# conda env export --name $(PROJECT_NAME) > requirements/environment.max.yaml +# $(PYTHON_INTERPRETER) -m pip freeze > requirements/pip.conda.txt +# cd requirements && conda-lock -f environment.max.yaml -p linux-64 -################################################################################# -# PROJECT RULES # -################################################################################# +# ################################################################################# +# # PROJECT RULES # +# ################################################################################# -################################################################################# -# Self Documenting Commands # -################################################################################# +# ################################################################################# +# # Self Documenting Commands # +# ################################################################################# -.DEFAULT_GOAL := help +# .DEFAULT_GOAL := help -# Inspired by -# sed script explained: -# /^##/: -# * save line in hold space -# * purge line -# * Loop: -# * append newline + line to hold space -# * go to next line -# * if line starts with doc comment, strip comment character off and loop -# * remove target prerequisites -# * append hold space (+ newline) to line -# * replace newline plus comments by `---` -# * print line -# Separate expressions are necessary because labels cannot be delimited by -# semicolon; see -.PHONY: help -help: - @echo "$$(tput bold)Available rules:$$(tput sgr0)" - @echo - @sed -n -e "/^## / { \ - h; \ - s/.*//; \ - :doc" \ - -e "H; \ - n; \ - s/^## //; \ - t doc" \ - -e "s/:.*//; \ - G; \ - s/\\n## /---/; \ - s/\\n/ /g; \ - p; \ - }" ${MAKEFILE_LIST} \ - | LC_ALL='C' sort --ignore-case \ - | awk -F '---' \ - -v ncol=$$(tput cols) \ - -v indent=19 \ - -v col_on="$$(tput setaf 6)" \ - -v col_off="$$(tput sgr0)" \ - '{ \ - printf "%s%*s%s ", col_on, -indent, $$1, col_off; \ - n = split($$2, words, " "); \ - line_length = ncol - indent; \ - for (i = 1; i <= n; i++) { \ - line_length -= length(words[i]) + 1; \ - if (line_length <= 0) { \ - line_length = ncol - indent - length(words[i]) - 1; \ - printf "\n%*s ", -indent, " "; \ - } \ - printf "%s ", words[i]; \ - } \ - printf "\n"; \ - }' \ - | more $(shell test $(shell uname) = Darwin && echo '--no-init --raw-control-chars') +# # Inspired by +# # sed script explained: +# # /^##/: +# # * save line in hold space +# # * purge line +# # * Loop: +# # * append newline + line to hold space +# # * go to next line +# # * if line starts with doc comment, strip comment character off and loop +# # * remove target prerequisites +# # * append hold space (+ newline) to line +# # * replace newline plus comments by `---` +# # * print line +# # Separate expressions are necessary because labels cannot be delimited by +# # semicolon; see +# .PHONY: help +# help: +# @echo "$$(tput bold)Available rules:$$(tput sgr0)" +# @echo +# @sed -n -e "/^## / { \ +# h; \ +# s/.*//; \ +# :doc" \ +# -e "H; \ +# n; \ +# s/^## //; \ +# t doc" \ +# -e "s/:.*//; \ +# G; \ +# s/\\n## /---/; \ +# s/\\n/ /g; \ +# p; \ +# }" ${MAKEFILE_LIST} \ +# | LC_ALL='C' sort --ignore-case \ +# | awk -F '---' \ +# -v ncol=$$(tput cols) \ +# -v indent=19 \ +# -v col_on="$$(tput setaf 6)" \ +# -v col_off="$$(tput sgr0)" \ +# '{ \ +# printf "%s%*s%s ", col_on, -indent, $$1, col_off; \ +# n = split($$2, words, " "); \ +# line_length = ncol - indent; \ +# for (i = 1; i <= n; i++) { \ +# line_length -= length(words[i]) + 1; \ +# if (line_length <= 0) { \ +# line_length = ncol - indent - length(words[i]) - 1; \ +# printf "\n%*s ", -indent, " "; \ +# } \ +# printf "%s ", words[i]; \ +# } \ +# printf "\n"; \ +# }' \ +# | more $(shell test $(shell uname) = Darwin && echo '--no-init --raw-control-chars') diff --git a/{{ cookiecutter.repo_name }}/maskfile.md b/{{ cookiecutter.repo_name }}/maskfile.md new file mode 100644 index 0000000..bf076b0 --- /dev/null +++ b/{{ cookiecutter.repo_name }}/maskfile.md @@ -0,0 +1,25 @@ +# Tasks + +Tasks running for [mask](https://github.com/jacobdeichert/mask). + + +## freeze +> record pip and conda requirements + +```sh +export PROJECT_NAME={{ cookiecutter.repo_name }} +mkdir -p requirements +conda env export --no-builds --from-history --name $(PROJECT_NAME) > requirements/environment.min.yaml +conda env export --name $(PROJECT_NAME) > requirements/environment.max.yaml +$(PYTHON_INTERPRETER) -m pip freeze > requirements/pip.conda.txt +cd requirements && conda-lock -f environment.max.yaml -p linux-64 +``` + +## create_environment + +```sh +export PROJECT_NAME={{ cookiecutter.repo_name }} +@echo ">>> Detected conda, creating conda environment." +conda env create --name $(PROJECT_NAME) python=3 -f ./requirements/environment.yaml +@echo ">>> New conda env created. Activate with:\nsource activate $(PROJECT_NAME)" +```