-
Notifications
You must be signed in to change notification settings - Fork 2
/
CHANGES.txt
277 lines (232 loc) · 9.81 KB
/
CHANGES.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
0.1.0
- initial release
0.1.1
- bugfixes
0.1.2
- MOAR bug fixes
0.1.3
- Fixed issues with pagination
- Fixed issue where some values were not copied
0.1.4
- Fixed deepcopy of shared resources (specifically self._es)
0.2.0
- Calls to _create_search_params() create the native parameters to send to
elastic search and then remove the settings from the object. This allows
the collection object to be used for a new search. The drawback is
subsequent calls to all() will not work as expected.
- added functionality for one() to return the first result of a query
- Raises AttributeError if an attribute doesn't exist (previously returned
None but we have now considered this a bug)
- Fixed bugs related to _set_by_query not being set
- Fixed _deleted not getting set
- Added relationship functionality
- relationships can be specified on single columns
- setting of a model on a relationship attribute does not yet work
0.2.1
- reverted _create_search_params() change. Search parameters stay. Broke
too much stuff.
- added clear_previous_search() to clear the search and reuse the
collection
0.2.2
- bugfix to make VWCollection extend object
0.2.3
- added function for geo searches
0.2.4
- added sort()
- added range()
- BUG: range() doesn't work with other searches. To be fixed.
0.2.5
- drew fixed broken delete()
0.2.6
- ???
0.2.7
- added delete() and delete_in() to collections
0.2.8
- added commit() to bulk commit
0.2.9
- bulk commit now returns the status of each commit
- fixed date time format to work with bulk commit
0.2.10
- added callback argument to commit
0.2.11
- fixed collection calling wrong variable name when a custom index is
specfied
- velociwrapper.__version__ returns the version number of the module now
0.2.12
- allow _create_source_document() to have a specified date or datetime
format
- fixed to_dict() to return date_time format in true ISO 0000-00-00
00:00:00
- fixed date object creation being turned into datetime
0.2.13
- fix get_in() to properly use _create_obj_list()
- get_in() no longer catches exceptions (was returning an empty list)
- _create_obj_list() filters out docs that returned found: False to
prevent an exception when creating the object
- this has the effect of returning all found documents from list calls
- instead of throwing exceptions / returning empty if a single doc fails
- we believe this was the original intended behavior
- Fixed get_like_this()
0.2.14
- fixed all() and search() (broken by the last update!)
0.2.15
- fixed empty list passed to get_in() throwing exception
1.0.0
- Split the module into multiple files
- moved module configuration into velociwrapper.config
- added types that coorespond to types used in ElasticSearch
- added mapper tools to include reindex and create index functionality
- changed filter_by() to use Query DSL
- intellegently uses filters and falls back to queries when filtering
is not possible
- filter mode works like exact()
- id/ids key creates the special "ids" filter
- added exact()
- search for the exact phrase
- can be combined with other queries using filter_by (but not ids)
- will warn if the search is a string but the field is analyzed
- can accept a list
- range() now works with other searches
- search() may not always work with other searches due to nature of
QueryDSL
- wrote some documentation in the README.rst
1.0.1
- fixed es_types.is_analyzed returning False on lists and objects
- fixed syntax error in collections, prevented filter_by kwargs from
accepting list values
1.0.2
- fixed date parsing when converting to ESType
- changed Date() and DateTime() to accept a date or datetime (respectivly)
on __init__()
- fixed incorrect version number
- changed setup.py to use the version from the module
1.0.3
- fixed datetimes being converted to date
- fixed microseconds being added to datetimes sent to the server (and
throwing exceptions)
1.0.4
- fixed a bug that prevented defaults from being set when objects are
created
1.0.5
- fixed so VWBase objects can be pickled
1.0.6
- fixed collections references VWBase before it was imported
1.0.7
- fixed datetime sending "datetime" as type to Elasticsearch (should send
date)
1.0.8
- adds Array() type to ESTypes. Allows to specify an array of various
ESTypes
1.0.9
- fixes pickling VWBase objects causing existing instances to lose
connection to elasticsearch (because the _es attribute is a static
attribute)
- fixes mapper.reindex() to ignore subclasses that have no __type__
attribute. Such subclasses are treated as helpers that actual models are
derived from
1.0.10
- added get_server_mapping() to Mapper. Allows inspection of what the
server actually has rather than what the code says.
- fixed GeoPoint ESType returning the wrong type to elasticsearch
- fixed setup.py failing due to missing imports when looking for version
before dependencies are resolved.
- updated documentation
1.0.11
- added multi_match()
1.0.12
- fixed body not being propertly specified on reindex(). Caused explicit
mapping to be deleted
2.0
- rewrite of much of the internal query system
- created qdsl.py module to output parts of Query DSL by calling functions
- created querybuilder class that uses the QDSL functions and represents
the internal query state
- much easier to chain calls together
- no longer has to traverse the tree of JSON/dictionary to find where
to place new arguments
- all search methods (in collection.py) now use the querybuilder / qdsl
- Created VWCollectionGen generator object which is now returned by all()
and get_in()
- vastly improves performance on large queries
- items in the generator can still be referenced by index
- added callbacks / events
- several built-in events
- events can be added and triggered
- global event / callback system. Callbacks added to models exist for
all models of the same type
2.0.5
- consolidated version number
- fixed a bug in callbacks
- fixed bool type only accepting integers
- fixed _create_obj() being called multiple times
- fixed collection generator crash when a document has no _source
2.0.6
- first public release
- fixed version numbers
2.0.7
- Better PEP-8 complience (not 100% complete yet)
- added VWBase.collection() which returns a defined collection
for a model or a new base collection if one isn't defined.
- fixed VWBase.more_like_this() not working (collection.py has been merged
with base.py)
- other minor fixes
2.0.8
- fixed filter_by() using terms:{} on an analyzed field when passed a list
2.0.9
- mapper incorrectly tried to put a new alias on reindex even if no alias
was specified.
- mapper now raises MapperError if an alias_name is specified on reindex
but the alias already exists and remap_alias is False/None
2.0.10
- Changed VWCollection().delete() to work in more recent versions of
ElasticSearch where delete_by_query() has been removed.
- Changed ESType.prop_dict() to support nested ESTypes (prop_dict() is
called again to create a complete mapping. This works great for using the
`fields` keyword which allows for multifield functionality)
- Fix for some parse errors in the README.rst file
- clarified use of `collection()` in the documentation
- Added documentation for VWCollection.results
2.0.11
- Fixed a typo in collection.delete()
2.0.12
- Updated multi_match() to accept additional arguments for ES
- Removed an unused connection that was created in the config.py
- Ensure that the config option "connection_params" is actually passed to
connections (it wasn't always used previously)
- Fixed a bug that prevented "not" condition working in filter_by()
2.0.13
- Fixed bug that prevented "not" working in filters
- Fixed a typo that crashed filters with not
2.0.14
- Fixed crash when calling get_in() or filter_by(ids=list) when the list
contained `None` values
2.0.15
- filter_by(ids=list) now raises a ValueError if the list of ids is empty
2.0.16
- range() conditions (gte, gt, lte, lt) will now convert date and datetime objects
to the appropriate string
2.0.17
- Support for date and datetime objects in filter contexts
- Prevent attributes that default to list or dict from being set to None
- Attributes explicitly set to None or False will now work!
- Fixed bulk commit from search (failing due to a bad comparison)
- Fixed is_attribute() always returning False on es_types.Array
2.0.18
- Updated search() to use qdsl.query_string
- Updated code format to be more consistent
- VWBase.collection() now recursively finds VWCollection subclasses
- Mapper.get_sublcasses() now recursively finds subclasses
- Fixed an issue where datetimes were being truncated to dates
2.1.0
- Fixed relationship circular imports
- added a VWIdentity class for identifying models (used internally by relationship)
- fix for improper .isnumeric() check against python2 strings.
- create_es_type() returns a more precise Integer() or Float() instead of Number()
if the string value represents a number
- cleaned up syntax in relationship()
- Cleaned up README, fixed some typos and added documentation for newer features
- Python3 support (finally)
- Removed references to unicode()
- Fixed references to long()
- Fixed metaclass syntax
- Added __bool__ for Python3 as an alias of __non_zero__