eric7/Plugins/WizardPlugins/SetupWizard/SetupCfgUtilities.py

Sat, 02 Jul 2022 18:53:56 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 02 Jul 2022 18:53:56 +0200
branch
eric7
changeset 9201
2f1ccadee231
child 9205
b75da2ba2a1a
permissions
-rw-r--r--

setup Wizard
- added support for 'project_urls'
- added support for 'entry_points'
- added a variant to create a 'setup.cfg' file
- added a variant to create a 'pyproject.toml' file

9201
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3 # Copyright (c) 2022 Detlev Offenbach <detlev@die-offenbachs.de>
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing some utility functions for setup.cfg creation.
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 #
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 # http://setuptools.readthedocs.io/en/latest/setuptools.html#specifying-values
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 #
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 # str - simple string
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 # list-comma - dangling list or string of comma-separated values
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 # list-semi - dangling list or string of semicolon-separated values
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 # bool - True is 1, yes, true
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 # dict - list-comma where keys are separated from values by =
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 #
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 def _bool2string(value):
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 """
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 Function to convert a bool value to a setup.cfg string.
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 @param value bool value to be converted
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 @type bool
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 @return setup.cfg string
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 @rtype str
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 """
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 return "True" if value else "False"
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 def _list2string(value):
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 """
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 Function to convert a list value to a setup.cfg string.
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 @param value list value to be converted
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 @type list
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 @return setup.cfg string
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 @rtype str
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 """
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 if value:
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 return "\n{0}".format("\n".join(sorted(filter(None, value))))
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 def _dict2list(value):
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 """
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 Function to convert a dict value to a setup.cfg list string.
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 @param value dict value to be converted
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 @type dict
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 @yield setup.cfg string
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 @ytype str
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 """
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 for k, v in value.items():
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 yield "{0} = {1}".format(k, v)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 def _dict2string(value):
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 """
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 Function to convert a dict value to a setup.cfg string.
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 @param value dict value to be converted
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 @type dict
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 @return setup.cfg string
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 @rtype str
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 """
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 return _list2string(list(_dict2list(value)))
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 def toString(value):
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 """
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 Function to convert a value to a setup.cfg string
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 @param value value to be converted
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 @type bool, list, set, tuple or dict
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 @return setup.cfg string
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 @rtype str
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 """
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 if isinstance(value, bool):
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 return _bool2string(value)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 if isinstance(value, (list, set, tuple)):
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 return _list2string(value)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 if isinstance(value, dict):
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 return _dict2string(value)
2f1ccadee231 setup Wizard
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 return str(value).rstrip()

eric ide

mercurial