Backport of PEP 3101, Advanced String Formatting, from py3k.
Highlights:
- Adding PyObject_Format.
- Adding string.Format class.
- Adding __format__ for str, unicode, int, long, float, datetime.
- Adding builtin format.
- Adding ''.format and u''.format.
- str/unicode fixups for formatters.
The files in Objects/stringlib that implement PEP 3101 (stringdefs.h,
unicodedefs.h, formatter.h, string_format.h) are identical in trunk
and py3k. Any changes from here on should be made to trunk, and
changes will propogate to py3k).
2008-02-17 15:46:49 -04:00
|
|
|
#ifndef STRINGLIB_UNICODEDEFS_H
|
|
|
|
#define STRINGLIB_UNICODEDEFS_H
|
|
|
|
|
|
|
|
/* this is sort of a hack. there's at least one place (formatting
|
|
|
|
floats) where some stringlib code takes a different path if it's
|
|
|
|
compiled as unicode. */
|
|
|
|
#define STRINGLIB_IS_UNICODE 1
|
|
|
|
|
|
|
|
#define STRINGLIB_OBJECT PyUnicodeObject
|
|
|
|
#define STRINGLIB_CHAR Py_UNICODE
|
|
|
|
#define STRINGLIB_TYPE_NAME "unicode"
|
|
|
|
#define STRINGLIB_PARSE_CODE "U"
|
|
|
|
#define STRINGLIB_EMPTY unicode_empty
|
2010-01-13 03:55:48 -04:00
|
|
|
#define STRINGLIB_ISSPACE Py_UNICODE_ISSPACE
|
|
|
|
#define STRINGLIB_ISLINEBREAK BLOOM_LINEBREAK
|
Backport of PEP 3101, Advanced String Formatting, from py3k.
Highlights:
- Adding PyObject_Format.
- Adding string.Format class.
- Adding __format__ for str, unicode, int, long, float, datetime.
- Adding builtin format.
- Adding ''.format and u''.format.
- str/unicode fixups for formatters.
The files in Objects/stringlib that implement PEP 3101 (stringdefs.h,
unicodedefs.h, formatter.h, string_format.h) are identical in trunk
and py3k. Any changes from here on should be made to trunk, and
changes will propogate to py3k).
2008-02-17 15:46:49 -04:00
|
|
|
#define STRINGLIB_ISDECIMAL Py_UNICODE_ISDECIMAL
|
|
|
|
#define STRINGLIB_TODECIMAL Py_UNICODE_TODECIMAL
|
|
|
|
#define STRINGLIB_TOUPPER Py_UNICODE_TOUPPER
|
|
|
|
#define STRINGLIB_TOLOWER Py_UNICODE_TOLOWER
|
|
|
|
#define STRINGLIB_FILL Py_UNICODE_FILL
|
|
|
|
#define STRINGLIB_STR PyUnicode_AS_UNICODE
|
|
|
|
#define STRINGLIB_LEN PyUnicode_GET_SIZE
|
|
|
|
#define STRINGLIB_NEW PyUnicode_FromUnicode
|
|
|
|
#define STRINGLIB_RESIZE PyUnicode_Resize
|
|
|
|
#define STRINGLIB_CHECK PyUnicode_Check
|
2010-01-13 03:55:48 -04:00
|
|
|
#define STRINGLIB_CHECK_EXACT PyUnicode_CheckExact
|
2008-05-11 16:52:48 -03:00
|
|
|
#define STRINGLIB_GROUPING _PyUnicode_InsertThousandsGrouping
|
Backport of PEP 3101, Advanced String Formatting, from py3k.
Highlights:
- Adding PyObject_Format.
- Adding string.Format class.
- Adding __format__ for str, unicode, int, long, float, datetime.
- Adding builtin format.
- Adding ''.format and u''.format.
- str/unicode fixups for formatters.
The files in Objects/stringlib that implement PEP 3101 (stringdefs.h,
unicodedefs.h, formatter.h, string_format.h) are identical in trunk
and py3k. Any changes from here on should be made to trunk, and
changes will propogate to py3k).
2008-02-17 15:46:49 -04:00
|
|
|
|
|
|
|
#if PY_VERSION_HEX < 0x03000000
|
|
|
|
#define STRINGLIB_TOSTR PyObject_Unicode
|
|
|
|
#else
|
|
|
|
#define STRINGLIB_TOSTR PyObject_Str
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define STRINGLIB_WANT_CONTAINS_OBJ 1
|
|
|
|
|
|
|
|
#endif /* !STRINGLIB_UNICODEDEFS_H */
|