%global _empty_manifest_terminate_build 0 Name: python-discapty Version: 2.1.2 Release: 1 Summary: DisCapTy help you generate obfuscated images, leaving your code easy. License: MIT URL: https://github.com/Predeactor/DisCapTy Source0: https://mirrors.nju.edu.cn/pypi/web/packages/9c/92/b99b5776af836e590f4cc62dcc1d1f76e6688ee8a92bb910d75e4be4691a/discapty-2.1.2.tar.gz BuildArch: noarch Requires: python3-pillow Requires: python3-pydantic Requires: python3-furo Requires: python3-Sphinx Requires: python3-sphinx-copybutton %description # DisCapTy ![DisCapTy's Logo](.github/logo.png#gh-dark-mode-only)![DisCapTy's Logo](.github/logo-dark.png#gh-light-mode-only) DisCapTy is a highly type hinted Python module to generate Captcha images without struggling your mind on how to make your own. Everyone can use it! **Documentation:**
DisCapTy's Version Python Version Required DisCapTy's download Documentation Status
## Installing DisCapTy is available on PyPi! ```sh pip3 install discapty ``` To use DisCapTy, you need a Python version equal or greater to `3.7` and below `3.11`. ## Clone & Test the project This project is dependant of [Poetry](https://python-poetry.org), a dependency management tool. You are most likely going to require this tool to correctly interact with the project & its dependencies, check out [Poetry's documentation](https://python-poetry.org/docs) for how to install it. To clone the repository: `git clone https://github.com/Predeactor/DisCapTy.git` To install dependencies: `poetry install` To run tests: `poetry run python -m unittest` ## Creating Captcha For DisCapTy, a Captcha is simply a code with any possible objects that can be returned, for example, it is one code (Like "12345") with an image (Usually a `PIL.Image.Image` object) This is because DisCapTy uses the concept of generators that are used to generate a captcha from a given code, and it can return anything. DisCapTy comes with 3 builtin generators: - TextGenerator : Text based captcha - WheezyGenerator : Image based captcha - ImageGenerator : Image based captcha ### Creating Captcha manually ```py import discapty def generate_a_captcha(initial_input: str) -> discapty.Captcha: # This generator returns an obfuscated text. captcha_for_user = discapty.TextGenerator().generate(initial_input) # Create a Captcha object, the first argument is the clear code, the second is the obfuscated code. Anything goes. return discapty.Captcha(initial_input, captcha_for_user) # Generate your Captcha. captcha = generate_a_captcha("12345") # Show the obfuscated code. See https://discapty.readthedocs.io for more information on this object. show_captcha_to_user(captcha.captcha) ``` ### Checking user's input ```py import discapty # Generate your Captcha. captcha: discapty.Captcha = generate_a_captcha("12345") # This is your user's input here user_input: str = '12345' if captcha.check(user_input) is True: # The user input is correct print("Correct!") else: # The user input is incorrect print("Incorrect!") ``` What's great with the `.check` method is that you can specify if you need to remove space in the user's input and/or check casing. Creating Captcha manually is not a recommended way, because DisCapTy comes with its opinionated challenge runner & is inefficient anyway. ### Create a Challenge ```py import discapty challenge = discapty.Challenge(discapty.TextGenerator(), retries=3) captcha = challenge.begin() # We cannot provide typehint here, `captcha` is a `typing.Any` and cannot help you, it'll be your # job to know what you'll get as a captcha. send_captcha_to_user(captcha) user_input: str = get_user_input() is_correct: bool = challenge.check(user_input) # If the user's input is correct, the challenge ends, if not, `challenge.attempted_tries` will get # +1, and if it is greater than the retries that has been set, then an error is raised when using # `.check` ``` Please see the [documentation](https://discapty.readthedocs.io/) for more information on how the library work. ## Contact You can join my Discord server for any help: DisCapTy is an open-source project distributed under the MIT license: ![PyPI - License](https://img.shields.io/pypi/l/discapty?style=flat-square) DisCapTy uses the [Roboto](https://fonts.google.com/specimen/Roboto) font as default font. [This font](https://fonts.google.com/specimen/Roboto) is licensed under [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0). %package -n python3-discapty Summary: DisCapTy help you generate obfuscated images, leaving your code easy. Provides: python-discapty BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-discapty # DisCapTy ![DisCapTy's Logo](.github/logo.png#gh-dark-mode-only)![DisCapTy's Logo](.github/logo-dark.png#gh-light-mode-only) DisCapTy is a highly type hinted Python module to generate Captcha images without struggling your mind on how to make your own. Everyone can use it! **Documentation:**
DisCapTy's Version Python Version Required DisCapTy's download Documentation Status
## Installing DisCapTy is available on PyPi! ```sh pip3 install discapty ``` To use DisCapTy, you need a Python version equal or greater to `3.7` and below `3.11`. ## Clone & Test the project This project is dependant of [Poetry](https://python-poetry.org), a dependency management tool. You are most likely going to require this tool to correctly interact with the project & its dependencies, check out [Poetry's documentation](https://python-poetry.org/docs) for how to install it. To clone the repository: `git clone https://github.com/Predeactor/DisCapTy.git` To install dependencies: `poetry install` To run tests: `poetry run python -m unittest` ## Creating Captcha For DisCapTy, a Captcha is simply a code with any possible objects that can be returned, for example, it is one code (Like "12345") with an image (Usually a `PIL.Image.Image` object) This is because DisCapTy uses the concept of generators that are used to generate a captcha from a given code, and it can return anything. DisCapTy comes with 3 builtin generators: - TextGenerator : Text based captcha - WheezyGenerator : Image based captcha - ImageGenerator : Image based captcha ### Creating Captcha manually ```py import discapty def generate_a_captcha(initial_input: str) -> discapty.Captcha: # This generator returns an obfuscated text. captcha_for_user = discapty.TextGenerator().generate(initial_input) # Create a Captcha object, the first argument is the clear code, the second is the obfuscated code. Anything goes. return discapty.Captcha(initial_input, captcha_for_user) # Generate your Captcha. captcha = generate_a_captcha("12345") # Show the obfuscated code. See https://discapty.readthedocs.io for more information on this object. show_captcha_to_user(captcha.captcha) ``` ### Checking user's input ```py import discapty # Generate your Captcha. captcha: discapty.Captcha = generate_a_captcha("12345") # This is your user's input here user_input: str = '12345' if captcha.check(user_input) is True: # The user input is correct print("Correct!") else: # The user input is incorrect print("Incorrect!") ``` What's great with the `.check` method is that you can specify if you need to remove space in the user's input and/or check casing. Creating Captcha manually is not a recommended way, because DisCapTy comes with its opinionated challenge runner & is inefficient anyway. ### Create a Challenge ```py import discapty challenge = discapty.Challenge(discapty.TextGenerator(), retries=3) captcha = challenge.begin() # We cannot provide typehint here, `captcha` is a `typing.Any` and cannot help you, it'll be your # job to know what you'll get as a captcha. send_captcha_to_user(captcha) user_input: str = get_user_input() is_correct: bool = challenge.check(user_input) # If the user's input is correct, the challenge ends, if not, `challenge.attempted_tries` will get # +1, and if it is greater than the retries that has been set, then an error is raised when using # `.check` ``` Please see the [documentation](https://discapty.readthedocs.io/) for more information on how the library work. ## Contact You can join my Discord server for any help: DisCapTy is an open-source project distributed under the MIT license: ![PyPI - License](https://img.shields.io/pypi/l/discapty?style=flat-square) DisCapTy uses the [Roboto](https://fonts.google.com/specimen/Roboto) font as default font. [This font](https://fonts.google.com/specimen/Roboto) is licensed under [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0). %package help Summary: Development documents and examples for discapty Provides: python3-discapty-doc %description help # DisCapTy ![DisCapTy's Logo](.github/logo.png#gh-dark-mode-only)![DisCapTy's Logo](.github/logo-dark.png#gh-light-mode-only) DisCapTy is a highly type hinted Python module to generate Captcha images without struggling your mind on how to make your own. Everyone can use it! **Documentation:** ## Installing DisCapTy is available on PyPi! ```sh pip3 install discapty ``` To use DisCapTy, you need a Python version equal or greater to `3.7` and below `3.11`. ## Clone & Test the project This project is dependant of [Poetry](https://python-poetry.org), a dependency management tool. You are most likely going to require this tool to correctly interact with the project & its dependencies, check out [Poetry's documentation](https://python-poetry.org/docs) for how to install it. To clone the repository: `git clone https://github.com/Predeactor/DisCapTy.git` To install dependencies: `poetry install` To run tests: `poetry run python -m unittest` ## Creating Captcha For DisCapTy, a Captcha is simply a code with any possible objects that can be returned, for example, it is one code (Like "12345") with an image (Usually a `PIL.Image.Image` object) This is because DisCapTy uses the concept of generators that are used to generate a captcha from a given code, and it can return anything. DisCapTy comes with 3 builtin generators: - TextGenerator : Text based captcha - WheezyGenerator : Image based captcha - ImageGenerator : Image based captcha ### Creating Captcha manually ```py import discapty def generate_a_captcha(initial_input: str) -> discapty.Captcha: # This generator returns an obfuscated text. captcha_for_user = discapty.TextGenerator().generate(initial_input) # Create a Captcha object, the first argument is the clear code, the second is the obfuscated code. Anything goes. return discapty.Captcha(initial_input, captcha_for_user) # Generate your Captcha. captcha = generate_a_captcha("12345") # Show the obfuscated code. See https://discapty.readthedocs.io for more information on this object. show_captcha_to_user(captcha.captcha) ``` ### Checking user's input ```py import discapty # Generate your Captcha. captcha: discapty.Captcha = generate_a_captcha("12345") # This is your user's input here user_input: str = '12345' if captcha.check(user_input) is True: # The user input is correct print("Correct!") else: # The user input is incorrect print("Incorrect!") ``` What's great with the `.check` method is that you can specify if you need to remove space in the user's input and/or check casing. Creating Captcha manually is not a recommended way, because DisCapTy comes with its opinionated challenge runner & is inefficient anyway. ### Create a Challenge ```py import discapty challenge = discapty.Challenge(discapty.TextGenerator(), retries=3) captcha = challenge.begin() # We cannot provide typehint here, `captcha` is a `typing.Any` and cannot help you, it'll be your # job to know what you'll get as a captcha. send_captcha_to_user(captcha) user_input: str = get_user_input() is_correct: bool = challenge.check(user_input) # If the user's input is correct, the challenge ends, if not, `challenge.attempted_tries` will get # +1, and if it is greater than the retries that has been set, then an error is raised when using # `.check` ``` Please see the [documentation](https://discapty.readthedocs.io/) for more information on how the library work. ## Contact You can join my Discord server for any help: DisCapTy is an open-source project distributed under the MIT license: ![PyPI - License](https://img.shields.io/pypi/l/discapty?style=flat-square) DisCapTy uses the [Roboto](https://fonts.google.com/specimen/Roboto) font as default font. [This font](https://fonts.google.com/specimen/Roboto) is licensed under [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0). %prep %autosetup -n discapty-2.1.2 %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-discapty -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Wed May 10 2023 Python_Bot - 2.1.2-1 - Package Spec generated