From 006c456b69b03dc65f4d817b8f4e4421360b4075 Mon Sep 17 00:00:00 2001 From: Peter Boin Date: Tue, 18 Jul 2017 22:39:23 +1000 Subject: [PATCH] first deployment --- .gitignore | 3 + dist/pygcode-0.1.0-py2.py3-none-any.whl | Bin 0 -> 54139 bytes dist/pygcode-0.1.0.tar.gz | Bin 0 -> 36092 bytes src/pygcode.egg-info/PKG-INFO | 254 ++++++++++++++++++++++ src/pygcode.egg-info/SOURCES.txt | 19 ++ src/pygcode.egg-info/dependency_links.txt | 1 + src/pygcode.egg-info/not-zip-safe | 1 + src/pygcode.egg-info/requires.txt | 2 + src/pygcode.egg-info/top_level.txt | 1 + 9 files changed, 281 insertions(+) create mode 100644 dist/pygcode-0.1.0-py2.py3-none-any.whl create mode 100644 dist/pygcode-0.1.0.tar.gz create mode 100644 src/pygcode.egg-info/PKG-INFO create mode 100644 src/pygcode.egg-info/SOURCES.txt create mode 100644 src/pygcode.egg-info/dependency_links.txt create mode 100644 src/pygcode.egg-info/not-zip-safe create mode 100644 src/pygcode.egg-info/requires.txt create mode 100644 src/pygcode.egg-info/top_level.txt diff --git a/.gitignore b/.gitignore index 2d2015f..066b83d 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,6 @@ # editor backups *.swp + +# build +build/* diff --git a/dist/pygcode-0.1.0-py2.py3-none-any.whl b/dist/pygcode-0.1.0-py2.py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..1fce84d6f41c6b9719a457c92cb010d8f6e27085 GIT binary patch literal 54139 zcmY(KQ;;Cg(xltAZQHhO+qP|U+O}=mwr$%z&7FTYcJJNS^LQe%qB84C1!-Uq6aWAK z2mmjGN2zZ4#~W~X004DC0088FuMVE(#`Y$r^!oaic9t&s`g9JSDO$G9TkVKHxB7vS zUdDgL)MzFip|`GB+-{ldYMQ9G91}~A3M3^CLy0&^QZ#O!``pn11iO`@_&tVw-SE5V z>!G{J`rd!XZ83ad(UWydpSpEIT@%f9KfLQEz_rxMU9-Y8Q%#})OhRyA!-CNZe{mDt zpRr}1j6|C?{1VbT7{}?^1a{0>raT!m zYKnMF?*+1ysVbL=(!$aSQAJ7^A*A|4L_@9h3W=s8G-Le*(Ud+9^N?6P;f$G@1*lXr zm8?v2)ma|IZjUC}qr(qh=<{Nx7Z$zZ#V6m$-sr#px%R?D-?2j5m=w)3@h7HsP-Gqz z0wx#meG8~WV!V2Zq)?M|^ZDoXV+&)rPBL|Eo|gWFa5Xn}Wl1?1J&Q?`#=6#L!zWSC zMLeDQj}g2^!hQQfI&FOks?OgoXJ#_yBU$8m)gzqqA_YCs5TMInDu zVaUeT)}8;~#0D*xpMZ?zs{V-4o^N{nSO3cWJ-)w@G+^@bn(c#-pvZwV2Ajab@rwBU zd(^uyue4O-{JVVWo}IN9TTEVQDz53GE|*IW)Wd`{L-x&@6jiBWOTy~Djy2mWHlrN;u?-ep7033C=bbWPUJ?K@O&f2Rxj8LfE?{|@45cA4~* zc;fAu&{;q&4aEv<$v9#<&+S{iesIR#LYdOCKVo%LR{uTBoRv)i%Pg>VF=%3tTSc{U z2{M!2BdtdcsW1++k|@Ircm-KuZKRtvz1EDlnSSq!YX9B26}SnXaQZRM`uAS-g}9 z+g|ZBB(!N6(kzj|>7Ra9iJg}W{>r@f)jM+-jiJQhu-LY%jGA1D{mBp|9r0z5>FRDT zTrCJDXYk6awzez$@{E)k^7l{I-QGaL zFxO2ll81ho@K7e3fA1oiFfxYP7Fdzq3Yg27GEJx5f9os+)1s$W;#eB=s@ICyH_cr! z&E;aqcbZW{Z8sd#Y7*L)zQD~cC-!}X##YP+`*y}1B?S?u^XGz&CTSHj6*F{n<+f0$ zcyfwH4-d^Aelt`|=L=)+=OeUJ#k|dD-V`+N4xW90<4VGHk#n2p+z~vp0nc#`hx3vR ze?I`ul7>4TDuVa)xhKTu|NBQi&v*PRp01d!ugzny3rOdDi$)E%u>+mkRR(K|5(1Nk z>N(|Qr!zYok-RCjc|K=H&KIHS2`EQxHnvnTpeS%CR;XN+i#G=<{mcNCxuDx&DTVNM zZ9gE__1F(`EPCA&X@GJfr;_yavrGK?o)Kb@q(di-lr^pjUegG=Qv3c%veoT+1eT|0 zk71S3`?+B7+gXxYnQH_YaSMsI+-J|?SY}eYzHje-3PAm}E+jf4&mFQ>10wOw>1)xVh`M$d%?cFNqQ#aVz z?rj+8sf;A+OhFuGPCxVf3v|io>G&kgSFU>xWGkIus83k$O#oS{0jZo7>uzq=6<3}H zE8k3jLkeS?T&6%?Av7SaINO5~wKa0WYyrj5(4G2*C;3cX1k7D)D!dF zuwo(rAQf0ha5v7NVXC99Qeq(%pnTL5JG~+fV++)GAI*)AwB_4hm?^HkhUzoe3{R|S zWe{2JGI2BRmTqBz(s>@WQ5;f|Lxu@vNry|4{SC-^e$-cLg!bu~)F~9O^;~G}2pFxU zzuQYp#BBuOj~?erHit(5sQKC%e;k}$8bN2M{AL!U1#bizV|{FBQpGwI*>R=G+kC`# zW(;@%wQ{oA8g}YTrMclzMS7%rT}R)~ zjh5wRyJAj!`2}QxiRMXYH0HQ9G}urwQbb5JjAzPl z&HT-EWJ1gWvq2$2^Wi*`&TK8gp5WXarPStlMOK$mo_H(POH{3mxqUuv??Tz8kdMRu zu}SlaZ)KRYitldLwzkD-N;ZIsJctQJA~9onQ#pNT^yhlI$`9~l{UX&3XJxnvMXD}y zv=;PI>>af}8-gG%zk}ROW2aGLpZFvvz_cVueaPrw&0?21?~7YcfH~frkV&It4^@nmJ3byuH7tP05@Q%xoGs zNBAA8wqO_(cpJ28yuH!0$d#E1VYCzWU`vsN9aJ1N)EC`RCu#SY{kR*OKPVT_g3aI$ zEW*W(LWKeKcOtUlV)R;Zgb#EE_(-9hA+ctnk=miwciq8sU40#>kN+)zPhV`!71(JI zyqO+$eq<~X4Xqg#HU`^cj3ay|{R*0Qum$C;tTbn+cQtm~7eyNL7*C&q$uo^Y*x?eH zy_anlumcs|DwYK;%%D({zzDB{lxl>d2^Sw4xX(&^rK=*Hd#HGb~arWWJ@$5?@EZ}9v@Ad=IZyNE8rTB zBh7Gaece`b{Ub}V@z>6T9M^=LcEg|@dczWYqe6&nGxWMT_*#aLxlQpcRttQ?^X*vN z9XL)JiQ?AW%ceM;r%eOU>QF9j3QnJnOT8=6Dg!U?Mj%G~^QZ~e;~O0G#0|=$ojCy< zE?FwvNDg4E2aPMuFn`Pb$uelR-7F0p-r0G6*8?O1JY+%wv5}yN7cv)P0`Ue>qW@vE zT}Ztg6MySPc@H9=m&OVuN$l2A(|d(po0Vs!s#Ny`3@Fv8t8j`#mx%5ic8M&~+1UKI}A6u`W&Xg><59 z&g?|D^zbJ`RWH-;r#vImxRAHW0(mt|-wGdhU^;9@)Cb`YJJ}I&UgWDBrGPAirXG>o zbKpc2K?R3aQh;`VAs+OBqH-ZXRjkDYj+`*q*N&PK6V2;Ld? zUj88L5gJ%hBK^wYAu=?!GD1v2j{)zPQB-pngC_{*1OX-fkxCkbjkc zgasUs+FOyy4BSB}%k+&;HI-m!p-wbGA7MD>DpNL1_&pltq&^u{|t?_b5Z&qT+t8F6Pqrw$XJ#`y7Sg+@&Ts7Cn<=$s<*3NgK z+&*Q1wz$Y{#lG8eEC}IOyqdqxNKN_SOPzpv#c0?%`8I z^n59R@chw5*6=g~HGM-lWsfPKLgI86EyfK|?U+`e5~8M?XW;c>B_O?D{qx#>hsdrN z0M&L-OSJ+-2g*=ujv}(#UCw0wqpR* zs57fAq^PYNlET(+!*d7+9lq5@N31FX3Ce5q4O1}|hebdvBwM+yN9FWQSqe2SO(s0< zu2MGt2>sEL1Y{6n;&XZDfn)FqAr6}5A(ci6m*IV2TNfv!N zuwlZ*3_A_Z9Gbw~-x2vS^!l)!d)JSXw5g<`r=_K%rm3&9r=+I(wBkSg-0!6&Lcond zrByjL)*(b;Ed($^CETh(YWuec)fNa=P7sdL)dX`TiF9)rBb{1-L;T<{KM&Cr`b9oJ z=8O-_>zTXuhlca6VuFpoC={nrOnm0`K9_>L^zezzi=~Khv2s5fnRUXeJn__=J%3kt z^k;62yIWkzjMnX*(t!L&#n3ueqhwL;1j)sNwK}1&L>)l>F5S}k_`>)32JqH*3c8c8 z&^C*KOQua!E8PvPjnSu_{T+EIJF06oVIcieQ=O1;(z3Hr#Q%C!_o+7?>=N$ZcC5@B zIled50WQCL7YcdI8?ei z!V9WA3tkmtH;M@jr%4@SVGxrRx@O^_eV(W%nPP#3X|~VBU#S9g%I)zRYeR~6zj7V3 ze%Hh_1<#RZh<86+L8v&(BI~*C1&+^M=1;M(0LYv)oQFlO0Kp0^IIGTXNJ{V!T3C{x zV`U-OO4FeRS+*~yyn^)|FmF{CPXgtO32hjI(#DYl!`A5&GhW`x@`hGi2*?aKW!bg3 zy=8}dPJjy>)7(Bb=1Q9>OPN2OFCok<*BOpg(k_fWuQf*D(s?uAoLHF*2a9d_g7q<$ zm$$&3h0Ba*w0=(j%a`8((!_q^yhZV9NPfixaKD0k@>+H#eI)pxLKQvQu%kMivWvCT zVsnv`n*CW$i`!N{$^NJ-@-TKeQkw){-umKw!d7$r?w2xhy$T65WWWD8p|?#05o6A7 zpEJC*O1xtZh8=w9cRoV=;XtgTl+sv1)O^Tb;17XaS7WJt>LLhdyMu0%>!BSzP}J9c zYIcF$W_d}k$hQ8V9%yvwiNiLth;QS&Wshyc3Oj)A5BMM5jT+xc!4cJcXZ#afBH#b7 zJ6l6z3rjoGf4bYj{&wGLeQ^IpO>dG>k&W$#VXAPN{d=;hD1OrY1urnk?~p?NASo+FeF(Ksxtslbz0 zMoeRxOU_A+pwurhB|37FmdBbt;emu4oE?eQ7ALMnIUuvklkd6zPq1)Zw8H*cIJ1zIsmNb~$oDq~U! zYyPTRV!3year+WGo7@slUo*LHl-`UWC8PdMf5`kPGk^WfKa~FT8|t-k_ZOgfGI~z< z^*ah!2y=dBQDS@8=mPOEWXw6hKU?=ng$$e>3GSqin;LL(b+zj*Zm#GkX(`P<9$v4> zF&HUWm266aEaqYe|K{!zm7IQV4-cQ~30I0U+F>MD)6oHHX%Bg&TUPv(l&>d-Uc`Rb zE3x%1^hF}ud<_5x4pWv>38=Kk9FB>&_1ES;dFO)lG@gC8VXjc@Gcaq#;tqDbzT<3X zbyY3fsbt-u57)={{WiSswcD_m0ET;g>HZ?C zsp+Urzb^*P&&Lz&NGdrHxUkPOu%04uJcL4lC?^c24ckA>oXA8zSEt64Q5lSIW{p{K z5eLo0lTys40&{?L-geb;I!&~9Iz?jLxMc>< zo530=eW+j~sxTT4?v;+$$A2xfZYaRLzXpth7&ucq*t8eM>%9{F(otRIgRb1zgKz-g zr++C$SO@kQOCLyOY#xkKUj~WKs4G~PVd0&u9qK_lPxdKDw*Y6}ic9Kg8N{((i_Aa{ zh*+xyC-Y4UDvu}9x!EP|`~a+d%N5^!VF*|=DirF2Z!TsVQ=!>pD*YJPgPyz!Y2B4% zk`SV)2t4I$Gv#nK5XK0Iz8m>t3$0KGHN$%qTEjsTS!YTyba1M0Jlde^jZbbxH{SBZ z+__dGmD$d`Vb?prX>AJ+01&MkrkmIBqP>7#F$9e|O30q5A7iNRQg^QjpwibV9}Dlm z7-F7>69V4XvAGp+2>B6=m7PlWuHiCpRI-uCAmko~f!xq^mJFyP{xW>JYfR_e>)g;< zXaHTq{qefx&sQ=BW_@3mhnx#VnODF+Psp&Czv&@5vLoPAg=|nrEspb6Y$e z%k!#?Ka9Zx0S=m+7+KZC2C30$mQaKe zY`bK0$iW5WK$s%VcgS}lH(eG#z>=u$H!B?uKgbd#Wkd?06kuQS(E=Br5Zg&f9H^x&OJN}iola-2;R$zU;R{Ugf_ z>`#{40-o~_8%ioyKf7=NjVCZll2BIwofrQroo}}{f6MMyjr&EYTBrsZ_EFdk{oYkN zpl~a<1P*0&3MRRF)FWRP+nFIH5nu#M+)%rj4G%1xK zU&-h?YxL=E+0Z@RW$8lc#K0j9o|<&xLxxfFhctM{BQ_8SD-L>ei-allVVoG{)|9Kj zK5r1)UliK3WQ7P5ay<#K8G5)l{@g%g)y8gs(gUxPHeg{|BwS8oQP{QiM(Cp! zcK#tH)#mcO+da1zfRJJVE<&^~@XTQ|=9O z?o84Ki+NzGdv&mdCH%uPW=QS^4Ju*Q{rjZfEVO0H0%=xDr@G=u0PG4{UYdQcC$rI$ zPi%$cx8y(`jy0!jh;(@!W7w)>XDMOPhyzp z>Q*kl(WnBsp&*z)AvFs)p)xXM1~Vu}mYaG7TGKmQrgd-PsK)m=0#le^2g<%w$Ztny zY+zQDMw}^|gZn74N-bzHh+I9hy6)l*&C~_#pf}V2zi~sAw>5&Z&iV_T63{^TTUfN0 zR=`Y5%v^D38kv74T@OrCQskBh1<3nRY?E5L5-<@a+EJ7r$1ZOAE0~03<)Pxv=Mkj7 zIuiwKzSakMLuw9PL`wlr`akG>Y#Oh#xUma7MxC8sX4)ETJ!)`Zat6u4p-|VMaeD)o zB!_2qPVj$)2}7DD+I?H);o0lQR-)MCsPtjzRwG$lP=FePdvS0NU=qu1)W#6NGaMhL zaCCq%yrf37dwmD&8!XW07J|vH-EF8QJ?IhzLC;Y+G#!V~r&MCrWykG=U*Ydh2unX0 zYs4`ZL-{rI1CAjLx`7Yo{$dHo{b5 zYe0m!1?}bcpOnjONIJXrN$c4(HSbDW85EKcM=7I%P%*E6vI4T|!Z%Zn9x+fQ-&zYEG?e2f{1(DM_p;Y@$BLl)@fUH|cun&HqRBn)s zItL0|B1F&|PWU>Zstm;aJ<%4U0}9iCIR`oufR}OvK9(lL>L43v?wzr_81$<|%oa+= zLlqz_oQybl!~N1**%hp=r^^q6z5rU^TLQ3v!MPm7^tO`2uaoMhX*5JhZyZ62k0EMC z$vA{9&gEOXl7bi^x@Tx|vO6T#GNsYs{mtMMxe1T4#%SO*-$eIz!;0+Sq}0H3=#z#k z+$rulXx5UF5hj`^BS_SHd3_F9F3*K?x|S_VAI0>Wr6LiOm>j*QruIN3CZMVgpL6rw z$3nNC?8pgHsS;CYkCh_qw6LZTCUjzWqm;n`L}NsQ`pj}M7hKV*37Ln~V4-$`pb$i} zxG<26+@M-nWkWQeP+G~!VXXp%<7pwJDV3=$%Ax!v^wH4h7VZU+zb6vie-VkS_&^Km z;6GF$sSGWpltd<)F8$6gGYdh6Px{W^htVk-r(q3l0XYkVf^BUow45nNG@Yy7wGz4D z#`5VD7_fl_5wPsXIU=q$B%>Y=ygJ?rtRPN9Tp2|`3L_+b{gF;$BTmteSx?K*ux_?2 zLnp+B0dvm*XT4q!w>lX%=o9rsVh3WupF+-0Ev#id1XkR)*^gAw?Xqe6 zqXp!AKs$=E)tfKm(&c@OSJv|`e6PKa2PnU6)v%n3Z?o8Y!q-YF(^?oHTf50JB!f=Q z&gN^8*6H|U>D+vsQ{527RrDKAd+l8z+@=#2Ua=4AtRlkPKv~XJa@{>&XgGovXTVo< z^CUnQK%$g;NOyBv!M7Oc*+P82$&}JSqnrw6fLiwCXX&qrOoC-utULw%d5P9Cm`^~uY>%U<(PCK zvKl`MHmJ8lK!>>_LQpMmh%X$}K<5O}V99UA!6mdl`gmaD4!=}yfbZW_kTYkEy_7KB z#}+qMQ`@PR-+EI&61tad1p+dP%_3)U%Lnourm#*GAdb6s+}fdb#I!FBft|GP2k~9n zQv>K>R_Y!HM342#qW za~~=DmnH=|;(B2_ij*3<+SAC23O)b!&qPskI>&>;SxK9;^Ae26fvL;;$39FQxfaHNiLo z>c?@R-_%3Ox%WUHB8LPeww7=WFP6J=FRkzw>R= zk+QShvg_DOJL`4cSURLQ9GNQauF@;pdvW38U7?zR9ZwbRdd%9`B-_o4JUFBS2r(Mz z%b+iDu`^W09Gd=&2n@rt`s`rE^ch|eMwQuS&$W|^PDT~gEh6=9i!8O&3o!hjPPi^v zr}fL1_o?njGKRv^2xKO#!gKayWP_rS5zw4;?rls0FTil)lm+aBd)HCkH;*~hQCVJ? zayoOeX;<&0tB!tZjcJ>D22V=8t14E3qU&86#|Er)U}EeGaG)P1Z%|cz16_C}MWxSC z+X(LvVuAI08k3+|+<7;D7zCZ>`>_M**Nl<2$3!}6 zECu}OK(qnMC`QE@5sY2~UUb#&}rl6ayrAMy&~SOO^zZBL%snDvRLtBe9ZHh%a?%n2$?bP`$nHuPMI zY$|R>?m?JVDglwIEP9d(#CX-si}aQ2oN$oX6|5PwJ>yHgu!jfI;g;W7^K%)iQBT{Q zA=tSY3}a`tN7P*Y@CS*v%h5@E1^G)lhni*GO?R!b+HHB zKaSC?1`qY$6D*=VI*2~TiS3ercG{7J%GXv5JxrUY;ZV#mC)i^?d<5b< zNY8|nj}?oQvVH~Bt1#D8ZY?9u1|l+J73n2&C(R(HI_3u9XHJpN+DE2ooHsG5D3=e` zoCN{CQ^3~R9cb{hC?udL4J=!>u_JrNWifuxVAP2~pMd?W44X4f5Us@zy#q#}-%Jp< z12tr&53;tXYC+XLD-BU`O{ZKKqnph6M%*Yi5%_78@sbMMYFoMvgl6b#M5cc$RnEg| z{$}R~o`s@RcKmXax*65ta8?uMq4OxGs{R%aV%72c}msmOt8;-kE3 ztvcX(#6}a3+JoxpH7^aq`d^#|G>1&0n(>uT)^`hH79SaJ_Qk&4CR3s;9E+2c)2Ko`C>W#iV+s<=E6T?K2BS0De&@=)wlSY)O zjy(ug9aNKADpdFp#pPgyaR=HmYm7S)2eS_X)yo1Zc~e;Z#glGsW)Vgl@=+>kXj9S5 z?Or8Lm}%%EEjZ`cX%A8*9zCAZmKpVcrXc-P0Iyu{^(5DZMG1 zrJ<@rCXOKyeYrzRR~@OckSPw$fJM#nHqnxQywhn#x9l-goi-G5+Jn++qmN#ysHMSL z%OuV^zaVYYV^`q&Cl^>djzR!teyWU`=>s#*h@_j_>oCVXV!c~RgdPsOp3fS3c=%ih z8;qmkK8J_XGCbV&hGb)Vr9(GfLGL)UCVdnORVjzHe>3rZ6ZtHfXhu|9bbI3Aj15`U zCLiMACr5A>F`*zEk?_TKzgCnL>KV|_#M~7J@;KR|(zHm=A0j$r_Mb`}X~3h0ADI+Y z+Fn!vHCm+1WDXSPMT`I_4~u zVQB>hRP#&dPG4}2$?>Z+{ zn^tX_#pZ}CPv{wmwZNG|S_9D9Q)jt8ojRti2@@$f_RXm%EtL3QJO44_3}_O8yOLDl zqXm`Fg-IN;fKU|Ifye;RUXRby$IIuJ6^U&c0U0wr10W%cF|Qr~8fz2Psq9Fb{y(BO z;hVst8;t;Y80PE`x}>E_*(_Y+0iVA;Htke4sjxRj?9iY{R>Lg7_{sxbiAUeR6h*ub ztu$&#uS^xT`|{MjzGosH@vIv1ON_n-I5l+pWQ`KHG0Mxm|S5l1WmEiq<7sD82pCfX1 z8OA%bd2f^2s~3;qAG;;l zs*%DsM6TJ~uOePr&uE8RTOGx#*(bn^IAdPienFH@YCH%7lP5nn3|=1 z6qtb34I1SUbIv(#GVgh@BamT6r&aOaVExe>c7v_44b#sVb$o3Ayw_tzb~I+RnNtg} zF8eXQrI*n^u_DR;kzhIL>kG59z*9p48k-=2n9xmK508Q32-qg!EJN_Ea>0qp`9Jjy zg7ru(u$6aJF@8okv>xOxg?IqRzE_PPSfTg!U(A4BuPC{0&1W(Xmf5_Qx96Zt24%kLu8fl z;0Dsv<8d$UlkeRPd9trdI1Dh(p3IcdSheH`mgu)hN_N;6cshL&4X~~9C@XDkpQIQm?O_(-o>4(ANgk&U40z!mB)sh|*qkztUQH7() zZ=%cP8%e9B%l1!|oGm=~AmlITH*q+I$4uTiOKs?C$Y5RxM^IhK!B@~a=ry7zaD&q3 zZ^P98ya-m5)%=Q6F(3Ba3sT4q^NZ zT)=`>f_)6{>#(J6niZ6n+CZjmU|wqYxk#pPg|MI_k4Om$A{KXOdfnu*k77|n5SXbL z`dbVPTwvyLQuT;Zo|q9sR9rw~v=SZRAZi9kT$+XGBu-iVfw`iMR=_edW*q)*I#;u{rYd-!GIyWeFdDIv7Vjxi~P<_ zqht?~AMe(QR!Kg@9Bpu0>Tg&ZCJ(SrY>n)+S?&azSGa>5{EMNLk29@(Y@ z*c#St=Uyk(NfFijLHRgvphNu>!GJ2%faj$^JcoJljSEdR6*KV1^Qh;IcG@Ki>-iG` zQAHq4=>pw^nfDKv2hiM8QqWuXwul~1@|XZ34YF=kDH>Ax!_II(r1nshL6Y}Wi8!cc z0zLB`R0^6c2!7v;X^l`?Zyr*m+yMjt}*?k z+$|bLC<483L&BjCV7so*Lk^#A#N&r6?})mo3BV(hv#-BzWxpP-te&o19Ugu!Y3yf4 z+pqLEr#DqgYjc3bTLb+Cv--VVogU7&0Kz?xI6u#i)x0LsNds_EyE%7q0ZkAcMVp`f zI8oL0%ppj9jJaO0F&lE@ftT7jI@*7hGH3u}F+(i0-++p;FJkiG^6+2kS@oC-l(En33>}Y&BRu( z4`WZF85(n!aaWlaEkF8OM-w_i4~E+>`S|L;z?ZX4V(C=Zk3( z^mWu4#Ab`SHheTk)~6DNIdg}{+&8!0yDn*{jrBt2IjgiQspd8RkWF|=exe;;wO1+pl{?@c^U`)P0P&qudIh=7GDBXS ztTW3+a+PoCDKj3(hVeIYv@E$HSZM26IDVfd(F=~1?jLOCWemrq3Fk#SWN^qxZ%wD-Gs6JI zBQZhHDRV!M5inJnlQ4zD3KU*AD5k0?qPIeQvAgSi27|>HZZ{(z`sqLLN*Qd9l~wwV z{dx{zc-{4XhgfekiIEgRho83D1T6aY#cvBs(Ijnij`3U_NEeD=3Y?LZ)<1%fS)-X3 zw7v{yH0VJ~r?&aF*BvrCN$sQbYstbQX77M}4EwUlW6uQ@R~pOVkE=+&X)5YwoOMYF zX{<303_s+F?7?|3(NN^_fYnN3N>B6u-WrckL1%jYiy^c`1mohQ)}hPds$(H(WxY69 zoq1E_zA*&b61W85lMu)wyvdY%R;d@vr%t`TV;*(EU?=)#@2{#N`EW0XVPFLM&!t$p zK%3QaWTLyGOh{MZ7jCtLsz+-6goS-QNCP+HRl!*YlEqj&)R_{PT(h zW|8m;k}4yM;ux~$(_6=??QYZUR6E~F*xmMI*VLE9~f!Ac4s^+(OsgEV;}s$lE)<} zReb%d)Lz`DukWq#*XkP-1ZUH!YiSA61@Dj=8I4kB1TpuETpAY4!l$Q)gxBPgnd3cSn*_e3M5I95{q+wt@F6~&CSf#d}Vk0c_y!o5m z-HRLn?cbXn63$nk)q^wE_gG)Vm};2#83nYuRxqc$$#BsJ#AEa^-^a6eB%S6x1jg>J zn=JREXvVw)?p=@^uO6G%kgtjQ0t$!(c$+Jb+_HPN|55_Vw6!oJ;S(GWM> zGgNxlzeaX(m|1XC)NIPsHhLKkhz80@9uPol-ox;!GO57QFZ5+%ylH;VV%Mrwr<`}p zzzBSp!A8-`*q-!8ErtP1;DH@RpB;K|;ER6NRckgQV57y!d>}QMfEGPf^G|BP24Cns zoer5sZY734Gsn^NevE>`4tRgMl)uuJXDI|@UBc6-wFIAKTB^p2_mT-WQ+M@`C`N(q zn;_rP7fI50SrLs9ivD7J%#76R6zxcb@7UwSgI8lRP2OFpaK>I^3n~| zq=II#=y{acDdx6$D9^~f4hCxti=AkZy_!Aaov)3 zW^iNLw3Z?`Wia;wudSmZC>&}_Vc^xyL|4rmj7T~wRd@MKz|YOdru-tSt%2<3=JuAb zL>s_U%^Cqro2#RfpX+8kXe)6wOzq5Efgyqe$|Qk6&4`wZZEZT730Jq@3f)jzHO<~u zPHV|~S5q_AT2&)`%^_5^xCBY4v~F15VvMCu(Wnc@C1p_5^H$ZET^m1iY|*&pUUC+2 zGJreGxb_1_-Po&-@QM}{``UW|Z6#254TUAHel&N>SGc$fJmE5j?Q7Q?gDnvpY^jYN z^S&%HB72^?a_xn5b(u)EjO_6Y?)$V;k6_L%HH+lQ|v)9K;# zXGWUrm6gIKmMmoIlT)BS)am{;ctL7oE&D3KcKeG^^KYc z`JIPuL<7y&T9~5Al8Sw|>>(MUuo%(sF0|a>27ha{=<)j46B)BrPa^Wm-!#5!1kOF2 zD-H?dcMIrZY8d<5W^8}{8QA`G=W~BV5*4OMP&jwMzZPnmjr@2-UJ6`nOLHdAO_Tg|HGAdX4P7P&D*8%+C z;(=mR!FxHZAIV^i?a~=q)i;Bt;q~KqEwX}pDDCUhx4u)=rKwnb{;m5Kchp>NZIiQX zzwJ^D&2RWyrXEQJe5HDS!M4>o7BaYWK{=xpv7;fQx?`IO0g*}%v1CQl^qS?sLiw1H zStsq~+dn-BeF~oxNw(N4&X^MYu7!H#)O-NGhbR5Rh98*+n_F-r{Xl+#cMZY*MWSnv zg0TRC)PtK86HKIc0BvnM`5fl^EB4|z&1OIhzVvM$be8iA@Sj+*kosEcqA;K(=O33^ z1qA?r@L#c_k&V5v^}k55MNK+>iw&XoQyr#TQ$t7xzm?q>*CY#t^ChrQBG3*wC{>Kj zI1@#}%9ee?|L#xW%dRkxO23iitOMR2J99Bd>OU-%gF1$9@UmFePH?#kZtj-un&zNx z@5f`x&-0!4@`fqLxCq1L_OfS#CTUyiUGnn!&-o4cv`%L(pzqV)uN~~gz?w9{AW=b~ zhmc1g9bE#903itwN|c~2XK+rm=2pRjU2ZSe-(l0xIwdA{Xg5hv3}h*eQKaZbjj(z4 zKC4h^4_ z&GBZ76=5gsKuV1(H=D&TiEu}Lci7`c!pScpD(J4xFVsb#QKtY{V};Qc@2-|El3Qt| z?!NDY0doF{H*9UazQMIjmBhKQq_fMXTt@}?ll_{pGWi3+HVdS*nLi+1hx*Z2n5Zm@ zV#}^s_PikXgzu$;X$kuK%ivO<9oj@Iy0^6Lyg?-!O6Us+=elU?4^g%P#@n#yXhp(> zSLVjelBaEGOtsxZv~jvK2WW|736#G%!eM8EK}nS;N1iKyNNm{nF6QPg*F*VcTf=J0 zbCNQiD)CDWVY!o_x|E~xS^I6bG~9uv>S&FZrFg5-4qBCOefWCsKXOZM$Tk5>!8c``0CGgaqp|pX!!8& zA6*&s6-UKy6BVIce3a$c(RP($7Nit&7+P^ClWJuBwTgL#TD7Le#loY~^U>qP`8k&^ z^;t3*u{_n0@dh3bU$q8!zs~pAN!@*@i}MwC9WAh5$9~TFbbS|vNc}|emRbwD)=;~% z+v^rL{tGexpt_b?w}r~(1^idb{wL>u4ekGTA+Y&BoU5zSl+_ReLiZJQ>N5g%41c}> zMGvYJJ#Ux+j<#I#rWP^f{_9m2^%Q)`MXrsRxtV!O%>dpb)~B8ocqRTkN4;>F&ITo| z=+%RA_{&;M?_)fItGXui-E#8&1(kIgA9TKz3AAYi3uSU-if&e5QV}(u!qoiWh=d*! zP^diu^fQS4u$pR_pUF1=j3R*b$apq^0d|c%954=8vKvGa7`K_i1sKp09m{X4iGpSx-^Q;LoH|de9HRRJ$1aj;hdwb<@jtRbq@fx_|&|31VDFcVZQE!_1KIIp* z&8pmG){OFS-$RTGdr=@**7zZw#``a3p0!PJPuuQ|+ZEbl1vnTNkvpRYw?2fwMavC( z7IG2bP^hg8kR$x(SCkYvcpPKtd|_Y$8~|LE8QRU$co$}T#XIPKhUTf-qts|9ce64R z007T40082D{q+B?!aM()nj^l}-kV}r=Wkz8oU==!#pwh-z*=uMmn3$r1#Y%wl9@;0 z;$VhVfRQO7xa?QIe!EjKEXB=64=(#>g>3{wDKfB;1vRiu9UUKRM^0NtcN zuzOuc6j9{F0=XZ~nonT4Caimd@u?Eu@|J12)b~GS4Sfs|JUkI(KMm;K&iD%55l0ku z55gginU6){@p#e9{JG$UEYWoKqAaMn>m1v|PT2Qy5owAvi`4owsSiX_Um(%N>ViaO z1ESX>ZL|p@S;p`oEP+wj{l6ekvP6ht6%gMIc_ex`({_;SOb?Lj)AE57RQMt9BoUyG zPr(uU;xv1}^amcT+3!Z{Nc7r=&7|E9M6&?PTUA@X(g^yjwY~}Oeh?I6QyuuFcu{}` zqYJVW-5gp%DW*svX(5>Xvm>LVN|EgcXYZ5H^gYo3i>h-97OiKx^|Ec-wr$(yUbb!9 zwr$(CZ5w+TXTMk9`KwZuo6MV3s%N@0p3#yADC>U*wF|+h+$$uG_8*ZV9sqDCg`@=v zI0X;2OS!2T3WFLphHLdZf&AtC6>q)lKr6A%_pe{n$7HCUpw zLQVrVTQWQtn-EH1N2Jq_sSmy;0zeV>I2lkA%@6jy9BG^5QApYB00GX3Uit)+gG3kK zefv-gFjU0FkSCVJ5oAY^n$zS*q)xzOx-bHx@P)Hl7dOfvLjX|>nIFysKC9^f#fu8r zUtk`|fIWlo&kb*51GDle^e~dAjuDJPlXgV3x0B9F;vJGn)Cv5aLRg9PZ()`*FL!`w zr5$5@R)8B+@HLVwNZ25uH<^Di3RcJrco$(efOyO@X=sQf3fI>b#r*_psV1(ha!A;r z1CFb`<#lt8lPvkY{W8HQ#b|%wxN>7*Q8*zBG%;x8Eb0&lm|%V8v#t9Y7y)KAq?y>C z0uT`}%lQg`%#-CanCq+WvbOL-pg8AZ;a@WayUNz3Mnup9r#ZnbE*d1!6#zA5FtQ{T z-~ zehRQ&0a9luVYBpGF>xSh2tXjgC$CI}jHIwh7SyW+*SCO4D1?m9(dM6MZVBEgkK)R> z(014iXULK6ONNvrpW~G1p)3nnMZ(AB@_W(3$;a;E zL>)w#_4Rz*)B}W1_F(*c9g1}Ga(Vb>s{YVIv1=}I>~ezWIA^Mz4B0?*+JbM^f$O(& z-Os@de-HVl{aAE;iT`X`o-B)^jFRZAg=P^8#6y4z5**Whl&$@M_`TeJ?$UiN4H@ya ziKzX}8^RmBAWqU^LuPNk!`y4maX9k&{Q2+gC!RdEZt{bn}x75)8*q@f0S3GZV zg))c#Tu!IR_>oilgnj4Jv}kL*n3rsZ(f6z`Za(+um&6wNc^`yFmPbF;LvDehwk6)! z(*0OHy~BbwQ)EG|`@TmKx?FIMgp(6G$3(%kC5GP8h9R_@0;V5+^R(yA4e-r-yI_KY zwP>%t4)d`d?NvimUMCPa$Wg+}Qf2tNZx24w8U)qy-{5Kp>UaI9`J}#-%j59p*ZpZK zQA8x3ADZ(V#qgz8cg+-w0u8+`v`J49JPRerARKoK&$Vvfq70W%UUVeLw-z>kJ&3KP z-)Ez0R{rD|;$^&cAOeVBI^#jW3+uSV70eDNR7ER`msF}x68I#WKX8Sg7^m))oWK5} zEJ-f)%|hLgGjlpGY~}Y9QNmAH79TPjGt&3=4GzIO`zH9ub z%&PTfPS}OQvzZV_&=DWd#~0tMvU#_J`rwEhSY#kMjKX~nY@~ndq4tZLXaIm%9bUk| zf$rW-s#7)(T!{7_p&-%+r1z?%;|yF##~Gj?6Zh|SUjCfkHSI&ycWp{D@r>kCXH2Q@ zjYeXrxUM<03Uy6VjI#4*B;6_?+!C>*S8TQsDl_xq%qai!EYpA{>4QnCqTvf@CKDBDad{52V^>k68ivhVj4_ts(xEjSf2=c z`g>bFk|*e##83|jAgfGxc((eNb)?lfiX4HOAnEPwgdT<~wE%o+lYtDq;QML30GZlf z45Y1hP&X&12m81OSr8Fmku$)ppanxNosU|4l@dt3vZ^LsimUGBy}R+(#tIPD6nnY9OkFBqxb^+6$g>$guJF4*K!m6O;p*~n1TWXF z>|tHJJu>i`Njp-348bb!Eij78FMqKuPC;Egyb=|ofIta> z9M&z`1a6i~Y+~Iy@AISoTn+kZb0Ju3!PI9h{>BT{ubMun(8tYuevRe@NWlMfbyMwn zB=FCtfHHla4c7BkM?32$6DPq*alRsL=rFyFiS^0IUp>ocBO@bznq67DIYA)lw1h~u zdu^HYu|-N@bwXk7RCK9u)V!=>T)UBAq~UofNQRO=VnW`{F0Q4ft|%sM61z3MxbJGD zFacwP3#d%ork$5AB*GCp_a2ZADido*AX0f1b4|#4=g7uDF9yoIG0bvegeluC1MtE9 zL%ZH>%4?+?)mg4L<_lwJM0Z-5wj)?+`8lVOzc%)O0k!GaZv|*b(Vo7;wxBJvrzb3O z33UNk?jd;zL&EFHk}D{1l7B3M?kDKQuBuXEjp9QJx3h)bYB3|izG;q z1pzU7SMDfwCbDVODXEvlca>0~bnevv8giPOil22a7CWeCB?hYpwyLlHiYDnw{ z_4DT^=qsQqngthIMuh0-ZVI<14YX&aCi<}MVm-Z$jMXkLxMF9BSwIJ zaRDOJmdz%D93|@D4w;B90V+5zCMM?k(|=cq8HT1OgF^PGdgg(?BY279nk6&2cVw3+ z{WvI&O=XnFe;>XE(jp9ye}S-f%Xv!|0E+F|g1PPX59N%=T(~Mc;hod&gW-OznQ8k0 z2fpInj^GcTiB-VFiSeQTrP>61j#ClM#iR9Rt&$g(i7d*V99&HZbAU~@O=oa2ZI7KI8K*<7!P?+|wEPpn(-+6yvZ%SDDs{b-DoM++{=IWlAihzyBx&gyH{ zOxfD(b3ztXR_$N~A$`;24s>$*EfxYUeC@-|3_t!q9dd;jLIHZcu!x8t2CJNFzE9yH>u(RtqFag(NFCVWbH#pcd6<(s@|d(>`Q4Lz z)T7~f(finZxG`FyN1JmhHLA&qjd>ANepbzp-IQ#QZzD^|AEWCgzKOEV;)??<$1t<9 z&DpXHy^F;hvb)V2EM)`JYdcr!Esw7X;6JatKc9UT2iN2tqJM-le7Bl$MwAw+WnWk% z#r1HwUDheV520>6CO4pnGip=JAv<<2PXcGqVnhI#<7-|W6eLMYOsTKi)OX?~yB zN@4ogprtWXq>CI|DhR=bb0GOr8t zmug83si7d41EW4vH#tQnG6!ylzCz+=FSjj%rpUQLxnLzt7>4s^{cRYIiSS2WX#4P z81vEH5Syfjw!dKA7Fh~!K(_Zx5Q?G1#DUV-yy%CP*XgFq8x zEA#>?jDgtE0tGr_+>i-o$b|=-eE=;73%*$R&0H%|F85Ncp zRU$bn?ZdE)wOu4}v21XP~Y2Ux9es?daVN)qbJLjV4ndmdLY zD&5DtylI>ce$!yP{8XwcV--aBO%XlY?t*3fYt|0zMozrY$F_SI^3q%5175F<>)o}r zpar+Hs5c&JLAG`bOa&sF9)^UKR{#YG97b}aIMyAk zITNS-pe6hr5Uf8PH(hwsV*WL=oiF3Va9O}x@fN4T9~LLo9JYiz6fXGXS}+iD@PqB~ zby$xjS?$FrOE+UHoUrJ^NzM(Z%U~R)m{c8lG=O%6S2dGnMjAr9ndw7bd^y}s3JpirmpXzFsQUJ^f;k}aFv>9pE-Jaj4jX7|;ANMVTIip!?&8bDc@)I+j zG{b3rm$n_R^(-chY%r{ngr{T34k&7MMa@X68=ptyX+{?@$uz|)oEWIb;00I8Q$5o~l9s4{dB zAMjU;{-uY1kJ}3*>sTNK9uQlj~GerhV5izt5t`C&w4yOi$N#8n~B z^_!HcE3>QPK(EX>ev<|kjn7X{OGi%&CQgk3tzqqlKy6E;LaNB)IZ9Ke3~vO9&) zs(lKRs6W4|BzQE1ZPz8Ppl9LDFEWk%cr&T8KH#OgrA5$?r>rr_ETgVx z_VMMTgWP$h*hVHoBzGT3823RF^_~~bv)*)|H|z^k*sL6 z!q6-ry=vRmM%YXZia|<*MD3(fkN(rRZSb{oS&O$&tYROfYU=SNUkS1DZkZ0Gf^`8< z{1n6l^rnBXTk0ydb~ByaSca!wq6;^4?R1Ef46&ds1hOkcF(FZa`2Yx;#K+8xW^1cL z*qRv>Tk9iA#rmafNL1XrR*z0A^?6=yB5>c(JW!igm(<&U>rb*#Qvw4Iy6jCcfE2xtkl^>#l5ez12)zIcY4**HPbWs_85n%p5?LgLG1opLK^1c-n^j^ ztaE*FG~ys7gz;()tai(2)NFjg^J zfdAL+0lMFtaJJU}T9VF3dO&tXZ^7dC?sc7zU7`rFrb%Ymvd^Wn-BV8+r+U}|rcbw( zzFHLlM&2=3lw1w%O9M0Q`MNs|f9zqCoL1`b;xljX!1Tvbf|WI_6Bcf33e?uyo)5ir z0A{de$L$8e4AzWT1_V432zW4O6`lev5QAi$vx)^oR-9$yoDZS9*@CsjRts3^wn|

