Template file uri is not really an uri.
Hello! I'm using mailman 3.1 stable and have the following problem:
I have the following path
/home/marehr/lists.brandwerder.de/brandwerder_plugin/templates/de/list:admin:notice:unsubscribe.txt
And I used
import pathlib
file_path = '/home/marehr/lists.brandwerder.de/brandwerder_plugin/templates/de/list:admin:notice:unsubscribe.txt'
pathlib.Path(file_path).resolve().as_uri()
to get
file:///home/marehr/lists.brandwerder.de/brandwerder_plugin/templates/de/list%3Aadmin%3Anotice%3Aunsubscribe.txt
but that will result in this error:
Traceback (most recent call last):
File "/home/marehr/.local/bin/mailman", line 11, in <module>
load_entry_point('mailman==3.1.0', 'console_scripts', 'mailman')()
File "/home/marehr/.local/lib/python3.6/site-packages/mailman/bin/mailman.py", line 97, in main
initialize(config_path)
File "/home/marehr/.local/lib/python3.6/site-packages/mailman/core/initialize.py", line 186, in initialize
initialize_3()
File "/home/marehr/.local/lib/python3.6/site-packages/mailman/core/initialize.py", line 179, in initialize_3
call_name(config.mailman.post_hook)
File "/home/marehr/.local/lib/python3.6/site-packages/mailman/utilities/modules.py", line 55, in call_name
return named_callable(*args, **kws)
File "/home/marehr/.local/lib/python3.6/site-packages/brandwerder_plugin/hooks.py", line 28, in post_hook
BrandwerderPlugin().post_hook()
File "/home/marehr/.local/lib/python3.6/site-packages/brandwerder_plugin/hooks.py", line 16, in post_hook
BrandwerderTemplate.apply()
File "/home/marehr/.local/lib/python3.6/site-packages/brandwerder_plugin/templates/brandwerder_template.py", line 27, in apply
template = manager.get(name, None)
File "/home/marehr/.local/lib/python3.6/site-packages/mailman/database/transaction.py", line 85, in wrapper
return function(args[0], config.db.store, *args[1:], **kws)
File "/home/marehr/.local/lib/python3.6/site-packages/mailman/model/template.py", line 105, in get
contents = protocols.get(actual_uri, **auth)
File "/home/marehr/.local/lib/python3.6/site-packages/mailman/utilities/protocols.py", line 48, in get
with open(parsed.path, **arguments) as fp:
FileNotFoundError: [Errno 2] No such file or directory: '/home/marehr/lists.brandwerder.de/brandwerder_plugin/templates/de/list%3Aadmin%3Anotice%3Aunsubscribe.txt'
When I use
file_uri = 'file://' + str(file_path)
it works (without uri encoding).
Thank you!