cheetah, hacked by yelpers
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Cheetah
bench
testing
tests
.coveragerc
.gitignore
.pre-commit-config.yaml
.travis.yml
LICENSE
Makefile
README.markdown
_cheetah.c
pylintrc
requirements-dev.txt
setup.py
tox.ini

README.markdown

Build Status Coverage Status

yelp_cheetah

Cheetah is an open source template engine and code generation tool.

yelp_cheetah is cheetah with everything we don't / shouldn't use removed.

Differences

0.18.0

  • Some optimizations of list comprehensions
  • Lookup speed improvements
  • Remove enable_auto_self setting (always False)
  • Remove useNameMapper setting (always True)
  • Add an auto_self kwarg to getVar and varExists defaulting to True (will default to False and be removed in a future version).

0.17.0

  • enable_auto_self setting now defaults to False
  • Lookup involving partial templates calling partial templates is now optimized.

0.16.1

  • Add a parsing hook for cheetah variables

0.16.0

  • $foo()bar no longer compiles to foo.bar
  • gettext parsing was removed -- it never worked properly. To get gettext scannable compiled output, create a compiler, augment ._global_vars with the gettext functions.
  • $() and $[] are now syntax errors -- use ${} instead
  • ${ foo } is now a syntax error -- placeholders cannot start with whitespace
  • Escaped newlines in expressions are preserved
  • Bug with comments in a multi-line expression fixed
  • Fix several parsing issues around expressions
  • Fix several parsing issues around #def

0.15.2

  • Add an enable_auto_self setting (defaulted to True) which (when enabled) means $foo can mean either self.foo or NS['foo'] (the behaviour prior to this version). In future versions, this will default to False and will eventually be eliminated.

0.15.1

  • Introduce unused functions for lookup. These will be used for backwards / forwards compatibility in the next release.

0.15.0

  • Remove #call directive (port to #with instead)

0.14.0

  • Use io.StringIO as a replacement for DummyTransaction
  • Drop python2.6 support

0.13.2

  • Require six>=1.4.0 (for six.PY2)

0.13.1

  • Add setuptools extension to build templates. To use add setup_requires=['yelp-cheetah'] and yelp_cheetah={'directories': [...]} to automatically build templates in a package on installation.

0.13.0

  • Remove #set and #silent (replaced by #py)

0.12.1

  • Fix regression introduced in 0.11.0: $self.getVar('contains_underscore')

0.12.0

  • Fix regression introduced in 0.11.0: [$x for x in ...]

0.11.0

  • Remove instrumentation added in 0.10.0
  • Remove useAutocalling setting (always False)
  • Remove useDottedNotation setting (always False)
  • Remove mainMethodName setting (always respond)
  • Remove mainMethodNameForSubclasses setting (always writeBody)
  • Remove valueForName (now unused)
  • Implement ContextManagerPartialTemplateTestCase
  • Template now only takes a single argument namespace instead of searchList
  • Support pypy for real
  • Template.getVar / Template.varExists no longer support dots

0.10.0

  • Added instrumentation to migrate away from autocall / autokey

0.9.0

  • Tests pass under pypy (still slow)
  • "Blinged" kwargs no longer supported: $foo($bar='baz') => $foo(bar='baz')

0.8.0

  • #filter directive is gone. Use self.set_filter(filter_fn)
  • Template's signature is now Template(search_list, filter_fn)
  • All templates now have from __future__ import absolute_import

0.7.0

  • removed macro support: use #with instead.
  • much-improved support for context managers.
  • Raise on unknown settings
  • Remove settings: cheetahVarStartToken, commentStartToken, directiveStartToken, directiveEndToken
  • Fix indexing a return value #23
  • Add #py directive. This will replace #silent and #set in a future version
  • Remove <% ... %>
  • Optimize lookup of builtins, globals, and locals when detected.

0.6.0

  • Cheetah classes now invariantly have YelpCheetahTemplate as the classname
  • Variable lookup is now locals(), globals(), builtins, self, searchList
  • #extends no longer supports #extends foo.foo and should instead be #extends foo

0.5.0

  • **KWS is no longer added to every template method definition

0.4.1

  • Scan gettext variables in attributes $translator.gettext(...)
  • Scan more types of gettext variables (gettext, pgettext, npgettext).
  • Remove some runtime overhead of gettext variables

0.4.0

  • Remove dollarsigns on for lvalues
  • Remove #set global directive
  • Remove future_unicode_literals setting
  • Disallow dollarsigns in getVar / varExists

0.3.5

  • Do not create __init__.py in __pycache__ directories

0.3.4

  • Invariantly create __init__.py in subdirectories

0.3.3

  • dep argparse

