code: def create_environment(self, **kwargs):
          
          environment = super().create_environment(**kwargs)
          environment.tests.update({
              'type': self.test_type,
              'kind': self.test_kind,
              'opposite_before_self': self.test_opposite_before_self,
          })
          environment.filters.update({
              'docstringline': self.filter_docstringline,
              'pyquotesingle': self.filter_pyquotesingle,
              'derivedname': self.filter_derived_name,
              'refqualifiers': self.filter_refqualifiers,
              'attrqualifiers': self.filter_attrqualifiers,
              'supertypes': self.filter_supertypes,
              'all_contents': self.filter_all_contents,
              'pyfqn': self.filter_pyfqn,
              're_sub': lambda v, p, r: re.sub(p, r, v),
              'set': self.filter_set,
          })
  
          from pyecore import ecore
          environment.globals.update({'ecore': ecore})
  
          return environment
docs: Return a new Jinja environment.
  
          Derived classes may override method to pass additional parameters or to change the template
          loader type.