Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Executable scripts must keep LF endings — a CRLF shebang breaks execution on HPC/Linux.
scripts/*.py eol=lf
74 changes: 37 additions & 37 deletions scripts/convert_config.py
Original file line number Diff line number Diff line change
@@ -1,37 +1,37 @@
#!/usr/bin/env python
"""
Converts the configuration files and directories in a given directory into YAML configs.
Usage:
./convert_config.py path/to/directory
"""
import os
import shutil
import sys
from pathlib import Path
import yaml
from autoconf.directory_config import RecursiveConfig, YAMLConfig
target_path = Path(sys.argv[1])
config = RecursiveConfig(str(target_path))
for key in config.keys():
value = config[key]
if isinstance(value, YAMLConfig):
continue
d = value.dict()
path = target_path / key
with open(path.with_suffix(".yaml"), "w") as f:
yaml.dump(d, f)
try:
os.remove(path.with_suffix(".ini"))
except FileNotFoundError:
pass
shutil.rmtree(path, ignore_errors=True)
#!/usr/bin/env python
"""
Converts the configuration files and directories in a given directory into YAML configs.

Usage:
./convert_config.py path/to/directory
"""

import os
import shutil
import sys
from pathlib import Path

import yaml

from autoconf.directory_config import RecursiveConfig, YAMLConfig

target_path = Path(sys.argv[1])

config = RecursiveConfig(str(target_path))

for key in config.keys():
value = config[key]
if isinstance(value, YAMLConfig):
continue

d = value.dict()
path = target_path / key
with open(path.with_suffix(".yaml"), "w") as f:
yaml.dump(d, f)

try:
os.remove(path.with_suffix(".ini"))
except FileNotFoundError:
pass

shutil.rmtree(path, ignore_errors=True)
110 changes: 55 additions & 55 deletions scripts/convert_prior_configs.py
Original file line number Diff line number Diff line change
@@ -1,55 +1,55 @@
#!/usr/bin/env python
"""
Converts JSON prior configs to YAML equivalent.
Usage:
./convert_prior_configs.py /path/to/prior/directory
"""
import json
import os
import sys
from pathlib import Path
import oyaml as yaml
ORDER = [
"type",
"mean",
"sigma",
"lower_limit",
"upper_limit",
"width_modifier",
"limits",
]
for path in Path(sys.argv[1]).rglob("*.json"):
with open(path) as f:
d = json.load(f)
with open(path.with_suffix(".yaml"), "w") as f:
yaml.dump(d, f)
os.remove(path)
def sort_dict(obj):
if isinstance(obj, dict):
return {
key: sort_dict(value)
for key, value in sorted(
obj.items(),
key=lambda item: ORDER.index(item[0]) if item[0] in ORDER else 999,
)
}
if isinstance(obj, list):
return list(map(sort_dict, obj))
return obj
for path in Path(sys.argv[1]).rglob("*.yaml"):
with open(path) as f:
d = yaml.safe_load(f)
print(sort_dict(d))
with open(path, "w") as f:
yaml.dump(sort_dict(d), f)
#!/usr/bin/env python
"""
Converts JSON prior configs to YAML equivalent.

Usage:
./convert_prior_configs.py /path/to/prior/directory
"""
import json
import os
import sys
from pathlib import Path

import oyaml as yaml

ORDER = [
"type",
"mean",
"sigma",
"lower_limit",
"upper_limit",
"width_modifier",
"limits",
]

for path in Path(sys.argv[1]).rglob("*.json"):
with open(path) as f:
d = json.load(f)

with open(path.with_suffix(".yaml"), "w") as f:
yaml.dump(d, f)

os.remove(path)


def sort_dict(obj):
if isinstance(obj, dict):
return {
key: sort_dict(value)
for key, value in sorted(
obj.items(),
key=lambda item: ORDER.index(item[0]) if item[0] in ORDER else 999,
)
}
if isinstance(obj, list):
return list(map(sort_dict, obj))
return obj


for path in Path(sys.argv[1]).rglob("*.yaml"):
with open(path) as f:
d = yaml.safe_load(f)

print(sort_dict(d))
with open(path, "w") as f:
yaml.dump(sort_dict(d), f)
46 changes: 23 additions & 23 deletions scripts/edenise.py
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
#!/usr/bin/env python
from configparser import ConfigParser
from sys import argv
from autofit.tools import edenise
def main(root_directory):
try:
config = ConfigParser()
config.read(f"{root_directory}/eden.ini")
edenise.edenise(
root_directory, config.get("eden", "name"), config.get("eden", "prefix")
)
except ValueError:
print("Usage: ./edenise.py root_directory")
exit(1)
if __name__ == "__main__":
main(argv[1])
#!/usr/bin/env python

from configparser import ConfigParser
from sys import argv

from autofit.tools import edenise


def main(root_directory):
try:
config = ConfigParser()
config.read(f"{root_directory}/eden.ini")

edenise.edenise(
root_directory, config.get("eden", "name"), config.get("eden", "prefix")
)
except ValueError:
print("Usage: ./edenise.py root_directory")
exit(1)


if __name__ == "__main__":
main(argv[1])
28 changes: 14 additions & 14 deletions scripts/generate_priors.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
#!/usr/bin/env python
"""
Generate prior configuration for all classes in a package, recursively
"""
from sys import argv
from autoconf.json_prior import generate
if __name__ == "__main__":
try:
generate.generate(argv[1])
except KeyError:
print("Usage: ./generate_priors.py /path/to/project")
#!/usr/bin/env python
"""
Generate prior configuration for all classes in a package, recursively
"""

from sys import argv

from autoconf.json_prior import generate

if __name__ == "__main__":
try:
generate.generate(argv[1])
except KeyError:
print("Usage: ./generate_priors.py /path/to/project")
Loading