Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325
ó V �Qc@sädZddlZddlZddlZddlZddlZddlmZdddf\ZZ Z d„Z d„Z d „Z ie e6e e 6e e 6Zid e6d e 6d e 6Zied 6e d 6e d 6Zid e6d e 6de 6Zd„Zdfd„ƒYZdfd„ƒYZdfd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZd„Zd„Zd„Zd„ZddlZd fd!„ƒYZd"„Z d#„Z!e"d$kràe!ƒndS(%sSS1 -- a spreadsheet.iÿÿÿÿN(texpattLEFTtCENTERtRIGHTcCs |j|ƒS(N(tljust(txtn((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyR scCs |j|ƒS(N(tcenter(RR((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyRscCs |j|ƒS(N(trjust(RR((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyRstleftRtrighttwtecCs4d}x'|D]}|dk r ||7}q q W|S(Ni(tNone(tseqttotalR((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pytsums   tSheetcBsÎeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z d „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(cCsOi|_tjƒ|_|jjdƒ}|j|_|j|_t|_dS(Nt__main__(tcellstrexectRExect add_modulet cellvaluetcelltmulticellvalueR(tselftm((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyt__init__"s    cCs9|j||ƒ}t|dƒr1|j|jƒS|SdS(Ntrecalc(tgetcellthasattrRR(RRtyR((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyR*scCs—||kr||}}n||kr8||}}ng}xRt||dƒD]=}x4t||dƒD]}|j|j||ƒƒqlWqRW|S(Ni(trangetappendR(Rtx1ty1tx2ty2RR R((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyR1s  !cCs|jj||fƒS(N(Rtget(RRR ((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyR<scCsJ|dkr|dkst‚t|tƒs3t‚||j||ftlentstrRt iteritemsRRRRDR)R(RRR't align2action(RR?R@twidththeighttcolwidthtfullRttextt alignmentR Rtseptline((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pytdisplay•sR &!&!"  ! '  cCs”dg}xn|jjƒD]]\\}}}t|dƒrI|jƒ}ndtj|ƒ}|jd|||fƒqW|jdƒdj|ƒS(Ns txmls%ss% %s ss (RRLRRWtcgitescapeR"tjoin(RtoutRR Rtcellxml((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyRWÇs "  cCs\|jƒ}t|dƒ}|j|ƒ|rN|jdƒ rN|jdƒn|jƒdS(NR s (RWtopentwritetendswithtclose(RtfilenameRRtf((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pytsaveÓs   cCs0t|dƒ}t|ƒj|ƒ|jƒdS(Ntr(R]t SheetParsert parsefileR`(RRaRb((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pytloadÛs(t__name__t __module__RRRRR+R-R0R3R4R.R9R:R;R<R=RARBRRVRWRcRg(((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyR s,                  2 RecBs•eZd„Zd„Zd„Zd„Zd„Zd„Zd„ZeZ d„Z d„Z d „Z d „Z d „Zd „Zd „Zd„ZRS(cCs ||_dS(N(tsheet(RRj((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyRâscCsAtjƒ}|j|_|j|_|j|_|j|ƒdS(N( Rt ParserCreatet startelementtStartElementHandlert endelementtEndElementHandlertdatatCharacterDataHandlert ParseFile(RRbtparser((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyRfås     cCsct|d|dƒ}|rVx*|jƒD]\}}t|ƒ||%s(RuttypeR{Rht align2xmlRSR‚(RRy((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyRWXs  cCs8d|jkodknr*d|jS|jƒSdS(Niis %sI€i€I€(R{t _xml_long(R((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyt_xml_int_s cCs d|jS(Ns%s(R{(R((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyR—escCsdt|jƒS(Ns%s(treprR{(R((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyt _xml_floathscCsdt|jƒS(Ns%s(R™R{(R((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyt _xml_complexks( RhRiRRRRDRWR˜R—RšR›(((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyRŽEs      R�cBs2eZded„Zd„Zd„Zd„ZRS(s%scCsUt|ttfƒst‚|tttfks6t‚||_||_||_ dS(N( R)RKtunicodeR(RRRRRR‚RS(RRRR‚RS((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyRps   cCs|jS(N(RR(RR((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyRwscCs|j|jfS(N(RRRS(R((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyRDzscCs-d}|t|j|jtj|jƒfS(Ns9%s(R–RSR‚RXRYRR(Rts((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyRW}s  (RhRiRRRRDRW(((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyR�ns  R�cBsDeZded„Zd„Zd„Zd„Zd„Zd„ZRS(s%scCsV|tttfkst‚||_t|jƒ|_||_||_|j ƒdS(N( RRRR(tformulat translatet translatedR‚RSRB(RRžR‚RS((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyR†s    cCs d|_dS(N(R R{(R((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyRBŽscCs”|jdkr�y4|jddt|jƒƒ|jdƒ|_Wq�tjƒd}t|dƒrw|j |_qŠt |ƒ|_q�Xn|jS(Ns from __future__ import division s__value__ = eval(%s)t __value__iRh( R{R tr_execR™R tr_evalR1texc_infoRRhRK(RRtexc((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyR‘s cCs:y|j|j}Wnt|jƒ}nX||jfS(N(R‚R{RKRS(RRR((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyRD s cCsdt|j|j|jfS(Ns,%s(R–RSR‚Rž(R((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyRW§s cCsïg}xÇtjd|jƒD]°}tjd|ƒ} | dk r¿| jƒ\} } t| ƒ} t| ƒ} || ko�|knr¿|| ko�|knr¿t| || |ƒ}q¿n|j |ƒqWt dj |ƒ|j |j ƒS(Ns(\w+)s^([A-Z]+)([1-9][0-9]*)$RE(tretsplitRžtmatchR tgroupst colname2numRtcellnameR"R�RZR‚RS(RR#R$R%R&R6R7R[tpartRtsxtsyRR ((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyR5­s   8( RhRiRRRBRRDRWR5(((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyR�„s     c CsÐg}xºtjd|ƒD]¦}tjd|ƒ}|dkrM|j|ƒq|jƒ\}}}}t|ƒ}|dkr�d||f}n"t|ƒ}d||||f}|j|ƒqWdj|ƒS(sšTranslate a formula containing fancy cell names to valid Python code. Examples: B4 -> cell(2, 4) B4:Z100 -> cells(2, 4, 26, 100) s(\w+(?::\w+)?)s2^([A-Z]+)([1-9][0-9]*)(?::([A-Z]+)([1-9][0-9]*))?$s cell(%s, %s)scells(%s, %s, %s, %s)REN(R¦R§R¨R R"R©RªRZ( RžR[R¬RR#R$R%R&R�((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyRŸºs    cCs&|dkst‚t|ƒt|ƒS(sETranslate a cell coordinate to a fancy cell name (e.g. (1, 1)->'A1').i(R(RIRK(RR ((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyR«ÑscCsk|jƒ}d}xR|D]J}d|ko6dknsAt‚|dt|ƒtdƒd}qW|S(sCTranslate a column name to number (e.g. 'A'->1, 'Z'->26, 'AA'->27).itAtZii(tupperR(tord(R�Rtc((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyRªÖs   "&cCs\|dkst‚d}x=|rWt|ddƒ\}}t|tdƒƒ|}qW|S(s6Translate a column number to name (e.g. 1->'A', etc.).iREiiR¯(R(tdivmodtchrR²(RR�R((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyRIßs  tSheetGUIcBsõeZdZdddd„Zd„Zd„Zd„Zd„Zd „Zd „Z d „Z d „Z d „Z d„Z d„ZeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(s7Beginnings of a GUI for a spreadsheet. TO DO: - clear multiple cells - Insert, clear, remove rows or columns - Show new contents while typing - Scroll bars - Grow grid when window is grown - Proper menus - Undo, redo - Cut, copy and paste - Formatting and alignment s sheet1.xmli icCs*||_tƒ|_tjj|ƒr:|jj|ƒn|jjƒ\}}t||ƒ}t||ƒ}t j ƒ|_ |j j d|jƒt j |j ddddƒ|_ t j|j ƒ|_t j|j ddd |jƒ|_t j|j ƒ|_|jjd d d d ddƒ|j jd dƒ|jjd dƒ|jjd dd d ddƒ|jjd|jƒ|jjd|jƒ|jjd|jƒ|jjd|jƒ|jjd|jƒ|jjd|jƒ|j||ƒd|_d|_ |j!d d ƒ|j"ƒdS(slConstructor. Load the sheet from the filename argument. Set up the Tk widget tree. sSpreadsheet: %sRRtA1tfontt helveticaitboldtSavetcommandtsidetbottomtexpanditfilltbothR R Rssss ssN(R¹iRº(#RaRRjtostpathtisfileRgRAR>tTktroottwm_titletLabeltbeacontEntrytentrytButtonRct savebuttontFrametcellgridtpacktbindt return_eventtshift_return_eventt tab_eventtshift_tab_eventt delete_eventt escape_eventtmakegridR t currentxytcornerxyt setcurrenttsync(RRatrowstcolumnsR?R@((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyRús<     cCsr|j|jkr>|jdk r>|jj|j|jŒn|jj|jŒ|jƒ|jjddƒdS(Nitendtbreak( RÚRÙR RjR0R-RÜRËtdelete(Rtevent((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyRÖ's ! cCs#|j\}}|j||ƒdS(N(RÙt load_entry(RRâRR ((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyR×0scCs˜|jj||ƒ}|dkr*d}n1t|tƒrId|j}n|jƒ\}}|jjddƒ|jj d|ƒ|jj ddƒdS(NREt=iRß( RjRR R)R�RžRDRËRátinserttselection_range(RRR RRRRS((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyRã4s  c Cs||_||_i|_tj|jddƒ}|jddddddƒ|jd|jƒxât d |d ƒD]Í}|jj |d d ƒtj|jd t |ƒddƒ}|jd|dddd ƒ||j|df<||_ d|_ |jd|jƒ|jd|jƒ|jd|jƒ|jd|jƒqvWxÌt d |d ƒD]·}tj|jd t|ƒddƒ}|jddd|dd ƒ||jd|fitminsizei@RRtWEs sstsunkentbgtwhitetfgtblackN(RÝRÞt gridcellsRÅRÈRÏtgrid_configureRÑt selectallR!tgrid_columnconfigureRIt _SheetGUI__xt _SheetGUI__yt selectcolumnt extendcolumnRKt selectrowt extendrowtpresstmotiontrelease(RRÝRÞRRR ((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyRØ@sN   $  $    cCs*|jddƒ|jtjtjƒdS(Ni(RÛt setcornerR1R2(RRâ((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyRõrscCs<|j|ƒ\}}|j|dƒ|j|tjƒdS(Ni(twhichxyRÛRR1R2(RRâRR ((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyRùvscCsR|j|ƒ\}}|dkrN|j|jddƒ|j|tjƒndS(Nii(RRÛRÙRR1R2(RRâRR ((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyRú{s cCs<|j|ƒ\}}|jd|ƒ|jtj|ƒdS(Ni(RRÛRR1R2(RRâRR ((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyRû�scCsR|j|ƒ\}}|dkrN|jd|jdƒ|jtj|ƒndS(Nii(RRÛRÙRR1R2(RRâRR ((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyRü†s cCsD|j|ƒ\}}|dkr@|dkr@|j||ƒndS(Ni(RRÛ(RRâRR ((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyRýŒscCsD|j|ƒ\}}|dkr@|dkr@|j||ƒndS(Ni(RR(RRâRR ((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyRþ‘scCsh|jj|j|jƒ}|dk rdt|tjƒrdy|j|j fSWqdt k r`qdXndS(Ni(ii( RÏtwinfo_containingtx_rootty_rootR R)RÅRÈR÷RøtAttributeError(RRâR ((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyR˜s cCs|jj|jƒdS(N(RjRcRa(R((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyRc¡scCs£|jdk r|jƒn|jƒt||ƒ|jd<|j||ƒ|jjƒ||f|_d|_ |j j |jƒ}|dk rŸd|d(RRâRR ((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyRÓís cCs1|jƒ|j\}}|j|d|ƒdS(sCallback for the Tab key.iRà(RRÙRÛ(RRâRR ((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyRÔôs cCs:|jƒ|j\}}|jtd|dƒ|ƒdS(s-Callback for the Tab key with Shift modifier.iRà(RRÙRÛR>(RRâRR ((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyRÕûs cCsô|j\}}|jjƒ}d}|jdƒrFt|dƒ}nGxDtttt fD]0}y||ƒ}Wn qYqYXt |ƒ}PqYW|dkr®|r®t |ƒ}n|dkrÐ|j j ||ƒn|j j|||ƒ|jƒdS(s+Set the current cell from the entry widget.RäiN(RÙRËR'R t startswithR�RR†RˆRŠRŽR�RjR-R+RÜ(RRR RRRtclsR{((s./usr/lib64/python2.7/Demo/tkinter/guido/ss1.pyRs$  cCsÒ|jjƒx¾|jjƒD]­\\}}}|dks|dkrMqn|jj||ƒ}|dkr{d|ds@         ÀY )6   ÿC