%global _empty_manifest_terminate_build 0 Name: python-suggestion Version: 0.0.7 Release: 1 Summary: Democratizing auto-complete(suggest) for Python desktop applications License: MIT URL: https://github.com/pyrustic/suggestion Source0: https://mirrors.aliyun.com/pypi/web/packages/c7/78/944be4c58e92863078992e40cebecf108e56152fc73efaf76ef2d8b40f66/suggestion-0.0.7.tar.gz BuildArch: noarch Requires: python3-viewable %description # Suggestion `Suggestion` is a `Python` library for democratizing auto-complete(suggest) in desktop applications. It's part of the [Pyrustic Open Ecosystem](https://pyrustic.github.io). [Installation](#installation) | [Reference](https://github.com/pyrustic/suggestion/tree/master/docs/reference#readme) ## Overview Auto-complete(suggest) is a feature available in smartphone keyboards, browser search bars, and IDEs, so why not in your app too ? `Suggestion` is the library you need to power your applications with auto-complete or auto-suggest feature. This [article](https://uxmag.com/articles/designing-search-as-you-type-suggestions) shows the difference between auto-suggest and auto-complete. Let's discover how to use `Suggestion`: ```python import tkinter as tk from suggestion import Suggestion # the dataset DATASET = ["friend", "family", "my", "monster"] # root root = tk.Tk() root.title("Suggestion demo | built with Pyrustic") # text field (it works with tk.Entry too !) text_field = tk.Text(root) text_field.pack() # Suggestion suggestion = Suggestion(text_field, dataset=DATASET) # lift off ! root.mainloop() ``` This is what it looks like when you run the code:
Figure

Figure 1

