coating


Namecoating JSON
Version 0.0.1 PyPI version JSON
download
home_page
SummaryA filter with an pointer interface 🦝
upload_time2024-01-19 23:19:13
maintainer
docs_urlNone
author
requires_python>=3.8
license
keywords vim bash cli unix rice tui hci interaction unix-philosophy canny
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <p align="center">
  <img src="https://github.com/Pieli/canny/blob/main/assets/canny_logo_small.png" />
</p>
<p align="center">
 <a href="https://github.com/Pieli/canny/actions/workflows/pylint.yml">
    <img src="https://github.com/Pieli/canny/actions/workflows/pylint.yml/badge.svg">
  </a>
 <a href="https://github.com/Pieli/canny/actions/workflows/python-publish.yml">
    <img src="https://github.com/Pieli/canny/actions/workflows/python-publish.yml/badge.svg?branch=main">
  </a>
</p>


`canny` creates a clickable pane, based on the standard input.

or more precise:  
  
`canny` reads lines from STDIN, allowing you to interactively select a value, which is then returned to STDOUT.

![example_interaction](assets/example_interaction.gif)

* canny enables interactive filters in piped commands
* a unix-philosophy experiment
* brings the mouse to the cli :)
* a fzf inspired tool
<p align="center">
  <img width=80% src="https://github.com/Pieli/canny/blob/main/assets/demo.gif" />
</p>


**But, what does it do?**  
- Every non-white space becomes a token
- Every token will be possible element for selection
- After a selection, the token will be returned through standard output

