ROOTPLOIT
Server: LiteSpeed
System: Linux server71.web-hosting.com 4.18.0-513.18.1.lve.el8.x86_64 #1 SMP Thu Feb 22 12:55:50 UTC 2024 x86_64
User: niphet (1079)
PHP: 5.3.29
Disabled: NONE
Upload Files
File: //lib64/python3.8/__pycache__/turtle.cpython-38.opt-2.pyc
U

e5dd1O@s2dZddlZddlZddlZddlZddlZddlZddlm	Z	m
Z
mZddlm
Z
ddlmZdddd	d
ddd
dg	Zdddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-gZd.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|gOZd}d~gZeeeedgZdd/d2d?dLdPdTdZd\dadbdddedpdudxdygZdddddddddddddddddddddZddZddZzeeWnek
redYnXGdddeZddZddZdZdddZGdddej Z!ee!ej"dGdddej#Z$ej"Z"Gddde%Z&GdddeZ'GdddeZ(Gdd
d
e%Z)Gddde%Z*Gddde&Z+Gddde%Z,Gddde%Z-Gddde%Z.Gdd	d	e-e,Z/e/Z0ddZ1Gddde+Z2Gdd
d
e/Z3e3Z4ddd}Z5ddZ6edZ7ze7dkrne6e7Wn@e8k
rede7Yn"ek
rede7YnXddZ9dd„Z:ddĄZ;dZ<ddDŽZ=e=ee2dde;e=ee3dde:e>Z?e@dkr.dd΄ZAddЄZBdd҄ZCeBeCeDdS)z-turtle 1.1b- - for Python 3.1   -  4. 5. 2009N)isfilesplitjoin)deepcopy)simpledialogScrolledCanvasTurtleScreenScreen	RawTurtleTurtleRawPenPenShapeVec2Daddshapebgcolorbgpicbyeclearscreen	colormodedelayexitonclick	getcanvas	getshapeslistenmainloopmodenuminputonkey
onkeypressonkeyrelease
onscreenclickontimerregister_shaperesetscreen
screensizesetupsetworldcoordinates	textinputtitletracerturtlesupdate
window_heightwindow_widthbackbackward
begin_fill
begin_polybkcircleclear
clearstampclearstampsclonecolordegreesdistancedotdownend_fillend_polyfd	fillcolorfillingforwardget_polygetpen	getscreen
get_shapepoly	getturtlegotoheading
hideturtlehomehtisdown	isvisibleleftltonclickondrag	onreleasepdpenpencolorpendownpensizepenuppospositionpuradiansrightreset
resizemodertseth
setheadingsetpossetpositionsettiltangle
setundobuffersetxsetyshape	shapesizeshapetransformshearfactor
showturtlespeedststamptilt	tiltangletowards
turtlesizeundoundobufferentriesupwidthwritexcorycorwrite_docstringdictdone
Terminator?g?ii,standard?
iclassicblacknoresizeTZenglishturtlescreenzPython Turtle GraphicsF)rzheight	canvwidth
canvheight	leftright	topbottomrrrundobuffersizerkrWrAravisiblelanguage
exampleturtle
examplescreenr)
using_IDLEc	Cst|d}|}W5QRXi}|D]}|}|r&|drBq&z|d\}}Wn(tk
r|td||fYq&YnX|}|}|dkrt|}n4zd|krt|}nt	|}Wntk
rYnX|||<q&|S)Nr#=zBad line in config-file %s:
%s)TrueFalseNonez''z"".)
open	readlinesstrip
startswithr
ValueErrorprintevalfloatint)filenamefZcfglinescfgdictlinekeyvaluer/usr/lib64/python3.8/turtle.pyconfig_dicts0



rcCsd}i}i}t|rt|}d|kr0d|d}ztt\}}t||}Wntk
rbd}YnXt|rtt|}t|t|dS)Nz
turtle.cfgZimportconfigz
turtle_%s.cfg)rrr__file__r	Exception_CFGr,)rZdefault_cfgZcfgdict1Zcfgdict2headtailZ	cfg_file2rrr
readconfigs 


rz"No configfile read, reason unknownc@s\eZdZddZddZddZddZd	d
ZddZd
dZ	ddZ
ddZddZdS)rcCst|||fSN)tuple__new__)clsxyrrrrsz
Vec2D.__new__cCs"t|d|d|d|dSNrrselfotherrrr__add__sz
Vec2D.__add__cCsDt|tr*|d|d|d|dSt|d||d|Sr)
isinstancerrrrr__mul__s
 z
Vec2D.__mul__cCs2t|tst|tr.t|d||d|StSr)rrrrNotImplementedrrrr__rmul__szVec2D.__rmul__cCs"t|d|d|d|dSrrrrrr__sub__sz
Vec2D.__sub__cCst|d|dSrrrrrr__neg__sz
Vec2D.__neg__cCs|dd|dddS)Nrrrrrrrr__abs__
sz
Vec2D.__abs__cCsjt|d|d}|tjd}t|t|}}t|d||d||d||d|S)Nrrf@)rmathpicossin)rangleZperpcsrrrrotateszVec2D.rotatecCs|d|dfSrrrrrr__getnewargs__szVec2D.__getnewargs__cCsd|S)Nz(%.2f,%.2f)rrrrr__repr__szVec2D.__repr__N)
__name__
__module____qualname__rrrrrrrrrrrrrrrscCsTt|j}||D]}t||q|jD]\}}t|tjkr0|||<q0dSr)	list	__bases__reverse__methodDict__dict__itemstypetypesFunctionType)r_dictZbaseListZ_superrrrrrr!s
rcCsi}t|||Sr)rkeys)rrrrr	__methods+s
rzTdef %(method)s(self, *args, **kw): return self.%(attribute)s.%(method)s(*args, **kw)rcCsi}t||i}t|}|D]B}|dddksd|dddksd||ksd||krXq"||||<q"|D]D\}}	||	d}
t|trt||d}t||
t|||
|qndS)Nr_)methodfunc)rZ	attribute)	rrrrrstr__stringBodyexecsetattr)Z	fromClassZtoClassZtoPartZexcludeZ_dict_1rZmfcZexrrdZ
execStringrrr__forwardmethods5s
0


rc@s`eZdZdddZdddZd	d
ZddZd
dZddZddZ	ddZ
ddZddZdS)r^Xc
Cs0tjj||||d||_|||_|_|||_|_d|_	tj
||||j	tjdd|_tj
||jjtjd|_tj
||jjd|_|jj|jj|jjd|jdd	dd
|jdd	dd
|jjd	|d	ddd	d	dd|jjd	|d	dd	d	d	dd|jjd	|d	d	dd	d	dd||jd
|jdS)N)rzrwhiter)rzrbgZreliefZborderwidth)commandZorient)r)ZxscrollcommandZyscrollcommandrr)ZweightZminsizenewsZpadxZin_ZpadyrowcolumnZrowspanZ
columnspanZstickyz<Configure>)TKFrame__init__winfo_toplevelZ_rootwindowrzrrrrCanvasZSUNKEN_canvasZ	ScrollbarZxviewZ
HORIZONTALhscrollZyviewvscrollZ	configuresetZrowconfigureZcolumnconfiguregridr`bindonResize)rmasterrzrrrrrrrPsN

