lint travis, tidy makefile; add __main__.py 8/head
authorShane Jaroch <nutratracker@protonmail.com>
Tue, 7 Jun 2022 17:18:58 +0000 (13:18 -0400)
committerShane Jaroch <nutratracker@protonmail.com>
Sun, 19 Jun 2022 04:34:07 +0000 (00:34 -0400)
drop eula column from profiles.csv

.editorconfig
.envrc [new file with mode: 0644]
.travis.yml
LICENSE [moved from LICENSE.txt with 100% similarity]
Makefile
requirements-lint.txt [new file with mode: 0644]
sql/__init__.py
sql/__main__.py [new file with mode: 0644]
sql/data/profiles.csv

index 39f8d0db186b36cdecb160de8e1b161c829cd369..30b02fd39331f0fc5ba802cf067afd317f6f2b09 100644 (file)
@@ -17,10 +17,12 @@ max_line_length = 88
 
 [*.sql]
 indent_size = 2
+max_line_length = 80
 
 
 [*.{yaml,yml}]
 indent_size = 2
+max_line_length = 80
 
 
 [Makefile]
@@ -37,6 +39,6 @@ trim_trailing_whitespace = false
 max_line_length = 79
 
 
-[{COMMIT_EDITMSG,MERGE_MSG,SQUASH_MSG}]
+[{COMMIT_EDITMSG,MERGE_MSG,SQUASH_MSG,git-rebase-todo}]
 max_line_length = 72
 
diff --git a/.envrc b/.envrc
new file mode 100644 (file)
index 0000000..1c21d04
--- /dev/null
+++ b/.envrc
@@ -0,0 +1,2 @@
+source .venv/bin/activate
+unset PS1
index c40aa8814b5f1c0dc42e684f8e7d6a13239264ef..9a28983b94410440b4bb0673d743df8484df5aff 100644 (file)
@@ -1,12 +1,10 @@
+---
 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
similarity index 100%
rename from LICENSE.txt
rename to LICENSE
index b4c3296b64e779da141c72ae83c52fa40865028e..5bb21109e492270690ea0ca32e1dad20c2976b65 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,20 +1,33 @@
-.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
diff --git a/requirements-lint.txt b/requirements-lint.txt
new file mode 100644 (file)
index 0000000..136d1b4
--- /dev/null
@@ -0,0 +1,8 @@
+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
index e44d2531d559cd967d3cec82d0602ba63849c43a..29f89fe794c9567c4a6b610908f301f5b9b7e42d 100755 (executable)
@@ -20,6 +20,7 @@ def build_ntsqlite(verbose=False) -> bool:
         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()
@@ -36,12 +37,14 @@ def build_ntsqlite(verbose=False) -> bool:
             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
             )
diff --git a/sql/__main__.py b/sql/__main__.py
new file mode 100644 (file)
index 0000000..1c9ad09
--- /dev/null
@@ -0,0 +1,6 @@
+"""Call this with python -m sql"""
+# pylint: disable=import-error
+from sql import build_ntsqlite
+
+if __name__ == "__main__":
+    build_ntsqlite(verbose=True)
index 94a2f64cce16f45601818188097e806d8b8ec2c9..9a8cd3ba90fae7bbc4f53dff5263bcf347e3ba42 100644 (file)
@@ -1,4 +1,4 @@
-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