I'm not actually sure, but shouldn't defining __all__ inside your
jinja_filter.py solve the issue?

On Sat, Sep 29, 2012 at 12:09 PM, Remi Jolin <[email protected]> wrote:
> Hello,
>
> I want to add a custom filter to jinja2 and I found that there is a way to
> do that through adding a .lib.templatetools.jinja_filters.py module, so I
> tryed it...
> Every function defined in this module become a filter. But not only
> functions :-(, everything imported in this module is included in the
> filter's dict !
>
> I'm not sure this was the expected behavior.
>
> Could not it be a .lib.templatetools.py that would contain functions and a
> dict named jinja_filters that would contain the filters like in the config
> file ? jinja_filters = dict(filter_name=filter_fct, ...) ?
>
> The only change in tg.configuration.app_config.py
> change :
>         # Try to load custom filters module under
> app_package.lib.templatetools
>         try:
>             filter_package = self.package.__name__ + ".lib.templatetools"
>             autoload_lib = __import__(filter_package, {}, {},
> ['jinja_filters'])
>             autoload_filters = autoload_lib.jinja_filters.__dict__
>         except (ImportError, AttributeError):
>             autoload_filters = {}
>
> by :
>         # Try to load custom filters module under
> app_package.lib.templatetools
>         try:
>             filter_package = self.package.__name__ + ".lib.templatetools"
>             autoload_lib = __import__(filter_package, {}, {},
> ['jinja_filters'])
>             autoload_filters = autoload_lib.jinja_filters
> # suppress the .__dict__
>         except (ImportError, AttributeError):
>             autoload_filters = {}
>
> or
>
>         # Try to load custom filters module under
> app_package.lib.templatetools
>         try:
>             filter_package = self.package.__name__ + ".lib.templatetools"
>             autoload_lib = __import__(filter_package, {}, {},
> ['jinja_filters'])
>             try:
>                 autoload_filters = autoload_lib.jinja_filters.__dict__
>             except AttributeError:
>                 autoload_filters = autoload_lib.jinja_filters
>         except (ImportError, AttributeError):
>             autoload_filters = {}
>
> to support both...
>
> --
> You received this message because you are subscribed to the Google Groups
> "TurboGears" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/turbogears?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"TurboGears" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/turbogears?hl=en.

Reply via email to