shrinkix


Nameshrinkix JSON
Version 0.3.0 PyPI version JSON
download
home_pagehttps://github.com/Dashstrom/shrinkix
SummaryReduces the size of images for the web.
upload_time2024-09-20 11:16:36
maintainerDashstrom
docs_urlNone
authorDashstrom
requires_python>=3.8
licenseMIT
keywords python cli image optimizer reduce color-reduction
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            .. 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"
}
        
Elapsed time: 0.33965s