src/eric7/MultiProject/MultiProjectProjectMeta.py

Sat, 26 Apr 2025 12:34:32 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 26 Apr 2025 12:34:32 +0200
branch
eric7
changeset 11240
c48c615c04a3
parent 11090
f5f5f5803935
permissions
-rw-r--r--

MicroPython
- Added a configuration option to disable the support for the no longer produced Pimoroni Pico Wireless Pack.

10410
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
11090
f5f5f5803935 Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10503
diff changeset
3 # Copyright (c) 2023 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>
10410
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module defining a class containing the individual project metadata.
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 from dataclasses import asdict, dataclass
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 @dataclass
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 class MultiProjectProjectMeta:
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 """
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 Class containing the individual project metadata.
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 """
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 name: str # name of the project
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 file: str # project file name
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 uid: str # unique identifier
10503
6a37b6ac3928 Renamed some modules/variables/settings to get rid (mostly) of inappropriate words.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
22 main: bool = False # flag indicating the main project
10410
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 description: str = "" # description of the project
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 category: str = "" # name of the group
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 removed: bool = False # flag indicating a (re-)moved project
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 def as_dict(self):
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 """
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 Public method to convert the metadata into a dictionary.
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 @return dictionary containing the metadata
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 @rtype dict
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 """
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 return asdict(self)
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 @classmethod
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 def from_dict(cls, data):
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 """
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 Class method to create a metadata object from the given dictionary.
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 @param data dictionary containing the metadata
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 @type dict
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 @return created project metadata object
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 @rtype MultiProjectProjectMeta
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 """
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 return cls(
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 name=data["name"],
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 file=data["file"],
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 uid=data["uid"],
10503
6a37b6ac3928 Renamed some modules/variables/settings to get rid (mostly) of inappropriate words.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
50 main=data.get("main", False),
10410
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 description=data.get("description", ""),
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 category=data.get("category", ""),
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 removed=data.get("removed", False),
da82156f44e9 Multiproject
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 )

eric ide

mercurial