%global _empty_manifest_terminate_build 0 Name: python-value Version: 0.1.0 Release: 1 Summary: Implementation of Value Object pattern License: MIT URL: http://github.com/halst/value Source0: https://mirrors.nju.edu.cn/pypi/web/packages/13/d5/33f2063de7e21cf41cd6c029d2212cea9da7062e45cad37b3942bf935f7a/value-0.1.0.tar.gz BuildArch: noarch %description `From Wikipedia `_: A **value object** is a small object that represents a simple entity whose equality isn't based on identity: i.e. two value objects are equal when they have the same value, not necessarily being the same object. By default (if you subclass from ``object``) Python follows "reference semantics", i.e. two objects are equal if they are the same instance. ``Value`` class implements "value semantics", i.e. if you subclass it your objects will be equall if they hold the same data. This implementation will also inspect your ``__init__`` signature to automatically assign instance variables and produce a nice ``__repr__`` for your objects, dogether with a suitable ``__hash__`` implementation. Instead of asigning each instance variable manually: >>> class Date(object): ``Value`` defines ``__new__`` that will look at your ``__init__`` signature and assign instance variables based on it: >>> from value import Value >>> class Date(Value): >>> Date(2013, 3).year == 2013 True >>> Date(2013, 3).month == 3 True >>> Date(2013, 3).day == 1 True ``Value`` defines ``__eq__`` and ``__ne__`` to implement value object semantics, i.e. objects holding the same data are compared equal: >>> Date(2013, 3, 18) == Date(2013, 3, 18) True >>> Date(2013, 3, 18) != Date(1988) True ``Value`` also defines ``__repr__`` for you based on ``__init__`` signature: >>> repr(Date(2013, 3, 18)) 'Date(2013, 3, 18)' >>> repr(Date(1988, 1, 1)) 'Date(1988)' ``Value`` also defines ``__hash__`` for you, so that instances could be used in sets and as dictionary keys. %package -n python3-value Summary: Implementation of Value Object pattern Provides: python-value BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-value `From Wikipedia `_: A **value object** is a small object that represents a simple entity whose equality isn't based on identity: i.e. two value objects are equal when they have the same value, not necessarily being the same object. By default (if you subclass from ``object``) Python follows "reference semantics", i.e. two objects are equal if they are the same instance. ``Value`` class implements "value semantics", i.e. if you subclass it your objects will be equall if they hold the same data. This implementation will also inspect your ``__init__`` signature to automatically assign instance variables and produce a nice ``__repr__`` for your objects, dogether with a suitable ``__hash__`` implementation. Instead of asigning each instance variable manually: >>> class Date(object): ``Value`` defines ``__new__`` that will look at your ``__init__`` signature and assign instance variables based on it: >>> from value import Value >>> class Date(Value): >>> Date(2013, 3).year == 2013 True >>> Date(2013, 3).month == 3 True >>> Date(2013, 3).day == 1 True ``Value`` defines ``__eq__`` and ``__ne__`` to implement value object semantics, i.e. objects holding the same data are compared equal: >>> Date(2013, 3, 18) == Date(2013, 3, 18) True >>> Date(2013, 3, 18) != Date(1988) True ``Value`` also defines ``__repr__`` for you based on ``__init__`` signature: >>> repr(Date(2013, 3, 18)) 'Date(2013, 3, 18)' >>> repr(Date(1988, 1, 1)) 'Date(1988)' ``Value`` also defines ``__hash__`` for you, so that instances could be used in sets and as dictionary keys. %package help Summary: Development documents and examples for value Provides: python3-value-doc %description help `From Wikipedia `_: A **value object** is a small object that represents a simple entity whose equality isn't based on identity: i.e. two value objects are equal when they have the same value, not necessarily being the same object. By default (if you subclass from ``object``) Python follows "reference semantics", i.e. two objects are equal if they are the same instance. ``Value`` class implements "value semantics", i.e. if you subclass it your objects will be equall if they hold the same data. This implementation will also inspect your ``__init__`` signature to automatically assign instance variables and produce a nice ``__repr__`` for your objects, dogether with a suitable ``__hash__`` implementation. Instead of asigning each instance variable manually: >>> class Date(object): ``Value`` defines ``__new__`` that will look at your ``__init__`` signature and assign instance variables based on it: >>> from value import Value >>> class Date(Value): >>> Date(2013, 3).year == 2013 True >>> Date(2013, 3).month == 3 True >>> Date(2013, 3).day == 1 True ``Value`` defines ``__eq__`` and ``__ne__`` to implement value object semantics, i.e. objects holding the same data are compared equal: >>> Date(2013, 3, 18) == Date(2013, 3, 18) True >>> Date(2013, 3, 18) != Date(1988) True ``Value`` also defines ``__repr__`` for you based on ``__init__`` signature: >>> repr(Date(2013, 3, 18)) 'Date(2013, 3, 18)' >>> repr(Date(1988, 1, 1)) 'Date(1988)' ``Value`` also defines ``__hash__`` for you, so that instances could be used in sets and as dictionary keys. %prep %autosetup -n value-0.1.0 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-value -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Wed Apr 12 2023 Python_Bot - 0.1.0-1 - Package Spec generated