[tool.poetry]
name = "gaphor"
version = "1.2.0"
description = "Gaphor is the simple modeling tool written in Python."
authors = [
    "Arjan J. Molenaar <gaphor@gmail.com>",
    "Dan Yeaw <dan@yeaw.me>"
]

readme = "README.md"

homepage = "https://gaphor.readthedocs.io/"
repository = "https://github.com/gaphor/gaphor"
documentation = "https://gaphor.readthedocs.io/"

keywords = ["gtk+", "diagram", "UML", "MBSE", "gaphor", "modeling"]

classifiers = [
    "Development Status :: 5 - Production/Stable",
    "Environment :: X11 Applications :: GTK",
    "Intended Audience :: Developers",
    "Intended Audience :: End Users/Desktop",
    "Intended Audience :: Information Technology",
    "License :: OSI Approved :: Apache Software License",
    "Operating System :: MacOS :: MacOS X",
    "Operating System :: Microsoft :: Windows",
    "Operating System :: POSIX",
    "Operating System :: Unix",
    "Programming Language :: Python",
    "Topic :: Multimedia :: Graphics :: Editors :: Vector-Based",
    "Topic :: Software Development :: Documentation",
]

[tool.poetry.dependencies]
python = "^3.7"
pycairo = "^1.18"
PyGObject = "^3.30"
gaphas = "^2.0"
importlib_metadata = "^1.4"
typing_extensions = "^3.7.4"
generic = "^1.0.0"

[tool.poetry.dev-dependencies]
tomlkit = "^0.5"
pytest = "^5.0"
pytest-cov = "^2.5"
pytest-runner = "^4.2"
black = { version = "^19.10b0", python = "^3.6" }
mypy = "0.740"
pre-commit = "^1.12"
sphinx = "^2.2"
recommonmark = "^0.6.0"
sphinx-rtd-theme = "^0.4.3"
babel = "^2.7.0"
babelgladeextractor = "^0.6.0"
flake8 = "^3.7.9"
isort = "^4.3.21"

[tool.poetry.scripts]
gaphor = 'gaphor.ui:main'
gaphorconvert = 'gaphor.tools.gaphorconvert:main'

[tool.poetry.plugins."gaphor.appservices"]
"session" = "gaphor.services.session:Session"
"help" = "gaphor.services.helpservice:HelpService"
"app_file_manager" = "gaphor.ui.appfilemanager:AppFileManager"

[tool.poetry.plugins."gaphor.services"]
"component_registry" = "gaphor.services.componentregistry:ComponentRegistry"
"event_manager" = "gaphor.core.eventmanager:EventManager"
"properties" = "gaphor.services.properties:Properties"
"undo_manager" = "gaphor.services.undomanager:UndoManager"
"element_factory" = "gaphor.core.modeling:ElementFactory"
"element_dispatcher" = "gaphor.core.modeling.elementdispatcher:ElementDispatcher"
"modeling_language" = "gaphor.services.modelinglanguage:ModelingLanguageService"
"file_manager" = "gaphor.ui.filemanager:FileManager"
"recent_files" = "gaphor.ui.recentfiles:RecentFiles"
"main_window" = "gaphor.ui.mainwindow:MainWindow"
"preferences" = "gaphor.ui.preferences:Preferences"
"export_menu" = "gaphor.ui.menufragment:MenuFragment"
"tools_menu" = "gaphor.ui.menufragment:MenuFragment"
"copy" = "gaphor.services.copyservice:CopyService"
"sanitizer" = "gaphor.UML.sanitizerservice:SanitizerService"
"namespace" = "gaphor.ui.namespace:Namespace"
"toolbox" = "gaphor.ui.toolbox:Toolbox"
"diagrams" = "gaphor.ui.mainwindow:Diagrams"
"consolewindow" = "gaphor.plugins.console:ConsoleWindow"
"elementeditor" = "gaphor.ui.elementeditor:ElementEditor"
"diagram_export" = "gaphor.plugins.diagramexport:DiagramExport"
"xmi_export" = "gaphor.plugins.xmiexport:XMIExport"

[tool.poetry.plugins."gaphor.modelinglanguages"]
"UML" = "gaphor.UML.modelinglanguage:UMLModelingLanguage"
"SysML" = "gaphor.SysML.modelinglanguage:SysMLModelingLanguage"

[tool.isort]
multi_line_output = 3
include_trailing_comma = true
force_grid_wrap = 0
use_parentheses = true
line_length = 88
known_third_party = ["cairo", "gaphas", "generic", "gi", "importlib_metadata", "pytest", "recommonmark", "setuptools", "tomlkit", "typing_extensions"]
skip = "flatpak,.venv,build,dist"
skip_glob = "*/uml2.py"
filter_files = true

[build-system]
requires = ["poetry==1.0.0b7"]
build-backend = "poetry.masonry.api"