Roadmap and changelog

Versions follow Semantic Versioning (<major>.<minor>.<patch>). Hopefully some day we will respect Keep a Changelog recommandations.

sheraf 0 versions

[0.5.38] - 2023-07-11

Changed

  • Accessing attributes from a deleted instance will raise a AttributeError

[0.5.37] - 2023-05-17

Changed

  • Use ‘legacycrypt’ instead of crypt to avoid python warnings.

[0.5.36] - 2023-04-21

Changed

[0.5.35] - 2023-04-21

Changed

[0.5.34] - 2023-01-27

Changed

  • Every BaseIndexedModel index is initialized at object creation if needed, before the attributes are saved.

  • Callbacks are run in parallel for create(), update() and delete()

[0.5.33] - 2022-12-23

Added

  • Python 3.11 support

Changed

[0.5.32] - 2022-09-13

Added

Changed

[0.5.31] - 2022-08-30

Added

[0.5.30] - 2022-06-24

Added

Changed

  • support for rich > 10

  • index performances improvements

[0.5.29] - 2022-01-14

Changed

  • delayed some imports

[0.5.28] - 2022-01-14

Changed

  • The context manager connection always closes the connection #26

  • health functions are not imported by default anymore.

[0.5.27] - 2022-01-07

Added

[0.5.26] - 2022-01-06

Added

[0.5.25] - 2022-01-03

Changed

  • Do not catch model deletion errors when model creation fails.

[0.5.24] - 2021-12-29

Added

  • Implemented sheraf.attributes.enum.EnumAttribute.__repr__()

  • Ended support for python 3.6

  • Implemented sheraf.models.indexation.BaseIndexedModel.__str__(),

  • Implemented sheraf.models.indexation.BaseIndexedModel.on_creation() and sheraf.models.indexation.BaseIndexedModel.on_deletion() callbacks.

  • IndexedModelAttribute indexation.

[0.5.23] - 2021-12-22

Fixed

  • Fixed read() exceptions on bad IDs

[0.5.22] - 2021-12-15

Fixed

[0.5.21] - 2021-12-15

Fixed

[0.5.20] - 2021-11-17

Added

[0.5.19] - 2021-10-11

Added

  • sheraf.cli.rebuild() have a –fork option to compute each batch in a separate process.

[0.5.18] - 2021-08-26

Fixed

[0.5.17] - 2021-08-26

Fixed

[0.5.16] - 2021-08-25

Fixed

[0.5.15] - 2021-08-25

Fixed

  • An error when several indexes exists on several common attributes, and one of them is unique, and a UniqueIndexException is raised.

[0.5.14] - 2021-08-25

Fixed

[0.5.13] - 2021-08-11

Added

  • sheraf.cli.rebuild() have two options –batch-size that sets the number of elements to iterate between two savepoints, and –commit that replaces savepoints by real transaction commits.

  • Index has a auto parameter, that can disable the automatic use of the index.

[0.5.12] - 2021-08-10

Changed

[0.5.11] - 2021-08-04

Fixed

[0.5.10] - 2021-08-04

Added

[0.5.9] - 2021-07-27

Added

[0.5.8] - 2021-07-26

Changed

[0.5.7] - 2021-07-15

Changed

  • Index related ‘values’ methods and parameters have been renamed ‘index_keys’

  • Index related ‘search’ methods and parameters have been renamed ‘search_keys’

  • Implemented Attribute index_keys_func() and search_keys_func().

[0.5.6] - 2021-07-09

Added

Changed

[0.5.5] - 2021-07-05

Fixed

[0.5.4] - 2021-07-05

Added

[0.5.3] - 2021-07-02

Added

  • A rebuild() that allows to rebuild an index from the command line.

  • EnumAttribute supports comparisons.

[0.5.2] - 2021-06-29

Changed

  • IndexManager uses OOBTree to store multiple indexes.

[0.5.1] - 2021-06-23

Changed

  • Primary indexes are not editable.

Fixed

Added

[0.5.0] - 2021-05-27

Added

Changed

  • sheraf.queryset.QuerySet.__getitem__() does not return a list anymore when one single value is accessed.

  • sheraf.queryset.QuerySet.count() does not consume the QuerySet.

Removed

  • BaseAttribute

[0.4.21] - 2021-04-30

Changed

  • sheraf.queryset.QuerySet.__bool__() does not consume the QuerySet.

[0.4.20] - 2021-04-30

