[Jython-checkins] jython: add format and __format__ to PyUnicode. Just using PyString's version for now.
frank.wierzbicki
jython-checkins at python.org
Wed Apr 11 18:02:15 CEST 2012
http://hg.python.org/jython/rev/2aef40e6d51c
changeset: 6564:2aef40e6d51c
user: Frank Wierzbicki <fwierzbicki at gmail.com>
date: Wed Apr 11 09:02:02 2012 -0700
summary:
add format and __format__ to PyUnicode. Just using PyString's version for now.
files:
src/org/python/core/PyString.java | 2 +-
src/org/python/core/PyUnicode.java | 14 ++++++++++++++
2 files changed, 15 insertions(+), 1 deletions(-)
diff --git a/src/org/python/core/PyString.java b/src/org/python/core/PyString.java
--- a/src/org/python/core/PyString.java
+++ b/src/org/python/core/PyString.java
@@ -2570,7 +2570,7 @@
}
}
- private String buildFormattedString(String value, PyObject[] args, String[] keywords, MarkupIterator enclosingIterator) {
+ protected String buildFormattedString(String value, PyObject[] args, String[] keywords, MarkupIterator enclosingIterator) {
StringBuilder result = new StringBuilder();
MarkupIterator it = new MarkupIterator(value, enclosingIterator);
while (true) {
diff --git a/src/org/python/core/PyUnicode.java b/src/org/python/core/PyUnicode.java
--- a/src/org/python/core/PyUnicode.java
+++ b/src/org/python/core/PyUnicode.java
@@ -1340,6 +1340,20 @@
return new PyTuple(new PyUnicode(this.getString()));
}
+ @Override
+ public PyObject __format__(PyObject formatSpec) {
+ return str___format__(formatSpec);
+ }
+
+ @ExposedMethod(doc = BuiltinDocs.unicode_format_doc)
+ final PyObject unicode_format(PyObject[] args, String[] keywords) {
+ try {
+ return new PyUnicode(buildFormattedString(getString(), args, keywords, null));
+ } catch (IllegalArgumentException e) {
+ throw Py.ValueError(e.getMessage());
+ }
+ }
+
public Iterator<Integer> iterator() {
return newSubsequenceIterator();
}
--
Repository URL: http://hg.python.org/jython
More information about the Jython-checkins
mailing list