cloudoll 2.2.17__tar.gz → 2.2.18__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. {cloudoll-2.2.17 → cloudoll-2.2.18}/PKG-INFO +1 -1
  2. cloudoll-2.2.18/cloudoll/__init__.py +1 -0
  3. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll/orm/field.py +67 -1
  4. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll.egg-info/PKG-INFO +1 -1
  5. cloudoll-2.2.17/cloudoll/__init__.py +0 -1
  6. {cloudoll-2.2.17 → cloudoll-2.2.18}/LICENSE +0 -0
  7. {cloudoll-2.2.17 → cloudoll-2.2.18}/README.md +0 -0
  8. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll/__main__.py +0 -0
  9. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll/cli.py +0 -0
  10. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll/error/__init__.py +0 -0
  11. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll/error/errors.py +0 -0
  12. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll/logging/__init__.py +0 -0
  13. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll/mail/__init__.py +0 -0
  14. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll/mail/smtp.py +0 -0
  15. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll/orm/__init__.py +0 -0
  16. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll/orm/base.py +0 -0
  17. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll/orm/err.py +0 -0
  18. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll/orm/model.py +0 -0
  19. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll/orm/mysql.py +0 -0
  20. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll/orm/parse.py +0 -0
  21. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll/orm/postgres.py +0 -0
  22. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll/robot/__init__.py +0 -0
  23. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll/robot/dingtalk.py +0 -0
  24. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll/robot/feishu.py +0 -0
  25. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll/robot/slack.py +0 -0
  26. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll/utils/__init__.py +0 -0
  27. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll/utils/common.py +0 -0
  28. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll/utils/m2d.py +0 -0
  29. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll/utils/patch_loop.py +0 -0
  30. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll/utils/watch.py +0 -0
  31. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll/web/__init__.py +0 -0
  32. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll/web/exception.py +0 -0
  33. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll/web/html.py +0 -0
  34. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll/web/http.py +0 -0
  35. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll/web/jwt.py +0 -0
  36. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll/web/settings.py +0 -0
  37. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll.egg-info/SOURCES.txt +0 -0
  38. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll.egg-info/dependency_links.txt +0 -0
  39. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll.egg-info/entry_points.txt +0 -0
  40. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll.egg-info/requires.txt +0 -0
  41. {cloudoll-2.2.17 → cloudoll-2.2.18}/cloudoll.egg-info/top_level.txt +0 -0
  42. {cloudoll-2.2.17 → cloudoll-2.2.18}/setup.cfg +0 -0
  43. {cloudoll-2.2.17 → cloudoll-2.2.18}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cloudoll
3
- Version: 2.2.17
3
+ Version: 2.2.18
4
4
  Summary: 辅助快速创建可分布的微服务。
5
5
  Home-page: https://gitee.com/chuchur/cloudoll-py
6
6
  Author: chuchur
