Thomas Adamcik
20019edf2d
models: Fix review comments
2015-04-12 16:03:51 +02:00
Thomas Adamcik
6327a67874
models: Make sure we really only add __weakref__ once
2015-04-11 00:47:53 +02:00
Thomas Adamcik
05244f7e60
models: Deprecate copy and add replace method
...
Changed as with the memoization copy was lying, so replace is a better name.
2015-04-08 01:41:50 +02:00
Thomas Adamcik
b7375323e9
models: Memoize identical instances automatically
...
This combined with the previous changes has brought the memory use for a 14k
track test-set down from about 75MB to 17MB or so. Note that this does however,
mean that copy is now lying to us as it does not such thing whenever it can
avoid it.
2015-04-08 01:14:56 +02:00
Thomas Adamcik
86481b1d50
models: Shortcut case where copy didn't change anything
...
We no longer copy in this case and will just give you the same instance back.
2015-04-08 00:34:02 +02:00
Thomas Adamcik
0fee1b4b11
models: Switch to slots to reduce memory usage per instance
2015-04-08 00:30:53 +02:00
Thomas Adamcik
08fd99ffdb
models: Add Identifer type which interns values.
...
This gives some moderate memory saving since the values are used in multiple
places.
2015-04-08 00:11:23 +02:00
Thomas Adamcik
9b442e1563
review: Address review comments
2015-04-06 23:27:46 +02:00
Thomas Adamcik
2d03cd7290
models: Make fields handle unsetting defaults in __dict__
2015-04-05 13:09:19 +02:00
Thomas Adamcik
73415ce60f
models: Make sure del on attributes does not work
2015-04-05 13:08:15 +02:00
Thomas Adamcik
07912e1091
models: Add fields for supporting validation of models
...
Feature makes use of python descriptors to hook in type checking and other
validation when fields get set.
2015-04-05 13:08:15 +02:00
Thomas Adamcik
5c0430ef4a
tests: Move models tests into a directory
2015-04-05 13:08:15 +02:00