Releases: secondlife/python-llsd
v1.2.4
What's Changed
Other Changes
- Fix array indentation of pretty xml by @bennettgoble in #23
Full Changelog: v1.2.3...v1.2.4
v1.2.3
What's Changed
Other Changes
- SRV-439 Performance optimizations for llsd xml formatting. by @roxanneskelly in #15
- SRV-439 Throw error on max depth of 200. by @roxanneskelly in #15
Full Changelog: v1.2.1...v1.2.3
v1.2.2-alpha.2
Full Changelog: v1.2.1...v1.2.2-alpha.2
v1.2.2-alpha.1
Full Changelog: v1.2.1...v1.2.2-alpha.1
v1.2.2
What's Changed
Other Changes
- SRV-439 Performance optimizations for llsd xml formatting. by @roxanneskelly in #15
- SRV-439 Throw error on max depth of 200. by @roxanneskelly in #15
Full Changelog: v1.2.0...v1.2.2
Fix XML serialization of deeply nested structures.
What's Changed
Other Changes
- SL-18330: In XML formatter, avoid adding call stack depth. by @nat-goodspeed in #13
Full Changelog: v1.2.0...v1.2.1
De/serialize from/to streams as well as bytes objects
The llsd
module has acquired new write_binary()
, write_notation()
, write_xml()
and write_pretty_xml()
functions. Each of these accepts a binary stream and the Python object to be serialized. format_binary()
, format_notation()
, format_xml()
and format_pretty_xml()
now internally call the corresponding write_mumble()
function with an io.BytesIO
instance, returning the resulting content.
Especially for large data structures, this is potentially a big win. Empirically, with the previous format_xml()
implementation, the overhead of many bytes
-string allocations and copies as the output string grows and grows could be startling.
Similarly, llsd.parse()
can now accept a binary stream as an alternative to a bytes
object. Instead of the previous idiom:
with open(somefile, 'rb') as inf:
data = llsd.parse(inf.read())
a caller can now write:
with open(somefile, 'rb') as inf:
data = llsd.parse(inf)
avoiding the necessity to allocate a single contiguous memory buffer capable of holding the entire content of somefile
.
In addition, the Python llsd
parser now has improved compatibility with the C++ LLSD serializer.
What's Changed
New Features 🎉
- SL-18330: Support parsing direct from stream; improve C++ compatibility. by @nat-goodspeed in #4
- SL-19314: Recast llsd serialization to write to a stream. by @nat-goodspeed in #5
Other Changes
- Publish benchmarks in job summary by @bennettgoble in #10
- SL-18830: Fix sporadic notation parse failure with very large input. by @nat-goodspeed in #9
- SL-18330: Refactor notation parsing to manage a lookahead char. by @nat-goodspeed in #6
New Contributors
- @nat-goodspeed made their first contribution in #4
Full Changelog: v1.1.0...v1.2.0
v1.1.0
What's Changed
New Features 🎉
- Speed up parsing notation LLSD by @SaladDais in #1
Other Changes
- Re-export parse/format classes from main module by @bennettgoble in #2
New Contributors
- @bennettgoble made their first contribution in #2
- @SaladDais made their first contribution in #1
Full Changelog: v1.0.0...v1.1.0
v1.0.0
Initial PyPI release.
Full Changelog: https://github.com/secondlife/python-llsd/commits/v1.0.0