## Usage
Here are some examples, after the [installation step](#installation)  

This will open the selected file/directory of the current directory in vim:
```sh
vim $(ls -C | canny)
```

Another possible usage is this:
```sh
ls -C | canny | xargs xdg-open
```
This opens the selected file with it's standard application.

For more ways to use `canny` check out the `examples` directory.  

### Html Parser
- when run with the `--tags` flag, canny will look for HTML tags (excluding semantics) and makes tag bodies clickable.
- this function allows for a predefinition of clickable elements, in contrast to the default case, where every non-whitespace character is clickable
- if the tags are nested, only the highest level of tags is clickable
- in the case ther are no tags in the text, every word will be tokenized and clickable.

<p align="center">
  <img width=70% src="https://github.com/Pieli/canny/blob/main/assets/ice-cream.gif" />
</p>


## Installation
> [!Note]
> only tested / written for linux

You can install `canny` from the PyPI repositories using the following command:
```
pip install canny
```
or check the realease page for a manual installation.

on ubuntu first install ncurses-term:
```
apt install ncurses-term
```


## Issues

> [!Important]
> This tool currently supports python3.10 and upwards

On version with a python version lower than 3.10 the `curses.BUTTON5` constant is not supported.

Please report possible issues [here](https://github.com/Pieli/canny/issues). 

## License

This project is licensed under the [GPLv3 License](LICENSE).

---
Made with love by 🦝


            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "coating",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "vim,bash,cli,unix,rice,tui,hci,interaction,unix-philosophy,canny",
    "author": "",
    "author_email": "Pieli <pieli.dev@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/bb/ee/0ace101877647501422e46ab6fb876bdb64d20ded739be00068f9878f230/coating-0.0.1.tar.gz",
    "platform": null,
    "description": "<p align=\"center\">\n  <img src=\"https://github.com/Pieli/canny/blob/main/assets/canny_logo_small.png\" />\n</p>\n<p align=\"center\">\n <a href=\"https://github.com/Pieli/canny/actions/workflows/pylint.yml\">\n    <img src=\"https://github.com/Pieli/canny/actions/workflows/pylint.yml/badge.svg\">\n  </a>\n <a href=\"https://github.com/Pieli/canny/actions/workflows/python-publish.yml\">\n    <img src=\"https://github.com/Pieli/canny/actions/workflows/python-publish.yml/badge.svg?branch=main\">\n  </a>\n</p>\n\n\n`canny` creates a clickable pane, based on the standard input.\n\nor more precise:  \n  \n`canny` reads lines from STDIN, allowing you to interactively select a value, which is then returned to STDOUT.\n\n![example_interaction](assets/example_interaction.gif)\n\n* canny enables interactive filters in piped commands\n* a unix-philosophy experiment\n* brings the mouse to the cli :)\n* a fzf inspired tool\n<p align=\"center\">\n  <img width=80% src=\"https://github.com/Pieli/canny/blob/main/assets/demo.gif\" />\n</p>\n\n\n**But, what does it do?**  \n- Every non-white space becomes a token\n- Every token will be possible element for selection\n- After a selection, the token will be returned through standard output\n\n## Usage\nHere are some examples, after the [installation step](#installation)  \n\nThis will open the selected file/directory of the current directory in vim:\n```sh\nvim $(ls -C | canny)\n```\n\nAnother possible usage is this:\n```sh\nls -C | canny | xargs xdg-open\n```\nThis opens the selected file with it's standard application.\n\nFor more ways to use `canny` check out the `examples` directory.  \n\n### Html Parser\n- when run with the `--tags` flag, canny will look for HTML tags (excluding semantics) and makes tag bodies clickable.\n- this function allows for a predefinition of clickable elements, in contrast to the default case, where every non-whitespace character is clickable\n- if the tags are nested, only the highest level of tags is clickable\n- in the case ther are no tags in the text, every word will be tokenized and clickable.\n\n<p align=\"center\">\n  <img width=70% src=\"https://github.com/Pieli/canny/blob/main/assets/ice-cream.gif\" />\n</p>\n\n\n## Installation\n> [!Note]\n> only tested / written for linux\n\nYou can install `canny` from the PyPI repositories using the following command:\n```\npip install canny\n```\nor check the realease page for a manual installation.\n\non ubuntu first install ncurses-term:\n```\napt install ncurses-term\n```\n\n\n## Issues\n\n> [!Important]\n> This tool currently supports python3.10 and upwards\n\nOn version with a python version lower than 3.10 the `curses.BUTTON5` constant is not supported.\n\nPlease report possible issues [here](https://github.com/Pieli/canny/issues). \n\n## License\n\nThis project is licensed under the [GPLv3 License](LICENSE).\n\n---\nMade with love by \ud83e\udd9d\n\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "A filter with an pointer interface \ud83e\udd9d",
    "version": "0.0.1",
    "project_urls": {
        "Bug Tracker": "https://github.com/Pieli/canny/issues",
        "Homepage": "https://github.com/Pieli/canny"
    },
    "split_keywords": [
        "vim",
        "bash",
        "cli",
        "unix",
        "rice",
        "tui",
        "hci",
        "interaction",
        "unix-philosophy",
        "canny"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c6a880871eba97360e3c3e16e103cbe6dbea1779792cc07e11292262e26f97e6",
                "md5": "8f3bfbd60e7709eac4b1163b30648e5d",
                "sha256": "ce471543bff79a18181f2938b7233f799fd0cc48c6f651a2a275c11c9c8569d5"
            },
            "downloads": -1,
            "filename": "coating-0.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8f3bfbd60e7709eac4b1163b30648e5d",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 19871,
            "upload_time": "2024-01-19T23:19:11",
            "upload_time_iso_8601": "2024-01-19T23:19:11.105864Z",
            "url": "https://files.pythonhosted.org/packages/c6/a8/80871eba97360e3c3e16e103cbe6dbea1779792cc07e11292262e26f97e6/coating-0.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bbee0ace101877647501422e46ab6fb876bdb64d20ded739be00068f9878f230",
                "md5": "9ead609071d3ad1969ca4e19f3f19421",
                "sha256": "64e85719e258f82cb7eba26619122e950d71fa727ff5eeea8e4f8fb779cd75ec"
            },
            "downloads": -1,
            "filename": "coating-0.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "9ead609071d3ad1969ca4e19f3f19421",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 20436,
            "upload_time": "2024-01-19T23:19:13",
            "upload_time_iso_8601": "2024-01-19T23:19:13.212558Z",
            "url": "https://files.pythonhosted.org/packages/bb/ee/0ace101877647501422e46ab6fb876bdb64d20ded739be00068f9878f230/coating-0.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-19 23:19:13",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Pieli",
    "github_project": "canny",
    "github_not_found": true,
    "lcname": "coating"
}
        
Elapsed time: 0.16093s