1 %include /usr/lib/rpm/macros.python
3 %define module egenix-mx-base
4 %define mxdir %{py_sitedir}/mx
6 Summary: eGenix mx-Extensions for Python
7 Summary(pl): eGenix mx-Extensions dla jêzyka Python
11 License: distributable
12 Group: Development/Languages/Python
13 Group(de): Entwicklung/Sprachen/Python
14 Group(es): Desarrollo/Lenguages/Python
15 Group(fr): Development/Langues/Python
16 Group(pl): Programowanie/Jêzyki/Python
17 Source0: http://www.lemburg.com/python/%{module}-%{version}.tar.gz
18 URL: http://www.lemburg.com/python/eGenix-mx-Extensions.html
19 BuildRequires: python-devel >= 2.2
20 BuildRequires: rpm-pythonprov
22 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
25 The eGenix mx Extension Series are a collection of Python extensions
26 written in ANSI C and Python which provide a large spectrum of useful
27 additions to everyday Python programming.
29 This package includes the Open Source subpackages of the series and is
30 needed by all other add-on packages of the series.
33 eGenix mx Extensions Series jest zestawem modu³ów, u³atwiaj±cych ¿ycie
34 ka¿demu programi¶cie pisz±cemu w jêzyku Python, napisanych w ANSI C i
37 Ten pakiet zawiera podstawowe modu³y wymagane przez inne pakiety.
39 %package -n python-mx-DateTime
40 Summary: Date and time Python extension
41 Summary(pl): Obiekty daty i czasu dla jêzyka Python
42 Group: Development/Languages/Python
43 Group(de): Entwicklung/Sprachen/Python
44 Group(es): Desarrollo/Lenguages/Python
45 Group(fr): Development/Langues/Python
46 Group(pl): Programowanie/Jêzyki/Python
48 Requires: python-%{module} = %{version}
50 %description -n python-mx-DateTime
51 mxDateTime is an extension package that provides three new object
52 types - DateTime, DateTimeDelta and RelativeDateTime, which let you
53 store and handle date/time values in a much more natural way than by
54 using ticks (seconds since 01.01.1970 0:00 UTC; the encoding used by
57 You can add, subtract and even multiply instances, pickle and copy
58 them and convert the results to strings, COM dates, ticks and some
59 other more esoteric values. In addition, there are several convenient
60 constructors and formatters at hand to greatly simplify dealing with
61 dates and times in real-world applications.
63 In addition to providing an easy-to-use Python interface the package
64 also exports a comfortable C API interface for other extensions to
65 build upon. This is especially interesting for database applications
66 which often have to deal with date/time values (the mxODBC package is
67 one example of an extension using this interface).
69 %description -l pl -n python-mx-DateTime
70 mxDateTime jest pakietem modu³ów, które definiuj± trzy nowe klasy -
71 DateTime, DateTimeDelta oraz RelativeDateTime. Umo¿liwiaj± one
72 przechowywanie oraz operowanie na dacie i czasie w bardziej naturalny
73 sposób ni¿ za pomoc± sekund od pocz±tku 1 stycznia 1970 (tak jak w
76 Programista mo¿e dodawaæ, odejmowaæ, mno¿yæ (w sensie arytmetycznym),
77 serializowaæ, a tak¿e mno¿yæ (w sesnie rozmna¿ania :-) obiekty.
78 Instancje w/w klas mog± byæ konwertowane do napisów i sekund.
79 Dodatkowo modu³ zawiera kilka u¿ytecznych funkcji do tworzenia nowych
80 obiektów i ich formatowania.
82 Oprócz, ³atwych w u¿yciu, klas jêzyka Python, pakiet dostarcza tak¿e
83 bardzo wygodny interfejs w C, który mo¿e byæ wykorzystany do tworzenia
84 innych rozszerzeñ (np.: pakiet mxODBC). W szczególno¶ci, cecha ta jest
85 interesuj±ca w przypadku aplikacji bazodanowych, które operuj± na
88 %package -n python-mx-TextTools
89 Summary: Efficient text manipulation extensions for Python
90 Summary(pl): Wydajne manipulowanie tekstem w jêzyku Python
91 Group: Development/Languages/Python
92 Group(de): Entwicklung/Sprachen/Python
93 Group(es): Desarrollo/Lenguages/Python
94 Group(fr): Development/Langues/Python
95 Group(pl): Programowanie/Jêzyki/Python
97 Requires: python-%{module} = %{version}
99 %description -n python-mx-TextTools
100 mxTextTools is an extension package for Python that provides several
101 useful functions and types that implement high-performance text
102 manipulation and searching algorithms in addition to a very flexible
103 and extendable state machine, the Tagging Engine, that allows scanning
104 and processing text based on low-level byte-code "programs" written
105 using Python tuples. It gives you access to the speed of C without the
106 need to do any compile and link steps every time you change the
109 Applications include parsing structured text, finding and extracting
110 text (either exact or using translation tables) and recombining
111 strings to form new text.
113 %description -l pl -n python-mx-TextTools
114 Pakiet mxTextTools dostarcza szereg u¿ytecznych typów i funkcji, które
115 implementuj± wysokiej jako¶ci algorytmy do wyszukiwania i manipulacji
116 tekstu. Programista dostaje wydajne (na poziomie kodu napisanego w
117 jêzyku C) narzêdzie bez potrzeby kompilacji i konsolidacji, kiedy
118 zajdzie potrzeba zmiany sposobu interpretacji tekstu.
120 Pakiet mo¿e mieæ zastosowanie w aplikacjach, które musz± interpretowaæ
121 tekst zadany w konkretnym formacie, a tak¿e wyszukiwaæ, pobieraæ i
124 %package -n python-mx-Stack
125 Summary: Stack implementation for Python
126 Summary(pl): Implementacja stosu dla jêzyka Python
127 Group: Development/Languages/Python
128 Group(de): Entwicklung/Sprachen/Python
129 Group(es): Desarrollo/Lenguages/Python
130 Group(fr): Development/Langues/Python
131 Group(pl): Programowanie/Jêzyki/Python
133 Requires: python-%{module} = %{version}
135 %description -n python-mx-Stack
136 mxStack is an extension package that provides a new object type called
137 Stack. It works much like what you would expect from such a type,
138 having .push() and .pop() methods and focusses on obtaining maximum
139 speed at low memory costs.
141 %description -l pl -n python-mx-Stack
142 Pakiet mxStack zawiera implementacjê stosu, która zawiera typowe
143 metody takie jak pop() czy push(). Mechanizm zosta³ napisany tak by,
144 przy minimalnym zu¿yciu pamiêci, by³ bardzo wydajny.
146 %package -n python-mx-Queue
147 Summary: Queue implementation for Python
148 Summary(pl): Implementacja kolejki dla jêzyka Python
149 Group: Development/Languages/Python
150 Group(de): Entwicklung/Sprachen/Python
151 Group(es): Desarrollo/Lenguages/Python
152 Group(fr): Development/Langues/Python
153 Group(pl): Programowanie/Jêzyki/Python
155 Requires: python-%{module} = %{version}
157 %description -n python-mx-Queue
158 mxQueue is an extension package that provides a new object type called
159 Queue. It works much like what you would expect from such a type,
160 having .push() and .pop() methods and focusses on obtaining maximum
161 speed at low memory costs.
163 %description -l pl -n python-mx-Queue
164 Pakiet mxQueue zawiera implementacjê kolejki, która zawiera typowe
165 metody takie jak pop() czy push(). Mechanizm zosta³ napisany tak by,
166 przy minimalnym zu¿yciu pamiêci, by³ bardzo wydajny.
168 %package -n python-mx-Tools
169 Summary: Some handy functions and objects which provides new builtins for Python
170 Summary(pl): Kilka u¿ytecznych klas i funkcji w postaci wew. mechanizmów Pythona
171 Group: Development/Languages/Python
172 Group(de): Entwicklung/Sprachen/Python
173 Group(es): Desarrollo/Lenguages/Python
174 Group(fr): Development/Langues/Python
175 Group(pl): Programowanie/Jêzyki/Python
177 Requires: python-%{module} = %{version}
179 %description -n python-mx-Tools
180 mxTools is an extension package that includes a collection of handy
181 functions and objects giving additional functionality in form of new
182 builtins to the Python programmer.
184 The package auto-installs the new functions and objects as builtins
185 upon first import. This means that they become instantely available to
186 all other modules without any further action on your part. Add the
187 line import mx.Tools.NewBuiltins to your site.py script and they will
188 be available to all users at your site as if they were installed in
189 the Python interpreter itself.
191 %description -l pl -n python-mx-Tools
192 Pakiet mxTools zawiera kilka u¿ytecznych klas i funkcji, które daj±
193 wiêcej mo¿liwo¶ci programi¶cie, w postaci wewnêtrznych mechanizmów
196 Pakiet ten instaluje, jako mechanizmy wewnêtrzne Pythona, wszystkie
197 funkcje i klasy po ich pierwszym do³±czeniu do kodu. Oznacza to, ¿e s±
198 one dostêpne dla innych modu³ów bez jakichkolwiek dodatkowych
199 zabiegów. Wystarczy dodaæ liniê "import mx.Tools.NewBuiltins" do
200 odpowiedniego skryptu (site.py) i zdefiniowane funkcje oraz klasy bêd±
201 widoczne dla wszystkich u¿ytkowników tak, jak by by³y wbudowane w
204 %package -n python-mx-Proxy
205 Summary: Support for Bastion like implementations for Python
206 Summary(pl): Wsparcie dla implementacji typu Bastion dla jêzyka Python
207 Group: Development/Languages/Python
208 Group(de): Entwicklung/Sprachen/Python
209 Group(es): Desarrollo/Lenguages/Python
210 Group(fr): Development/Langues/Python
211 Group(pl): Programowanie/Jêzyki/Python
213 Requires: python-%{module} = %{version}
215 %description -n python-mx-Proxy
216 mxProxy is an extension package that provides a new type that is
217 suitable to implement Bastion like features without the need to use
218 restricted execution environments.
220 The type's main features are secure data encapsulation (the hidden
221 objects are not accessible from Python since they are stored in
222 internal C structures), customizable attribute lookup methods and a
223 cleanup protocol that helps in breaking circular references prior to
226 The latest version adds a very interesting new feature: weak
227 references which help you work with circular references in a way that
228 doesn't cause memory leakage in a Python system.
230 %description -l pl -n python-mx-Proxy
231 Pakiet mxProxy dostarcza nowe klasy, które implementuj± funkcjonalno¶æ
232 typu Bastion bez potrzeby ograniczania ¶rodowiska, w którym jest
233 wykonywana aplikacja.
235 Podstawowymi zaletami s±: bezpieczne obudowywanie danych (ukryte
236 obiekty nie s± dostêpne z poziomu Pythona, poniewa¿ s± one
237 przechowywane w wewnêtrznych strukturach jêzyka C), konfigurowalne
238 metody do pobierania warto¶ci atrybutów oraz protokó³, który pomaga w
239 rozbijaniu zapêtlonych referencji podczas usuwania obiektów.
241 Ostatnia wersja pakietu implementuje tzw. s³abe referencje, które nie
242 powoduj± wycieków pamiêci w przypadku referencji zapêtlonych.
244 %package -n python-mx-BeeBase
245 Summary: High performance construction kit for disk based indexed databases (B+Tree)
246 Summary(pl): Wysokiej jako¶ci pakiet do tworzenia indeksowanych baz danych (B+Tree)
247 Group: Development/Languages/Python
248 Group(de): Entwicklung/Sprachen/Python
249 Group(es): Desarrollo/Lenguages/Python
250 Group(fr): Development/Langues/Python
251 Group(pl): Programowanie/Jêzyki/Python
253 Requires: python-%{module} = %{version}
255 %description -n python-mx-BeeBase
256 mxBeeBase is a high performance construction kit for disk based
257 indexed databases. It offers components which you can plug together to
258 easily build your own custom mid-sized databases (the current size
259 limit is sizeof(long) which gives you an address range of around 2GB
260 on 32-bit platforms).
262 The two basic building blocks in mxBeeBase are storage and index.
263 Storage is implemented as variable record length data storage with
264 integrated data protection features, automatic data recovery and
265 locking for multi process access. Indexes use a high performance
266 optimized B+Tree implementation built on top of Thomas Niemann's
267 Cookbook B+Tree implementation.
269 %description -l pl -n python-mx-BeeBase
270 mxBeeBase jest wysokiej jako¶ci pakietem do tworzenia indeksowanych
271 baz danych. Zawiera komponenty, które mo¿na razem ³±czyæ w celu
272 zbudowania w³asnej bazy. Obecny limit ilo¶ci danych wynosi 2GB (max.
273 warto¶æ liczby ca³kowitej typu long na platformach 32 bitowych).
275 Dwoma podstawowymi komponentami w tym pakiecie s± indeksy oraz
276 rekordy. Rekord mo¿e byæ zmiennej d³ugo¶ci i zawiera mechanizmy
277 ochrony, automatycznego odzyskiwania, blokowania, a tak¿e
278 wieloprocesowego dostêpu do danych. Do indeksowania s± u¿ywane bardzo
279 wydajne B-drzewa zaimplementowane na podstawie Cookbook B+Tree Thomasa
283 %setup -q -n %{module}-%{version}
286 env CFLAGS="%{rpmcflags}" python setup.py build
289 rm -rf $RPM_BUILD_ROOT
290 python setup.py install --root=$RPM_BUILD_ROOT
292 gzip -9nf README mx/LICENSE mx/COPYRIGHT mx/Doc/*.txt
295 rm -rf $RPM_BUILD_ROOT
298 %defattr(644,root,root,755)
299 %doc *.gz mx/*.gz mx/Doc/*.gz mx/Doc/mx{Extensions,License}.html
304 %{mxdir}/Misc/*.py[co]
306 %files -n python-mx-DateTime
307 %defattr(644,root,root,755)
308 %doc mx/DateTime/Doc/*.html
309 %dir %{mxdir}/DateTime
310 %{mxdir}/DateTime/*.py[co]
312 %dir %{mxdir}/DateTime/mxDateTime
313 %{mxdir}/DateTime/mxDateTime/*.py[co]
314 %attr(755,root,root) %{mxdir}/DateTime/mxDateTime/*.so
316 %files -n python-mx-TextTools
317 %defattr(644,root,root,755)
318 %doc mx/TextTools/Doc/*.html
319 %dir %{mxdir}/TextTools
320 %{mxdir}/TextTools/*.py[co]
322 %dir %{mxdir}/TextTools/mxTextTools
323 %{mxdir}/TextTools/mxTextTools/*.py[co]
324 %attr(755,root,root) %{mxdir}/TextTools/mxTextTools/*.so
326 %dir %{mxdir}/TextTools/Constants
327 %{mxdir}/TextTools/Constants/*.py[co]
329 %files -n python-mx-Stack
330 %defattr(644,root,root,755)
331 %doc mx/Stack/Doc/*.html
333 %{mxdir}/Stack/*.py[co]
335 %dir %{mxdir}/Stack/mxStack
336 %{mxdir}/Stack/mxStack/*.py[co]
337 %attr(755,root,root) %{mxdir}/Stack/mxStack/*.so
339 %files -n python-mx-Queue
340 %defattr(644,root,root,755)
341 %doc mx/Queue/Doc/*.html
343 %{mxdir}/Queue/*.py[co]
345 %dir %{mxdir}/Queue/mxQueue
346 %{mxdir}/Queue/mxQueue/*.py[co]
347 %attr(755,root,root) %{mxdir}/Queue/mxQueue/*.so
349 %files -n python-mx-Tools
350 %defattr(644,root,root,755)
351 %doc mx/Tools/Doc/*.html
353 %{mxdir}/Tools/*.py[co]
355 %dir %{mxdir}/Tools/mxTools
356 %{mxdir}/Tools/mxTools/*.py[co]
357 %attr(755,root,root) %{mxdir}/Tools/mxTools/*.so
359 %files -n python-mx-Proxy
360 %defattr(644,root,root,755)
361 %doc mx/Proxy/Doc/*.html
363 %{mxdir}/Proxy/*.py[co]
365 %dir %{mxdir}/Proxy/mxProxy
366 %{mxdir}/Proxy/mxProxy/*.py[co]
367 %attr(755,root,root) %{mxdir}/Proxy/mxProxy/*.so
369 %files -n python-mx-BeeBase
370 %defattr(644,root,root,755)
371 %doc mx/BeeBase/Doc/*.html
372 %dir %{mxdir}/BeeBase
373 %{mxdir}/BeeBase/*.py[co]
375 %dir %{mxdir}/BeeBase/mxBeeBase
376 %{mxdir}/BeeBase/mxBeeBase/*.py[co]
377 %attr(755,root,root) %{mxdir}/BeeBase/mxBeeBase/*.so