zScrolledCanvas.__init__NcCs|r
||_|r||_|r||_|jj||jd|jd|jd|jdfd|jd|j|jd|j|jd|j|jd|j|	dS)Nr)rscrollregionr)
rrrrconfigxview_movetorzyview_movetor
adjustScrollsrrrrrrrr`is&zScrolledCanvas.resetc
Cs|j}|j}|jd|j||j|jd|j||j||jks`||jkr|jjd|ddddddd|j	jd|dddddddn|j
|j	
dS)Nrrrrr)rwinfo_widthwinfo_heightr	rr
rrrrZgrid_forget)rcwidthcheightrrrr{s&


zScrolledCanvas.adjustScrollscCs|dSr)r)reventrrrrszScrolledCanvas.onResizecGs|jj|Sr)rbboxrargsrrrrszScrolledCanvas.bboxcOs|jj||Sr)rcgetrrkwargsrrrrszScrolledCanvas.cgetcOs|jj||dSr)rrrrrrrszScrolledCanvas.configcOs|jj||dSr)rrrrrrrszScrolledCanvas.bindcOs|jj||dSr)runbindrrrrrszScrolledCanvas.unbindcCs|jdSr)rfocus_forcerrrrrszScrolledCanvas.focus_force)rrrr)NNN)
rrrrr`rrrrrrrrrrrrrJs

rc@sDeZdZddZddZddZddZd	d
ZddZd
dZ	dS)_RootcCstj|dSr)rTkrrrrrrsz_Root.__init__cCs&t||||||_|jjddddS)NrZboth)expandfill)rrZpack)rrzrrrrrrsetupcanvassz_Root.setupcanvascCs|jSr)rrrrr
_getcanvassz_Root._getcanvascCs|d||||fdS)Nz%dx%d%+d%+d)Zgeometry)rrzrstartxstartyrrrset_geometrysz_Root.set_geometrycCs|d|dS)NZWM_DELETE_WINDOW)Zwm_protocol)rdestroyrrr	ondestroysz_Root.ondestroycCs|Sr)Zwinfo_screenwidthrrrr	win_widthsz_Root.win_widthcCs|Sr)Zwinfo_screenheightrrrr
win_heightsz_Root.win_heightN)
rrrrrrr"r$r%r&rrrrrsrc@s(eZdZddZddZddZddZdFddZd
dZdGddZ	ddZ
ddZddZddZ
dHddZddZdIddZdJd d!ZdKd"d#ZdLd$d%Zd&d'ZdMd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5Zd6d7Zd8d9Zd:d;ZdNd<d=Zd>d?Z d@dAZ!dBdCZ"dOdDdEZ#d	S)PTurtleScreenBasecCstjdd|jd}||S)Nr)rzrr)r
PhotoImagecvblank)rZimgrrr_blankimageszTurtleScreenBase._blankimagecCstj||jdS)N)filer)rr(r))rrrrr_imageszTurtleScreenBase._imagecCs||_t|tr"|jj}|jj}nJt|jd}t|jd}|jj|d|d|d|dfd||_||_d|_|_	dS)Nrzrrrr)
r)rrrrrrrxscaleyscale)rr)whrrrrs

*zTurtleScreenBase.__init__cCs|jjddddS)N)rrrrrrrroutline)r)Zcreate_polygonrrrr_createpolyszTurtleScreenBase._createpolyNFc
Csg}|D]*\}}	|||j||	|jq|jj|f||dk	r^|jj||d|dk	rv|jj||d|dk	r|jj||d|r|j|dS)Nr)r4rzappendr/r0r)coordsZ
itemconfigureZ	tag_raise)
rZpolyitem	coordlistrr4rztopclrrrrr	_drawpolyszTurtleScreenBase._drawpolyc	Cs|jjddddddtjdS)Nrrr)rrzZcapstyle)r)Zcreate_linerZROUNDrrrr_createlineszTurtleScreenBase._createlinec	Cs|dk	rNg}|D]*\}}|||j|||jq|jj|f||dk	rf|jj||d|dk	r~|jj||d|r|j|dS)Nr6r7r8)	rZlineitemr;rrzr<r=rrrrr	_drawlines
zTurtleScreenBase._drawlinecCs|j|dSr)r)deleteritemrrr_delete(szTurtleScreenBase._deletecCs|jdSr)r)r,rrrr_update.szTurtleScreenBase._updatecCs|j|dSr)r)afterrrrrr_delay3szTurtleScreenBase._delaycCs4z|j|}d}Wntjk
r.d}YnX|S)NTF)r)Z	winfo_rgbrZTclError)rr9Zrgbokrrr_iscolorstring7s
zTurtleScreenBase._iscolorstringcCs0|dk	r |jj|d|n|jdSdS)N)rr)r)rrEr)rr9rrr_bgcolorAs
zTurtleScreenBase._bgcolorcCst|\}}||j}||j}dddd}|jj|d||||||d}	|j|	\}
}}}
|j|	|dfS)NswrZse)rPcenterr_r)textanchorrfont)r/r0r)Zcreate_textrr,)rr[txtalignrPrWrrrOrCZx0Zy0Zx1Zy1rrr_writeJs


zTurtleScreenBase._writercsDdkrj|d|n$fdd}j|d|||dS)N<Button-%s>cs:j|jjj|jj}}||dSrr)canvasxrr/canvasyrr0rrrfunrrreventfunesz+TurtleScreenBase._onclick.<locals>.eventfunr)Z
tag_unbindZtag_bindrrCrZnumaddr[rrYr_onclick\szTurtleScreenBase._onclickcsDdkrj|d|n$fdd}j|d|||dS)Nz<Button%s-ButtonRelease>cs:j|jjj|jj}}||dSrrUrXrYrrr[wsz-TurtleScreenBase._onrelease.<locals>.eventfunr\r]rrYr
_onreleaseks	zTurtleScreenBase._onreleasecsDdkrj|d|n$fdd}j|d|||dS)Nz<Button%s-Motion>csTz:j|jjj|jj}}||Wntk
rNYnXdSr)r)rVrr/rWrr0rrXrYrrr[sz*TurtleScreenBase._ondrag.<locals>.eventfunr\r]rrYr_ondrag~s	zTurtleScreenBase._ondragcs@dkrjd|n"fdd}jd|||dS)NrTcs:j|jjj|jj}}||dSrrUrXrYrrr[sz1TurtleScreenBase._onscreenclick.<locals>.eventfunr)rr)rrZr^r_r[rrYr_onscreenclicks	zTurtleScreenBase._onscreenclickcs>dkr|jd|dnfdd}|jd||dS)Nz<KeyRelease-%s>cs
dSrrrrZrrr[sz0TurtleScreenBase._onkeyrelease.<locals>.eventfunrcrrZrr[rrfr
_onkeyreleaseszTurtleScreenBase._onkeyreleasecsndkr4|dkr |jddqj|jd|dn6fdd}|dkrX|jd|n|jd||dS)Nz
<KeyPress>z
<KeyPress-%s>cs
dSrrrerfrrr[sz.TurtleScreenBase._onkeypress.<locals>.eventfunrcrgrrfr_onkeypressszTurtleScreenBase._onkeypresscCs|jdSr)r)rrrrr_listenszTurtleScreenBase._listencCs(|dkr|j|n|j||dSNr)r)Z
after_idlerFrrZtrrr_ontimerszTurtleScreenBase._ontimercCs|jjdd|dS)Nrimage)r)Zcreate_image)rrprrr_createimageszTurtleScreenBase._createimagecCs<|\}}|j|||j||jf|jj||ddSNro)r)r:r/r0
itemconfig)rrCr[rprrrrr
_drawimages zTurtleScreenBase._drawimagecCs |jj||d|j|dSrr)r)rsZ	tag_lower)rrCrprrr	_setbgpicszTurtleScreenBase._setbgpiccCs|j|Sr)r)rrBrrr_typeszTurtleScreenBase._typecs.|j|fddtdtdD}|S)Ncs"g|]}||dfqS)rr.0ir=rr
<listcomp>sz/TurtleScreenBase._pointlist.<locals>.<listcomp>rr)r)r:rangelen)rrCplrrzr
_pointlistszTurtleScreenBase._pointlistcCs|jj||||fddS)Nr.)r)r)rsrx1sry1srx2sry2rrr_setscrollregionsz!TurtleScreenBase._setscrollregionc	Cs||j}|D]h}t|j|}g}|rd|dd\}}|||||||dd}q&|jj|f|qdSNr)r)Zfind_allrr:r9)	rZxscalefactorZyscalefactorrrCZcoordinatesZnewcoordlistrrrrr_rescales
zTurtleScreenBase._rescalecCszt|jts|j|jfS||kr6|kr6dkrJnn|jj|jjfS|dk	rX||_|dk	rf||_|j|||dSr)rr)rrrr`rrrr_resizes"zTurtleScreenBase._resizecCs@|j}|dkr|jd}|j}|dkr8|jd}||fS)Nrrzr)r)r
r)rrzrrrr_window_sizes



