[*.sql]
indent_size = 2
+max_line_length = 80
[*.{yaml,yml}]
indent_size = 2
+max_line_length = 80
[Makefile]
max_line_length = 79
-[{COMMIT_EDITMSG,MERGE_MSG,SQUASH_MSG}]
+[{COMMIT_EDITMSG,MERGE_MSG,SQUASH_MSG,git-rebase-todo}]
max_line_length = 72
--- /dev/null
+source .venv/bin/activate
+unset PS1
+---
dist: xenial
-os: ['linux']
+os: ["linux"]
language: python
python:
-- '3.6'
+ - "3.6"
script:
-- make
-- make test
-- make clean
-notifications:
- slack:
- secure: TCGuxW6k2tewO6JUm1BXy5NIEUh6QwjrkMLpdFCpZZwMz49UVO+i8fQKQWB9jTvGyq9Ya+NbW6jfxgJUYfFtmUmfXNCZ/LsKVu3hMPQ5/0yAIsGJayXxCPhIQYmEnA6BZnfnhoYt5R6U5NfLy8WyDwqS3b7uDUWfyxmllunWPNMY5IptrZmOXVSs5s7zqp1pqm9hjN28WiaEzOifsEygai2ZMsmxRUMhrzncRxyhOmw3APyMAvAsHgJw/nbdF1ux7lmvvbFQpOwzDkPdZXcbRdmfruvphaKfHT5TS48Aml81KdKDnk+VMoxD/U/wSW+nnOM0ZcWyYfFuh7/vndF2aMAP/PDq7iAESyFN3YIGXNhGTtHUPLRw7eWoO1CGJqvpkFl2oDj6GbzkO9zsoLg+qxoM7bX+P/ynAQ22M3e/VeSTuC1t8mrHnJZoDTMYrqQRQJDOT0QflZpMRlW5Du/SAkijGURaxGcpR5dt8KP19bd+Sm9k77509nQ576BNaHPn/rJOqdi3LYInMr0VTin/fghfTiPqy4hB3jzV7tl/0jTYAVsbAW73U2KFS95d7r9/BOQptYcCZgpGZu8iT2Q8iQVlUaWGDnGMzo1lWmsdwrEWpofBwC7jeYFDSwRfkdojQfVM4JBKpT5mbqHavRjMKCYWtDk7X6nQIWs32YaWbGQ=
+ - make build
+ - make test
+ - make clean
-.DEFAULT_GOAL := build
+SHELL=/bin/bash
-clean:
- find sql/ -name __pycache__ -o -name .pytest_cache | xargs rm -rf
+.DEFAULT_GOAL := _help
+
+# NOTE: must put a <TAB> character and two pound "\t##" to show up in this list. Keep it brief! IGNORE_ME
+.PHONY: _help
+_help:
+ @grep -h "##" $(MAKEFILE_LIST) | grep -v IGNORE_ME | sed -e 's/##//' | column -t -s $$'\t'
+
+.PHONY: clean
+clean: ## Clean up build intermediates
rm -f sql/nt.sqlite
+ rm -rf .mypy_cache/ .pytest_cache/
+ find sql/ -name __pycache__ -o -name .pytest_cache | xargs rm -rf
-build:
- python sql/__init__.py
+.PHONY: build
+build: ## Build sqlite image
+ python -m sql
-test:
- sqlite3 sql/nt.sqlite \
+.PHONY: test
+test: ## Cursory sanity check
+ sqlite3 -csv -header \
+ sql/nt.sqlite \
'SELECT * FROM bf_eqs;' \
'SELECT * FROM biometrics;' \
'SELECT * FROM bmr_eqs;' \
'SELECT * FROM meal_name;' \
'SELECT * FROM version;' \
-install:
+.PHONY: install
+install: ## Copy sqlite file into ~/.nutra
mkdir -p ~/.nutra
- mv sql/nt.sqlite ~/.nutra
+ cp sql/nt.sqlite ~/.nutra
--- /dev/null
+autopep8==1.6
+bandit==1.7.4
+black==22.3
+doc8==0.11.2
+flake8==4.0.1
+mypy==0.961
+pylint==2.14.3
+yamllint==1.26.3
os.remove(NT_DB_NAME)
if verbose:
+ # pylint: disable=consider-using-f-string
print("\nPack %s" % NT_DB_NAME)
con = sqlite3.connect(NT_DB_NAME)
cur = con.cursor()
continue
table_name = os.path.splitext(os.path.basename(file_path))[0]
file_path_full = os.path.join("data", file_path)
+ # print(table_name)
# Loop over CSV files
with open(file_path_full, encoding="utf-8") as csv_file:
dict_reader = csv.DictReader(csv_file)
values = ",".join("?" * len(dict_reader.fieldnames))
reader = csv.reader(csv_file)
+ # pylint: disable=consider-using-f-string
query = "INSERT INTO {0} VALUES ({1});".format( # nosec: B608
table_name, values
)
--- /dev/null
+"""Call this with python -m sql"""
+# pylint: disable=import-error
+from sql import build_ntsqlite
+
+if __name__ == "__main__":
+ build_ntsqlite(verbose=True)
-id,name,eula,gender,dob,act_lvl,goal_wt,goal_bf,bmr_id,bf_id,created
-1,Shane,,MALE,1993-01-01,2,78,0.12,1,1,1601067725
-2,Mark,,MALE,1957-01-01,2,72,0.14,1,1,1601068574
-3,Rocky,,DOG,2007-08-01,2,7.3,,1,1,1601068718
+id,name,gender,dob,act_lvl,goal_wt,goal_bf,bmr_id,bf_id,created
+1,Shane,MALE,1993-01-01,2,78,0.12,1,1,1601067725
+2,Mark,MALE,1957-01-01,2,72,0.14,1,1,1601068574
+3,Rocky,DOG,2007-08-01,2,7.3,,1,1,1601068718