diff --git a/config/softs/pyExcelerator-0.6.3a.patched/.cvsignore b/config/softs/pyExcelerator-0.6.3a.patched/.cvsignore new file mode 100755 index 000000000..c795b054e --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/.cvsignore @@ -0,0 +1 @@ +build \ No newline at end of file diff --git a/config/softs/pyExcelerator-0.6.3a.patched/CHANGES.txt b/config/softs/pyExcelerator-0.6.3a.patched/CHANGES.txt new file mode 100755 index 000000000..7ce2eb3ff --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/CHANGES.txt @@ -0,0 +1,68 @@ +0.4.0a (27.03.2005) +--------- + * First public version + +0.5.0a (11.05.2005) +--------- + * pyExcelerator now can import Excel 5/95/97/2000/XP/2003 files. + With imported information you can do what you want. + See ./examples/xls2txt.py for reference. + * fixed bug in MS OLE2 compound document dumper (not in writer :)) + Bug causes dumper to combine links in sectors' allocation chain sectors + contained in additional MSAT with SAT data. + * Excel files dumper supports now Excel 5/95/97/2000/XP/2003 files + and produces more informative output. + +0.5.1a (14.05.2005) +--------- + * improved floating point decoding code + +0.5.2a (18.05.2005) +--------- + * improved perfomance (especially on nonfragmented streams) + * now pyExcelerator can process XLS files with short streams + * OLE2 compound document dumper supports short streams + * reading UTF-16-LE and Latin-1 with more accuracy + * in DSF (double stream file) XLS data extracted from stream "Workbook" + * improved floating point/integer values decoding code + +0.5.3a (19.05.2005) +--------- + * typos in biff-dumper.py fixed :( + * now pyExcelerator can correctly import XLS files with charts + * added ability to override default file's encoding + * new examples (or tools :)) -- ./examples/xls2csv.py, ./examples/xls2html.py + +0.6.0a (19.07.2005) +--------- + * blanks, numbers, currency (use number formats!) and dates (use number formats!) + * pyExcelerator uses 1.5-2 times less memory (thanks to __brains__ and __slots__) + * fixes for Big Endian CPUs + * some refactorings + * new examples: blanks.py, merged1.py, dates.py, numbers.py, num_formats.py, formulas.py + * most important change: formulas support + +0.6.1a (29.09.2005) +--------- + * fixed: exception when reading OLE2 files with incorrect MSAT + (sector ids points to nonexistense sectors) + +0.6.2a (30.09.2005) +--------- + * fixed: exception when reading OLE2 files with incorrect SSAT + (sector ids points to nonexistense sectors) + +0.6.3a (25.10.2005) +--------- + * slightly new algorithm for reading OLE2 files. I hope it is + more robust + * splitting and frozing + * worksheet protection + * protection password + * workbook protection + * new example: protection.py, hyperlinks.py, panes.py + * extracting formula results + * speed optmizations(for example, benchmark big-35Mb.py runs about + 20-30% faster) + * updated THANKS file + * xls2csv, xls2txt, xls2html now resides in ./tools diff --git a/config/softs/pyExcelerator-0.6.3a.patched/CVS/Entries b/config/softs/pyExcelerator-0.6.3a.patched/CVS/Entries new file mode 100755 index 000000000..5162a7fed --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/CVS/Entries @@ -0,0 +1,13 @@ +/.cvsignore/1.1/Thu May 19 09:27:42 2005// +D/examples//// +D/hrc//// +D/museum//// +D/pyExcelerator//// +D/tools//// +/LICENSE.txt/1.3/Tue Jul 19 18:58:44 2005// +/README.txt/1.3/Sat Aug 13 23:25:44 2005// +/TODO.txt/1.2/Wed Aug 10 20:42:08 2005// +/CHANGES.txt/1.11/Tue Oct 25 19:34:26 2005// +/PKG-INFO/1.5/Tue Oct 4 20:19:20 2005// +/THANKS.txt/1.3/Thu Oct 20 20:46:16 2005// +/setup.py/1.10/Wed Oct 26 07:44:23 2005// diff --git a/config/softs/pyExcelerator-0.6.3a.patched/CVS/Entries.Extra b/config/softs/pyExcelerator-0.6.3a.patched/CVS/Entries.Extra new file mode 100755 index 000000000..023914c07 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/CVS/Entries.Extra @@ -0,0 +1,13 @@ +/.cvsignore////*/// +D/examples/////// +D/hrc/////// +D/museum/////// +D/pyExcelerator/////// +D/tools/////// +/LICENSE.txt////*/// +/README.txt////*/// +/TODO.txt////*/// +/CHANGES.txt////*/// +/PKG-INFO////*/// +/THANKS.txt////*/// +/setup.py////*/// diff --git a/config/softs/pyExcelerator-0.6.3a.patched/CVS/Entries.Extra.Old b/config/softs/pyExcelerator-0.6.3a.patched/CVS/Entries.Extra.Old new file mode 100755 index 000000000..254a3d837 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/CVS/Entries.Extra.Old @@ -0,0 +1,13 @@ +/.cvsignore////*/// +D/examples/////// +D/hrc/////// +D/museum/////// +D/pyExcelerator/////// +D/tools/////// +/LICENSE.txt////*/// +/THANKS.txt////*/// +/README.txt////*/// +/TODO.txt////*/// +/CHANGES.txt////*/// +/PKG-INFO////*/// +/setup.py////*/// diff --git a/config/softs/pyExcelerator-0.6.3a.patched/CVS/Entries.Old b/config/softs/pyExcelerator-0.6.3a.patched/CVS/Entries.Old new file mode 100755 index 000000000..ddd077ea4 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/CVS/Entries.Old @@ -0,0 +1,13 @@ +/.cvsignore/1.1/Thu May 19 09:27:42 2005// +D/examples//// +D/hrc//// +D/museum//// +D/pyExcelerator//// +D/tools//// +/LICENSE.txt/1.3/Tue Jul 19 18:58:44 2005// +/THANKS.txt/1.2/Thu Sep 29 18:06:58 2005// +/README.txt/1.3/Sat Aug 13 23:25:44 2005// +/TODO.txt/1.2/Wed Aug 10 20:42:08 2005// +/CHANGES.txt/1.10/Fri Sep 30 09:14:44 2005// +/PKG-INFO/1.4/Fri Sep 30 09:13:49 2005// +/setup.py/1.9/Fri Sep 30 09:20:04 2005// diff --git a/config/softs/pyExcelerator-0.6.3a.patched/CVS/Repository b/config/softs/pyExcelerator-0.6.3a.patched/CVS/Repository new file mode 100755 index 000000000..cac8ce006 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/CVS/Repository @@ -0,0 +1 @@ +pyExcelerator diff --git a/config/softs/pyExcelerator-0.6.3a.patched/CVS/Root b/config/softs/pyExcelerator-0.6.3a.patched/CVS/Root new file mode 100755 index 000000000..7c4601bb6 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/CVS/Root @@ -0,0 +1 @@ +:ext:rvk@cvs.sf.net:/cvsroot/pyexcelerator diff --git a/config/softs/pyExcelerator-0.6.3a.patched/LICENSE.txt b/config/softs/pyExcelerator-0.6.3a.patched/LICENSE.txt new file mode 100755 index 000000000..8cdb66c74 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/LICENSE.txt @@ -0,0 +1,47 @@ + Copyright (C) 2005 Roman V. Kiseliov + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + 3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by + Roman V. Kiseliov ." + + 4. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by + Roman V. Kiseliov ." + + THIS SOFTWARE IS PROVIDED BY Roman V. Kiseliov ``AS IS'' AND ANY + EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Roman V. Kiseliov OR + ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. + +Roman V. Kiseliov +Russia +Kursk +Libknecht St., 4 + ++7(0712)56-09-83 + + +Subject: pyExcelerator diff --git a/config/softs/pyExcelerator-0.6.3a.patched/PKG-INFO b/config/softs/pyExcelerator-0.6.3a.patched/PKG-INFO new file mode 100755 index 000000000..dc13776e0 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/PKG-INFO @@ -0,0 +1,20 @@ +Metadata-Version: 1.0 +Name: pyExcelerator +Version: 0.6.3a1 +Summary: Library to generate Microsoft Excel (tm) spreadsheet files or to extract data from such files +Home-page: http://www.sourceforge.net/projects/pyexcelerator +Author: Roman V. Kiseliov +Author-email: roman@kiseliov.ru +License: BSD +Download-URL: http://www.sourceforge.net/projects/pyexcelerator +Description: Generate Excel 97+ files. Extract data from Excel 95+ spreadsheets. Full-blown UNICODE support. Pure Python code. +Keywords: xls,excel,spreadsheet,workbook +Platform: Platform-independent +Classifier: Development Status :: 3 - Alpha +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: BSD License +Classifier: Programming Language :: Python +Classifier: Operating System :: OS Independent +Classifier: Topic :: Database +Classifier: Topic :: Office/Business +Classifier: Topic :: Software Development :: Libraries :: Python Modules diff --git a/config/softs/pyExcelerator-0.6.3a.patched/README.txt b/config/softs/pyExcelerator-0.6.3a.patched/README.txt new file mode 100755 index 000000000..eac750ed8 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/README.txt @@ -0,0 +1,145 @@ + + pyExcelerator + -------------------- + + + Dedicated to Olya. + With you it can be reality. + + + +0x0000. What's this? +-------------------- +This is a library for generating Excel 97/2000/XP/2003 and +OpenOffice Calc compatible spreadsheets. pyExcelerator has +full-blown support for UNICODE in Excel and Calc spreadsheets, allows +using variety of formatting features, provides interface to printing +options of Excel and OpenOffice Calc. pyExcelerator contains also +Excel BIFF8 dumper and MS compound documents dumper. Main advantage is +possibility of generating Excel spreadsheets without MS Windows and/or +COM servers. The only requirement -- Python 2.4a3 or higher. + + +0x0001. Why? +-------------------- +I had need to generate .xls with UNICODE under FreeBSD. + + +0x0002. Requirements. +-------------------- +Python 2.4 up and running. I've tested pyExcelerator under +Win32 (Python compiled with MS C compiler and Intel +C compiler), Win64-x86 (MS C compiler), FreeBSD/i386 (GCC +3.4.2), FreeBSD/amd64 (GCC 3.4.2). Fastest was Python under +FreeBSD/amd64. + + +0x0003. Installation. +-------------------- +As usually: python ./setup.py install + + +0x0004. Documentation. +-------------------- +In progress. At the present time you can use examples and sources (I hope +I commented sources well and gave variables good names). + + +0x0005. Extra features. +-------------------- +See ./tools/*.py. You'll find there BIFF8 dumper and MS Compound doc +dumper. In ./hrc you can take my python.hrc for Colorer plug-in for FAR +manager. + + +0x0006. Reporting bugs. +-------------------- +Please! + + +0x0008. Future. +-------------------- +Support for Esher layer and (maybe) charts. + + +0x0009. Useful links. +-------------------- +http://www.python.org -- + Python's home. +http://sf.net/pyXLWriter -- + port of the first version Spreadsheet-WriteExcel. + This library can write only BIFF5/7 spreadsheets + and therefore can't use UNICODE in spreadsheets. + pyXLWriter however can write formulas with help + of PLY. IMHO, PLY and ambiguous grammar used by + author for formulas support are too power tools. + But in this case power was equals to simplicity. + I want overcome these restrictions and (strictly + IMHO) misfeatures. +http://www.openoffice.org -- + OpenOffice home. + About 650 Mb sources -- the best teachers. + +0x000A. Legality. +-------------------- +With help from lawyers pyExcelerator is protect by Russian Federation's +laws and international treaties and can be used iff you agreed following +BSD-like agreement. + + Copyright (C) 2005 Roman V. Kiseliov + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + 3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by + Roman V. Kiseliov ." + + 4. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by + Roman V. Kiseliov ." + + THIS SOFTWARE IS PROVIDED BY Roman V. Kiseliov ``AS IS'' AND ANY + EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Roman V. Kiseliov OR + ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. + + + +0xFFFF. Contacting author. +-------------------- +Feel free to send me feedback and bug reports. + +Roman V. Kiseliov +Russia +Kursk +Libknecht St., 4 + ++7(0712)56-09-83 + + +subject *must* be +"pyExcelerator-bug" (without quotes) +or +"pyExcelerator-feedback" (without quotes) + diff --git a/config/softs/pyExcelerator-0.6.3a.patched/THANKS.txt b/config/softs/pyExcelerator-0.6.3a.patched/THANKS.txt new file mode 100755 index 000000000..f3dcda8dc --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/THANKS.txt @@ -0,0 +1,25 @@ +* My lovely wife Olya +-------------------------- +* Evgeny Filatov +* John McNamara +* Daniel Rentz +* John Machin +* Ksenia Marasanova +* Choe, Cheng-Dae +* Jan ONDREJ +* Andy Gimblett +* Blais, Gerard C. +* McNevin Michael B. +* John Fouby +* . Feel free to update my memory! +-------------------------- +* Offspring +* Lynkin Park +-------------------------- +* Nescafe +-------------------------- +* Python Team +* FreeBSD Team +* SF Team + + diff --git a/config/softs/pyExcelerator-0.6.3a.patched/TODO.txt b/config/softs/pyExcelerator-0.6.3a.patched/TODO.txt new file mode 100755 index 000000000..2ce719f3f --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/TODO.txt @@ -0,0 +1,2 @@ +*Write documentation +*BSE container for Esher layer diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/CVS/Entries b/config/softs/pyExcelerator-0.6.3a.patched/examples/CVS/Entries new file mode 100755 index 000000000..09e8c90d5 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/examples/CVS/Entries @@ -0,0 +1,32 @@ +/big-16Mb.py/1.3/Sun Mar 27 12:47:06 2005// +/big-35Mb.py/1.3/Sun Mar 27 12:47:06 2005// +/blanks.py/1.2/Fri Jul 22 08:22:26 2005// +/col_width.py/1.3/Sun Mar 27 12:47:06 2005// +/format.py/1.3/Sun Mar 27 12:47:06 2005// +/image.py/1.3/Sun Mar 27 12:47:06 2005// +/merged.py/1.3/Sun Mar 27 12:47:06 2005// +/merged0.py/1.3/Sun Mar 27 12:47:06 2005// +/merged1.py/1.1/Fri Jul 22 08:22:26 2005// +/mini.py/1.3/Sun Mar 27 12:47:06 2005// +/outline.py/1.3/Sun Mar 27 12:47:06 2005// +/row_styles.py/1.3/Sun Mar 27 12:47:06 2005// +/row_styles_empty.py/1.3/Sun Mar 27 12:47:06 2005// +/sst.py/1.2/Fri Mar 25 07:31:12 2005// +/unicode0.py/1.1/Sun Mar 27 12:47:06 2005// +/unicode1.py/1.1/Sun Mar 27 12:47:06 2005// +/unicode2.py/1.1/Sun Mar 27 12:47:06 2005// +/wsprops.py/1.3/Sun Mar 27 12:47:06 2005// +/xls2csv.py/1.1/Thu May 19 09:27:42 2005// +/xls2html.py/1.1/Thu May 19 09:27:42 2005// +/xls2txt.py/1.3/Thu May 19 09:27:42 2005// +/python.bmp/1.1/Tue Jul 19 18:58:44 2005/-kb/ +/formula_names.py/1.1/Thu Aug 11 08:53:48 2005// +/parse-fmla.py/1.1/Wed Aug 10 21:08:02 2005// +/dates.py/1.1/Wed Jul 20 07:24:10 2005// +/num_formats.py/1.1/Wed Jul 20 07:24:10 2005// +/numbers.py/1.1/Wed Jul 20 07:24:10 2005// +/formulas.py/1.4/Wed Oct 26 07:44:24 2005// +/hyperlinks.py/1.1/Wed Oct 26 07:44:24 2005// +/panes.py/1.1/Wed Oct 26 07:44:24 2005// +/protection.py/1.1/Wed Oct 26 07:44:24 2005// +D diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/CVS/Entries.Extra b/config/softs/pyExcelerator-0.6.3a.patched/examples/CVS/Entries.Extra new file mode 100755 index 000000000..11825202f --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/examples/CVS/Entries.Extra @@ -0,0 +1,31 @@ +/big-16Mb.py////*/// +/big-35Mb.py////*/// +/blanks.py////*/// +/col_width.py////*/// +/format.py////*/// +/image.py////*/// +/merged.py////*/// +/merged0.py////*/// +/merged1.py////*/// +/mini.py////*/// +/outline.py////*/// +/row_styles.py////*/// +/row_styles_empty.py////*/// +/sst.py////*/// +/unicode0.py////*/// +/unicode1.py////*/// +/unicode2.py////*/// +/wsprops.py////*/// +/xls2csv.py////*/// +/xls2html.py////*/// +/xls2txt.py////*/// +/python.bmp////*/// +/formula_names.py////*/// +/parse-fmla.py////*/// +/dates.py////*/// +/num_formats.py////*/// +/numbers.py////*/// +/formulas.py////*/// +/hyperlinks.py////*/// +/panes.py////*/// +/protection.py////*/// diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/CVS/Entries.Extra.Old b/config/softs/pyExcelerator-0.6.3a.patched/examples/CVS/Entries.Extra.Old new file mode 100755 index 000000000..516b24f14 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/examples/CVS/Entries.Extra.Old @@ -0,0 +1,31 @@ +/big-16Mb.py////*/// +/big-35Mb.py////*/// +/blanks.py////*/// +/col_width.py////*/// +/format.py////*/// +/image.py////*/// +/merged.py////*/// +/merged0.py////*/// +/merged1.py////*/// +/mini.py////*/// +/outline.py////*/// +/row_styles.py////*/// +/row_styles_empty.py////*/// +/sst.py////*/// +/unicode0.py////*/// +/unicode1.py////*/// +/unicode2.py////*/// +/wsprops.py////*/// +/xls2csv.py////*/// +/xls2html.py////*/// +/xls2txt.py////*/// +/python.bmp////*/// +/formula_names.py////*/// +/parse-fmla.py////*/// +/dates.py////*/// +/formulas.py////*/// +/num_formats.py////*/// +/numbers.py////*/// +/hyperlinks.py////*/// +/panes.py////*/// +/protection.py////*/// diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/CVS/Entries.Old b/config/softs/pyExcelerator-0.6.3a.patched/examples/CVS/Entries.Old new file mode 100755 index 000000000..639a0464f --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/examples/CVS/Entries.Old @@ -0,0 +1,32 @@ +/big-16Mb.py/1.3/Sun Mar 27 12:47:06 2005// +/big-35Mb.py/1.3/Sun Mar 27 12:47:06 2005// +/blanks.py/1.2/Fri Jul 22 08:22:26 2005// +/col_width.py/1.3/Sun Mar 27 12:47:06 2005// +/format.py/1.3/Sun Mar 27 12:47:06 2005// +/image.py/1.3/Sun Mar 27 12:47:06 2005// +/merged.py/1.3/Sun Mar 27 12:47:06 2005// +/merged0.py/1.3/Sun Mar 27 12:47:06 2005// +/merged1.py/1.1/Fri Jul 22 08:22:26 2005// +/mini.py/1.3/Sun Mar 27 12:47:06 2005// +/outline.py/1.3/Sun Mar 27 12:47:06 2005// +/row_styles.py/1.3/Sun Mar 27 12:47:06 2005// +/row_styles_empty.py/1.3/Sun Mar 27 12:47:06 2005// +/sst.py/1.2/Fri Mar 25 07:31:12 2005// +/unicode0.py/1.1/Sun Mar 27 12:47:06 2005// +/unicode1.py/1.1/Sun Mar 27 12:47:06 2005// +/unicode2.py/1.1/Sun Mar 27 12:47:06 2005// +/wsprops.py/1.3/Sun Mar 27 12:47:06 2005// +/xls2csv.py/1.1/Thu May 19 09:27:42 2005// +/xls2html.py/1.1/Thu May 19 09:27:42 2005// +/xls2txt.py/1.3/Thu May 19 09:27:42 2005// +/python.bmp/1.1/Tue Jul 19 18:58:44 2005/-kb/ +/formula_names.py/1.1/Thu Aug 11 08:53:48 2005// +/parse-fmla.py/1.1/Wed Aug 10 21:08:02 2005// +/dates.py/1.1/Wed Jul 20 07:24:10 2005// +/formulas.py/1.3/Sun Aug 14 06:40:22 2005// +/num_formats.py/1.1/Wed Jul 20 07:24:10 2005// +/numbers.py/1.1/Wed Jul 20 07:24:10 2005// +/hyperlinks.py/0/dummy timestamp// +/panes.py/0/dummy timestamp// +/protection.py/0/dummy timestamp// +D diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/CVS/Repository b/config/softs/pyExcelerator-0.6.3a.patched/examples/CVS/Repository new file mode 100755 index 000000000..256551f01 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/examples/CVS/Repository @@ -0,0 +1 @@ +pyExcelerator/examples diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/CVS/Root b/config/softs/pyExcelerator-0.6.3a.patched/examples/CVS/Root new file mode 100755 index 000000000..7c4601bb6 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/examples/CVS/Root @@ -0,0 +1 @@ +:ext:rvk@cvs.sf.net:/cvsroot/pyexcelerator diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/big-16Mb.py b/config/softs/pyExcelerator-0.6.3a.patched/examples/big-16Mb.py new file mode 100755 index 000000000..771c66970 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/examples/big-16Mb.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python +# tries stress SST, SAT and MSAT +__rev_id__ = """$Id: big-16Mb.py,v 1.3 2005/03/27 12:47:06 rvk Exp $""" + + +from time import * +from pyExcelerator.Workbook import * +from pyExcelerator.Style import * + +style = XFStyle() + +wb = Workbook() +ws0 = wb.add_sheet('0') + +colcount = 200 + 1 +rowcount = 6000 + 1 + +t0 = time() +print "\nstart: %s" % ctime(t0) + +print "Filling..." +for col in xrange(colcount): + print "[%d]" % col, + for row in xrange(rowcount): + #ws0.write(row, col, "BIG(%d, %d)" % (row, col)) + ws0.write(row, col, "BIG") + +t1 = time() - t0 +print "\nsince starting elapsed %.2f s" % (t1) + +print "Storing..." +wb.save('big-16Mb.xls') + +t2 = time() - t0 +print "since starting elapsed %.2f s" % (t2) + + diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/big-35Mb.py b/config/softs/pyExcelerator-0.6.3a.patched/examples/big-35Mb.py new file mode 100755 index 000000000..23353e7b0 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/examples/big-35Mb.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python +# tries stress SST, SAT and MSAT +__rev_id__ = """$Id: big-35Mb.py,v 1.3 2005/03/27 12:47:06 rvk Exp $""" + + +from time import * +from pyExcelerator import * + +style = XFStyle() + +wb = Workbook() +ws0 = wb.add_sheet('0') + +colcount = 200 + 1 +rowcount = 6000 + 1 + +t0 = time() +print "\nstart: %s" % ctime(t0) + +print "Filling..." +for col in xrange(colcount): + print "[%d]" % col, + for row in xrange(rowcount): + ws0.write(row, col, "BIG(%d, %d)" % (row, col)) + #ws0.write(row, col, "BIG") + +t1 = time() - t0 +print "\nsince starting elapsed %.2f s" % (t1) + +print "Storing..." +wb.save('big-35Mb.xls') + +t2 = time() - t0 +print "since starting elapsed %.2f s" % (t2) + + diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/blanks.py b/config/softs/pyExcelerator-0.6.3a.patched/examples/blanks.py new file mode 100755 index 000000000..f4a77d6fe --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/examples/blanks.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python +# -*- coding: windows-1251 -*- +# Copyright (C) 2005 Kiseliov Roman + +__rev_id__ = """$Id: blanks.py,v 1.2 2005/07/22 08:22:26 rvk Exp $""" + + +from pyExcelerator import * + +font0 = Font() +font0.name = 'Times New Roman' +font0.struck_out = True +font0.bold = True + +style0 = XFStyle() +style0.font = font0 + + +wb = Workbook() +ws0 = wb.add_sheet('0') + +ws0.write(1, 1, 'Test', style0) + +for i in range(0, 0x53): + borders = Borders() + borders.left = i + borders.right = i + borders.top = i + borders.bottom = i + + style = XFStyle() + style.borders = borders + + ws0.write(i, 2, '', style) + ws0.write(i, 3, hex(i), style0) + +ws0.write_merge(5, 8, 6, 10, "") + +wb.save('blanks.xls') \ No newline at end of file diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/col_width.py b/config/softs/pyExcelerator-0.6.3a.patched/examples/col_width.py new file mode 100755 index 000000000..5372616fd --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/examples/col_width.py @@ -0,0 +1,19 @@ +#!/usr/bin/env python +# -*- coding: windows-1251 -*- +# Copyright (C) 2005 Kiseliov Roman +__rev_id__ = """$Id: col_width.py,v 1.3 2005/03/27 12:47:06 rvk Exp $""" + + +from pyExcelerator import * + +w = Workbook() +ws = w.add_sheet('Hey, Dude') + +for i in range(6, 80): + fnt = Font() + fnt.height = i*20 + style = XFStyle() + style.font = fnt + ws.write(1, i, 'Test') + ws.col(i).width = 0x0d00 + i +w.save('col_width.xls') diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/dates.py b/config/softs/pyExcelerator-0.6.3a.patched/examples/dates.py new file mode 100755 index 000000000..a88a30280 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/examples/dates.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python +# -*- coding: windows-1251 -*- +# Copyright (C) 2005 Kiseliov Roman +__rev_id__ = """$Id: dates.py,v 1.1 2005/07/20 07:24:11 rvk Exp $""" + + +from pyExcelerator import * +from datetime import datetime + +w = Workbook() +ws = w.add_sheet('Hey, Dude') + +fmts = [ + 'M/D/YY', + 'D-MMM-YY', + 'D-MMM', + 'MMM-YY', + 'h:mm AM/PM', + 'h:mm:ss AM/PM', + 'h:mm', + 'h:mm:ss', + 'M/D/YY h:mm', + 'mm:ss', + '[h]:mm:ss', + 'mm:ss.0', +] + +i = 0 +for fmt in fmts: + ws.write(i, 0, fmt) + + style = XFStyle() + style.num_format_str = fmt + + ws.write(i, 4, datetime.now(), style) + + i += 1 + +w.save('dates.xls') diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/format.py b/config/softs/pyExcelerator-0.6.3a.patched/examples/format.py new file mode 100755 index 000000000..19e15fcfa --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/examples/format.py @@ -0,0 +1,41 @@ +#!/usr/bin/env python +# -*- coding: windows-1251 -*- +# Copyright (C) 2005 Kiseliov Roman + +__rev_id__ = """$Id: format.py,v 1.3 2005/03/27 12:47:06 rvk Exp $""" + + +from pyExcelerator import * + +font0 = Font() +font0.name = 'Times New Roman' +font0.struck_out = True +font0.bold = True + +style0 = XFStyle() +style0.font = font0 + + +wb = Workbook() +ws0 = wb.add_sheet('0') + +ws0.write(1, 1, 'Test', style0) + +for i in range(0, 0x53): + fnt = Font() + fnt.name = 'Arial' + fnt.colour_index = i + fnt.outline = True + + borders = Borders() + borders.left = i + + style = XFStyle() + style.font = fnt + style.borders = borders + + ws0.write(i, 2, 'colour', style) + ws0.write(i, 3, hex(i), style0) + + +wb.save('format.xls') \ No newline at end of file diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/formula_names.py b/config/softs/pyExcelerator-0.6.3a.patched/examples/formula_names.py new file mode 100755 index 000000000..7f7b41c53 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/examples/formula_names.py @@ -0,0 +1,18 @@ +#!/usr/bin/env python +# -*- coding: windows-1251 -*- +# Copyright (C) 2005 Kiseliov Roman +__rev_id__ = """$Id: formula_names.py,v 1.1 2005/08/11 08:53:48 rvk Exp $""" + + +from pyExcelerator import * + +w = Workbook() +ws = w.add_sheet('F') + +i = 0 +for n in sorted(ExcelMagic.std_func_by_name): + ws.write(i, 0, n) + ws.write(i, 3, Formula(n + "($A$1)")) + i += 1 + +w.save('formula_names.xls') \ No newline at end of file diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/formulas.py b/config/softs/pyExcelerator-0.6.3a.patched/examples/formulas.py new file mode 100755 index 000000000..868e743ca --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/examples/formulas.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python +# -*- coding: windows-1251 -*- +# Copyright (C) 2005 Kiseliov Roman +__rev_id__ = """$Id: formulas.py,v 1.4 2005/10/26 07:44:24 rvk Exp $""" + + +from pyExcelerator import * + +w = Workbook() +ws = w.add_sheet('F') + +ws.write(0, 0, Formula("-(1+1)")) +ws.write(1, 0, Formula("-(1+1)/(-2-2)")) +ws.write(2, 0, Formula("-(134.8780789+1)")) +ws.write(3, 0, Formula("-(134.8780789e-10+1)")) +ws.write(4, 0, Formula("-1/(1+1)+9344")) + +ws.write(0, 1, Formula("-(1+1)")) +ws.write(1, 1, Formula("-(1+1)/(-2-2)")) +ws.write(2, 1, Formula("-(134.8780789+1)")) +ws.write(3, 1, Formula("-(134.8780789e-10+1)")) +ws.write(4, 1, Formula("-1/(1+1)+9344")) + +ws.write(0, 2, Formula("A1*B1")) +ws.write(1, 2, Formula("A2*B2")) +ws.write(2, 2, Formula("A3*B3")) +ws.write(3, 2, Formula("A4*B4*sin(pi()/4)")) +ws.write(4, 2, Formula("A5%*B5*pi()/1000")) + +############## +## NOTE: parameters are separated by semicolon!!! +############## + + +ws.write(5, 2, Formula("C1+C2+C3+C4+C5/(C1+C2+C3+C4/(C1+C2+C3+C4/(C1+C2+C3+C4)+C5)+C5)-20.3e-2")) +ws.write(5, 3, Formula("C1^2")) +ws.write(6, 2, Formula("SUM(C1;C2;;;;;C3;;;C4)")) +ws.write(6, 3, Formula("SUM($A$1:$C$5)")) + +ws.write(7, 0, Formula('"lkjljllkllkl"')) +ws.write(7, 1, Formula('"yuyiyiyiyi"')) +ws.write(7, 2, Formula('A8 & B8 & A8')) +ws.write(8, 2, Formula('now()')) + +ws.write(10, 2, Formula('TRUE')) +ws.write(11, 2, Formula('FALSE')) +ws.write(12, 3, Formula('IF(A1>A2;3;"hkjhjkhk")')) + +w.save('formulas.xls') diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/hyperlinks.py b/config/softs/pyExcelerator-0.6.3a.patched/examples/hyperlinks.py new file mode 100755 index 000000000..19d1745fc --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/examples/hyperlinks.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python +# -*- coding: windows-1251 -*- +# Copyright (C) 2005 Kiseliov Roman +__rev_id__ = """$Id: hyperlinks.py,v 1.1 2005/10/26 07:44:24 rvk Exp $""" + + +from pyExcelerator import * + +f = Font() +f.height = 20*72 +f.name = 'Verdana' +f.bold = True +f.underline = Font.UNDERLINE_DOUBLE +f.colour_index = 4 + +h_style = XFStyle() +h_style.font = f + +w = Workbook() +ws = w.add_sheet('F') + +############## +## NOTE: parameters are separated by semicolon!!! +############## + +n = "HYPERLINK" +ws.write_merge(1, 1, 1, 10, Formula(n + '("http://www.irs.gov/pub/irs-pdf/f1000.pdf";"f1000.pdf")'), h_style) +ws.write_merge(2, 2, 2, 25, Formula(n + '("mailto:roman.kiseliov@gmail.com?subject=pyExcelerator-feedback&Body=Hello,%20Roman!";"pyExcelerator-feedback")'), h_style) + +w.save("hyperlinks.xls") \ No newline at end of file diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/image.py b/config/softs/pyExcelerator-0.6.3a.patched/examples/image.py new file mode 100755 index 000000000..93e5d4e2d --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/examples/image.py @@ -0,0 +1,15 @@ +#!/usr/bin/env python +# -*- coding: windows-1251 -*- +# Copyright (C) 2005 Kiseliov Roman + +__rev_id__ = """$Id: image.py,v 1.3 2005/03/27 12:47:06 rvk Exp $""" + + +from pyExcelerator import * + +w = Workbook() +ws = w.add_sheet('Image') +ws.insert_bitmap('python.bmp', 2, 2) +ws.insert_bitmap('python.bmp', 10, 2) + +w.save('image.xls') diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/merged.py b/config/softs/pyExcelerator-0.6.3a.patched/examples/merged.py new file mode 100755 index 000000000..59cc240f8 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/examples/merged.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python +# -*- coding: windows-1251 -*- +# Copyright (C) 2005 Kiseliov Roman + +__rev_id__ = """$Id: merged.py,v 1.3 2005/03/27 12:47:06 rvk Exp $""" + + +from pyExcelerator import * + +fnt = Font() +fnt.name = 'Arial' +fnt.colour_index = 4 +fnt.bold = True + +borders = Borders() +borders.left = 6 +borders.right = 6 +borders.top = 6 +borders.bottom = 6 + +al = Alignment() +al.horz = Alignment.HORZ_CENTER +al.vert = Alignment.VERT_CENTER + +style = XFStyle() +style.font = fnt +style.borders = borders +style.alignment = al + + +wb = Workbook() +ws0 = wb.add_sheet('sheet0') +ws1 = wb.add_sheet('sheet1') +ws2 = wb.add_sheet('sheet2') + +for i in range(0, 0x200, 2): + ws0.write_merge(i, i+1, 1, 5, 'test %d' % i, style) + ws1.write_merge(i, i, 1, 7, 'test %d' % i, style) + ws2.write_merge(i, i+1, 1, 7 + (i%10), 'test %d' % i, style) + + +wb.save('merged.xls') diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/merged0.py b/config/softs/pyExcelerator-0.6.3a.patched/examples/merged0.py new file mode 100755 index 000000000..dd5b6818a --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/examples/merged0.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python +# -*- coding: windows-1251 -*- +# Copyright (C) 2005 Kiseliov Roman +__rev_id__ = """$Id: merged0.py,v 1.3 2005/03/27 12:47:06 rvk Exp $""" + + +from pyExcelerator import * + +wb = Workbook() +ws0 = wb.add_sheet('sheet0') + + +fnt = Font() +fnt.name = 'Arial' +fnt.colour_index = 4 +fnt.bold = True + +borders = Borders() +borders.left = 6 +borders.right = 6 +borders.top = 6 +borders.bottom = 6 + +style = XFStyle() +style.font = fnt +style.borders = borders + +ws0.write_merge(3, 3, 1, 5, 'test1', style) +ws0.write_merge(4, 10, 1, 5, 'test2', style) +ws0.col(1).width = 0x0d00 + +wb.save('merged0.xls') diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/merged1.py b/config/softs/pyExcelerator-0.6.3a.patched/examples/merged1.py new file mode 100755 index 000000000..283132630 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/examples/merged1.py @@ -0,0 +1,104 @@ +#!/usr/bin/env python +# -*- coding: windows-1251 -*- +# Copyright (C) 2005 Kiseliov Roman +__rev_id__ = """$Id: merged1.py,v 1.1 2005/07/22 08:22:26 rvk Exp $""" + + +from pyExcelerator import * + +wb = Workbook() +ws0 = wb.add_sheet('sheet0') + +fnt1 = Font() +fnt1.name = 'Verdana' +fnt1.bold = True +fnt1.height = 18*0x14 + +pat1 = Pattern() +pat1.pattern = Pattern.SOLID_PATTERN +pat1.pattern_fore_colour = 0x16 + +brd1 = Borders() +brd1.left = 0x06 +brd1.right = 0x06 +brd1.top = 0x06 +brd1.bottom = 0x06 + +fnt2 = Font() +fnt2.name = 'Verdana' +fnt2.bold = True +fnt2.height = 14*0x14 + +brd2 = Borders() +brd2.left = 0x01 +brd2.right = 0x01 +brd2.top = 0x01 +brd2.bottom = 0x01 + +pat2 = Pattern() +pat2.pattern = Pattern.SOLID_PATTERN +pat2.pattern_fore_colour = 0x01F + +fnt3 = Font() +fnt3.name = 'Verdana' +fnt3.bold = True +fnt3.italic = True +fnt3.height = 12*0x14 + +brd3 = Borders() +brd3.left = 0x07 +brd3.right = 0x07 +brd3.top = 0x07 +brd3.bottom = 0x07 + +fnt4 = Font() + +al1 = Alignment() +al1.horz = Alignment.HORZ_CENTER +al1.vert = Alignment.VERT_CENTER + +al2 = Alignment() +al2.horz = Alignment.HORZ_RIGHT +al2.vert = Alignment.VERT_CENTER + +al3 = Alignment() +al3.horz = Alignment.HORZ_LEFT +al3.vert = Alignment.VERT_CENTER + +style1 = XFStyle() +style1.font = fnt1 +style1.alignment = al1 +style1.pattern = pat1 +style1.borders = brd1 + +style2 = XFStyle() +style2.font = fnt2 +style2.alignment = al1 +style2.pattern = pat2 +style2.borders = brd2 + +style3 = XFStyle() +style3.font = fnt3 +style3.alignment = al1 +style3.pattern = pat2 +style3.borders = brd3 + +price_style = XFStyle() +price_style.font = fnt4 +price_style.alignment = al2 +price_style.borders = brd3 +price_style.num_format_str = '_(#,##0.00_) "money"' + +ware_style = XFStyle() +ware_style.font = fnt4 +ware_style.alignment = al3 +ware_style.borders = brd3 + + +ws0.merge(3, 3, 1, 5, style1) +ws0.merge(4, 10, 1, 6, style2) +ws0.merge(14, 16, 1, 7, style3) +ws0.col(1).width = 0x0d00 + + +wb.save('merged1.xls') diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/mini.py b/config/softs/pyExcelerator-0.6.3a.patched/examples/mini.py new file mode 100755 index 000000000..87cb152b5 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/examples/mini.py @@ -0,0 +1,11 @@ +#!/usr/bin/env python +# -*- coding: windows-1251 -*- +# Copyright (C) 2005 Kiseliov Roman +__rev_id__ = """$Id: mini.py,v 1.3 2005/03/27 12:47:06 rvk Exp $""" + + +from pyExcelerator import * + +w = Workbook() +ws = w.add_sheet('Hey, Dude') +w.save('mini.xls') diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/num_formats.py b/config/softs/pyExcelerator-0.6.3a.patched/examples/num_formats.py new file mode 100755 index 000000000..79abff769 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/examples/num_formats.py @@ -0,0 +1,62 @@ +#!/usr/bin/env python +# -*- coding: windows-1251 -*- +# Copyright (C) 2005 Kiseliov Roman +__rev_id__ = """$Id: num_formats.py,v 1.1 2005/07/20 07:24:11 rvk Exp $""" + + +from pyExcelerator import * + +w = Workbook() +ws = w.add_sheet('Hey, Dude') + +fmts = [ + 'general', + '0', + '0.00', + '#,##0', + '#,##0.00', + '"$"#,##0_);("$"#,##', + '"$"#,##0_);[Red]("$"#,##', + '"$"#,##0.00_);("$"#,##', + '"$"#,##0.00_);[Red]("$"#,##', + '0%', + '0.00%', + '0.00E+00', + '# ?/?', + '# ??/??', + 'M/D/YY', + 'D-MMM-YY', + 'D-MMM', + 'MMM-YY', + 'h:mm AM/PM', + 'h:mm:ss AM/PM', + 'h:mm', + 'h:mm:ss', + 'M/D/YY h:mm', + '_(#,##0_);(#,##0)', + '_(#,##0_);[Red](#,##0)', + '_(#,##0.00_);(#,##0.00)', + '_(#,##0.00_);[Red](#,##0.00)', + '_("$"* #,##0_);_("$"* (#,##0);_("$"* "-"_);_(@_)', + '_(* #,##0_);_(* (#,##0);_(* "-"_);_(@_)', + '_("$"* #,##0.00_);_("$"* (#,##0.00);_("$"* "-"??_);_(@_)', + '_(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_)', + 'mm:ss', + '[h]:mm:ss', + 'mm:ss.0', + '##0.0E+0', + '@' +] + +i = 0 +for fmt in fmts: + ws.write(i, 0, fmt) + + style = XFStyle() + style.num_format_str = fmt + + ws.write(i, 4, -1278.9078, style) + + i += 1 + +w.save('num_formats.xls') diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/numbers.py b/config/softs/pyExcelerator-0.6.3a.patched/examples/numbers.py new file mode 100755 index 000000000..9ed476a15 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/examples/numbers.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python +# -*- coding: windows-1251 -*- +# Copyright (C) 2005 Kiseliov Roman +__rev_id__ = """$Id: numbers.py,v 1.1 2005/07/20 07:24:11 rvk Exp $""" + + +from pyExcelerator import * + +w = Workbook() +ws = w.add_sheet('Hey, Dude') + +ws.write(0, 0, 1) +ws.write(1, 0, 1.23) +ws.write(2, 0, 12345678) +ws.write(3, 0, 123456.78) + +ws.write(0, 1, -1) +ws.write(1, 1, -1.23) +ws.write(2, 1, -12345678) +ws.write(3, 1, -123456.78) + +ws.write(0, 2, -17867868678687.0) +ws.write(1, 2, -1.23e-5) +ws.write(2, 2, -12345678.90780980) +ws.write(3, 2, -123456.78) + +w.save('numbers.xls') diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/outline.py b/config/softs/pyExcelerator-0.6.3a.patched/examples/outline.py new file mode 100755 index 000000000..9f4d05d03 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/examples/outline.py @@ -0,0 +1,115 @@ +#!/usr/bin/env python +# -*- coding: windows-1251 -*- +# Copyright (C) 2005 Kiseliov Roman +__rev_id__ = """$Id: outline.py,v 1.3 2005/03/27 12:47:06 rvk Exp $""" + + +from pyExcelerator import * + +fnt = Font() +fnt.name = 'Arial' +fnt.colour_index = 4 +fnt.bold = True + +borders = Borders() +borders.left = 6 +borders.right = 6 +borders.top = 6 +borders.bottom = 6 + +style = XFStyle() +style.font = fnt +style.borders = borders + +wb = Workbook() + +ws0 = wb.add_sheet('Rows Outline') + +ws0.write_merge(1, 1, 1, 5, 'test 1', style) +ws0.write_merge(2, 2, 1, 4, 'test 1', style) +ws0.write_merge(3, 3, 1, 3, 'test 2', style) +ws0.write_merge(4, 4, 1, 4, 'test 1', style) +ws0.write_merge(5, 5, 1, 4, 'test 3', style) +ws0.write_merge(6, 6, 1, 5, 'test 1', style) +ws0.write_merge(7, 7, 1, 5, 'test 4', style) +ws0.write_merge(8, 8, 1, 4, 'test 1', style) +ws0.write_merge(9, 9, 1, 3, 'test 5', style) + +ws0.row(1).level = 1 +ws0.row(2).level = 1 +ws0.row(3).level = 2 +ws0.row(4).level = 2 +ws0.row(5).level = 2 +ws0.row(6).level = 2 +ws0.row(7).level = 2 +ws0.row(8).level = 1 +ws0.row(9).level = 1 + + +ws1 = wb.add_sheet('Columns Outline') + +ws1.write_merge(1, 1, 1, 5, 'test 1', style) +ws1.write_merge(2, 2, 1, 4, 'test 1', style) +ws1.write_merge(3, 3, 1, 3, 'test 2', style) +ws1.write_merge(4, 4, 1, 4, 'test 1', style) +ws1.write_merge(5, 5, 1, 4, 'test 3', style) +ws1.write_merge(6, 6, 1, 5, 'test 1', style) +ws1.write_merge(7, 7, 1, 5, 'test 4', style) +ws1.write_merge(8, 8, 1, 4, 'test 1', style) +ws1.write_merge(9, 9, 1, 3, 'test 5', style) + +ws1.col(1).level = 1 +ws1.col(2).level = 1 +ws1.col(3).level = 2 +ws1.col(4).level = 2 +ws1.col(5).level = 2 +ws1.col(6).level = 2 +ws1.col(7).level = 2 +ws1.col(8).level = 1 +ws1.col(9).level = 1 + + +ws2 = wb.add_sheet('Rows and Columns Outline') + +ws2.write_merge(1, 1, 1, 5, 'test 1', style) +ws2.write_merge(2, 2, 1, 4, 'test 1', style) +ws2.write_merge(3, 3, 1, 3, 'test 2', style) +ws2.write_merge(4, 4, 1, 4, 'test 1', style) +ws2.write_merge(5, 5, 1, 4, 'test 3', style) +ws2.write_merge(6, 6, 1, 5, 'test 1', style) +ws2.write_merge(7, 7, 1, 5, 'test 4', style) +ws2.write_merge(8, 8, 1, 4, 'test 1', style) +ws2.write_merge(9, 9, 1, 3, 'test 5', style) + +ws2.row(1).level = 1 +ws2.row(2).level = 1 +ws2.row(3).level = 2 +ws2.row(4).level = 2 +ws2.row(5).level = 2 +ws2.row(6).level = 2 +ws2.row(7).level = 2 +ws2.row(8).level = 1 +ws2.row(9).level = 1 + +ws2.write_merge(1, 1, 1, 5, 'test 1', style) +ws2.write_merge(2, 2, 1, 4, 'test 1', style) +ws2.write_merge(3, 3, 1, 3, 'test 2', style) +ws2.write_merge(4, 4, 1, 4, 'test 1', style) +ws2.write_merge(5, 5, 1, 4, 'test 3', style) +ws2.write_merge(6, 6, 1, 5, 'test 1', style) +ws2.write_merge(7, 7, 1, 5, 'test 4', style) +ws2.write_merge(8, 8, 1, 4, 'test 1', style) +ws2.write_merge(9, 9, 1, 3, 'test 5', style) + +ws2.col(1).level = 1 +ws2.col(2).level = 1 +ws2.col(3).level = 2 +ws2.col(4).level = 2 +ws2.col(5).level = 2 +ws2.col(6).level = 2 +ws2.col(7).level = 2 +ws2.col(8).level = 1 +ws2.col(9).level = 1 + + +wb.save('outline.xls') diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/panes.py b/config/softs/pyExcelerator-0.6.3a.patched/examples/panes.py new file mode 100755 index 000000000..ce495ff24 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/examples/panes.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python +# -*- coding: windows-1251 -*- +# Copyright (C) 2005 Kiseliov Roman +__rev_id__ = """$Id: panes.py,v 1.1 2005/10/26 07:44:24 rvk Exp $""" + + +from pyExcelerator import * + +w = Workbook() +ws1 = w.add_sheet('sheet 1') +ws2 = w.add_sheet('sheet 2') +ws3 = w.add_sheet('sheet 3') +ws4 = w.add_sheet('sheet 4') +ws5 = w.add_sheet('sheet 5') +ws6 = w.add_sheet('sheet 6') + +for i in range(0x100): + ws1.write(i/0x10, i%0x10, i) + +for i in range(0x100): + ws2.write(i/0x10, i%0x10, i) + +for i in range(0x100): + ws3.write(i/0x10, i%0x10, i) + +for i in range(0x100): + ws4.write(i/0x10, i%0x10, i) + +for i in range(0x100): + ws5.write(i/0x10, i%0x10, i) + +for i in range(0x100): + ws6.write(i/0x10, i%0x10, i) + +ws1.panes_frozen = True +ws1.horz_split_pos = 2 + +ws2.panes_frozen = True +ws2.vert_split_pos = 2 + +ws3.panes_frozen = True +ws3.horz_split_pos = 1 +ws3.vert_split_pos = 1 + +ws4.panes_frozen = False +ws4.horz_split_pos = 12 +ws4.horz_split_first_visible = 2 + +ws5.panes_frozen = False +ws5.vert_split_pos = 40 +ws4.vert_split_first_visible = 2 + +ws6.panes_frozen = False +ws6.horz_split_pos = 12 +ws4.horz_split_first_visible = 2 +ws6.vert_split_pos = 40 +ws4.vert_split_first_visible = 2 + +w.save('panes.xls') + diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/parse-fmla.py b/config/softs/pyExcelerator-0.6.3a.patched/examples/parse-fmla.py new file mode 100755 index 000000000..84323fe56 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/examples/parse-fmla.py @@ -0,0 +1,12 @@ +from pyExcelerator import ExcelFormulaParser, ExcelFormula +import sys + +f = ExcelFormula.Formula( +""" -((1.80 + 2.898 * 1)/(1.80 + 2.898))* +AVERAGE((1.80 + 2.898 * 1)/(1.80 + 2.898); + (1.80 + 2.898 * 1)/(1.80 + 2.898); + (1.80 + 2.898 * 1)/(1.80 + 2.898)) + +SIN(PI()/4)""") + +#for t in f.rpn(): +# print "%15s %15s" % (ExcelFormulaParser.PtgNames[t[0]], t[1]) diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/protection.py b/config/softs/pyExcelerator-0.6.3a.patched/examples/protection.py new file mode 100755 index 000000000..551b0783b --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/examples/protection.py @@ -0,0 +1,136 @@ +#!/usr/bin/env python +# -*- coding: windows-1251 -*- +# Copyright (C) 2005 Kiseliov Roman +__rev_id__ = """$Id: protection.py,v 1.1 2005/10/26 07:44:24 rvk Exp $""" + + +from pyExcelerator import * + +fnt = Font() +fnt.name = 'Arial' +fnt.colour_index = 4 +fnt.bold = True + +borders = Borders() +borders.left = 6 +borders.right = 6 +borders.top = 6 +borders.bottom = 6 + +style = XFStyle() +style.font = fnt +style.borders = borders + +wb = Workbook() + +ws0 = wb.add_sheet('Rows Outline') + +ws0.write_merge(1, 1, 1, 5, 'test 1', style) +ws0.write_merge(2, 2, 1, 4, 'test 1', style) +ws0.write_merge(3, 3, 1, 3, 'test 2', style) +ws0.write_merge(4, 4, 1, 4, 'test 1', style) +ws0.write_merge(5, 5, 1, 4, 'test 3', style) +ws0.write_merge(6, 6, 1, 5, 'test 1', style) +ws0.write_merge(7, 7, 1, 5, 'test 4', style) +ws0.write_merge(8, 8, 1, 4, 'test 1', style) +ws0.write_merge(9, 9, 1, 3, 'test 5', style) + +ws0.row(1).level = 1 +ws0.row(2).level = 1 +ws0.row(3).level = 2 +ws0.row(4).level = 2 +ws0.row(5).level = 2 +ws0.row(6).level = 2 +ws0.row(7).level = 2 +ws0.row(8).level = 1 +ws0.row(9).level = 1 + + +ws1 = wb.add_sheet('Columns Outline') + +ws1.write_merge(1, 1, 1, 5, 'test 1', style) +ws1.write_merge(2, 2, 1, 4, 'test 1', style) +ws1.write_merge(3, 3, 1, 3, 'test 2', style) +ws1.write_merge(4, 4, 1, 4, 'test 1', style) +ws1.write_merge(5, 5, 1, 4, 'test 3', style) +ws1.write_merge(6, 6, 1, 5, 'test 1', style) +ws1.write_merge(7, 7, 1, 5, 'test 4', style) +ws1.write_merge(8, 8, 1, 4, 'test 1', style) +ws1.write_merge(9, 9, 1, 3, 'test 5', style) + +ws1.col(1).level = 1 +ws1.col(2).level = 1 +ws1.col(3).level = 2 +ws1.col(4).level = 2 +ws1.col(5).level = 2 +ws1.col(6).level = 2 +ws1.col(7).level = 2 +ws1.col(8).level = 1 +ws1.col(9).level = 1 + + +ws2 = wb.add_sheet('Rows and Columns Outline') + +ws2.write_merge(1, 1, 1, 5, 'test 1', style) +ws2.write_merge(2, 2, 1, 4, 'test 1', style) +ws2.write_merge(3, 3, 1, 3, 'test 2', style) +ws2.write_merge(4, 4, 1, 4, 'test 1', style) +ws2.write_merge(5, 5, 1, 4, 'test 3', style) +ws2.write_merge(6, 6, 1, 5, 'test 1', style) +ws2.write_merge(7, 7, 1, 5, 'test 4', style) +ws2.write_merge(8, 8, 1, 4, 'test 1', style) +ws2.write_merge(9, 9, 1, 3, 'test 5', style) + +ws2.row(1).level = 1 +ws2.row(2).level = 1 +ws2.row(3).level = 2 +ws2.row(4).level = 2 +ws2.row(5).level = 2 +ws2.row(6).level = 2 +ws2.row(7).level = 2 +ws2.row(8).level = 1 +ws2.row(9).level = 1 + +ws2.write_merge(1, 1, 1, 5, 'test 1', style) +ws2.write_merge(2, 2, 1, 4, 'test 1', style) +ws2.write_merge(3, 3, 1, 3, 'test 2', style) +ws2.write_merge(4, 4, 1, 4, 'test 1', style) +ws2.write_merge(5, 5, 1, 4, 'test 3', style) +ws2.write_merge(6, 6, 1, 5, 'test 1', style) +ws2.write_merge(7, 7, 1, 5, 'test 4', style) +ws2.write_merge(8, 8, 1, 4, 'test 1', style) +ws2.write_merge(9, 9, 1, 3, 'test 5', style) + +ws2.col(1).level = 1 +ws2.col(2).level = 1 +ws2.col(3).level = 2 +ws2.col(4).level = 2 +ws2.col(5).level = 2 +ws2.col(6).level = 2 +ws2.col(7).level = 2 +ws2.col(8).level = 1 +ws2.col(9).level = 1 + + +ws0.protect = True +ws0.wnd_protect = True +ws0.obj_protect = True +ws0.scen_protect = True +ws0.password = "123456" + +ws1.protect = True +ws1.wnd_protect = True +ws1.obj_protect = True +ws1.scen_protect = True +ws1.password = "abcdefghij" + +ws2.protect = True +ws2.wnd_protect = True +ws2.obj_protect = True +ws2.scen_protect = True +ws2.password = "ok" + +wb.protect = True +wb.wnd_protect = True +wb.obj_protect = True +wb.save('protection.xls') diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/python.bmp b/config/softs/pyExcelerator-0.6.3a.patched/examples/python.bmp new file mode 100755 index 000000000..bd1ba3fb1 Binary files /dev/null and b/config/softs/pyExcelerator-0.6.3a.patched/examples/python.bmp differ diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/row_styles.py b/config/softs/pyExcelerator-0.6.3a.patched/examples/row_styles.py new file mode 100755 index 000000000..38888ddd8 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/examples/row_styles.py @@ -0,0 +1,19 @@ +#!/usr/bin/env python +# -*- coding: windows-1251 -*- +# Copyright (C) 2005 Kiseliov Roman +__rev_id__ = """$Id: row_styles.py,v 1.3 2005/03/27 12:47:06 rvk Exp $""" + + +from pyExcelerator import * + +w = Workbook() +ws = w.add_sheet('Hey, Dude') + +for i in range(6, 80): + fnt = Font() + fnt.height = i*20 + style = XFStyle() + style.font = fnt + ws.write(i, 1, 'Test') + ws.row(i).set_style(style) +w.save('row_styles.xls') diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/row_styles_empty.py b/config/softs/pyExcelerator-0.6.3a.patched/examples/row_styles_empty.py new file mode 100755 index 000000000..9baef1cf2 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/examples/row_styles_empty.py @@ -0,0 +1,18 @@ +#!/usr/bin/env python +# -*- coding: windows-1251 -*- +# Copyright (C) 2005 Kiseliov Roman +__rev_id__ = """$Id: row_styles_empty.py,v 1.3 2005/03/27 12:47:06 rvk Exp $""" + + +from pyExcelerator import * + +w = Workbook() +ws = w.add_sheet('Hey, Dude') + +for i in range(6, 80): + fnt = Font() + fnt.height = i*20 + style = XFStyle() + style.font = fnt + ws.row(i).set_style(style) +w.save('row_styles_empty.xls') diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/sst.py b/config/softs/pyExcelerator-0.6.3a.patched/examples/sst.py new file mode 100755 index 000000000..3b3eecb76 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/examples/sst.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python +# -*- coding: windows-1251 -*- +# Copyright (C) 2005 Kiseliov Roman +__rev_id__ = """$Id: sst.py,v 1.2 2005/03/25 07:31:12 rvk Exp $""" + + +from pyExcelerator import * + +font0 = Formatting.Font() +font0.name = 'Arial' +font1 = Formatting.Font() +font1.name = 'Arial Cyr' +font2 = Formatting.Font() +font2.name = 'Times New Roman' +font3 = Formatting.Font() +font3.name = 'Courier New Cyr' + +num_format0 = '0.00000' +num_format1 = '0.000000' +num_format2 = '0.0000000' +num_format3 = '0.00000000' + +st0 = XFStyle() +st1 = XFStyle() +st2 = XFStyle() +st3 = XFStyle() +st4 = XFStyle() + +st0.font = font0 +st0.num_format = num_format0 + +st1.font = font1 +st1.num_format = num_format1 + +st2.font = font2 +st2.num_format = num_format2 + +st3.font = font3 +st3.num_format = num_format3 + +wb = Workbook() + +wb.add_style(st0) +wb.add_style(st1) +wb.add_style(st2) +wb.add_style(st3) + +ws0 = wb.add_sheet('0') +ws0.write(0, 0, 'Olya'*0x4000, st0) + +#for i in range(0, 0x10): +# ws0.write(i, 2, ('%d'%i)*0x4000, st1) + +wb.save('sst.xls') diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/unicode0.py b/config/softs/pyExcelerator-0.6.3a.patched/examples/unicode0.py new file mode 100755 index 000000000..34b4ecc81 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/examples/unicode0.py @@ -0,0 +1,16 @@ +#!/usr/bin/env python +# -*- coding: windows-1251 -*- +# Copyright (C) 2005 Kiseliov Roman +__rev_id__ = """$Id: unicode0.py,v 1.1 2005/03/27 12:47:06 rvk Exp $""" + + +from pyExcelerator import * + +w = Workbook() +ws1 = w.add_sheet('cp1251') + +UnicodeUtils.DEFAULT_ENCODING = 'cp1251' +ws1.write(0, 0, 'Îëÿ') + +w.save('unicode0.xls') + diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/unicode1.py b/config/softs/pyExcelerator-0.6.3a.patched/examples/unicode1.py new file mode 100755 index 000000000..6055c6f9d --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/examples/unicode1.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python +# -*- coding: windows-1251 -*- +# Copyright (C) 2005 Kiseliov Roman +__rev_id__ = """$Id: unicode1.py,v 1.1 2005/03/27 12:47:06 rvk Exp $""" + + +from pyExcelerator import * + +w = Workbook() +ws1 = w.add_sheet(u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK SMALL LETTER BETA}\N{GREEK SMALL LETTER GAMMA}') + +ws1.write(0, 0, u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK SMALL LETTER BETA}\N{GREEK SMALL LETTER GAMMA}') +ws1.write(1, 1, u'\N{GREEK SMALL LETTER DELTA}x = 1 + \N{GREEK SMALL LETTER DELTA}') + +ws1.write(2,0, u'A\u2262\u0391.') # RFC2152 example +ws1.write(3,0, u'Hi Mom -\u263a-!') # RFC2152 example +ws1.write(4,0, u'\u65E5\u672C\u8A9E') # RFC2152 example +ws1.write(5,0, u'Item 3 is \u00a31.') # RFC2152 example +ws1.write(8,0, u'\N{INTEGRAL}') # RFC2152 example + +w.add_sheet(u'A\u2262\u0391.') # RFC2152 example +w.add_sheet(u'Hi Mom -\u263a-!') # RFC2152 example +one_more_ws = w.add_sheet(u'\u65E5\u672C\u8A9E') # RFC2152 example +w.add_sheet(u'Item 3 is \u00a31.') # RFC2152 example + +one_more_ws.write(0, 0, u'\u2665\u2665') + +w.add_sheet(u'\N{GREEK SMALL LETTER ETA WITH TONOS}') +w.save('unicode1.xls') + diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/unicode2.py b/config/softs/pyExcelerator-0.6.3a.patched/examples/unicode2.py new file mode 100755 index 000000000..e1a6288bb --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/examples/unicode2.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python +# -*- coding: windows-1251 -*- +# Copyright (C) 2005 Kiseliov Roman +__rev_id__ = """$Id: unicode2.py,v 1.1 2005/03/27 12:47:06 rvk Exp $""" + + +from pyExcelerator import * + +w = Workbook() +ws1 = w.add_sheet(u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK SMALL LETTER BETA}\N{GREEK SMALL LETTER GAMMA}\u2665\u041e\u041b\u042f\u2665') + +fnt = Font() +fnt.height = 26*20 +style = XFStyle() +style.font = fnt + +for i in range(0x10000): + ws1.write(i/0x10, i%0x10, unichr(i), style) + +w.save('unicode2.xls') + diff --git a/config/softs/pyExcelerator-0.6.3a.patched/examples/wsprops.py b/config/softs/pyExcelerator-0.6.3a.patched/examples/wsprops.py new file mode 100755 index 000000000..998d5d7e9 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/examples/wsprops.py @@ -0,0 +1,157 @@ +__rev_id__ = """$Id: wsprops.py,v 1.3 2005/03/27 12:47:06 rvk Exp $""" + +props = \ +[ + 'name', + 'parent', + 'rows', + 'cols', + 'merged_ranges', + 'bmp_rec', + 'show_formulas', + 'show_grid', + 'show_headers', + 'panes_frozen', + 'show_empty_as_zero', + 'auto_colour_grid', + 'cols_right_to_left', + 'show_outline', + 'remove_splits', + 'selected', + 'hidden', + 'page_preview', + 'first_visible_row', + 'first_visible_col', + 'grid_colour', + 'preview_magn', + 'normal_magn', + 'row_gut_width', + 'col_gut_height', + 'show_auto_page_breaks', + 'dialogue_sheet', + 'auto_style_outline', + 'outline_below', + 'outline_right', + 'fit_num_pages', + 'show_row_outline', + 'show_col_outline', + 'alt_expr_eval', + 'alt_formula_entries', + 'row_default_height', + 'col_default_width', + 'calc_mode', + 'calc_count', + 'RC_ref_mode', + 'iterations_on', + 'delta', + 'save_recalc', + 'print_headers', + 'print_grid', + 'grid_set', + 'vert_page_breaks', + 'horz_page_breaks', + 'header_str', + 'footer_str', + 'print_centered_vert', + 'print_centered_horz', + 'left_margin', + 'right_margin', + 'top_margin', + 'bottom_margin', + 'paper_size_code', + 'print_scaling', + 'start_page_number', + 'fit_width_to_pages', + 'fit_height_to_pages', + 'print_in_rows', + 'portrait', + 'print_not_colour', + 'print_draft', + 'print_notes', + 'print_notes_at_end', + 'print_omit_errors', + 'print_hres', + 'print_vres', + 'header_margin', + 'footer_margin', + 'copies_num', +] + +from pyExcelerator import * + +wb = Workbook() +ws = wb.add_sheet('sheet') + +print ws.name +print ws.parent +print ws.rows +print ws.cols +print ws.merged_ranges +print ws.bmp_rec +print ws.show_formulas +print ws.show_grid +print ws.show_headers +print ws.panes_frozen +print ws.show_empty_as_zero +print ws.auto_colour_grid +print ws.cols_right_to_left +print ws.show_outline +print ws.remove_splits +print ws.selected +print ws.hidden +print ws.page_preview +print ws.first_visible_row +print ws.first_visible_col +print ws.grid_colour +print ws.preview_magn +print ws.normal_magn +#print ws.row_gut_width +#print ws.col_gut_height +print ws.show_auto_page_breaks +print ws.dialogue_sheet +print ws.auto_style_outline +print ws.outline_below +print ws.outline_right +print ws.fit_num_pages +print ws.show_row_outline +print ws.show_col_outline +print ws.alt_expr_eval +print ws.alt_formula_entries +print ws.row_default_height +print ws.col_default_width +print ws.calc_mode +print ws.calc_count +print ws.RC_ref_mode +print ws.iterations_on +print ws.delta +print ws.save_recalc +print ws.print_headers +print ws.print_grid +#print ws.grid_set +print ws.vert_page_breaks +print ws.horz_page_breaks +print ws.header_str +print ws.footer_str +print ws.print_centered_vert +print ws.print_centered_horz +print ws.left_margin +print ws.right_margin +print ws.top_margin +print ws.bottom_margin +print ws.paper_size_code +print ws.print_scaling +print ws.start_page_number +print ws.fit_width_to_pages +print ws.fit_height_to_pages +print ws.print_in_rows +print ws.portrait +print ws.print_colour +print ws.print_draft +print ws.print_notes +print ws.print_notes_at_end +print ws.print_omit_errors +print ws.print_hres +print ws.print_vres +print ws.header_margin +print ws.footer_margin +print ws.copies_num diff --git a/config/softs/pyExcelerator-0.6.3a.patched/hrc/CVS/Entries b/config/softs/pyExcelerator-0.6.3a.patched/hrc/CVS/Entries new file mode 100755 index 000000000..07b894e59 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/hrc/CVS/Entries @@ -0,0 +1,3 @@ +/py-2.4-hrc.py/1.1/Tue Jul 19 18:58:44 2005// +/python.hrc/1.2/Tue Jul 19 18:58:44 2005// +D diff --git a/config/softs/pyExcelerator-0.6.3a.patched/hrc/CVS/Entries.Extra b/config/softs/pyExcelerator-0.6.3a.patched/hrc/CVS/Entries.Extra new file mode 100755 index 000000000..88d651380 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/hrc/CVS/Entries.Extra @@ -0,0 +1,2 @@ +/py-2.4-hrc.py////*/// +/python.hrc////*/// diff --git a/config/softs/pyExcelerator-0.6.3a.patched/hrc/CVS/Entries.Extra.Old b/config/softs/pyExcelerator-0.6.3a.patched/hrc/CVS/Entries.Extra.Old new file mode 100755 index 000000000..88d651380 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/hrc/CVS/Entries.Extra.Old @@ -0,0 +1,2 @@ +/py-2.4-hrc.py////*/// +/python.hrc////*/// diff --git a/config/softs/pyExcelerator-0.6.3a.patched/hrc/CVS/Entries.Old b/config/softs/pyExcelerator-0.6.3a.patched/hrc/CVS/Entries.Old new file mode 100755 index 000000000..f641af084 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/hrc/CVS/Entries.Old @@ -0,0 +1,3 @@ +/py-2.4-hrc.py/1.1/Thu Mar 24 15:30:01 2005// +/python.hrc/1.2/Sun Mar 27 12:47:06 2005// +D diff --git a/config/softs/pyExcelerator-0.6.3a.patched/hrc/CVS/Repository b/config/softs/pyExcelerator-0.6.3a.patched/hrc/CVS/Repository new file mode 100755 index 000000000..9b37bdfc8 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/hrc/CVS/Repository @@ -0,0 +1 @@ +pyExcelerator/hrc diff --git a/config/softs/pyExcelerator-0.6.3a.patched/hrc/CVS/Root b/config/softs/pyExcelerator-0.6.3a.patched/hrc/CVS/Root new file mode 100755 index 000000000..7c4601bb6 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/hrc/CVS/Root @@ -0,0 +1 @@ +:ext:rvk@cvs.sf.net:/cvsroot/pyexcelerator diff --git a/config/softs/pyExcelerator-0.6.3a.patched/hrc/py-2.4-hrc.py b/config/softs/pyExcelerator-0.6.3a.patched/hrc/py-2.4-hrc.py new file mode 100755 index 000000000..8524f1621 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/hrc/py-2.4-hrc.py @@ -0,0 +1,312 @@ +specials = [ + "Ellipsis", + "False", + "None", + "NotImplemented", + "True", + "__abs__", + "__add__", + "__and__", + "__base__", + "__bases__", + "__basicsize__", + "__builtins__", + "__call__", + "__class__", + "__cmp__", + "__coerce__", + "__contains__", + "__debug__", + "__del__", + "__delattr__", + "__delete__", + "__delitem__", + "__delslice__", + "__dict__", + "__dictoffset__", + "__div__", + "__divmod__", + "__doc__", + "__eq__", + "__flags__", + "__float__", + "__floordiv__", + "__ge__", + "__get__", + "__getattr__", + "__getattribute__", + "__getitem__", + "__getnewargs__", + "__getslice__", + "__gt__", + "__hash__", + "__hex__", + "__iadd__", + "__iand__", + "__idiv__", + "__ifloordiv__", + "__ilshift__", + "__imod__", + "__import__", + "__imul__", + "__init__", + "__int__", + "__invert__", + "__ior__", + "__ipow__", + "__irshift__", + "__isub__", + "__itemsize__", + "__iter__", + "__itruediv__", + "__ixor__", + "__le__", + "__len__", + "__long__", + "__lshift__", + "__lt__", + "__main__", + "__mod__", + "__module__", + "__mro__", + "__mul__", + "__name__", + "__ne__", + "__neg__", + "__new__", + "__nonzero__", + "__oct__", + "__or__", + "__pos__", + "__pow__", + "__radd__", + "__rand__", + "__rdiv__", + "__rdivmod__", + "__reduce__", + "__reduce_ex__", + "__repr__", + "__rfloordiv__", + "__rlshift__", + "__rmod__", + "__rmul__", + "__ror__", + "__rpow__", + "__rrshift__", + "__rshift__", + "__rsub__", + "__rtruediv__", + "__rxor__", + "__set__", + "__setattr__", + "__setitem__", + "__setslice__", + "__str__", + "__sub__", + "__truediv__", + "__weakrefoffset__", + "__xor__", + "abs", + "apply", + "basestring", + "bool", + "buffer", + "callable", + "capitalize", + "center", + "chr", + "classmethod", + "cmp", + "coerce", + "compile", + "complex", + "count", + "decode", + "delattr", + "dict", + "dir", + "divmod", + "encode", + "endswith", + "enumerate", + "eval", + "execfile", + "exit", + "expandtabs", + "file", + "filter", + "find", + "float", + "frozenset", + "getattr", + "globals", + "hasattr", + "hash", + "hex", + "id", + "index", + "input", + "int", + "intern", + "isalnum", + "isalpha", + "isdigit", + "isinstance", + "islower", + "isspace", + "issubclass", + "istitle", + "isupper", + "iter", + "join", + "len", + "list", + "ljust", + "locals", + "long", + "lower", + "lstrip", + "map", + "max", + "min", + "next", + "object", + "oct", + "open", + "ord", + "pow", + "property", + "quit", + "range", + "raw_input", + "reduce", + "reload", + "replace", + "repr", + "reversed", + "rfind", + "rindex", + "rjust", + "round", + "rsplit", + "rstrip", + "set", + "setattr", + "slice", + "sorted", + "split", + "splitlines", + "startswith", + "staticmethod", + "str", + "strip", + "sum", + "super", + "swapcase", + "title", + "translate", + "tuple", + "type", + "unichr", + "unicode", + "upper", + "vars", + "xrange", + "zfill", + "zip" +] + +exceptions = [ + "Exception", + "SystemExit", + "StopIteration", + "StandardError", + "KeyboardInterrupt", + "ImportError", + "EnvironmentError", + "IOError", + "OSError", + "WindowsError", + "EOFError", + "RuntimeError", + "NotImplementedError", + "NameError", + "UnboundLocalError", + "AttributeError", + "SyntaxError", + "IndentationError", + "TabError", + "TypeError", + "AssertionError", + "LookupError", + "IndexError", + "KeyError", + "ArithmeticError", + "OverflowError", + "ZeroDivisionError", + "FloatingPointError", + "ValueError", + "UnicodeError", + "UnicodeEncodeError", + "UnicodeDecodeError", + "UnicodeTranslateError", + "ReferenceError", + "SystemError", + "MemoryError", + "Warning", + "UserWarning", + "DeprecationWarning", + "PendingDeprecationWarning", + "SyntaxWarning", + "OverflowWarning", # not generated in 2.4; won't exist in 2.5 + "RuntimeWarning", + "FutureWarning" +] + +reserved_words = [ + "and", + "del", + "for", + "is", + "raise", + "assert", + "elif", + "from" , + "lambda", + "return", + "break", + "else", + "global", + "not", + "try", + "class", + "except", + "if", + "or", + "while", + "continue", + "exec", + "import", + "pass" , + "yield" , + "def", + "finally", + "in", + "print" +] + +print '' +for word in sorted(reserved_words): + print ' ' % word +print '' + +print '' +for exc in sorted(exceptions): + print ' ' % exc +print '' + +print '' +for special in sorted(specials): + print ' ' % special +print '' + diff --git a/config/softs/pyExcelerator-0.6.3a.patched/hrc/python.hrc b/config/softs/pyExcelerator-0.6.3a.patched/hrc/python.hrc new file mode 100755 index 000000000..2614186b3 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/hrc/python.hrc @@ -0,0 +1,347 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/softs/pyExcelerator-0.6.3a.patched/museum/CVS/Entries b/config/softs/pyExcelerator-0.6.3a.patched/museum/CVS/Entries new file mode 100755 index 000000000..2d725c1ab --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/museum/CVS/Entries @@ -0,0 +1,9 @@ +/frmla.xls/1.1/Tue Aug 2 18:56:30 2005/-kb/ +/chart1v8.xls/1.1/Tue Jul 19 18:58:44 2005/-kb/ +/excel2003.xls/1.1/Tue Jul 19 18:58:44 2005/-kb/ +/macro2v8.xls/1.1/Tue Jul 19 18:58:44 2005/-kb/ +/mini-mini.xls/1.1/Tue Jul 19 18:58:44 2005/-kb/ +/mini.xls/1.1/Tue Jul 19 18:58:44 2005/-kb/ +/oo14.xls/1.1/Tue Jul 19 18:58:44 2005/-kb/ +/P-0508-0000507647-3280-5298.xls/1.1/Thu Sep 29 08:49:20 2005/-kb/ +D diff --git a/config/softs/pyExcelerator-0.6.3a.patched/museum/CVS/Entries.Extra b/config/softs/pyExcelerator-0.6.3a.patched/museum/CVS/Entries.Extra new file mode 100755 index 000000000..10eb6b3ef --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/museum/CVS/Entries.Extra @@ -0,0 +1,8 @@ +/frmla.xls////*/// +/chart1v8.xls////*/// +/excel2003.xls////*/// +/macro2v8.xls////*/// +/mini-mini.xls////*/// +/mini.xls////*/// +/oo14.xls////*/// +/P-0508-0000507647-3280-5298.xls////*/// diff --git a/config/softs/pyExcelerator-0.6.3a.patched/museum/CVS/Entries.Extra.Old b/config/softs/pyExcelerator-0.6.3a.patched/museum/CVS/Entries.Extra.Old new file mode 100755 index 000000000..10eb6b3ef --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/museum/CVS/Entries.Extra.Old @@ -0,0 +1,8 @@ +/frmla.xls////*/// +/chart1v8.xls////*/// +/excel2003.xls////*/// +/macro2v8.xls////*/// +/mini-mini.xls////*/// +/mini.xls////*/// +/oo14.xls////*/// +/P-0508-0000507647-3280-5298.xls////*/// diff --git a/config/softs/pyExcelerator-0.6.3a.patched/museum/CVS/Entries.Old b/config/softs/pyExcelerator-0.6.3a.patched/museum/CVS/Entries.Old new file mode 100755 index 000000000..3363eab7d --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/museum/CVS/Entries.Old @@ -0,0 +1,9 @@ +/frmla.xls/1.1/Tue Aug 2 18:56:30 2005/-kb/ +/chart1v8.xls/1.1/Tue Jul 19 18:58:44 2005/-kb/ +/excel2003.xls/1.1/Tue Jul 19 18:58:44 2005/-kb/ +/macro2v8.xls/1.1/Tue Jul 19 18:58:44 2005/-kb/ +/mini-mini.xls/1.1/Tue Jul 19 18:58:44 2005/-kb/ +/mini.xls/1.1/Tue Jul 19 18:58:44 2005/-kb/ +/oo14.xls/1.1/Tue Jul 19 18:58:44 2005/-kb/ +/P-0508-0000507647-3280-5298.xls/0/dummy timestamp/-kb/ +D diff --git a/config/softs/pyExcelerator-0.6.3a.patched/museum/CVS/Repository b/config/softs/pyExcelerator-0.6.3a.patched/museum/CVS/Repository new file mode 100755 index 000000000..c9a9fd5b8 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/museum/CVS/Repository @@ -0,0 +1 @@ +pyExcelerator/museum diff --git a/config/softs/pyExcelerator-0.6.3a.patched/museum/CVS/Root b/config/softs/pyExcelerator-0.6.3a.patched/museum/CVS/Root new file mode 100755 index 000000000..7c4601bb6 --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/museum/CVS/Root @@ -0,0 +1 @@ +:ext:rvk@cvs.sf.net:/cvsroot/pyexcelerator diff --git a/config/softs/pyExcelerator-0.6.3a.patched/museum/P-0508-0000507647-3280-5298.xls b/config/softs/pyExcelerator-0.6.3a.patched/museum/P-0508-0000507647-3280-5298.xls new file mode 100755 index 000000000..f30605409 Binary files /dev/null and b/config/softs/pyExcelerator-0.6.3a.patched/museum/P-0508-0000507647-3280-5298.xls differ diff --git a/config/softs/pyExcelerator-0.6.3a.patched/museum/chart1v8.xls b/config/softs/pyExcelerator-0.6.3a.patched/museum/chart1v8.xls new file mode 100755 index 000000000..cf8b9a623 Binary files /dev/null and b/config/softs/pyExcelerator-0.6.3a.patched/museum/chart1v8.xls differ diff --git a/config/softs/pyExcelerator-0.6.3a.patched/museum/excel2003.xls b/config/softs/pyExcelerator-0.6.3a.patched/museum/excel2003.xls new file mode 100755 index 000000000..6bf0fe25f Binary files /dev/null and b/config/softs/pyExcelerator-0.6.3a.patched/museum/excel2003.xls differ diff --git a/config/softs/pyExcelerator-0.6.3a.patched/museum/frmla.xls b/config/softs/pyExcelerator-0.6.3a.patched/museum/frmla.xls new file mode 100755 index 000000000..799523018 Binary files /dev/null and b/config/softs/pyExcelerator-0.6.3a.patched/museum/frmla.xls differ diff --git a/config/softs/pyExcelerator-0.6.3a.patched/museum/macro2v8.xls b/config/softs/pyExcelerator-0.6.3a.patched/museum/macro2v8.xls new file mode 100755 index 000000000..c8faf538b Binary files /dev/null and b/config/softs/pyExcelerator-0.6.3a.patched/museum/macro2v8.xls differ diff --git a/config/softs/pyExcelerator-0.6.3a.patched/museum/mini-mini.xls b/config/softs/pyExcelerator-0.6.3a.patched/museum/mini-mini.xls new file mode 100755 index 000000000..ae28c60fa Binary files /dev/null and b/config/softs/pyExcelerator-0.6.3a.patched/museum/mini-mini.xls differ diff --git a/config/softs/pyExcelerator-0.6.3a.patched/museum/mini.xls b/config/softs/pyExcelerator-0.6.3a.patched/museum/mini.xls new file mode 100755 index 000000000..4a12fb03b Binary files /dev/null and b/config/softs/pyExcelerator-0.6.3a.patched/museum/mini.xls differ diff --git a/config/softs/pyExcelerator-0.6.3a.patched/museum/oo14.xls b/config/softs/pyExcelerator-0.6.3a.patched/museum/oo14.xls new file mode 100755 index 000000000..9bed5056c Binary files /dev/null and b/config/softs/pyExcelerator-0.6.3a.patched/museum/oo14.xls differ diff --git a/config/softs/pyExcelerator-0.6.3a.patched/pyExcelerator/BIFFRecords.py b/config/softs/pyExcelerator-0.6.3a.patched/pyExcelerator/BIFFRecords.py new file mode 100755 index 000000000..5209cac1d --- /dev/null +++ b/config/softs/pyExcelerator-0.6.3a.patched/pyExcelerator/BIFFRecords.py @@ -0,0 +1,2296 @@ +#!/usr/bin/env python +# -*- coding: windows-1251 -*- + +# Copyright (C) 2005 Roman V. Kiseliov +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# +# 3. All advertising materials mentioning features or use of this +# software must display the following acknowledgment: +# "This product includes software developed by +# Roman V. Kiseliov ." +# +# 4. Redistributions of any form whatsoever must retain the following +# acknowledgment: +# "This product includes software developed by +# Roman V. Kiseliov ." +# +# THIS SOFTWARE IS PROVIDED BY Roman V. Kiseliov ``AS IS'' AND ANY +# EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Roman V. Kiseliov OR +# ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +# OF THE POSSIBILITY OF SUCH DAMAGE. + +__rev_id__ = """$Id: BIFFRecords.py,v 1.7 2005/10/26 07:44:24 rvk Exp $""" + + +from struct import pack +from UnicodeUtils import * +import sys + +class SharedStringTable(object): + _SST_ID = 0x00FC + _CONTINUE_ID = 0x003C + + def __init__(self): + self._sst_record = '' + self._continues = [] + self._current_piece = pack(' 0xFFFF: + raise Exception('error: very long string.') + + is_unicode_str = u_str[2] == '\x01' + if is_unicode_str: + atom_len = 5 # 2 byte -- len, + # 1 byte -- options, + # 2 byte -- 1st sym + else: + atom_len = 4 # 2 byte -- len, + # 1 byte -- options, + # 1 byte -- 1st sym + + self._save_atom(u_str[0:atom_len]) + self._save_splitted(u_str[atom_len:], is_unicode_str) + + def _new_piece(self): + if self._sst_record == '': + self._sst_record = self._current_piece + else: + curr_piece_len = len(self._current_piece) + self._continues.append(pack('<2H%ds'%curr_piece_len, self._CONTINUE_ID, curr_piece_len, self._current_piece)) + self._current_piece = '' + self._pos = len(self._current_piece) + + def _save_atom(self, s): + atom_len = len(s) + free_space = 0x2020 - len(self._current_piece) + if free_space < atom_len: + self._new_piece() + self._current_piece += s + + def _save_splitted(self, s, is_unicode_str): + i = 0 + str_len = len(s) + while i < str_len: + piece_len = len(self._current_piece) + free_space = 0x2020 - piece_len + tail_len = str_len - i + need_more_space = free_space < tail_len + + if not need_more_space: + atom_len = tail_len + else: + if is_unicode_str: + atom_len = free_space & 0xFFFE + else: + atom_len = free_space + + self._current_piece += s[i:i+atom_len] + + if need_more_space: + self._new_piece() + if is_unicode_str: + self._current_piece += '\x01' + else: + self._current_piece += '\x00' + + i += atom_len + + +class BiffRecord(object): + def __init__(self): + self._rec_data = '' + + def get_rec_id(self): + return _REC_ID + + def get_rec_header(self): + return pack('<2H', self._REC_ID, len(self._rec_data)) + + def get_rec_data(self): + return self._rec_data + + def get(self): + data = self.get_rec_data() + + if len(data) > 0x2020: # limit for BIFF7/8 + chunks = [] + pos = 0 + while pos < len(data): + chunk_pos = pos + 0x2020 + chunk = data[pos:chunk_pos] + chunks.append(chunk) + pos = chunk_pos + continues = pack('<2H', self._REC_ID, len(chunks[0])) + chunks[0] + for chunk in chunks[1:]: + continues += pack('<2H%ds'%len(chunk), 0x003C, len(chunk), chunk) + # 0x003C -- CONTINUE record id + return continues + else: + return self.get_rec_header() + data + + +class Biff8BOFRecord(BiffRecord): + """ + Offset Size Contents + 0 2 Version, contains 0600H for BIFF8 and BIFF8X + 2 2 Type of the following data: + 0005H = Workbook globals + 0006H = Visual Basic module + 0010H = Worksheet + 0020H = Chart + 0040H = Macro sheet + 0100H = Workspace file + 4 2 Build identifier + 6 2 Build year + 8 4 File history flags + 12 4 Lowest Excel version that can read all records in this file + """ + _REC_ID = 0x0809 + # stream types + BOOK_GLOBAL = 0x0005 + VB_MODULE = 0x0006 + WORKSHEET = 0x0010 + CHART = 0x0020 + MACROSHEET = 0x0040 + WORKSPACE = 0x0100 + + def __init__(self, rec_type): + BiffRecord.__init__(self) + + version = 0x0600 + build = 0x0DBB + year = 0x07CC + file_hist_flags = 0x00L + ver_can_read = 0x06L + + self._rec_data = pack('<4H2I', version, rec_type, build, year, file_hist_flags, ver_can_read) + + +class InteraceHdrRecord(BiffRecord): + _REC_ID = 0x00E1 + + def __init__(self): + BiffRecord.__init__(self) + + self._rec_data = pack('BB', 0xB0, 0x04) + + +class InteraceEndRecord(BiffRecord): + _REC_ID = 0x00E2 + + def __init__(self): + BiffRecord.__init__(self) + + self._rec_data = '' + + +class MMSRecord(BiffRecord): + _REC_ID = 0x00C1 + + def __init__(self): + BiffRecord.__init__(self) + + self._rec_data = pack('> 15 + c = low_15 | high_15 + passwd_hash ^= c + passwd_hash ^= len(plaintext) + passwd_hash ^= 0xCE4B + return passwd_hash + + def __init__(self, passwd = ""): + BiffRecord.__init__(self) + + self._rec_data = pack('