[UPD] script pycharm: improve pycharm configuration management
- support default configuration
This commit is contained in:
parent
87730b5221
commit
8632c1501d
2 changed files with 191 additions and 144 deletions
|
|
@ -1,27 +1,31 @@
|
||||||
name,script_path,parameters,folder
|
name,script_path,parameters,folder,default
|
||||||
run,./odoo/odoo-bin,--limit-time-real 999999 -c config.conf,run
|
run,./odoo/odoo-bin,--limit-time-real 999999 -c config.conf,run,True
|
||||||
run_parallel_test,./script/test/run_parallel_test.py,,test
|
run_parallel_test,./script/test/run_parallel_test.py,,test,
|
||||||
cg_cg,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d code_generator -i code_generator_code_generator,code_generator
|
cg_cg,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d code_generator -i code_generator_code_generator,code_generator,
|
||||||
cg_cg_template,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d template -i code_generator_template_code_generator,code_generator_template
|
cg_cg_template,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d template -i code_generator_template_code_generator,code_generator_template,
|
||||||
code_generator_auto_backup,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d code_generator -i code_generator_auto_backup,code_generator
|
code_generator_auto_backup,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d code_generator -i code_generator_auto_backup,code_generator,
|
||||||
code_generator_demo,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d code_generator -i code_generator_demo,code_generator
|
code_generator_demo,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d code_generator -i code_generator_demo,code_generator,
|
||||||
code_generator_demo_export_helpdesk,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d code_generator -i code_generator_demo_export_helpdesk,code_generator
|
code_generator_demo_export_helpdesk,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d code_generator -i code_generator_demo_export_helpdesk,code_generator,
|
||||||
code_generator_demo_export_website,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d code_generator -i code_generator_demo_export_website,code_generator
|
code_generator_demo_export_website,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d code_generator -i code_generator_demo_export_website,code_generator,
|
||||||
code_generator_demo_export_website_attachments,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d code_generator -i code_generator_demo_export_website_attachments,code_generator
|
code_generator_demo_export_website_attachments,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d code_generator -i code_generator_demo_export_website_attachments,code_generator,
|
||||||
code_generator_demo_internal,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d code_generator -i code_generator_demo_internal,code_generator
|
code_generator_demo_internal,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d code_generator -i code_generator_demo_internal,code_generator,
|
||||||
code_generator_demo_internal_inherit,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d code_generator -i code_generator_demo_internal_inherit,code_generator
|
code_generator_demo_internal_inherit,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d code_generator -i code_generator_demo_internal_inherit,code_generator,
|
||||||
code_generator_demo_mariadb_sql_example_1,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d code_generator -i code_generator_demo_mariadb_sql_example_1,code_generator
|
code_generator_demo_mariadb_sql_example_1,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d code_generator -i code_generator_demo_mariadb_sql_example_1,code_generator,
|
||||||
code_generator_demo_portal,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d code_generator -i code_generator_demo_portal,code_generator
|
code_generator_demo_portal,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d code_generator -i code_generator_demo_portal,code_generator,
|
||||||
code_generator_demo_theme_website,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d code_generator -i code_generator_demo_theme_website,code_generator
|
code_generator_demo_theme_website,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d code_generator -i code_generator_demo_theme_website,code_generator,
|
||||||
code_generator_demo_website_leaflet,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d code_generator -i code_generator_demo_website_leaflet,code_generator
|
code_generator_demo_website_leaflet,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d code_generator -i code_generator_demo_website_leaflet,code_generator,
|
||||||
code_generator_demo_website_multiple_snippet,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d code_generator -i code_generator_demo_website_multiple_snippet,code_generator
|
code_generator_demo_website_multiple_snippet,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d code_generator -i code_generator_demo_website_multiple_snippet,code_generator,
|
||||||
code_generator_demo_website_snippet,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d code_generator -i code_generator_demo_website_snippet,code_generator
|
code_generator_demo_website_snippet,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d code_generator -i code_generator_demo_website_snippet,code_generator,
|
||||||
code_generator_migrator_demo_mariadb_sql_example_1,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d code_generator -i code_generator_migrator_demo_mariadb_sql_example_1,code_generator_migrator
|
code_generator_migrator_demo_mariadb_sql_example_1,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d code_generator -i code_generator_migrator_demo_mariadb_sql_example_1,code_generator_migrator,
|
||||||
code_generator_template_demo_internal,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d template -i code_generator_template_demo_internal,code_generator_template
|
code_generator_template_demo_internal,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d template -i code_generator_template_demo_internal,code_generator_template,
|
||||||
code_generator_template_demo_internal_inherit,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d template -i code_generator_template_demo_internal_inherit,code_generator_template
|
code_generator_template_demo_internal_inherit,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d template -i code_generator_template_demo_internal_inherit,code_generator_template,
|
||||||
code_generator_template_demo_mariadb_sql_example_1,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d template -i code_generator_template_demo_mariadb_sql_example_1,code_generator_template
|
code_generator_template_demo_mariadb_sql_example_1,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d template -i code_generator_template_demo_mariadb_sql_example_1,code_generator_template,
|
||||||
code_generator_template_demo_portal,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d template -i code_generator_template_demo_portal,code_generator_template
|
code_generator_template_demo_portal,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d template -i code_generator_template_demo_portal,code_generator_template,
|
||||||
code_generator_template_demo_sysadmin_cron,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d template -i code_generator_template_demo_sysadmin_cron,code_generator_template
|
code_generator_template_demo_sysadmin_cron,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d template -i code_generator_template_demo_sysadmin_cron,code_generator_template,
|
||||||
code_generator_template_demo_website_multiple_snippet,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d template -i code_generator_template_demo_website_multiple_snippet,code_generator_template
|
code_generator_template_demo_website_multiple_snippet,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d template -i code_generator_template_demo_website_multiple_snippet,code_generator_template,
|
||||||
code_generator_template_demo_website_snippet,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d template -i code_generator_template_demo_website_snippet,code_generator_template
|
code_generator_template_demo_website_snippet,./odoo/odoo-bin,--limit-time-real 999999 --no-http -c config.conf --stop-after-init --dev cg -d template -i code_generator_template_demo_website_snippet,code_generator_template,
|
||||||
create demo internal,./script/code_generator/new_project.py,-m demo_internal -d addons/TechnoLibre_odoo-code-generator-template,new cg project
|
create demo internal,./script/code_generator/new_project.py,-m demo_internal -d addons/TechnoLibre_odoo-code-generator-template,new cg project,
|
||||||
|
run_robotlibre,./odoo/odoo-bin,--limit-time-real 999999 -c config.conf -d robotlibre,robotlibre,
|
||||||
|
run_robotlibre_update,./odoo/odoo-bin,--limit-time-real 999999 --no-http --stop-after-init --dev cg -d robotlibre -i erplibre_devops -u erplibre_devops,robotlibre,
|
||||||
|
run_robotlibre_generate,./script/code_generator/new_project.py,-f -d ./addons/ERPLibre_erplibre_addons -m erplibre_devops,robotlibre,
|
||||||
|
|
||||||
|
|
|
||||||
|
|
|
@ -65,10 +65,22 @@ def get_config():
|
||||||
action="store_true",
|
action="store_true",
|
||||||
help="Initialize minimum configuration for Pycharm.",
|
help="Initialize minimum configuration for Pycharm.",
|
||||||
)
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--overwrite",
|
||||||
|
action="store_true",
|
||||||
|
help="Remove old data and replace it.",
|
||||||
|
)
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
if args.init or args.list_configuration or args.list_configuration_full:
|
if (
|
||||||
|
args.init
|
||||||
|
or args.list_configuration
|
||||||
|
or args.list_configuration_full
|
||||||
|
or args.overwrite
|
||||||
|
):
|
||||||
args.configuration = True
|
args.configuration = True
|
||||||
|
if args.overwrite:
|
||||||
|
args.init = True
|
||||||
else:
|
else:
|
||||||
args.configuration = False
|
args.configuration = False
|
||||||
|
|
||||||
|
|
@ -78,6 +90,7 @@ def get_config():
|
||||||
def main():
|
def main():
|
||||||
has_execute = False
|
has_execute = False
|
||||||
config = get_config()
|
config = get_config()
|
||||||
|
_logger.info(f"Work on directory {os.getcwd()}")
|
||||||
|
|
||||||
# TODO modifier vcs.xml pour le mapping des répertoires git
|
# TODO modifier vcs.xml pour le mapping des répertoires git
|
||||||
|
|
||||||
|
|
@ -120,6 +133,7 @@ def main():
|
||||||
|
|
||||||
|
|
||||||
def read_xml_and_execute(file_name, cb, name, config):
|
def read_xml_and_execute(file_name, cb, name, config):
|
||||||
|
_logger.info(f"Pycharm configuration on file {file_name}")
|
||||||
with open(file_name) as xml:
|
with open(file_name) as xml:
|
||||||
xml_as_string = xml.read()
|
xml_as_string = xml.read()
|
||||||
dct_project_xml = xmltodict.parse(xml_as_string)
|
dct_project_xml = xmltodict.parse(xml_as_string)
|
||||||
|
|
@ -133,8 +147,7 @@ def read_xml_and_execute(file_name, cb, name, config):
|
||||||
xml.write(xml_format)
|
xml.write(xml_format)
|
||||||
_logger.info(f"File {file_name} has been write.")
|
_logger.info(f"File {file_name} has been write.")
|
||||||
subprocess.call(
|
subprocess.call(
|
||||||
"prettier --tab-width 2 --print-width 999999 --write"
|
f"script/maintenance/prettier_xml.sh '{file_name}'",
|
||||||
f" '{file_name}'",
|
|
||||||
shell=True,
|
shell=True,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
|
|
@ -150,6 +163,28 @@ def add_configuration(dct_xml, file_name, config):
|
||||||
not bool(lst_component),
|
not bool(lst_component),
|
||||||
f"Missing 'project/component' into {file_name}",
|
f"Missing 'project/component' into {file_name}",
|
||||||
)
|
)
|
||||||
|
# Add python configuration
|
||||||
|
dct_component_py_conf = [
|
||||||
|
a
|
||||||
|
for a in lst_component
|
||||||
|
if a.get("@name") == "PyConsoleOptionsProvider"
|
||||||
|
]
|
||||||
|
if dct_component_py_conf:
|
||||||
|
# TODO check and force value
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
lst_component.append(
|
||||||
|
{
|
||||||
|
"@name": "PyConsoleOptionsProvider",
|
||||||
|
"option": {
|
||||||
|
"@name": "myShowDebugConsoleByDefault",
|
||||||
|
"@value": "false",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
)
|
||||||
|
has_change = True
|
||||||
|
|
||||||
|
# Add configuration
|
||||||
dct_component = [
|
dct_component = [
|
||||||
a for a in lst_component if a.get("@name") == "RunManager"
|
a for a in lst_component if a.get("@name") == "RunManager"
|
||||||
]
|
]
|
||||||
|
|
@ -157,12 +192,12 @@ def add_configuration(dct_xml, file_name, config):
|
||||||
# Create it
|
# Create it
|
||||||
dct_component = {
|
dct_component = {
|
||||||
"@name": "RunManager",
|
"@name": "RunManager",
|
||||||
"@selected": "Python.pycharm_configuration",
|
# "@selected": "Python.pycharm_configuration",
|
||||||
"recent_temporary": {
|
# "recent_temporary": {
|
||||||
"list": {
|
# "list": {
|
||||||
"item": {"@itemvalue": "Python.pycharm_configuration"}
|
# "item": {"@itemvalue": "Python.pycharm_configuration"}
|
||||||
}
|
# }
|
||||||
},
|
# },
|
||||||
"configuration": [],
|
"configuration": [],
|
||||||
"list": {"item": []},
|
"list": {"item": []},
|
||||||
}
|
}
|
||||||
|
|
@ -219,116 +254,124 @@ def add_configuration(dct_xml, file_name, config):
|
||||||
for conf in lst_configuration:
|
for conf in lst_configuration:
|
||||||
print(f"\t{conf}")
|
print(f"\t{conf}")
|
||||||
|
|
||||||
if config.init:
|
last_default = None
|
||||||
if os.path.isfile(PATH_DEFAULT_CONFIGURATION):
|
if not config.init:
|
||||||
with open(PATH_DEFAULT_CONFIGURATION) as txt:
|
return has_change
|
||||||
for default_conf in csv.DictReader(txt):
|
if not os.path.isfile(PATH_DEFAULT_CONFIGURATION):
|
||||||
conf_name = default_conf.get("name")
|
_logger.error(f"Cannot read file '{PATH_DEFAULT_CONFIGURATION}'")
|
||||||
conf_folder = default_conf.get("folder")
|
return has_change
|
||||||
conf_script_path = default_conf.get("script_path")
|
with open(PATH_DEFAULT_CONFIGURATION) as txt:
|
||||||
conf_script_path_replace = (
|
for default_conf in csv.DictReader(txt):
|
||||||
conf_script_path
|
conf_name = default_conf.get("name")
|
||||||
if not conf_script_path.startswith("./")
|
conf_folder = default_conf.get("folder")
|
||||||
else f"$PROJECT_DIR${conf_script_path[1:]}"
|
conf_script_path = default_conf.get("script_path")
|
||||||
|
conf_default = bool(default_conf.get("default"))
|
||||||
|
if conf_default:
|
||||||
|
last_default = f"Python.{conf_name}"
|
||||||
|
conf_script_path_replace = (
|
||||||
|
conf_script_path
|
||||||
|
if not conf_script_path.startswith("./")
|
||||||
|
else f"$PROJECT_DIR${conf_script_path[1:]}"
|
||||||
|
)
|
||||||
|
conf_parameter = default_conf.get("parameters")
|
||||||
|
s_unique_key = (
|
||||||
|
f"d {conf_folder} s {conf_script_path} p {conf_parameter}"
|
||||||
|
)
|
||||||
|
if (
|
||||||
|
config.overwrite
|
||||||
|
or s_unique_key not in lst_unique_configuration
|
||||||
|
):
|
||||||
|
# add it!
|
||||||
|
if not config.overwrite and conf_name in lst_configuration:
|
||||||
|
_logger.error(
|
||||||
|
f"Cannot add configuration name '{conf_name}',"
|
||||||
|
" already exist. Delete it manually."
|
||||||
)
|
)
|
||||||
conf_parameter = default_conf.get("parameters")
|
else:
|
||||||
s_unique_key = (
|
has_change = True
|
||||||
f"d {conf_folder} s"
|
lst_xml_configuration_name.append(
|
||||||
f" {conf_script_path} p"
|
{"@itemvalue": f"Python.{conf_name}"}
|
||||||
f" {conf_parameter}"
|
|
||||||
)
|
)
|
||||||
if s_unique_key not in lst_unique_configuration:
|
conf_full = {
|
||||||
# add it!
|
"@name": conf_name,
|
||||||
if conf_name in lst_configuration:
|
"@type": "PythonConfigurationType",
|
||||||
_logger.error(
|
"@factoryName": "Python",
|
||||||
f"Cannot add configuration name '{conf_name}',"
|
"module": {"@name": PROJECT_NAME},
|
||||||
" already exist. Delete it manually."
|
"option": [
|
||||||
)
|
{
|
||||||
else:
|
"@name": "INTERPRETER_OPTIONS",
|
||||||
has_change = True
|
"@value": "",
|
||||||
lst_xml_configuration_name.append(
|
},
|
||||||
{"@itemvalue": f"Python.conf_name"}
|
{"@name": "PARENT_ENVS", "@value": "true"},
|
||||||
)
|
{
|
||||||
conf_full = {
|
"@name": "SDK_HOME",
|
||||||
"@name": conf_name,
|
"@value": "$PROJECT_DIR$/.venv/bin/python",
|
||||||
"@type": "PythonConfigurationType",
|
},
|
||||||
"@factoryName": "Python",
|
{
|
||||||
"module": {"@name": PROJECT_NAME},
|
"@name": "WORKING_DIRECTORY",
|
||||||
"option": [
|
"@value": "$PROJECT_DIR$",
|
||||||
{
|
},
|
||||||
"@name": "INTERPRETER_OPTIONS",
|
{
|
||||||
"@value": "",
|
"@name": "IS_MODULE_SDK",
|
||||||
},
|
"@value": "false",
|
||||||
{"@name": "PARENT_ENVS", "@value": "true"},
|
},
|
||||||
{
|
{
|
||||||
"@name": "SDK_HOME",
|
"@name": "ADD_CONTENT_ROOTS",
|
||||||
"@value": (
|
"@value": "true",
|
||||||
"$PROJECT_DIR$/.venv/bin/python"
|
},
|
||||||
),
|
{
|
||||||
},
|
"@name": "ADD_SOURCE_ROOTS",
|
||||||
{
|
"@value": "true",
|
||||||
"@name": "WORKING_DIRECTORY",
|
},
|
||||||
"@value": "$PROJECT_DIR$",
|
{
|
||||||
},
|
"@name": "SCRIPT_NAME",
|
||||||
{
|
"@value": conf_script_path_replace,
|
||||||
"@name": "IS_MODULE_SDK",
|
},
|
||||||
"@value": "false",
|
{
|
||||||
},
|
"@name": "PARAMETERS",
|
||||||
{
|
"@value": conf_parameter,
|
||||||
"@name": "ADD_CONTENT_ROOTS",
|
},
|
||||||
"@value": "true",
|
{
|
||||||
},
|
"@name": "SHOW_COMMAND_LINE",
|
||||||
{
|
"@value": "false",
|
||||||
"@name": "ADD_SOURCE_ROOTS",
|
},
|
||||||
"@value": "true",
|
{
|
||||||
},
|
"@name": "EMULATE_TERMINAL",
|
||||||
{
|
"@value": "false",
|
||||||
"@name": "SCRIPT_NAME",
|
},
|
||||||
"@value": conf_script_path_replace,
|
{
|
||||||
},
|
"@name": "MODULE_MODE",
|
||||||
{
|
"@value": "false",
|
||||||
"@name": "PARAMETERS",
|
},
|
||||||
"@value": conf_parameter,
|
{
|
||||||
},
|
"@name": "REDIRECT_INPUT",
|
||||||
{
|
"@value": "false",
|
||||||
"@name": "SHOW_COMMAND_LINE",
|
},
|
||||||
"@value": "false",
|
{"@name": "INPUT_FILE", "@value": ""},
|
||||||
},
|
],
|
||||||
{
|
"envs": {
|
||||||
"@name": "EMULATE_TERMINAL",
|
"env": {
|
||||||
"@value": "false",
|
"@name": "PYTHONUNBUFFERED",
|
||||||
},
|
"@value": "1",
|
||||||
{
|
|
||||||
"@name": "MODULE_MODE",
|
|
||||||
"@value": "false",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"@name": "REDIRECT_INPUT",
|
|
||||||
"@value": "false",
|
|
||||||
},
|
|
||||||
{"@name": "INPUT_FILE", "@value": ""},
|
|
||||||
],
|
|
||||||
"envs": {
|
|
||||||
"env": {
|
|
||||||
"@name": "PYTHONUNBUFFERED",
|
|
||||||
"@value": "1",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"EXTENSION": {
|
|
||||||
"@ID": "PythonCoverageRunConfigurationExtension",
|
|
||||||
"@runner": "coverage.py",
|
|
||||||
},
|
|
||||||
"method": {"@v": "2"},
|
|
||||||
}
|
}
|
||||||
if conf_folder:
|
},
|
||||||
conf_full["@folderName"] = conf_folder
|
"EXTENSION": {
|
||||||
lst_configuration_full.insert(0, conf_full)
|
"@ID": "PythonCoverageRunConfigurationExtension",
|
||||||
else:
|
"@runner": "coverage.py",
|
||||||
_logger.info(
|
},
|
||||||
f"Configuration already exist: '{s_unique_key}'"
|
"method": {"@v": "2"},
|
||||||
)
|
}
|
||||||
else:
|
if conf_folder:
|
||||||
_logger.error(f"Cannot read file '{PATH_DEFAULT_CONFIGURATION}'")
|
conf_full["@folderName"] = conf_folder
|
||||||
|
lst_configuration_full.insert(0, conf_full)
|
||||||
|
else:
|
||||||
|
_logger.info(f"Configuration already exist: '{s_unique_key}'")
|
||||||
|
|
||||||
|
if last_default:
|
||||||
|
dct_component["@selected"] = last_default
|
||||||
|
dct_component["recent_temporary"] = {
|
||||||
|
"list": {"item": {"@itemvalue": last_default}}
|
||||||
|
}
|
||||||
return has_change
|
return has_change
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue