You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
2.0 KiB
53 lines
2.0 KiB
# vim: fileencoding=utf-8
|
|
#
|
|
from .base_format import Format
|
|
from ..template_engine import ParametersContainer
|
|
|
|
|
|
class RawFormat(Format):
|
|
'''Класс формата raw.'''
|
|
FORMAT = 'raw'
|
|
EXECUTABLE = False
|
|
FORMAT_PARAMETERS = {'comment'}
|
|
|
|
def __init__(self, document_text: str,
|
|
template_path,
|
|
ignore_comments=False,
|
|
join_before=False,
|
|
add_header=False,
|
|
already_changed=False,
|
|
parameters=ParametersContainer()):
|
|
self.comment_symbol = parameters.comment or "#"
|
|
self._before = join_before
|
|
|
|
if add_header and not ignore_comments:
|
|
self.header, self._document_text =\
|
|
self._get_header_and_document_text(
|
|
document_text,
|
|
template_path,
|
|
already_changed=already_changed)
|
|
else:
|
|
self.header = ''
|
|
self._document_text = document_text
|
|
|
|
@property
|
|
def document_text(self):
|
|
return '{}{}'.format(self.header, self._document_text)
|
|
|
|
def join_template(self, template):
|
|
if self._before:
|
|
self._document_text = '{0}{1}{2}'.format(
|
|
template._document_text,
|
|
"" if template._document_text.
|
|
endswith("\n") else "\n",
|
|
self._document_text)
|
|
else:
|
|
self._document_text = '{0}{1}{2}'.format(
|
|
self._document_text,
|
|
"" if template._document_text.
|
|
endswith("\n") else "\n",
|
|
template._document_text)
|
|
|
|
def __bool__(self):
|
|
return bool(self.document_text)
|