From 22d1e7fb9c4846e183ee5432b44ce24c8c279bd6 Mon Sep 17 00:00:00 2001 From: Martin Benonisen Date: Sat, 9 Mar 2024 17:18:36 +0100 Subject: [PATCH] first commit --- README.md | 0 dist/pttplz-0.1.0-py3-none-any.whl | Bin 0 -> 1948 bytes dist/pttplz-0.1.0.tar.gz | Bin 0 -> 1246 bytes poetry.lock | 214 +++++++++++++++++++++++++++++ pttplz | 1 + pttplz.service | 9 ++ pyproject.toml | 19 +++ 7 files changed, 243 insertions(+) create mode 100644 README.md create mode 100644 dist/pttplz-0.1.0-py3-none-any.whl create mode 100644 dist/pttplz-0.1.0.tar.gz create mode 100644 poetry.lock create mode 160000 pttplz create mode 100644 pttplz.service create mode 100644 pyproject.toml diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/dist/pttplz-0.1.0-py3-none-any.whl b/dist/pttplz-0.1.0-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..bb99a109364b5187b1188115ac78f16ca605cd6d GIT binary patch literal 1948 zcmWIWW@Zs#U|`??Vnv3oc=vR9APa`c&q0AU=&RG?vJgHPw( zHW1kJT3hUuE1Qg>!373gg#)g$W0ICQ%$~#P7IkyYQT7v41OL}f7fQY9dCObxspEs> zbPH?et@pAD+#gplEuH(7rP{_W`sHk$wYf9WlJ9QeI)0f^R`!=pu}jm%fP=4|UHJ13i#3QSnn^tQG)d?Vkr`+4v8+2qO{J^$X{ ze&4-y3#Y~&sF`@<-f`D`^H;7BJeSPD`r5B&RqI@yNhgkSNf9~Ui_9dr}|Bww?Te*A9+G}^%@?9oIFPVJgh7$M_-Dc`;x#q0J zGDq3H>>(Wt?Q2Red01=Co5wk^&g#yxn!f|G+xkNT-V1!hKskm{zlA8~oh# z_RZ!u%PyQ>)YFEIAjl8;Sr zzj@LgHNJOj$X)my7|&aPaSlpCkcieb&@GmS4M5T)K9%(>CeT z+iDKY(D)JMzaZ%QwZygT&ldg<+27g7)l+rm+)ayXyUu2=w#?Y}*Y9r1y|#$gQ+s{l z?l0n>C-m$60+;la>$f(uoVUMO>UU&Jk}fBW_kavlEv#%Gao!E1&)0-PE9X)G+(u z*peR#466trmcbon;U2E8KD?(4xf%?3STEQvf5EEM)%}I(k(!cK_|FvzolD+cxPANQ z-oI>d_Yyt^eq5IwC8fAw!j(P0MNV?f&st$(BCETqbNPv4vpwe@#%|(?IviU3GBV_V zBiCP4=X`D5RH_Peh7J&`<91GJUP)19d_jI@UP-ZDNkvJw-?{VJ=gxcf>ig-P($UcD zd#VL4A~v-KR0*8Y+PI*hn;W%o@X)$aEN+{ET%G-cTuRUEENXIKV7Op+ zf0Kev`NXDVSKgMdE;$k+7kgz+FVv~2<$CNRwfeg4tx^+t^}-mHB|XXW_!jI{3kbCT zy|^_^)2H{VX8gY=-BCN-a;DGRG?`UJzwqg@a<-$uH0U5?|H8QH)B2q@X}1p zkOqS#jUWoMfJfJlUWP+-GcYV^^hfB2m+0ua(Mtq`ZhIz}?KsN^bi>fI3c|2rW}JqB zGY+~*=&2lG5)-hh!clCYr+G9(F%mS~P{thGhC-5efHx}}NI4r2ZUyFti>x3X0Q;Hc A$N&HU literal 0 HcmV?d00001 diff --git a/dist/pttplz-0.1.0.tar.gz b/dist/pttplz-0.1.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..8ee8b10a94458376d3d089d896b9c187ed8362f8 GIT binary patch literal 1246 zcmV<41R?t$iwFn+00002|8R74aBO-lFfK7JFfMdqascg_TTdf56oB*WUtvvO5-Blr zNhTK&1YMx57FfjY_65<%Bo54GW;|T$1K$e+^#5MFb@*S1<+bE$MyhA2>r&aSe$va;3$x6G zA_NZ31bWjk^~0g-_gp_Dgv`X8=4p}}(QJ(f1*B%s*@&d+WPEC3s)gxjnX9Sj*miXP z@aXv9^U0^l#}A(`-W~1JIghn)T9vf#lVw!C7A4b3ri9i_(7Tct&FL-I+!$pm+tj&R zI4#Q4nOzxnx1i%Ot!7$wu+$S=i&Y{PT#N4&{6OqnnCY#3Kb5mbl8bd8uQrdp2a!Tg z*MgKVxk~A=UCF1_S+~zrl$vI#nH?VzLfF`1r`ad_x6o=Is@YT~2}}bjtdcjvtW>Pz zm9m_Z2sSF6Md=NlOGT?jx=o8Mpr9@_l8XDt!2Z~NanV62x-qens;*gY-T1+(JnYD< zb(?03(w}Hiv;&kcVUH+>(~@z;;h30P1u4+O&R=AdmVK2-Oy6vq_U7{cWv1j8F*VG{ zBz{r*fA0IA&H3x^e?b_4{ri3V{CmjWnbVy9v|mx_;cxb!1o` zNtVhz=Ze_epd5SkBcwyfrgm&5GDsdpI*o+BBH0qgDs=cGV4mlYA~P+XT{g6;R<{~k z3}}u@;Z;=S*N^ZSWUm?5hPQ^EK5UJ^PaY+W!_f6^75a z;ho=0Qy)>EdE^ZIz=)P-gRI^ZhlG60;bNnfBf4q(?v1Tow|BcR=DV0{9nB*FBb+OFqj-|o8^j4uZ*qPk=m_ddhXAGETie4p z-`>Svt9%HTpHcl4rMWjQ+)aDeXD)MFkDHZ#3R)Fzs=W)VS~NRcd)Cf7nZj+#bnHDF zdWd_o18csR$v;zYNSL)C2!bF8f*=TjAP9mW2!bF8f*=TjAP9mW2!bF8g1lY+2HAj= Iwg6B704H>Y8~^|S literal 0 HcmV?d00001 diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 0000000..9cd05c1 --- /dev/null +++ b/poetry.lock @@ -0,0 +1,214 @@ +# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. + +[[package]] +name = "click" +version = "8.1.7" +description = "Composable command line interface toolkit" +optional = false +python-versions = ">=3.7" +files = [ + {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, + {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "evdev" +version = "1.7.0" +description = "Bindings to the Linux input handling subsystem" +optional = false +python-versions = ">=3.6" +files = [ + {file = "evdev-1.7.0.tar.gz", hash = "sha256:95bd2a1e0c6ce2cd7a2ecc6e6cd9736ff794b3ad5cb54d81d8cbc2e414d0b870"}, +] + +[[package]] +name = "pynput" +version = "1.7.6" +description = "Monitor and control user input devices" +optional = false +python-versions = "*" +files = [ + {file = "pynput-1.7.6-py2.py3-none-any.whl", hash = "sha256:19861b2a0c430d646489852f89500e0c9332e295f2c020e7c2775e7046aa2e2f"}, + {file = "pynput-1.7.6.tar.gz", hash = "sha256:3a5726546da54116b687785d38b1db56997ce1d28e53e8d22fc656d8b92e533c"}, +] + +[package.dependencies] +evdev = {version = ">=1.3", markers = "sys_platform in \"linux\""} +pyobjc-framework-ApplicationServices = {version = ">=8.0", markers = "sys_platform == \"darwin\""} +pyobjc-framework-Quartz = {version = ">=8.0", markers = "sys_platform == \"darwin\""} +python-xlib = {version = ">=0.17", markers = "sys_platform in \"linux\""} +six = "*" + +[[package]] +name = "pyobjc-core" +version = "10.1" +description = "Python<->ObjC Interoperability Module" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pyobjc-core-10.1.tar.gz", hash = "sha256:1844f1c8e282839e6fdcb9a9722396c1c12fb1e9331eb68828a26f28a3b2b2b1"}, + {file = "pyobjc_core-10.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:2a72a88222539ad07b5c8be411edc52ff9147d7cef311a2c849869d7bb9603fd"}, + {file = "pyobjc_core-10.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fe1b9987b7b0437685fb529832876c2a8463500114960d4e76bb8ae96b6bf208"}, + {file = "pyobjc_core-10.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:9f628779c345d3abd0e20048fb0e256d894c22254577a81a6dcfdb92c3647682"}, + {file = "pyobjc_core-10.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:25a9e5a2de19238787d24cfa7def6b7fbb94bbe89c0e3109f71c1cb108e8ab44"}, + {file = "pyobjc_core-10.1-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:2d43205d3a784aa87055b84c0ec0dfa76498e5f18d1ad16bdc58a3dcf5a7d5d0"}, + {file = "pyobjc_core-10.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:0aa9799b5996a893944999a2f1afcf1de119cab3551c169ad9f54d12e1d38c99"}, +] + +[[package]] +name = "pyobjc-framework-applicationservices" +version = "10.1" +description = "Wrappers for the framework ApplicationServices on macOS" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pyobjc-framework-ApplicationServices-10.1.tar.gz", hash = "sha256:bb780eabadad0fbf36a128041dccfd71e30bbeb6b110852d37fd5c98f4a2ec04"}, + {file = "pyobjc_framework_ApplicationServices-10.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a74a0922b48ad5ac4e402a1ac5dda5d6ee0d177870b7e244be61bc95d639ba85"}, + {file = "pyobjc_framework_ApplicationServices-10.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ff352c33cad3f7bf8dd9b955ebb5db02d451d88eb04478d83edf0edd0cc8bf5d"}, + {file = "pyobjc_framework_ApplicationServices-10.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:6d0706d5d9436298c8d619a1bb5be11a1f4ff9f4733797a393c6a706568de110"}, + {file = "pyobjc_framework_ApplicationServices-10.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:95bd111583c3bf20656393c2a056a457b0cf08c76c0ab27cfcaedf92f707e8a9"}, + {file = "pyobjc_framework_ApplicationServices-10.1-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:90a2350ddae3d9fb7b2e35e3b672b64854edae497fda8d7d4d798679c8280fed"}, + {file = "pyobjc_framework_ApplicationServices-10.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8bc830ac60b73a4cab24d1b1fdd8b044f25fe02e0af63a92cd96c43a51808c96"}, +] + +[package.dependencies] +pyobjc-core = ">=10.1" +pyobjc-framework-Cocoa = ">=10.1" +pyobjc-framework-CoreText = ">=10.1" +pyobjc-framework-Quartz = ">=10.1" + +[[package]] +name = "pyobjc-framework-cocoa" +version = "10.1" +description = "Wrappers for the Cocoa frameworks on macOS" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pyobjc-framework-Cocoa-10.1.tar.gz", hash = "sha256:8faaf1292a112e488b777d0c19862d993f3f384f3927dc6eca0d8d2221906a14"}, + {file = "pyobjc_framework_Cocoa-10.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:2e82c2e20b89811d92a7e6e487b6980f360b7c142e2576e90f0e7569caf8202b"}, + {file = "pyobjc_framework_Cocoa-10.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0860a9beb7e5c72a1f575679a6d1428a398fa19ad710fb116df899972912e304"}, + {file = "pyobjc_framework_Cocoa-10.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:34b791ea740e1afce211f19334e45469fea9a48d8fce5072e146199fd19ff49f"}, + {file = "pyobjc_framework_Cocoa-10.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1398c1a9bebad1a0f2549980e20f4aade00c341b9bac56b4493095a65917d34a"}, + {file = "pyobjc_framework_Cocoa-10.1-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:22be21226e223d26c9e77645564225787f2b12a750dd17c7ad99c36f428eda14"}, + {file = "pyobjc_framework_Cocoa-10.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:0280561f4fb98a864bd23f2c480d907b0edbffe1048654f5dfab160cea8198e6"}, +] + +[package.dependencies] +pyobjc-core = ">=10.1" + +[[package]] +name = "pyobjc-framework-coretext" +version = "10.1" +description = "Wrappers for the framework CoreText on macOS" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pyobjc-framework-CoreText-10.1.tar.gz", hash = "sha256:b6a112e2ae8720be42af19e0fe9b866b43d7e9196726caa366d61d18294e6248"}, + {file = "pyobjc_framework_CoreText-10.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6ea2920c126a8a39e8a13b6de731b78b391300cec242812c9fbcf65a66ae40cf"}, + {file = "pyobjc_framework_CoreText-10.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:37b203d832dd82bd9566c72eea815eb89f00f128a4c9a2f352843914da4effec"}, + {file = "pyobjc_framework_CoreText-10.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:083700483b18f337b0c43bdfaafc43467846f8555075669d4962d460d9d6cd00"}, + {file = "pyobjc_framework_CoreText-10.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:59472cd1a33e83803fa62b3db20ac0e899f5ed706d22704ea81129d3f49ff0c7"}, + {file = "pyobjc_framework_CoreText-10.1-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:cc1a63ca2c6921768b1c794ce60e2a278e0177731aa4bf8f620fdde857e4835e"}, + {file = "pyobjc_framework_CoreText-10.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:fbbdde4ce747bcad45c2aded36167ad00fead309a265d89ab22289c221038e57"}, +] + +[package.dependencies] +pyobjc-core = ">=10.1" +pyobjc-framework-Cocoa = ">=10.1" +pyobjc-framework-Quartz = ">=10.1" + +[[package]] +name = "pyobjc-framework-quartz" +version = "10.1" +description = "Wrappers for the Quartz frameworks on macOS" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pyobjc-framework-Quartz-10.1.tar.gz", hash = "sha256:b7439c0a3be9590d261cd2d340ba8dd24a75877b0be3ebce56e022a19cc05738"}, + {file = "pyobjc_framework_Quartz-10.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:69db14ac9814839471e3cf5a8d81fb5edd1b762739ad806d3cf244836dac0154"}, + {file = "pyobjc_framework_Quartz-10.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2ddcd18e96511e618ce43e288a043e25524c131f5e6d58775db7aaf15553d849"}, + {file = "pyobjc_framework_Quartz-10.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:c4257a2fb5580e5ebe927a66cf36a11749685a4681a30f90e954a3f08894cb62"}, + {file = "pyobjc_framework_Quartz-10.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:28315ca6e04a08ae9e4eaf35b364ee77e081605d5865021018217626097c5e80"}, + {file = "pyobjc_framework_Quartz-10.1-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:9cb859a2fd7e15f2de85c16b028148dea06002d1a4142922b3441d3802fab372"}, + {file = "pyobjc_framework_Quartz-10.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:993c71009e6374e57205e6aeaa577b7af2df245a5d1d2feff0f88ca0fa7b8626"}, +] + +[package.dependencies] +pyobjc-core = ">=10.1" +pyobjc-framework-Cocoa = ">=10.1" + +[[package]] +name = "python-xlib" +version = "0.33" +description = "Python X Library" +optional = false +python-versions = "*" +files = [ + {file = "python-xlib-0.33.tar.gz", hash = "sha256:55af7906a2c75ce6cb280a584776080602444f75815a7aff4d287bb2d7018b32"}, + {file = "python_xlib-0.33-py2.py3-none-any.whl", hash = "sha256:c3534038d42e0df2f1392a1b30a15a4ff5fdc2b86cfa94f072bf11b10a164398"}, +] + +[package.dependencies] +six = ">=1.10.0" + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] + +[[package]] +name = "typer" +version = "0.9.0" +description = "Typer, build great CLIs. Easy to code. Based on Python type hints." +optional = false +python-versions = ">=3.6" +files = [ + {file = "typer-0.9.0-py3-none-any.whl", hash = "sha256:5d96d986a21493606a358cae4461bd8cdf83cbf33a5aa950ae629ca3b51467ee"}, + {file = "typer-0.9.0.tar.gz", hash = "sha256:50922fd79aea2f4751a8e0408ff10d2662bd0c8bbfa84755a699f3bada2978b2"}, +] + +[package.dependencies] +click = ">=7.1.1,<9.0.0" +typing-extensions = ">=3.7.4.3" + +[package.extras] +all = ["colorama (>=0.4.3,<0.5.0)", "rich (>=10.11.0,<14.0.0)", "shellingham (>=1.3.0,<2.0.0)"] +dev = ["autoflake (>=1.3.1,<2.0.0)", "flake8 (>=3.8.3,<4.0.0)", "pre-commit (>=2.17.0,<3.0.0)"] +doc = ["cairosvg (>=2.5.2,<3.0.0)", "mdx-include (>=1.4.1,<2.0.0)", "mkdocs (>=1.1.2,<2.0.0)", "mkdocs-material (>=8.1.4,<9.0.0)", "pillow (>=9.3.0,<10.0.0)"] +test = ["black (>=22.3.0,<23.0.0)", "coverage (>=6.2,<7.0)", "isort (>=5.0.6,<6.0.0)", "mypy (==0.910)", "pytest (>=4.4.0,<8.0.0)", "pytest-cov (>=2.10.0,<5.0.0)", "pytest-sugar (>=0.9.4,<0.10.0)", "pytest-xdist (>=1.32.0,<4.0.0)", "rich (>=10.11.0,<14.0.0)", "shellingham (>=1.3.0,<2.0.0)"] + +[[package]] +name = "typing-extensions" +version = "4.10.0" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +files = [ + {file = "typing_extensions-4.10.0-py3-none-any.whl", hash = "sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475"}, + {file = "typing_extensions-4.10.0.tar.gz", hash = "sha256:b0abd7c89e8fb96f98db18d86106ff1d90ab692004eb746cf6eda2682f91b3cb"}, +] + +[metadata] +lock-version = "2.0" +python-versions = "^3.11" +content-hash = "093d5ac674497cb4bc04e19d3524b2c2cfb4c2ae838d8602ef67ed0ea75481f2" diff --git a/pttplz b/pttplz new file mode 160000 index 0000000..cec6e0f --- /dev/null +++ b/pttplz @@ -0,0 +1 @@ +Subproject commit cec6e0f8de69f83300edc2b41effd75cd0cdf702 diff --git a/pttplz.service b/pttplz.service new file mode 100644 index 0000000..9a0b7d4 --- /dev/null +++ b/pttplz.service @@ -0,0 +1,9 @@ +[unit] +Description=pttplz daemon + +[Service] +ExecStart=pttplz ptt --keycode +Restart=on-failure +RestartSec=10 +[Install] +WantedBy=multi-user.target \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..adb69b3 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,19 @@ +[tool.poetry] +name = "pttplz" +version = "0.1.0" +description = "Push to talk" +authors = ["Martin Benonisen "] +readme = "README.md" + +[tool.poetry.dependencies] +python = "^3.11" +typer = "^0.9.0" +pynput = "^1.7.6" + +[tool.poetry.scripts] +pttplz = "pttplz.pttplz:app" + + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api"