# encoding: utf-8 """ |NumberingPart| and closely related objects """ from __future__ import ( absolute_import, division, print_function, unicode_literals ) from ..opc.part import XmlPart from ..shared import lazyproperty class NumberingPart(XmlPart): """ Proxy for the numbering.xml part containing numbering definitions for a document or glossary. """ @classmethod def new(cls): """ Return newly created empty numbering part, containing only the root ```` element. """ raise NotImplementedError @lazyproperty def numbering_definitions(self): """ The |_NumberingDefinitions| instance containing the numbering definitions ( element proxies) for this numbering part. """ return _NumberingDefinitions(self._element) class _NumberingDefinitions(object): """ Collection of |_NumberingDefinition| instances corresponding to the ```` elements in a numbering part. """ def __init__(self, numbering_elm): super(_NumberingDefinitions, self).__init__() self._numbering = numbering_elm def __len__(self): return len(self._numbering.num_lst)