From fe43add16f5ac32837d265bf26052db6812d305a Mon Sep 17 00:00:00 2001 From: Aneesh Karve Date: Mon, 10 Jun 2024 12:29:04 -0700 Subject: [PATCH 1/5] proper tty handling for pipes --- Makefile | 1 + src/bipsea/bipsea.py | 10 +++------- test-readme.sh | 20 ++++++++++++++------ 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/Makefile b/Makefile index c0f251d..c81acaa 100644 --- a/Makefile +++ b/Makefile @@ -51,6 +51,7 @@ check:: poetry run black . --check poetry run isort . --check poetry run flake8 . --ignore=E501,W503 + bash -n *.sh lint:: isort . diff --git a/src/bipsea/bipsea.py b/src/bipsea/bipsea.py index 384bf9f..def010d 100644 --- a/src/bipsea/bipsea.py +++ b/src/bipsea/bipsea.py @@ -2,7 +2,6 @@ import logging import re -import select import sys import click @@ -307,12 +306,9 @@ def no_empty_param(name: str, val, msg="Must not be empty."): def try_for_pipe_input(): - stdin, _, _ = select.select([sys.stdin], [], [], TIMEOUT) - if stdin: - lines = sys.stdin.readlines() - if lines: - # get just the last line because there might be a warning above - return lines[-1].strip() + if not sys.stdin.isatty(): + return sys.stdin.read().strip() + return "" if __name__ == "__main__": diff --git a/test-readme.sh b/test-readme.sh index 8701a33..444c75d 100644 --- a/test-readme.sh +++ b/test-readme.sh @@ -11,20 +11,28 @@ poetry run bipsea validate --help poetry run bipsea xprv --help poetry run bipsea derive --help -poetry run bipsea mnemonic | poetry run bipsea validate +poetry run bipsea mnemonic | poetry run bipsea validate | poetry run bipsea xprv | bipsea derive -a mnemonic -n 12 -poetry run bipsea xprv -m "$MNEMONIC" | poetry run bipsea derive -a mnemonic -n 12 +poetry run bipsea mnemonic -t jpn -n 15 + +poetry run bipsea mnemonic -n 12 --pretty poetry run bipsea mnemonic -t spa -n 12 | poetry run bipsea validate -f spa +poetry run bipsea mnemonic | poetry run bipsea validate + +poetry run bipsea mnemonic | poetry run bipsea validate | poetry run bipsea xprv + +poetry run bipsea xprv -m "$MNEMONIC" | poetry run bipsea derive -a mnemonic -n 12 + poetry run bipsea validate -f free -m "123456123456123456" | poetry run bipsea xprv poetry run bipsea validate -f free -m "$(cat input.txt)" -poetry run bipsea xprv -m "$MNEMONIC" | poetry run bipsea derive -a base85 +poetry run bipsea validate -m $MNEMONIC | poetry run bipsea xprv | poetry run bipsea derive -a base85 -poetry run bipsea xprv -m "$MNEMONIC" | poetry run bipsea derive -a mnemonic -t jpn -n 12 +poetry run bipsea validate -m "$MNEMONIC" | poetry run bipsea xprv | poetry run bipsea derive -a mnemonic -t jpn -n 12 -poetry run bipsea xprv -m "$MNEMONIC" | poetry run bipsea derive -a drng -n 1000 +poetry run bipsea validate -m "$MNEMONIC" | poetry run bipsea xprv | poetry run bipsea derive -a drng -n 1000 -poetry run bipsea xprv -m "$MNEMONIC" | poetry run bipsea derive -a dice -n 100 -s 6 +poetry run bipsea validate -m "$MNEMONIC" | poetry run bipsea xprv | poetry run bipsea derive -a dice -n 100 -s 6 From 58b3424cfc06769af5161572144d1d3128c0eff5 Mon Sep 17 00:00:00 2001 From: Aneesh Karve Date: Mon, 10 Jun 2024 12:30:09 -0700 Subject: [PATCH 2/5] lock and version --- poetry.lock | 6 +++--- pyproject.toml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index f8f4930..47d4b56 100644 --- a/poetry.lock +++ b/poetry.lock @@ -729,13 +729,13 @@ files = [ [[package]] name = "more-itertools" -version = "10.2.0" +version = "10.3.0" description = "More routines for operating on iterables, beyond itertools" optional = false python-versions = ">=3.8" files = [ - {file = "more-itertools-10.2.0.tar.gz", hash = "sha256:8fccb480c43d3e99a00087634c06dd02b0d50fbf088b380de5a41a015ec239e1"}, - {file = "more_itertools-10.2.0-py3-none-any.whl", hash = "sha256:686b06abe565edfab151cb8fd385a05651e1fdf8f0a14191e4439283421f8684"}, + {file = "more-itertools-10.3.0.tar.gz", hash = "sha256:e5d93ef411224fbcef366a6e8ddc4c5781bc6359d43412a65dd5964e46111463"}, + {file = "more_itertools-10.3.0-py3-none-any.whl", hash = "sha256:ea6a02e24a9161e51faad17a8782b92a0df82c12c1c8886fec7f0c3fa1a1b320"}, ] [[package]] diff --git a/pyproject.toml b/pyproject.toml index 78c4f25..279b8ee 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "bipsea" -version = "1.1.0" +version = "1.1.1" description = "Composable Python CLI for Bitcoin mnemonics and BIP-85 secrets." readme = "README.md" authors = ["Aneesh Karve "] From d91c358d157f1e6e2921916970ff8fb15b8b1894 Mon Sep 17 00:00:00 2001 From: Aneesh Karve Date: Mon, 10 Jun 2024 12:40:37 -0700 Subject: [PATCH 3/5] Organize scripts --- Makefile | 6 +++--- poetry.lock | 13 ++++++++++++- pyproject.toml | 1 + download-lists.sh => scripts/download-lists.sh | 0 test-readme.sh => scripts/test-readme.sh | 2 +- 5 files changed, 17 insertions(+), 5 deletions(-) rename download-lists.sh => scripts/download-lists.sh (100%) rename test-readme.sh => scripts/test-readme.sh (92%) diff --git a/Makefile b/Makefile index c81acaa..20454a8 100644 --- a/Makefile +++ b/Makefile @@ -14,7 +14,7 @@ test-dist:: clean build install-dist test-readme REDIRECT_OUTPUT ?= > /dev/null test-readme:: - bash test-readme.sh $(REDIRECT_OUTPUT) + bash scripts/test-readme.sh $(REDIRECT_OUTPUT) push:: test-fast git-off-main git-no-unsaved @branch=$$(git symbolic-ref --short HEAD); \ @@ -24,7 +24,7 @@ build: install-ci poetry build download-lists:: - bash download-lists.sh + bash scripts/download-lists.sh clean:: find . -type d -name "__pycache__" -exec rm -rf {} + @@ -51,7 +51,7 @@ check:: poetry run black . --check poetry run isort . --check poetry run flake8 . --ignore=E501,W503 - bash -n *.sh + bash -n scripts/*.sh lint:: isort . diff --git a/poetry.lock b/poetry.lock index 47d4b56..b4f323e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1284,6 +1284,17 @@ files = [ {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, ] +[[package]] +name = "toml" +version = "0.10.2" +description = "Python Library for Tom's Obvious, Minimal Language" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, + {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, +] + [[package]] name = "tomli" version = "2.0.1" @@ -1456,4 +1467,4 @@ test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", [metadata] lock-version = "2.0" python-versions = ">=3.8.1, <4.0" -content-hash = "6b6e24aabad5de2972ca9960ad194567f66944c0873b2f73405cedf492738687" +content-hash = "5d18380aa2462972e8c08f63f7a657750b13f2ee829fe65366d98b78fcd084b8" diff --git a/pyproject.toml b/pyproject.toml index 279b8ee..b5272ad 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,6 +39,7 @@ importlib-resources = { version = "^6.4.0", python = "<3.9" } pycryptodome = "~3.20.0" pytest = "~8.2.1" pytest-xdist = "~3.6.1" +toml = "^0.10.2" [tool.poetry.scripts] bipsea = "bipsea.bipsea:cli" diff --git a/download-lists.sh b/scripts/download-lists.sh similarity index 100% rename from download-lists.sh rename to scripts/download-lists.sh diff --git a/test-readme.sh b/scripts/test-readme.sh similarity index 92% rename from test-readme.sh rename to scripts/test-readme.sh index 444c75d..7191e77 100644 --- a/test-readme.sh +++ b/scripts/test-readme.sh @@ -29,7 +29,7 @@ poetry run bipsea validate -f free -m "123456123456123456" | poetry run bipsea x poetry run bipsea validate -f free -m "$(cat input.txt)" -poetry run bipsea validate -m $MNEMONIC | poetry run bipsea xprv | poetry run bipsea derive -a base85 +poetry run bipsea validate -m "$MNEMONIC" | poetry run bipsea xprv | poetry run bipsea derive -a base85 poetry run bipsea validate -m "$MNEMONIC" | poetry run bipsea xprv | poetry run bipsea derive -a mnemonic -t jpn -n 12 From a7da938468274375743e2e22872f934f825d3f4a Mon Sep 17 00:00:00 2001 From: Aneesh Karve Date: Mon, 10 Jun 2024 12:51:23 -0700 Subject: [PATCH 4/5] touch file --- scripts/test-readme.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/test-readme.sh b/scripts/test-readme.sh index 7191e77..2445816 100644 --- a/scripts/test-readme.sh +++ b/scripts/test-readme.sh @@ -1,4 +1,5 @@ #!/bin/bash + set -e MNEMONIC="elder major green sting survey canoe inmate funny bright jewel anchor volcano" From c3b002ca6be3c9aa9b239f66b06848c8fcf8e344 Mon Sep 17 00:00:00 2001 From: Aneesh Karve Date: Mon, 10 Jun 2024 12:55:55 -0700 Subject: [PATCH 5/5] touch up syntax and whitespace --- scripts/test-readme.sh | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/scripts/test-readme.sh b/scripts/test-readme.sh index 2445816..870c638 100644 --- a/scripts/test-readme.sh +++ b/scripts/test-readme.sh @@ -12,28 +12,21 @@ poetry run bipsea validate --help poetry run bipsea xprv --help poetry run bipsea derive --help -poetry run bipsea mnemonic | poetry run bipsea validate | poetry run bipsea xprv | bipsea derive -a mnemonic -n 12 +poetry run bipsea mnemonic | poetry run bipsea validate | poetry run bipsea xprv | poetry run bipsea derive -a mnemonic -n 12 poetry run bipsea mnemonic -t jpn -n 15 - poetry run bipsea mnemonic -n 12 --pretty - poetry run bipsea mnemonic -t spa -n 12 | poetry run bipsea validate -f spa poetry run bipsea mnemonic | poetry run bipsea validate - poetry run bipsea mnemonic | poetry run bipsea validate | poetry run bipsea xprv poetry run bipsea xprv -m "$MNEMONIC" | poetry run bipsea derive -a mnemonic -n 12 poetry run bipsea validate -f free -m "123456123456123456" | poetry run bipsea xprv - poetry run bipsea validate -f free -m "$(cat input.txt)" poetry run bipsea validate -m "$MNEMONIC" | poetry run bipsea xprv | poetry run bipsea derive -a base85 - poetry run bipsea validate -m "$MNEMONIC" | poetry run bipsea xprv | poetry run bipsea derive -a mnemonic -t jpn -n 12 - poetry run bipsea validate -m "$MNEMONIC" | poetry run bipsea xprv | poetry run bipsea derive -a drng -n 1000 - poetry run bipsea validate -m "$MNEMONIC" | poetry run bipsea xprv | poetry run bipsea derive -a dice -n 100 -s 6