summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-31 07:36:42 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-31 07:36:42 +0000
commit9e195d9c9e41516959d1ffac3c8e8a82a1b99318 (patch)
treeb0d2356f63331565556b247fd65cc6953bc0da8b
parent529b519c1d0f2d9065ca69a80ef8c4a267032797 (diff)
automatic import of python-music-metadata-territories
-rw-r--r--.gitignore1
-rw-r--r--python-music-metadata-territories.spec690
-rw-r--r--sources1
3 files changed, 692 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..8bdaa06 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/music_metadata_territories-22.6.tar.gz
diff --git a/python-music-metadata-territories.spec b/python-music-metadata-territories.spec
new file mode 100644
index 0000000..8901995
--- /dev/null
+++ b/python-music-metadata-territories.spec
@@ -0,0 +1,690 @@
+%global _empty_manifest_terminate_build 0
+Name: python-music-metadata-territories
+Version: 22.6
+Release: 1
+Summary: Music Metedata - Territory-related tools
+License: MIT License
+URL: https://matijakolaric.com/development/musicmetadata/
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/12/a5/79d12de545fea0477fc27db0079ff7e23d93af8887eae6ed88f08b77d9ef/music_metadata_territories-22.6.tar.gz
+BuildArch: noarch
+
+
+%description
+# Music Metadata - Territories
+
+[![Build Status](https://travis-ci.com/musicmetadata/territories.svg?branch=master)](https://travis-ci.com/musicmetadata/territories)
+[![Coverage Status](https://coveralls.io/repos/github/musicmetadata/territories/badge.svg?branch=master)](https://coveralls.io/github/musicmetadata/territories?branch=master)
+![GitHub](https://img.shields.io/github/license/musicmetadata/territories)
+![PyPI](https://img.shields.io/pypi/v/music-metadata-territories)
+
+A simple library for dealing with territory hierarchies used in music
+metadata, currently primarily focused on CISAC TIS.
+
+Conversion between TIS and ISO (DDEX!) territories will follow in the next release.
+
+## Classes
+
+It has only two classes:
+
+* `Territory` - the territory, e.g. World, Europe, Croatia
+* `TerritoryList` - this class makes including and excluding territories
+simpler, it also splits territories down when needed
+
+### Territory manipulation
+
+World excluding USA results in a minimal list of included territories:
+
+```python
+from music_metadata.territories.territory import Territory
+from music_metadata.territories.territory_list import TerritoryList
+
+world = Territory.get('2136')
+usa = Territory.get('US')
+
+l = TerritoryList()
+l.include(world)
+l.exclude(usa)
+
+for t in sorted(l, key=lambda x: x.name):
+ print(f'{t.tis_n:0>4}', t.name)
+```
+
+Result:
+
+```
+2100 AFRICA
+2106 ASIA
+0124 CANADA
+2113 CENTRAL AMERICA
+2120 EUROPE
+0484 MEXICO
+2130 OCEANIA
+2132 SOUTH AMERICA
+2134 WEST INDIES
+```
+
+It is simple to list all the countries as well:
+
+```python
+for t in sorted(l.countries, key=lambda x: x.name):
+ print(f'{t.tis_a:0>4}', t.name)
+```
+
+Result:
+
+```
+AF AFGHANISTAN
+AL ALBANIA
+DZ ALGERIA
+AD ANDORRA
+AO ANGOLA
+AG ANTIGUA AND BARBUDA
+AR ARGENTINA
+AM ARMENIA
+AU AUSTRALIA
+AT AUSTRIA
+...
+
+```
+The shorter version also works, yielding same results:
+```python
+from music_metadata.territories.territory_list import TerritoryList
+
+l = TerritoryList()
+l.include('2136') # WORLD
+l.exclude('US') # USA
+
+for t in sorted(l, key=lambda x: x.name):
+ print(f'{t.tis_n:0>4}', t.name)
+```
+
+One can check if a country is finally included in the list:
+
+```python
+usa in l
+```
+
+```Result:
+False
+```
+
+Works also with territories deeper in the structure, also with codes:
+
+```python
+'hr' in l
+```
+
+```Result:
+True
+```
+
+### Share manipulation
+
+Share calculations are also possible, by using a second argument to
+``TerritoryList.include`` and ``TerritoryList.add``. This second argument can
+be any objects that allows adding.
+
+```python
+from music_metadata.territories.territory import Territory
+from music_metadata.territories.territory_list import TerritoryList
+
+world = Territory.get('2136')
+usa = Territory.get('US')
+canada = Territory.get('CA')
+
+l = TerritoryList()
+l.include(world, 25)
+l.add(usa, 25)
+```
+
+So, we there is 25 for the whole world and additional 25 for the US.
+If we ask for values for the US and Canada:
+
+```python
+l[usa], l[canada]
+```
+
+We get 50 for the US and 25 for Canada.
+
+```Result:
+(50, 25)
+```
+
+Any numeric type will work out of the box,
+custom ``__add__`` method might be required for complex objects. Here is
+an example for a list of numeric fields:
+
+```python
+class Shares(list):
+ def __add__(self, other):
+ return Shares([self[i] + other[i] for i in range(len(self))])
+```
+
+## Compressing output
+
+Long lists can be trimmed, both if they have values and if they do not.
+Only territories with the same object will be compressed. Consider this:
+
+```python
+from music_metadata.territories.territory_list import TerritoryList
+
+l = TerritoryList()
+l.include('2136', 25)
+l.exclude('HR')
+l.add('US', 25) # US is now at 50
+l.include('HR', 25) # same as it used to be
+
+for t, v in l.items():
+ print(f'{t.name}: {v}')
+```
+
+```Result:
+ASIA: 25
+OCEANIA: 25
+AFRICA: 25
+MALTA: 25
+ICELAND: 25
+... 30 territories cut out ...
+MEXICO: 25
+UNITED STATES: 50
+CROATIA: 25
+```
+
+But, if we compress:
+
+```python
+l.compress()
+
+for t, v in l.items():
+ print(f'{t.name}: {v}')
+```
+
+```Result:
+CANADA: 25
+MEXICO: 25
+UNITED STATES: 50
+AFRICA: 25
+ASIA: 25
+EUROPE: 25
+OCEANIA: 25
+WEST INDIES: 25
+SOUTH AMERICA: 25
+CENTRAL AMERICA: 25
+```
+## Testing and demo wrapper
+
+You may test it online, no coding skills required: https://music-metadata.herokuapp.com/territories/
+
+The code for the demo is here: https://github.com/musicmetadata/web-wrapper
+
+
+%package -n python3-music-metadata-territories
+Summary: Music Metedata - Territory-related tools
+Provides: python-music-metadata-territories
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-music-metadata-territories
+# Music Metadata - Territories
+
+[![Build Status](https://travis-ci.com/musicmetadata/territories.svg?branch=master)](https://travis-ci.com/musicmetadata/territories)
+[![Coverage Status](https://coveralls.io/repos/github/musicmetadata/territories/badge.svg?branch=master)](https://coveralls.io/github/musicmetadata/territories?branch=master)
+![GitHub](https://img.shields.io/github/license/musicmetadata/territories)
+![PyPI](https://img.shields.io/pypi/v/music-metadata-territories)
+
+A simple library for dealing with territory hierarchies used in music
+metadata, currently primarily focused on CISAC TIS.
+
+Conversion between TIS and ISO (DDEX!) territories will follow in the next release.
+
+## Classes
+
+It has only two classes:
+
+* `Territory` - the territory, e.g. World, Europe, Croatia
+* `TerritoryList` - this class makes including and excluding territories
+simpler, it also splits territories down when needed
+
+### Territory manipulation
+
+World excluding USA results in a minimal list of included territories:
+
+```python
+from music_metadata.territories.territory import Territory
+from music_metadata.territories.territory_list import TerritoryList
+
+world = Territory.get('2136')
+usa = Territory.get('US')
+
+l = TerritoryList()
+l.include(world)
+l.exclude(usa)
+
+for t in sorted(l, key=lambda x: x.name):
+ print(f'{t.tis_n:0>4}', t.name)
+```
+
+Result:
+
+```
+2100 AFRICA
+2106 ASIA
+0124 CANADA
+2113 CENTRAL AMERICA
+2120 EUROPE
+0484 MEXICO
+2130 OCEANIA
+2132 SOUTH AMERICA
+2134 WEST INDIES
+```
+
+It is simple to list all the countries as well:
+
+```python
+for t in sorted(l.countries, key=lambda x: x.name):
+ print(f'{t.tis_a:0>4}', t.name)
+```
+
+Result:
+
+```
+AF AFGHANISTAN
+AL ALBANIA
+DZ ALGERIA
+AD ANDORRA
+AO ANGOLA
+AG ANTIGUA AND BARBUDA
+AR ARGENTINA
+AM ARMENIA
+AU AUSTRALIA
+AT AUSTRIA
+...
+
+```
+The shorter version also works, yielding same results:
+```python
+from music_metadata.territories.territory_list import TerritoryList
+
+l = TerritoryList()
+l.include('2136') # WORLD
+l.exclude('US') # USA
+
+for t in sorted(l, key=lambda x: x.name):
+ print(f'{t.tis_n:0>4}', t.name)
+```
+
+One can check if a country is finally included in the list:
+
+```python
+usa in l
+```
+
+```Result:
+False
+```
+
+Works also with territories deeper in the structure, also with codes:
+
+```python
+'hr' in l
+```
+
+```Result:
+True
+```
+
+### Share manipulation
+
+Share calculations are also possible, by using a second argument to
+``TerritoryList.include`` and ``TerritoryList.add``. This second argument can
+be any objects that allows adding.
+
+```python
+from music_metadata.territories.territory import Territory
+from music_metadata.territories.territory_list import TerritoryList
+
+world = Territory.get('2136')
+usa = Territory.get('US')
+canada = Territory.get('CA')
+
+l = TerritoryList()
+l.include(world, 25)
+l.add(usa, 25)
+```
+
+So, we there is 25 for the whole world and additional 25 for the US.
+If we ask for values for the US and Canada:
+
+```python
+l[usa], l[canada]
+```
+
+We get 50 for the US and 25 for Canada.
+
+```Result:
+(50, 25)
+```
+
+Any numeric type will work out of the box,
+custom ``__add__`` method might be required for complex objects. Here is
+an example for a list of numeric fields:
+
+```python
+class Shares(list):
+ def __add__(self, other):
+ return Shares([self[i] + other[i] for i in range(len(self))])
+```
+
+## Compressing output
+
+Long lists can be trimmed, both if they have values and if they do not.
+Only territories with the same object will be compressed. Consider this:
+
+```python
+from music_metadata.territories.territory_list import TerritoryList
+
+l = TerritoryList()
+l.include('2136', 25)
+l.exclude('HR')
+l.add('US', 25) # US is now at 50
+l.include('HR', 25) # same as it used to be
+
+for t, v in l.items():
+ print(f'{t.name}: {v}')
+```
+
+```Result:
+ASIA: 25
+OCEANIA: 25
+AFRICA: 25
+MALTA: 25
+ICELAND: 25
+... 30 territories cut out ...
+MEXICO: 25
+UNITED STATES: 50
+CROATIA: 25
+```
+
+But, if we compress:
+
+```python
+l.compress()
+
+for t, v in l.items():
+ print(f'{t.name}: {v}')
+```
+
+```Result:
+CANADA: 25
+MEXICO: 25
+UNITED STATES: 50
+AFRICA: 25
+ASIA: 25
+EUROPE: 25
+OCEANIA: 25
+WEST INDIES: 25
+SOUTH AMERICA: 25
+CENTRAL AMERICA: 25
+```
+## Testing and demo wrapper
+
+You may test it online, no coding skills required: https://music-metadata.herokuapp.com/territories/
+
+The code for the demo is here: https://github.com/musicmetadata/web-wrapper
+
+
+%package help
+Summary: Development documents and examples for music-metadata-territories
+Provides: python3-music-metadata-territories-doc
+%description help
+# Music Metadata - Territories
+
+[![Build Status](https://travis-ci.com/musicmetadata/territories.svg?branch=master)](https://travis-ci.com/musicmetadata/territories)
+[![Coverage Status](https://coveralls.io/repos/github/musicmetadata/territories/badge.svg?branch=master)](https://coveralls.io/github/musicmetadata/territories?branch=master)
+![GitHub](https://img.shields.io/github/license/musicmetadata/territories)
+![PyPI](https://img.shields.io/pypi/v/music-metadata-territories)
+
+A simple library for dealing with territory hierarchies used in music
+metadata, currently primarily focused on CISAC TIS.
+
+Conversion between TIS and ISO (DDEX!) territories will follow in the next release.
+
+## Classes
+
+It has only two classes:
+
+* `Territory` - the territory, e.g. World, Europe, Croatia
+* `TerritoryList` - this class makes including and excluding territories
+simpler, it also splits territories down when needed
+
+### Territory manipulation
+
+World excluding USA results in a minimal list of included territories:
+
+```python
+from music_metadata.territories.territory import Territory
+from music_metadata.territories.territory_list import TerritoryList
+
+world = Territory.get('2136')
+usa = Territory.get('US')
+
+l = TerritoryList()
+l.include(world)
+l.exclude(usa)
+
+for t in sorted(l, key=lambda x: x.name):
+ print(f'{t.tis_n:0>4}', t.name)
+```
+
+Result:
+
+```
+2100 AFRICA
+2106 ASIA
+0124 CANADA
+2113 CENTRAL AMERICA
+2120 EUROPE
+0484 MEXICO
+2130 OCEANIA
+2132 SOUTH AMERICA
+2134 WEST INDIES
+```
+
+It is simple to list all the countries as well:
+
+```python
+for t in sorted(l.countries, key=lambda x: x.name):
+ print(f'{t.tis_a:0>4}', t.name)
+```
+
+Result:
+
+```
+AF AFGHANISTAN
+AL ALBANIA
+DZ ALGERIA
+AD ANDORRA
+AO ANGOLA
+AG ANTIGUA AND BARBUDA
+AR ARGENTINA
+AM ARMENIA
+AU AUSTRALIA
+AT AUSTRIA
+...
+
+```
+The shorter version also works, yielding same results:
+```python
+from music_metadata.territories.territory_list import TerritoryList
+
+l = TerritoryList()
+l.include('2136') # WORLD
+l.exclude('US') # USA
+
+for t in sorted(l, key=lambda x: x.name):
+ print(f'{t.tis_n:0>4}', t.name)
+```
+
+One can check if a country is finally included in the list:
+
+```python
+usa in l
+```
+
+```Result:
+False
+```
+
+Works also with territories deeper in the structure, also with codes:
+
+```python
+'hr' in l
+```
+
+```Result:
+True
+```
+
+### Share manipulation
+
+Share calculations are also possible, by using a second argument to
+``TerritoryList.include`` and ``TerritoryList.add``. This second argument can
+be any objects that allows adding.
+
+```python
+from music_metadata.territories.territory import Territory
+from music_metadata.territories.territory_list import TerritoryList
+
+world = Territory.get('2136')
+usa = Territory.get('US')
+canada = Territory.get('CA')
+
+l = TerritoryList()
+l.include(world, 25)
+l.add(usa, 25)
+```
+
+So, we there is 25 for the whole world and additional 25 for the US.
+If we ask for values for the US and Canada:
+
+```python
+l[usa], l[canada]
+```
+
+We get 50 for the US and 25 for Canada.
+
+```Result:
+(50, 25)
+```
+
+Any numeric type will work out of the box,
+custom ``__add__`` method might be required for complex objects. Here is
+an example for a list of numeric fields:
+
+```python
+class Shares(list):
+ def __add__(self, other):
+ return Shares([self[i] + other[i] for i in range(len(self))])
+```
+
+## Compressing output
+
+Long lists can be trimmed, both if they have values and if they do not.
+Only territories with the same object will be compressed. Consider this:
+
+```python
+from music_metadata.territories.territory_list import TerritoryList
+
+l = TerritoryList()
+l.include('2136', 25)
+l.exclude('HR')
+l.add('US', 25) # US is now at 50
+l.include('HR', 25) # same as it used to be
+
+for t, v in l.items():
+ print(f'{t.name}: {v}')
+```
+
+```Result:
+ASIA: 25
+OCEANIA: 25
+AFRICA: 25
+MALTA: 25
+ICELAND: 25
+... 30 territories cut out ...
+MEXICO: 25
+UNITED STATES: 50
+CROATIA: 25
+```
+
+But, if we compress:
+
+```python
+l.compress()
+
+for t, v in l.items():
+ print(f'{t.name}: {v}')
+```
+
+```Result:
+CANADA: 25
+MEXICO: 25
+UNITED STATES: 50
+AFRICA: 25
+ASIA: 25
+EUROPE: 25
+OCEANIA: 25
+WEST INDIES: 25
+SOUTH AMERICA: 25
+CENTRAL AMERICA: 25
+```
+## Testing and demo wrapper
+
+You may test it online, no coding skills required: https://music-metadata.herokuapp.com/territories/
+
+The code for the demo is here: https://github.com/musicmetadata/web-wrapper
+
+
+%prep
+%autosetup -n music-metadata-territories-22.6
+
+%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-music-metadata-territories -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed May 31 2023 Python_Bot <Python_Bot@openeuler.org> - 22.6-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..456acc0
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+ba7695bfc986fe915bcc8487895a897a music_metadata_territories-22.6.tar.gz