%global _empty_manifest_terminate_build 0 Name: python-AnkiTools Version: 0.3.7 Release: 1 Summary: an Anki *.apkg and collection.anki2 reader and editor License: MIT URL: https://github.com/patarapolw/AnkiTools Source0: https://mirrors.nju.edu.cn/pypi/web/packages/2d/48/b01de3fbbff3957d799598e2e882ed757e6978c48d09de739443b35885b2/AnkiTools-0.3.7.tar.gz BuildArch: noarch Requires: python3-requests Requires: python3-bs4 Requires: python3-appdirs Requires: python3-openpyxl Requires: python3-psutil Requires: python3-pyexcel-xlsx %description # AnkiTools [![Build Status](https://travis-ci.org/patarapolw/AnkiTools.svg?branch=master)](https://travis-ci.org/patarapolw/AnkiTools) [![PyPI version shields.io](https://img.shields.io/pypi/v/AnkiTools.svg)](https://pypi.python.org/pypi/AnkiTools/) [![PyPI license](https://img.shields.io/pypi/l/AnkiTools.svg)](https://pypi.python.org/pypi/AnkiTools/) [![PyPI pyversions](https://img.shields.io/pypi/pyversions/AnkiTools.svg)](https://pypi.python.org/pypi/AnkiTools/) An Anki *.apkg and collection.anki2 reader and editor to work with in Python. Also included a module on [AnkiConnect](https://github.com/FooSoft/anki-connect). I also created a new sync system called AnkiDirect. The \*.apkg format specification can be viewed from [Anki decks collaboration Wiki](http://decks.wikia.com/wiki/Anki_APKG_format_documentation) and [AnkiDroid](https://github.com/ankidroid/Anki-Android/wiki/Database-Structure). In my AnkiDirect, I tried to comply with the format specification as much as possible. ## Installation ```commandline pip install AnkiTools ``` ## Featured modules ### Anki file conversion ```pydocstring >>> from AnkiTools import anki_convert >>> anki_convert('Chinese.apkg', out_file='Chinese_anki.xlsx') >>> anki_convert('my_workbook.xlsx', out_format='.apkg') ``` The supported formats are `.xlsx`, `.apkg` and `.anki2`. ### AnkiDirect API You can directly edit the Anki app data in user's Application Data path. ```python from AnkiTools import AnkiDirect import json with open('payload.json') as f: payload = json.load(f) with AnkiDirect() as api api.add(payload) ``` Some supported payloads include: ```json { "data": { "note_type A": [ { "data": { "header A": "a", "header B": "b" }, "decks": { "Forward": "Test Deck::Forward", "Backward": "Test Deck::Backward" } } ] }, "definitions": { "note_type A": { "templates": [ { "name": "Forward", "data": { "qfmt": "{{header A}}", "afmt": "{{FrontSide}}\r\n\r\n
\r\n\r\n{{header B}}" } }, { "name": "Backward", "data": { "qfmt": "{{header B}}", "afmt": "{{FrontSide}}\r\n\r\n
\r\n\r\n{{header A}}" } } ], "css": ".card {\r\n font-family: arial;\r\n font-size: 20px;\r\n text-align: center;\r\n color: black;\r\n background-color: white;\r\n}\r\n" } } } ``` ### AnkiConnect ```pydocstring >>> from AnkiTools import AnkiConnect >>> AnkiConnect.is_online() True >>> params = {'actions': [{'action': 'deckNames'}, {'action': 'browse', 'params': {'query': 'deck:current'}}]} >>> AnkiConnect.post('multi', params=params) {'result': [['Default', 'SpoonFed', 'Chinese Hanzi Freq', 'Chinese Vocab'], None], 'error': None} ``` The actual addable actions and parameters can be viewed from [AnkiConnect](https://foosoft.net/projects/anki-connect/). ## Plans - AnkiDirect two-way sync between Excel file and the Anki app. - Specifying metadata (e.g. card distribution, decks) in the Excel file and make it convertible and syncable. - Add CRUD to `AnkiDirect` ("update" and "remove" pending.) ## Contributions - Testing on other OS's, e.g. Windows XP, Windows 10, Ubuntu Linux. (I tested on Mac.) - Manual testing of whether the generated `*.apkg` can be opened without subsequent errors in the Anki app. - Writing test cases and testing parameters. The current ones are viewable at [/tests/parameters.json](https://github.com/patarapolw/AnkiTools/blob/master/tests/parameters.json) and [/tests/files/](https://github.com/patarapolw/AnkiTools/tree/master/tests/files). - Specifying challenging payloads for AnkiDirect. %package -n python3-AnkiTools Summary: an Anki *.apkg and collection.anki2 reader and editor Provides: python-AnkiTools BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-AnkiTools # AnkiTools [![Build Status](https://travis-ci.org/patarapolw/AnkiTools.svg?branch=master)](https://travis-ci.org/patarapolw/AnkiTools) [![PyPI version shields.io](https://img.shields.io/pypi/v/AnkiTools.svg)](https://pypi.python.org/pypi/AnkiTools/) [![PyPI license](https://img.shields.io/pypi/l/AnkiTools.svg)](https://pypi.python.org/pypi/AnkiTools/) [![PyPI pyversions](https://img.shields.io/pypi/pyversions/AnkiTools.svg)](https://pypi.python.org/pypi/AnkiTools/) An Anki *.apkg and collection.anki2 reader and editor to work with in Python. Also included a module on [AnkiConnect](https://github.com/FooSoft/anki-connect). I also created a new sync system called AnkiDirect. The \*.apkg format specification can be viewed from [Anki decks collaboration Wiki](http://decks.wikia.com/wiki/Anki_APKG_format_documentation) and [AnkiDroid](https://github.com/ankidroid/Anki-Android/wiki/Database-Structure). In my AnkiDirect, I tried to comply with the format specification as much as possible. ## Installation ```commandline pip install AnkiTools ``` ## Featured modules ### Anki file conversion ```pydocstring >>> from AnkiTools import anki_convert >>> anki_convert('Chinese.apkg', out_file='Chinese_anki.xlsx') >>> anki_convert('my_workbook.xlsx', out_format='.apkg') ``` The supported formats are `.xlsx`, `.apkg` and `.anki2`. ### AnkiDirect API You can directly edit the Anki app data in user's Application Data path. ```python from AnkiTools import AnkiDirect import json with open('payload.json') as f: payload = json.load(f) with AnkiDirect() as api api.add(payload) ``` Some supported payloads include: ```json { "data": { "note_type A": [ { "data": { "header A": "a", "header B": "b" }, "decks": { "Forward": "Test Deck::Forward", "Backward": "Test Deck::Backward" } } ] }, "definitions": { "note_type A": { "templates": [ { "name": "Forward", "data": { "qfmt": "{{header A}}", "afmt": "{{FrontSide}}\r\n\r\n
\r\n\r\n{{header B}}" } }, { "name": "Backward", "data": { "qfmt": "{{header B}}", "afmt": "{{FrontSide}}\r\n\r\n
\r\n\r\n{{header A}}" } } ], "css": ".card {\r\n font-family: arial;\r\n font-size: 20px;\r\n text-align: center;\r\n color: black;\r\n background-color: white;\r\n}\r\n" } } } ``` ### AnkiConnect ```pydocstring >>> from AnkiTools import AnkiConnect >>> AnkiConnect.is_online() True >>> params = {'actions': [{'action': 'deckNames'}, {'action': 'browse', 'params': {'query': 'deck:current'}}]} >>> AnkiConnect.post('multi', params=params) {'result': [['Default', 'SpoonFed', 'Chinese Hanzi Freq', 'Chinese Vocab'], None], 'error': None} ``` The actual addable actions and parameters can be viewed from [AnkiConnect](https://foosoft.net/projects/anki-connect/). ## Plans - AnkiDirect two-way sync between Excel file and the Anki app. - Specifying metadata (e.g. card distribution, decks) in the Excel file and make it convertible and syncable. - Add CRUD to `AnkiDirect` ("update" and "remove" pending.) ## Contributions - Testing on other OS's, e.g. Windows XP, Windows 10, Ubuntu Linux. (I tested on Mac.) - Manual testing of whether the generated `*.apkg` can be opened without subsequent errors in the Anki app. - Writing test cases and testing parameters. The current ones are viewable at [/tests/parameters.json](https://github.com/patarapolw/AnkiTools/blob/master/tests/parameters.json) and [/tests/files/](https://github.com/patarapolw/AnkiTools/tree/master/tests/files). - Specifying challenging payloads for AnkiDirect. %package help Summary: Development documents and examples for AnkiTools Provides: python3-AnkiTools-doc %description help # AnkiTools [![Build Status](https://travis-ci.org/patarapolw/AnkiTools.svg?branch=master)](https://travis-ci.org/patarapolw/AnkiTools) [![PyPI version shields.io](https://img.shields.io/pypi/v/AnkiTools.svg)](https://pypi.python.org/pypi/AnkiTools/) [![PyPI license](https://img.shields.io/pypi/l/AnkiTools.svg)](https://pypi.python.org/pypi/AnkiTools/) [![PyPI pyversions](https://img.shields.io/pypi/pyversions/AnkiTools.svg)](https://pypi.python.org/pypi/AnkiTools/) An Anki *.apkg and collection.anki2 reader and editor to work with in Python. Also included a module on [AnkiConnect](https://github.com/FooSoft/anki-connect). I also created a new sync system called AnkiDirect. The \*.apkg format specification can be viewed from [Anki decks collaboration Wiki](http://decks.wikia.com/wiki/Anki_APKG_format_documentation) and [AnkiDroid](https://github.com/ankidroid/Anki-Android/wiki/Database-Structure). In my AnkiDirect, I tried to comply with the format specification as much as possible. ## Installation ```commandline pip install AnkiTools ``` ## Featured modules ### Anki file conversion ```pydocstring >>> from AnkiTools import anki_convert >>> anki_convert('Chinese.apkg', out_file='Chinese_anki.xlsx') >>> anki_convert('my_workbook.xlsx', out_format='.apkg') ``` The supported formats are `.xlsx`, `.apkg` and `.anki2`. ### AnkiDirect API You can directly edit the Anki app data in user's Application Data path. ```python from AnkiTools import AnkiDirect import json with open('payload.json') as f: payload = json.load(f) with AnkiDirect() as api api.add(payload) ``` Some supported payloads include: ```json { "data": { "note_type A": [ { "data": { "header A": "a", "header B": "b" }, "decks": { "Forward": "Test Deck::Forward", "Backward": "Test Deck::Backward" } } ] }, "definitions": { "note_type A": { "templates": [ { "name": "Forward", "data": { "qfmt": "{{header A}}", "afmt": "{{FrontSide}}\r\n\r\n
\r\n\r\n{{header B}}" } }, { "name": "Backward", "data": { "qfmt": "{{header B}}", "afmt": "{{FrontSide}}\r\n\r\n
\r\n\r\n{{header A}}" } } ], "css": ".card {\r\n font-family: arial;\r\n font-size: 20px;\r\n text-align: center;\r\n color: black;\r\n background-color: white;\r\n}\r\n" } } } ``` ### AnkiConnect ```pydocstring >>> from AnkiTools import AnkiConnect >>> AnkiConnect.is_online() True >>> params = {'actions': [{'action': 'deckNames'}, {'action': 'browse', 'params': {'query': 'deck:current'}}]} >>> AnkiConnect.post('multi', params=params) {'result': [['Default', 'SpoonFed', 'Chinese Hanzi Freq', 'Chinese Vocab'], None], 'error': None} ``` The actual addable actions and parameters can be viewed from [AnkiConnect](https://foosoft.net/projects/anki-connect/). ## Plans - AnkiDirect two-way sync between Excel file and the Anki app. - Specifying metadata (e.g. card distribution, decks) in the Excel file and make it convertible and syncable. - Add CRUD to `AnkiDirect` ("update" and "remove" pending.) ## Contributions - Testing on other OS's, e.g. Windows XP, Windows 10, Ubuntu Linux. (I tested on Mac.) - Manual testing of whether the generated `*.apkg` can be opened without subsequent errors in the Anki app. - Writing test cases and testing parameters. The current ones are viewable at [/tests/parameters.json](https://github.com/patarapolw/AnkiTools/blob/master/tests/parameters.json) and [/tests/files/](https://github.com/patarapolw/AnkiTools/tree/master/tests/files). - Specifying challenging payloads for AnkiDirect. %prep %autosetup -n AnkiTools-0.3.7 %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-AnkiTools -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Wed May 10 2023 Python_Bot - 0.3.7-1 - Package Spec generated