From 9d9892b8982880f39773fb2e4ec403a4e87dc397 Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Wed, 10 May 2023 04:25:34 +0000 Subject: automatic import of python-discapty --- python-discapty.spec | 443 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 443 insertions(+) create mode 100644 python-discapty.spec (limited to 'python-discapty.spec') diff --git a/python-discapty.spec b/python-discapty.spec new file mode 100644 index 0000000..d743371 --- /dev/null +++ b/python-discapty.spec @@ -0,0 +1,443 @@ +%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 -- cgit v1.2.3