# -*- coding: utf-8 -*-

"""Constants for third-party applications."""

__all__ = ()

import typing
from anaconda_navigator.static import images

if typing.TYPE_CHECKING:
    import typing_extensions


APP_DISPLAY_NAMES: 'typing_extensions.Final[typing.Mapping[str, str]]' = {
    'console_shortcut': 'CMD.exe Prompt',
    'glueviz': 'Glueviz',
    'jupyterlab': 'JupyterLab',
    'notebook': 'Notebook',
    'orange3': 'Orange 3',
    'powershell_shortcut': 'Powershell Prompt',
    'qtconsole': 'Qt Console',
    'rstudio': 'RStudio',
    'spyder': 'Spyder',
    'vscode': 'VS Code',
}

APP_DESCRIPTIONS: 'typing_extensions.Final[typing.Mapping[str, str]]' = {
    'anaconda-fusion': (
        'Integration between Excel ® and Anaconda via Notebooks. Run data science functions, interact with results and '
        'create advanced visualizations in a code-free app inside Excel.'
    ),
    'anaconda-mosaic': (
        'Interactive exploration of larger than memory datasets. Create data sources, perform transformations and '
        'combinations.'
    ),
    'console_shortcut': (
        'Run a cmd.exe terminal with your current environment from Navigator activated'
    ),
    'glueviz': (
        'Multidimensional data visualization across files. Explore relationships within and among related datasets.'
    ),
    'jupyterlab': (
        'An extensible environment for interactive and reproducible computing, based on the Jupyter Notebook and '
        'Architecture.'
    ),
    'notebook': (
        'Web-based, interactive computing notebook environment. Edit and run human-readable docs while describing the '
        'data analysis.'
    ),
    'orange-app': (
        'Component based data mining framework. Data visualization and data analysis for novice and expert. '
        'Interactive workflows with a large toolbox.'
    ),
    'orange3': (
        'Component based data mining framework. Data visualization and data analysis for novice and expert. '
        'Interactive workflows with a large toolbox.'
    ),
    'powershell_shortcut': (
        'Run a Powershell terminal with your current environment from Navigator activated'
    ),
    'qt3dstudio': (
        'Rapidly build and prototype high quality 2D and 3D user interfaces using the built-in material and effects '
        'library or import your own design assets.'
    ),
    'qtconsole': (
        'PyQt GUI that supports inline figures, proper multiline editing with syntax highlighting, graphical calltips, '
        'and more.'
    ),
    'qtcreator': (
        'Cross platform integrated development environment (IDE) to create C++ and QML applications.'
    ),
    'rodeo': (
        'A browser-based IDE for data science with python. Includes autocomplete, syntax highlighting, IPython '
        'support.'
    ),
    'rstudio': (
        'A set of integrated tools designed to help you be more productive with R. Includes R essentials and '
        'notebooks.'
    ),
    'spyder': (
        'Scientific PYthon Development EnviRonment. Powerful Python IDE with advanced editing, interactive testing, '
        'debugging and introspection features'
    ),
    'veusz': (
        'Veusz is a GUI scientific plotting and graphing package. It is designed to produce publication-ready '
        'Postscript or PDF output.'
    ),
}

APP_IMAGES: 'typing_extensions.Final[typing.Mapping[str, str]]' = {
    'glueviz': images.GLUEVIZ_ICON_1024_PATH,
    'ipython-notebook': images.NOTEBOOK_ICON_1024_PATH,
    'ipython-qtconsole': images.QTCONSOLE_ICON_1024_PATH,
    'jupyterlab': images.JUPYTERLAB_ICON_1024_PATH,
    'notebook': images.NOTEBOOK_ICON_1024_PATH,
    'orange-app': images.ORANGE_ICON_1024_PATH,
    'orange3': images.ORANGE_ICON_1024_PATH,
    'pyvscode': images.VSCODE_ICON_1024_PATH,
    'qt3dstudio': images.QTCREATOR_ICON_1024_PATH,
    'qtconsole': images.QTCONSOLE_ICON_1024_PATH,
    'qtcreator': images.QTCREATOR_ICON_1024_PATH,
    'rodeo': images.RODEO_ICON_1024_PATH,
    'rstudio': images.RSTUDIO_ICON_1024_PATH,
    'spyder': images.SPYDER_ICON_1024_PATH,
    'spyder-app': images.SPYDER_ICON_1024_PATH,
    'veusz': images.VEUSZ_ICON_1024_PATH,
}

INVALID_APPS: 'typing_extensions.Final[typing.Sequence[str]]' = [
    'anacondafusion',
    'ipython-notebook',
    'ipython-qtconsole',
    'spyder-app',
]