zTurtleScreenBase._window_sizecCs|jjdSr)r)Ztkrrrrrrs
zTurtleScreenBase.mainloopcCstj|||jdS)N)parent)rZ	askstringr))rr)promptrrrr(.s
zTurtleScreenBase.textinputcCstj||||||jdS)N)ZinitialvalueZminvalueZmaxvaluer)rZaskfloatr))rr)rdefaultZminvalZmaxvalrrrr=s

zTurtleScreenBase.numinput)NNNF)NNNF)N)rN)rN)rN)rN)N)NNN)NNN)$rrrr+r-rr5r>r?r@rDrErHrJrKrSr`rarbrdrhrirjrnrqrtrurvrrrrrrr(rrrrrr'sR




	





r'c@seZdZdS)rNrrrrrrrrYsc@seZdZdS)TurtleGraphicsErrorNrrrrrrbsrc@s eZdZdddZdddZdS)rNcCsz||_|dkr"t|trpt|}nN|dkrVt|trp|drpt|rpt	|}n|dkrdg}nt
d|||_dS)Npolygonrp.gifcompoundzThere is no shape type %s)rvrrrrlowerendswithrrr-r_data)rZtype_datarrrrns


zShape.__init__cCs:|jdkrtd|j|dkr$|}|j|||gdS)Nrz Cannot add component to %s Shape)rvrrr9)rpolyrr4rrraddcomponent~s
zShape.addcomponent)N)N)rrrrrrrrrrgs
c@s@eZdZdddZdddZddZd	d
ZddZd
dZdS)TbufferrcCs$||_dgg||_d|_d|_dS)NrF)bufsizebufferptrcumulate)rrrrrrszTbuffer.__init__NcCsD|dkr&t|jD]}dg|j|<qn||_dgg||_d|_dS)Nr)r|rrr)rrryrrrr`sz
Tbuffer.resetcCsF|jdkrB|js0|jd|j|_||j|j<n|j|j|dSr)rrrrr9rBrrrpushs

zTbuffer.pushcCsJ|jdkrF|j|j}|dkr"dSdg|j|j<|jd|j|_|SdSr)rrrrBrrrpops
zTbuffer.popcCs|j|jdgSr)rrcountrrrrnr_of_itemsszTbuffer.nr_of_itemscCst|jdt|jS)N )rrrrrrrrszTbuffer.__repr__)r)N)	rrrrr`rrrrrrrrrs

	rc@seZdZdZedededfddZddZd<d
dZdd
Zd=ddZ	ddZ
ddZd>ddZddZ
ddZddZd?ddZd@ddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+ZdAd-d.Zd/d0ZdBd1d2ZdCd3d4ZdDd6d7ZdEd8d9ZdFd:d;ZeZe
Z eZ!e	Z"eZ#d	S)GrTrrrc
Cst||tddtddtddtddtddtddtd|d	|_d
di|_||_||_td|_	g|_
|tj
d
kr|}|ddddd|ddddddS)Nr)rrrrr))r))rr))	)))rr))r)rr)rrrr)r)r)rr)rr)rr)rr)rr)rr)rr)rr)rr)r)Q#@Q@)Gz. @Q@)rr)rrr)Qr)Qr)Gz. r)Q#rr)rr)rr)rr)rr)gg$)rr)rr)rr)rr))rr)rr)rr)rr))rGz)rg'@)rr)rr)rrr)rrrp)Zarrowrr4ZsquareZtrianglerr*nopicrrdarwinZwmZ
attributesrz-topmost10)r'rrr+_shapes_bgpics_mode_delayvaluer
_colormode_keysr5sysplatformrZcall)rr)rrrZ
rootwindowrrrrs&


zTurtleScreen.__init__cCstd|_td|_|d|d|_d|_d|_d|_g|_	|
dd	D]}|d|qP|d|j
ddD]}|d||d|qzdt_dS)
Nrrallrrrrr)rr)rrrrDrq_bgpic
_bgpicname_tracing_updatecounter_turtlesrrRrrrr_pen)rbtnrrrrr5s 




zTurtleScreen.clearNcCs||dkr|jS|}|dkr*td|||_|dkrp||jd|jd|jd|jdd|_|_|dS)NrlogoworldzNo turtle-graphics-mode %s)rrrr)	rrrrrrr/r0r`rrrrrrszTurtleScreen.modecCs|dkr|dt||}t||}|\}}||d|d|j|j}	}
|j||_|j||_||j}||j}|j|}
|j|}||||
||	|j|	|j|
|
dS)Nr)rrrr%r/r0rrrrr,)rZllxZllyZurxZuryZxspanZyspanZwxZwyZ	oldxscaleZ	oldyscalerrrrrrrr'-s 



