Factor out schema type parsing (#303).

This commit is contained in:
Dan Helfman
2025-03-17 10:46:02 -07:00
parent d75c8609c5
commit 903308864c
2 changed files with 15 additions and 11 deletions
+1 -11
View File
@@ -1,5 +1,4 @@
import collections
import decimal
import io
import itertools
import json
@@ -377,16 +376,7 @@ def add_arguments_from_schema(arguments_group, schema, unparsed_arguments, names
description = description.replace('%', '%%')
try:
argument_type = {
'string': str,
'integer': int,
'number': decimal.Decimal,
'boolean': bool,
'array': str,
}[schema_type]
except KeyError:
raise ValueError(f'Unknown type in configuration schema: {schema_type}')
argument_type = borgmatic.config.schema.parse_type(schema_type)
arguments_group.add_argument(
f"--{flag_name.replace('_', '-')}",
+14
View File
@@ -1,3 +1,4 @@
import decimal
import itertools
@@ -20,3 +21,16 @@ def get_properties(schema):
)
return schema.get('properties', {})
def parse_type(schema_type):
try:
return {
'string': str,
'integer': int,
'number': decimal.Decimal,
'boolean': bool,
'array': str,
}[schema_type]
except KeyError:
raise ValueError(f'Unknown type in configuration schema: {schema_type}')