Skip to content

Commit

Permalink
Allow unknown attributes in parameters and allow to skip the validation
Browse files Browse the repository at this point in the history
Change-Id: Iccb3b20c1847cd0555a7ef0f1a4c65b0a983da6d
  • Loading branch information
adrien-berchet committed Oct 14, 2020
1 parent c9927b1 commit 8af8acf
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 56 deletions.
5 changes: 5 additions & 0 deletions tests/test_validator.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,11 @@ def test_validate_params():
data['apical']['orientation'] = [0, 0, 0]
assert_raises(ValidationError, tested.validate_neuron_params, data)

# Unknown parameters can be added at the root
params = dummy_params()
params["unknown_param"] = 0
tested.validate_neuron_params(params)

def test_empty_params_raises():
data = {'apical': {},
'axon': {},
Expand Down
12 changes: 8 additions & 4 deletions tns/generate/grower.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,22 +26,26 @@ class NeuronGrower:
"""

def __init__(self, input_parameters, input_distributions,
context=None, external_diametrizer=None):
context=None, external_diametrizer=None, skip_validation=False):
"""TNS NeuronGrower
input_parameters: the user-defined parameters
input_distributions: distributions extracted from biological data
context: an object containing contextual information
extremal_diametrizer: diametrizer function for external diametrizer module
external_diametrizer: diametrizer function for external diametrizer module
skip_validation: if set to False, the parameters and distributions are validated
"""
self.neuron = Morphology()
self.context = context

self.input_parameters = copy.deepcopy(input_parameters)
L.debug('Input Parameters: %s', input_parameters)
self.validate_params()

self.input_distributions = copy.deepcopy(input_distributions)
self.validate_distribs()

# Validate parameters and distributions
if not skip_validation:
self.validate_params()
self.validate_distribs()

# Consistency check between parameters and distributions
for tree_type in self.input_parameters['grow_types']:
Expand Down
52 changes: 1 addition & 51 deletions tns/schemas/parameters.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,30 +53,6 @@
"tree_type"
],
"additionalProperties": false
},

"limit": {
"type": "object",
"properties": {
"layer": {
"type": "integer"
},
"fraction": {
"type": "number"
}
},
"required": ["layer", "fraction"],
"additionalProperties": false
},

"limits": {
"type": "object",
"properties": {
"min": {"$ref": "#/definitions/limit"},
"target": {"$ref": "#/definitions/limit"},
"max": {"$ref": "#/definitions/limit"}
},
"additionalProperties": false
}
},

Expand All @@ -95,34 +71,8 @@
"type": "object",
"properties": {"method": {"type": "string"}},
"required": ["method"]
},
"context_constraints": {
"type": "object",
"properties": {
"apical": {"anyOf": [
{"$ref": "#/definitions/limits"},
{
"extent_to_path": {
"type": "object",
"properties": {
"slope": {
"type": "number"
},
"intercept": {
"type": "number"
}
},
"required": ["slope", "intercept"],
"additionalProperties": false
}
}
]},
"basal": {"$ref": "#/definitions/limits"}
},
"additionalProperties": false
}
},

"required": ["origin", "diameter_params", "grow_types"],
"additionalProperties": false
"required": ["origin", "diameter_params", "grow_types"]
}
2 changes: 1 addition & 1 deletion tns/version.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
""" tns version """
VERSION = "2.2.4"
VERSION = "2.2.5.dev0"

0 comments on commit 8af8acf

Please sign in to comment.