From f4d00ab8f7c05a298ef63e7a8935b72af4108818 Mon Sep 17 00:00:00 2001 From: Sergey Vlasov Date: Mon, 10 May 2021 11:40:26 +0300 Subject: [PATCH 01/10] Nix: Reorder dependencies in pyproject.toml to match requirements.txt --- nix/pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nix/pyproject.toml b/nix/pyproject.toml index 62d49fad5946..062b22dc3898 100644 --- a/nix/pyproject.toml +++ b/nix/pyproject.toml @@ -12,11 +12,11 @@ python = "^3.8" appdirs = "^1.4.4" argcomplete = "^1.12.2" colorama = "^0.4.4" +dotty-dict = "^1.3.0" hjson = "^3.0.2" +jsonschema = "^3.2.0" milc = "^1.1.0" Pygments = "^2.8.0" -dotty-dict = "^1.3.0" -jsonschema = "^3.2.0" [tool.poetry.dev-dependencies] nose2 = "^0.10.0" From 4d94497d174956c95a0d100c46032ab8664997a2 Mon Sep 17 00:00:00 2001 From: Sergey Vlasov Date: Mon, 10 May 2021 11:45:12 +0300 Subject: [PATCH 02/10] Nix: Update milc version in pyproject.toml to match requirements.txt The lock file already contained milc 1.3.0, but pyproject.toml still specified the minimum required version as 1.1.0, which is not compatible with the current Python code. --- nix/poetry.lock | 2 +- nix/pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/nix/poetry.lock b/nix/poetry.lock index 74d6e7dd580f..096dfeef67a6 100644 --- a/nix/poetry.lock +++ b/nix/poetry.lock @@ -228,7 +228,7 @@ python-versions = "*" [metadata] lock-version = "1.1" python-versions = "^3.8" -content-hash = "6adb87c61d9eacf55e4e80bc6c73325e4e4854a792e3881ff448b6ee1cb75091" +content-hash = "a0a964993829a7d61577278b96432145084833de06275e0cd4688e2d8cd340a7" [metadata.files] appdirs = [ diff --git a/nix/pyproject.toml b/nix/pyproject.toml index 062b22dc3898..bd94dbc58970 100644 --- a/nix/pyproject.toml +++ b/nix/pyproject.toml @@ -15,7 +15,7 @@ colorama = "^0.4.4" dotty-dict = "^1.3.0" hjson = "^3.0.2" jsonschema = "^3.2.0" -milc = "^1.1.0" +milc = "^1.3.0" Pygments = "^2.8.0" [tool.poetry.dev-dependencies] From 065f8d54dee1ea0049fd4df6ab82be46e31a9d40 Mon Sep 17 00:00:00 2001 From: Sergey Vlasov Date: Mon, 10 May 2021 11:54:39 +0300 Subject: [PATCH 03/10] Nix: Remove `Wave` from pyproject.toml Apparenty the `wave` entry was added to requirements-dev.txt by mistake (the code actually uses the builtin `wave` package, not the `Wave` project that is available on PyPi). That entry has already been removed from requirements-dev.txt; remove it from pyproject.toml too. --- nix/poetry.lock | 14 +------------- nix/pyproject.toml | 1 - 2 files changed, 1 insertion(+), 14 deletions(-) diff --git a/nix/poetry.lock b/nix/poetry.lock index 096dfeef67a6..5923832e830b 100644 --- a/nix/poetry.lock +++ b/nix/poetry.lock @@ -209,14 +209,6 @@ category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" -[[package]] -name = "wave" -version = "0.0.2" -description = "Whole Architecture Verification" -category = "dev" -optional = false -python-versions = "*" - [[package]] name = "yapf" version = "0.30.0" @@ -228,7 +220,7 @@ python-versions = "*" [metadata] lock-version = "1.1" python-versions = "^3.8" -content-hash = "a0a964993829a7d61577278b96432145084833de06275e0cd4688e2d8cd340a7" +content-hash = "d2f4ca3786330f60ee0964457e35e683f5babec8ce6fd61fcaf648a128fd805b" [metadata.files] appdirs = [ @@ -359,10 +351,6 @@ six = [ {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"}, {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"}, ] -wave = [ - {file = "Wave-0.0.2.tar.gz", hash = "sha256:5a895bb85e04e38c82dba90d66a5ae8f488b50c58f3fc4df868a5bcdcabb8632"}, - {file = "Wave-0.0.2.zip", hash = "sha256:5187f49497287d218cc83d4cd1e5299dc31485ab3ed32abbaa9e95d8f73c4095"}, -] yapf = [ {file = "yapf-0.30.0-py2.py3-none-any.whl", hash = "sha256:3abf61ba67cf603069710d30acbc88cfe565d907e16ad81429ae90ce9651e0c9"}, {file = "yapf-0.30.0.tar.gz", hash = "sha256:3000abee4c28daebad55da6c85f3cd07b8062ce48e2e9943c8da1b9667d48427"}, diff --git a/nix/pyproject.toml b/nix/pyproject.toml index bd94dbc58970..629d086a6a46 100644 --- a/nix/pyproject.toml +++ b/nix/pyproject.toml @@ -23,7 +23,6 @@ nose2 = "^0.10.0" flake8 = "^3.8.4" pep8-naming = "^0.11.1" yapf = "^0.30.0" -Wave = "^0.0.2" [build-system] requires = ["poetry-core>=1.0.0"] From 02c59dd083c02ae3149c23e36ccc357d79f4a61e Mon Sep 17 00:00:00 2001 From: Sergey Vlasov Date: Mon, 10 May 2021 12:08:35 +0300 Subject: [PATCH 04/10] Nix: Add `hid` and `pyusb` to Python dependencies Recent updated added `hid` and `pyusb` to requirements-dev.txt; update pyproject.toml accordingly. In addition, these Python modules use native libraries (`hidapi` and `libusb1`), and need Nix-specific changes to find those libraries; add the needed changes to shell.nix as overrides. The `pyusb` override was copied from the corresponding nixpkgs package; the `hid` override is new, because that Python package is not in nixpkgs at the moment. --- nix/poetry.lock | 26 +++++++++++++++++++++++++- nix/pyproject.toml | 2 ++ shell.nix | 24 ++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 1 deletion(-) diff --git a/nix/poetry.lock b/nix/poetry.lock index 5923832e830b..48c4892630e0 100644 --- a/nix/poetry.lock +++ b/nix/poetry.lock @@ -85,6 +85,14 @@ python-versions = "*" [package.dependencies] flake8 = "*" +[[package]] +name = "hid" +version = "1.0.4" +description = "ctypes bindings for hidapi" +category = "dev" +optional = false +python-versions = "*" + [[package]] name = "hjson" version = "3.0.2" @@ -190,6 +198,14 @@ category = "main" optional = false python-versions = ">=3.5" +[[package]] +name = "pyusb" +version = "1.1.1" +description = "Python USB access module" +category = "dev" +optional = false +python-versions = "*" + [[package]] name = "setuptools-scm" version = "6.0.1" @@ -220,7 +236,7 @@ python-versions = "*" [metadata] lock-version = "1.1" python-versions = "^3.8" -content-hash = "d2f4ca3786330f60ee0964457e35e683f5babec8ce6fd61fcaf648a128fd805b" +content-hash = "a25336474bfc7ca01f208b95d529c1e5d8c82c732e1609ace4931006869ad3e8" [metadata.files] appdirs = [ @@ -304,6 +320,10 @@ flake8-polyfill = [ {file = "flake8-polyfill-1.0.2.tar.gz", hash = "sha256:e44b087597f6da52ec6393a709e7108b2905317d0c0b744cdca6208e670d8eda"}, {file = "flake8_polyfill-1.0.2-py2.py3-none-any.whl", hash = "sha256:12be6a34ee3ab795b19ca73505e7b55826d5f6ad7230d31b18e106400169b9e9"}, ] +hid = [ + {file = "hid-1.0.4-py2-none-any.whl", hash = "sha256:fba9913f07030b01059b822b24c83b370ca3f444e9e6443bd662f9f1aa3f0780"}, + {file = "hid-1.0.4.tar.gz", hash = "sha256:f61b0382f37a334bc8ba8604bc84b94875ee4f594fbbaf82b2c3b3e827883fc1"}, +] hjson = [ {file = "hjson-3.0.2-py3-none-any.whl", hash = "sha256:5546438bf4e1b52bc964c6a47c4ed10fa5fba8a1b264e22efa893e333baad2db"}, {file = "hjson-3.0.2.tar.gz", hash = "sha256:2838fd7200e5839ea4516ece953f3a19892c41089f0d933ba3f68e596aacfcd5"}, @@ -343,6 +363,10 @@ pygments = [ pyrsistent = [ {file = "pyrsistent-0.17.3.tar.gz", hash = "sha256:2e636185d9eb976a18a8a8e96efce62f2905fea90041958d8cc2a189756ebf3e"}, ] +pyusb = [ + {file = "pyusb-1.1.1-py3-none-any.whl", hash = "sha256:f18eb813d3a1439918071234589162c2f209a19adbeffeb1377ce078a4aebc70"}, + {file = "pyusb-1.1.1.tar.gz", hash = "sha256:7d449ad916ce58aff60b89aae0b65ac130f289c24d6a5b7b317742eccffafc38"}, +] setuptools-scm = [ {file = "setuptools_scm-6.0.1-py3-none-any.whl", hash = "sha256:c3bd5f701c8def44a5c0bfe8d407bef3f80342217ef3492b951f3777bd2d915c"}, {file = "setuptools_scm-6.0.1.tar.gz", hash = "sha256:d1925a69cb07e9b29416a275b9fadb009a23c148ace905b2fb220649a6c18e92"}, diff --git a/nix/pyproject.toml b/nix/pyproject.toml index 629d086a6a46..75ee63b89604 100644 --- a/nix/pyproject.toml +++ b/nix/pyproject.toml @@ -21,7 +21,9 @@ Pygments = "^2.8.0" [tool.poetry.dev-dependencies] nose2 = "^0.10.0" flake8 = "^3.8.4" +hid = "^1.0.4" pep8-naming = "^0.11.1" +pyusb = "^1.1.1" yapf = "^0.30.0" [build-system] diff --git a/shell.nix b/shell.nix index e82436ae1196..e164b74acf99 100644 --- a/shell.nix +++ b/shell.nix @@ -10,6 +10,30 @@ let # files if the requirements*.txt files change pythonEnv = pkgs.poetry2nix.mkPoetryEnv { projectDir = ./nix; + overrides = pkgs.poetry2nix.overrides.withDefaults (self: super: { + hid = super.hid.overridePythonAttrs (old: { + postPatch = + '' + found= + for name in libhidapi-hidraw libhidapi-libusb libhidapi-iohidmanager libhidapi; do + full_path=${pkgs.hidapi.out}/lib/$name${pkgs.stdenv.hostPlatform.extensions.sharedLibrary} + if test -f $full_path; then + found=t + sed -i -e "s|'$name\..*'|'$full_path'|" hid/__init__.py + fi + done + test -n "$found" || { echo "ERROR: No known libraries found in ${pkgs.hidapi.out}/lib, please update/fix this build expression."; exit 1; } + ''; + }); + pyusb = super.pyusb.overridePythonAttrs (old: { + postPatch = + '' + libusb=${pkgs.libusb1.out}/lib/libusb-1.0${pkgs.stdenv.hostPlatform.extensions.sharedLibrary} + test -f $libusb || { echo "ERROR: $libusb doesn't exist, please update/fix this build expression."; exit 1; } + sed -i -e "s|find_library=None|find_library=lambda _:\"$libusb\"|" usb/backend/libusb1.py + ''; + }); + }); }; in From 36055b8a0f6fceca67fa771a0a893b6def493a82 Mon Sep 17 00:00:00 2001 From: Sergey Vlasov Date: Mon, 10 May 2021 12:21:50 +0300 Subject: [PATCH 05/10] Nix: Rename the poetry project to `qmk_firmware` The `qmk` name collides with the name of the QMK CLI package. --- nix/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nix/pyproject.toml b/nix/pyproject.toml index 75ee63b89604..6f1bf06817ba 100644 --- a/nix/pyproject.toml +++ b/nix/pyproject.toml @@ -2,7 +2,7 @@ # It is particularly required by the Nix environment (see shell.nix). To update versions, # normally one would run "poetry update --lock" [tool.poetry] -name = "qmk" +name = "qmk_firmware" version = "0.1.0" description = "" authors = [] From 7c3f080a4fc33277ec9f40f87d87f45917d11733 Mon Sep 17 00:00:00 2001 From: Sergey Vlasov Date: Mon, 10 May 2021 12:27:44 +0300 Subject: [PATCH 06/10] Nix: Add QMK CLI to Python dependencies Current QMK build scripts loudly complain about the missing QMK CLI. The obvious solution is to include `qmk` in the list of Python dependencies in pyproject.toml; this makes the `qmk` executable available in the nix-shell environment, and stops the warnings. Note that any leftover `bin/qmk` uses may become errors after this change, because apparently the Nix wrapper for the `qmk` executable prepends a directory containing some `python3` version to `$PATH`, but that `python3` cannot find the Python packages required by `bin/qmk`. However, if the code uses `$(QMK_BIN)` correctly, it would run the `qmk` executable from `$PATH` instead, which would run properly. --- nix/poetry.lock | 47 ++++++++++++++++++++++++++++++++++++---------- nix/pyproject.toml | 1 + 2 files changed, 38 insertions(+), 10 deletions(-) diff --git a/nix/poetry.lock b/nix/poetry.lock index 48c4892630e0..cbb7bcf71485 100644 --- a/nix/poetry.lock +++ b/nix/poetry.lock @@ -43,7 +43,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" name = "coverage" version = "5.5" description = "Code coverage measurement for Python" -category = "dev" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" @@ -65,7 +65,7 @@ setuptools_scm = "*" name = "flake8" version = "3.9.0" description = "the modular source code checker: pep8 pyflakes and co" -category = "dev" +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" @@ -89,7 +89,7 @@ flake8 = "*" name = "hid" version = "1.0.4" description = "ctypes bindings for hidapi" -category = "dev" +category = "main" optional = false python-versions = "*" @@ -122,7 +122,7 @@ format_nongpl = ["idna", "jsonpointer (>1.13)", "webcolors", "rfc3986-validator name = "mccabe" version = "0.6.1" description = "McCabe checker, plugin for flake8" -category = "dev" +category = "main" optional = false python-versions = "*" @@ -143,7 +143,7 @@ colorama = "*" name = "nose2" version = "0.10.0" description = "unittest2 with plugins, the succesor to nose" -category = "dev" +category = "main" optional = false python-versions = "*" @@ -170,7 +170,7 @@ flake8-polyfill = ">=1.0.2,<2" name = "pycodestyle" version = "2.7.0" description = "Python style guide checker" -category = "dev" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" @@ -178,7 +178,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" name = "pyflakes" version = "2.3.1" description = "passive checker of Python programs" -category = "dev" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" @@ -202,10 +202,33 @@ python-versions = ">=3.5" name = "pyusb" version = "1.1.1" description = "Python USB access module" -category = "dev" +category = "main" optional = false python-versions = "*" +[[package]] +name = "qmk" +version = "0.0.46" +description = "A program to help users work with QMK Firmware." +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +appdirs = "*" +argcomplete = "*" +colorama = "*" +dotty-dict = "*" +flake8 = "*" +hid = "*" +hjson = "*" +jsonschema = ">=3" +milc = ">=1.3.0" +nose2 = "*" +pygments = "*" +pyusb = "*" +yapf = "*" + [[package]] name = "setuptools-scm" version = "6.0.1" @@ -229,14 +252,14 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" name = "yapf" version = "0.30.0" description = "A formatter for Python code." -category = "dev" +category = "main" optional = false python-versions = "*" [metadata] lock-version = "1.1" python-versions = "^3.8" -content-hash = "a25336474bfc7ca01f208b95d529c1e5d8c82c732e1609ace4931006869ad3e8" +content-hash = "017e7af8ce07821faa9aacd1fd04010a138a730bdebf93d80fa2d2123dc1ca5c" [metadata.files] appdirs = [ @@ -367,6 +390,10 @@ pyusb = [ {file = "pyusb-1.1.1-py3-none-any.whl", hash = "sha256:f18eb813d3a1439918071234589162c2f209a19adbeffeb1377ce078a4aebc70"}, {file = "pyusb-1.1.1.tar.gz", hash = "sha256:7d449ad916ce58aff60b89aae0b65ac130f289c24d6a5b7b317742eccffafc38"}, ] +qmk = [ + {file = "qmk-0.0.46-py2.py3-none-any.whl", hash = "sha256:55fb1145fa768ff28d2ad3c7d69432cbaea57b38977e3d20df6938e9d09328bd"}, + {file = "qmk-0.0.46.tar.gz", hash = "sha256:f7a79ee258f7ce5111fbb019d36d85b007d83c1fda3ae54c68c5c03b0685aa2e"}, +] setuptools-scm = [ {file = "setuptools_scm-6.0.1-py3-none-any.whl", hash = "sha256:c3bd5f701c8def44a5c0bfe8d407bef3f80342217ef3492b951f3777bd2d915c"}, {file = "setuptools_scm-6.0.1.tar.gz", hash = "sha256:d1925a69cb07e9b29416a275b9fadb009a23c148ace905b2fb220649a6c18e92"}, diff --git a/nix/pyproject.toml b/nix/pyproject.toml index 6f1bf06817ba..29b336c1561c 100644 --- a/nix/pyproject.toml +++ b/nix/pyproject.toml @@ -17,6 +17,7 @@ hjson = "^3.0.2" jsonschema = "^3.2.0" milc = "^1.3.0" Pygments = "^2.8.0" +qmk = "^0.0.46" [tool.poetry.dev-dependencies] nose2 = "^0.10.0" From 8f6ce3398949192a4f6b701eeebf0cfbfef510c8 Mon Sep 17 00:00:00 2001 From: Steve Purcell Date: Tue, 11 May 2021 15:10:45 +1200 Subject: [PATCH 07/10] Use upstreamed poetry2nix overrides for hid and pyusb --- nix/sources.json | 12 ++++++++++++ shell.nix | 32 +++++--------------------------- 2 files changed, 17 insertions(+), 27 deletions(-) diff --git a/nix/sources.json b/nix/sources.json index 7afca370735b..caf5cb7d2957 100644 --- a/nix/sources.json +++ b/nix/sources.json @@ -22,5 +22,17 @@ "type": "tarball", "url": "https://github.com/NixOS/nixpkgs/archive/c0e881852006b132236cbf0301bd1939bb50867e.tar.gz", "url_template": "https://github.com///archive/.tar.gz" + }, + "poetry2nix": { + "branch": "master", + "description": "Convert poetry projects to nix automagically [maintainer=@adisbladis] ", + "homepage": "", + "owner": "nix-community", + "repo": "poetry2nix", + "rev": "2d27d44397242b28c3f0081e0432e4f6c951f3a1", + "sha256": "06syfg150r59m4kksj5547b5kwxjxjaif5hiljcq966kb9hxsvmv", + "type": "tarball", + "url": "https://github.com/nix-community/poetry2nix/archive/2d27d44397242b28c3f0081e0432e4f6c951f3a1.tar.gz", + "url_template": "https://github.com///archive/.tar.gz" } } diff --git a/shell.nix b/shell.nix index e164b74acf99..a04e251b514b 100644 --- a/shell.nix +++ b/shell.nix @@ -1,39 +1,17 @@ { avr ? true, arm ? true, teensy ? true }: let # We specify sources via Niv: use "niv update nixpkgs" to update nixpkgs, for example. - sources = import ./nix/sources.nix {}; - pkgs = import sources.nixpkgs {}; + sources = import ./nix/sources.nix { }; + pkgs = import sources.nixpkgs { }; + + poetry2nix = pkgs.callPackage (import sources.poetry2nix) { }; # Builds the python env based on nix/pyproject.toml and # nix/poetry.lock Use the "poetry update --lock", "poetry add # --lock" etc. in the nix folder to adjust the contents of those # files if the requirements*.txt files change - pythonEnv = pkgs.poetry2nix.mkPoetryEnv { + pythonEnv = poetry2nix.mkPoetryEnv { projectDir = ./nix; - overrides = pkgs.poetry2nix.overrides.withDefaults (self: super: { - hid = super.hid.overridePythonAttrs (old: { - postPatch = - '' - found= - for name in libhidapi-hidraw libhidapi-libusb libhidapi-iohidmanager libhidapi; do - full_path=${pkgs.hidapi.out}/lib/$name${pkgs.stdenv.hostPlatform.extensions.sharedLibrary} - if test -f $full_path; then - found=t - sed -i -e "s|'$name\..*'|'$full_path'|" hid/__init__.py - fi - done - test -n "$found" || { echo "ERROR: No known libraries found in ${pkgs.hidapi.out}/lib, please update/fix this build expression."; exit 1; } - ''; - }); - pyusb = super.pyusb.overridePythonAttrs (old: { - postPatch = - '' - libusb=${pkgs.libusb1.out}/lib/libusb-1.0${pkgs.stdenv.hostPlatform.extensions.sharedLibrary} - test -f $libusb || { echo "ERROR: $libusb doesn't exist, please update/fix this build expression."; exit 1; } - sed -i -e "s|find_library=None|find_library=lambda _:\"$libusb\"|" usb/backend/libusb1.py - ''; - }); - }); }; in From 1430a2fa2ac9b384fd02f1487a29168fc9cce384 Mon Sep 17 00:00:00 2001 From: Sergey Vlasov Date: Thu, 13 May 2021 20:29:09 +0300 Subject: [PATCH 08/10] Nix: Change Python dependency on `qmk` to wildcard The `qmk = "^0.0.46"` dependency specification automatically added by `poetry add qmk` is not suitable, because it prevents any version upgrades for the `qmk` package due to the special handling of `0.0` for caret requirements. Replace this specification with `"*"`, so that `poetry update --lock` could be used to bump the locked version to the latest available without the need to change `pyproject.toml`. Co-authored-by: Steve Purcell --- nix/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nix/pyproject.toml b/nix/pyproject.toml index 29b336c1561c..a8133618934c 100644 --- a/nix/pyproject.toml +++ b/nix/pyproject.toml @@ -17,7 +17,7 @@ hjson = "^3.0.2" jsonschema = "^3.2.0" milc = "^1.3.0" Pygments = "^2.8.0" -qmk = "^0.0.46" +qmk = "*" [tool.poetry.dev-dependencies] nose2 = "^0.10.0" From 876a963c36cf748783b7fa6ab3bbbc4abda01574 Mon Sep 17 00:00:00 2001 From: Sergey Vlasov Date: Thu, 13 May 2021 20:41:17 +0300 Subject: [PATCH 09/10] Nix: Bump locked versions for Python dependencies Use the latest QMK CLI (0.0.46 -> 0.0.48) and other packages: - argcomplete: 1.12.2 -> 1.12.3 - attrs: 20.3.0 -> 21.2.0 - flake8: 3.9.0 -> 3.9.2 - six: 1.15.0 -> 1.16.0 - pygments: 2.8.1 -> 2.9.0 --- nix/poetry.lock | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/nix/poetry.lock b/nix/poetry.lock index cbb7bcf71485..50d322811c46 100644 --- a/nix/poetry.lock +++ b/nix/poetry.lock @@ -8,7 +8,7 @@ python-versions = "*" [[package]] name = "argcomplete" -version = "1.12.2" +version = "1.12.3" description = "Bash tab completion for argparse" category = "main" optional = false @@ -19,17 +19,17 @@ test = ["coverage", "flake8", "pexpect", "wheel"] [[package]] name = "attrs" -version = "20.3.0" +version = "21.2.0" description = "Classes Without Boilerplate" category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" [package.extras] -dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "furo", "sphinx", "pre-commit"] -docs = ["furo", "sphinx", "zope.interface"] -tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface"] -tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six"] +dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit"] +docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"] +tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface"] +tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins"] [[package]] name = "colorama" @@ -63,7 +63,7 @@ setuptools_scm = "*" [[package]] name = "flake8" -version = "3.9.0" +version = "3.9.2" description = "the modular source code checker: pep8 pyflakes and co" category = "main" optional = false @@ -184,7 +184,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] name = "pygments" -version = "2.8.1" +version = "2.9.0" description = "Pygments is a syntax highlighting package written in Python." category = "main" optional = false @@ -208,7 +208,7 @@ python-versions = "*" [[package]] name = "qmk" -version = "0.0.46" +version = "0.0.48" description = "A program to help users work with QMK Firmware." category = "main" optional = false @@ -242,7 +242,7 @@ toml = ["toml"] [[package]] name = "six" -version = "1.15.0" +version = "1.16.0" description = "Python 2 and 3 compatibility utilities" category = "main" optional = false @@ -259,7 +259,7 @@ python-versions = "*" [metadata] lock-version = "1.1" python-versions = "^3.8" -content-hash = "017e7af8ce07821faa9aacd1fd04010a138a730bdebf93d80fa2d2123dc1ca5c" +content-hash = "5e181d51536240d08c74ba6a46bd0988ee4ca72ac3d5b388965ca8023e9b9a99" [metadata.files] appdirs = [ @@ -267,12 +267,12 @@ appdirs = [ {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"}, ] argcomplete = [ - {file = "argcomplete-1.12.2-py2.py3-none-any.whl", hash = "sha256:17f01a9b9b9ece3e6b07058eae737ad6e10de8b4e149105f84614783913aba71"}, - {file = "argcomplete-1.12.2.tar.gz", hash = "sha256:de0e1282330940d52ea92a80fea2e4b9e0da1932aaa570f84d268939d1897b04"}, + {file = "argcomplete-1.12.3-py2.py3-none-any.whl", hash = "sha256:291f0beca7fd49ce285d2f10e4c1c77e9460cf823eef2de54df0c0fec88b0d81"}, + {file = "argcomplete-1.12.3.tar.gz", hash = "sha256:2c7dbffd8c045ea534921e63b0be6fe65e88599990d8dc408ac8c542b72a5445"}, ] attrs = [ - {file = "attrs-20.3.0-py2.py3-none-any.whl", hash = "sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6"}, - {file = "attrs-20.3.0.tar.gz", hash = "sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700"}, + {file = "attrs-21.2.0-py2.py3-none-any.whl", hash = "sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1"}, + {file = "attrs-21.2.0.tar.gz", hash = "sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb"}, ] colorama = [ {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, @@ -336,8 +336,8 @@ dotty-dict = [ {file = "dotty_dict-1.3.0.tar.gz", hash = "sha256:eb0035a3629ecd84397a68f1f42f1e94abd1c34577a19cd3eacad331ee7cbaf0"}, ] flake8 = [ - {file = "flake8-3.9.0-py2.py3-none-any.whl", hash = "sha256:12d05ab02614b6aee8df7c36b97d1a3b2372761222b19b58621355e82acddcff"}, - {file = "flake8-3.9.0.tar.gz", hash = "sha256:78873e372b12b093da7b5e5ed302e8ad9e988b38b063b61ad937f26ca58fc5f0"}, + {file = "flake8-3.9.2-py2.py3-none-any.whl", hash = "sha256:bf8fd333346d844f616e8d47905ef3a3384edae6b4e9beb0c5101e25e3110907"}, + {file = "flake8-3.9.2.tar.gz", hash = "sha256:07528381786f2a6237b061f6e96610a4167b226cb926e2aa2b6b1d78057c576b"}, ] flake8-polyfill = [ {file = "flake8-polyfill-1.0.2.tar.gz", hash = "sha256:e44b087597f6da52ec6393a709e7108b2905317d0c0b744cdca6208e670d8eda"}, @@ -380,8 +380,8 @@ pyflakes = [ {file = "pyflakes-2.3.1.tar.gz", hash = "sha256:f5bc8ecabc05bb9d291eb5203d6810b49040f6ff446a756326104746cc00c1db"}, ] pygments = [ - {file = "Pygments-2.8.1-py3-none-any.whl", hash = "sha256:534ef71d539ae97d4c3a4cf7d6f110f214b0e687e92f9cb9d2a3b0d3101289c8"}, - {file = "Pygments-2.8.1.tar.gz", hash = "sha256:2656e1a6edcdabf4275f9a3640db59fd5de107d88e8663c5d4e9a0fa62f77f94"}, + {file = "Pygments-2.9.0-py3-none-any.whl", hash = "sha256:d66e804411278594d764fc69ec36ec13d9ae9147193a1740cd34d272ca383b8e"}, + {file = "Pygments-2.9.0.tar.gz", hash = "sha256:a18f47b506a429f6f4b9df81bb02beab9ca21d0a5fee38ed15aef65f0545519f"}, ] pyrsistent = [ {file = "pyrsistent-0.17.3.tar.gz", hash = "sha256:2e636185d9eb976a18a8a8e96efce62f2905fea90041958d8cc2a189756ebf3e"}, @@ -391,16 +391,16 @@ pyusb = [ {file = "pyusb-1.1.1.tar.gz", hash = "sha256:7d449ad916ce58aff60b89aae0b65ac130f289c24d6a5b7b317742eccffafc38"}, ] qmk = [ - {file = "qmk-0.0.46-py2.py3-none-any.whl", hash = "sha256:55fb1145fa768ff28d2ad3c7d69432cbaea57b38977e3d20df6938e9d09328bd"}, - {file = "qmk-0.0.46.tar.gz", hash = "sha256:f7a79ee258f7ce5111fbb019d36d85b007d83c1fda3ae54c68c5c03b0685aa2e"}, + {file = "qmk-0.0.48-py2.py3-none-any.whl", hash = "sha256:414901c4cede03d1864f60e7d35d3d0d4c8f917706db47a3d18638c9b55838a5"}, + {file = "qmk-0.0.48.tar.gz", hash = "sha256:3ca801d295bef68c5e51cdee68e5871d61b1a2bc75d40a13de1cacad3c7a482f"}, ] setuptools-scm = [ {file = "setuptools_scm-6.0.1-py3-none-any.whl", hash = "sha256:c3bd5f701c8def44a5c0bfe8d407bef3f80342217ef3492b951f3777bd2d915c"}, {file = "setuptools_scm-6.0.1.tar.gz", hash = "sha256:d1925a69cb07e9b29416a275b9fadb009a23c148ace905b2fb220649a6c18e92"}, ] six = [ - {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"}, - {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"}, + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, ] yapf = [ {file = "yapf-0.30.0-py2.py3-none-any.whl", hash = "sha256:3abf61ba67cf603069710d30acbc88cfe565d907e16ad81429ae90ce9651e0c9"}, From 3788f01611eb445a26490f089b5cbbcb5409479a Mon Sep 17 00:00:00 2001 From: Sergey Vlasov Date: Mon, 31 May 2021 14:10:45 +0300 Subject: [PATCH 10/10] Nix: Bump locked versions for Python dependencies Use `( cd nix && poetry update --lock; )` to update all Python dependencies to their most recent versions (although `requirements.txt` has not been changed, the actual code is no longer compatible with older versions of some Python packages). Dependency changes: - halo: 0.0.31 (new) - log-symbols: 0.0.14 (new) - milc: 1.3.0 -> 1.4.2 - qmk: 0.0.48 -> 0.0.51 - spinners: 0.0.24 (new) - termcolor: 1.1.0 (new) --- nix/poetry.lock | 79 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 69 insertions(+), 10 deletions(-) diff --git a/nix/poetry.lock b/nix/poetry.lock index 50d322811c46..1a1aefe21a4f 100644 --- a/nix/poetry.lock +++ b/nix/poetry.lock @@ -85,6 +85,24 @@ python-versions = "*" [package.dependencies] flake8 = "*" +[[package]] +name = "halo" +version = "0.0.31" +description = "Beautiful terminal spinners in Python" +category = "main" +optional = false +python-versions = ">=3.4" + +[package.dependencies] +colorama = ">=0.3.9" +log-symbols = ">=0.0.14" +six = ">=1.12.0" +spinners = ">=0.0.24" +termcolor = ">=1.1.0" + +[package.extras] +ipython = ["IPython (==5.7.0)", "ipywidgets (==7.1.0)"] + [[package]] name = "hid" version = "1.0.4" @@ -118,6 +136,17 @@ six = ">=1.11.0" format = ["idna", "jsonpointer (>1.13)", "rfc3987", "strict-rfc3339", "webcolors"] format_nongpl = ["idna", "jsonpointer (>1.13)", "webcolors", "rfc3986-validator (>0.1.0)", "rfc3339-validator"] +[[package]] +name = "log-symbols" +version = "0.0.14" +description = "Colored symbols for various log levels for Python" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +colorama = ">=0.3.9" + [[package]] name = "mccabe" version = "0.6.1" @@ -128,7 +157,7 @@ python-versions = "*" [[package]] name = "milc" -version = "1.3.0" +version = "1.4.2" description = "Opinionated Batteries-Included Python 3 CLI Framework." category = "main" optional = false @@ -138,6 +167,8 @@ python-versions = "*" appdirs = "*" argcomplete = "*" colorama = "*" +halo = "*" +spinners = "*" [[package]] name = "nose2" @@ -208,22 +239,19 @@ python-versions = "*" [[package]] name = "qmk" -version = "0.0.48" +version = "0.0.51" description = "A program to help users work with QMK Firmware." category = "main" optional = false python-versions = ">=3.7" [package.dependencies] -appdirs = "*" -argcomplete = "*" -colorama = "*" dotty-dict = "*" flake8 = "*" hid = "*" hjson = "*" jsonschema = ">=3" -milc = ">=1.3.0" +milc = ">=1.4.0" nose2 = "*" pygments = "*" pyusb = "*" @@ -248,6 +276,22 @@ category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +[[package]] +name = "spinners" +version = "0.0.24" +description = "Spinners for terminals" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "termcolor" +version = "1.1.0" +description = "ANSII Color formatting for output in terminal." +category = "main" +optional = false +python-versions = "*" + [[package]] name = "yapf" version = "0.30.0" @@ -343,6 +387,10 @@ flake8-polyfill = [ {file = "flake8-polyfill-1.0.2.tar.gz", hash = "sha256:e44b087597f6da52ec6393a709e7108b2905317d0c0b744cdca6208e670d8eda"}, {file = "flake8_polyfill-1.0.2-py2.py3-none-any.whl", hash = "sha256:12be6a34ee3ab795b19ca73505e7b55826d5f6ad7230d31b18e106400169b9e9"}, ] +halo = [ + {file = "halo-0.0.31-py2-none-any.whl", hash = "sha256:5350488fb7d2aa7c31a1344120cee67a872901ce8858f60da7946cef96c208ab"}, + {file = "halo-0.0.31.tar.gz", hash = "sha256:7b67a3521ee91d53b7152d4ee3452811e1d2a6321975137762eb3d70063cc9d6"}, +] hid = [ {file = "hid-1.0.4-py2-none-any.whl", hash = "sha256:fba9913f07030b01059b822b24c83b370ca3f444e9e6443bd662f9f1aa3f0780"}, {file = "hid-1.0.4.tar.gz", hash = "sha256:f61b0382f37a334bc8ba8604bc84b94875ee4f594fbbaf82b2c3b3e827883fc1"}, @@ -355,13 +403,17 @@ jsonschema = [ {file = "jsonschema-3.2.0-py2.py3-none-any.whl", hash = "sha256:4e5b3cf8216f577bee9ce139cbe72eca3ea4f292ec60928ff24758ce626cd163"}, {file = "jsonschema-3.2.0.tar.gz", hash = "sha256:c8a85b28d377cc7737e46e2d9f2b4f44ee3c0e1deac6bf46ddefc7187d30797a"}, ] +log-symbols = [ + {file = "log_symbols-0.0.14-py3-none-any.whl", hash = "sha256:4952106ff8b605ab7d5081dd2c7e6ca7374584eff7086f499c06edd1ce56dcca"}, + {file = "log_symbols-0.0.14.tar.gz", hash = "sha256:cf0bbc6fe1a8e53f0d174a716bc625c4f87043cc21eb55dd8a740cfe22680556"}, +] mccabe = [ {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, ] milc = [ - {file = "milc-1.3.0-py2.py3-none-any.whl", hash = "sha256:a4dd8ce77f1d4ac5e08311eecc6954c349d4032d7ed4e0335822e09740514f22"}, - {file = "milc-1.3.0.tar.gz", hash = "sha256:a9d0299aaaef7a3f00010589c3c0d0669798467e397580620a68e9290b36cdda"}, + {file = "milc-1.4.2-py2.py3-none-any.whl", hash = "sha256:65ee004caa769b1ee144b15be7908d1f623920ab6f356e5c5c95be9457aa15d8"}, + {file = "milc-1.4.2.tar.gz", hash = "sha256:c6b2f19e3196b00a0060f8c883533e356f2054a9f81692b7b97ccee0d01626fd"}, ] nose2 = [ {file = "nose2-0.10.0-py2.py3-none-any.whl", hash = "sha256:aa620e759f2c5018d9ba041340391913e282ecebd3c392027f1575847b093ec6"}, @@ -391,8 +443,8 @@ pyusb = [ {file = "pyusb-1.1.1.tar.gz", hash = "sha256:7d449ad916ce58aff60b89aae0b65ac130f289c24d6a5b7b317742eccffafc38"}, ] qmk = [ - {file = "qmk-0.0.48-py2.py3-none-any.whl", hash = "sha256:414901c4cede03d1864f60e7d35d3d0d4c8f917706db47a3d18638c9b55838a5"}, - {file = "qmk-0.0.48.tar.gz", hash = "sha256:3ca801d295bef68c5e51cdee68e5871d61b1a2bc75d40a13de1cacad3c7a482f"}, + {file = "qmk-0.0.51-py2.py3-none-any.whl", hash = "sha256:5f676f389b2450b0956d7eb8e7e378d2e6690d5859a887c91876da0a5faf75ed"}, + {file = "qmk-0.0.51.tar.gz", hash = "sha256:efeef209cde1df92b9823db686d9684962cd00aae9f45ba5e3d494aa5b3c6b9a"}, ] setuptools-scm = [ {file = "setuptools_scm-6.0.1-py3-none-any.whl", hash = "sha256:c3bd5f701c8def44a5c0bfe8d407bef3f80342217ef3492b951f3777bd2d915c"}, @@ -402,6 +454,13 @@ six = [ {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, ] +spinners = [ + {file = "spinners-0.0.24-py3-none-any.whl", hash = "sha256:2fa30d0b72c9650ad12bbe031c9943b8d441e41b4f5602b0ec977a19f3290e98"}, + {file = "spinners-0.0.24.tar.gz", hash = "sha256:1eb6aeb4781d72ab42ed8a01dcf20f3002bf50740d7154d12fb8c9769bf9e27f"}, +] +termcolor = [ + {file = "termcolor-1.1.0.tar.gz", hash = "sha256:1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b"}, +] yapf = [ {file = "yapf-0.30.0-py2.py3-none-any.whl", hash = "sha256:3abf61ba67cf603069710d30acbc88cfe565d907e16ad81429ae90ce9651e0c9"}, {file = "yapf-0.30.0.tar.gz", hash = "sha256:3000abee4c28daebad55da6c85f3cd07b8062ce48e2e9943c8da1b9667d48427"},