%include /usr/lib/rpm/macros.python %define module egenix-mx-base %define mxdir %{py_sitedir}/mx Summary: eGenix mx-Extensions for Python Summary(pl): eGenix mx-Extensions dla języka Python Name: python-%{module} Version: 2.0.4 Release: 1 License: distributable Group: Libraries/Python Source0: http://www.lemburg.com/python/%{module}-%{version}.tar.gz URL: http://www.lemburg.com/python/eGenix-mx-Extensions.html BuildRequires: python-devel >= 2.2.1 BuildRequires: python-modules >= 2.2.1 BuildRequires: rpm-pythonprov %pyrequires_eq python BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %description The eGenix mx Extension Series are a collection of Python extensions written in ANSI C and Python which provide a large spectrum of useful additions to everyday Python programming. This package includes the Open Source subpackages of the series and is needed by all other add-on packages of the series. %description -l pl eGenix mx Extensions Series jest zestawem modułów, ułatwiających życie każdemu programiście piszącemu w języku Python, napisanych w ANSI C i Pythonie. Ten pakiet zawiera podstawowe moduły wymagane przez inne pakiety. %package -n python-mx-DateTime Summary: Date and time Python extension Summary(pl): Obiekty daty i czasu dla języka Python Group: Libraries/Python %pyrequires_eq python Requires: python-%{module} = %{version} %description -n python-mx-DateTime mxDateTime is an extension package that provides three new object types - DateTime, DateTimeDelta and RelativeDateTime, which let you store and handle date/time values in a much more natural way than by using ticks (seconds since 01.01.1970 0:00 UTC; the encoding used by the time module). You can add, subtract and even multiply instances, pickle and copy them and convert the results to strings, COM dates, ticks and some other more esoteric values. In addition, there are several convenient constructors and formatters at hand to greatly simplify dealing with dates and times in real-world applications. In addition to providing an easy-to-use Python interface the package also exports a comfortable C API interface for other extensions to build upon. This is especially interesting for database applications which often have to deal with date/time values (the mxODBC package is one example of an extension using this interface). %description -n python-mx-DateTime -l pl mxDateTime jest pakietem modułów, które definiują trzy nowe klasy - DateTime, DateTimeDelta oraz RelativeDateTime. Umożliwiają one przechowywanie oraz operowanie na dacie i czasie w bardziej naturalny sposób niż za pomocą sekund od początku 1 stycznia 1970 (tak jak w module time). Programista może dodawać, odejmować, mnożyć (w sensie arytmetycznym), serializować, a także mnożyć (w sesnie rozmnażania :-) obiekty. Instancje w/w klas mogą być konwertowane do napisów i sekund. Dodatkowo moduł zawiera kilka użytecznych funkcji do tworzenia nowych obiektów i ich formatowania. Oprócz, łatwych w użyciu, klas języka Python, pakiet dostarcza także bardzo wygodny interfejs w C, który może być wykorzystany do tworzenia innych rozszerzeń (np.: pakiet mxODBC). W szczególności, cecha ta jest interesująca w przypadku aplikacji bazodanowych, które operują na dacie i czasie. %package -n python-mx-DateTime-devel Summary: Headers for date and time Python extension Summary(pl): Nagłówki dla rozszerzeń mx ( daty i czasu dla języka Python) Group: Libraries/Python Requires: python-mx-DateTime = %{version} %description -n python-mx-DateTime-devel Headers for date and time Python extension. Required to build some packages. %description -n python-mx-DateTime-devel -l pl Nagłówki dla biblioteki mx (daty i czasu). Wymagane do budowania pewnych pakietów. %package -n python-mx-TextTools Summary: Efficient text manipulation extensions for Python Summary(pl): Wydajne manipulowanie tekstem w języku Python Group: Libraries/Python %pyrequires_eq python Requires: python-%{module} = %{version} %description -n python-mx-TextTools mxTextTools is an extension package for Python that provides several useful functions and types that implement high-performance text manipulation and searching algorithms in addition to a very flexible and extendable state machine, the Tagging Engine, that allows scanning and processing text based on low-level byte-code "programs" written using Python tuples. It gives you access to the speed of C without the need to do any compile and link steps every time you change the parsing description. Applications include parsing structured text, finding and extracting text (either exact or using translation tables) and recombining strings to form new text. %description -n python-mx-TextTools -l pl Pakiet mxTextTools dostarcza szereg użytecznych typów i funkcji, które implementują wysokiej jakości algorytmy do wyszukiwania i manipulacji tekstu. Programista dostaje wydajne (na poziomie kodu napisanego w języku C) narzędzie bez potrzeby kompilacji i konsolidacji, kiedy zajdzie potrzeba zmiany sposobu interpretacji tekstu. Pakiet może mieć zastosowanie w aplikacjach, które muszą interpretować tekst zadany w konkretnym formacie, a także wyszukiwać, pobierać i manipulować tekstem. %package -n python-mx-Stack Summary: Stack implementation for Python Summary(pl): Implementacja stosu dla języka Python Group: Libraries/Python %pyrequires_eq python Requires: python-%{module} = %{version} %description -n python-mx-Stack mxStack is an extension package that provides a new object type called Stack. It works much like what you would expect from such a type, having .push() and .pop() methods and focusses on obtaining maximum speed at low memory costs. %description -n python-mx-Stack -l pl Pakiet mxStack zawiera implementację stosu, która zawiera typowe metody takie jak pop() czy push(). Mechanizm został napisany tak by, przy minimalnym zużyciu pamięci, był bardzo wydajny. %package -n python-mx-Queue Summary: Queue implementation for Python Summary(pl): Implementacja kolejki dla języka Python Group: Libraries/Python %pyrequires_eq python Requires: python-%{module} = %{version} %description -n python-mx-Queue mxQueue is an extension package that provides a new object type called Queue. It works much like what you would expect from such a type, having .push() and .pop() methods and focusses on obtaining maximum speed at low memory costs. %description -n python-mx-Queue -l pl Pakiet mxQueue zawiera implementację kolejki, która zawiera typowe metody takie jak pop() czy push(). Mechanizm został napisany tak by, przy minimalnym zużyciu pamięci, był bardzo wydajny. %package -n python-mx-Tools Summary: Some handy functions and objects which provides new builtins for Python Summary(pl): Kilka użytecznych klas i funkcji w postaci wew. mechanizmów Pythona Group: Libraries/Python %pyrequires_eq python Requires: python-%{module} = %{version} %description -n python-mx-Tools mxTools is an extension package that includes a collection of handy functions and objects giving additional functionality in form of new builtins to the Python programmer. The package auto-installs the new functions and objects as builtins upon first import. This means that they become instantely available to all other modules without any further action on your part. Add the line import mx.Tools.NewBuiltins to your site.py script and they will be available to all users at your site as if they were installed in the Python interpreter itself. %description -n python-mx-Tools -l pl Pakiet mxTools zawiera kilka użytecznych klas i funkcji, które dają więcej możliwości programiście, w postaci wewnętrznych mechanizmów języka Python. Pakiet ten instaluje, jako mechanizmy wewnętrzne Pythona, wszystkie funkcje i klasy po ich pierwszym dołączeniu do kodu. Oznacza to, że są one dostępne dla innych modułów bez jakichkolwiek dodatkowych zabiegów. Wystarczy dodać linię "import mx.Tools.NewBuiltins" do odpowiedniego skryptu (site.py) i zdefiniowane funkcje oraz klasy będą widoczne dla wszystkich użytkowników tak, jak by były wbudowane w język Python. %package -n python-mx-Proxy Summary: Support for Bastion like implementations for Python Summary(pl): Wsparcie dla implementacji typu Bastion dla języka Python Group: Libraries/Python %pyrequires_eq python Requires: python-%{module} = %{version} %description -n python-mx-Proxy mxProxy is an extension package that provides a new type that is suitable to implement Bastion like features without the need to use restricted execution environments. The type's main features are secure data encapsulation (the hidden objects are not accessible from Python since they are stored in internal C structures), customizable attribute lookup methods and a cleanup protocol that helps in breaking circular references prior to object deletion. The latest version adds a very interesting new feature: weak references which help you work with circular references in a way that doesn't cause memory leakage in a Python system. %description -n python-mx-Proxy -l pl Pakiet mxProxy dostarcza nowe klasy, które implementują funkcjonalność typu Bastion bez potrzeby ograniczania środowiska, w którym jest wykonywana aplikacja. Podstawowymi zaletami są: bezpieczne obudowywanie danych (ukryte obiekty nie są dostępne z poziomu Pythona, ponieważ są one przechowywane w wewnętrznych strukturach języka C), konfigurowalne metody do pobierania wartości atrybutów oraz protokół, który pomaga w rozbijaniu zapętlonych referencji podczas usuwania obiektów. Ostatnia wersja pakietu implementuje tzw. słabe referencje, które nie powodują wycieków pamięci w przypadku referencji zapętlonych. %package -n python-mx-BeeBase Summary: High performance construction kit for disk based indexed databases (B+Tree) Summary(pl): Wysokiej jakości pakiet do tworzenia indeksowanych baz danych (B+Tree) Group: Libraries/Python %pyrequires_eq python Requires: python-%{module} = %{version} %description -n python-mx-BeeBase mxBeeBase is a high performance construction kit for disk based indexed databases. It offers components which you can plug together to easily build your own custom mid-sized databases (the current size limit is sizeof(long) which gives you an address range of around 2GB on 32-bit platforms). The two basic building blocks in mxBeeBase are storage and index. Storage is implemented as variable record length data storage with integrated data protection features, automatic data recovery and locking for multi process access. Indexes use a high performance optimized B+Tree implementation built on top of Thomas Niemann's Cookbook B+Tree implementation. %description -n python-mx-BeeBase -l pl mxBeeBase jest wysokiej jakości pakietem do tworzenia indeksowanych baz danych. Zawiera komponenty, które można razem łączyć w celu zbudowania własnej bazy. Obecny limit ilości danych wynosi 2GB (max. wartość liczby całkowitej typu long na platformach 32 bitowych). Dwoma podstawowymi komponentami w tym pakiecie są indeksy oraz rekordy. Rekord może być zmiennej długości i zawiera mechanizmy ochrony, automatycznego odzyskiwania, blokowania, a także wieloprocesowego dostępu do danych. Do indeksowania są używane bardzo wydajne B-drzewa zaimplementowane na podstawie Cookbook B+Tree Thomasa Newmanna. %prep %setup -q -n %{module}-%{version} %build env CFLAGS="%{rpmcflags}" python setup.py build %install rm -rf $RPM_BUILD_ROOT python setup.py install --root=$RPM_BUILD_ROOT %clean rm -rf $RPM_BUILD_ROOT %files %defattr(644,root,root,755) %doc README mx/LICENSE mx/COPYRIGHT mx/Doc/mxLicense.html %dir %{mxdir} %{mxdir}/*.py[co] %dir %{mxdir}/Misc %{mxdir}/Misc/*.py[co] %files -n python-mx-DateTime %defattr(644,root,root,755) %doc mx/DateTime/Doc/*.html %dir %{mxdir}/DateTime %{mxdir}/DateTime/*.py[co] %dir %{mxdir}/DateTime/mxDateTime %{mxdir}/DateTime/mxDateTime/*.py[co] %attr(755,root,root) %{mxdir}/DateTime/mxDateTime/*.so %files -n python-mx-DateTime-devel %defattr(644,root,root,755) %dir %{mxdir}/DateTime/mxDateTime %{mxdir}/DateTime/mxDateTime/*.h %files -n python-mx-TextTools %defattr(644,root,root,755) %doc mx/TextTools/Doc/*.html %dir %{mxdir}/TextTools %{mxdir}/TextTools/*.py[co] %dir %{mxdir}/TextTools/mxTextTools %{mxdir}/TextTools/mxTextTools/*.py[co] %attr(755,root,root) %{mxdir}/TextTools/mxTextTools/*.so %dir %{mxdir}/TextTools/Constants %{mxdir}/TextTools/Constants/*.py[co] %files -n python-mx-Stack %defattr(644,root,root,755) %doc mx/Stack/Doc/*.html %dir %{mxdir}/Stack %{mxdir}/Stack/*.py[co] %dir %{mxdir}/Stack/mxStack %{mxdir}/Stack/mxStack/*.py[co] %attr(755,root,root) %{mxdir}/Stack/mxStack/*.so %files -n python-mx-Queue %defattr(644,root,root,755) %doc mx/Queue/Doc/*.html %dir %{mxdir}/Queue %{mxdir}/Queue/*.py[co] %dir %{mxdir}/Queue/mxQueue %{mxdir}/Queue/mxQueue/*.py[co] %attr(755,root,root) %{mxdir}/Queue/mxQueue/*.so %files -n python-mx-Tools %defattr(644,root,root,755) %doc mx/Tools/Doc/*.html %dir %{mxdir}/Tools %{mxdir}/Tools/*.py[co] %dir %{mxdir}/Tools/mxTools %{mxdir}/Tools/mxTools/*.py[co] %attr(755,root,root) %{mxdir}/Tools/mxTools/*.so %files -n python-mx-Proxy %defattr(644,root,root,755) %doc mx/Proxy/Doc/*.html %dir %{mxdir}/Proxy %{mxdir}/Proxy/*.py[co] %dir %{mxdir}/Proxy/mxProxy %{mxdir}/Proxy/mxProxy/*.py[co] %attr(755,root,root) %{mxdir}/Proxy/mxProxy/*.so %files -n python-mx-BeeBase %defattr(644,root,root,755) %doc mx/BeeBase/Doc/*.html %dir %{mxdir}/BeeBase %{mxdir}/BeeBase/*.py[co] %dir %{mxdir}/BeeBase/mxBeeBase %{mxdir}/BeeBase/mxBeeBase/*.py[co] %attr(755,root,root) %{mxdir}/BeeBase/mxBeeBase/*.so