.value
with roundtrip AST nodes now gives correct, updated value for collections that have been modified (#1).dump()
now works (#2).
- Many improvements and new features for
RoundtripAst
.- Improved support for replacing keys and values. There is experimental support for replacing dicts and lists, and now full support for all other data types.
- Added option
enforce_types
, which provides experimental support for replacing keys and values with objects of a different data types. - Added support for custom encoders.
- Added preliminary support for
__getitem__
-style access (for example,ast['key'].value
). - Added access to trailing comments (not doc comments) with new node
attributes
key_trailing_comment
,value_trailing_comment
,value_start_trailing_comment
, andvalue_end_trailing_comment
. These also allow modification of existing trailing comments.
- New loading options:
custom_types
allows use of custom data types.empty_default
is a function that is called to produce a default value when there is no data to load. - New dumping options that control output appearance, data types, and data
structures:
aliases
,circular_references
,integers
,only_ascii_unquoted
,only_ascii_source
,extended_types
,python_types
,baseclass
,trailing_commas
,compact_inline
,inline_depth
,nesting_indent
,start_list_item
, andflush_start_list_item
. - Fixed bug with round-tripping bools.
- Fixed bug in error reporting for reserved words like
inf
in key paths.
- Added decoder options
aliases
,circular_references
,custom_parsers
, andpython_types
. - Decoder now disables circular references by default. They may be enabled
with new option
circular_references
. - More powerful alias support, particularly for alias paths passing through inherited keys.
- Moved decoder
tuple
support from optionextended_types
to new optionpython_types
. - Complex numbers starting with
inf
ornan
now work with decoder. - Fixed bug in doc comment-tag interaction.
- Fixed bugs with decoder options
only_ascii_source
andonly_ascii_unquoted
. - Prevent explicit typing of
none
,true
, andfalse
. - Tag keyword
indent
no longer affects text after an escaped newline. - Fixed bug that prevented inline collections from being tagged if not at line start.
RootNode
andDictlikeNode
now have_state
attribute.- Improved grammar.
- Significant speed improvements: around 25-30% faster on decoding benchmark than v0.1.1.
- Added encoder options
hex_floats
andmax_nesting_depth
. - Added decoder options
extended_types
,float_overflow_to_inf
,integers
,only_ascii_unquoted
,only_ascii_source
,max_nesting_depth
. - Added support for tags, which enable explicit typing and object labeling
(for later referencing via aliases). Tags also allow
indent
andnewline
to be specified for multiline strings. Added support forbytes
,base16
, andbase64
types via tagging. - Added support for aliases.
- Encoder now detects circular references.
- Improved error handling and error messages.
setuptools
is used for installation if available.
- Added
MANIFEST.in
to includeREADME.rst
in sdist.
- First release with mostly complete basic feature set.