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