Cura/cura/API/__init__.py
Jaime van Kessel 081b2a28fe Expose Account API to QML
This is done by adding the API as an SingletonType to Cura.

CURA-5744
2018-09-21 17:23:30 +02:00

32 lines
1,001 B
Python

# Copyright (c) 2018 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher.
from PyQt5.QtCore import QObject, pyqtProperty
from UM.PluginRegistry import PluginRegistry
from cura.API.Backups import Backups
from cura.API.Interface import Interface
from cura.API.Account import Account
## The official Cura API that plug-ins can use to interact with Cura.
#
# Python does not technically prevent talking to other classes as well, but
# this API provides a version-safe interface with proper deprecation warnings
# etc. Usage of any other methods than the ones provided in this API can cause
# plug-ins to be unstable.
class CuraAPI(QObject):
# For now we use the same API version to be consistent.
VERSION = PluginRegistry.APIVersion
# Backups API
backups = Backups()
# Interface API
interface = Interface()
_account = Account()
@pyqtProperty(QObject, constant = True)
def account(self) -> Account:
return CuraAPI._account