s@e1@C*}&~6Z%Pq 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 B-k$&f literal 0 HcmV?d00001 diff --git a/dist/pygcode-0.1.0.tar.gz b/dist/pygcode-0.1.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..27203aef0526635f739e2ac3a699299243224f2f GIT binary patch literal 36092 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 literal 0 HcmV?d00001 diff --git a/src/pygcode.egg-info/PKG-INFO b/src/pygcode.egg-info/PKG-INFO new file mode 100644 index 0000000..ae6dded --- /dev/null +++ b/src/pygcode.egg-info/PKG-INFO @@ -0,0 +1,254 @@ +Metadata-Version: 1.1 +Name: pygcode +Version: 0.1.0 +Summary: Basic g-code parser, interpreter, and encoder library. +Home-page: https://github.com/fragmuffin/pygcode +Author: Peter Boin +Author-email: peter.boin@gmail.com +License: GPLv3 +Description: ======= + pygcode + ======= + + GCODE Parser for Python + + Currently in development, ``pygcode`` is a low-level GCode interpreter + for python. + + Installation + ============ + + Using `PyPi `__: + + ``pip install pygcode`` + + Usage + ===== + + Just brainstorming here... + + Writing GCode + ------------- + + Writing gcode from python object instances to text + + :: + + >>> from pygcode import * + >>> gcodes = [ + ... GCodeRapidMove(Z=5), + ... GCodeStartSpindleCW(), + ... GCodeRapidMove(X=10, Y=20), + ... GCodeFeedRate(200), + ... GCodeLinearMove(Z=-1.5), + ... GCodeRapidMove(Z=5), + ... GCodeStopSpindle(), + ... ] + >>> print('\n'.join(str(g) for g in gcodes)) + + G00 Z5 + M03 + G00 X10 Y20 + F200 + G01 Z-1.5 + G00 Z5 + M05 + + + To plot along a lines of vectors, you could write... + + :: + + >>> from pygcode import * + >>> from euclid import Vector3 + + >>> vectors = [ + ... Vector3(0, 0, 0), + ... Vector3(10, 0, 0), + ... Vector3(10, 20, 0), + ... Vector3(10, 20, 3), + ... Vector3(0, 20, 3), + ... Vector3(0, 0, 3), + ... Vector3(0, 0, 0) + ... ] + + >>> to_coords = lambda v: {'X': v.x, 'Y': v.y, 'Z': v.z} + >>> for v in vectors: + ... print("%s" % GCodeLinearMove(**to_coords(v))) + + G01 X0 Y0 Z0 + G01 X10 Y0 Z0 + G01 X10 Y20 Z0 + G01 X10 Y20 Z3 + G01 X0 Y20 Z3 + G01 X0 Y0 Z3 + G01 X0 Y0 Z0 + + + Reading / Interpreting GCode + ---------------------------- + + To read gcode from a file, utilise the ``Line`` class. + Each ``Line`` instance contains a ``Block`` and an optional ``Comment``. + The ``Block`` contains a list of gcodes you're after. + + :: + + from pygcode import Line + + with open('part.gcode', 'r') as fh: + for line_text in fh.readlines(): + line = Line(line_text) + + print(line) # will print the line (with cosmetic changes) + line.block.gcodes # is your list of gcodes + line.block.modal_params # are all parameters not assigned to a gcode, assumed to be motion modal parameters + if line.comment: + line.comment.text # your comment text + + To elaborate, here are some line examples + + :: + + >>> from pygcode import Line + + >>> line = Line('G01 x1 y2 f100 s1000 ; blah') + >>> print(line) + G01 X1 Y2 F100 S1000 ; blah + >>> print(line.block) + G01 X1 Y2 F100 S1000 + >>> print(line.comment) + ; blah + + >>> line = Line('G0 x1 y2 (foo) f100 (bar) s1000') + >>> print(line) + G00 X1 Y2 F100 S1000 (foo. bar) + >>> print(line.comment) + (foo. bar) + + + Interpreting what a line of gcode does depends on the machine it's running on, + and also that machine's state (or 'mode') + + The simple line of a rapid move to ``x=10, y=10`` may be ``G00 X10 Y10``. + However, if the machine in question is in "Incremental Motion" mode ``G91`` then + the machine will only end up at ``x=10, y=10`` if it started at ``x=0, y=0`` + + So, GCode interpretation is done via a virtual machine: + + :: + + >>> from pygcode import Machine, GCodeRapidMove + + >>> m = Machine() + >>> m.pos + + >>> g = GCodeRapidMove(X=10, Y=20) + >>> m.process_gcodes(g) + >>> m.pos + + >>> m.process_gcodes(g) + >>> m.pos + # same position; machine in absolute mode + >>> m.mode.distance + # see + + >>> m.process_gcodes(GCodeIncrementalDistanceMode()) + >>> m.process_gcodes(g) # same gcode as above + >>> m.pos + + + all valid ``m.mode`` attributes can be found with ``from pygcode.gcodes import MODAL_GROUP_MAP; MODAL_GROUP_MAP.keys()`` + + Also note that the order codes are interpreted is important. + For example, the following code is WRONG + + :: + + from pygcode import Machine, Line + m = Machine() + line = Line('G0 x10 y10 G91') + m.process_gcodes(*line.block.gcodes) # WRONG! + + This will process the movement to ``x=10, y=10``, and **then** it will change the + distance mode to *Incremental*... there are 2 ways to do this correctly. + + - ``m.process_gcodes(*sorted(line.block.gcodes))``, or simply + - ``m.process_block(line.block)`` + + sorting a list of gcodes will sort them in execution order (as specified by + `LinuxCNC's order of execution `__). + ``process_block`` does this automatically. + + If you need to process & change one type of gcode (usually a movement), + you must split a list of gcodes into those executed before, and after the one + in question. + + :: + + from pygcode import GCodeRapidMove, GCodeLinearMove + from pygcode import Machine, Line, split_gcodes + m = Machine() + line = Line('M0 G0 x10 y10 G91') + (befores, (g,), afters) = split_gcodes(line.block.gcodes, (GCodeRapidMove, GCodeLinearMove)) + m.process_gcodes(*sorted(befores)) + if g.X is not None: + g.X += 100 # shift linear movements (rapid or otherwise) + m.process_gcodes(g) + m.process_gcodes(*sorted(afters)) + + + For a more practical use of machines & interpreting gcode, have a look at + `pygcode-normalize.py `__ + + At the time of writing this, that script converts arcs to linear codes, and + expands drilling cycles to basic movements (so my + `GRBL `__ machine can understand them) + + + Development + =========== + + This library came from my own needs to interpret and convert erroneous + arcs to linear segments, and to expand canned drilling cycles, but also + as a means to *learn* GCode. + + As such there is no direct plan for further development, however I'm + interested in what you'd like to use it for, and cater for that. + + Generally, in terms of what to support, I'm following the lead of: + + - `GRBL `__ and + - `LinuxCNC `__ + + More support will come with increased interest. + So that is... if you don't like what it does, or how it's documented, make some + noise in the `issue section `__. + if you get in early, you may get some free labour out of me ;) + + + Supported G-Codes + ----------------- + + All GCodes supported by `LinuxCNC `__ can be written, and + parsed by ``pygcode``. + + Few GCodes are accurately interpreted by a virtual CNC ``Machine`` instance. + Supported movements are currently; + + - linear movements + - arc movements + - canned drilling cycles + +Keywords: gcode,cnc,parser,interpreter +Platform: UNKNOWN +Classifier: Development Status :: 2 - Pre-Alpha +Classifier: Intended Audience :: Developers +Classifier: Intended Audience :: Manufacturing +Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3) +Classifier: Natural Language :: English +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 3 +Classifier: Topic :: Scientific/Engineering diff --git a/src/pygcode.egg-info/SOURCES.txt b/src/pygcode.egg-info/SOURCES.txt new file mode 100644 index 0000000..38deb60 --- /dev/null +++ b/src/pygcode.egg-info/SOURCES.txt @@ -0,0 +1,19 @@ +README.rst +setup.cfg +setup.py +src/pygcode/__init__.py +src/pygcode/block.py +src/pygcode/comment.py +src/pygcode/exceptions.py +src/pygcode/gcodes.py +src/pygcode/line.py +src/pygcode/machine.py +src/pygcode/transform.py +src/pygcode/utils.py +src/pygcode/words.py +src/pygcode.egg-info/PKG-INFO +src/pygcode.egg-info/SOURCES.txt +src/pygcode.egg-info/dependency_links.txt +src/pygcode.egg-info/not-zip-safe +src/pygcode.egg-info/requires.txt +src/pygcode.egg-info/top_level.txt \ No newline at end of file diff --git a/src/pygcode.egg-info/dependency_links.txt b/src/pygcode.egg-info/dependency_links.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/src/pygcode.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/src/pygcode.egg-info/not-zip-safe b/src/pygcode.egg-info/not-zip-safe new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/src/pygcode.egg-info/not-zip-safe @@ -0,0 +1 @@ + diff --git a/src/pygcode.egg-info/requires.txt b/src/pygcode.egg-info/requires.txt new file mode 100644 index 0000000..baa8aa3 --- /dev/null +++ b/src/pygcode.egg-info/requires.txt @@ -0,0 +1,2 @@ +euclid3 +six diff --git a/src/pygcode.egg-info/top_level.txt b/src/pygcode.egg-info/top_level.txt new file mode 100644 index 0000000..d560b01 --- /dev/null +++ b/src/pygcode.egg-info/top_level.txt @@ -0,0 +1 @@ +pygcode