py.lib.aw_web_tools

Yohn Y. 2025-03-09 Parent:1e2c40d95710 Child:0920ae304dfd

13:376688747096 Browse Files

.. 1.202503.5 - Убран devel_mode в конструкторе класса `SimpleTmplWrapper`, поскольку он бесполезен для поставленной задачи + Добавлена фабрака объектов. Этим методом имеется возможность перечитывать страницы шаблона при каждом вызове его. Это помогает в отладке шаблонов.

setup.py src/aw_web_tools/simple_template_helper.py

     1.1 --- a/setup.py	Sun Mar 09 11:39:38 2025 +0300
     1.2 +++ b/setup.py	Sun Mar 09 16:04:43 2025 +0300
     1.3 @@ -2,7 +2,7 @@
     1.4  
     1.5  setup(
     1.6      name='aw_web_tools',
     1.7 -    version='1.202503.4',
     1.8 +    version='1.202503.5',
     1.9      packages=['aw_web_tools'],
    1.10      package_dir={'aw_web_tools': 'src/aw_web_tools'},
    1.11      description='Инструментарий для Web-разработки'
     2.1 --- a/src/aw_web_tools/simple_template_helper.py	Sun Mar 09 11:39:38 2025 +0300
     2.2 +++ b/src/aw_web_tools/simple_template_helper.py	Sun Mar 09 16:04:43 2025 +0300
     2.3 @@ -4,7 +4,7 @@
     2.4  ``Bottle.SimpleTemplate``
     2.5  """
     2.6  
     2.7 -from bottle import SimpleTemplate, TemplateError
     2.8 +from bottle import SimpleTemplate, TemplateError, static_file
     2.9  from os.path import join as p_join, isdir
    2.10  from os import getcwd
    2.11  from threading import RLock
    2.12 @@ -14,11 +14,9 @@
    2.13  
    2.14  
    2.15  class SimpleTmplWrapper(object):
    2.16 -    def __init__(self, file_name: str, devel_mode: bool = False, **static_params):
    2.17 +    def __init__(self, file_name: str, **static_params):
    2.18          """
    2.19          :param file_name: Имя файла шаблона, по которому его сможет отыскать класс ``SimpleTemplate``
    2.20 -        :param devel_mode: Режим разработки. Полезен когда шаблон постоянно изменяется в процессе работы над ним
    2.21 -                           и при каждом ответе его следует перечитывать
    2.22          :param static_params: Параметры, добавляемые в шаблон страницы при каждой генерации
    2.23          """
    2.24          try:
    2.25 @@ -28,7 +26,6 @@
    2.26              raise ValueError(f'Ошибка в инициализации шаблона: {e}')
    2.27  
    2.28          self.static_params = static_params
    2.29 -        self.devel_mode = devel_mode
    2.30  
    2.31      def __call__(self, **params):
    2.32          """\
    2.33 @@ -40,11 +37,26 @@
    2.34          """
    2.35          kw_params = self.static_params.copy()
    2.36          kw_params.update(params)
    2.37 -        if self.devel_mode:
    2.38 -            self.tmpl.prepare()
    2.39  
    2.40          return self.tmpl.render(**kw_params)
    2.41  
    2.42 +    @classmethod
    2.43 +    def init_devel_factory(cls, file_name: str, **static_params):
    2.44 +        """\
    2.45 +        Вместо объекта создаётся фабрика объектов, при кажом вызове которой инициализируется новый объект.
    2.46 +
    2.47 +        Помогает в работе над шаблонами
    2.48 +        :param file_name: Имя файла шаблона, по которому его сможет отыскать класс ``SimpleTemplate``
    2.49 +        :param static_params: Параметры, добавляемые в шаблон страницы при каждой генерации
    2.50 +        """
    2.51 +
    2.52 +        def func(*a, **kwa):
    2.53 +            obj = cls(file_name=file_name, **static_params)
    2.54 +
    2.55 +            return obj(*a, **kwa)
    2.56 +
    2.57 +        return func
    2.58 +
    2.59      @staticmethod
    2.60      def set_root(*a):
    2.61          """\