Box

Python dictionaries with advanced dot notation access

MIT License

Downloads
3.2M
Stars
2.5K
Committers
1
Box - Version 5.3.0

Published by cdgriffith over 3 years ago

  • Adding support for functions to box_recast (thanks to Jacob Hayes)
  • Adding #181 support for extending or adding new items to list during merge_update (thanks to Marcos Dione)
  • Fixing maintain stacktrace cause for BoxKeyError and BoxValueError (thanks to Jacob Hayes)
  • Fixing #177 that emtpy yaml files raised errors instead of returning empty objects (thanks to Tim Schwenke)
  • Fixing #171 that popitems wasn't first checking if box was frozen (thanks to Varun Madiath)
Box - Version 5.2.0

Published by cdgriffith almost 4 years ago

  • Adding checks for frozen boxes to pop, popitem and clear (thanks to Varun Madiath)
  • Fixing requirements-test.txt (thanks to Fabian Affolter)
  • Fixing Flake8 conflicts with black (thanks to Varun Madiath)
  • Fixing coveralls update (thanks to Varun Madiath)
Box - Version 5.1.1

Published by cdgriffith about 4 years ago

  • Bugfix dots default (#166)
Box - Version 5.1.0

Published by cdgriffith over 4 years ago

  • Adding dotted option for items function (thanks to ipcoder)
  • Fixing bug in box.set_default where value is dictionary, return the internal value and not detached temporary (thanks to Noam Graetz)
  • Removing warnings on import if optional libraries are missing
Box - Version 5.0.1

Published by cdgriffith over 4 years ago

  • Fixing default box saving internal method calls and restricted options (thanks to Marcelo Huerta)
Box - Version 5.0.0

Published by cdgriffith over 4 years ago

  • Adding support for msgpack converters to_msgpack and from_msgpack
  • Adding support for comparision of Box to other boxes or dicts via the - sub operator #144 (thanks to Hitz)
  • Adding support to | union boxes like will come default in Python 3.9 from PEP 0584
  • Adding mypy type checking, black formatting and other checks on commit
  • Adding new parameter box_class for cleaner inheritance #148 (thanks to David Aronchick)
  • Adding dotted option for keys method to return box_dots style keys (thanks to ipcoder)
  • Fixing box_dots to properly delete items from lists
  • Fixing box_dots to properly find items with dots in their key
  • Fixing that recast of subclassses of Box or BoxList were not fed box properties (thanks to Alexander Kapustin)
  • Changing that sub boxes are always created to properly propagate settings and copy objects #150 (thanks to ipcoder)
  • Changing that default_box will not raise key errors on pop #67 (thanks to Patrock)
  • Changing to_csv and from_csv to have same string and filename options as all other transforms
  • Changing back to no required external imports, instead have extra requires like [all] (thanks to wim glenn)
  • Changing from putting all details in README.rst to a github wiki at https://github.com/cdgriffith/Box/wiki
  • Changing BoxList.box_class to be stored in BoxList.box_options dict as box_class
  • Changing del will raise BoxKeyError, subclass of both KeyError and BoxError
  • Removing support for single level circular references
  • Removing readthedocs generation
  • Removing overrides for keys, values and items which will return views again
Box - Version 5.0.0a3

Published by cdgriffith over 4 years ago

Box - Version 5.0.0a2

Published by cdgriffith over 4 years ago

  • Fixing that recast of subclassses of Box or BoxList were not fed box properties (thanks to Alexander Kapustin)
Box - Version 5.0.0a1

Published by cdgriffith over 4 years ago

  • Adding dotted and flat option for keys method to return box_dots style keys (thanks to ipcoder)
  • Fixing box_dots to properly delete items from lists
  • Fixing box_dots to properly find items with dots in their key
Box - Version 5.0.0a0

Published by cdgriffith over 4 years ago

  • Adding support for msgpack coverters to_msgpack and from_msgpack
  • Adding support for comparision of Box to other boxes or dicts via the - sub operator #144 (thanks to Hitz)
  • Adding support to | union boxes like will come default in Python 3.9 from PEP 0584
  • Adding mypy type checking, black formatting and other checks on commit
  • Adding new parameter box_class for cleaner inheritance #148 (thanks to David Aronchick)
  • Changing that sub boxes are always created to properly propagate settings and copy objects #150 (thanks to ipcoder)
  • Changing that default_box will not raise key errors on pop or del #67 (thanks to Patrock)
  • Changing to_csv and from_csv to have same string and filename options as all other transforms
  • Changing back to no required external imports
  • Changing from putting all details in README.rst to a github wiki at https://github.com/cdgriffith/Box/wiki
  • Changing BoxList.box_class to be stored in BoxList.box_options dict as box_class
  • Removing support for single level circular references
  • Removing readthedocs generation
  • Removing overrides for keys, values and items which will return views again
Box - Version 4.2.3

Published by cdgriffith over 4 years ago

  • Fixing README.md example #149 (thanks to J Alan Brogan)
  • Changing protected_keys to remove magic methods from dict #146 (thanks to Krishna Penukonda)
Box - Version 4.2.2

Published by cdgriffith over 4 years ago

  • Fixing default_box doesn't first look for safe attributes before falling back to default (thanks to Pymancer)
  • Changing from TravisCI to Github Actions
Box - Version 4.2.1

Published by cdgriffith over 4 years ago

  • Fixing uncaught print statement (thanks to Bruno Rocha)
  • Fixing old references to box_it_up in the documentation
Box - Version 4.2.0

Published by cdgriffith over 4 years ago

  • Adding optimizations for speed ups to creation and inserts
  • Adding internal record of safe attributes for faster lookups, increases memory footprint for speed (thanks to Jonas Irgens Kylling)
  • Adding all additional methods specific to Box as protected keys
  • Fixing merge_update from incorrectly calling __setattr__ which was causing a huge slowdown (thanks to Jonas Irgens Kylling)
  • Fixing copy and __copy__ not copying box options
Box - Version 4.1.0

Published by cdgriffith over 4 years ago

  • Adding support for list traversal with box_dots (thanks to Lei)
  • Adding BoxWarning class to allow for the clean suppression of warnings
  • Fixing default_box_attr to accept items that evaluate to None (thanks to Wenbo Zhao and Yordan Ivanov)
  • Fixing BoxList to properly send internal box options down into new lists
  • Fixing issues with conversion and camel killer boxes not being set properly on insert
  • Changing default_box to set objects in box on lookup
  • Changing camel_killer to convert items on insert, which will change the keys when converted back to dict unlike before
  • Fallback to PyYAML if ruamel.yaml is not detected (thanks to wim glenn)
  • Removing official support for pypy as it's pickling behavior is not the same as CPython
  • Removing internal __box_heritage as it was no longer needed due to behavior update
Box - Version 4.0.4 Not Found

Published by cdgriffith almost 5 years ago

  • Fixing get to return None when not using default box (thanks to Jeremiah Lowin)
  • Updating outdated docs
Box - Version 4.0.3

Published by cdgriffith almost 5 years ago

  • Fixing non-string keys breaking when box_dots is enabled (thanks to Marcelo Huerta)
Box - Version 4.0.2

Published by cdgriffith almost 5 years ago

  • Fixing converters to properly pass through new box arguments (thanks to Marcelo Huerta)
Box - Version 4.0.1

Published by cdgriffith almost 5 years ago

  • Fixing setup.py for release
  • Fixing documentation link
Box - Version 4.0.0

Published by cdgriffith almost 5 years ago

  • Adding support for retrieving items via dot notation in keys
  • Adding box_from_file helper function
  • Adding merge_update that acts like previous Box magic update
  • Adding support to + boxes together
  • Adding default_box now can support expanding on None placeholders (thanks to Harun Tuncay and Jeremiah Lowin)
  • Adding ability to recast specified fields (thanks to Steven McGrath)
  • Adding to_csv and from_csv capability for BoxList objects (thanks to Jiuli Gao)
  • Changing layout of project to be more object specific
  • Changing update to act like normal dict update
  • Changing to 120 line character limit
  • Changing how safe_attr handles unsafe characters
  • Changing all exceptions to be bases of BoxError so can always be caught with that base exception
  • Changing delete to also access converted keys (thanks to iordanivanov)
  • Removing ordered_box as Python 3.6+ is ordered by default
  • Removing BoxObject in favor of it being another module