Added

  • Implemented sheraf.queryset.QuerySet.__bool__() #41

  • Improved sheraf.queryset.QuerySet.__repr__() #31

  • Implemented sheraf.queryset.QuerySet.__len__()

[0.4.19] - 2021-04-23

Changed

[0.4.18] - 2021-04-20

Changed

  • Better error message for invalid sheraf.types.largelist.LargeList.__getattr__() keys.

[0.4.17] - 2021-04-16

Fixed

[0.4.16] - 2021-04-16

Added

[0.4.15] - 2021-04-16

Changed

  • Refactored QuerySet and removed slicing on negative values.

[0.4.14] - 2021-04-15

Changed

  • Refactored QuerySet and removed a bit of the last commit to allow QuerySets to stay lazy.

[0.4.13] - 2021-04-14

Changed

  • Refactored QuerySet and improved performance for search calls based on several indexes.

[0.4.12] - 2021-04-13

Fixed

[0.4.11] - 2021-04-12

Fixed

[0.4.10] - 2021-04-09

Fixed

[0.4.9] - 2021-04-07

Fixed

[0.4.8] - 2021-04-06

Fixed

[0.4.7] - 2021-04-06

Added

[0.4.6] - 2021-03-31

Added

[0.4.5] - 2021-02-26

Fixed

  • QuerySet count() shortcuts do transform input values.

[0.4.4] - 2021-02-26

Added

  • Model count() method can take an index name as a parameter.

  • QuerySet count() method is far more quicker when there is only one indexed filter.

[0.4.3] - 2021-02-23

Added

[0.4.2] - 2021-02-21

Added

  • values() is given the attributes values in positional argument if it is assigned to one or several attributes.

Changed

[0.4.1] - 2021-02-18

Fixed

[0.4.0] - 2021-02-17

Added

  • Index can be used directly as IndexedModel() parameters. #11

  • sheraf.types.largelist.LargeList.remove() can take a all argument.

  • sheraf.types.largelist.LargeList.append() can take a unique argument.

  • Index can have several Attribute #23

[0.3.8] - 2021-02-05

Changed

  • batches have been renamed health

Fixed

[0.3.7] - 2021-02-03

Added

  • Index have a nullok parameter, True by default, that allows indexation of falseworthy values. #16

[0.3.6] - 2021-02-03

Changed

  • Checks and migrations now use rich. #12

Fixed

[0.3.5] - 2021-01-29

Added

-[0.3.4] - 2021-01-28

Added

[0.3.3] - 2021-01-27

Added

  • TypeAttribute can have None values.

[0.3.2] - 2021-01-27

Added

  • Index have a noneok parameter, False by default, that allows indexation of None values. #16

[0.3.1] - 2021-01-21

Changed

[0.3.0] - 2021-01-20

Added

Changed

  • Use ~BTrees.OOBTree.OOTreeSet instead of ~orderedset.OrderedSet.

  • AutoModel has moved in the tests directory.

Removed

  • FileObjectV1 has been removed.

[0.2.1] - 2020-09-24

Changed

  • Fixed a bug when setting an indexed value after the object creation. #9

  • Fixed SmallDict conflict resolution.

Removed

  • Python 3.5 support

Deprecated

  • FileObjectV1 is deprecated and will be removed in sheraf 0.3.0.

  • AutoModel are deprecated and will not be shipped with sheraf 0.3.0. However, they will still be available for development with sheraf tests.

[0.2.0] - 2020-04-03

Added

A whole indexation mechanism. #1
  • A new IndexedModelAttribute attribute, that holds a whole model indexation table.

  • A new IndexedModelAttribute.

  • Method index() method on Attribute to describe indexes.

  • Two check methods sheraf.batches.checks.check_attributes_index() and sheraf.batches.checks.check_model_index() to check the index tables integrity.

  • Method index_table_rebuild() to rebuild an index table.

  • filter and order methods on QuerySet are faster on indexed attributes.

Removed

  • sheraf.models.BaseIndexedAttribute.make_id()

  • Index

  • BaseIndexedAttribute lazy_creation parameter has been renamed lazy.

[0.1.2] - 2020-09-24

Changed

  • Fixed a bug when setting an indexed value after the object creation. #9

[0.1.1] - 2020-04-01

Deprecated

  • sheraf.models.BaseIndexedAttribute.make_id(). Please use the ‘default’ parameter of your id Attribute instead.

  • Index

  • BaseIndexedAttribute lazy_creation parameter has been deprecated, and has been renamed lazy.

Added

[0.1.0] - 2020-02-11

  • First version.