Did my ridiculous dataset make you smile ? It's not realistic, right ? I agree. Ok, let's download a [list](https://github.com/dwyl/english-words/blob/master/words_alpha.txt) of 370K english words from [https://github.com/dwyl/english-words](https://github.com/dwyl/english-words). ```python import tkinter as tk from suggestion import Suggestion # the dataset DATASET = "/home/alex/words_alpha.txt" # root root = tk.Tk() root.title("Suggestion demo | built with Pyrustic") # text field (it works with tk.Entry too!) text_field = tk.Text(root) text_field.pack() # Suggestion suggestion = Suggestion(text_field, dataset=DATASET) # lift off ! root.mainloop() ``` Watch how smooth it is:
Figure

Figure 2

I can type faster, duh !
Figure

Figure 3

What if I told you that so far you've only seen the default configuration/behavior of `Suggestion` ? There are 3 main parts in `Suggestion`: - the `dataset`: by default it is a sequence of words. You can set any data type you want if you have a custom `engine` that knows how to use the dataset. - the `engine`: by default it is a basic algorithm which compares the words you type with the words of the dataset (provided that the dataset is a list of words). You can set your own engine and define your own type of dataset. - the `dropdown`: by default this is a simple tk.Listbox in a headless window that displays the suggested words returned by the engine. You can define your own drop down list to display rich data, with icons or whatever you want. Maybe you have a sophisticated dataset of words with metadata like probability of occurrence, and you need to keep track of words already typed to perform complex calculations. `Suggestion` is the library you need to implement your project ! If you want to create your custom auto-complete(suggest) `engine`, these links could be helpful: - [https://norvig.com/spell-correct.html](https://norvig.com/spell-correct.html) - [https://github.com/rodricios/autocomplete](https://github.com/rodricios/autocomplete) - [https://www.jeremymikkola.com/posts/2019_03_19_rules_for_autocomplete.html](https://www.jeremymikkola.com/posts/2019_03_19_rules_for_autocomplete.html) - [Rules of Autocomplete (Hackernews)](https://news.ycombinator.com/item?id=19438826) As `Suggestion` is part of the [Pyrustic Open Ecosystem](https://pyrustic.github.io), it is compatible with the [Cyberpunk Theme](https://github.com/pyrustic/cyberpunk-theme): ```python import tkinter as tk from suggestion import Suggestion from cyberpunk_theme import Cyberpunk # the dataset DATASET = "/home/alex/words_alpha.txt" # root root = tk.Tk() root.title("Suggestion demo | built with Pyrustic") # set the theme Cyberpunk().target(root) # text field (it works with tk.Entry too!) text_field = tk.Text(root) text_field.pack() # Suggestion suggestion = Suggestion(text_field, dataset=DATASET) # lift off ! root.mainloop() ```
Figure

Figure 4

## Installation ### First time Install for the first time: ```bash $ pip install suggestion ``` ### Upgrade To upgrade `Suggestion`: ```bash $ pip install suggestion --upgrade --upgrade-strategy eager ``` %package -n python3-suggestion Summary: Democratizing auto-complete(suggest) for Python desktop applications Provides: python-suggestion BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-suggestion # Suggestion `Suggestion` is a `Python` library for democratizing auto-complete(suggest) in desktop applications. It's part of the [Pyrustic Open Ecosystem](https://pyrustic.github.io). [Installation](#installation) | [Reference](https://github.com/pyrustic/suggestion/tree/master/docs/reference#readme) ## Overview Auto-complete(suggest) is a feature available in smartphone keyboards, browser search bars, and IDEs, so why not in your app too ? `Suggestion` is the library you need to power your applications with auto-complete or auto-suggest feature. This [article](https://uxmag.com/articles/designing-search-as-you-type-suggestions) shows the difference between auto-suggest and auto-complete. Let's discover how to use `Suggestion`: ```python import tkinter as tk from suggestion import Suggestion # the dataset DATASET = ["friend", "family", "my", "monster"] # root root = tk.Tk() root.title("Suggestion demo | built with Pyrustic") # text field (it works with tk.Entry too !) text_field = tk.Text(root) text_field.pack() # Suggestion suggestion = Suggestion(text_field, dataset=DATASET) # lift off ! root.mainloop() ``` This is what it looks like when you run the code:
Figure

Figure 1

Did my ridiculous dataset make you smile ? It's not realistic, right ? I agree. Ok, let's download a [list](https://github.com/dwyl/english-words/blob/master/words_alpha.txt) of 370K english words from [https://github.com/dwyl/english-words](https://github.com/dwyl/english-words). ```python import tkinter as tk from suggestion import Suggestion # the dataset DATASET = "/home/alex/words_alpha.txt" # root root = tk.Tk() root.title("Suggestion demo | built with Pyrustic") # text field (it works with tk.Entry too!) text_field = tk.Text(root) text_field.pack() # Suggestion suggestion = Suggestion(text_field, dataset=DATASET) # lift off ! root.mainloop() ``` Watch how smooth it is:
Figure

Figure 2

I can type faster, duh !
Figure

Figure 3

What if I told you that so far you've only seen the default configuration/behavior of `Suggestion` ? There are 3 main parts in `Suggestion`: - the `dataset`: by default it is a sequence of words. You can set any data type you want if you have a custom `engine` that knows how to use the dataset. - the `engine`: by default it is a basic algorithm which compares the words you type with the words of the dataset (provided that the dataset is a list of words). You can set your own engine and define your own type of dataset. - the `dropdown`: by default this is a simple tk.Listbox in a headless window that displays the suggested words returned by the engine. You can define your own drop down list to display rich data, with icons or whatever you want. Maybe you have a sophisticated dataset of words with metadata like probability of occurrence, and you need to keep track of words already typed to perform complex calculations. `Suggestion` is the library you need to implement your project ! If you want to create your custom auto-complete(suggest) `engine`, these links could be helpful: - [https://norvig.com/spell-correct.html](https://norvig.com/spell-correct.html) - [https://github.com/rodricios/autocomplete](https://github.com/rodricios/autocomplete) - [https://www.jeremymikkola.com/posts/2019_03_19_rules_for_autocomplete.html](https://www.jeremymikkola.com/posts/2019_03_19_rules_for_autocomplete.html) - [Rules of Autocomplete (Hackernews)](https://news.ycombinator.com/item?id=19438826) As `Suggestion` is part of the [Pyrustic Open Ecosystem](https://pyrustic.github.io), it is compatible with the [Cyberpunk Theme](https://github.com/pyrustic/cyberpunk-theme): ```python import tkinter as tk from suggestion import Suggestion from cyberpunk_theme import Cyberpunk # the dataset DATASET = "/home/alex/words_alpha.txt" # root root = tk.Tk() root.title("Suggestion demo | built with Pyrustic") # set the theme Cyberpunk().target(root) # text field (it works with tk.Entry too!) text_field = tk.Text(root) text_field.pack() # Suggestion suggestion = Suggestion(text_field, dataset=DATASET) # lift off ! root.mainloop() ```
Figure

Figure 4

## Installation ### First time Install for the first time: ```bash $ pip install suggestion ``` ### Upgrade To upgrade `Suggestion`: ```bash $ pip install suggestion --upgrade --upgrade-strategy eager ``` %package help Summary: Development documents and examples for suggestion Provides: python3-suggestion-doc %description help # Suggestion `Suggestion` is a `Python` library for democratizing auto-complete(suggest) in desktop applications. It's part of the [Pyrustic Open Ecosystem](https://pyrustic.github.io). [Installation](#installation) | [Reference](https://github.com/pyrustic/suggestion/tree/master/docs/reference#readme) ## Overview Auto-complete(suggest) is a feature available in smartphone keyboards, browser search bars, and IDEs, so why not in your app too ? `Suggestion` is the library you need to power your applications with auto-complete or auto-suggest feature. This [article](https://uxmag.com/articles/designing-search-as-you-type-suggestions) shows the difference between auto-suggest and auto-complete. Let's discover how to use `Suggestion`: ```python import tkinter as tk from suggestion import Suggestion # the dataset DATASET = ["friend", "family", "my", "monster"] # root root = tk.Tk() root.title("Suggestion demo | built with Pyrustic") # text field (it works with tk.Entry too !) text_field = tk.Text(root) text_field.pack() # Suggestion suggestion = Suggestion(text_field, dataset=DATASET) # lift off ! root.mainloop() ``` This is what it looks like when you run the code:
Figure

Figure 1

Did my ridiculous dataset make you smile ? It's not realistic, right ? I agree. Ok, let's download a [list](https://github.com/dwyl/english-words/blob/master/words_alpha.txt) of 370K english words from [https://github.com/dwyl/english-words](https://github.com/dwyl/english-words). ```python import tkinter as tk from suggestion import Suggestion # the dataset DATASET = "/home/alex/words_alpha.txt" # root root = tk.Tk() root.title("Suggestion demo | built with Pyrustic") # text field (it works with tk.Entry too!) text_field = tk.Text(root) text_field.pack() # Suggestion suggestion = Suggestion(text_field, dataset=DATASET) # lift off ! root.mainloop() ``` Watch how smooth it is:
Figure

Figure 2

I can type faster, duh !
Figure

Figure 3

What if I told you that so far you've only seen the default configuration/behavior of `Suggestion` ? There are 3 main parts in `Suggestion`: - the `dataset`: by default it is a sequence of words. You can set any data type you want if you have a custom `engine` that knows how to use the dataset. - the `engine`: by default it is a basic algorithm which compares the words you type with the words of the dataset (provided that the dataset is a list of words). You can set your own engine and define your own type of dataset. - the `dropdown`: by default this is a simple tk.Listbox in a headless window that displays the suggested words returned by the engine. You can define your own drop down list to display rich data, with icons or whatever you want. Maybe you have a sophisticated dataset of words with metadata like probability of occurrence, and you need to keep track of words already typed to perform complex calculations. `Suggestion` is the library you need to implement your project ! If you want to create your custom auto-complete(suggest) `engine`, these links could be helpful: - [https://norvig.com/spell-correct.html](https://norvig.com/spell-correct.html) - [https://github.com/rodricios/autocomplete](https://github.com/rodricios/autocomplete) - [https://www.jeremymikkola.com/posts/2019_03_19_rules_for_autocomplete.html](https://www.jeremymikkola.com/posts/2019_03_19_rules_for_autocomplete.html) - [Rules of Autocomplete (Hackernews)](https://news.ycombinator.com/item?id=19438826) As `Suggestion` is part of the [Pyrustic Open Ecosystem](https://pyrustic.github.io), it is compatible with the [Cyberpunk Theme](https://github.com/pyrustic/cyberpunk-theme): ```python import tkinter as tk from suggestion import Suggestion from cyberpunk_theme import Cyberpunk # the dataset DATASET = "/home/alex/words_alpha.txt" # root root = tk.Tk() root.title("Suggestion demo | built with Pyrustic") # set the theme Cyberpunk().target(root) # text field (it works with tk.Entry too!) text_field = tk.Text(root) text_field.pack() # Suggestion suggestion = Suggestion(text_field, dataset=DATASET) # lift off ! root.mainloop() ```
Figure

Figure 4

## Installation ### First time Install for the first time: ```bash $ pip install suggestion ``` ### Upgrade To upgrade `Suggestion`: ```bash $ pip install suggestion --upgrade --upgrade-strategy eager ``` %prep %autosetup -n suggestion-0.0.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-suggestion -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Tue Jun 20 2023 Python_Bot - 0.0.7-1 - Package Spec generated