2 %define module egenix-mx-base
3 %define python_sitepkgsdir %(echo `python -c "import sys; print (sys.prefix + '/lib/python' + sys.version[:3] + '/site-packages/')"`)
4 %define mxdir %{python_sitepkgsdir}/mx
6 Summary: eGenix mx-Extensions for Python - BASE package
10 URL: http://www.lemburg.com/python/mxExtensions.html
11 Group: Development/Languages/Python
12 Group(de): Entwicklung/Sprachen/Python
13 Group(pl): Programowanie/Jêzyki/Python
14 License: Distributable
15 Source0: http://www.lemburg.com/python/%{module}-%{version}.tar.gz
17 BuildRequires: python-devel
18 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
21 The eGenix mx Extension Series are a collection of Python extensions
22 written in ANSI C and Python which provide a large spectrum of useful
23 additions to everyday Python programming.
25 The BASE package includes the Open Source subpackages of the series
26 and is needed by all other add-on packages of the series.
28 This software is brought to you by eGenix.com and distributed under
29 the eGenix.com Public License.
31 %package -n python-mx-DateTime
32 Summary: Date and time Python extension
33 Summary(pl): Obiekty daty i czasu dla jêzyka Python
34 Group: Development/Languages/Python
35 Group(de): Entwicklung/Sprachen/Python
36 Group(pl): Programowanie/Jêzyki/Python
37 Requires: python-%{module} = %{version}
39 %description -n python-mx-DateTime
40 mxDateTime is an extension package that provides three new object
41 types, DateTime, DateTimeDelta and RelativeDateTime, which let you
42 store and handle date/time values in a much more natural way than by
43 using ticks (seconds since 1.1.70 0:00 UTC; the encoding used by the
46 You can add, subtract and even multiply instances, pickle and copy
47 them and convert the results to strings, COM dates, ticks and some
48 other more esoteric values. In addition, there are several convenient
49 constructors and formatters at hand to greatly simplify dealing with
50 dates and times in real-world applications.
52 In addition to providing an easy-to-use Python interface the package
53 also exports a comfortable C API interface for other extensions to
54 build upon. This is especially interesting for database applications
55 which often have to deal with date/time values (the mxODBC package is
56 one example of an extension using this interface).
58 %description -l pl -n python-mx-DateTime
61 %package -n python-mx-TextTools
62 Summary: Efficient text manipulation extensions for Python
63 Summary(pl): Wydajne manipulowanie tekstem w jêzyku Python
64 Group: Development/Languages/Python
65 Group(de): Entwicklung/Sprachen/Python
66 Group(pl): Programowanie/Jêzyki/Python
67 Requires: python-%{module} = %{version}
69 %description -n python-mx-TextTools
70 mxTextTools is an extension package for Python that provides several
71 useful functions and types that implement high-performance text
72 manipulation and searching algorithms in addition to a very flexible
73 and extendable state machine, the Tagging Engine, that allows scanning
74 and processing text based on low-level byte-code "programs" written
75 using Python tuples. It gives you access to the speed of C without the
76 need to do any compile and link steps every time you change the
79 Applications include parsing structured text, finding and extracting
80 text (either exact or using translation tables) and recombining
81 strings to form new text.
83 %description -l pl -n python-mx-TextTools
86 %package -n python-mx-Stack
87 Summary: Stack implementation for Python
88 Summary(pl): Implementacja stosu dla jêzyka Python
89 Group: Development/Languages/Python
90 Group(de): Entwicklung/Sprachen/Python
91 Group(pl): Programowanie/Jêzyki/Python
92 Requires: python-%{module} = %{version}
94 %description -n python-mx-Stack
95 mxStack is an extension package that provides a new object type called
96 Stack. It works much like what you would expect from such a type,
97 having .push() and .pop() methods and focusses on obtaining maximum
98 speed at low memory costs.
100 %description -l pl -n python-mx-Stack
103 %package -n python-mx-Queue
104 Summary: Queue implementation for Python
105 Summary(pl): Implementacja stosu dla jêzyka Python
106 Group: Development/Languages/Python
107 Group(de): Entwicklung/Sprachen/Python
108 Group(pl): Programowanie/Jêzyki/Python
109 Requires: python-%{module} = %{version}
111 %description -n python-mx-Queue
114 %description -l pl -n python-mx-Queue
117 %package -n python-mx-Tools
118 Summary: Some handy functions and objects which provides new builtins for Python
119 Group: Development/Languages/Python
120 Group(de): Entwicklung/Sprachen/Python
121 Group(pl): Programowanie/Jêzyki/Python
122 Requires: python-%{module} = %{version}
124 %description -n python-mx-Tools
125 mxTools is an extension package that includes a collection of handy
126 functions and objects giving additional functionality in form of new
127 builtins to the Python programmer.
129 The package auto-installs the new functions and objects as builtins
130 upon first import. This means that they become instantely available to
131 all other modules without any further action on your part. Add the
132 line import mx.Tools.NewBuiltins to your site.py script and they will
133 be available to all users at your site as if they were installed in
134 the Python interpreter itself.
136 %description -l pl -n python-mx-Tools
139 %package -n python-mx-Proxy
140 Summary: Support for Bastion like implementations for Python
141 Group: Development/Languages/Python
142 Group(de): Entwicklung/Sprachen/Python
143 Group(pl): Programowanie/Jêzyki/Python
144 Requires: python-%{module} = %{version}
146 %description -n python-mx-Proxy
147 mxProxy is an extension package that provides a new type that is
148 suitable to implement Bastion like features without the need to use
149 restricted execution environments.
151 The type's main features are secure data encapsulation (the hidden
152 objects are not accessible from Python since they are stored in
153 internal C structures), customizable attribute lookup methods and a
154 cleanup protocol that helps in breaking circular references prior to
157 The latest version adds a very interesting new feature: weak
158 references which help you work with circular references in a way that
159 doesn't cause memory leakage in a Python system.
161 %description -l pl -n python-mx-Proxy
164 %package -n python-mx-BeeBase
165 Summary: High performance construction kit for disk based indexed databases (B+Tree)
166 Group: Development/Languages/Python
167 Group(de): Entwicklung/Sprachen/Python
168 Group(pl): Programowanie/Jêzyki/Python
169 Requires: python-%{module} = %{version}
171 %description -n python-mx-BeeBase
172 mxBeeBase is a high performance construction kit for disk based
173 indexed databases. It offers components which you can plug together to
174 easily build your own custom mid-sized databases (the current size
175 limit is sizeof(long) which gives you an address range of around 2GB
176 on 32-bit platforms).
178 The two basic building blocks in mxBeeBase are storage and index.
179 Storage is implemented as variable record length data storage with
180 integrated data protection features, automatic data recovery and
181 locking for multi process access. Indexes use a high performance
182 optimized B+Tree implementation built on top of Thomas Niemann's
183 Cookbook B+Tree implementation.
185 %description -l pl -n python-mx-BeeBase
189 %setup -q -n %{module}-%{version}
192 env CFLAGS="%{rpmcflags}" python setup.py build
195 rm -rf $RPM_BUILD_ROOT
196 python setup.py install --root=$RPM_BUILD_ROOT
198 gzip -9nf README mx/LICENSE mx/COPYRIGHT mx/Doc/*.txt
201 rm -rf $RPM_BUILD_ROOT
204 %defattr(644,root,root,755)
205 %doc *.gz mx/*.gz mx/Doc/*.gz mx/Doc/mx{Extensions,License}.html
212 %files -n python-mx-DateTime
213 %defattr(644,root,root,755)
214 %doc mx/DateTime/Doc/*.html
215 %dir %{mxdir}/DateTime
216 %{mxdir}/DateTime/*.py?
218 %dir %{mxdir}/DateTime/mxDateTime
219 %{mxdir}/DateTime/mxDateTime/*.py?
220 %attr(755,root,root) %{mxdir}/DateTime/mxDateTime/*.so
222 %files -n python-mx-TextTools
223 %defattr(644,root,root,755)
224 %doc mx/TextTools/Doc/*.html
225 %dir %{mxdir}/TextTools
226 %{mxdir}/TextTools/*.py?
228 %dir %{mxdir}/TextTools/mxTextTools
229 %{mxdir}/TextTools/mxTextTools/*.py?
230 %attr(755,root,root) %{mxdir}/TextTools/mxTextTools/*.so
232 %dir %{mxdir}/TextTools/Constants
233 %{mxdir}/TextTools/Constants/*.py?
235 %files -n python-mx-Stack
236 %defattr(644,root,root,755)
237 %doc mx/Stack/Doc/*.html
241 %dir %{mxdir}/Stack/mxStack
242 %{mxdir}/Stack/mxStack/*.py?
243 %attr(755,root,root) %{mxdir}/Stack/mxStack/*.so
245 %files -n python-mx-Queue
246 %defattr(644,root,root,755)
247 %doc mx/Queue/Doc/*.html
251 %dir %{mxdir}/Queue/mxQueue
252 %{mxdir}/Queue/mxQueue/*.py?
253 %attr(755,root,root) %{mxdir}/Queue/mxQueue/*.so
255 %files -n python-mx-Tools
256 %defattr(644,root,root,755)
257 %doc mx/Tools/Doc/*.html
261 %dir %{mxdir}/Tools/mxTools
262 %{mxdir}/Tools/mxTools/*.py?
263 %attr(755,root,root) %{mxdir}/Tools/mxTools/*.so
265 %files -n python-mx-Proxy
266 %defattr(644,root,root,755)
267 %doc mx/Proxy/Doc/*.html
271 %dir %{mxdir}/Proxy/mxProxy
272 %{mxdir}/Proxy/mxProxy/*.py?
273 %attr(755,root,root) %{mxdir}/Proxy/mxProxy/*.so
275 %files -n python-mx-BeeBase
276 %defattr(644,root,root,755)
277 %doc mx/BeeBase/Doc/*.html
278 %dir %{mxdir}/BeeBase
279 %{mxdir}/BeeBase/*.py?
281 %dir %{mxdir}/BeeBase/mxBeeBase
282 %{mxdir}/BeeBase/mxBeeBase/*.py?
283 %attr(755,root,root) %{mxdir}/BeeBase/mxBeeBase/*.so