# # spec file for package python-fields # # Copyright (c) 2019 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 https://bugs.opensuse.org/ # %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-fields Version: 5.0.0 Release: 3.2 Summary: Container class boilerplate killer License: BSD-2-Clause Group: Development/Languages/Python URL: https://github.com/ionelmc/python-fields Source: https://files.pythonhosted.org/packages/source/f/fields/fields-%{version}.tar.gz BuildRequires: %{python_module pytest} BuildRequires: %{python_module setuptools} BuildRequires: fdupes BuildRequires: python-rpm-macros BuildArch: noarch %python_subpackages %description Container class boilerplate killer. Features: * Human-readable ``__repr__`` * Complete set of comparison methods * Keyword and positional argument support. Works like a normal class - you can override just about anything in the subclass (eg: a custom ``__init__``). In contrast, `hynek/characteristic `_ forces different call schematics and calls your ``__init__`` with different arguments. %prep %setup -q -n fields-%{version} # do not do benchmark tests, in virtual they don't make much sense and we # avoid cycle with pytest-benchmark sed -i -e '/--benchmark-disable/d' setup.cfg # do not run doctests, needless dependencies pulled in that way sed -i -e '/doctest/d' setup.cfg sed -i -e 's/\[pytest\]/\[tools:pytest\]/g' setup.cfg rm tests/test_perf.py %build %python_build %install %python_install %python_expand %fdupes %{buildroot}%{$python_sitelib} %check %pytest %files %{python_files} %license LICENSE %doc AUTHORS.rst CHANGELOG.rst README.rst %{python_sitelib}/* %changelog * Fri Jul 19 2019 Tomáš Chvátal - Fix building with pytest4+ * Thu Mar 28 2019 Tomáš Chvátal - Remove pytest-benchmark dependency to avoid buildcycle * Wed Feb 13 2019 Tomáš Chvátal - Clean up with spec-cleaner - Make sure the tests are not conditioned - Use %%license macro * Wed Oct 18 2017 toddrme2178@gmail.com - Implement single-spec version - Update to 5.0.0 * See changelog at https://github.com/ionelmc/python-fields/blob/v5.0.0/CHANGELOG.rst * Thu Sep 3 2015 toddrme2178@gmail.com - Update to 2.4.0 (2015-06-13) * Similarly to ``fields.Fields``, added three new bases: * ``fields.BareFields`` (implements ``__init__``). * ``fields.ComparableMixin`` (implements ``__eq__``, ``__ne__``, ``__lt__``, ``__gt__``, ``__le__``, ``__ge__`` and ``__hash__``). * ``fields.PrintableMixin`` (implements ``__repr__``). * Improved reference section in the docs. * Added ``fields.ConvertibleFields`` and ``fields.ConvertibleMixin``. They have two convenience properties: ``as_dict`` and `as_tuple``. - Update to 2.3.0 (2015-01-20) * Allowed overriding ``__slots__`` in ``SlotsFields`` subclasses. - Update to 2.2.0 (2015-01-19) * Added ``make_init_func`` as an optional argument to ``class_sealer``. Rename the ``__base__`` option to just ``base``. - Update to 2.1.1 (2015-01-19) * Removed bogus ``console_scripts`` entrypoint. - Update to 2.1.0 (2015-01-09) * Added ``SlotsFields`` (same as ``Fields`` but automatically adds ``__slots__`` for memory efficiency on CPython). * Added support for default argument to Tuple. - Update to 2.0.0 (2014-10-16) * Made the __init__ in the FieldsBase way faster (used for ``fields.Fields``). * Moved ``RegexValidate`` in ``fields.extras``. - Update to 1.0.0 (2014-10-05) * Lots of internal changes, the metaclass is not created in a closure anymore. No more closures. * Added ``RegexValidate`` container creator (should be taken as an example on using the Factory metaclass). * Added support for using multiple containers as baseclasses. * Added a ``super()`` `sink` so that ``super().__init__(*args, **kwargs)`` always works. Everything inherits from a baseclass that has an ``__init__`` that can take any argument (unlike ``object.__init__``). This allows for flexible usage. * Added validation so that you can't use conflicting field layout when using multiple containers as the baseclass. * Changed the __init__ function in the class container so it works like a python function w.r.t. positional and keyword arguments. Example: ``class MyContainer(Fields.a.b.c[1].d[2])`` will function the same way as ``def func(a, b, c=1, d=2)`` would when arguments are passed in. You can now use ``MyContainer(1, 2, 3, 4)`` (everything positional) or ``MyContainer(1, 2, 3, d=4)`` (mixed). * Wed Jul 30 2014 toddrme2178@gmail.com - Initial version