summaryrefslogtreecommitdiff
path: root/python-py3a.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-py3a.spec')
-rw-r--r--python-py3a.spec360
1 files changed, 360 insertions, 0 deletions
diff --git a/python-py3a.spec b/python-py3a.spec
new file mode 100644
index 0000000..491719d
--- /dev/null
+++ b/python-py3a.spec
@@ -0,0 +1,360 @@
+%global _empty_manifest_terminate_build 0
+Name: python-py3a
+Version: 1.0.0
+Release: 1
+Summary: Lib for reading and writing 3a format
+License: GPLv3
+URL: https://github.com/DomesticMoth/py3a
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/76/05/c2e9eda0ca77e0ad0965986e0de8e7fe2505da790394e8fb7cc6fa83a6ac/py3a-1.0.0.tar.gz
+BuildArch: noarch
+
+
+%description
+# py3a
+This library provides a structural representation of [3a ascii animations format](https://github.com/DomesticMoth/3a) and methods for reading and writing it.
+This lib on [pypi](https://pypi.org/project/py3a)
+- [Usage](#usage)
+- [Short API description](#short-api-description)
+ - [Structs](#structs)
+ - [Functions](#functions)
+## Usage
+Install
+```
+$ pip install py3a
+```
+Here's a simple example that parsing a string in 3a format and displaying a header:
+```python
+import py3a
+
+COLORTABLE_EXAMPLE = """
+width 32
+height 19
+loop false
+colors full
+title colortable demo
+author Moth
+
+in ' ab ' ffffffffffffffffffffffffffffffff00000000000000000000000000000000
+a-foreground, b-background ffffffffffffffffffffffffffffffff00000000000000000000000000000000
+ ffffffffffffffffffffffffffffffff00000000000000000000000000000000
+ 00 01 02 03 04 05 06 07 0000000000000000000000000000000000001111222233334444555566667777
+ 10 11 12 13 14 15 16 17 1111111111111111111111111111111100001111222233334444555566667777
+ 20 21 22 23 24 25 26 27 2222222222222222222222222222222200001111222233334444555566667777
+ 30 31 32 33 34 35 36 37 3333333333333333333333333333333300001111222233334444555566667777
+ 40 41 42 43 44 45 46 47 4444444444444444444444444444444400001111222233334444555566667777
+ 50 51 52 53 54 55 56 57 5555555555555555555555555555555500001111222233334444555566667777
+ 60 61 62 63 64 65 66 67 6666666666666666666666666666666600001111222233334444555566667777
+ 70 71 72 73 74 75 76 77 7777777777777777777777777777777700001111222233334444555566667777
+ 80 81 82 83 84 85 86 87 8888888888888888888888888888888800001111222233334444555566667777
+ 90 91 92 93 94 95 96 97 9999999999999999999999999999999900001111222233334444555566667777
+ a0 a1 a2 a3 a4 a5 a6 a7 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa00001111222233334444555566667777
+ b0 b1 b2 b3 b4 b5 b6 b7 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb00001111222233334444555566667777
+ c0 c1 c2 c3 c4 c5 c6 c7 cccccccccccccccccccccccccccccccc00001111222233334444555566667777
+ d0 d1 d2 d3 d4 d5 d6 d7 dddddddddddddddddddddddddddddddd00001111222233334444555566667777
+ e0 e1 e2 e3 e4 e5 e6 e7 eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee00001111222233334444555566667777
+ f0 f1 f2 f3 f4 f5 f6 f7 ffffffffffffffffffffffffffffffff00001111222233334444555566667777"""
+
+
+if __name__ == "__main__":
+ art = py3a.Art.load(COLORTABLE_EXAMPLE)
+ print(art.header)
+```
+## Short API description
+### Structs
+The core of the library is the Art class, which implements the 3a structure:
+```python
+class Art:
+ def __init__ (self, header: Header, body: Body):
+ self.header = header
+ self.body = body
+```
+Header type contains information about the header of 3a file:
+```python
+class Header:
+ def __init__ (self, width: int, height: int, delay: int, loop_enable: bool, color_mod: ColorMod,
+ utf8: bool, datacols: int, preview: int, audio: str, title: str, author: str):
+ self.width = width
+ self.height = height
+ self.delay = delay
+ self.loop_enable = loop_enable
+ self.color_mod = color_mod
+ self.utf8 = utf8
+ self.datacols = datacols
+ self.preview = preview
+ self.audio = audio
+ self.title = title
+ self.author = author
+```
+Body class contains a list of frames, where each frame is a list of rows, and each row is a list of row fragments:
+```python
+Row = typing.List[RowFragment]
+
+Frame = typing.List[Row]
+
+class Body:
+ def __init__ (self, frames: typing.List[Frame] ):
+ self.frames = frames
+```
+Each RowFragment is a set of consecutive symbols with the same values of foreground and background colors:
+```python
+class RowFragment:
+ def __init__ (self, text: str, fg_color: Color, bg_color: Color):
+ self.text = text
+ self.fg_color = fg_color
+ self.bg_color = bg_color
+```
+### Methods
+`Art.load` and `art.save` methods allow you to convert strings to `Art` and back.
+`Art.load_file` and `art.save_file` methods allow you to read 3a files to `Art` and write `Art` to 3a files.
+
+
+%package -n python3-py3a
+Summary: Lib for reading and writing 3a format
+Provides: python-py3a
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-py3a
+# py3a
+This library provides a structural representation of [3a ascii animations format](https://github.com/DomesticMoth/3a) and methods for reading and writing it.
+This lib on [pypi](https://pypi.org/project/py3a)
+- [Usage](#usage)
+- [Short API description](#short-api-description)
+ - [Structs](#structs)
+ - [Functions](#functions)
+## Usage
+Install
+```
+$ pip install py3a
+```
+Here's a simple example that parsing a string in 3a format and displaying a header:
+```python
+import py3a
+
+COLORTABLE_EXAMPLE = """
+width 32
+height 19
+loop false
+colors full
+title colortable demo
+author Moth
+
+in ' ab ' ffffffffffffffffffffffffffffffff00000000000000000000000000000000
+a-foreground, b-background ffffffffffffffffffffffffffffffff00000000000000000000000000000000
+ ffffffffffffffffffffffffffffffff00000000000000000000000000000000
+ 00 01 02 03 04 05 06 07 0000000000000000000000000000000000001111222233334444555566667777
+ 10 11 12 13 14 15 16 17 1111111111111111111111111111111100001111222233334444555566667777
+ 20 21 22 23 24 25 26 27 2222222222222222222222222222222200001111222233334444555566667777
+ 30 31 32 33 34 35 36 37 3333333333333333333333333333333300001111222233334444555566667777
+ 40 41 42 43 44 45 46 47 4444444444444444444444444444444400001111222233334444555566667777
+ 50 51 52 53 54 55 56 57 5555555555555555555555555555555500001111222233334444555566667777
+ 60 61 62 63 64 65 66 67 6666666666666666666666666666666600001111222233334444555566667777
+ 70 71 72 73 74 75 76 77 7777777777777777777777777777777700001111222233334444555566667777
+ 80 81 82 83 84 85 86 87 8888888888888888888888888888888800001111222233334444555566667777
+ 90 91 92 93 94 95 96 97 9999999999999999999999999999999900001111222233334444555566667777
+ a0 a1 a2 a3 a4 a5 a6 a7 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa00001111222233334444555566667777
+ b0 b1 b2 b3 b4 b5 b6 b7 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb00001111222233334444555566667777
+ c0 c1 c2 c3 c4 c5 c6 c7 cccccccccccccccccccccccccccccccc00001111222233334444555566667777
+ d0 d1 d2 d3 d4 d5 d6 d7 dddddddddddddddddddddddddddddddd00001111222233334444555566667777
+ e0 e1 e2 e3 e4 e5 e6 e7 eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee00001111222233334444555566667777
+ f0 f1 f2 f3 f4 f5 f6 f7 ffffffffffffffffffffffffffffffff00001111222233334444555566667777"""
+
+
+if __name__ == "__main__":
+ art = py3a.Art.load(COLORTABLE_EXAMPLE)
+ print(art.header)
+```
+## Short API description
+### Structs
+The core of the library is the Art class, which implements the 3a structure:
+```python
+class Art:
+ def __init__ (self, header: Header, body: Body):
+ self.header = header
+ self.body = body
+```
+Header type contains information about the header of 3a file:
+```python
+class Header:
+ def __init__ (self, width: int, height: int, delay: int, loop_enable: bool, color_mod: ColorMod,
+ utf8: bool, datacols: int, preview: int, audio: str, title: str, author: str):
+ self.width = width
+ self.height = height
+ self.delay = delay
+ self.loop_enable = loop_enable
+ self.color_mod = color_mod
+ self.utf8 = utf8
+ self.datacols = datacols
+ self.preview = preview
+ self.audio = audio
+ self.title = title
+ self.author = author
+```
+Body class contains a list of frames, where each frame is a list of rows, and each row is a list of row fragments:
+```python
+Row = typing.List[RowFragment]
+
+Frame = typing.List[Row]
+
+class Body:
+ def __init__ (self, frames: typing.List[Frame] ):
+ self.frames = frames
+```
+Each RowFragment is a set of consecutive symbols with the same values of foreground and background colors:
+```python
+class RowFragment:
+ def __init__ (self, text: str, fg_color: Color, bg_color: Color):
+ self.text = text
+ self.fg_color = fg_color
+ self.bg_color = bg_color
+```
+### Methods
+`Art.load` and `art.save` methods allow you to convert strings to `Art` and back.
+`Art.load_file` and `art.save_file` methods allow you to read 3a files to `Art` and write `Art` to 3a files.
+
+
+%package help
+Summary: Development documents and examples for py3a
+Provides: python3-py3a-doc
+%description help
+# py3a
+This library provides a structural representation of [3a ascii animations format](https://github.com/DomesticMoth/3a) and methods for reading and writing it.
+This lib on [pypi](https://pypi.org/project/py3a)
+- [Usage](#usage)
+- [Short API description](#short-api-description)
+ - [Structs](#structs)
+ - [Functions](#functions)
+## Usage
+Install
+```
+$ pip install py3a
+```
+Here's a simple example that parsing a string in 3a format and displaying a header:
+```python
+import py3a
+
+COLORTABLE_EXAMPLE = """
+width 32
+height 19
+loop false
+colors full
+title colortable demo
+author Moth
+
+in ' ab ' ffffffffffffffffffffffffffffffff00000000000000000000000000000000
+a-foreground, b-background ffffffffffffffffffffffffffffffff00000000000000000000000000000000
+ ffffffffffffffffffffffffffffffff00000000000000000000000000000000
+ 00 01 02 03 04 05 06 07 0000000000000000000000000000000000001111222233334444555566667777
+ 10 11 12 13 14 15 16 17 1111111111111111111111111111111100001111222233334444555566667777
+ 20 21 22 23 24 25 26 27 2222222222222222222222222222222200001111222233334444555566667777
+ 30 31 32 33 34 35 36 37 3333333333333333333333333333333300001111222233334444555566667777
+ 40 41 42 43 44 45 46 47 4444444444444444444444444444444400001111222233334444555566667777
+ 50 51 52 53 54 55 56 57 5555555555555555555555555555555500001111222233334444555566667777
+ 60 61 62 63 64 65 66 67 6666666666666666666666666666666600001111222233334444555566667777
+ 70 71 72 73 74 75 76 77 7777777777777777777777777777777700001111222233334444555566667777
+ 80 81 82 83 84 85 86 87 8888888888888888888888888888888800001111222233334444555566667777
+ 90 91 92 93 94 95 96 97 9999999999999999999999999999999900001111222233334444555566667777
+ a0 a1 a2 a3 a4 a5 a6 a7 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa00001111222233334444555566667777
+ b0 b1 b2 b3 b4 b5 b6 b7 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb00001111222233334444555566667777
+ c0 c1 c2 c3 c4 c5 c6 c7 cccccccccccccccccccccccccccccccc00001111222233334444555566667777
+ d0 d1 d2 d3 d4 d5 d6 d7 dddddddddddddddddddddddddddddddd00001111222233334444555566667777
+ e0 e1 e2 e3 e4 e5 e6 e7 eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee00001111222233334444555566667777
+ f0 f1 f2 f3 f4 f5 f6 f7 ffffffffffffffffffffffffffffffff00001111222233334444555566667777"""
+
+
+if __name__ == "__main__":
+ art = py3a.Art.load(COLORTABLE_EXAMPLE)
+ print(art.header)
+```
+## Short API description
+### Structs
+The core of the library is the Art class, which implements the 3a structure:
+```python
+class Art:
+ def __init__ (self, header: Header, body: Body):
+ self.header = header
+ self.body = body
+```
+Header type contains information about the header of 3a file:
+```python
+class Header:
+ def __init__ (self, width: int, height: int, delay: int, loop_enable: bool, color_mod: ColorMod,
+ utf8: bool, datacols: int, preview: int, audio: str, title: str, author: str):
+ self.width = width
+ self.height = height
+ self.delay = delay
+ self.loop_enable = loop_enable
+ self.color_mod = color_mod
+ self.utf8 = utf8
+ self.datacols = datacols
+ self.preview = preview
+ self.audio = audio
+ self.title = title
+ self.author = author
+```
+Body class contains a list of frames, where each frame is a list of rows, and each row is a list of row fragments:
+```python
+Row = typing.List[RowFragment]
+
+Frame = typing.List[Row]
+
+class Body:
+ def __init__ (self, frames: typing.List[Frame] ):
+ self.frames = frames
+```
+Each RowFragment is a set of consecutive symbols with the same values of foreground and background colors:
+```python
+class RowFragment:
+ def __init__ (self, text: str, fg_color: Color, bg_color: Color):
+ self.text = text
+ self.fg_color = fg_color
+ self.bg_color = bg_color
+```
+### Methods
+`Art.load` and `art.save` methods allow you to convert strings to `Art` and back.
+`Art.load_file` and `art.save_file` methods allow you to read 3a files to `Art` and write `Art` to 3a files.
+
+
+%prep
+%autosetup -n py3a-1.0.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-py3a -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed May 31 2023 Python_Bot <Python_Bot@openeuler.org> - 1.0.0-1
+- Package Spec generated