diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-multi_key_dict.spec | 122 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 124 insertions, 0 deletions
@@ -0,0 +1 @@ +/multi_key_dict-2.0.3.tar.gz diff --git a/python-multi_key_dict.spec b/python-multi_key_dict.spec new file mode 100644 index 0000000..47f3de8 --- /dev/null +++ b/python-multi_key_dict.spec @@ -0,0 +1,122 @@ +%global _empty_manifest_terminate_build 0 +Name: python-multi_key_dict +Version: 2.0.3 +Release: 1 +Summary: Multi key dictionary implementation +License: License :: OSI Approved :: MIT License (http://opensource.org/licenses/MIT) +URL: https://github.com/formiaczek/multi_key_dict +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/6d/97/2e9c47ca1bbde6f09cb18feb887d5102e8eacd82fbc397c77b221f27a2ab/multi_key_dict-2.0.3.tar.gz +BuildArch: noarch + + +%description +Implementation of a multi-key dictionary, i.e.: +(key1[,key2, ..]) => value +This dictionary has a similar interface to the standard dictionary => but is extended to support multiple keys referring to the same element. +If element is created using multiple keys, e.g.: + from multi_key_dict import multi_key_dict + k = multi_key_dict() + k[1000, 'kilo', 'k'] = 'kilo (x1000)' + print k[1000] # will print 'kilo (x1000)' + print k['k'] # will also print 'kilo (x1000)' + # the same way objects can be updated, deleted: + # and if an object is updated using one key, the new value will + # be accessible using any other key, e.g. for example above: + k['kilo'] = 'kilo' + print k[1000] # will now print 'kilo' as value was updated +These elements can be accessed using either of those keys (e.g for read/update/deletion). +Multi-key dict provides also extended interface for iterating over items and keys (e.g. by the key type), which might be useful when creating, e.g. dictionaries with index-name key pair allowing to iterate over items using either: names or indexes. +It can be useful for many many other similar use-cases, and there is no limit to the number of keys used to map to the value. +There are few other useful methods, e.g. to iterate over dictionary (by/using) selected key type, finding other keys mapping to the same value etc. Refer to example/test code to see it in action. + +%package -n python3-multi_key_dict +Summary: Multi key dictionary implementation +Provides: python-multi_key_dict +BuildRequires: python3-devel +BuildRequires: python3-setuptools +%description -n python3-multi_key_dict +Implementation of a multi-key dictionary, i.e.: +(key1[,key2, ..]) => value +This dictionary has a similar interface to the standard dictionary => but is extended to support multiple keys referring to the same element. +If element is created using multiple keys, e.g.: + from multi_key_dict import multi_key_dict + k = multi_key_dict() + k[1000, 'kilo', 'k'] = 'kilo (x1000)' + print k[1000] # will print 'kilo (x1000)' + print k['k'] # will also print 'kilo (x1000)' + # the same way objects can be updated, deleted: + # and if an object is updated using one key, the new value will + # be accessible using any other key, e.g. for example above: + k['kilo'] = 'kilo' + print k[1000] # will now print 'kilo' as value was updated +These elements can be accessed using either of those keys (e.g for read/update/deletion). +Multi-key dict provides also extended interface for iterating over items and keys (e.g. by the key type), which might be useful when creating, e.g. dictionaries with index-name key pair allowing to iterate over items using either: names or indexes. +It can be useful for many many other similar use-cases, and there is no limit to the number of keys used to map to the value. +There are few other useful methods, e.g. to iterate over dictionary (by/using) selected key type, finding other keys mapping to the same value etc. Refer to example/test code to see it in action. + +%package help +Summary: Development documents and examples for multi_key_dict +Provides: python3-multi_key_dict-doc +%description help +Implementation of a multi-key dictionary, i.e.: +(key1[,key2, ..]) => value +This dictionary has a similar interface to the standard dictionary => but is extended to support multiple keys referring to the same element. +If element is created using multiple keys, e.g.: + from multi_key_dict import multi_key_dict + k = multi_key_dict() + k[1000, 'kilo', 'k'] = 'kilo (x1000)' + print k[1000] # will print 'kilo (x1000)' + print k['k'] # will also print 'kilo (x1000)' + # the same way objects can be updated, deleted: + # and if an object is updated using one key, the new value will + # be accessible using any other key, e.g. for example above: + k['kilo'] = 'kilo' + print k[1000] # will now print 'kilo' as value was updated +These elements can be accessed using either of those keys (e.g for read/update/deletion). +Multi-key dict provides also extended interface for iterating over items and keys (e.g. by the key type), which might be useful when creating, e.g. dictionaries with index-name key pair allowing to iterate over items using either: names or indexes. +It can be useful for many many other similar use-cases, and there is no limit to the number of keys used to map to the value. +There are few other useful methods, e.g. to iterate over dictionary (by/using) selected key type, finding other keys mapping to the same value etc. Refer to example/test code to see it in action. + +%prep +%autosetup -n multi_key_dict-2.0.3 + +%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-multi_key_dict -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Sat Feb 25 2023 Python_Bot <Python_Bot@openeuler.org> - 2.0.3-1 +- Package Spec generated @@ -0,0 +1 @@ +fea179deaaf496872c9db77dab30d523 multi_key_dict-2.0.3.tar.gz |