.. role:: bash(code)
:language: bash
********
Shrinkix
********
|ci-docs| |ci-lint| |ci-tests| |pypi| |versions| |discord| |license|
.. |ci-docs| image:: https://github.com/Dashstrom/shrinkix/actions/workflows/docs.yml/badge.svg
:target: https://github.com/Dashstrom/shrinkix/actions/workflows/docs.yml
:alt: CI : Docs
.. |ci-lint| image:: https://github.com/Dashstrom/shrinkix/actions/workflows/lint.yml/badge.svg
:target: https://github.com/Dashstrom/shrinkix/actions/workflows/lint.yml
:alt: CI : Lint
.. |ci-tests| image:: https://github.com/Dashstrom/shrinkix/actions/workflows/tests.yml/badge.svg
:target: https://github.com/Dashstrom/shrinkix/actions/workflows/tests.yml
:alt: CI : Tests
.. |pypi| image:: https://img.shields.io/pypi/v/shrinkix.svg
:target: https://pypi.org/project/shrinkix
:alt: PyPI : shrinkix
.. |versions| image:: https://img.shields.io/pypi/pyversions/shrinkix.svg
:target: https://pypi.org/project/shrinkix
:alt: Python : versions
.. |discord| image:: https://img.shields.io/badge/Discord-dashstrom-5865F2?style=flat&logo=discord&logoColor=white
:target: https://dsc.gg/dashstrom
:alt: Discord
.. |license| image:: https://img.shields.io/badge/license-MIT-green.svg
:target: https://github.com/Dashstrom/shrinkix/blob/main/LICENSE
:alt: License : MIT
Description
###########
Reduces the size of images for the web.
Documentation
#############
Documentation is available on https://dashstrom.github.io/shrinkix
Installation from scratch
#########################
Windows (Chocolatey, Python, Visual Studio Build Tools, pipx)
*************************************************************
Open an Admin PowerShell with :bash:`windows + R`, write :bash:`powershell` then press :bash:`ctrl + shift + enter`.
.. code-block:: powershell
Set-ExecutionPolicy Bypass -Scope Process -Force
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
choco install python --version=3.10.11 --override --install-arguments '/quiet PrependPath=1 Include_debug=1 Include_symbols=1 SimpleInstall=1' -y
choco install visualstudio2022-workload-vctools -y
pip install --upgrade wheel pip pipx
pipx ensurepath
Ubuntu (build requirement and pipx)
***********************************
.. code-block:: bash
sudo apt -y update && sudo apt -y upgrade && sudo apt -y install python3-all-dev
pip install --upgrade wheel pip pipx
pipx ensurepath
Mac (Homebrew and pipx)
***********************
.. code-block:: bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo "export PATH=/opt/homebrew/bin:$PATH" >> ~/.bash_profile && source ~/.bash_profile
brew install python
pip install --upgrade wheel pip pipx
pipx ensurepath
Package installation
********************
You can install :bash:`shrinkix` using `pipx <https://pipx.pypa.io/stable/>`_
from `PyPI <https://pypi.org/project>`_
.. code-block:: bash
pipx install shrinkix
Usage
#####
Usage as script
***************
.. code-block:: bash
shrinkix image.png --max-width 1024 --max-height 1024 --artist 'Dashstrom' --copyright 'dashstrom.pro@gmail.com'
Usage as module
***************
.. code-block:: python
from shrinkix import Shrinkix
shrinkix = Shrinkix(
max_width=1024,
max_height=1024,
keep_metadata=False,
)
shrinkix.shrink("tests/resources/test.jpg", "test.png")
Development
###########
Contributing
************
Contributions are very welcome. Tests can be run with :bash:`poe check`, please
ensure the coverage at least stays the same before you submit a pull request.
Setup
*****
You need to install `Poetry <https://python-poetry.org/docs/#installation>`_
and `Git <https://git-scm.com/book/en/v2/Getting-Started-Installing-Git>`_
for work with this project.
.. code-block:: bash
git clone https://github.com/Dashstrom/shrinkix
cd shrinkix
poetry install --all-extras
poetry run poe setup
poetry shell
Poe
********
Poe is available for help you to run tasks.
.. code-block:: text
test Run test suite.
lint Run linters: ruff linter, ruff formatter and mypy.
format Run linters in fix mode.
check Run all checks: lint, test and docs.
cov Run coverage for generate report and html.
open-cov Open html coverage report in webbrowser.
docs Build documentation.
open-docs Open documentation in webbrowser.
setup Setup pre-commit.
pre-commit Run pre-commit.
clean Clean cache files
Skip commit verification
************************
If the linting is not successful, you can't commit.
For forcing the commit you can use the next command :
.. code-block:: bash
git commit --no-verify -m 'MESSAGE'
Commit with commitizen
**********************
To respect commit conventions, this repository uses
`Commitizen <https://github.com/commitizen-tools/commitizen?tab=readme-ov-file>`_.
.. code-block:: bash
cz c
How to add dependency
*********************
.. code-block:: bash
poetry add 'PACKAGE'
Ignore illegitimate warnings
****************************
To ignore illegitimate warnings you can add :
- **# noqa: ERROR_CODE** on the same line for ruff.
- **# type: ignore[ERROR_CODE]** on the same line for mypy.
- **# pragma: no cover** on the same line to ignore line for coverage.
- **# doctest: +SKIP** on the same line for doctest.
Uninstall
#########
.. code-block:: bash
pipx uninstall shrinkix
License
#######
This work is licensed under `MIT <https://github.com/Dashstrom/shrinkix/blob/main/LICENSE>`_.
Raw data
{
"_id": null,
"home_page": "https://github.com/Dashstrom/shrinkix",
"name": "shrinkix",
"maintainer": "Dashstrom",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "dashstrom.pro@gmail.com",
"keywords": "python, cli, image, optimizer, reduce, color-reduction",
"author": "Dashstrom",
"author_email": "dashstrom.pro@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/fa/23/846966fc266b1c1442fac30f10c8330306eddb748c7f1c89600dbffd7ff0/shrinkix-0.3.0.tar.gz",
"platform": null,
"description": ".. role:: bash(code)\n :language: bash\n\n********\nShrinkix\n********\n\n|ci-docs| |ci-lint| |ci-tests| |pypi| |versions| |discord| |license|\n\n.. |ci-docs| image:: https://github.com/Dashstrom/shrinkix/actions/workflows/docs.yml/badge.svg\n :target: https://github.com/Dashstrom/shrinkix/actions/workflows/docs.yml\n :alt: CI : Docs\n\n.. |ci-lint| image:: https://github.com/Dashstrom/shrinkix/actions/workflows/lint.yml/badge.svg\n :target: https://github.com/Dashstrom/shrinkix/actions/workflows/lint.yml\n :alt: CI : Lint\n\n.. |ci-tests| image:: https://github.com/Dashstrom/shrinkix/actions/workflows/tests.yml/badge.svg\n :target: https://github.com/Dashstrom/shrinkix/actions/workflows/tests.yml\n :alt: CI : Tests\n\n.. |pypi| image:: https://img.shields.io/pypi/v/shrinkix.svg\n :target: https://pypi.org/project/shrinkix\n :alt: PyPI : shrinkix\n\n.. |versions| image:: https://img.shields.io/pypi/pyversions/shrinkix.svg\n :target: https://pypi.org/project/shrinkix\n :alt: Python : versions\n\n.. |discord| image:: https://img.shields.io/badge/Discord-dashstrom-5865F2?style=flat&logo=discord&logoColor=white\n :target: https://dsc.gg/dashstrom\n :alt: Discord\n\n.. |license| image:: https://img.shields.io/badge/license-MIT-green.svg\n :target: https://github.com/Dashstrom/shrinkix/blob/main/LICENSE\n :alt: License : MIT\n\nDescription\n###########\n\nReduces the size of images for the web.\n\nDocumentation\n#############\n\nDocumentation is available on https://dashstrom.github.io/shrinkix\n\nInstallation from scratch\n#########################\n\nWindows (Chocolatey, Python, Visual Studio Build Tools, pipx)\n*************************************************************\n\nOpen an Admin PowerShell with :bash:`windows + R`, write :bash:`powershell` then press :bash:`ctrl + shift + enter`.\n\n.. code-block:: powershell\n\n Set-ExecutionPolicy Bypass -Scope Process -Force\n [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072\n iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))\n choco install python --version=3.10.11 --override --install-arguments '/quiet PrependPath=1 Include_debug=1 Include_symbols=1 SimpleInstall=1' -y\n choco install visualstudio2022-workload-vctools -y\n pip install --upgrade wheel pip pipx\n pipx ensurepath\n\nUbuntu (build requirement and pipx)\n***********************************\n\n.. code-block:: bash\n\n sudo apt -y update && sudo apt -y upgrade && sudo apt -y install python3-all-dev\n pip install --upgrade wheel pip pipx\n pipx ensurepath\n\nMac (Homebrew and pipx)\n***********************\n\n.. code-block:: bash\n\n /bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"\n echo \"export PATH=/opt/homebrew/bin:$PATH\" >> ~/.bash_profile && source ~/.bash_profile\n brew install python\n pip install --upgrade wheel pip pipx\n pipx ensurepath\n\n\nPackage installation\n********************\n\nYou can install :bash:`shrinkix` using `pipx <https://pipx.pypa.io/stable/>`_\nfrom `PyPI <https://pypi.org/project>`_\n\n.. code-block:: bash\n\n pipx install shrinkix\n\nUsage\n#####\n\nUsage as script\n***************\n\n.. code-block:: bash\n\n shrinkix image.png --max-width 1024 --max-height 1024 --artist 'Dashstrom' --copyright 'dashstrom.pro@gmail.com'\n\nUsage as module\n***************\n\n.. code-block:: python\n\n from shrinkix import Shrinkix\n\n shrinkix = Shrinkix(\n max_width=1024,\n max_height=1024,\n keep_metadata=False,\n )\n shrinkix.shrink(\"tests/resources/test.jpg\", \"test.png\")\n\nDevelopment\n###########\n\nContributing\n************\n\nContributions are very welcome. Tests can be run with :bash:`poe check`, please\nensure the coverage at least stays the same before you submit a pull request.\n\nSetup\n*****\n\nYou need to install `Poetry <https://python-poetry.org/docs/#installation>`_\nand `Git <https://git-scm.com/book/en/v2/Getting-Started-Installing-Git>`_\nfor work with this project.\n\n.. code-block:: bash\n\n git clone https://github.com/Dashstrom/shrinkix\n cd shrinkix\n poetry install --all-extras\n poetry run poe setup\n poetry shell\n\nPoe\n********\n\nPoe is available for help you to run tasks.\n\n.. code-block:: text\n\n test Run test suite.\n lint Run linters: ruff linter, ruff formatter and mypy.\n format Run linters in fix mode.\n check Run all checks: lint, test and docs.\n cov Run coverage for generate report and html.\n open-cov Open html coverage report in webbrowser.\n docs Build documentation.\n open-docs Open documentation in webbrowser.\n setup Setup pre-commit.\n pre-commit Run pre-commit.\n clean Clean cache files\n\nSkip commit verification\n************************\n\nIf the linting is not successful, you can't commit.\nFor forcing the commit you can use the next command :\n\n.. code-block:: bash\n\n git commit --no-verify -m 'MESSAGE'\n\nCommit with commitizen\n**********************\n\nTo respect commit conventions, this repository uses\n`Commitizen <https://github.com/commitizen-tools/commitizen?tab=readme-ov-file>`_.\n\n.. code-block:: bash\n\n cz c\n\nHow to add dependency\n*********************\n\n.. code-block:: bash\n\n poetry add 'PACKAGE'\n\nIgnore illegitimate warnings\n****************************\n\nTo ignore illegitimate warnings you can add :\n\n- **# noqa: ERROR_CODE** on the same line for ruff.\n- **# type: ignore[ERROR_CODE]** on the same line for mypy.\n- **# pragma: no cover** on the same line to ignore line for coverage.\n- **# doctest: +SKIP** on the same line for doctest.\n\nUninstall\n#########\n\n.. code-block:: bash\n\n pipx uninstall shrinkix\n\nLicense\n#######\n\nThis work is licensed under `MIT <https://github.com/Dashstrom/shrinkix/blob/main/LICENSE>`_.\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Reduces the size of images for the web.",
"version": "0.3.0",
"project_urls": {
"Documentation": "https://dashstrom.github.io/shrinkix",
"Homepage": "https://github.com/Dashstrom/shrinkix",
"Repository": "https://github.com/Dashstrom/shrinkix"
},
"split_keywords": [
"python",
" cli",
" image",
" optimizer",
" reduce",
" color-reduction"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a9827f5cc3141932c69950aa86ece9e985ac4067faf2dd28d0883bd278327022",
"md5": "b9b0d1a234563b9b668925ff663d7115",
"sha256": "c02b1cbfc110a1e497315ad6b930a62ef34d663f7fed4082689578ea20de7574"
},
"downloads": -1,
"filename": "shrinkix-0.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b9b0d1a234563b9b668925ff663d7115",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 10022,
"upload_time": "2024-09-20T11:16:35",
"upload_time_iso_8601": "2024-09-20T11:16:35.445675Z",
"url": "https://files.pythonhosted.org/packages/a9/82/7f5cc3141932c69950aa86ece9e985ac4067faf2dd28d0883bd278327022/shrinkix-0.3.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "fa23846966fc266b1c1442fac30f10c8330306eddb748c7f1c89600dbffd7ff0",
"md5": "a4b14b5d4dcf6955914b4d65371222aa",
"sha256": "f4082fc6d282e451b116a312544407d576540ebf17ec9342e6d871a4d8d81305"
},
"downloads": -1,
"filename": "shrinkix-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "a4b14b5d4dcf6955914b4d65371222aa",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 12911,
"upload_time": "2024-09-20T11:16:36",
"upload_time_iso_8601": "2024-09-20T11:16:36.479381Z",
"url": "https://files.pythonhosted.org/packages/fa/23/846966fc266b1c1442fac30f10c8330306eddb748c7f1c89600dbffd7ff0/shrinkix-0.3.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-20 11:16:36",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Dashstrom",
"github_project": "shrinkix",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "shrinkix"
}