"""
Objects generated from {{ schema_file }} for namespace {{ target_namespace }}

Generated by xsdtopy {{ version }} on {{ timestamp }}
"""

from datetime import datetime
from datetime import date
{% for additional_import in additional_imports %}
{{ additional_import }}
{% endfor %}

{% for dependency in dependencies %}
import {{ dependency }}
{% endfor %}


{% for class in constant_classes %}
class {{ class.name }}:
{% for member in class.members %}
    {{ member|replace(" ", "_")|replace("-", "_") }} = '{{ member }}'
{% endfor %}

{% endfor %}
{% for class in classes %}
class {{ class.name }}({{ class.base }}):
    """
    >>> import pytz
    >>> x = {{ class.name }}()    
{% for member in class.types %}
    >>> x.{{ member.name }} = {{ member.test_assignment }}
{% endfor %}
    >>> from lxml import etree
    >>> from xmltopy.xmlserializer import toxml, fromxml
    >>> etree.tostring(toxml(x)) == etree.tostring(toxml(fromxml(toxml(x), {{ class.name }}())))
    True
    """
    
    _xml_metadata = {'namespace': '{{ class.xml_namespace }}',
{% if class.elements %}
                     'sequence': ('{{ class.elements|join('\', \'') }}',),
{% endif %}
{% if class.attributes %}
                     'attributes': ('{{ class.attributes|join('\', \'') }}',),
{% endif %}
                     'types': { {%- for member in class.types %}'{{ member.name }}': lambda: {{ member.type }}{% if not loop.last %}, {% endif %}{% endfor -%} }
                     }

    def __init__(self):
{% if class.base != 'object' %}
        super({{ class.name }}, self).__init__()
{% endif %}
{% for member in class.members %}
        self.{{ member|replace(" ", "_") }} = None
{% endfor %}

{% endfor %}

if __name__ == "__main__":
    import doctest
    doctest.testmod()