z TurtleScreen.setworldcoordinatescCsT|dkr2|dr(td||}qFtdnt|trFtd|}||j|<dS)Nrrpz;Bad arguments for register_shape.
Use  help(register_shape)r)rrrr-rrrr)rnamerkrrrr#Ts


zTurtleScreen.register_shapec	Cst|dkr|d}t|trD||s0|dkr4|Stdt|z|\}}}Wn(ttfk
rztdt|YnX|jdkrdd|||fD\}}}d|krd	krnn.d|krd	krnnd|krd	ksntd
t|d|||fS)Nrrrzbad color string: %sbad color arguments: %srcSsg|]}td|qSgo@roundrxrrrrr{sz*TurtleScreen._colorstr.<locals>.<listcomp>bad color sequence: %s
#%02x%02x%02x)r}rrrJr	TypeErrorrr)rr9rgbrrr	_colorstrws


FzTurtleScreen._colorstrcsxdsStdkr.fdddD}n4tdkrVfddddD}ntd	tfd
d|DS)Nrrcs"g|]}t||ddqS)rrrrwcstrrrr{sz'TurtleScreen._color.<locals>.<listcomp>)rrrrcsg|]}dt|dqS)rr)rxr2rrrr{srzbad colorstring: %sc3s|]}|jdVqdS)rN)r)rxrrrr	<genexpr>sz&TurtleScreen._color.<locals>.<genexpr>)rr}rr)rrr=r)rrr_colors
zTurtleScreen._colorcCs8|dkr|jS|dkr"t||_n|dkr4t||_dS)Nrr)rrr)rZcmoderrrrszTurtleScreen.colormodecCs$|jD]}||j|qdSr)r_setmoderr`)rrrrrr`s
zTurtleScreen.resetcCs|jSr)rrrrrr+szTurtleScreen.turtlescGs4|r||}nd}||}|dk	r0||}|Sr)rrKrrrr9rrrrs

zTurtleScreen.bgcolorcCsB|dkr|jSt||_d|_|dk	r0t||_|jr>|dSrk)rrrrr,)rnrrrrr*s

zTurtleScreen.tracercCs|dkr|jSt||_dSr)rrrGrrrrszTurtleScreen.delaycCs<tjsdt_t|jdkr8|jd7_|j|j;_dS)NTrr)r_RUNNINGrrrrrrr
_incrementudc	s
zTurtleScreen._incrementudccCs<|j}d|_|D]}||q||_|dSNT)rr+_update_data_drawturtlerE)rtracingrmrrrr,s
zTurtleScreen.updatecCs|dSrkrrrrrr.szTurtleScreen.window_widthcCs|dSNrrrrrrr-&szTurtleScreen.window_heightcCs|jSr)r)rrrrr/s
zTurtleScreen.getcanvascCst|jSr)sortedrrrrrrr;s	zTurtleScreen.getshapesrcCs||||dSr)rdrrZrr_rrrrRFszTurtleScreen.onclickcCsF|dkr ||jkr6|j|n||jkr6|j||||dSr)rremover9rhrrZrrrrrWs

zTurtleScreen.onkeycCsN|dkr ||jkr>|j|n|dk	r>||jkr>|j||||dSr)rrr9rirrrrrus
zTurtleScreen.onkeypresscCs|dSr)rj)rxdummyydummyrrrrs
zTurtleScreen.listenrcCs|||dSr)rnrlrrrr"szTurtleScreen.ontimercCsF|dkr|jS||jkr(|||j|<||j|j|||_dSr)rrr-rur)rZpicnamerrrrs
zTurtleScreen.bgpiccCs||||Sr)rrrrrr%szTurtleScreen.screensize)N)N)N)NN)N)rN)N)NN)r)N)NNN)$rrrrrrr5rr'r#rrrr`r+rr*rrr,r.r-rrrRrrrr"rr%r!r$rrr rrrrrsF
(
"'
#
	

			

 



c@sPeZdZeddeddedddZdZdZdZefddZd	d
Z	dAdd
Z
ddZdBddZddZ
ddZddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(ZdCd)d*Zd+d,Zd-d.Zd/d0ZdDd1d2ZdEd3d4Zd5d6Zd7d8ZdFd9d:Z dGd;d<Z!dHd=d>Z"dId?d@Z#eZ$eZ%eZ&eZ'eZ(eZ)eZ*eZ+eZ,dS)J
TNavigatorr)rrrrrrcCsB|j|_|j|_||_d|_|d|_||t	|dSr)
DEFAULT_ANGLEOFFSET_angleOffsetDEFAULT_ANGLEORIENT_angleOrientr
undobufferr:rrr`rrrrrs
zTNavigator.__init__cCstdd|_tj|j|_dS)Nr)r	_positionrSTART_ORIENTATIONr_orientrrrrr`szTNavigator.resetNcCsL|dkr|jS|dkrdS||_|dkr6d|_d|_n|jd|_d|_dS)Nr)rrrr@r)rrr_fullcirclerrrrrszTNavigator._setmodecCs0||_d||_|jdkr"d|_n
|d|_dS)Nihrrr)r
_degreesPerAUrrrZ
fullcirclerrr_setDegreesPerAUs


zTNavigator._setDegreesPerAUv@cCs||dSr)rr
rrrr:szTNavigator.degreescCs|dtjdSr)rrrrrrrr^5szTNavigator.radianscCs|j|j|}||dSr)rr_goto)rr;Zenderrr_goCszTNavigator._gocCs||j9}|j||_dSr)r	rrrrrrr_rotateHs
zTNavigator._rotatecCs
||_dSrr)rendrrrr
MszTNavigator._gotocCs||dSrrrr;rrrrCQszTNavigator.forwardcCs||dSrrrrrrr/hszTNavigator.backcCs||dSrrrrrrr_|szTNavigator.rightcCs||dSrrrrrrrPszTNavigator.leftcCs|jSrrrrrrr[szTNavigator.poscCs
|jdSrkrrrrrr|szTNavigator.xcorcCs
|jdSrrrrrrr}szTNavigator.ycorcCs,|dkr|t|n|t||dSr)r
r)rrrrrrrIszTNavigator.gotocCs|dd|ddSrk)rIrdrrrrrLszTNavigator.homecCs|t||jddSrr
rr)rrrrrriszTNavigator.setxcCs|t|jd|dSrkr)rrrrrrjszTNavigator.setycCsT|dk	rt||}t|tr"|}n$t|tr6t|}nt|trF|j}t||jSr)rrrrrabs)rrrr[rrrr;%s




