# -*- coding: utf-8 -*-
from setuptools import setup

packages = \
['euporie', 'euporie.app', 'euporie.libs', 'euporie.libs.commonmark_extensions']

package_data = \
{'': ['*']}

install_requires = \
['Pillow>=8.2.0,<9.0.0',
 'appdirs>=1.4.4,<2.0.0',
 'jsonschema>=3.2.0,<4.0.0',
 'jupyter-client==6.1.12',
 'nbformat>=5.1.3,<6.0.0',
 'prompt-toolkit>=3.0.18,<4.0.0',
 'pyperclip>=1.8.2,<2.0.0',
 'rich>=10.1.0,<11.0.0']

extras_require = \
{'html-mtable': ['mtable>=0.1.10,<0.2.0', 'html5lib>=1.1,<2.0'],
 'images-img2unicode': ['img2unicode>=0.1a7,<0.2'],
 'images-timg': ['timg>=1.1.5,<2.0.0']}

entry_points = \
{'console_scripts': ['euporie = euporie.app:App.launch']}

setup_kwargs = {
    'name': 'euporie',
    'version': '0.1.15',
    'description': 'Euporie is a text-based user interface for running and editing Jupyter notebooks',
    'long_description': '<h1 align="center">euporie</h1>\n\n<img src="https://user-images.githubusercontent.com/12154190/117550683-79526700-b039-11eb-8a83-1828c6ee8125.png" alt="screenshot 1" width="45%" align="right" />\n\n# About\n\nEuporie is a text-based user interface for running and editing Jupyter notebooks.\n\n# Install\n\nEuporie is on pypi, so can be installed using `pip` or [`pipx`](https://pipxproject.github.io/pipx/):\n\n```bash\n# install inside a virtualenv\npip install euporie\n\n# install globally\npipx install euporie\n```\n\nYou may wish to install some optional python dependencies to render images and HTML tables (but [see below](#image-support)):\n\n```bash\npip install euporie[html-mtable,images-timg]\n```\n\n# Screenshots\n\n<p align="center">\n<img src="https://user-images.githubusercontent.com/12154190/117550685-7a839400-b039-11eb-98ac-8adb9ea2cfc3.png" alt="screenshot 2" width="19%" />\n<img src="https://user-images.githubusercontent.com/12154190/117550686-7a839400-b039-11eb-8c6f-65c3cedf2f25.png" alt="screenshot 3" width="19%" />\n<img src="https://user-images.githubusercontent.com/12154190/117550687-7b1c2a80-b039-11eb-867b-d5e9d8671495.png" alt="screenshot 4" width="19%" />\n<img src="https://user-images.githubusercontent.com/12154190/117550688-7bb4c100-b039-11eb-9419-a10c8c0f9b21.png" alt="screenshot 5" width="19%" />\n<img src="https://user-images.githubusercontent.com/12154190/117550689-7bb4c100-b039-11eb-9d90-44df4c0e0f03.png" alt="screenshot 6" width="19%" />\n</p>\n\n# Features\n\n- Execute notebooks in the terminal\n- Autocompletion in code cells\n- Rich output support, including:\n  - Markdown\n  - Tables\n  - Images\n- Open multiple notebooks side-by-side\n- Good performance with large notebook files\n\n## Image Support\n\nEuporie will attempt to render images in the best possible way it can. The following methods are supported:\n\n- **Sixel**\n\n  If supported by your terminal, euporie can show graphical images in cell outputs\n  This requires one of the following:\n\n  [`imagemagik`](https://www.imagemagick.org)\n  [`timg`](https://github.com/adzierzanowski/timg)\n  [`teimpy`](https://github.com/ar90n/teimpy)\n\n- **Kitty\'s terminal image protocol**\n\n  If your terminal supports [kitty\'s terminal graphics protocol](https://sw.kovidgoyal.net/kitty/graphics-protocol.html), euporie will use it to render images\n\n- **Ansi art**\n\n  This requires one of the following:\n\n  [`timg`](https://github.com/hzeller/timg)\n  [`catimg`](https://github.com/posva/catimg)\n  [`icat`](https://github.com/atextor/icat)\n  [`timg`](https://github.com/adzierzanowski/timg)\n  [`tiv`](https://github.com/radare/tiv)\n  [`viu`](https://github.com/atanunq/viu)\n  [`img2unicode`](https://github.com/matrach/img2unicode)\n  [`jp2a`](https://csl.name/jp2a/)\n  [`img2txt`](http://caca.zoy.org/wiki/libcaca)\n\nThe kitty & sixel image rendering methods will fall back to ansi art images when rendering images in partially obscured cells, to prevent clipped images destroying the user interface.\n\nFor SVG support, [`cairosvg`](https://cairosvg.org/) or [`imagemagik`](https://www.imagemagick.org) are required.\n\n## HTML Support\n\nEuporie will attempt to render HTML outputs. This requires one of the following:\n\n[`w3m`](http://w3m.sourceforge.net/)\n[`elinks`](http://elinks.or.cz/)\n[`lynx`](https://lynx.browser.org/)\n[`links`](http://links.twibright.com/)\n[`mtable`](https://github.com/liuyug/mtable)\n\n_Note: only HTML tables will be displayed if `mtable` is used_\n\nIf none of these commands are found in your `$PATH`, the plain text representation will be used.\n\n# Usage\n\n```\nusage: euporie [-h] [-V] [--dump | --no-dump] [--execute | --no-execute]\n               [--editing-mode {emacs,vi}]\n               [--execute-after-external-edit | --no-execute-after-external-edit]\n               [--max-notebook-width int] [--background {0,1,2,3,4}]\n               [--background-character str]\n               [--show-line-numbers | --no-show-line-numbers]\n               [--pygments-style]\n               [Path ...]\n\npositional arguments:\n  Path                  List of file names to open\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -V, --version         show program\'s version number and exit\n\nrun options:\n  --dump, --no-dump     Whether to print the rendered files to the terminal\n                        then exit\n  --execute, --no-execute\n                        Whether to execute the notebook when it is loaded\n\ninteractive mode options:\n  --editing-mode {emacs,vi}\n                        The key-binding style to use for text editing\n  --execute-after-external-edit, --no-execute-after-external-edit\n                        Whether to execute a cell immediately after editing in\n                        $EDITOR\n\ndisplay options:\n  --max-notebook-width int\n                        The maximum width of the notebook\n  --background {0,1,2,3,4}\n                        The background pattern to use\n  --background-character str\n                        The character to use to draw the background\n  --show-line-numbers, --no-show-line-numbers\n                        Whether line numbers are shown by default\n  --pygments-style\n                        The name of the pygments style for syntax highlighting\n```\n\n# Key Bindings\n\n|              Key Binding | Command                       |\n| -----------------------: | :---------------------------- |\n|          **Application** |                               |\n|                 `ctrl-n` | Create a new notebook file    |\n|                 `ctrl-o` | Open file                     |\n|                 `ctrl-w` | Close the current file        |\n|                 `ctrl-q` | Quit euporie                  |\n|                 `ctrl-s` | Save current file             |\n|           **Navigation** |                               |\n|                    `tab` | Focus next element            |\n|              `shift-tab` | Focus previous element        |\n|                      `[` | Scroll up                     |\n|                      `]` | Scroll down                   |\n|       `ctrl-up` / `home` | Go to first cell              |\n|                 `pageup` | Go up 5 cells                 |\n|               `up` / `k` | Go up one cell                |\n|             `down` / `j` | Go down one cell              |\n|               `pagedown` | Go down 5 cells               |\n|      `ctrl-down` / `end` | Go to last cell               |\n|             **Notebook** |                               |\n|                      `a` | Add new cell above            |\n|                      `b` | Add new cell below            |\n|                    `d d` | Delete current cell           |\n|                      `x` | Cut current cell              |\n|                      `c` | Copy current cell             |\n|                      `v` | Paste copied cell             |\n|                      `m` | Change cell to markdown       |\n|                      `y` | Change cell to code           |\n|                      `r` | Change cell to raw            |\n|                      `l` | Toggle line numbers           |\n|                      `e` | Edit cell in \\$EDITOR         |\n|                  `enter` | Enter cell edit mode          |\n|                 `escape` | Exit cell edit mode\\*         |\n|          `escape escape` | Exit cell edit mode quickly   |\n|  `ctrl-enter` / `ctrl-e` | Run cell\\*\\*                  |\n| `shift-enter` / `ctrl-r` | Run then select next cell\\*\\* |\n|            **Edit Mode** |                               |\n|                 `ctrl-f` | Find                          |\n|                 `ctrl-g` | Find Next                     |\n|                 `ctrl-z` | Undo                          |\n|                 `ctrl-d` | Duplicate line                |\n|                    `tab` | Indent                        |\n|              `shift-tab` | Unindent                      |\n|                 `ctrl-c` | Copy                          |\n|                 `ctrl-x` | Cut                           |\n|                 `ctrl-v` | Paste                         |\n\n> \\* There is a slight delay detecting an escape key-event. To exit edit mode quickly, double-press the escape key.\n>\n> \\*\\* These entries require your terminal to support CSI-u mode. If your terminal does not support this, it may be possible to work around this by remapping the keys in your terminal emulator - see below).\n\nWhen in edit mode, emacs style key-bindings apply.\n\n## Key Remapping\n\nBy default, VT100 terminal emulators do not distinguish between `Enter`, `Ctrl + Enter` & `Shift + Enter`. In order to work around this, it is possible to re-map these key bindings so they produce the escape code of another key. To replicate the `Ctrl + Enter` & `Shift + Enter` of Jupyter, you will need to remap the following shortcuts in your terminal:\n\n| Key Combination | Output       |\n| --------------- | ------------ |\n| `Ctrl + Enter`  | `Ctrl + F20` |\n| `Shift + Enter` | `F21`        |\n\n### xterm\n\nAdd the following to your `~/.Xresources`\n\n```\n*.vt100.translations: #override \\n\\\n    Ctrl <Key>Return: string("\\033\\[19;6~") \\n\\\n    Shift <Key>Return: string("\\033\\[20;2~") \\n\\\n```\n\n### konsole\n\nIn the menu, navigate to:\n\n`Settings` -> `Edit Current Profile` -> `Keyboard` -> `Edit`\n\nChange the existing entry for `Return+Shift` to `Return+Shift+Ctrl` (or whatever you prefer), then add the following entries:\n\n| Key combination | Output      |\n| --------------- | ----------- |\n| `Return+Ctrl`   | `\\E\\[19;6~` |\n| `Return+Shift`  | `\\E\\[20;2~` |\n\n# Roadmap\n\n- Add ability to dump formatted notebooks\n- Add command line argument parsing\n- Render outputs asynchronously in a separate thread\n- Upstream markdown tables in `rich`\n- Cell attachments\n- LaTeX\n- Widgets\n\n# Related projects\n\n- https://github.com/davidbrochart/nbterm\n\n  An alternative effort sponsored by QuantStack\n\n- https://github.com/chentau/nbtui\n\n  A cli Jupyter notebook viewer with support for kitty\'s terminal graphics protocol\n\n- https://github.com/mosiman/jupytui\n\n  A cli Jupyter notebook viewer\n\n- https://kracekumar.com/post/jut/\n\n  Another cli Jupyter notebook viewer\n',
    'author': 'Josiah Outram Halstead',
    'author_email': 'josiah@halstead.email',
    'maintainer': None,
    'maintainer_email': None,
    'url': 'https://github.com/joouha/euporie',
    'packages': packages,
    'package_data': package_data,
    'install_requires': install_requires,
    'extras_require': extras_require,
    'entry_points': entry_points,
    'python_requires': '>=3.8,<4.0',
}


setup(**setup_kwargs)
