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.33] - 2022-12-23
Added
Python 3.11 support
Changed
sheraf.queryset.QuerySet
order performance optimizations.
[0.5.32] - 2022-09-13
Added
Changed
Improved
sheraf.queryset.QuerySet
exceptions error messages.
[0.5.31] - 2022-08-30
Added
sheraf.queryset.QuerySet
model attribute is kept when bitwise operator is used.
[0.5.30] - 2022-06-24
Added
SetAttribute
handles 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
LargeList
supports item deletion.
[0.5.26] - 2022-01-06
Added
ListAttribute
supports 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.IndexedModelAttribute
indexation.
[0.5.23] - 2021-12-22
Fixed
Fixed
read()
exceptions on bad IDs
[0.5.22] - 2021-12-15
Fixed
assign()
calls withModelAttribute
that have several model class types, again.
[0.5.21] - 2021-12-15
Fixed
assign()
calls withModelAttribute
that have several model class types.
[0.5.20] - 2021-11-17
Added
__repr__ for
collections
attributes.
[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
UniqueIndexException
is 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.Index
has 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
Database
usecontextvars.ContextVar
instead ofthreading.local
.
[0.5.5] - 2021-07-05
Fixed
Fixed
sheraf.queryset.QuerySet
concatenation 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.QuerySet
supports concatenation
[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
usesOOBTree
to store multiple indexes.
[0.5.1] - 2021-06-23
Changed
Primary indexes are not editable.
Fixed
SetAttribute
update method now casts the input value.
Added
ReverseModelAttribute
can supportSetAttribute
.
[0.5.0] - 2021-05-27
Added
ModelAttribute
can 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
PasswordAttribute
comparision 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()
andModelAttribute
when passed model ids.
[0.4.16] - 2021-04-16
Added
ReverseModelAttribute
can be assigned model ids.
[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
Fixed a bug with
EnumAttribute
string casting.
[0.4.11] - 2021-04-12
Fixed
Fixed a bug with
EnumAttribute
equality.
[0.4.10] - 2021-04-09
Fixed
Fixed
EnumAttribute
can handleNone
values.
[0.4.9] - 2021-04-07
Fixed
Fixed
EnumAttribute
hashability.
[0.4.8] - 2021-04-06
Fixed
Fixed
EnumAttribute
casting.
[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
Index
inheritance is fixed.connection()
can take areuse
parameter.
[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 indexedModelAttribute
not 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
BlobAttribute
shortcut for common web frameworks.
[0.3.3] - 2021-01-27
Added
TypeAttribute
can 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
Attribute
can have customvalues()
andmethods()
that will be used by default ifindex()
values_func and search_func are not provided.Indexation is possible by default with
ListAttribute
andSetAttribute
. #11Indexation is possible by default with
ModelAttribute
. #10ModelAttribute
can have several model classes. #13
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
Removed
Python 3.5 support
Deprecated
FileObjectV1
is deprecated and will be removed in sheraf0.3.0
.AutoModel
are 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
IndexedModelAttribute
attribute, 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()
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 idAttribute
instead.Index
BaseIndexedAttribute
lazy_creation parameter has been deprecated, and has been renamed lazy.
Added
[0.1.0] - 2020-02-11
First version.