zTNavigator.distancecCs|dk	rt||}t|tr"|}n$t|tr6t|}nt|trF|j}||j\}}tt||dtjdd}||j	}|j
|j||jSNrrr)
rrrrrrratan2rr	rrr)rrrr[resultrrrruEs




 
zTNavigator.towardscCsJ|j\}}tt||dtjdd}||j}|j|j||jSr)	rrrrrr	rrr)rrrrrrrrJhs

 
zTNavigator.headingcCs>|||j}|j}||d||d}||dS)N@)rJrrr)rZto_anglerZfullrrrrdwszTNavigator.setheadingcCsp|jr|jdgd|j_|}|dkr2|j}|dkrjt||j}dttdt|dd|}d||}d|}d	|t	|tj
d
|j}|dkr|||}}}|}	|
}
|dkr|ddn
|d||t|D].}|||||d||q|||dkrR||	|
|||jrld|j_dS)
NseqTrg@gM@rrrrrF)rrrrprrrminrrrr	_tracerrHrr|r)rradiusZextentstepsrpZfracr1Zw2lZtrZdlryrrrr4s>""






zTNavigator.circlecCsdSrr)rrrrrrpszTNavigator.speedcCsdSrr)rarrrrrszTNavigator._tracercCsdSrr)rrrrrrHszTNavigator._delay)N)r)N)N)N)NN)r)NN)N)-rrrrrZDEFAULT_MODErrrr`rrr:r^rrr
rCr/r_rPr[r|r}rIrLrirjr;rurJrdr4rprrHr@r3r0rbrQr\rerfrcrrrrrsX

	


#
 
#
A


rc@seZdZedfddZededfddZd-d	d
Zd.ddZd
dZddZ	ddZ
d/ddZddZddZ
ddZddZddZdd Zd0d!d"Zd1d$d%Zd2d'd(Zd)d*Zd+d,ZeZeZeZe	Ze	ZeZeZdS)3TPenracCs||_d|_t|dSr)_resizemoderr$_reset)rrarrrrsz
TPen.__init__rWrAcCsFd|_d|_||_||_d|_d|_d|_d|_d|_d|_	d|_
dS)NrTr)rrr)rrrr)_pensize_shown	_pencolor
_fillcolor_drawing_speed_stretchfactor_shearfactor_tilt_shapetrafo
_outlinewidth)rrWrArrrr&szTPen._resetNcCs.|dkr|jS|}|dkr*|j|ddS)N)autouserrra)r%rrV)rZrmoderrrras
zTPen.resizemodecCs|dkr|jS|j|ddS)N)rY)r'rV)rrzrrrrYszTPen.pensizecCs|js
dS|jdddS)NFrXr+rVrrrrrZ0s
z
TPen.penupcCs|jr
dS|jdddS)NTr5r6rrrrrX>s
zTPen.pendowncCs|jSr)r+rrrrrNLs
zTPen.isdowncCsjdddddd}|dkr|jS||kr0||}n*d|krDdkrVnntt|}nd}|j|d	dS)
Nrrrrr)ZfastestZfastnormalZslowZslowestrg%@)rp)r,rrrV)rrpZspeedsrrrrp[s
z
TPen.speedcGs|rht|}|dkr"|d}}n"|dkr4|\}}n|dkrD|}}||}||}|j||dn||j||jfSdS)Nrrrr)rWrA)r}rrVrr)r*)rrr"ZpcolorZfcolorrrrr9s 


z
TPen.colorcGs:|r*||}||jkrdS|j|dn||jSdS)N)rW)rr)rVrrrrrrWs

z
TPen.pencolorcGs:|r*||}||jkrdS|j|dn||jSdS)N)rA)rr*rVrrrrrrAs

zTPen.fillcolorcCs|jdddS)NTshownrVrrrrroszTPen.showturtlecCs|jdddS)NFr8r:rrrrrK	szTPen.hideturtlecCs|jSr)r(rrrrrO	s
zTPen.isvisiblecKs|j|j|j|j|j|j|j|j|j|j	|j
d}|s>|s>|St|trN|}ni}|
|i}|D]}||||<qd|jr|jd|fd}d|kr|j|dkrd}d|krt|dtr||df|d<|j|dkrd}d|kr|j|dkrd}|r|d|kr&|d|_d|kr:|d|_d|krN|d|_d|krt|dtr|||df|d<|d|_d	|kr|d	|_d
|kr|d
|_d|kr|d}t|ttfr||f}||_d|kr|d|_d
|kr|d
|_	d|kr|d|_d|kr.|d|_
d|ksLd|ksLd|kr|j\}	}
|j}t|j
t|j
}}
|	|
|
||
||	||
|
||f|_|dS)N)r9rXrWrArYrpra
stretchfactorrnr4rsrVFrXTrWrYrArprar;rnr4r9rs)r(r+r)r*r'r,r%r-r.r1r/rdictr,rrrr_newLinerrrrrr0rE)rrVZpendictZ_pdpZ_p_bufrZnewLineZsfZscxZscyZshfsacarrrrV!	s/

























zTPen.penTcCsdSrrrZusePosrrrr=	sz
TPen._newLineFcCsdSrr)rrZforcedrrrrE	szTPen._updatecCsdSrrrrrrr	szTPen._colorcCsdSrrrrrrr	szTPen._colorstr)N)N)N)N)T)TF)rrrrrr&rarYrZrXrNrpr9rWrArorKrOrVr=rErrrzryr]rUr=rqrMrrrrr$s8



&.%$



r$c@seZdZddZddZdS)_TurtleImagecCs||_d|_||dSr)rrv	_setshape)rr
shapeIndexrrrr	sz_TurtleImage.__init__cs|j||_|jdkr*j|jkr2nndS|jdkrPj|jkrXnndS|jdkrp|jn |jdkr|jD]}|qj|j|_|jdkr|_nF|jdkrԈjdj|_n&|jdkrfddj|jD|_dS)Nrrp)rprrr*csg|]}qSrr5rxrCrrrr{	sz*_TurtleImage._setshape.<locals>.<listcomp>)	rrDrvrrD_itemr5rqr)rrDrCrrGrrC	s(""







z_TurtleImage._setshapeN)rrrrrCrrrrrB	srBc@seZdZgZdedededfddZddZd	d
ZddZd
dZ	ddZ
ddZddZdlddZ
ddZddZddZddZdmdd Zdnd!d"Zdod#d$Zd%d&Zdpd'd(Zd)d*Zdqd+d,Zd-d.Zd/d0Zdrd2d3Zd4d5Zd6d7Zd8d9Zd:d;Zdsd<d=Z d>d?Z!d@dAZ"dBdCZ#dtdEdFZ$dGdHZ%dIdJZ&dKdLZ'dudMdNZ(dOdPZ)dvdSdTZ*dUdVZ+dWdXZ,dYdZZ-d[d\Z.d]d^Z/e/Z0dwd_d`Z1dxdbdcZ2dydddeZ3dzdfdgZ4dhdiZ5djdkZ6eZ7dS){r
NrkrrcCs4t|tr||_n|t|tr:|tjkr2tj|||_nTt|ttfrtjD]}|j	|krN||_qqNt||_tj|jnt
d||j}t||
t||j|||_t|||_d|_d|_d|_|_||_d|_||_|jg|_|jg|_g|_||_t ||_!|"dS)Nzbad canvas argument %sF)#r_Screenrrr
screensr9rrr)rrrrr$rr?drawingLineItemrBr_poly
_creatingPoly	_fillitem	_fillpathr(_hidden_from_screencurrentLineItemrcurrentLiner
stampItems_undobuffersizerrrE)rZcanvasrkrrrrrrr	s@











