[tool.poetry] name = "gaphor" version = "2.6.4" description = "Gaphor is the simple modeling tool written in Python." authors = [ "Arjan J. Molenaar ", "Dan Yeaw " ] readme = "README.md" homepage = "https://gaphor.org/" 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", ] include = ["gaphor/locale/*/LC_MESSAGES/*"] exclude = ["**/tests", "gaphor/conftest.py" ] [tool.poetry.dependencies] python = "^3.9" pycairo = "^1.18" PyGObject = "^3.30" gaphas = "^3.1.0" generic = "^1.0.0" tinycss2 = "^1.0.2" pyinstaller = { version = "^4.3", optional = true } pyinstaller-versionfile = { version = "^2.0.0", optional = true } poethepoet = { version = "^0.10.0", optional = true } tomli = { version = "^1.2", optional = true } [tool.poetry.dev-dependencies] tomli = "^1.2" pytest = "^6.2" pytest-cov = "^2.12" pytest-mock = "^3.6.1" pytest-runner = "^5.3" black = "^21.9b0" mypy = "0.910" pre-commit = "^2.15" sphinx = "^4.1" myst-parser = "^0.15" sphinx-rtd-theme = "^1.0" sphinxcontrib-images = "^0.9.4" babel = "^2.9.1" babelgladeextractor = "^0.7" flake8 = "^3.9" isort = "^5.9" poethepoet = "^0.10.0" [tool.poetry.extras] pyinstall = ["poethepoet", "pyinstaller", "pyinstaller-versionfile", "tomli"] poethepoet = ["poethepoet"] [tool.poetry.scripts] gaphor = "gaphor.ui:main" gaphorconvert = "gaphor.plugins.diagramexport.gaphorconvert:main" [tool.poe.tasks] test = "pytest -m 'not slow'" test-all = "pytest --cov=gaphor/" dist = "poetry build" install = "poetry install" install-nodev = "poetry install --no-dev" install-pyinstall = "poetry install --no-dev --extras pyinstall" coremodel = [ { "cmd" = "gaphor/codegen/codegen.py models/Core.gaphor gaphor/core/modeling/coremodel.py models/Core.override" }, { "cmd" = "black gaphor/core/modeling/coremodel.py" }, { "cmd" = "mypy gaphor/core/modeling" }, { "cmd" = "isort gaphor/core/modeling/coremodel.py" }, ] uml = [ { "cmd" = "python gaphor/codegen/codegen.py models/UML.gaphor gaphor/UML/uml.py models/UML.override" }, { "cmd" = "mypy gaphor/UML" }, { "cmd" = "isort gaphor/UML" }, { "cmd" = "black gaphor/UML/uml.py" }, ] sysml = [ { "cmd" = "python gaphor/codegen/codegen.py --uml_profile models/SysML.gaphor gaphor/SysML/sysml.py models/SysML.override" }, { "cmd" = "black gaphor/SysML/sysml.py" }, { "cmd" = "isort gaphor/SysML" }, { "cmd" = "mypy gaphor/SysML" }, ] raaml = [ { "cmd" = "python gaphor/codegen/codegen.py --sysml_profile models/RAAML.gaphor gaphor/RAAML/raaml.py models/RAAML.override" }, { "cmd" = "mypy gaphor/RAAML" }, { "cmd" = "isort gaphor/RAAML" }, { "cmd" = "black gaphor/RAAML/raaml.py" }, ] c4model = [ { "cmd" = "python gaphor/codegen/codegen.py --uml_profile models/C4Model.gaphor gaphor/C4Model/c4model.py models/C4Model.override" }, { "cmd" = "mypy gaphor/C4Model" }, { "cmd" = "isort gaphor/C4Model" }, { "cmd" = "black gaphor/C4Model/c4model.py" }, ] lint = "pre-commit run --all-files" docs = "sphinx-build docs docs/_build/html" clean = { "shell" = "rm -rf dist build packaging/dist packaging/build packaging/windows/file_version_info.txt packaging/gaphor-script.py docs/_build" } gaphor-script = { "script" = "packaging.make-script:make_gaphor_script" } version-file = { "script" = "packaging.make-script:make_file_version_info" } pyinstall = { "script" = "packaging.make-script:make_pyinstaller" } package = ["install-pyinstall", "gaphor-script", "version-file", "pyinstall"] win-installer = { "script" = "packaging.windows.build-win-installer:main" } gettext-pot = "pybabel extract -o po/gaphor.pot -F po/babel.ini gaphor" gettext-po = { "script" = "po.build-babel:update_po_files" } gettext-mo = { "script" = "po.build-babel:compile_mo_files" } update-translations = ["gettext-pot", "gettext-po", "gettext-mo"] [tool.poe.executor] type = "virtualenv" [tool.poetry.plugins."gaphor.appservices"] "event_manager" = "gaphor.core.eventmanager:EventManager" "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" "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.diagrams:Diagrams" "consolewindow" = "gaphor.plugins.console.consolewindow:ConsoleWindow" "elementeditor" = "gaphor.ui.elementeditor:ElementEditor" "diagram_export" = "gaphor.plugins.diagramexport:DiagramExport" "xmi_export" = "gaphor.plugins.xmiexport:XMIExport" "help" = "gaphor.services.helpservice:HelpService" [tool.poetry.plugins."gaphor.modelinglanguages"] "UML" = "gaphor.UML.modelinglanguage:UMLModelingLanguage" "SysML" = "gaphor.SysML.modelinglanguage:SysMLModelingLanguage" "C4Model" = "gaphor.C4Model.modelinglanguage:C4ModelLanguage" "RAAML" = "gaphor.RAAML.modelinglanguage:RAAMLModelingLanguage" [tool.pytest.ini_options] testpaths = [ "gaphor", "tests", "docs", ] python_files = "test_*.py" # for coverage: --cov=gaphor/ addopts = "--doctest-modules" junit_family = "xunit1" markers = "slow: marks tests as slow (deselect with '-m \"not slow\"')" [tool.coverage.run] omit = [ "*tests*", ] [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", "pytest", "tinycss2", "tomli"] skip = "flatpak,.venv,build,dist" skip_glob = "gaphor/diagram/general/__init__.py,gaphor/UML/__init__.py,gaphor/UML/*/__init__.py,gaphor/RAAML/stpa/__init__.py" [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api"