mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-13 16:59:02 +08:00
Merge pull request #4705 from Ultimaker/CURA-5840-make-plugin-sdk-use-semantic-versioning
Fixes required for semantic versioning
This commit is contained in:
commit
7a577489ae
@ -3,7 +3,6 @@
|
|||||||
|
|
||||||
from typing import TYPE_CHECKING
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
from UM.PluginRegistry import PluginRegistry
|
|
||||||
from cura.API.Interface.Settings import Settings
|
from cura.API.Interface.Settings import Settings
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
@ -23,9 +22,6 @@ if TYPE_CHECKING:
|
|||||||
|
|
||||||
class Interface:
|
class Interface:
|
||||||
|
|
||||||
# For now we use the same API version to be consistent.
|
|
||||||
VERSION = PluginRegistry.APIVersion
|
|
||||||
|
|
||||||
def __init__(self, application: "CuraApplication") -> None:
|
def __init__(self, application: "CuraApplication") -> None:
|
||||||
# API methods specific to the settings portion of the UI
|
# API methods specific to the settings portion of the UI
|
||||||
self.settings = Settings(application)
|
self.settings = Settings(application)
|
||||||
|
@ -4,7 +4,6 @@ from typing import Optional, TYPE_CHECKING
|
|||||||
|
|
||||||
from PyQt5.QtCore import QObject, pyqtProperty
|
from PyQt5.QtCore import QObject, pyqtProperty
|
||||||
|
|
||||||
from UM.PluginRegistry import PluginRegistry
|
|
||||||
from cura.API.Backups import Backups
|
from cura.API.Backups import Backups
|
||||||
from cura.API.Interface import Interface
|
from cura.API.Interface import Interface
|
||||||
from cura.API.Account import Account
|
from cura.API.Account import Account
|
||||||
@ -22,7 +21,6 @@ if TYPE_CHECKING:
|
|||||||
class CuraAPI(QObject):
|
class CuraAPI(QObject):
|
||||||
|
|
||||||
# For now we use the same API version to be consistent.
|
# For now we use the same API version to be consistent.
|
||||||
VERSION = PluginRegistry.APIVersion
|
|
||||||
__instance = None # type: "CuraAPI"
|
__instance = None # type: "CuraAPI"
|
||||||
_application = None # type: CuraApplication
|
_application = None # type: CuraApplication
|
||||||
|
|
||||||
|
@ -134,7 +134,7 @@ except ImportError:
|
|||||||
CuraVersion = "master" # [CodeStyle: Reflecting imported value]
|
CuraVersion = "master" # [CodeStyle: Reflecting imported value]
|
||||||
CuraBuildType = ""
|
CuraBuildType = ""
|
||||||
CuraDebugMode = False
|
CuraDebugMode = False
|
||||||
CuraSDKVersion = ""
|
CuraSDKVersion = "5.0.0"
|
||||||
|
|
||||||
|
|
||||||
class CuraApplication(QtApplication):
|
class CuraApplication(QtApplication):
|
||||||
@ -164,6 +164,7 @@ class CuraApplication(QtApplication):
|
|||||||
super().__init__(name = "cura",
|
super().__init__(name = "cura",
|
||||||
app_display_name = CuraAppDisplayName,
|
app_display_name = CuraAppDisplayName,
|
||||||
version = CuraVersion,
|
version = CuraVersion,
|
||||||
|
api_version = CuraSDKVersion,
|
||||||
buildtype = CuraBuildType,
|
buildtype = CuraBuildType,
|
||||||
is_debug_mode = CuraDebugMode,
|
is_debug_mode = CuraDebugMode,
|
||||||
tray_icon_name = "cura-icon-32.png",
|
tray_icon_name = "cura-icon-32.png",
|
||||||
|
@ -12,7 +12,7 @@ from UM.Qt.ListModel import ListModel
|
|||||||
from .ConfigsModel import ConfigsModel
|
from .ConfigsModel import ConfigsModel
|
||||||
|
|
||||||
|
|
||||||
## Model that holds cura packages. By setting the filter property the instances held by this model can be changed.
|
## Model that holds Cura packages. By setting the filter property the instances held by this model can be changed.
|
||||||
class PackagesModel(ListModel):
|
class PackagesModel(ListModel):
|
||||||
def __init__(self, parent = None):
|
def __init__(self, parent = None):
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
@ -70,7 +70,7 @@ class PackagesModel(ListModel):
|
|||||||
|
|
||||||
# Links is a list of dictionaries with "title" and "url". Convert this list into a dict so it's easier
|
# Links is a list of dictionaries with "title" and "url". Convert this list into a dict so it's easier
|
||||||
# to process.
|
# to process.
|
||||||
link_list = package['data']['links'] if 'links' in package['data'] else []
|
link_list = package["data"]["links"] if "links" in package["data"] else []
|
||||||
links_dict = {d["title"]: d["url"] for d in link_list}
|
links_dict = {d["title"]: d["url"] for d in link_list}
|
||||||
|
|
||||||
if "author_id" not in package["author"] or "display_name" not in package["author"]:
|
if "author_id" not in package["author"] or "display_name" not in package["author"]:
|
||||||
|
@ -172,18 +172,18 @@ class Toolbox(QObject, Extension):
|
|||||||
self._cloud_api_version = self._getCloudAPIVersion()
|
self._cloud_api_version = self._getCloudAPIVersion()
|
||||||
self._cloud_api_root = self._getCloudAPIRoot()
|
self._cloud_api_root = self._getCloudAPIRoot()
|
||||||
self._api_url = "{cloud_api_root}/cura-packages/v{cloud_api_version}/cura/v{sdk_version}".format(
|
self._api_url = "{cloud_api_root}/cura-packages/v{cloud_api_version}/cura/v{sdk_version}".format(
|
||||||
cloud_api_root=self._cloud_api_root,
|
cloud_api_root = self._cloud_api_root,
|
||||||
cloud_api_version=self._cloud_api_version,
|
cloud_api_version = self._cloud_api_version,
|
||||||
sdk_version=self._sdk_version
|
sdk_version = self._sdk_version
|
||||||
)
|
)
|
||||||
self._request_urls = {
|
self._request_urls = {
|
||||||
"authors": QUrl("{base_url}/authors".format(base_url=self._api_url)),
|
"authors": QUrl("{base_url}/authors".format(base_url = self._api_url)),
|
||||||
"packages": QUrl("{base_url}/packages".format(base_url=self._api_url)),
|
"packages": QUrl("{base_url}/packages".format(base_url = self._api_url)),
|
||||||
"plugins_showcase": QUrl("{base_url}/showcase".format(base_url=self._api_url)),
|
"plugins_showcase": QUrl("{base_url}/showcase".format(base_url = self._api_url)),
|
||||||
"plugins_available": QUrl("{base_url}/packages?package_type=plugin".format(base_url=self._api_url)),
|
"plugins_available": QUrl("{base_url}/packages?package_type=plugin".format(base_url = self._api_url)),
|
||||||
"materials_showcase": QUrl("{base_url}/showcase".format(base_url=self._api_url)),
|
"materials_showcase": QUrl("{base_url}/showcase".format(base_url = self._api_url)),
|
||||||
"materials_available": QUrl("{base_url}/packages?package_type=material".format(base_url=self._api_url)),
|
"materials_available": QUrl("{base_url}/packages?package_type=material".format(base_url = self._api_url)),
|
||||||
"materials_generic": QUrl("{base_url}/packages?package_type=material&tags=generic".format(base_url=self._api_url))
|
"materials_generic": QUrl("{base_url}/packages?package_type=material&tags=generic".format(base_url = self._api_url))
|
||||||
}
|
}
|
||||||
|
|
||||||
# Get the API root for the packages API depending on Cura version settings.
|
# Get the API root for the packages API depending on Cura version settings.
|
||||||
@ -209,11 +209,11 @@ class Toolbox(QObject, Extension):
|
|||||||
# Get the packages version depending on Cura version settings.
|
# Get the packages version depending on Cura version settings.
|
||||||
def _getSDKVersion(self) -> Union[int, str]:
|
def _getSDKVersion(self) -> Union[int, str]:
|
||||||
if not hasattr(cura, "CuraVersion"):
|
if not hasattr(cura, "CuraVersion"):
|
||||||
return self._plugin_registry.APIVersion
|
return self._application.getAPIVersion().getMajor()
|
||||||
if not hasattr(cura.CuraVersion, "CuraSDKVersion"): # type: ignore
|
if not hasattr(cura.CuraVersion, "CuraSDKVersion"): # type: ignore
|
||||||
return self._plugin_registry.APIVersion
|
return self._application.getAPIVersion().getMajor()
|
||||||
if not cura.CuraVersion.CuraSDKVersion: # type: ignore
|
if not cura.CuraVersion.CuraSDKVersion: # type: ignore
|
||||||
return self._plugin_registry.APIVersion
|
return self._application.getAPIVersion().getMajor()
|
||||||
return cura.CuraVersion.CuraSDKVersion # type: ignore
|
return cura.CuraVersion.CuraSDKVersion # type: ignore
|
||||||
|
|
||||||
@pyqtSlot()
|
@pyqtSlot()
|
||||||
@ -299,7 +299,7 @@ class Toolbox(QObject, Extension):
|
|||||||
for plugin_id in old_plugin_ids:
|
for plugin_id in old_plugin_ids:
|
||||||
# Neither the installed packages nor the packages that are scheduled to remove are old plugins
|
# Neither the installed packages nor the packages that are scheduled to remove are old plugins
|
||||||
if plugin_id not in installed_package_ids and plugin_id not in scheduled_to_remove_package_ids:
|
if plugin_id not in installed_package_ids and plugin_id not in scheduled_to_remove_package_ids:
|
||||||
Logger.log('i', 'Found a plugin that was installed with the old plugin browser: %s', plugin_id)
|
Logger.log("i", "Found a plugin that was installed with the old plugin browser: %s", plugin_id)
|
||||||
|
|
||||||
old_metadata = self._plugin_registry.getMetaData(plugin_id)
|
old_metadata = self._plugin_registry.getMetaData(plugin_id)
|
||||||
new_metadata = self._convertPluginMetadata(old_metadata)
|
new_metadata = self._convertPluginMetadata(old_metadata)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user