zRawTurtle.__init__cCs0t|t||||dSr)rr`r$r&_clearrrErrrrr`
s


zRawTurtle.resetcCs&|dks|dkrd|_n
t||_dSrk)rr)rsizerrrrh
szRawTurtle.setundobuffercCs|jdkrdS|jSrk)rrrrrrrx,
s	
zRawTurtle.undobufferentriescCsld|_|_|jD]}|j|q|j|_g|_|jrJ|j	|j
|jg|_|||j
dSr)rNrOrrrDr?rQrRr+r9rr7rhrTrBrrrrU9
s

zRawTurtle._clearcCs||dSr)rUrErrrrr5G
szRawTurtle.clearcCsF|j|jjdkrdSt|jdkrB|j|j|j|j|jdSr)	rrrr}rRr@rQr)r'rrrrrV
s
zRawTurtle._update_datacCsx|j}|jdkrdS|jdkrD|||||jn0||jdkrt|D]}|q^|dSr)	rrrrrErHrrr+)rrrmrrrrE^
s



zRawTurtle._updatecCs|j||Sr)rr*)rflagrrrrrp
szRawTurtle._tracercCs|j|Sr)rrrrrrr
szRawTurtle._colorcCs|j|Sr)rrrrrrr
szRawTurtle._colorstrc	Cst|tr|Sz|\}}}Wn(ttfk
rDtdt|YnX|jjdkrldd|||fD\}}}d|krdkrnn.d|krdkrnnd|krdksntdt|d|||fS)	NrrcSsg|]}td|qSrrrrrrr{
sz!RawTurtle._cc.<locals>.<listcomp>rrrr)rrrrrrr)rrrrrrrr_cc
s
Fz
RawTurtle._cccs|j||j|j}d|_d|_t|}|_||_|_t|jj|_j|j	|jjj
}|dkr|j_nJ|dkr
j	dj|j_n*|dkrʇfddj	|jjjD|j_|_||S)Nrrpr*rcsg|]}qSrrErFrGrrr{
sz#RawTurtle.clone.<locals>.<listcomp>)rr=r+rrrBrDrr9rrvr5rHrqrr?rQrE)rrqttyperrGrr8
s.


zRawTurtle.clonecCsB|dkr|jjS||jkr*td||j||dS)NzThere is no shape named %s)rrDrrrrCrE)rrrrrrk
szRawTurtle.shapecCs||kr|krdkr8nn|j\}}|||jfS|dksH|dkrPtd|dk	rt|dkrj||f}q||f}n|dk	r|jd|f}n|j}|dkr|j}|jd||ddS)Nrz(stretch_wid/stretch_len must not be zeror3)rar;r4)r-r1rrV)rZstretch_widZstretch_lenr4r;rrrrl
s$"


zRawTurtle.shapesizecCs |dkr|jS|jd|ddS)Nr3)rarn)r.rV)rZshearrrrrnszRawTurtle.shearfactorcCs<||j|j}|tjddtj}|jd|ddS)Nrrr3)rars)r	rrrrVrrrsrrrrgszRawTurtle.settiltanglecCs>|dkr0|jdtj|j}||j|jS||dS)Nr)r/rrrr	rrgr[rrrrt4szRawTurtle.tiltanglecCs|||dSr)rgrtrrrrrsNszRawTurtle.tiltcCs6||kr(|kr(|kr(dkr2nn|jS|j\}}}}|dk	rL|}|dk	rX|}|dk	rd|}|dk	rp|}||||dkrtd||||f|_t||dtj}	t|	t|	}
}|||
||||
||
||||
|||f\}}
}}||f|_|
||_|	|_	|j
dddS)Nrz0Bad shape transform matrix: must not be singularrr3r4)r0rrrrrrr-r.r/rV)rt11t12t21t22Zm11Zm12Zm21Zm22Zalfar?r@Za11Za12Za21Za22rrrrmas0,

zRawTurtle.shapetransformcs^|j|j\|j\tjj}dt||\fdd|DS)NrcsFg|]>\}}||j||jfqSr)r/r0rxrrZe0Ze1Zp0Zp1rrrr{sz(RawTurtle._polytrafo.<locals>.<listcomp>)rrrrr0r/r)rrerrar
_polytrafos

zRawTurtle._polytrafocCs2|jj|jj}|jdkr.||j|jdkSdS)Nrr)rrrrDrv
_getshapepolyr)rrkrrrrGs
zRawTurtle.get_shapepolyFcsx|jdks|r|j\n>|jdkrNtd|jd}|dd|f\n|jdkr\|Stfdd|DS)	Nr3r2rg@rrc3s2|]*\}}||||fVqdSrrr`r\r]r^r_rrrsz*RawTurtle._getshapepoly.<locals>.<genexpr>)r%r0maxr'r)rrrr"rrerrds

zRawTurtle._getshapepolyc	Cs|j}|j|jj}|j}|jj}|jr*|jdkr*|jdkr*d|_	|j
}|dkr|jdkrfd}n|jdkrx|j}n|j
}|||}|j|j}}|j|||||ddnt|d	kr|||j|nZ|d
krt||D]D\}	\}
}}|||
d}
|j|	|
|||||j
ddqnx|j	r6dS|dkrR||dddnJ|d	krv|||j|jd
j
n&|d
kr|D]}	||	dddqd|_	dS)NrFrrrr2Trr4rzr<rprrrrrr*)rrrrDrvrHr(rrrPrr%r'r1rcrdr*r)r>rtrziprX)rrrkrZZtitemtshaper1fcocrCrrrrrsR 








zRawTurtle._drawturtlec	CsT|j}|j|jj}|j}|j}|dkr|}|jdkr@d}n|jdkrR|j}n|j	}|
||}|j|j
}}|j|||||ddn|dkr|d}|||j|n|d	kr4g}|D]}	|}
||
qt|}t||D]D\}
\}}}|
||d}|j|
||||||j	ddq|j||jd
|f|S)Nrrrr2Trgrprrrr)rrrrDrvrr5r%r'r1rcrdr*r)r>rqrtrr9rrirXrSrr)rrrkrZrjstitemr1rkrlZelementrCrrrrrrsH



zRawTurtle.stampcCs||jkrDt|tr,|D]}|j|qn|j||j|d|f}|j}||jkr`dS|j|}|j|||j	kr|j	d|j
|_	|j|j	d|j
dgdS)Nrrr)rSrrrrDrrrindexrrinsert)rstampidZsubitemrCZbufrnrrr_clearstamps



