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.1
16 BuildRequires: python-modules >= 2.2.1
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.
37 Summary: Basic header files for eGenix extensions
38 Summary(pl): Podstawowe pliki nag³ówkowe dla rozszerzeñ eGenix
39 Group: Development/Languages/Python
42 Basic header files for eGenix extensions.
44 %description devel -l pl
45 Podstawowe pliki nag³ówkowe dla rozszerzeñ eGenix.
47 %package -n python-mx-DateTime
48 Summary: Date and time Python extension
49 Summary(pl): Obiekty daty i czasu dla jêzyka Python
50 Group: Libraries/Python
52 Requires: python-%{module} = %{version}
54 %description -n python-mx-DateTime
55 mxDateTime is an extension package that provides three new object
56 types - DateTime, DateTimeDelta and RelativeDateTime, which let you
57 store and handle date/time values in a much more natural way than by
58 using ticks (seconds since 01.01.1970 0:00 UTC; the encoding used by
61 You can add, subtract and even multiply instances, pickle and copy
62 them and convert the results to strings, COM dates, ticks and some
63 other more esoteric values. In addition, there are several convenient
64 constructors and formatters at hand to greatly simplify dealing with
65 dates and times in real-world applications.
67 In addition to providing an easy-to-use Python interface the package
68 also exports a comfortable C API interface for other extensions to
69 build upon. This is especially interesting for database applications
70 which often have to deal with date/time values (the mxODBC package is
71 one example of an extension using this interface).
73 %description -n python-mx-DateTime -l pl
74 mxDateTime jest pakietem modu³ów, które definiuj± trzy nowe klasy -
75 DateTime, DateTimeDelta oraz RelativeDateTime. Umo¿liwiaj± one
76 przechowywanie oraz operowanie na dacie i czasie w bardziej naturalny
77 sposób ni¿ za pomoc± sekund od pocz±tku 1 stycznia 1970 (tak jak w
80 Programista mo¿e dodawaæ, odejmowaæ, mno¿yæ (w sensie arytmetycznym),
81 serializowaæ, a tak¿e mno¿yæ (w sesnie rozmna¿ania :-) obiekty.
82 Instancje w/w klas mog± byæ konwertowane do napisów i sekund.
83 Dodatkowo modu³ zawiera kilka u¿ytecznych funkcji do tworzenia nowych
84 obiektów i ich formatowania.
86 Oprócz, ³atwych w u¿yciu, klas jêzyka Python, pakiet dostarcza tak¿e
87 bardzo wygodny interfejs w C, który mo¿e byæ wykorzystany do tworzenia
88 innych rozszerzeñ (np.: pakiet mxODBC). W szczególno¶ci, cecha ta jest
89 interesuj±ca w przypadku aplikacji bazodanowych, które operuj± na
92 %package -n python-mx-DateTime-devel
93 Summary: Headers for date and time Python extension
94 Summary(pl): Nag³ówki modu³ów daty i czasu
95 Group: Development/Languages/Python
96 Requires: %{name}-devel = %{version}
98 %description -n python-mx-DateTime-devel
99 Headers for date and time Python extension.
101 %description -n python-mx-DateTime-devel -l pl
102 Nag³ówki dla modu³ów daty i czasu.
104 %package -n python-mx-TextTools
105 Summary: Efficient text manipulation extensions for Python
106 Summary(pl): Wydajne manipulowanie tekstem w jêzyku Python
107 Group: Libraries/Python
108 %pyrequires_eq python
109 Requires: python-%{module} = %{version}
111 %description -n python-mx-TextTools
112 mxTextTools is an extension package for Python that provides several
113 useful functions and types that implement high-performance text
114 manipulation and searching algorithms in addition to a very flexible
115 and extendable state machine, the Tagging Engine, that allows scanning
116 and processing text based on low-level byte-code "programs" written
117 using Python tuples. It gives you access to the speed of C without the
118 need to do any compile and link steps every time you change the
121 Applications include parsing structured text, finding and extracting
122 text (either exact or using translation tables) and recombining
123 strings to form new text.
125 %description -n python-mx-TextTools -l pl
126 Pakiet mxTextTools dostarcza szereg u¿ytecznych typów i funkcji, które
127 implementuj± wysokiej jako¶ci algorytmy do wyszukiwania i manipulacji
128 tekstu. Programista dostaje wydajne (na poziomie kodu napisanego w
129 jêzyku C) narzêdzie bez potrzeby kompilacji i konsolidacji, kiedy
130 zajdzie potrzeba zmiany sposobu interpretacji tekstu.
132 Pakiet mo¿e mieæ zastosowanie w aplikacjach, które musz± interpretowaæ
133 tekst zadany w konkretnym formacie, a tak¿e wyszukiwaæ, pobieraæ i
136 %package -n python-mx-Stack
137 Summary: Stack implementation for Python
138 Summary(pl): Implementacja stosu dla jêzyka Python
139 Group: Libraries/Python
140 %pyrequires_eq python
141 Requires: python-%{module} = %{version}
143 %description -n python-mx-Stack
144 mxStack is an extension package that provides a new object type called
145 Stack. It works much like what you would expect from such a type,
146 having .push() and .pop() methods and focusses on obtaining maximum
147 speed at low memory costs.
149 %description -n python-mx-Stack -l pl
150 Pakiet mxStack zawiera implementacjê stosu, która zawiera typowe
151 metody takie jak pop() czy push(). Mechanizm zosta³ napisany tak by,
152 przy minimalnym zu¿yciu pamiêci, by³ bardzo wydajny.
154 %package -n python-mx-Queue
155 Summary: Queue implementation for Python
156 Summary(pl): Implementacja kolejki dla jêzyka Python
157 Group: Libraries/Python
158 %pyrequires_eq python
159 Requires: python-%{module} = %{version}
161 %description -n python-mx-Queue
162 mxQueue is an extension package that provides a new object type called
163 Queue. It works much like what you would expect from such a type,
164 having .push() and .pop() methods and focusses on obtaining maximum
165 speed at low memory costs.
167 %description -n python-mx-Queue -l pl
168 Pakiet mxQueue zawiera implementacjê kolejki, która zawiera typowe
169 metody takie jak pop() czy push(). Mechanizm zosta³ napisany tak by,
170 przy minimalnym zu¿yciu pamiêci, by³ bardzo wydajny.
172 %package -n python-mx-Tools
173 Summary: Some handy functions and objects which provides new builtins for Python
174 Summary(pl): Kilka u¿ytecznych klas i funkcji w postaci wew. mechanizmów Pythona
175 Group: Libraries/Python
176 %pyrequires_eq 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 -n python-mx-Tools -l pl
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: Libraries/Python
208 %pyrequires_eq python
209 Requires: python-%{module} = %{version}
211 %description -n python-mx-Proxy
212 mxProxy is an extension package that provides a new type that is
213 suitable to implement Bastion like features without the need to use
214 restricted execution environments.
216 The type's main features are secure data encapsulation (the hidden
217 objects are not accessible from Python since they are stored in
218 internal C structures), customizable attribute lookup methods and a
219 cleanup protocol that helps in breaking circular references prior to
222 The latest version adds a very interesting new feature: weak
223 references which help you work with circular references in a way that
224 doesn't cause memory leakage in a Python system.
226 %description -n python-mx-Proxy -l pl
227 Pakiet mxProxy dostarcza nowe klasy, które implementuj± funkcjonalno¶æ
228 typu Bastion bez potrzeby ograniczania ¶rodowiska, w którym jest
229 wykonywana aplikacja.
231 Podstawowymi zaletami s±: bezpieczne obudowywanie danych (ukryte
232 obiekty nie s± dostêpne z poziomu Pythona, poniewa¿ s± one
233 przechowywane w wewnêtrznych strukturach jêzyka C), konfigurowalne
234 metody do pobierania warto¶ci atrybutów oraz protokó³, który pomaga w
235 rozbijaniu zapêtlonych referencji podczas usuwania obiektów.
237 Ostatnia wersja pakietu implementuje tzw. s³abe referencje, które nie
238 powoduj± wycieków pamiêci w przypadku referencji zapêtlonych.
240 %package -n python-mx-BeeBase
241 Summary: High performance construction kit for disk based indexed databases (B+Tree)
242 Summary(pl): Wysokiej jako¶ci pakiet do tworzenia indeksowanych baz danych (B+Tree)
243 Group: Libraries/Python
244 %pyrequires_eq python
245 Requires: python-%{module} = %{version}
247 %description -n python-mx-BeeBase
248 mxBeeBase is a high performance construction kit for disk based
249 indexed databases. It offers components which you can plug together to
250 easily build your own custom mid-sized databases (the current size
251 limit is sizeof(long) which gives you an address range of around 2GB
252 on 32-bit platforms).
254 The two basic building blocks in mxBeeBase are storage and index.
255 Storage is implemented as variable record length data storage with
256 integrated data protection features, automatic data recovery and
257 locking for multi process access. Indexes use a high performance
258 optimized B+Tree implementation built on top of Thomas Niemann's
259 Cookbook B+Tree implementation.
261 %description -n python-mx-BeeBase -l pl
262 mxBeeBase jest wysokiej jako¶ci pakietem do tworzenia indeksowanych
263 baz danych. Zawiera komponenty, które mo¿na razem ³±czyæ w celu
264 zbudowania w³asnej bazy. Obecny limit ilo¶ci danych wynosi 2GB (max.
265 warto¶æ liczby ca³kowitej typu long na platformach 32 bitowych).
267 Dwoma podstawowymi komponentami w tym pakiecie s± indeksy oraz
268 rekordy. Rekord mo¿e byæ zmiennej d³ugo¶ci i zawiera mechanizmy
269 ochrony, automatycznego odzyskiwania, blokowania, a tak¿e
270 wieloprocesowego dostêpu do danych. Do indeksowania s± u¿ywane bardzo
271 wydajne B-drzewa zaimplementowane na podstawie Cookbook B+Tree Thomasa
275 %setup -q -n %{module}-%{version}
278 env CFLAGS="%{rpmcflags}" python setup.py build
281 rm -rf $RPM_BUILD_ROOT
282 install -d $RPM_BUILD_ROOT%{py_incdir}/mx
283 python setup.py install --root=$RPM_BUILD_ROOT
284 find $RPM_BUILD_ROOT%{py_sitedir} -name \*.h \
285 -exec mv {} $RPM_BUILD_ROOT%{py_incdir}/mx \;
288 rm -rf $RPM_BUILD_ROOT
291 %defattr(644,root,root,755)
292 %doc README mx/LICENSE mx/COPYRIGHT mx/Doc/mxLicense.html
298 %{mxdir}/Misc/*.py[co]
301 %defattr(644,root,root,755)
302 %{py_incdir}/mx/mxh.h
304 %files -n python-mx-DateTime
305 %defattr(644,root,root,755)
306 %doc mx/DateTime/Doc/*.html
307 %dir %{mxdir}/DateTime
308 %{mxdir}/DateTime/*.py[co]
310 %dir %{mxdir}/DateTime/mxDateTime
311 %{mxdir}/DateTime/mxDateTime/*.py[co]
312 %attr(755,root,root) %{mxdir}/DateTime/mxDateTime/*.so
314 %files -n python-mx-DateTime-devel
315 %defattr(644,root,root,755)
316 %{py_incdir}/mx/mxDateTime.h
318 %files -n python-mx-TextTools
319 %defattr(644,root,root,755)
320 %doc mx/TextTools/Doc/*.html
321 %dir %{mxdir}/TextTools
322 %{mxdir}/TextTools/*.py[co]
324 %dir %{mxdir}/TextTools/mxTextTools
325 %{mxdir}/TextTools/mxTextTools/*.py[co]
326 %attr(755,root,root) %{mxdir}/TextTools/mxTextTools/*.so
328 %dir %{mxdir}/TextTools/Constants
329 %{mxdir}/TextTools/Constants/*.py[co]
331 %files -n python-mx-Stack
332 %defattr(644,root,root,755)
333 %doc mx/Stack/Doc/*.html
335 %{mxdir}/Stack/*.py[co]
337 %dir %{mxdir}/Stack/mxStack
338 %{mxdir}/Stack/mxStack/*.py[co]
339 %attr(755,root,root) %{mxdir}/Stack/mxStack/*.so
341 %files -n python-mx-Queue
342 %defattr(644,root,root,755)
343 %doc mx/Queue/Doc/*.html
345 %{mxdir}/Queue/*.py[co]
347 %dir %{mxdir}/Queue/mxQueue
348 %{mxdir}/Queue/mxQueue/*.py[co]
349 %attr(755,root,root) %{mxdir}/Queue/mxQueue/*.so
351 %files -n python-mx-Tools
352 %defattr(644,root,root,755)
353 %doc mx/Tools/Doc/*.html
355 %{mxdir}/Tools/*.py[co]
357 %dir %{mxdir}/Tools/mxTools
358 %{mxdir}/Tools/mxTools/*.py[co]
359 %attr(755,root,root) %{mxdir}/Tools/mxTools/*.so
361 %files -n python-mx-Proxy
362 %defattr(644,root,root,755)
363 %doc mx/Proxy/Doc/*.html
365 %{mxdir}/Proxy/*.py[co]
367 %dir %{mxdir}/Proxy/mxProxy
368 %{mxdir}/Proxy/mxProxy/*.py[co]
369 %attr(755,root,root) %{mxdir}/Proxy/mxProxy/*.so
371 %files -n python-mx-BeeBase
372 %defattr(644,root,root,755)
373 %doc mx/BeeBase/Doc/*.html
374 %dir %{mxdir}/BeeBase
375 %{mxdir}/BeeBase/*.py[co]
377 %dir %{mxdir}/BeeBase/mxBeeBase
378 %{mxdir}/BeeBase/mxBeeBase/*.py[co]
379 %attr(755,root,root) %{mxdir}/BeeBase/mxBeeBase/*.so