From 6afc33960227f495800ed6a39a6841c3d940f8dd Mon Sep 17 00:00:00 2001 From: Gabriel Augendre Date: Thu, 5 Jan 2023 18:52:09 +0100 Subject: [PATCH] Make invoke getfullargspec patch persistent --- requirements-dev.in | 2 ++ requirements-dev.txt | 33 +++++++++++++++++++++++++++++++-- tasks.py | 15 +++++++++++++++ 3 files changed, 48 insertions(+), 2 deletions(-) diff --git a/requirements-dev.in b/requirements-dev.in index 6cea625..34d1e72 100644 --- a/requirements-dev.in +++ b/requirements-dev.in @@ -13,3 +13,5 @@ invoke>=1.7.3 hypothesis>=6.56.4 django-browser-reload>=1.6.0 black>=22.12.0 +pip-tools>=6.0 +patchy>=2.0 diff --git a/requirements-dev.txt b/requirements-dev.txt index d76b5de..128a214 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -48,6 +48,10 @@ bpython==0.23 \ --hash=sha256:72aab438052439ac89b471c4ee2a8fba6a0a082a51b0f70826e88cc0e7723298 \ --hash=sha256:9f0078abc887c48af088691e2f64797d6ca994ac0f4bc03c38d06f657d7c052a # via -r requirements-dev.in +build==0.9.0 \ + --hash=sha256:1a07724e891cbd898923145eb7752ee7653674c511378eb9c7691aab1612bc3c \ + --hash=sha256:38a7a2b7a0bdc61a42a0a67509d88c71ecfc37b393baba770fae34e20929ff69 + # via pip-tools certifi==2022.12.7 \ --hash=sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3 \ --hash=sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18 @@ -68,7 +72,9 @@ charset-normalizer==2.1.1 \ click==8.1.3 \ --hash=sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e \ --hash=sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48 - # via black + # via + # black + # pip-tools coverage[toml]==7.0.3 \ --hash=sha256:037b51ee86bc600f99b3b957c20a172431c35c2ef9c1ca34bc813ab5b51fd9f5 \ --hash=sha256:0bce4ad5bdd0b02e177a085d28d2cea5fc57bb4ba2cead395e763e34cf934eb1 \ @@ -305,11 +311,29 @@ outcome==1.2.0 \ packaging==22.0 \ --hash=sha256:2198ec20bd4c017b8f9717e00f0c8714076fc2fd93816750ab48e2c41de2cfd3 \ --hash=sha256:957e2148ba0e1a3b282772e791ef1d8083648bc131c8ab0c1feba110ce1146c3 - # via pytest + # via + # build + # pytest +patchy==2.6.0 \ + --hash=sha256:542518fd8a4be4d8d2590be88a81170421e3d5afdbff1e49f95a0b8b0d345a39 \ + --hash=sha256:8fb3400aa2c2e94dd95381731ab1d0af3b654f72417f39914858778502c4cc64 + # via -r requirements-dev.in pathspec==0.10.3 \ --hash=sha256:3c95343af8b756205e2aba76e843ba9520a24dd84f68c22b9f93251507509dd6 \ --hash=sha256:56200de4077d9d0791465aa9095a01d421861e405b5096955051deefd697d6f6 # via black +pep517==0.13.0 \ + --hash=sha256:4ba4446d80aed5b5eac6509ade100bff3e7943a8489de249654a5ae9b33ee35b \ + --hash=sha256:ae69927c5c172be1add9203726d4b84cf3ebad1edcd5f71fcdc746e66e829f59 + # via build +pip==22.3.1 \ + --hash=sha256:65fd48317359f3af8e593943e6ae1506b66325085ea64b706a998c6e83eeaf38 \ + --hash=sha256:908c78e6bc29b676ede1c4d57981d490cb892eb45cd8c214ab6298125119e077 + # via pip-tools +pip-tools==6.12.1 \ + --hash=sha256:88efb7b29a923ffeac0713e6f23ef8529cc6175527d42b93f73756cc94387293 \ + --hash=sha256:f0c0c0ec57b58250afce458e2e6058b1f30a4263db895b7d72fd6311bf1dc6f7 + # via -r requirements-dev.in platformdirs==2.6.2 \ --hash=sha256:83c8f6d04389165de7c9b6f0c682439697887bca0aa2f1c87ef1826be3584490 \ --hash=sha256:e1fea1fe471b9ff8332e229df3cb7de4f53eeea4998d3b6bfff542115e998bd2 @@ -453,6 +477,7 @@ setuptools==65.6.3 \ # via # -c constraints.txt # nodeenv + # pip-tools six==1.16.0 \ --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 @@ -516,6 +541,10 @@ wcwidth==0.2.5 \ --hash=sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784 \ --hash=sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83 # via blessed +wheel==0.38.4 \ + --hash=sha256:965f5259b566725405b05e7cf774052044b1ed30119b5d586b2703aafe8719ac \ + --hash=sha256:b60533f3f5d530e971d6737ca6d58681ee434818fab630c83a734bb10c083ce8 + # via pip-tools wsproto==1.2.0 \ --hash=sha256:ad565f26ecb92588a3e43bc3d96164de84cd9902482b130d0ddbaa9664a85065 \ --hash=sha256:b9acddd652b585d75b20477888c56642fdade28bdfd3579aa24a4d2c037dd736 diff --git a/tasks.py b/tasks.py index 0f3e9ea..c3f4e7b 100644 --- a/tasks.py +++ b/tasks.py @@ -1,9 +1,24 @@ import time from pathlib import Path +import patchy import requests from invoke import task +patchy.patch( + "invoke.tasks.Task.argspec", + """\ +@@ -16,7 +16,7 @@ + # TODO: __call__ exhibits the 'self' arg; do we manually nix 1st result + # in argspec, or is there a way to get the "really callable" spec? + func = body if isinstance(body, types.FunctionType) else body.__call__ +- spec = inspect.getargspec(func) ++ spec = inspect.getfullargspec(func) + arg_names = spec.args[:] + matched_args = [reversed(x) for x in [spec.args, spec.defaults or []]] + spec_dict = dict(zip_longest(*matched_args, fillvalue=NO_DEFAULT))""", +) + BASE_DIR = Path(__file__).parent.resolve(strict=True) SRC_DIR = BASE_DIR / "src" COMPOSE_BUILD_FILE = BASE_DIR / "docker-compose-build.yaml"