zRawTurtle._clearstampcCs|||dSr)rqrE)rrprrrr6s
zRawTurtle.clearstampcCs^|dkr|jdd}n&|dkr0|jd|}n|j|d}|D]}||qB|dSrk)rSrqrE)rrZtoDeleterCrrrr7-szRawTurtle.clearstampsc
Cs|j|j|jt|jtf}|j}d|j|||j|j	dd|
|j|jddff}|jrh|j
||j}|jrZ|jdkrZ||}|d|jd|d|jd}dt|ddd|j|j}|d|}	td|D]R}
|
dkrd	}nd
}||	|
|_|jr2||j||jf|j|j||q|jrZ|j|jdd|jd
|jrn|j	|t|jtr|j|||_|jr|j|t|j	dkr||dS)Ngorrrrr皙?rTFrrrrrz*)r+r)r'rrOrrrrQrRrrrrr,rr/r0rr|r@rKrEr9rMrLr}r=)rrgo_modesrZ
undo_entrystartdiffdiffsqnhopsdeltarr<rrrr
Isb


$$

zRawTurtle._gotocs|\}}}}|\}}}}	|\}
}}|jt|j|dkrDtd|
|_||_|ddgkrbd}
n|}
j|
||
|dfdd|jD}|D]}||j	|q|}|j
rjdkr||}|d	jd
|dj
d
}dt|ddd|j
|j
}|d
|}td|D]P}|dkr@d}nd}||||_|rr|j||jf||||q,|rj|jdd|d||_|jrt|jd	kr|j|jgkrd|_d|_|	r|jgkrd|_tdn|jdk	r|j|dS)Nrz$undogoto: HALLO-DA-STIMMT-WAS-NICHT!rrrucs&g|]}|kr|dkr|qS)r)rvrwrrrrr{sz'RawTurtle._undogoto.<locals>.<listcomp>rrrrrsrTFrtzUnwahrscheinlich in _undogoto!)rrrrrQrRr@rrDrr,rr/r0rr|rKrErMr}rLrrO)rentryoldnewrwZcoodataZdrawingZpcZpsrBZcLIZcLr~ZusepcZtodeleteryrxryrzr{r|rr<rr}r	_undogoto~sl
$$




zRawTurtle._undogotocCs|jr|jd||jf||j9}|j|}|jj}|dkr|jdkrd|j}dtt	||}d||}t
|D]}|j||_|q|||_|dS)Nrotrrg@r)rrr	rrrrr,rrr|rE)rrZ	neworientrZanglevelr!r|rrrrrs


zRawTurtle._rotateTcCsnt|jdkrD|j|j|j|j|j|j|_|j	|jn|jj|jddg|_|rj|j
g|_dS)NrT)r<)r}rRrr@rQr)r'r?rr9rrArrrr=szRawTurtle._newLinecCst|jtSr)rrOrrrrrrBszRawTurtle.fillingcCsX|s"|j|_|j|j|jg|_||j	rL|j	
d|jf|dS)N	beginfill)rBrr5rNrr9rrOr=rrrErrrrr1s
zRawTurtle.begin_fillcCs^|rZt|jdkrF|jj|j|j|jd|jrF|jd|jfd|_|_|	dS)Nrr6dofill)
rBr}rOrr>rNr*rrrErrrrr>
szRawTurtle.end_fillc	Gs8|sNt|ttfr0||}|jt|jd}qr|j}|sr|jt|jd}n$|dkrh|jt|jd}||}t|jdr|j	|j
||}|j||j
r|j
d|fn|}|j
r|j
dgd|j
_z>|dkr|||||||dW5||X|j
r4d|j
_dS)	Nr_dotr<rTr2rF)rrrrr'rfr)hasattrrrrrr9rrrVrrarMrXrYrWrC)rrVr9rCrVrrrr<
s:



z
RawTurtle.dotcCsB|j|j||||j\}}|j||jr>|jd|f|S)Nwri)rrSrr)rr9rr)rrQrRrPrCrrrrrSH
szRawTurtle._writerPArialrr7cCs`|jr|jdgd|j_|t|||}|rN|\}}||||jr\d|j_dS)NrTF)rrrrSrrr[re)rargZmoverRrPrrrrrrr{R
szRawTurtle.writecCs|jg|_d|_dSr)rrLrMrrrrr2o
s
zRawTurtle.begin_polycCs
d|_dSNF)rMrrrrr?}
szRawTurtle.end_polycCs|jdk	rt|jSdSr)rLrrrrrrD
s

zRawTurtle.get_polycCs|jSrrGrrrrrF
szRawTurtle.getscreencCs|SrrrrrrrH
szRawTurtle.getturtlecCs|j|Sr)rrrGrrrrH
szRawTurtle._delayrcCs"|j|jj||||dSr)rr`rrHrErrrrrR
szRawTurtle.onclickcCs"|j|jj||||dSr)rrarrHrErrrrrT
szRawTurtle.onreleasecCs|j|jj|||dSr)rrbrrHrrrrrS
szRawTurtle.ondragcCs,|jdkrdS|dkr@|\}}||||j|j}n|dkr\|d}||n|dkrp||n|dkr|d}|j||j	|n|dkr|d}|jj
|dddd	nh|d
kr|d}d|_|_||jkr(|j||j	|n$|dkr(t
||d|jdS)Nrrrrrr)rr<rrhrr3rrV)rrr	rr6rrrDrrr>rNrOr$rV)ractionrrZdegPAUZdummyrmrCrrr_undos<



zRawTurtle._undocCsl|jdkrdS|j}|d}|dd}|dkr\|rh|}||d|ddq4n|||dS)Nrrr)rrr)rrCrrrrrrw's

