All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.33.0 - 2023-11-08
- Add
Python 3.12support. (#342) - Add possibility to restrict input data sources with
sourcesargument (more info here). #287 - Add
from_htmlmethod (available by installing the optional[html]dependency, more info here). #317 - Bump requirements.
0.32.1 - 2023-09-18
- Fix
itemsandvaluesmethods returned values type (cast tobenedict). #333 - Fix union with assignment operator inconsistent results (compared to
dict). #334 - Bump requirements.
0.32.0 - 2023-07-16
- Add
CLISerializerandfrom_climethod. (by @Denperidge in #311) - Bump requirements.
0.31.0 - 2023-06-17
- Add
parseextra (optional dependencies). #300 (#303) - Bump requirements.
0.30.2 - 2023-06-02
- Allow
iniformat to support nested structures (encode to json only dicts). #284 - Prevent clearing dict instance when assigning value to itself. #294
0.30.1 - 2023-05-16
- Allow
iniformat to support nested structures. #284 (#289) - Switch from
setup.cfgtopyproject.toml. - Replace
flake8withRuff. - Fix
toxtest command. - Bump requirements.
0.30.0 - 2023-03-22
- Add
keyattr_dynamicproperty (Falseby default). #261 (#266) - Make
iniserializer case-sensitive by default and acceptoptionxformoption. #263 (#265) - Fix
TypeErrorwhen decoding.xlswithNonecolumns. - Improve decoding errors traceback.
- Bump requirements.
0.29.1 - 2023-03-09
- Fix missing dependency on
pyyaml. #260 - Fix protected keys in
jsonitems preventing automatic keys creation when getting__protected__attributes. #259
0.29.0 - 2023-03-09
NEWAddkeyattr(keys as attributes) support. (#257)NEWSeparate installation targets (extras requires). #200 (#258)- Fix set state when loading from pickle.
- Improve tests coverage.
- Upgrade syntax for
Python >= 3.8. - Reformat and cleanup code.
- Move
flake8config tosetup.cfg. - Increase
flake8checks. - Add
flake8-bugbeartopre-commit. - Run
flake8also on tests files. - Run
pre-commitalso withtox. - Rename default branch from
mastertomain. - Bump requirements.
0.28.3 - 2023-01-12
- Remove
tests/from dist. - Bump requirements.
0.28.2 - 2023-01-11
- Fix
FileNotFoundErrorif file is just the filename. #226 - Bump requirements.
0.28.1 - 2023-01-02
- Add
pyupgradetopre-commitconfig. - Add
setup.cfg(setuptoolsdeclarative syntax) generated usingsetuptools-py2cfg. - Add support for
pathlib.Path. #144 - Bump requirements.
0.28.0 - 2022-12-29
- Drop
Python 3.7 support. - Replace
str.formatwithf-strings. - Remove
python setup.py testusage. - Remove encoding pragma.
- Fix
s3_optionsoption forwarded tojsondecoder. #198 (#204) - Bump requirements.
0.27.1 - 2022-11-26
- Add
Python 3.11support. #143 - Add
pre-commitwithblack,isortandflake8. - Read
tomlfiles using the standardtomlib(if available). #143 - Bump requirements (
boto3,python-slugify,orjson) version.
0.27.0 - 2022-10-12
- Add
s3support to I/O operations. #17 (#126) - Fix subclasses type. #115 (#124)
0.26.0 - 2022-10-09
- Add
xlsfiles (.xlsx,.xlsm,.xls) support (read-only). #70 (#122) - Drop
Python 3.6support. (#123)
0.25.4 - 2022-09-06
- Fix
tomlencoding circular reference error. #110
0.25.3 - 2022-08-23
- Fix set dict item value in list. #109
0.25.2 - 2022-07-15
- Fixed
orjsoncompatibility. #102 - Fixed
swapbetween dict items. - Fixed
deepcopywith pointer. - Bumped requirements.
0.25.1 - 2022-04-27
- Fixed broken
yamlserialization withbenedictattributes. #89 - Fixed
flattennot working when separator is equal tokeypath_separator. #88 - Bumped requirements.
0.25.0 - 2022-02-18
- Added official
python 3.10support. - Dropped
python 2.7andpython 3.5support. - Pinned requirements versions.
- Reformatted code with Black.
0.24.3 - 2021-10-04
- Added tuple index support when getting items. #66
- Added
type_util.is_dict_or_list_or_tuplemethod. - Improved tests.
0.24.2 - 2021-08-11
- Fixed
json.dumps()whenbenedictis initialized with an empty dict. #57 #61 - Fixed
mergenot working with an empty dict. #59
0.24.1 - 2021-08-01
- Fixed
json.dumps()whenbenedictis initialized with an empty dict. #57
0.24.0 - 2021-05-04
- Added
iniformat support. #36 #40 - Added
python 3.9to CI (tox, travis and GitHub actions). - Fixed
to_tomlcircular reference error. #53 - Updated
ftfyrequirement version depending onpythonversion. - Updated (improved)
QueryStringSerializerregex.
0.23.2 - 2021-01-19
- Fixed
mergemethod lists concat when merging nested dicts. #48 - Fixed
BaseDictinitialized withBaseDictsubclass argument.
0.23.1 - 2021-01-14
- Fixed
get_int_listwith single value.
0.23.0 - 2020-12-24
- Added
get_dateandget_date_listmethods. - Added
python-fsutillibrary for file-system operations.
0.22.4 - 2020-12-22
- Removed
sort_keys=Trueby default inJSONserializer.
0.22.3 - 2020-12-22
- Added
concatoption to merge method. #45 - Added
sort_keys=Trueby default inJSONserializer. - Added
memooption to clone core method. - Fixed broken
json.dumpsusing cloned instance. #46
0.22.2 - 2020-11-30
- Fixed
benedictyamlrepresenter. #43
0.22.1 - 2020-11-27
- Fixed dump
benedictobject toyamlnot working correctly. #43
0.22.0 - 2020-10-15
- Added
get_uuidandget_uuid_listmethods.
0.21.1 - 2020-09-30
- Fixed performance issue. #39
- Fixed
to_jsonreturns empty dict from generator. #38 - Refactored
BaseDictclass and enforced tests.
0.21.0 - 2020-09-22
- Added
matchutility method. #11 #16 - Added
indexesoption support to keypaths method. #13 - Updated
keypathsmethod to use the defaultkeypath_separator(.) instead ofNone. - Fixed
keypath_separatorinheritance when init from anotherbenedictinstance. #35 - Fixed
json.dumpsno longer works directly withbenedict. #34
0.20.0 - 2020-09-20
- Added
BaseDictas base class to keep pointer to the initial input dict. #32 - Added automatic
benedictcasting to all methods that return dict instances. - Updated
flattenmethod, now aKeyErroris raised in case of existing key.
0.19.0 - 2020-09-11
- Added
plistformat support. - Enforced
IODictinitial check when using filepath or data-string. - Improved
KeyErrormessages. PR #28 - Added encoding optional argument to
io_util.read_fileandio_util.write_file. - Fixed python 3.5/3.6 I/O encoding issue.
0.18.2 - 2020-09-02
- Added
findmethod. #23 - Added
overwriteoption support to merge method. #24 - Fixed format auto-detection with unexpected extensions. #19
0.18.1 - 2020-03-13
- Added data format auto-detection when creating instance with data from filepath or url.
- Fixed
keypath_separatorsupport when usingfrom_{format}methods.
0.18.0 - 2020-02-21
- Added
from_pickleandto_picklemethods. - Added
PickleSerializer. - Added
datetime,Decimalandsetsupport toJSONSerializer. - Updated
dumpmethod to useJSONSerializer. - Refactored
Base64Serializer. - Fixed
type_util.is_json_serializablewithsetobjects. - Fixed
searchmethod for int no results - #7 - Improved
invertmethod to handles correctly lists and tuples. - Improved
io_util.read_fileandio_util.write_file methods. - Improved code quality and CI.
0.17.0 - 2020-02-06
- Added
groupbyutility method. - Added
nestutility method. - Added
keylistscore method. - Reorganized lib and tests packages.
- Improved code quality and CI.
0.16.0 - 2020-01-30
- Added
KeylistDictwith list indexes support. #1 - Added
benedict.utils.type_utilwith many utility functions. - Improved code quality and CI.
0.15.0 - 2020-01-13
- Added
renamemethod. - Added
searchmethod. - Added
unflattenmethod.
0.14.1 - 2020-01-07
- Fixed
keypath_separatorvalue in instances returned bycopy,clone,filter,flatten,invert,subsetmethods. #4 - Fixed
getdoesn't work when the key is a list with one element. #5 - Fixed
pickleAttributeError. #6
0.14.0 - 2019-12-18
- Added docstrings to methods. #2
- Added test case for stackoverflow answered questions.
- Added possibility to run tests using only
unittest. - Improved code quality and CI.
- Improved keypath support in
fromkeysmethod. - Improved url, file, data autodetect in
io_util.read_content. - Refactored
standardizeutility method. - Removed duplicated code and
benedictondecorator. - Renamed
optionsarg tochoicesinParseDictmethods. - Replaced unsafe
yaml.loadwithyaml.safe_load.
0.13.0 - 2019-11-07
- Added
csvI/O support. - Refactored I/O dict class and utils.
- Improved tests.
0.12.0 - 2019-10-29
- Added
standardizeutility method. - Added
traverseutility method. - Added
keypath_separatorgetter/setter. - Improved
base64I/O support. - Improved tests.
- Refactored
benedictclass and utilies.
0.11.1 - 2019-10-14
- Added
io_util.decode_bytesutility method.
0.11.0 - 2019-10-14
- Added
query-stringI/O support. - Added
uniqueutility method. - Added urldecode, padding fix and
format=Nonesupport toio_util.decode_base64utility. - Refactored
benedictclass and utilies.
0.10.0 - 2019-10-03
- Added
base64I/O support. - Added
invertutility method. - Added
items_sorted_by_keysutility method. - Added
items_sorted_by_valuesutility method. - Refactored
benedictclass and utilies.
0.9.0 - 2019-09-23
- Added
xmlI/O support.
0.8.0 - 2019-09-20
- Added
tomlI/O support.
0.7.0 - 2019-09-17
- Added
yamlI/O support.
0.6.0 - 2019-09-10
- Added
IODictwithjsonsupport. - Added
clone(deepcopyalias) andmerge(deepupdatealias) methods.
0.5.2 - 2019-07-19
- Refactored
KeypathDict. - Added
removeutility method. - Added
subsetutility method. - Fixed string casting in parse functions on python 2.
0.5.1 - 2019-07-10
- Added timestamp support to get_datetime parse method.
0.5.0 - 2019-07-09
- Added custom or
Nonekeypathseparatorsupport. - Added
filterutility method. - Improved tests and code quality.
0.4.2 - 2019-06-19
- Fixed
parse_strUnicodeEncodeError on python 2.
0.4.1 - 2019-06-18
- Fixed
get_phonenumbernot working with numbers without country prefix. - Renamed
countryarg tocountry_codeinget_phonenumbermethod.
0.4.0 - 2019-06-17
- Added
cleanmethod. - Added
get_emailmethod. - Added
get_phonenumbermethod.
0.3.2 - 2019-06-11
- Added support to key-list as key.
- Fixed
setup.pyrequirements installation on Python 2.7.
0.3.1 - 2019-06-11
- Added
dumpanddump_itemsutility methods.
0.3.0 - 2019-06-10
- Added casting to
benedictto all dicts returned by any public method. - Renamed
get_keypathstokeypathsaccording to keys and values existing methods. - Reorganized lib structure to improve scalability.
- Added python 2.7 support.
- Improved code quality.
0.2.0 - 2019-05-20
- Improved
parse_boolmethod. - Added keypath support to
popmethod and refactored core methods. - Added
get_keypathsmethod. - Added keypath support to
fromkeysmethod. - Added
deepcopyshortcut method. - Added keypath support to
copymethod. - Refactored
KeypathDictcore methods.
0.1.0 - 2018-05-17
- Released package on pypi.