diff options
author | CoprDistGit <infra@openeuler.org> | 2023-04-11 19:43:03 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-04-11 19:43:03 +0000 |
commit | 65700ce66ea32797da88717b6e8b09f0b60c4297 (patch) | |
tree | c1fd569b7667a3ec372c7e6b16162de68cca8dac | |
parent | e9fdda66f2bc5e0307d7c5f770fa3d5dca626f87 (diff) |
automatic import of python-mutablerecords
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-mutablerecords.spec | 186 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 188 insertions, 0 deletions
@@ -0,0 +1 @@ +/mutablerecords-0.4.1.tar.gz diff --git a/python-mutablerecords.spec b/python-mutablerecords.spec new file mode 100644 index 0000000..a63e536 --- /dev/null +++ b/python-mutablerecords.spec @@ -0,0 +1,186 @@ +%global _empty_manifest_terminate_build 0 +Name: python-mutablerecords +Version: 0.4.1 +Release: 1 +Summary: Mutable records +License: Apache 2.0 +URL: https://github.com/chainreactionmfg/mutablerecords +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/db/20/905640389fa42372d6c5200a6bb7a919511ef4669fd50203e05e6805479e/mutablerecords-0.4.1.tar.gz +BuildArch: noarch + + +%description +This is similar to collections.namedtuple, except it supports optional +attributes and mutability. A class definition is generated (with +\_\_slots\_\_, \_\_str\_\_ and other niceties), and can be used to +instantiate new records of that type. The record can also be subclassed +to add new attributes or to add methods to that data. +Sometimes, a Record definition is used to replace a simple \_\_init\_\_ +method that only takes N arguments and sets them as instance variables. +These \_\_init\_\_ methods are tedious to write and, even if you do, you +still have to write str, hash, eq functions, and set \_\_slots\_\_ to be +fully correct, but who has the time for that? With records, you get all +of that in a single declaration, which you can even inline as your base +class. + # This acts like a mutable namedtuple, taking the same arguments. + Simple = mutablerecords.Record('Simple', ['foo']) + # Now let's use a default argument. + SecondRecord = mutablerecords.Record('SecondRecord', ['attr1', 'attr2'], {'attr3': 0}) + foo = SecondRecord(1, 2, attr3=3) + # str(foo) --> 'SecondRecord(attr1=1, attr2=2, attr3=3)' + bar = SecondRecord(attr1=1, attr2=2, attr3=5) + # str(bar) --> 'SecondRecord(attr1=1, attr2=2, attr3=5)' + class Third(SecondRecord): + required_attributes = ['third1'] + optional_attributes = {'third2': 5} + # Third requires attr1, attr2, and third1. + baz = Third(1, 2, 3, third2=4) + # Here, second1 is required, so it goes before attr3: + # str(baz) --> 'Third(attr1=1, attr2=2, third1=3, attr3=0, third2=5)' + class OptionalMaker(mutablerecords.Record('Required', ['required'])): + required = None + required_attributes = ['other'] + opt = OptionalMaker(1) + # OptionalMaker has a class attribute that matches the name of a + # required_attribute (required), so it becomes an optional_attribute with a + # default equal to the attribute value (None). It also defines a new + # required attribute 'other', which is set in opt as 1: + # str(opt) --> 'OptionalMaker(other=1, required=None)' + opt2 = OptionalMaker(2, required=3) + # This time, opt2 has required set, too, which is still an attribute. + # str(opt2) --> 'OptionalMaker(other=2, required=3)' + +%package -n python3-mutablerecords +Summary: Mutable records +Provides: python-mutablerecords +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-mutablerecords +This is similar to collections.namedtuple, except it supports optional +attributes and mutability. A class definition is generated (with +\_\_slots\_\_, \_\_str\_\_ and other niceties), and can be used to +instantiate new records of that type. The record can also be subclassed +to add new attributes or to add methods to that data. +Sometimes, a Record definition is used to replace a simple \_\_init\_\_ +method that only takes N arguments and sets them as instance variables. +These \_\_init\_\_ methods are tedious to write and, even if you do, you +still have to write str, hash, eq functions, and set \_\_slots\_\_ to be +fully correct, but who has the time for that? With records, you get all +of that in a single declaration, which you can even inline as your base +class. + # This acts like a mutable namedtuple, taking the same arguments. + Simple = mutablerecords.Record('Simple', ['foo']) + # Now let's use a default argument. + SecondRecord = mutablerecords.Record('SecondRecord', ['attr1', 'attr2'], {'attr3': 0}) + foo = SecondRecord(1, 2, attr3=3) + # str(foo) --> 'SecondRecord(attr1=1, attr2=2, attr3=3)' + bar = SecondRecord(attr1=1, attr2=2, attr3=5) + # str(bar) --> 'SecondRecord(attr1=1, attr2=2, attr3=5)' + class Third(SecondRecord): + required_attributes = ['third1'] + optional_attributes = {'third2': 5} + # Third requires attr1, attr2, and third1. + baz = Third(1, 2, 3, third2=4) + # Here, second1 is required, so it goes before attr3: + # str(baz) --> 'Third(attr1=1, attr2=2, third1=3, attr3=0, third2=5)' + class OptionalMaker(mutablerecords.Record('Required', ['required'])): + required = None + required_attributes = ['other'] + opt = OptionalMaker(1) + # OptionalMaker has a class attribute that matches the name of a + # required_attribute (required), so it becomes an optional_attribute with a + # default equal to the attribute value (None). It also defines a new + # required attribute 'other', which is set in opt as 1: + # str(opt) --> 'OptionalMaker(other=1, required=None)' + opt2 = OptionalMaker(2, required=3) + # This time, opt2 has required set, too, which is still an attribute. + # str(opt2) --> 'OptionalMaker(other=2, required=3)' + +%package help +Summary: Development documents and examples for mutablerecords +Provides: python3-mutablerecords-doc +%description help +This is similar to collections.namedtuple, except it supports optional +attributes and mutability. A class definition is generated (with +\_\_slots\_\_, \_\_str\_\_ and other niceties), and can be used to +instantiate new records of that type. The record can also be subclassed +to add new attributes or to add methods to that data. +Sometimes, a Record definition is used to replace a simple \_\_init\_\_ +method that only takes N arguments and sets them as instance variables. +These \_\_init\_\_ methods are tedious to write and, even if you do, you +still have to write str, hash, eq functions, and set \_\_slots\_\_ to be +fully correct, but who has the time for that? With records, you get all +of that in a single declaration, which you can even inline as your base +class. + # This acts like a mutable namedtuple, taking the same arguments. + Simple = mutablerecords.Record('Simple', ['foo']) + # Now let's use a default argument. + SecondRecord = mutablerecords.Record('SecondRecord', ['attr1', 'attr2'], {'attr3': 0}) + foo = SecondRecord(1, 2, attr3=3) + # str(foo) --> 'SecondRecord(attr1=1, attr2=2, attr3=3)' + bar = SecondRecord(attr1=1, attr2=2, attr3=5) + # str(bar) --> 'SecondRecord(attr1=1, attr2=2, attr3=5)' + class Third(SecondRecord): + required_attributes = ['third1'] + optional_attributes = {'third2': 5} + # Third requires attr1, attr2, and third1. + baz = Third(1, 2, 3, third2=4) + # Here, second1 is required, so it goes before attr3: + # str(baz) --> 'Third(attr1=1, attr2=2, third1=3, attr3=0, third2=5)' + class OptionalMaker(mutablerecords.Record('Required', ['required'])): + required = None + required_attributes = ['other'] + opt = OptionalMaker(1) + # OptionalMaker has a class attribute that matches the name of a + # required_attribute (required), so it becomes an optional_attribute with a + # default equal to the attribute value (None). It also defines a new + # required attribute 'other', which is set in opt as 1: + # str(opt) --> 'OptionalMaker(other=1, required=None)' + opt2 = OptionalMaker(2, required=3) + # This time, opt2 has required set, too, which is still an attribute. + # str(opt2) --> 'OptionalMaker(other=2, required=3)' + +%prep +%autosetup -n mutablerecords-0.4.1 + +%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-mutablerecords -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 0.4.1-1 +- Package Spec generated @@ -0,0 +1 @@ +0b03f49a0d1e01572b9c1edf0d4cc581 mutablerecords-0.4.1.tar.gz |