0.3.2

  • cheetah-compile takes directories

0.3.1

  • Fix partial template testing infrastructure

0.3.0

  • Disallow dollarsigns on #def / #block name
  • Disallow dollarsigns in function signatures
  • Require argspec for #def
  • Requres no argspec for #block
  • Require no dollarsign in #set lvalue
  • Disallow dollarsigns in macro arguments
  • Disallow dollarsigns in #attr lvalue
  • Forbid @classmethod / @staticmethod
  • Remove #set module directive
  • Add testing infrastructure for partial template testing

0.2.1

  • Add compile_directories

0.2.0

  • Add #with directive
  • 100% test coverage

0.1.4

  • Make filters simple functions instead of classes
  • Add and make default markupsafe filter

0.1.3

  • Add Cheetah.partial_template, a system for importable template functions.

0.1.2

  • Rename Cheetah.Compiler and Cheetah.Parser to Cheetah.legacy_compiler and Cheetah.legacy_parser
  • Remove #encoding directive, cheetah source is now invariantly UTF-8

0.1.1

  • Raise on unknown macros
  • Remove #echo directive
  • Remove #* ... *# multiline comment syntax
  • Remove version checking code
  • Remove #arg directive
  • Remove #closure directive
  • Make compilation output deterministic
  • Remove <%=...%>
  • Remove ability to specify argspecs in #implements
  • Remove multiple inheritance from #extends
  • Remove #compiler directive
  • Remove global imports: (sys, os, os.path, builtin, getmtime, exists, types)
  • Default useDottedNotation to false
  • Remove allowNestedDefScopes setting
  • Remove useSearchList setting
  • Remove useKWsForPassingTrans setting
  • Remove alwaysFilterNone setting
  • Remove cheetah ternary #if ... then ... else ... directive
  • Remove namespace argument from Template.__init__
  • Support Python 3
  • Expose a global __YELP_CHEETAH__ = True in compiled source
  • Remove autoImportForExtends setting (always True)
  • Disable #extends of an imported name
  • Add setting future_unicode_literals for toggling unicode_literals in compiled source

0.1.0

  • Removed Cheetah Analyzer
  • Removed textmate highlight support
  • Remove logging of placeholders
  • Remove Django support
  • Make useAutoCalling default to False
  • Remove #cache directive
  • Remove Mondo
  • Remove RecursiveNull
  • Remove SiteHierarchy
  • Remove turbocheetah
  • Remove Servlet
  • Remove silent placeholders ($!placeholder)
  • Remove #errorCatcher directive
  • Remove WebWare support
  • Remove FileUtils
  • Remove hasName
  • Remove Indenter
  • Remove #indent directive
  • Remove cheetah eval c'$var' syntax
  • Remove import hook, live compiling, compilation cache
  • Remove CheetahWrapper
  • Remove #I18n macro
  • Improve cmdline interface
  • Remove several magical imports (time, currentTime, etc.)
  • Remove #unicode directive
  • Remove #breakpoint directive
  • Remove #unless directive
  • Remove #repeat directive
  • Remove #capture directive
  • Improve compiling interface. There are now three functions: (compile_source, compile_file, compile_to_class)
  • Remove #defmacro directive
  • Remove #include directive
  • Remove getFileContents
  • Remove preprocessors
  • Remove addSrcTimeToOutput setting
  • Remove disabledDirectives setting
  • Remove pre / post ParseDirective hooks
  • Remove placeholder hooks
  • Remove expression hooks
  • Remove I18NFunctionName
  • Remove EmptySingleLineMethods setting
  • Remove allowWhitespaceAfterDirectiveStartToken
  • Remove templateMetaclass setting
  • Require unicode for compiling source
  • Remove #transform directive
  • Remove Websafe, Markdown, CodeHighlight, Maxlen, Strip filters
  • Remove aliases for BaseFilter
  • Remove namespaces argument for Template constructor
  • Remove #stop directive
  • Remove useFilters setting (always True)
  • Remove allowPlaceholderFilterArgs setting
  • Remove encoding setting
  • Remove EOLSlurp feature
  • Remove #raw directive
  • Remove C implementation of filters
  • Remove outputMethodsBeforeAttributes setting
  • Remove defDocStrMsg setting
  • Remove handlerForExtendsDirective setting
  • Remove __str__ from all objects
  • Remove support for pypy (Delete python implementation of NameMapper)
  • Remove useStackFrames setting
  • Remove #importsettings directive
  • Remove #compiler-settings python directive
  • Remove safeConvert
  • Remove * imports
  • Raise on searchlist collisions
  • Fix bug with macros causing out-of-bounds when near end of source

0.0.1

  • Correct dependencies

0.0.0

  • Before hacking