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
Fixed
SetAttributesimple attribute upgrade.
[0.5.35] - 2023-04-21
Changed
ListAttributeandSetAttributecan be upgraded from simple attributes.
[0.5.34] - 2023-01-27
Changed
Every
BaseIndexedModelindex is initialized at object creation if needed, before the attributes are saved.Callbacks are run in parallel for
create(),update()anddelete()
[0.5.33] - 2022-12-23
Added
Python 3.11 support
Changed
sheraf.queryset.QuerySetorder performance optimizations.
[0.5.32] - 2022-09-13
Added
Changed
Improved
sheraf.queryset.QuerySetexceptions error messages.
[0.5.31] - 2022-08-30
Added
sheraf.queryset.QuerySetmodel attribute is kept when bitwise operator is used.
[0.5.30] - 2022-06-24
Added
SetAttributehandles minus operator
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
LargeListsupports item deletion.
[0.5.26] - 2022-01-06
Added
ListAttributesupports item deletion.
[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()andsheraf.models.indexation.BaseIndexedModel.on_deletion()callbacks.IndexedModelAttributeindexation.
[0.5.23] - 2021-12-22
Fixed
Fixed
read()exceptions on bad IDs
[0.5.22] - 2021-12-15
Fixed
assign()calls withModelAttributethat have several model class types, again.
[0.5.21] - 2021-12-15
Fixed
assign()calls withModelAttributethat have several model class types.
[0.5.20] - 2021-11-17
Added
__repr__ for
collectionsattributes.
[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
Another
update()error with models.
[0.5.17] - 2021-08-26
Fixed
Another
update()error with models.
[0.5.16] - 2021-08-25
Fixed
update()error with models.
[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
UniqueIndexExceptionis raised.
[0.5.14] - 2021-08-25
Fixed
update()error.
[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.Indexhas a auto parameter, that can disable the automatic use of the index.
[0.5.12] - 2021-08-10
Changed
sheraf.cli.rebuild()now have a progress bar.Bugfix on
sheraf.models.indexation.BaseIndexedModel.index_table_rebuild()arguments are passed with *args.
[0.5.11] - 2021-08-04
Fixed
[0.5.10] - 2021-08-04
Added
sheraf.models.indexation.BaseIndexedModel.all()can take an index as argument.
[0.5.9] - 2021-07-27
Added
Implemented
on_change()as a shortcut foron_creation(),on_edition(), andon_deletion().
[0.5.8] - 2021-07-26
Changed
attempt()opens a connection if needed.
[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()andsearch_keys_func().
[0.5.6] - 2021-07-09
Added
Changed
Databaseusecontextvars.ContextVarinstead ofthreading.local.
[0.5.5] - 2021-07-05
Fixed
Fixed
sheraf.queryset.QuerySetconcatenation when QuerySet is copied.
[0.5.4] - 2021-07-05
Added
sheraf.health.utils.import_models()can take a model path.Implemented
default()decorator.sheraf.queryset.QuerySetsupports concatenation
[0.5.3] - 2021-07-02
Added
A
rebuild()that allows to rebuild an index from the command line.EnumAttributesupports comparisons.
[0.5.2] - 2021-06-29
Changed
IndexManagerusesOOBTreeto store multiple indexes.
[0.5.1] - 2021-06-23
Changed
Primary indexes are not editable.
Fixed
SetAttributeupdate method now casts the input value.
Added
ReverseModelAttributecan supportSetAttribute.
[0.5.0] - 2021-05-27
Added
ModelAttributecan take a relative model path.values()can return unique object instead of collections. #33Implemented
on_creation(),on_edition(), andon_deletion()callbacks. #40
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
[0.4.19] - 2021-04-23
Changed
PasswordAttributecomparision and encryption functions can be overloaded. #39
[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
Fixed a bug with
assign()andModelAttributewhen passed model ids.
[0.4.16] - 2021-04-16
Added
ReverseModelAttributecan be assigned model ids.
[0.4.15] - 2021-04-16
Changed
Refactored
QuerySetand removed slicing on negative values.
[0.4.14] - 2021-04-15
Changed
Refactored
QuerySetand removed a bit of the last commit to allow QuerySets to stay lazy.
[0.4.13] - 2021-04-14
Changed
Refactored
QuerySetand improved performance for search calls based on several indexes.
[0.4.12] - 2021-04-13
Fixed
Fixed a bug with
EnumAttributestring casting.
[0.4.11] - 2021-04-12
Fixed
Fixed a bug with
EnumAttributeequality.
[0.4.10] - 2021-04-09
Fixed
Fixed
EnumAttributecan handleNonevalues.
[0.4.9] - 2021-04-07
Fixed
Fixed
EnumAttributehashability.
[0.4.8] - 2021-04-06
Fixed
Fixed
EnumAttributecasting.
[0.4.7] - 2021-04-06
Added
Implemented
EnumAttribute.
[0.4.6] - 2021-03-31
Added
Implemented
ReverseModelAttribute. #35
[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
Implemented
PasswordAttribute. #5
[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
BaseAttribute renamed in
Attribute.
[0.4.1] - 2021-02-18
Fixed
Indexinheritance is fixed.connection()can take areuseparameter.
[0.4.0] - 2021-02-17
Added
[0.3.8] - 2021-02-05
Changed
batches have been renamed health
Fixed
Fixed a bug happening when creating a
IndexedModel()with an indexedModelAttributenot initialized at creation.
[0.3.7] - 2021-02-03
Added
[0.3.6] - 2021-02-03
Changed
Checks and migrations now use rich. #12
Fixed
Fixed a bug with indexed
IntegerAttribute.
[0.3.5] - 2021-01-29
Added
-[0.3.4] - 2021-01-28
Added
BlobAttributeshortcut for common web frameworks.
[0.3.3] - 2021-01-27
Added
TypeAttributecan have None values.
[0.3.2] - 2021-01-27
Added
[0.3.1] - 2021-01-21
Changed
Fixed indexation of generic
ModelAttribute.
[0.3.0] - 2021-01-20
Added
Attributecan have customvalues()andmethods()that will be used by default ifindex()values_func and search_func are not provided.Indexation is possible by default with
ListAttributeandSetAttribute. #11Indexation is possible by default with
ModelAttribute. #10ModelAttributecan have several model classes. #13
Changed
Use ~BTrees.OOBTree.OOTreeSet instead of ~orderedset.OrderedSet.
AutoModelhas moved in the tests directory.
Removed
FileObjectV1has been removed.
[0.2.1] - 2020-09-24
Changed
Removed
Python 3.5 support
Deprecated
FileObjectV1is deprecated and will be removed in sheraf0.3.0.AutoModelare deprecated and will not be shipped with sheraf0.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
IndexedModelAttributeattribute, that holds a whole model indexation table.A new
IndexedModelAttribute.Two check methods
sheraf.batches.checks.check_attributes_index()andsheraf.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()IndexBaseIndexedAttributelazy_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 idAttributeinstead.IndexBaseIndexedAttributelazy_creation parameter has been deprecated, and has been renamed lazy.
Added
[0.1.0] - 2020-02-11
First version.