MCPcopy Index your code
hub / github.com/plotly/plotly.py / get_validator

Method get_validator

plotly/validator_cache.py:17–66  ·  view source on GitHub ↗
(parent_path, prop_name)

Source from the content-addressed store, hash-verified

15
16 @staticmethod
17 def get_validator(parent_path, prop_name):
18 if ValidatorCache._json_cache is None:
19 # Load the JSON validator params from the file
20 validator_json_path = opath.join(
21 opath.dirname(__file__), "validators", "_validators.json"
22 )
23 if not opath.exists(validator_json_path):
24 raise FileNotFoundError(
25 f"Validator JSON file not found: {validator_json_path}"
26 )
27 with open(validator_json_path, "r") as f:
28 ValidatorCache._json_cache = json.load(f)
29
30 key = (parent_path, prop_name)
31 if key not in ValidatorCache._cache:
32 if "." not in parent_path and prop_name == "type":
33 # Special case for .type property of traces
34 validator = LiteralValidator("type", parent_path, parent_path)
35 else:
36 lookup_name = None
37 if parent_path == "layout":
38 from .graph_objects import Layout
39
40 match = Layout._subplotid_prop_re.match(prop_name)
41 if match:
42 lookup_name = match.group(1)
43
44 lookup_name = lookup_name or prop_name
45 lookup = f"{parent_path}.{lookup_name}" if parent_path else lookup_name
46
47 validator_item = ValidatorCache._json_cache.get(lookup)
48 validator_classname = validator_item["superclass"]
49 if validator_classname in DERIVED_CLASSES:
50 # If the superclass is a derived class, we need to get the base class
51 # and pass the derived class name as a parameter
52 base_item = ValidatorCache._json_cache.get(
53 DERIVED_CLASSES[validator_classname]
54 )
55 validator_params = base_item["params"]
56 validator_params.update(validator_item["params"])
57 validator_classname = base_item["superclass"]
58 else:
59 validator_params = validator_item["params"]
60 validator_params["plotly_name"] = prop_name
61 validator_class = getattr(basevalidators, validator_classname)
62
63 validator = validator_class(**validator_params)
64 ValidatorCache._cache[key] = validator
65
66 return ValidatorCache._cache[key]

Callers 6

__init__Method · 0.80
_get_validatorMethod · 0.80
_validateMethod · 0.80
create_annotated_heatmapFunction · 0.80
_subplotid_validatorsMethod · 0.80

Calls 5

LiteralValidatorClass · 0.90
groupMethod · 0.80
loadMethod · 0.45
getMethod · 0.45
updateMethod · 0.45

Tested by

no test coverage detected