2
2
from functools import wraps
3
3
import itertools
4
4
import re
5
+ import warnings
5
6
from .blob import unpack
6
7
import numpy as np
7
8
from datajoint import DataJointError
@@ -41,17 +42,11 @@ def __init__(self, relation):
41
42
self ._relation = relation ._relation
42
43
else :
43
44
self .behavior = dict (
44
- offset = 0 , limit = None , order_by = None , as_dict = False
45
+ offset = None , limit = None , order_by = None , as_dict = False
45
46
)
46
47
self ._relation = relation
47
48
48
49
49
- @copy_first
50
- def from_to (self , fro , to ):
51
- self .behavior ['offset' ] = fro
52
- self .behavior ['limit' ] = to - fro
53
- return self
54
-
55
50
@copy_first
56
51
def order_by (self , * args ):
57
52
if len (args ) > 0 :
@@ -64,10 +59,18 @@ def as_dict(self):
64
59
return self
65
60
66
61
@copy_first
67
- def limit_to (self , limit ):
62
+ def limit (self , limit ):
68
63
self .behavior ['limit' ] = limit
69
64
return self
70
65
66
+ @copy_first
67
+ def offset (self , offset ):
68
+ if self .behavior ['limit' ] is None :
69
+ warnings .warn ('You should supply a limit together with an offset,' )
70
+ self .behavior ['offset' ] = offset
71
+ return self
72
+
73
+
71
74
@copy_first
72
75
def set_behavior (self , ** kwargs ):
73
76
self .behavior .update (kwargs )
@@ -86,7 +89,9 @@ def __call__(self, **kwargs):
86
89
87
90
"""
88
91
behavior = dict (self .behavior , ** kwargs )
89
-
92
+ if behavior ['limit' ] is None and behavior ['offset' ] is not None :
93
+ warnings .warn ('Offset set, but no limit. Setting limit to a large number. Consider setting a limit yourself.' )
94
+ behavior ['limit' ] = 2 * len (self ._relation )
90
95
cur = self ._relation .cursor (** behavior )
91
96
92
97
heading = self ._relation .heading
0 commit comments