Comments (3)
This patch effectively disables wrapping for all Django template loaders at HamlPy module load time when Django modules do not reside on file system:
=== modified file 'hamlpy/template/utils.py'
--- hamlpy/template/utils.py 2013-05-09 01:59:39 +0000
+++ hamlpy/template/utils.py 2013-10-02 08:18:29 +0000
@@ -1,6 +1,6 @@
import imp
from os import listdir
-from os.path import dirname, splitext
+from os.path import dirname, isdir, splitext
try:
from django.template import loaders
@@ -25,7 +25,10 @@
def package_contents(package):
package_path = dirname(loaders.__file__)
- contents = set([splitext(module)[0]
- for module in listdir(package_path)
- if module.endswith(MODULE_EXTENSIONS)])
+ if isdir(package_path):
+ contents = set([splitext(module)[0]
+ for module in listdir(package_path)
+ if module.endswith(MODULE_EXTENSIONS)])
+ else:
+ contents = set()
return contents
With this change, one cannot import an arbitrary Django loader from hamlpy.template
.
Loaders hamlpy.template.loaders.HamlPyFilesystemLoader
and hamlpy.template.loaders.HamlPyAppDirectoriesLoader
are not affected by this patch and work as expected as soon as module loading error is fixed.
from hamlpy.
By the way, I think more Pythonic approach would be to provide a way for explicit wrapping of needed loaders (in a way similar to what Django cached loader does) and not automatically create wrappers for everything we can find on a file system.
from hamlpy.
This is fixed in 84abeed (courtesy of @KACAH).
from hamlpy.
Related Issues (20)
- %a processing bug HOT 1
- jinja2 macro and call tags closed as blocks HOT 1
- Python3 support for hamlpy HOT 10
- HamlPy comment before else produces incorrect output
- Not found on PyPi
- JS inline comments // don't work
- Reverse HTML to HamlPy compiler
- Can't find templatize HOT 2
- "or" statement does not work as expected in "if" tests
- Django if-else tags common inner content HOT 1
- support for :preserve tag?
- Load / extends html file
- HamlPy linter?
- Can't encode UTF8 characters in shell
- Quoting issues when using inline variable with filter
- Using a "with" statement does not close the tag properly HOT 2
- Hamlpy on django 1.11 uses the standard django-templates instead hamlpy HOT 2
- How to write an attribute starting with the symbol #
- A ReDoS vulnerability exists in nodes.py
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hamlpy.