mirror of
https://github.com/roytam1/palemoon27.git
synced 2026-06-16 13:29:39 +00:00
faf71bc44a
- Bug 1181869 - Update Bindings to use normal Rooted primitives; r=shu (b5356d1610) - Bug 1182124 - Remove InternalHandle and its last use; r=bbouvier (3ea8a6e41a) - Bug 1189490 - Part 2: Stop using mozilla::LinkedList for the allocations and tenure promotions logs and use js::TraceableFifo instead. r=terrence (d383bb76e5) - Bug 1189490 - Follow ups: Move [Traceable]Fifo to js/src/ds. r=terrence (89e18e65bf) - Bug 1189809 - Remove the ill-fated DynamicTraceable; r=jonco (e1821ecdc4) - Bug 1181292 - Make JSPropertyDescriptor a StaticTraceable; r=efaust (a9efa1a42d) - spaces (1978675795) - Bug 1176620 - Use absolute_import in mach; r=ahal (4cb6d9188f) - Bug 1163112 - [mach core] Consolidate functionality between Main._run and Registrar.dispatch, r=gps (9f02ab04aa) - Bug 1182677 - Support calling a function during mach command dispatch; r=smacleod (4a6511624e) - Bug 1176698 - Use fallible allocator for attribute values in the HTML parser. r=wchen. (4da29e3a8a) - Bug 1191756: Improve tests to not always exit with status 3 (OOM); r=jonco (5f6bc24914) - put back some windows, crash and other details (9afa0117e0) - Bug 1194023 - Part 1: Filter out warnings about sort operations on CREATE INDEX statements. r=mak (b221de9e96) - Bug 1194023 - Part 2: Only check for sort operations if mozStorage logging is enabled. r=mak (be53dfc219) - Merge branch 'dev' of https://github.com/rmottola/Arctic-Fox into dev (9fb1457bf1) - Bug 1205111 - return a transient error on 401 fetching info/collections using FxA. r=rnewman (1766c092b7) - Bug 1188760 - Added a regex check to execute and executeCached of Sqlite.jsm. r=mak (ce509ec9a7) - Bug 1177709 - Avoid a TypeError in browser-content.js by making the _findAsYouType getter a normal property. r=mossop (b40f489a5d) - Bug 1199434 - Send printer error messages to the parent process to report to the user. r=Mossop (4e402ba484) - add some missing jsm, which are actally present (b2a450d2d3) - Bug 1192242 - Adjust the button design in some circumstances. r=Gijs (4a642459cd) - Bug 1195866 - Make allocations log report whether an allocation was in the nursery; r=terrence (5512ec437d) - bug 1207862 - Add DocManager::TopLevelRemoteDocs() r=davidb (6f919ad9db) - bug 1201395 - call ProxyCreated with the correct interfaces when creating top level documents r=davidb (97713189cd) - bug 1159722 - make atk expose more interfaces for proxied accessibles (529e246a13) - bug 1162654 - allow proxies to implement the document interface r=davidb (33fd1a5ed2) - Bug 930414 - Add ModuleObject and CompileModule() function r=shu (3b59e2fa52) - fix preferences (b98953f5c0) - parts of, hoping to to break classic UI Bug 951747 - [Australis] (52a5e193dc) - Bug 1152422 - Ask to save the new password in a change form with no username even if we have no logins for the site. r=dolske (e69e714b21) - Bug 1155390 - Don't prompt to update a password when there is no username field and the password is identical. r=dolske (470e9dad0e) - Bug 1145754 - Allow per-site recipes to adjust the username/password field detection for capture. r=dolske (45e31ce7e3) - Bug 1166990 - Create a wrapper object for form-like elements in password manager. r=dolske (1f48addcc0) - Bug 1166990 - Create a wrapper object for form-like elements in password manager. r=dolske (e00d01bf7a) - Bug 1166970 - Support non-<form> elements in _getFormFields. r=dolske (0478218f5c) - Bug 1166965 - Support non-<form> elements in onFormSubmit. r=dolske (bc34427760) - Bug 1167409 - 4/4 - Inititalize ScriptSourceObject even when off-main-thread compilation fails. r=smaug (0a83446019) - Bug 1176880 part 1 - Add a flag on the Debugger & Compartment to record code-coverage information. r=shu (160fc0321d) - missing parts of Bug 1254164 - Make aliasedBodyLevelLexicalBegin a uint32. (6c8129c0e1) - Bug 1176880 part 2 - Add Debugger.Script.getOffsetsCoverage. r=shu (5024d2e99b) - Bug 1176880 part 3 - Debugger.Script.getOffsetsCoverage: Add documentation. r=shu (d3d4af6d7c) - adapted from Bug 1145789 - Unify code paths for the password save and change notifications. r=MattN (be507f66e0) - add some missing locales and props (4c09b831b3) - Bug 1145913 - Make the username in the password notification editable. r=MattN (1f1ec8cc3c) - Bug 1171348 - Switch password manager to richer logging via Console.jsm. r=dolske (f999f1a4c2) - Bug 1144245 - Add a LoginTestUtils.jsm module. r=MattN (1bc74b9bff) - Bug 1147561 - Fallback to logins with the same hostPort but different scheme for the form action. r=MattN (cd210eb54e) - let var (fd473feeef) - Bug 1173748 - Part 1: allow inserting result matches at given indices. r=adw (c3671f3ea8) - Bug 1162830 - unified auto-complete tests now check what the default item is. r=mak (0194fdb717) - most of Bug 1095421 - Convert xpcshell-tests in toolkit/components/places/tests/unifiedcomplete to Bookmarks.jsm API r=mak (b1f102aca3) - Bug 1163888 - Autofilled entries in unified complete are missing the favicon even if it's available. r=markh (a618f1b1e0) - Bug 1173751 - Add unit tests for search suggestions in awesomebar. r=mak (6bb6039efa) - Bug 1173754 - Add a restrict token for search suggestions in the awesomebar. r=mak (2102660da1) - Bug 1162140 - Allow user to select search suggestions in Awesome Bar. r=adw (f5088b7eca) - Bug 1176107 - Search suggestions in awesomebar: update input and perform search with selected suggestion. r=mak (8d907c3f39) - Bug 1173748 - Part 2: mixup search suggestions at a given frecency threshold. r=adw (44f08b719e) - Bug 1192023 - Use enum class instead of CheckpointMode_ prefix. r=khuey (5e922429ca) - Bug 1203386 - Fix two implicit constructors in ActorsChild.h; r=baku (57cb7fafaf) - Bug 1068975 - Remove FileInfo from File; r=baku (4b3ceb3bd8) - Merge pull request #121 from rmottola/dev-js (6fba455908) - Bug 1192023 - Make UpdateType an enum class. r=khuey (5a1908fa73) - Bug 1182792 - Disable search suggestions in the URL bar in private windows. r=mak (55989509d7) - Bug 1184410: Track whether or not the transaction has been active on the connection thread. r=janv (44efc2f663) - Bug 1184667 - Remove some unnecessary const_casts from ActorsParent.cpp. r=janv (1dcc45534b) - Bug 1192023 - Use enum class instead of MaintenanceAction_ prefix. r=khuey (e2f6c8b0e5) - Bug 1130775 followup: Add 'override' keyword to macro-provided AddRef/Release methods for QuotaClient::GetDirectoryLockListener. rs=ehsan (bf871fd57a) - Bug 1185836: Replace several EnumerateRead calls with the new hashtable iterators. r=baku (dbfdaba7b8) - Bug 1192023 - Flatten away AppId enum. r=khuey (78522f8547) - missingbit of Bug 871846 (d8330545a0) - try to fix som emisspatch (29a6a9f63f) - bug 1109891 - part 3 - remove mGeckoTextAccessible r=tbsaunde (147c7ace9d) - Bug 1171995 - Part 6: Handle proxies in mozAccessible accessibilityHitTest and accessibilityFocusedUIElement r=tbsaunde (636508c113) - Bug 1171995 - Part 7: Check for proxy in accessibilityIsIgnored for mozButtonAccessible and mozTextAccessible r=tbsaunde (ffb5d84e85) - Bug 1187413 - Check for ProxyAccessible in mozAccessible childAt r=tbsaunde (fc06b79804) - Bug 1187417 - (Part 1) Check for ProxyAccessible in mozAccessible position r=tbsaunde (2fc3c196aa) - Bug 1187417 - (Part 2) Check for ProxyAccessible in mozAccessible size r=tbsaunde (7c7bcd9e10) - Bug 1137748 - Expose correct roles, subroles, and roledescriptions for various WAI-ARIA roles on OS X, r=surkov (d522b4b7fc) - Bug 1178018 - Add and adjust more roles, subroles, and role descriptions on OS X to match Webkit and Blink, r=surkov (d900416342) - Bug 1187609 - Check for proxies in mozAccessible role, subrole r=tbsaunde (c29076091e) - Bug 1187995 - Add proxy handling to mozTextAccessible r=tbsaunde (f6d1014aca) - Bug 1187742 - Handle proxies in mozAccessible {isEnabled,title,value,help,isExpired} r=tbsaunde (c977aa1320) - Bug 1187739 - (Part 1) Handle proxies in mozActionElements r=tbsaunde (b077cb6964) - Bug 1187739 - (Part 2) Handle proxies in mozActionElements click, value r=tbsaunde (ac604e762c) - Bug 1185836: Fix warnings r=me. (19a8596eea) - Bug 1185836. Nuke warnings from orbit. r=me (70930b2239) - bug 1191433 - add methods to downcast ProxyAccessible to DocAccessibleParent r=lsocks (9063e95d4a) - bug 1191433 - add ProxyAccessible::Document r=lsock (88e4eb64c4) - bug 1195471 - make getChildCountCB work with proxies r=davidb (86bfb6b5c4) - Bug 1187740 - Handle proxies in mozHTMLAccessible r=tbsaunde (ee018fce11) - misspatch (6e0ab73997) - Bug 1199785 - Make atk methods in nsMaiInterfaceComponent.cpp to work with ipc proxies, r=tbsaunde (173a4460ef) - Bu 1169701 - Add wrapper to get mozAccessibles from ProxyAccessibles r=tbsaunde (79e11612f1) - Bug 1172946 - (part 1) Add mozilla a11y namespace to mozAccessible.h r=tbsaunde (ce796e8af9) - Bug 1172946 - (part 2) Add handling for proxies in mozAccessible parent r=tbsaunde (a03158b8eb) - Bug 1172946 - (part 3) Add handling for proxies in mozAccessible children r=tbsaunde (c72aefa608) - Bug 1198291 - Remove exposure of the NSAccessibilityDescription attribute to guarantee we always expose AccName and AccDescription correctly, r=davidb, r=surkov (56daff1c4a) - Bug 1179147 - merror and mstyle should be exposed as AXMathRow. r=MarcoZ (b107c9fba6) - Bug 1187611 - (part 1) Handle ProxyAccessibles in mozAccessible focus r=tbsaunde (ba2524a2db) - Bug 1187611 - (part 2) Handle ProxyAccessibles in mozAccessible window r=tbsaunde (05024ee697) - Bug 1187611 - (part 3) Handle ProxyAccessibles in mozAccessible canBeFocused r=tbsaunde (93cb5e4dbb) - Bug 107957 - Fixed sorting order for password manager autocomplete. r=MattN (334b9693f8) - Bug 1169243 - Re-enable the tests disabled while investigating these failures now that the underlying machine configuration issue is resolved. (b1e7e0f434) - Bug 1168707 - Run password autofill code when a password field is added to a document outside of a <form>. r=dolske (ffb6cea44f) - Bug 930414 - Add module requestedModules field r=shu (7e6df12133) - Bug 930414 - Add module importEntries field r=shu (bc63be0a51) - Bug 930414 - Add module fields relating to exports r=shu (26a2b2a8b1) - Bug 930414 - Hook up module environements, alising everything at top level for now r=shu (e54b5c2782) - Bug 930414 - Add module scopes, using ModuleObject as the static scope and ModuleEnvironementObject as the dynamic scope r=shu (f6b271c963) - Bug 1088214 - Remove JSCLASS_IMPLEMENTS_BARRIERS now this is implemented everywhere r=terrence (db6c745c64) - Bug 930414 - Add hook for HostResolveImportedModule r=shu (8feaf54c8f) - Bug 930414 - Implement module ResolveExport method r=shu (1b79054512) - Bug 930414 - Add option for Reflect.parse to parse as a module, and allow modules to be parsed without a script r=shu (5f07bf6147) - Bug 930414 - Implement ModuleDeclarationInstantiation method r=shu (cdfedb8ba2) - Bug 1199165 - Rename isHeavyweight to needsCallObject. r=shu (ca28a2d080) - Bug 930414 - Implement ModuleEvaluation method r=shu (c0d8c2bfcb) - Bu 1193583 - Support emitting block scopes in the prologue. (r=jorendorff) (d4f2a5c8e0) - Bug 930414 - Add initial bytecode emitter support for modules r=shu (a5a865dbbe) - Bug 1193583 - Fix eval to always execute under a non-extensible lexical scope. (r=jorendorff) (11fb2a11b6) - Bug 1193583 - Teach Debugger tests that eval frames now always have a lexical environment. (r=jorendorff) (667c16944a) - Bug 1193583 - Test. (r=jorendorff) (610a2f58ed) - Bug 1193583 - Change the semantics of Debugger.evalInGlobal to be like executing a series of statements at the global level instead of like an indirect eval. (r=jimb) (fbcb2668ba) - Bug 1193583 - Fix scratchpad test that expects vars introduced by webconsole's JS evaluation to be configurable. (r=jimb) (dc7e659d15) - Bug 1199172 - Only treat non-static constructor methods as the actual class constructor. (r=shu) (93e3989329) - Bug 930414 - Fix base class initialization in ModuleBox constructor r=me on a CLOSED TREE (79e94a08da) - Bug 930414 - Check for duplicate module exports r=shu (85f4a622e4) - Bug 930414 - Implement default module exports r=shu (2098810a25) - Bug 930414 - Make module imports into defintions r=shu (563f45d217) - Bug 1201869 - Part 0: Rename MNewArray::count to MNewArray::length. r=Waldo (91769a96b5) - Bug 1201869 - Part 1: Fix the maximum length of a dense array. r=arai (e7593b0212) - Bug 1201869 - Part 2: Make an array sparse when exceeds the limit of dense array length. r=Waldo (dfb803fba2) - Bug 1200642 - Fix some more OOM handling problems r=terrence (94137d9ce3) - Bug 1203733 - Fix emitting super.prop1.prop2. (r=jorendorff) (a478a7a31b) - Bug 1155618 - Fix more out of memory handling issues r=terrence (6b317db195) - Bug 1207943 - Fix an assert in MacroAssembler::guardObjectType. r=bhackett (0df1efc695) - Bug 1201057 - Use AutoEnterOOMUnsafeRegion in places where we can't handle OOM r=terrence (66ddcd0410) - Bug 1199345 - Extend JSOP_NEWARRAY/JSOP_INITELEM_ARRAY/JSOP_SPREADCALLARRAY operand to uint32. r=Waldo (2858b788aa) - Bug 1199546 - Properly perform ToPropertyKey operations involved in computed property names in both object literals and destructuring patterns. r=abargull (6e9b58619f) - missing bit of unidentifed FOR_IN patch (d9e850e24a) - missing bit of Bug 1135708 - Implement es7 exponentiation operator. (747d361cea) - Bug 1208067 - Ensure that self-hosted functions with innner functions aren't relazified. r=jande (bb76be6bb0) - Bug 1200642 - Add OOM simulation to hastables r=terrence (d64bf852a1) - Bug 1200642 - Add checkSimulatedOOM() to AllocPolicy r=Waldo (d833f61a8d) - js: export JSPropertyDescriptor struct, fix build with --enable-shared-js specified
514 lines
17 KiB
ReStructuredText
514 lines
17 KiB
ReStructuredText
.. Do not edit this file. This file is auto-generated for PyPI by setup.py
|
|
.. using pandoc, so edits should go in the source files rather than here.
|
|
|
|
Pystache
|
|
========
|
|
|
|
.. figure:: http://defunkt.github.com/pystache/images/logo_phillips.png
|
|
:alt: mustachioed, monocled snake by David Phillips
|
|
|
|
.. figure:: https://secure.travis-ci.org/defunkt/pystache.png
|
|
:alt: Travis CI current build status
|
|
|
|
`Pystache <http://defunkt.github.com/pystache>`__ is a Python
|
|
implementation of `Mustache <http://mustache.github.com/>`__. Mustache
|
|
is a framework-agnostic, logic-free templating system inspired by
|
|
`ctemplate <http://code.google.com/p/google-ctemplate/>`__ and
|
|
`et <http://www.ivan.fomichev.name/2008/05/erlang-template-engine-prototype.html>`__.
|
|
Like ctemplate, Mustache "emphasizes separating logic from presentation:
|
|
it is impossible to embed application logic in this template language."
|
|
|
|
The `mustache(5) <http://mustache.github.com/mustache.5.html>`__ man
|
|
page provides a good introduction to Mustache's syntax. For a more
|
|
complete (and more current) description of Mustache's behavior, see the
|
|
official `Mustache spec <https://github.com/mustache/spec>`__.
|
|
|
|
Pystache is `semantically versioned <http://semver.org>`__ and can be
|
|
found on `PyPI <http://pypi.python.org/pypi/pystache>`__. This version
|
|
of Pystache passes all tests in `version
|
|
1.1.2 <https://github.com/mustache/spec/tree/v1.1.2>`__ of the spec.
|
|
|
|
Requirements
|
|
------------
|
|
|
|
Pystache is tested with--
|
|
|
|
- Python 2.4 (requires simplejson `version
|
|
2.0.9 <http://pypi.python.org/pypi/simplejson/2.0.9>`__ or earlier)
|
|
- Python 2.5 (requires
|
|
`simplejson <http://pypi.python.org/pypi/simplejson/>`__)
|
|
- Python 2.6
|
|
- Python 2.7
|
|
- Python 3.1
|
|
- Python 3.2
|
|
- Python 3.3
|
|
- `PyPy <http://pypy.org/>`__
|
|
|
|
`Distribute <http://packages.python.org/distribute/>`__ (the setuptools
|
|
fork) is recommended over
|
|
`setuptools <http://pypi.python.org/pypi/setuptools>`__, and is required
|
|
in some cases (e.g. for Python 3 support). If you use
|
|
`pip <http://www.pip-installer.org/>`__, you probably already satisfy
|
|
this requirement.
|
|
|
|
JSON support is needed only for the command-line interface and to run
|
|
the spec tests. We require simplejson for earlier versions of Python
|
|
since Python's `json <http://docs.python.org/library/json.html>`__
|
|
module was added in Python 2.6.
|
|
|
|
For Python 2.4 we require an earlier version of simplejson since
|
|
simplejson stopped officially supporting Python 2.4 in simplejson
|
|
version 2.1.0. Earlier versions of simplejson can be installed manually,
|
|
as follows:
|
|
|
|
::
|
|
|
|
pip install 'simplejson<2.1.0'
|
|
|
|
Official support for Python 2.4 will end with Pystache version 0.6.0.
|
|
|
|
Install It
|
|
----------
|
|
|
|
::
|
|
|
|
pip install pystache
|
|
|
|
And test it--
|
|
|
|
::
|
|
|
|
pystache-test
|
|
|
|
To install and test from source (e.g. from GitHub), see the Develop
|
|
section.
|
|
|
|
Use It
|
|
------
|
|
|
|
::
|
|
|
|
>>> import pystache
|
|
>>> print pystache.render('Hi {{person}}!', {'person': 'Mom'})
|
|
Hi Mom!
|
|
|
|
You can also create dedicated view classes to hold your view logic.
|
|
|
|
Here's your view class (in .../examples/readme.py):
|
|
|
|
::
|
|
|
|
class SayHello(object):
|
|
def to(self):
|
|
return "Pizza"
|
|
|
|
Instantiating like so:
|
|
|
|
::
|
|
|
|
>>> from pystache.tests.examples.readme import SayHello
|
|
>>> hello = SayHello()
|
|
|
|
Then your template, say\_hello.mustache (by default in the same
|
|
directory as your class definition):
|
|
|
|
::
|
|
|
|
Hello, {{to}}!
|
|
|
|
Pull it together:
|
|
|
|
::
|
|
|
|
>>> renderer = pystache.Renderer()
|
|
>>> print renderer.render(hello)
|
|
Hello, Pizza!
|
|
|
|
For greater control over rendering (e.g. to specify a custom template
|
|
directory), use the ``Renderer`` class like above. One can pass
|
|
attributes to the Renderer class constructor or set them on a Renderer
|
|
instance. To customize template loading on a per-view basis, subclass
|
|
``TemplateSpec``. See the docstrings of the
|
|
`Renderer <https://github.com/defunkt/pystache/blob/master/pystache/renderer.py>`__
|
|
class and
|
|
`TemplateSpec <https://github.com/defunkt/pystache/blob/master/pystache/template_spec.py>`__
|
|
class for more information.
|
|
|
|
You can also pre-parse a template:
|
|
|
|
::
|
|
|
|
>>> parsed = pystache.parse(u"Hey {{#who}}{{.}}!{{/who}}")
|
|
>>> print parsed
|
|
[u'Hey ', _SectionNode(key=u'who', index_begin=12, index_end=18, parsed=[_EscapeNode(key=u'.'), u'!'])]
|
|
|
|
And then:
|
|
|
|
::
|
|
|
|
>>> print renderer.render(parsed, {'who': 'Pops'})
|
|
Hey Pops!
|
|
>>> print renderer.render(parsed, {'who': 'you'})
|
|
Hey you!
|
|
|
|
Python 3
|
|
--------
|
|
|
|
Pystache has supported Python 3 since version 0.5.1. Pystache behaves
|
|
slightly differently between Python 2 and 3, as follows:
|
|
|
|
- In Python 2, the default html-escape function ``cgi.escape()`` does
|
|
not escape single quotes. In Python 3, the default escape function
|
|
``html.escape()`` does escape single quotes.
|
|
- In both Python 2 and 3, the string and file encodings default to
|
|
``sys.getdefaultencoding()``. However, this function can return
|
|
different values under Python 2 and 3, even when run from the same
|
|
system. Check your own system for the behavior on your system, or do
|
|
not rely on the defaults by passing in the encodings explicitly (e.g.
|
|
to the ``Renderer`` class).
|
|
|
|
Unicode
|
|
-------
|
|
|
|
This section describes how Pystache handles unicode, strings, and
|
|
encodings.
|
|
|
|
Internally, Pystache uses `only unicode
|
|
strings <http://docs.python.org/howto/unicode.html#tips-for-writing-unicode-aware-programs>`__
|
|
(``str`` in Python 3 and ``unicode`` in Python 2). For input, Pystache
|
|
accepts both unicode strings and byte strings (``bytes`` in Python 3 and
|
|
``str`` in Python 2). For output, Pystache's template rendering methods
|
|
return only unicode.
|
|
|
|
Pystache's ``Renderer`` class supports a number of attributes to control
|
|
how Pystache converts byte strings to unicode on input. These include
|
|
the ``file_encoding``, ``string_encoding``, and ``decode_errors``
|
|
attributes.
|
|
|
|
The ``file_encoding`` attribute is the encoding the renderer uses to
|
|
convert to unicode any files read from the file system. Similarly,
|
|
``string_encoding`` is the encoding the renderer uses to convert any
|
|
other byte strings encountered during the rendering process into unicode
|
|
(e.g. context values that are encoded byte strings).
|
|
|
|
The ``decode_errors`` attribute is what the renderer passes as the
|
|
``errors`` argument to Python's built-in unicode-decoding function
|
|
(``str()`` in Python 3 and ``unicode()`` in Python 2). The valid values
|
|
for this argument are ``strict``, ``ignore``, and ``replace``.
|
|
|
|
Each of these attributes can be set via the ``Renderer`` class's
|
|
constructor using a keyword argument of the same name. See the Renderer
|
|
class's docstrings for further details. In addition, the
|
|
``file_encoding`` attribute can be controlled on a per-view basis by
|
|
subclassing the ``TemplateSpec`` class. When not specified explicitly,
|
|
these attributes default to values set in Pystache's ``defaults``
|
|
module.
|
|
|
|
Develop
|
|
-------
|
|
|
|
To test from a source distribution (without installing)--
|
|
|
|
::
|
|
|
|
python test_pystache.py
|
|
|
|
To test Pystache with multiple versions of Python (with a single
|
|
command!), you can use `tox <http://pypi.python.org/pypi/tox>`__:
|
|
|
|
::
|
|
|
|
pip install 'virtualenv<1.8' # Version 1.8 dropped support for Python 2.4.
|
|
pip install 'tox<1.4' # Version 1.4 dropped support for Python 2.4.
|
|
tox
|
|
|
|
If you do not have all Python versions listed in ``tox.ini``--
|
|
|
|
::
|
|
|
|
tox -e py26,py32 # for example
|
|
|
|
The source distribution tests also include doctests and tests from the
|
|
Mustache spec. To include tests from the Mustache spec in your test
|
|
runs:
|
|
|
|
::
|
|
|
|
git submodule init
|
|
git submodule update
|
|
|
|
The test harness parses the spec's (more human-readable) yaml files if
|
|
`PyYAML <http://pypi.python.org/pypi/PyYAML>`__ is present. Otherwise,
|
|
it parses the json files. To install PyYAML--
|
|
|
|
::
|
|
|
|
pip install pyyaml
|
|
|
|
To run a subset of the tests, you can use
|
|
`nose <http://somethingaboutorange.com/mrl/projects/nose/0.11.1/testing.html>`__:
|
|
|
|
::
|
|
|
|
pip install nose
|
|
nosetests --tests pystache/tests/test_context.py:GetValueTests.test_dictionary__key_present
|
|
|
|
Using Python 3 with Pystache from source
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Pystache is written in Python 2 and must be converted to Python 3 prior
|
|
to using it with Python 3. The installation process (and tox) do this
|
|
automatically.
|
|
|
|
To convert the code to Python 3 manually (while using Python 3)--
|
|
|
|
::
|
|
|
|
python setup.py build
|
|
|
|
This writes the converted code to a subdirectory called ``build``. By
|
|
design, Python 3 builds
|
|
`cannot <https://bitbucket.org/tarek/distribute/issue/292/allow-use_2to3-with-python-2>`__
|
|
be created from Python 2.
|
|
|
|
To convert the code without using setup.py, you can use
|
|
`2to3 <http://docs.python.org/library/2to3.html>`__ as follows (two
|
|
steps)--
|
|
|
|
::
|
|
|
|
2to3 --write --nobackups --no-diffs --doctests_only pystache
|
|
2to3 --write --nobackups --no-diffs pystache
|
|
|
|
This converts the code (and doctests) in place.
|
|
|
|
To ``import pystache`` from a source distribution while using Python 3,
|
|
be sure that you are importing from a directory containing a converted
|
|
version of the code (e.g. from the ``build`` directory after
|
|
converting), and not from the original (unconverted) source directory.
|
|
Otherwise, you will get a syntax error. You can help prevent this by not
|
|
running the Python IDE from the project directory when importing
|
|
Pystache while using Python 3.
|
|
|
|
Mailing List
|
|
------------
|
|
|
|
There is a `mailing list <http://librelist.com/browser/pystache/>`__.
|
|
Note that there is a bit of a delay between posting a message and seeing
|
|
it appear in the mailing list archive.
|
|
|
|
Credits
|
|
-------
|
|
|
|
::
|
|
|
|
>>> context = { 'author': 'Chris Wanstrath', 'maintainer': 'Chris Jerdonek' }
|
|
>>> print pystache.render("Author: {{author}}\nMaintainer: {{maintainer}}", context)
|
|
Author: Chris Wanstrath
|
|
Maintainer: Chris Jerdonek
|
|
|
|
Pystache logo by `David Phillips <http://davidphillips.us/>`__ is
|
|
licensed under a `Creative Commons Attribution-ShareAlike 3.0 Unported
|
|
License <http://creativecommons.org/licenses/by-sa/3.0/deed.en_US>`__.
|
|
|image0|
|
|
|
|
History
|
|
=======
|
|
|
|
**Note:** Official support for Python 2.4 will end with Pystache version
|
|
0.6.0.
|
|
|
|
0.5.4 (2014-07-11)
|
|
------------------
|
|
|
|
- Bugfix: made test with filenames OS agnostic (issue #162).
|
|
|
|
0.5.3 (2012-11-03)
|
|
------------------
|
|
|
|
- Added ability to customize string coercion (e.g. to have None render
|
|
as ``''``) (issue #130).
|
|
- Added Renderer.render\_name() to render a template by name (issue
|
|
#122).
|
|
- Added TemplateSpec.template\_path to specify an absolute path to a
|
|
template (issue #41).
|
|
- Added option of raising errors on missing tags/partials:
|
|
``Renderer(missing_tags='strict')`` (issue #110).
|
|
- Added support for finding and loading templates by file name in
|
|
addition to by template name (issue #127). [xgecko]
|
|
- Added a ``parse()`` function that yields a printable, pre-compiled
|
|
parse tree.
|
|
- Added support for rendering pre-compiled templates.
|
|
- Added Python 3.3 to the list of supported versions.
|
|
- Added support for `PyPy <http://pypy.org/>`__ (issue #125).
|
|
- Added support for `Travis CI <http://travis-ci.org>`__ (issue #124).
|
|
[msabramo]
|
|
- Bugfix: ``defaults.DELIMITERS`` can now be changed at runtime (issue
|
|
#135). [bennoleslie]
|
|
- Bugfix: exceptions raised from a property are no longer swallowed
|
|
when getting a key from a context stack (issue #110).
|
|
- Bugfix: lambda section values can now return non-ascii, non-unicode
|
|
strings (issue #118).
|
|
- Bugfix: allow ``test_pystache.py`` and ``tox`` to pass when run from
|
|
a downloaded sdist (i.e. without the spec test directory).
|
|
- Convert HISTORY and README files from reST to Markdown.
|
|
- More robust handling of byte strings in Python 3.
|
|
- Added Creative Commons license for David Phillips's logo.
|
|
|
|
0.5.2 (2012-05-03)
|
|
------------------
|
|
|
|
- Added support for dot notation and version 1.1.2 of the spec (issue
|
|
#99). [rbp]
|
|
- Missing partials now render as empty string per latest version of
|
|
spec (issue #115).
|
|
- Bugfix: falsey values now coerced to strings using str().
|
|
- Bugfix: lambda return values for sections no longer pushed onto
|
|
context stack (issue #113).
|
|
- Bugfix: lists of lambdas for sections were not rendered (issue #114).
|
|
|
|
0.5.1 (2012-04-24)
|
|
------------------
|
|
|
|
- Added support for Python 3.1 and 3.2.
|
|
- Added tox support to test multiple Python versions.
|
|
- Added test script entry point: pystache-test.
|
|
- Added \_\_version\_\_ package attribute.
|
|
- Test harness now supports both YAML and JSON forms of Mustache spec.
|
|
- Test harness no longer requires nose.
|
|
|
|
0.5.0 (2012-04-03)
|
|
------------------
|
|
|
|
This version represents a major rewrite and refactoring of the code base
|
|
that also adds features and fixes many bugs. All functionality and
|
|
nearly all unit tests have been preserved. However, some backwards
|
|
incompatible changes to the API have been made.
|
|
|
|
Below is a selection of some of the changes (not exhaustive).
|
|
|
|
Highlights:
|
|
|
|
- Pystache now passes all tests in version 1.0.3 of the `Mustache
|
|
spec <https://github.com/mustache/spec>`__. [pvande]
|
|
- Removed View class: it is no longer necessary to subclass from View
|
|
or from any other class to create a view.
|
|
- Replaced Template with Renderer class: template rendering behavior
|
|
can be modified via the Renderer constructor or by setting attributes
|
|
on a Renderer instance.
|
|
- Added TemplateSpec class: template rendering can be specified on a
|
|
per-view basis by subclassing from TemplateSpec.
|
|
- Introduced separation of concerns and removed circular dependencies
|
|
(e.g. between Template and View classes, cf. `issue
|
|
#13 <https://github.com/defunkt/pystache/issues/13>`__).
|
|
- Unicode now used consistently throughout the rendering process.
|
|
- Expanded test coverage: nosetests now runs doctests and ~105 test
|
|
cases from the Mustache spec (increasing the number of tests from 56
|
|
to ~315).
|
|
- Added a rudimentary benchmarking script to gauge performance while
|
|
refactoring.
|
|
- Extensive documentation added (e.g. docstrings).
|
|
|
|
Other changes:
|
|
|
|
- Added a command-line interface. [vrde]
|
|
- The main rendering class now accepts a custom partial loader (e.g. a
|
|
dictionary) and a custom escape function.
|
|
- Non-ascii characters in str strings are now supported while
|
|
rendering.
|
|
- Added string encoding, file encoding, and errors options for decoding
|
|
to unicode.
|
|
- Removed the output encoding option.
|
|
- Removed the use of markupsafe.
|
|
|
|
Bug fixes:
|
|
|
|
- Context values no longer processed as template strings.
|
|
[jakearchibald]
|
|
- Whitespace surrounding sections is no longer altered, per the spec.
|
|
[heliodor]
|
|
- Zeroes now render correctly when using PyPy. [alex]
|
|
- Multline comments now permitted. [fczuardi]
|
|
- Extensionless template files are now supported.
|
|
- Passing ``**kwargs`` to ``Template()`` no longer modifies the
|
|
context.
|
|
- Passing ``**kwargs`` to ``Template()`` with no context no longer
|
|
raises an exception.
|
|
|
|
0.4.1 (2012-03-25)
|
|
------------------
|
|
|
|
- Added support for Python 2.4. [wangtz, jvantuyl]
|
|
|
|
0.4.0 (2011-01-12)
|
|
------------------
|
|
|
|
- Add support for nested contexts (within template and view)
|
|
- Add support for inverted lists
|
|
- Decoupled template loading
|
|
|
|
0.3.1 (2010-05-07)
|
|
------------------
|
|
|
|
- Fix package
|
|
|
|
0.3.0 (2010-05-03)
|
|
------------------
|
|
|
|
- View.template\_path can now hold a list of path
|
|
- Add {{& blah}} as an alias for {{{ blah }}}
|
|
- Higher Order Sections
|
|
- Inverted sections
|
|
|
|
0.2.0 (2010-02-15)
|
|
------------------
|
|
|
|
- Bugfix: Methods returning False or None are not rendered
|
|
- Bugfix: Don't render an empty string when a tag's value is 0.
|
|
[enaeseth]
|
|
- Add support for using non-callables as View attributes.
|
|
[joshthecoder]
|
|
- Allow using View instances as attributes. [joshthecoder]
|
|
- Support for Unicode and non-ASCII-encoded bytestring output.
|
|
[enaeseth]
|
|
- Template file encoding awareness. [enaeseth]
|
|
|
|
0.1.1 (2009-11-13)
|
|
------------------
|
|
|
|
- Ensure we're dealing with strings, always
|
|
- Tests can be run by executing the test file directly
|
|
|
|
0.1.0 (2009-11-12)
|
|
------------------
|
|
|
|
- First release
|
|
|
|
License
|
|
=======
|
|
|
|
Copyright (C) 2012 Chris Jerdonek. All rights reserved.
|
|
|
|
Copyright (c) 2009 Chris Wanstrath
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a
|
|
copy of this software and associated documentation files (the
|
|
"Software"), to deal in the Software without restriction, including
|
|
without limitation the rights to use, copy, modify, merge, publish,
|
|
distribute, sublicense, and/or sell copies of the Software, and to
|
|
permit persons to whom the Software is furnished to do so, subject to
|
|
the following conditions:
|
|
|
|
The above copyright notice and this permission notice shall be included
|
|
in all copies or substantial portions of the Software.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
|
.. |image0| image:: http://i.creativecommons.org/l/by-sa/3.0/88x31.png
|