- Drop support for Python 3.6 and 3.7
- Support Python 3.11 and 3.12
- Migrated from setuptools to hatch
- Fix a typing issue in Python 3.9
- Support Python 3.10
- Drop support for Python 2.7, 3.4, and 3.5
- Support Python 3.9
ensure_ascii
parameter added toPropertiesFile.dump()
andPropertiesFile.dumps()
- Bugfix: When parsing XML input, empty
<entry>
tags now produce an empty string as a value, notNone
- Added type annotations
Properties
andPropertiesFile
no longer raiseTypeError
when given a non-string key or value, as type correctness is now expected to be enforced through static type checking- The
PropertiesElement
classes returned byparse()
are no longer subclasses ofnamedtuple
, but they can still be iterated over to retrieve their fields like a tuple
parse()
now accepts strings as input- Breaking:
parse()
now returns a generator of custom objects instead of triples of strings - Gave
PropertiesFile
a settabletimestamp
property - Gave
PropertiesFile
a settableheader_comment
property - Handle unescaping surrogate pairs on narrow Python builds
- Include changelog in the Read the Docs site
- Support Python 3.8
- When dumping a value that begins with more than one space, only escape the first space in order to better match Java's behavior
- Gave
dump()
,dumps()
,escape()
, andjoin_key_value()
anensure_ascii
parameter for optionally not escaping non-ASCII characters in output - Gave
dump()
anddumps()
anensure_ascii_comments
parameter for controlling what characters in thecomments
parameter are escaped - Gave
to_comment()
anensure_ascii
parameter for controlling what characters are escaped - Added a custom encoding error handler
'javapropertiesreplace'
that encodes invalid characters as\uXXXX
escape sequences
- Added an example of each format to the format descriptions in the docs
- Fix building in non-UTF-8 environments
- Bugfix:
java_timestamp()
now properly handles naïvedatetime
objects withfold=1
- Include installation instructions, examples, and GitHub links in the Read the Docs site
- Breaking: Invalid
\uXXXX
escape sequences now cause anInvalidUEscapeError
to be raised Properties
instances can now compare equal todict
s and other mapping types- Gave
Properties
acopy
method - Drop support for Python 2.6 and 3.3
- Fixed a
DeprecationWarning
in Python 3.7
- Split off the command-line programs into a separate package,
javaproperties-cli
- Added the
PropertiesFile
class for preserving comments in files [#1] - The
ordereddict
package is now required under Python 2.6
- Bugfix to
javaproperties
command: Don't die horribly on missing non-ASCII keys - PyPy now supported
- Added a
javaproperties
command for basic command-line manipulating of.properties
files - Gave
json2properties
a--separator
option - Gave
json2properties
andproperties2json
--encoding
options - Exported the
java_timestamp()
function to_comment
now converts CR LF and CR line endings inside comments to LF- Some minor documentation improvements
Initial release