zRawTurtle.undo)NN)N)NNN)N)N)NNNN)F)N)T)N)FrPr)N)rN)rN)rN)8rrrrJrrr`rhrxrUr5rrErrrrXr8rkrlrnrgrtrsrmrcrGrdrrrrqr6r7r
rrr=rBr1r>r<rSr{r2r?rDrFrHrErHrRrTrSrrwrvrrrrr
	sp
(

(

(


(

(-
5A

0







 cCstjdkrtt_tjSr)r_screenrIrrrrr	Js
c@sfeZdZdZdZedZddZededededfd	d
ZddZ	d
dZ
ddZddZdS)rINr)cCstjdkr4tt_|_|jtj|j|jtjdkrtd}td}td}td}td}td}|j	|||||j
t_t|tj|
||||dS)Nrzrrrrr)rI_rootrr)_titler$_destroyrrrrrrr&)rrzrrrrrrrrrXs

z_Screen.__init__rzrrrcCst|jdsdS|j}|j}t|trNd|krBdkrNnn||}|dkrb||d}t|trd|krdkrnn||}|dkr||d}|j|||||dS)Nr"rrr)rrr%r&rrr"r,)rrzrr r!rLZshrrrr&ns

""z
_Screen.setupcCs tjdk	rtj||t_dSr)rIrr)r)rZtitlestringrrrr)s
z
_Screen.titlecCs:|j}|tjkr(dt_dt_dt_dt_dt_|dSr)	rrIrrrrrrr#)rrootrrrrs
z_Screen._destroycCs|dSr)rrrrrrsz_Screen.byecsNfdd}|tdr"dSz
tWntk
rHtdYnXdS)NcsdSr)r)rrrrrexitGracefullysz+_Screen.exitonclick.<locals>.exitGracefullyrr)rRrrAttributeErrorexit)rrrrrrs

z_Screen.exitonclick)
rrrrrrrrr&r)rrrrrrrrIRs
(
rIc@s0eZdZdZdZedededfddZdS)rNrkrrcCs,tjdkrtt_tj|tj|||ddS)N)rkrr)rrr	r
r)rrkrrrrrrs

zTurtle.__init__)rrrrrrrrrrrrsturtle_docstringdictc	Csi}tD]}d|}t|j||<qtD]}d|}t|j||<q(td|d}tdd|D}|d|ddD](}|d	t||d
||q||d}|d	t||d|||d|W5QRXdS)
Nz_Screen.zTurtle.z%s.pyr1css$|]}|ddtkr|VqdS)rrN)r_alias_listrrrrrsz&write_docstringdict.<locals>.<genexpr>zdocsdict = {

rz%s :
z        """%s
""",

z        """%s
"""

z}
)	_tg_screen_functionsr__doc___tg_turtle_functionsrrr{reprclose)rdocsdict
methodnamerrrrrrr~s$

c	Cs`dd|i}t|}|j}|D]8}z||t|_Wq"tk
rXtd|Yq"Xq"dS)Nz!turtle_docstringdict_%(language)srzBad docstring-entry: %s)r
__import__rrrrr)Zlangmodnamemodulerrrrrread_docstringssrrzCannot find docsdict forz;Unknown Error when trying to import %s-docstring-dictionaryc
Csd}}t|j\}}}|dd}|dd}|jp:g}dd|D}dgt|t||}ddt||D}	|dk	r|	d||d||dk	r|	d||d|d|	}d	|}d|}d	|}||fS)
NrrcSsg|]}d|fqS)z=%rr)rxrrrrr{<sz"getmethparlist.<locals>.<listcomp>cSsg|]\}}||qSrr)rxrZdfltrrrr{>s*z**z, z(%s))inspectZgetargs__code____defaults__r}rir9r)
ZobZdefTextZcallTextrZvarargsZvarkwZitems2ZrealArgsdefaultsZitems1rrrgetmethparlist,s&


rcCsJddl}|dkrdStd}|d|d}|d|}|d|}|S)Nrr%s.r \(.+ %s\)::rerreplacecompilesub)docstrrZ
turtlename	newdocstrparexprrr_turtle_docreviseKsrcCsJddl}|dkrdStd}|d|d}|d|}|d|}|S)Nrrrrrrr)rrZ
screennamerrrrr_screen_docreviseWsrardef {name}{paramslist}:
    if {obj} is None:
        if not TurtleScreen._RUNNING:
            TurtleScreen._RUNNING = True
            raise Terminator
        {obj} = {init}
    try:
        return {obj}.{name}{argslist}
    except TK.TclError:
        if not TurtleScreen._RUNNING:
            TurtleScreen._RUNNING = True
            raise Terminator
        raise
c
Csl|D]b}t||}t|\}}|dkr4td||qtj|||||d}	t|	t||jt|_qdS)Nrz>>>>>>)objinitrZ
paramslistZargslist)getattrrr__func_bodyformatrglobalsr)
Z	functionsrrrZ	docreviserrZpl1Zpl2Zdefstrrrr_make_global_funcsws

rzTurtle._screenzScreen()zTurtle._penzTurtle()__main__cCstrtntdSr)rNr]rUrrrr	switchpensrcCslttdttdttdtdD]Z}|dkrDttdD]}tdt	dqL|dkrxt
dtttd	tq2td
t
dtdttdtdtdtdtd
tt
dd
t
dd
t
dtdD]$}tdt	dtdtdqtdttdD]&}tdt	dtdtdq:tdS)NTdrrrrZZmaroonrrrFZ
startstartrxredr)r`r*ryr0r=rzr|r1rCrPr9r>r_r{)ryrrrrdemo1sX



rcCsBtdttdttddtddd}tdtdD]}tt	|dqBt
dtrntq`t
tdtd	d}td
tdtdtdd
D]p}|dkrttd	d|dd|tdD]}t|tdqt|d7}tdttddqtdttdtdttddtdttdD](}t	ddtdtdtdq`ttdttdttdt}|dt}|d|d|
|d|d||dd|d||d|dd|d|dtt|d}||dkr|d|d ||||d|d!dkr| | t|d7}qZ|j
d"d#d$d%|d&|dd'd(}t!"dtr||q|d|j
d)d*d+|#|ddS),Nrrrrrrzwait a moment...rZgreenrrrxFrrZyellowr2rr2i(rZblueZorangerg@g333333?rzCAUGHT! )rrboldr_)rPrRrcSsttdSr)rr)rrrrrbabaszdemo2.<locals>.babaz  Click me!)ZCourierrr)rP)$rprqrYrdrur;rbr|rr4r{rxrwr`rQrrWr1rAr@r>r]rUr9rkrHrarrPryrIr=rrtimesleeprR)r rZlaengeryZtrirrrrrrdemo2s


















r)r)r)EZ_verZtkinterrrrrrrZos.pathrrrcopyrrZ_tg_classesrrZ
_tg_utilities__all__rrrrrrrrrrrrrrrrrobjectr'rrrrrrr$rBr
rr	rIrr
r~rZ	_LANGUAGEImportErrorrrrrrrrrrrrrrrrr<module>gs


5

c	/&/O}
"

5c