@@ -0,0 +1 @@
1
+ __version__ = "2.2.18"
@@ -31,6 +31,17 @@ OP = objdict(
31
31
  AVG="AVG",
32
32
  AS="AS",
33
33
  SUM="SUM",
34
+ IS_TODAY="IS_TODAY",
35
+ IS_THIS_WEEK="THIS_WEEK",
36
+ IS_THIS_MONTH="THIS_MONTH",
37
+ IS_THIS_YEAR="THIS_YEAR",
38
+ BEFORE_DAYS="BEFORE_DAYS",
39
+ BEFORE_HOURS="BEFORE_HOURS",
40
+ BEFORE_MINUTES="BEFORE_MINUTES",
41
+ BEFORE_YEARS="BEFORE_YEARS",
42
+ AFTER_YEARS="AFTER_YEARS",
43
+ AFTER_MONTHS="AFTER_MONTHS",
44
+ BEFORE_MONTHS="BEFORE_MONTHS",
34
45
  DATE_FORMAT="DATE_FORMAT",
35
46
  JSON_CONTAINS_OBJECT="JSON_CONTAINS_OBJECT",
36
47
  JSON_CONTAINS_ARRAY="JSON_CONTAINS_ARRAY",
@@ -115,6 +126,39 @@ class FieldBase(object):
115
126
  def date_format(self, args):
116
127
  return Function(self, OP.DATE_FORMAT, args)
117
128
 
129
+ def is_today(self):
130
+ return Function(self, OP.IS_TODAY)
131
+
132
+ def is_this_week(self):
133
+ return Function(self, OP.IS_THIS_WEEK)
134
+
135
+ def is_this_month(self):
136
+ return Function(self, OP.IS_THIS_MONTH)
137
+
138
+ def is_this_year(self):
139
+ return Function(self, OP.IS_THIS_YEAR)
140
+
141
+ def before_days(self, args):
142
+ return Function(self, OP.BEFORE_DAYS, args)
143
+
144
+ def before_hours(self, args):
145
+ return Function(self, OP.BEFORE_HOURS, args)
146
+
147
+ def before_minutes(self, args):
148
+ return Function(self, OP.BEFORE_MINUTES, args)
149
+
150
+ def before_years(self, args):
151
+ return Function(self, OP.BEFORE_YEARS, args)
152
+
153
+ def before_months(self, args):
154
+ return Function(self, OP.BEFORE_MONTHS, args)
155
+
156
+ def after_months(self, args):
157
+ return Function(self, OP.AFTER_MONTHS, args)
158
+
159
+ def after_years(self, args):
160
+ return Function(self, OP.AFTER_YEARS, args)
161
+
118
162
  def json_contains_object(self, key, value):
119
163
  return Function(self, OP.JSON_CONTAINS_OBJECT, (key, value))
120
164
 
@@ -186,6 +230,28 @@ class Function(FieldBase):
186
230
  # todo:
187
231
  if op == OP.DATE_FORMAT:
188
232
  return f"{op}({col_name},?)", [self.rpt]
233
+ elif op == OP.IS_TODAY:
234
+ return f"DATE({col_name}) = CURDATE()", None
235
+ elif op == OP.IS_THIS_WEEK:
236
+ return f"WEEK({col_name}, 1) = WEEK(CURDATE(), 1)", None
237
+ elif op == OP.IS_THIS_MONTH:
238
+ return f"MONTH({col_name}) = MONTH(CURDATE())", None
239
+ elif op == OP.IS_THIS_YEAR:
240
+ return f"YEAR({col_name}) = YEAR(CURDATE())", None
241
+ elif op == OP.BEFORE_DAYS:
242
+ return f"DATE({col_name}) >= CURDATE() - INTERVAL {self.rpt} DAY", None
243
+ elif op == OP.BEFORE_HOURS:
244
+ return f"{col_name} >= NOW() - INTERVAL {self.rpt} HOUR", None
245
+ elif op == OP.BEFORE_MINUTES:
246
+ return f"{col_name} >= NOW() - INTERVAL {self.rpt} MINUTE", None
247
+ elif op == OP.BEFORE_YEARS:
248
+ return f"{col_name} >= DATE_SUB(NOW(), INTERVAL {self.rpt} YEAR)", None
249
+ elif op == OP.BEFORE_MONTHS:
250
+ return f"{col_name} >= DATE_SUB(NOW(), INTERVAL {self.rpt} MONTH)", None
251
+ elif op == OP.AFTER_YEARS:
252
+ return f"{col_name} < DATE_SUB(NOW(), INTERVAL {self.rpt} YEAR)", None
253
+ elif op == OP.AFTER_MONTHS:
254
+ return f"{col_name} < DATE_SUB(NOW(), INTERVAL {self.rpt} MONTH)", None
189
255
  elif op == OP.JSON_CONTAINS_OBJECT:
190
256
  _k, _v = self.rpt
191
257
  key = _k.full_name if isinstance(_k, Field) else f"'{_k}'"
@@ -328,4 +394,4 @@ class Field(FieldBase):
328
394
 
329
395
  @value.setter
330
396
  def value(self, value):
331
- self._value = value
397
+ self._value = value
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cloudoll
3
- Version: 2.2.17
3
+ Version: 2.2.18
4
4
  Summary: 辅助快速创建可分布的微服务。
5
5
  Home-page: https://gitee.com/chuchur/cloudoll-py
6
6
  Author: chuchur
@@ -1 +0,0 @@
1
- __version__ = "2.2.17"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes