# # spec file for package python-logilab-common # # Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # Name: python-logilab-common Version: 1.0.2 Release: 2.1 Url: http://www.logilab.org/projects/common/ Summary: Python lowlevel functionality shared by logilab projects License: LGPL-2.1+ Group: Development/Languages/Python Source: https://pypi.python.org/packages/source/l/logilab-common/logilab-common-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: python-devel BuildRequires: python-setuptools %if 0%{?suse_version} <= 1110 %{!?python_sitearch: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib(True)")} %{py_requires} %else BuildArch: noarch %endif %description The package logilab.common contains several modules providing low level functionalities shared among some python projects developed by logilab. The package is used by pylint, an advanced Python style and syntax checker. Please note that some of the modules have some extra dependencies. For instance, logilab.common.db will require a db-api 2.0 compliant database driver. Command line parsing modules require optik to be installed, if you're using python2.1 or 2.2. Please send any comment, patch or question to the python-projects mailing-list. Before asking a question, please first search the archives in case it would have already been answered. You may want to use google and add "site:lists.logilab.org" to your keywords to narrow your search. We will soon provide our own search engine. %prep %setup -n logilab-common-%{version} %build python setup.py build %install python setup.py install --prefix=%{_prefix} --root="%{buildroot}" rm -rf %{buildroot}{%{_bindir}/pytest,%{python_sitelib}/logilab/common/test} # Don't install tests %files %defattr(-,root,root) %doc ChangeLog COPYING COPYING.LESSER README %{python_sitelib}/* %changelog * Wed Sep 2 2015 mcihar@suse.cz - Update to 1.0.2: * declare setuptools requirement in __pkginfo__/setup.py * randomize order of test modules in pytest -t * restore __pkginfo__.version, which pylint < 1.4.4 uses * remove unused/deprecated modules: cli, contexts, corbautils, dbf, pyro_ext, xmlrpcutils. __pkginfo__ is no longer installed. * major layout change * use setuptools exclusively * 'logilab' is now a proper namespace package * modutils: basic support for namespace packages * registry: ambiguous selects now raise a specific exception * testlib: better support for non-pytest launchers * testlib: Tags() now work with py3k - Now needs setuptools to compile * Wed Feb 18 2015 mcihar@suse.cz - Upgrade to 0.63.2: * drop compatibility with python <= 2.5 (#264017) * fix textutils.py doctests for py3k * produce a clearer exception when dot is not installed (#253516) * make source python3-compatible (3.3+), without using 2to3. This introduces a dependency on six (#265740) * fix umessage header decoding on python 3.3 and newer (#149345) * WARNING: the compat module no longer exports 'callable', 'izip', 'imap', 'chain', 'sum', 'enumerate', 'frozenset', 'reversed', 'sorted', 'max', 'relpath', 'InheritableSet', or any subprocess-related names. * shellutils: restore py 2.5 compat by removing usage of class decorator * pytest: drop broken --coverage option * testlib: support for skipping whole test class and conditional skip, don't run setUp for skipped tests * configuration: load options in config file order (#185648) * Thu Jul 10 2014 toddrme2178@gmail.com - Update to 0.62.0 * modutils: cleanup_sys_modules returns the list of cleaned modules * Thu Feb 13 2014 speilicke@suse.com - Change upstream URL * Wed Feb 12 2014 dmueller@suse.com - update to 0.61: * pdf_ext: removed, it had no known users (CVE-2014-1838) * shellutils: fix tempfile issue in Execute, and deprecate it (CVE-2014-1839) * pytest: use 'env' to run the python interpreter * graph: ensure output is ordered on node and graph ids (#202314 * Fri Nov 1 2013 p.drouand@gmail.com - Update to version 0.60 * configuration: rename option_name method into option_attrname (#140667) * deprecation: new DeprecationManager class (closes #108205) * modutils: - fix typo causing name error in python3 / bad message in python2 (#136037) - fix python3.3 crash in file_from_modpath due to implementation change of imp.find_module wrt builtin modules (#137244) * testlib: use assertCountEqual instead of assertSameElements/assertItemsEqual (deprecated), fixing crash with python 3.3 (#144526) * graph: use codecs.open avoid crash when writing utf-8 data under python3 (#155138) - Use download Url as source * Fri Apr 27 2012 toddrme2178@gmail.com - Update to version 0.58.0 * new 'registry' module containing a backport of CubicWeb selectable objects registry (closes #84654) * testlib: DocTestCase fix builtins pollution after doctest execution. * shellutil: add argument to "ProgressBar.update" to tune cursor progression (closes #88981) * deprecated: new DeprecationWrapper class (closes #88942) - Change license to LGPL 2.1+ * Sat Feb 18 2012 toganm@opensuse.org - Update to version 0.57.1 * daemon: change $HOME after dropping privileges (closes #81297) * compat: method_type for py3k use instance of the class to * have a real instance method (closes: #79268) * Wed Nov 30 2011 toddrme2178@gmail.com - Add python 3 package * Wed Sep 21 2011 saschpe@suse.de - Update to version 0.56.2: * daemon: call initgroups/setgid before setuid (closes #74173) * decorators: @monkeypatch should produce a method object (closes #73920) * modutils: allow overriding of _getobj by suppressing mangling - Changes from version 0.56.1: * clcommands: #72450 --rc-file option doesn't work - Changes from version 0.56.0: * clcommands: make registration possible by class decoration * date: new datetime/delta <-> seconds/days conversion function * decorators: refactored @cached to allow usages such as @cached(cacheattr='_cachename') while keeping bw compat - Spec file cleanup: * Set license to GPL-2.0+ (SPDX style) * Removed outdated stuff (%%clean section, norootforbuild, authors, ...) * Packaged COPYING and COPYING.LESSER * Don't package testsuite * Mon Apr 11 2011 hpj@urpla.net - fix build - update to 0.55.2 * new function for password generation in shellutils * pyro_ext: allow to create a server without registering with a pyrons 2011-03-28 -- 0.55.1 * fix date.ustrftime break if year <= 1900 * fix graph.py incorrectly builds command lines using %%s to call dot * new functions to get UTC datetime / time 2011-02-18 -- 0.55.0 * new urllib2ext module providing a GSSAPI authentication handler, based on python-kerberos * graph: test and fix ordered_nodes() [closes #60288] * changelog: refactor ChangeLog class to ease overriding * testlib: Fix tag handling for generator. 2011-01-12 -- 0.54.0 * dropped python 2.3 support * daemon: we can now specify umask to daemonize function, and it return different exit code according to the process * pyro_ext: new ns_reregister function to ensure a name is still properly registered in the pyro name server * hg: new incoming/outgoing functions backward compatible with regards to mercurial version (eg hg 1.6 and earlier) * testlib/pytest: more deprecation and removed code. Still on the way to unittest2 * Fri Jan 7 2011 hpj@urpla.net - update to 0.53.0: * python3.x: first python3.x release * __init__: tempattr context manager * shellutils: progress context manager * Sun Oct 17 2010 dmueller@suse.de - update to 0.52.1: * configuration: fix pb with option names as unicode string w/ python 2.5. Makes OptionError available through the module * textutils: text_to_dict skip comments (# lines) * compat: dropped some 2.2 compat * modutils: Consider arch-specific installation for STD_LIB_DIR definition * Wed Sep 29 2010 dmueller@suse.de - update to 0.52.0: * testlib is now based on unittest2, to prepare its own extinction. Warning are printed so you can easily migration step by step. * restored python 2.3 compat in some modules, so one get a change to run pylint at least * textutils: use NFKD decomposition in unormalize() * logging_ext: don't try to use ansi colorized formatter when not in debug mode * logging_ext: init_log function splitted into smaller chunk to ease reuse in other contexts * clcommands: enhanced/cleaned api, nicer usage display * various pylint detected errors fixed * Thu Aug 26 2010 dmueller@suse.de - update to 0.51.0: * testlib: don't raise string exception (closes #35331) * hg: new module regrouping some mercurial utility functions * clcommands: refactored to get more object oriented api. * optparser: module is now deprecated, use clcommands instead * textutils: new split_url_or_path and text_to_dict functions * logging_ext: - init_log now accept optionaly any arbitrary handler - threshold default to DEBUG if debug flag is true and no threshold specified * date: new ustrftime implementation working around datetime limitaion on dates < 1900 * Mon Apr 26 2010 dmueller@suse.de - update to 0.50.1: * graph: - generate methods now takes an optional mapfile argument to generate html image maps - new ordered_nodes function taking a dependency graph dict as arguments and returning an ordered list of nodes * configuration: - nicer serialization of bytes / time option - may now contains several option provider with the same name - consider 'level' in option dict, --help displaying only option with level 0, and automatically adding --long-help options for higher levels * textutils: case insensitive apply_unit * sphinx_ext: new module usable as a sphinx pluggin and containing a new 'autodocstring' directive * ureports: output   instead of   for strict xhtml compliance * decorators: @cached propery copy inner function docstring * Wed Apr 7 2010 dmueller@suse.de - update to 0.49.0: * date: new 'totime' function * adbh, db, sqlgen modules moved to the new logilab-database package * pytest: when -x option is given, stop on the first error even if there are multiple test directories * adbh: added dbport optional argument to [backup|restore]_commands * db: fix date processing for SQLServer 2005 * testlib: improve XML assertion by using ElementTree parser and a new 'context' lines argument * date: fixed mx date time compat for date_range (#20651) * testlib: generative test should not be interrupted by self.skip() (#20648) * adbh: changed backup / restore api (BREAKS COMPAT): - backup_command is now backup_commands (eg return a list of commands) - each command returned in backup_commands/restore_commands may now be list that may be used as argument to subprocess.call, or a string which will the requires a subshell - new sql_rename_col method * deprecation: deprecated now takes an optional 'stacklevel' argument, default to 2 * date: some functions to ease python's datetime module usage have been backported from cubicweb * Thu Dec 31 2009 dmueller@suse.de - update to 0.46.0: * db / adbh: added SQL Server support using Pyodbc * db: - New optional extra_args argument to get_connection. - Support Windows Auth for SQLServer by giving extra_args='Trusted_Connection' to the sqlserver2005 driver * Tue Oct 20 2009 dmueller@suse.de - update to 0.45.1 (bnc#548418): * configuration: - proper bytes and time option types support - make Method usable as 'callback' value - fix #8849 Using plugins, options and .pylintrc crashes PyLint * Wed Sep 16 2009 poeml@suse.de - update to 0.45.0: 2009-08-26 -- 0.45.0 * added function for parsing XML processing instructions 2009-08-07 -- 0.44.0 * remove code deprecated for a while now * shellutils: replace confirm function by RawInput class /ASK singleton * deprecation: new deprecated decorator, replacing both obsolete and deprecated_function * Sun Aug 9 2009 coolo@novell.com - use new python macros * Wed Aug 5 2009 hpj@urpla.net - Update to 0.43.0: * dbf: a DBF reader which reads Visual Fox Pro DBF format with Memo field (module from Yusdi Santoso) * shellutils: - #9764 add title to shellutils.ProgressBar - #9796 new confirm function 2009-07-17 -- 0.42.0 * pyro_ext: new module for pyro utilities * adbh: fix default set_null_allowed implementation, new case_sensitive resource descriptor 2009-06-03 -- 0.41.0 * modutils: new extrapath argument to modpath_from_file (see function's docstring for explanation) * adbh: new alter_column_support flag, sql_set_null_allowed and sql_change_col_type methods 2009-05-28 -- 0.40.1 * date: handle both mx.DateTime and datetime representations * db: use sqlite native module's Binary, not StringIO 2009-05-14 -- 0.40.0 * python < 2.3 are now officially unsupported * #9162: new module with some sphinx utilities * #9166: use a global variable to control mx datetime / py datetime usage * db: add time adapter for pysqlite2, fix mysql bool and string handling * configuration: don't print default for store_true / store_false option or option with None as default 2009-04-07 -- 0.39.1 * fix #6760 umessage.decode_QP() crashes on unknown encoding 2009-03-25 -- 0.39.0 * fix #7915 (shellutils unusable under windows) * testlib: * new profile option using cProfile * allows to skip a module by raising TestSkipped from module import * modutils: locate modules in zip/egg archive * db: USE_MX_DATETIME global to control usage of mx.DateTime / py datetime 2009-01-26 -- 0.38.0 * setuptools / easy_install support! * removed some old backward compat code * adbh: new intersect_all_support attribute * contexts: new pushd context manager * shellutils: enhance acquire_lock method w/ race condition * configuration: fix case sensitivity pb w/ config file sections * pytest: reimplemented colorization 2009-01-08 -- 0.37.2 * configuration: encoding handling for configuration file generation * adbh: fix Datetime type map for mysql * logging_ext: drop lldebug level which shouldn't be there 2008-12-11 -- 0.37.1 * contexts: make the module syntactically correct wrt python2.4 2008-12-09 -- 0.37.0 * contexts: new module for context managers, keeping py <2.4 syntax compat for distribution (only `tempdir` cm for now) * tasksqueue: new module containing a class to handle prioritized tasks queue * proc: new module for process information / resource control * optik_ext: new time/bytes option types, using textutils conversion function * logging_ext: new set_log_methods / init_log utility functions 2008-10-30 -- 0.36.0 * configuration: - option yn is now behaving like a flag (i.e --ex : if ex.default=True and --ex in sys.args then ex.value=False) - new attribute hide in option (i.e --ex : if --ex has 'hide':True then the option will not be displayed in man or --help) * pytest: - add colors in display - new option --restart that skips tests that succeeded on last run * cache: new herits from dict class * decorators: add @require_version @require_module that skip test if decorators are not satisfied 2008-10-09 -- 0.35.3 * graph: new has_path method 2008-10-01 -- 0.35.2 * configuration: - fix #6011: lgc.configuration ignore customized option values - fix #3278: man page generation broken * dropped context.py module which broke the debian package when some python <2.5 is installed (#5979) * Fri Sep 12 2008 garloff@suse.de - Update to 0.35.0: * fix #5945: wrong edge proporties in graph.DotBackend * testlib: filter tests with tag decorator * shellutils: new simple unzip function * Fri Aug 22 2008 garloff@suse.de - Update to 0.34.0: * changelog properly adds new line at the end of each entry * add a with_tempdir decorator ensuring all temporary files and dirs are removed * improve DotBackend configuration. graphiz rendered can now be selected and additionnal graph parameter used * db: support of Decimal Type - Update to 0.33.0: * decorators: new @locked decorator * cache: make it thread safe, changed behaviour so that when cache size is 0 and __delitem__ is called, a KeyError is raised (more consistent) * testlib: - added assertIsNot, assertNone and assertNotNone assertion - added assertUnorderedIterableEquals - added assertDirEquals - various failure ouput improvement * umessage: umessage.date() may return unparsable string as is instead of None * compat: adds a max function taking 'key' as keyword argumento as in 2.5 * configuration: escape rest when printing for default value - Update to 0.32.0: * textutils: add the apply_unit fonction * testlib: - added a assertXMLEqualsTuple test assertion - added a assertIs assertion - Update to 0.31.0: * improved documentation and error messages * testlib: support a msg argument on more assertions, pysqlite2 as default * pytest: pytestconf.py for customization - Update to 0.30.0: * db: remember logged user on the connection * clcommands: commands may be hidden (eg not displayed in help), generic ListCommandsCommand useful to build bash completion helpers * changelog: module to parse ChangeLog file as this one, backported from logilab.devtools - Update to 0.29.1: * date: new nb_open_days function counting worked days between two dates * adbh: add -p option to mysql commands to ask for password - Update to 0.29.0: * adbh: mysql doesn't support ILIKE, implement list_indices for mysql * db: mysql adapter use mx DateTime when available, fix unicode handling - Update to 0.28.2: * testlib: restore python2.3 compatiblity - Update to 0.28.1: * testlib: introduce InnerTest class to name generative tests, fix generative tests description storage * pytest: fix -s option * modutils: included Stefan Rank's patch to deal with 2.4 relative import * configuration: don't give option's keywords not recognized by optparse, fix merge_options function - Update to 0.28.0: * date: new `add_days_worked` function * shellutils: new `chown` function * testlib: new `strict` argument to assertIsInstance * __init__: new `attrdict` and `nullobject` classes - Update tp 0.27.0: * deprecation: new class_moved utility function * interface: fix subinterface handling - Update to 0.26.1: * optparser: support --version at main command level * testlib: added man page for pytest * textutils: fix a bug in normalize{_,_rest_}paragraph which may cause infinite loop if an indent string containing some spaces is given - Update to 0.26.0: * db: binarywrap support * modutils: new LazyObject class - Update to 0.25.2: * adbh: new needs_from_clause variable on db helper - Update to 0.25.1: * pytest: new --profile option, setup module / teardown module hook, other fixes and enhancements * db: mysql support fixes * adbh: fix postgres list_indices implementation - Update to 0.25.0: * adbh: - list_tables implementation for sqlite - new list_indices, create_index, drop_index methods * restore python < 2.4 compat - Update to 0.24.0: * decorators: new classproperty decorator * adbh: new module containing advanced db helper which were in the "db" module, with additional registered procedures handling - Update to 0.23.1: * modutils: fix load_module_from_* (even with use_sys=False, it should try to get outer packages from sys.modules) - Update to 0.23.0: * db: - mark support_users and support_groups methods as obsolete in favor of users_support and groups_support attributes - new ilike_support property on dbms helpers - extended db helper api - completed mysql support * textutils: new unormalize function to normalize diacritical chars by their ascii equivalent * modutils: new load_module_from_file shortcut function * clcommands: pop_args accept None as value for expected_size_after, meaning remaining args should not be checked * interface: new extend function to dynamically add an implemented interface to a new style class * Mon Jul 16 2007 garloff@suse.de - Update to 0.22.2: * new 'typechanged' action for configuration.read_old_config - Update to 0.22.1: * important bug fix in bd.py * added history in pytest debugger sessions * fix pytest coverage bug * fix textutils test * fix a bug which provoqued a crash if devtools was not installed - Update to 0.22.0: * pytest improvements * shellutils: use shutil.move instead of os.rename as default action of mv * db: new `list_users` and `sql_drop_unique_constraint` methods i on advanced helpers * deprecation: new `obsolete` decorator - Update to 0.21.3: * fixed cached decorator to use __dict__ instead of attribute lookup, avoiding potential bugs with inheritance when using cached class methods - Update to 0.21.2: * fix ReST normalization (#3471) - Update to 0.21.1: * tree: make Node iterable (iter on its children) * configuration: fix #3197 (OptionsManagerMixin __init__ isn't passing correctly its "version" argument) * textutils: new 'rest' argument to normalize_text to better deal with ReST formated text * some packaging fixes - Update to 0.21.0: * db: - new optional keepownership argument to backup|restore_database methods - only register mxDatetime converters on psycopg2 adapter if mx.DateTime is available * moved some stuff which was in common __init__ file into specific module. At this occasion new "decorators" and "deprecation" modules has been added * deprecated fileutils.[files_by_ext,include_files_by_ext,exclude_files_by_ext] functions in favor of new function shellutils.find * mark the following modules for deprecation, they will be removed in a near version: - astutils: moved to astng - bind (never been used) - html: deprecated - logger/logservice: use logging module - monclient/monserver (not used anymore) - patricia (never been used) - twisted_distutils (not used anymore) * removed the following functions/methods which have been deprecated for a while now: - modutils.load_module_from_parts - textutils.searchall - tree.Node.leafs - fileutils.get_by_ext, filetutils.get_mode, fileutils.ensure_mode - umessage: more robust charset handling - Update to 0.20.2: * fileutils: new remove_dead_links function * date: add missing strptime import - Update to 0.20.1: * umessage: - new message_from_string function - fixed get_payload encoding bug * db: default postgres module is now psycopg2, which has been customized to return mx.Datetime objects for date/time related types - Update to 0.20.0: * db: - fixed date handling - new methods on advanced helper to generate backup commands * configuration: basic deprecated config handling support * new implementation of pytest * backport a dot backend from yams into a new "graph" module - Update to 0.19.3: * fixed bug in textutils.normalise_[text|paragraph] with unsplitable word larger than the maximum line size * added pytest.bat for windows installation * changed configuration.generate_config to include None values into the generated file * Tue Sep 26 2006 cthiel@suse.de - fix build with python 2.5 - update to version 0.19.2 * testlib: o fixed a bug in find_test making it returns some bad test names o new assertIsInstance method on TestCase * optik_ext: make it works if mx.DateTime is not installed, in which case the date type option won't be available * test fixes - changes from 0.19.0 to 0.19.1 * db: o fixed bug when querying boolean on sqlite using python's bool type o fixed time handling and added an adapter for DateTimeDeltaType o added "drop_on_commit" argument to create_temporary_table on db helper o added missing implementation of executemany on pysqlite2 wrapper to support pyargs correctly like execute * optik_ext: fixed "named" type option to support csv values and to return a dictionary - changes from 0.18.0 to 0.19.0 * new umessage module which provides a class similar to the standard email.Message class but returning unicode strings * new clcommands module to handle commands based command line tool (based on the configuration module) * new "date" otion type in optik_ext * new AttrObject in testlib to create objects in test with arbitrary attributes * add pytest to run project's tests and get rid of all runtests.py * add pytest option to enable design-by-contract using aspects * some enhancements to the configuration module - changes from 0.17.0 to 0.18.0 * added -c / --capture option to testlib.unittest_main * fixed bugs in lgc.configuration * optparser: added a OptionParser that extends optparse's with commands - changes from 0.16.1 to 0.17.0 * python2.5 compatibility (testlib.py + compat.py) * testlib.assertListEquals return all errors at once * new "password" option type in optik_ext * configuration: refactored to support interactive input of a configuration - changes from 0.16.0 to 0.16.1 * testlib: improved test collections * compat: added cmp argument to sorted - changes from 0.15.1 to 0.16.0 * testlib: o added a set of command line options (PYDEBUG is deprecated, use the -i/--pdb option, and added -x/--exitfirst option) o added support for generative tests * db: o fix get_connection parameter order and host/port handling o added .sql_temporary_table method to advanced func helpers o started a psycopg2 adapter * configuration: enhanced to handle default value in help and man pages generation (require python >= 2.4) - changes from 0.15.0 to 0.15.1 * db: add missing port handling to get_connection function and dbapimodule.connect methods * testlib: various fixes and minor improvments - changes from 0.14.1 to 0.15.0 * added "cached" decorator and a simple text progression bar into __init__ * added a simple text progress bar into __init__ * configuration: fixed man page generation when using python 2.4 * db: added pysqllite2 support, preconfigured to handle timestamp using mxDatetime and to correctly handle boolean types - changes from 0.14.0 to 0.14.1 * backported file support and add LOG_CRIT to builtin in logservice module - changes from 0.13.1 to 0.14.0 * renamed assertXML*Valid to assertXML*WellFormed and deprecated the old name * fixed modutils.load_module_from_* - changes from 0.13.0 to 0.13.1 * fix some tests, patch contributed by Marien Zwart * added ability to log into a file with make_logger() * Tue Feb 28 2006 jmatejek@suse.cz - updated to reflect python changes due to #149809 * Sat Jan 28 2006 garloff@suse.de - Update to 0.13.0: * testlib: ability to skip a test * configuration: - cleaner configuration file generation - refactoring so that we can have more control on file configuration loading using read_config_file and load_config_file instead of load_file_configuration * modutils: fix is_relative to return False when from_file is a file located somewhere in sys.path * compat: make set iterable and support more other set operations... * removed the astng sub-package, since it's now self-distributed as python-logilab-astng * Wed Jan 25 2006 mls@suse.de - converted neededforbuild to BuildRequires * Mon Dec 19 2005 garloff@suse.de - Update to 0.12.0: * shellutils: bug fix in mv() * compat: use the set module when available, added sorted() and reversed() * table: new methods and some optimizations * tree: renamed leafs() to leaves() * Fri Aug 12 2005 ro@suse.de - remove noarch for now * Wed Aug 3 2005 garloff@suse.de - Update to 0.11. - bzip2 sources. * Tue Jul 26 2005 garloff@suse.de - Make it a noarch package. * Sun Jul 17 2005 garloff@suse.de - Initial creation of package python-logilab-common 0.10.0.