src/eric7/VirtualEnv/VirtualenvMeta.py

branch
eric7
changeset 11230
8a15b05eeee3
parent 11090
f5f5f5803935
diff -r 16a129d168f9 -r 8a15b05eeee3 src/eric7/VirtualEnv/VirtualenvMeta.py
--- a/src/eric7/VirtualEnv/VirtualenvMeta.py	Wed Apr 23 17:23:57 2025 +0200
+++ b/src/eric7/VirtualEnv/VirtualenvMeta.py	Wed Apr 23 18:02:09 2025 +0200
@@ -4,7 +4,7 @@
 #
 
 """
-Module implementing a dataclass containing the metadata of a virtual environment.
+Module implementing a data class containing the metadata of a virtual environment.
 """
 
 from dataclasses import asdict, dataclass
@@ -20,12 +20,11 @@
     path: str = ""  # directory of the virtual environment (empty for a global one)
     interpreter: str = ""  # path of the Python interpreter
     is_global: bool = False  # flag indicating a global environment
-    is_conda: bool = False  # flag indicating an Anaconda environment
-    is_remote: bool = False  # flag indicating a remotely accessed environment
+    environment_type: str = "standard"  # virtual environment type
     exec_path: str = ""  # string to be prefixed to the PATH environment setting
     description: str = ""  # description of the environment
-    is_eric_server: bool = False  # flag indicating an eric-ide server environment
     eric_server: str = ""  # server name the environment belongs to
+    meta_version: int = 2  # version number of the meta data structure
 
     def as_dict(self):
         """
@@ -46,15 +45,24 @@
         @return created metadata object
         @rtype VirtualenvMetaData
         """
+        if data.get("meta_version", 1) < 2:
+            # convert from meta version 1
+            if data.get("is_conda", False):
+                data["environment_type"] = "conda"
+            elif data.get("is_remote", False):
+                data["environment_type"] = "remote"
+            elif data.get("is_eric_server", False):
+                data["environment_type"] = "eric_server"
+            else:
+                data["environment_type"] = "standard"
+
         return cls(
             name=data["name"],
             path=data.get("path", ""),
             interpreter=data.get("interpreter", ""),
             is_global=data.get("is_global", False),
-            is_conda=data.get("is_conda", False),
-            is_remote=data.get("is_remote", False),
+            environment_type=data.get("environment_type", "standard"),
             exec_path=data.get("exec_path", ""),
             description=data.get("description", ""),
-            is_eric_server=data.get("is_eric_server", False),
             eric_server=data.get("eric_server", ""),
         )

eric ide

mercurial