PyLg/pylg/settings_to_yml.py

64 lines
1.9 KiB
Python
Raw Normal View History

2019-07-31 20:08:05 +02:00
"""Convert old-style settings.py to new-style settings.yml."""
import warnings
import sys
from os import path
def convert(source, destination):
"""Convert source python settings file to destination yml file.
Parameters
----------
source : str
File name of the old-style Python settings file.
destination: str
File name for the new-style YAML settings file.
"""
with open(source, 'r') as src, open(destination, 'w') as dst:
for line in src:
if not line.lstrip().startswith('#') and '=' in line:
key, val = line.split('=')
key = key.strip().lower()
val = val.strip()
dst.write("{}: {}\n".format(key, val))
else:
dst.write(line)
def settings_to_yml():
"""Convert user settings file from old-style python to new-style YAML."""
settings_py = "pylg_settings.py"
root_dir = path.dirname(sys.modules['__main__'].__file__)
settings_py_path = path.join(root_dir, settings_py)
if path.isfile(settings_py_path):
warnings.warn(
"Deprecated {} found".format(settings_py),
DeprecationWarning,
)
settings_yml = "{}.yml".format(settings_py[:-3])
settings_yml_path = path.join(root_dir, settings_yml)
if path.isfile(settings_yml_path):
warnings.warn(
"Could not convert {py} to {yml}, {yml} already exists. "
"If this is the converted settings file, delete {py} to get "
"rid of this warning."
.format(py=settings_py, yml=settings_yml),
DeprecationWarning,
)
return
warnings.warn(
"Converting {} to {}".format(settings_py, settings_yml),
DeprecationWarning,
)
convert(settings_py_path, settings_yml_path)
if __name__ == "__main__": # pragma: no cover
settings_to_yml()