(self)
| 2006 | self.item_validators.append(item_validator) |
| 2007 | |
| 2008 | def description(self): |
| 2009 | # Cases |
| 2010 | # 1) self.items is array, self.dimensions is 1 |
| 2011 | # a) free_length=True |
| 2012 | # b) free_length=False |
| 2013 | # 2) self.items is array, self.dimensions is 2 |
| 2014 | # (requires free_length=True) |
| 2015 | # 3) self.items is scalar (requires free_length=True) |
| 2016 | # a) dimensions=1 |
| 2017 | # b) dimensions=2 |
| 2018 | # |
| 2019 | # dimensions can be set to '1-2' to indicate the both are accepted |
| 2020 | # |
| 2021 | desc = """\ |
| 2022 | The '{plotly_name}' property is an info array that may be specified as:\ |
| 2023 | """.format(plotly_name=self.plotly_name) |
| 2024 | |
| 2025 | if isinstance(self.items, list): |
| 2026 | # ### Case 1 ### |
| 2027 | if self.dimensions in (1, "1-2"): |
| 2028 | upto = " up to" if self.free_length and self.dimensions == 1 else "" |
| 2029 | desc += """ |
| 2030 | |
| 2031 | * a list or tuple of{upto} {N} elements where:\ |
| 2032 | """.format(upto=upto, N=len(self.item_validators)) |
| 2033 | |
| 2034 | for i, item_validator in enumerate(self.item_validators): |
| 2035 | el_desc = item_validator.description().strip() |
| 2036 | desc = ( |
| 2037 | desc |
| 2038 | + """ |
| 2039 | ({i}) {el_desc}""".format(i=i, el_desc=el_desc) |
| 2040 | ) |
| 2041 | |
| 2042 | # ### Case 2 ### |
| 2043 | if self.dimensions in ("1-2", 2): |
| 2044 | assert self.free_length |
| 2045 | |
| 2046 | desc += """ |
| 2047 | |
| 2048 | * a 2D list where:""" |
| 2049 | for i, item_validator in enumerate(self.item_validators): |
| 2050 | # Update name for 2d |
| 2051 | orig_name = item_validator.plotly_name |
| 2052 | item_validator.plotly_name = "{name}[i][{i}]".format( |
| 2053 | name=self.plotly_name, i=i |
| 2054 | ) |
| 2055 | |
| 2056 | el_desc = item_validator.description().strip() |
| 2057 | desc = ( |
| 2058 | desc |
| 2059 | + """ |
| 2060 | ({i}) {el_desc}""".format(i=i, el_desc=el_desc) |
| 2061 | ) |
| 2062 | item_validator.plotly_name = orig_name |
| 2063 | else: |
| 2064 | # ### Case 3 ### |
| 2065 | assert self.free_length |
nothing calls this directly
no test coverage detected