Source code for jinja2schema.config
# coding: utf-8
"""
jinja2schema.config
~~~~~~~~~~~~~~~~~~~
"""
from .order_number import OrderNumber
[docs]class Config(object):
"""Configuration."""
TYPE_OF_VARIABLE_INDEXED_WITH_VARIABLE_TYPE = 'dictionary'
"""Possible values: ``"dictionary"`` or ``"list""``.
For example, in the expression ``xs[a]`` variable ``xs`` may be a list as well as a dictionary.
This setting is used to choose between a dictionary and a list when the variable is
being indexed with another variable.
"""
TYPE_OF_VARIABLE_INDEXED_WITH_INTEGER_TYPE = 'list'
"""Possible values: ``"dictionary"``, ``"list"`` or ``"tuple"``.
For example, in the expression ``xs[2]`` variable ``xs`` may be a list as well as a dictionary or a tuple.
This setting is used to choose between a dictionary, a tuple and a list when the variable is
being indexed with an integer.
"""
BOOLEAN_CONDITIONS = False
"""Whether or not to consider conditions in ``if`` statements as boolean.
If this variable is not set, ``xs`` variable in template ``{% if xs %}{% endif %}`` will have
unknown structure. If this variable is set, ``xs`` will be a boolean.
"""
PACKAGE_NAME = ''
"""Name of the package where you want to load templates from.
This configuration is for if you are using includes in your jinja templates. This tells jinja
where to look to be able to load the included template from. If you do not plan on using ``includes``
this configuration is not needed.
"""
TEMPLATE_DIR = 'templates'
"""Name of the directory where you want to load templates from. Defaulted to ``templates``
This configuration is for if you are using includes in your jinja templates. This tells jinja
which directoy to look to be able to load the included template from. If you do not plan on using ``includes``
this configuration is not needed.
"""
ORDER_NUMBER = False
"""Add a order number to each node
Add a order number to make schema sortable.
"""
ORDER_NUMBER_SUB_COUNTER = True
"""Independent subsection order numbers
Use a separate counter in subsections as order number creator.
"""
def __init__(self,
TYPE_OF_VARIABLE_INDEXED_WITH_VARIABLE_TYPE='dictionary',
TYPE_OF_VARIABLE_INDEXED_WITH_INTEGER_TYPE='list',
BOOLEAN_CONDITIONS=False,
PACKAGE_NAME='',
TEMPLATE_DIR='templates',
ORDER_NUMBER=False,
ORDER_NUMBER_SUB_COUNTER=True):
if TYPE_OF_VARIABLE_INDEXED_WITH_VARIABLE_TYPE not in ('dictionary', 'list'):
raise ValueError('TYPE_OF_VARIABLE_INDEXED_WITH_VARIABLE_TYPE must be'
'either "dictionary" or "list"')
if TYPE_OF_VARIABLE_INDEXED_WITH_INTEGER_TYPE not in ('dictionary', 'list', 'tuple'):
raise ValueError('TYPE_OF_VARIABLE_INDEXED_WITH_VARIABLE_TYPE must be'
'either "dictionary", "tuple" or "list"')
self.TYPE_OF_VARIABLE_INDEXED_WITH_INTEGER_TYPE = TYPE_OF_VARIABLE_INDEXED_WITH_INTEGER_TYPE
self.TYPE_OF_VARIABLE_INDEXED_WITH_VARIABLE_TYPE = TYPE_OF_VARIABLE_INDEXED_WITH_VARIABLE_TYPE
self.BOOLEAN_CONDITIONS = BOOLEAN_CONDITIONS
self.PACKAGE_NAME = PACKAGE_NAME
self.TEMPLATE_DIR = TEMPLATE_DIR
self.ORDER_NUMBER = ORDER_NUMBER
self.ORDER_OBJECT = OrderNumber(number=1, enabled=self.ORDER_NUMBER,
sub_counter_enabled=ORDER_NUMBER_SUB_COUNTER)
default_config = Config()