easy-utils-dev 2.158__tar.gz → 2.160__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 (42) hide show
  1. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/PKG-INFO +1 -1
  2. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev/uiserver.py +48 -24
  3. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev.egg-info/PKG-INFO +1 -1
  4. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/setup.py +1 -1
  5. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/MANIFEST.in +0 -0
  6. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev/EasySsh.py +0 -0
  7. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev/Events.py +0 -0
  8. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev/FastQueue.py +0 -0
  9. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev/NameObject.py +0 -0
  10. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev/__init__.py +0 -0
  11. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev/abortable.py +0 -0
  12. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev/brevosmtp.py +0 -0
  13. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev/check_license.py +0 -0
  14. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev/cplib.py +0 -0
  15. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev/custom_env.py +0 -0
  16. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev/debugger.py +0 -0
  17. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev/easy_oracle.py +0 -0
  18. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev/encryptor.py +0 -0
  19. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev/ept.py +0 -0
  20. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev/ept_sql/create_dirs.sql +0 -0
  21. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev/ept_sql/create_ept_tables.sql +0 -0
  22. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev/exceptions.py +0 -0
  23. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev/filescompressor.py +0 -0
  24. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev/generate_license.py +0 -0
  25. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev/keycloakapi.py +0 -0
  26. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev/lralib.py +0 -0
  27. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev/ne1830PSS.py +0 -0
  28. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev/nsp_kafka.py +0 -0
  29. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev/openid_server.py +0 -0
  30. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev/optics_utils.py +0 -0
  31. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev/require_auth.py +0 -0
  32. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev/simple_sqlite.py +0 -0
  33. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev/temp_memory.py +0 -0
  34. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev/utils.py +0 -0
  35. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev/winserviceapi.py +0 -0
  36. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev/wsnoclib.py +0 -0
  37. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev/wsselib.py +0 -0
  38. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev.egg-info/SOURCES.txt +0 -0
  39. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev.egg-info/dependency_links.txt +0 -0
  40. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev.egg-info/requires.txt +0 -0
  41. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/easy_utils_dev.egg-info/top_level.txt +0 -0
  42. {easy_utils_dev-2.158 → easy_utils_dev-2.160}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: easy_utils_dev
3
- Version: 2.158
3
+ Version: 2.160
4
4
  Keywords: python3
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Requires-Dist: psutil
@@ -51,6 +51,31 @@ def clone_request(request):
51
51
  "cookies": request.cookies,
52
52
  }
53
53
 
54
+ class Response :
55
+ def __init__(self) :
56
+ self.success = self.ok
57
+ self.failure = self.error
58
+
59
+ def ok(self , result=[] , message=None , **kwargs) :
60
+ timestamp = getTimestamp()
61
+ return {'status' : 200 , 'message' : message , 'result' : result , **kwargs, 'timestamp' : timestamp}
62
+
63
+ def error(self , message=None , **kwargs) :
64
+ timestamp = getTimestamp()
65
+ return {'status' : 400 , 'message' : message , **kwargs , 'timestamp' : timestamp}
66
+
67
+ def internal_error(self , message=None , **kwargs ) :
68
+ timestamp = getTimestamp()
69
+ return {'status' : 500 , 'message' : message , **kwargs , 'timestamp' : timestamp}
70
+
71
+ def not_found(self , message=None , **kwargs) :
72
+ timestamp = getTimestamp()
73
+ return {'status' : 404 , 'message' : message , **kwargs , 'timestamp' : timestamp}
74
+
75
+ def unauthorized(self , message=None , **kwargs) :
76
+ timestamp = getTimestamp()
77
+ return {'status' : 401 , 'message' : message , **kwargs , 'timestamp' : timestamp}
78
+
54
79
  class AbortRequest :
55
80
  def __init__(self, request ) :
56
81
  self.request = clone_request(request)
@@ -71,7 +96,6 @@ class AbortRequest :
71
96
  self.delete_async_request_ts = None
72
97
  self.killed = False
73
98
 
74
-
75
99
  def abort(self) :
76
100
  kill_thread(self.thread)
77
101
  self.killed = True
@@ -205,35 +229,37 @@ class UISERVER :
205
229
  if not alive :
206
230
  break
207
231
  time.sleep(.25)
208
- return { 'status' : 200 , 'message' : 'Request aborted' , 'abort_timestamp' : timestamp , 'abort_id' : id , 'alive' : alive , 'url' : abort.request.get('path')}
232
+ return Response().ok(message='Request aborted' , abort_timestamp=timestamp , abort_id=id , alive=alive , url=abort.request.get('path'))
233
+
209
234
  else :
210
- return { 'status' : 404 , 'message' : 'Request not found or request is not abortable. Check request headers for abortable flag.'}
235
+ return Response().not_found(message='Request not found or request is not abortable. Check request headers for abortable flag.')
211
236
 
212
237
  @self.app.route(f"/request/traceback/<key>" , methods=['GET'])
213
238
  def get_traceback(key : str ) :
214
239
  traceback = self.cache.get(key)
215
240
  if traceback :
216
- return { 'status' : 200 , 'traceback' : traceback.get('traceback') }
241
+ return Response().ok(message='Traceback found' , traceback=traceback.get('traceback'))
217
242
  else :
218
- return { 'status' : 404 , 'message' : 'Traceback not found or expired' }
243
+ return Response().not_found(message='Traceback not found or expired')
219
244
 
220
245
  @self.app.route(f'{self.request_reply_base_url}/<id>' , methods=['GET'])
221
246
  def get_result_of_async_request(id : str ) :
222
247
  request : AbortRequest = self.bg_requests.get(id)
223
248
  if request :
224
- return {
225
- 'status' : 200 ,
226
- 'internalid' : id ,
227
- 'result' : request.result ,
228
- 'in_progress' : request.in_progress ,
229
- 'async_request' : request.async_request ,
230
- 'internalid' : request.internalid ,
231
- 'start_ts' : request.start_ts ,
232
- 'end_ts' : request.end_ts ,
233
- 'execution' : request.execution,
234
- 'success' : request.success,
235
- 'killed' : request.killed
236
- }
249
+ return Response().ok(
250
+ message='Result of async request found' ,
251
+ internalid=id ,
252
+ result=request.result ,
253
+ in_progress=request.in_progress ,
254
+ async_request=request.async_request ,
255
+ internalid=request.internalid ,
256
+ start_ts=request.start_ts ,
257
+ end_ts=request.end_ts ,
258
+ execution=request.execution ,
259
+ success=request.success ,
260
+ killed=request.killed
261
+ )
262
+
237
263
 
238
264
  @self.app.before_request
239
265
  def before_request() :
@@ -242,7 +268,7 @@ class UISERVER :
242
268
 
243
269
 
244
270
  if (self.serve_with_secret_key) and (request.path not in self.secret_key_execlude_urls) and (request.headers.get('secretkey') != self.secretkey):
245
- return jsonify({"error": "Secret key is invalid"}), 401
271
+ return Response().unauthorized(message='Secret key is invalid')
246
272
 
247
273
  @copy_current_request_context
248
274
  def run_async_job_results( target_func , abort : AbortRequest ) :
@@ -281,11 +307,11 @@ class UISERVER :
281
307
  if request.headers.get('async') == 'false' :
282
308
  target_func = current_app.view_functions.get(request.endpoint)
283
309
  if not target_func:
284
- return {"error": "Route not found"}, 404
310
+ return Response().not_found(message='Route not found')
285
311
  th = start_thread(target=run_async_job_results, args=[target_func , abort ])
286
312
  abort.thread = th
287
313
  self.bg_requests[requestId] = abort
288
- return {"status": 200, "message": "Request now in running bg", "abort_id": abort.abort_id} , 200
314
+ return Response().ok(message='Request now in running bg' , abort_id=abort.abort_id)
289
315
 
290
316
  if self.return_exception_as_code_400 :
291
317
  @self.app.errorhandler(Exception)
@@ -324,15 +350,13 @@ class UISERVER :
324
350
  }
325
351
  self.logger.error(f'error: {json.dumps(response , indent=4)}')
326
352
  self.cache.set( custom_key=key , item={**response , 'traceback' : str(traceback.format_exc())} , auto_destroy_period=1800 , store_deleted_key=False )
327
- # del response['traceback']
328
- return response , 200
353
+ return Response().error( **response )
329
354
 
330
355
  @self.app.after_request
331
356
  def after_request(response) :
332
357
 
333
358
  if self.simulate_network_delay :
334
359
  time.sleep(self.simulate_network_delay)
335
-
336
360
  try :
337
361
  now = getTimestamp()
338
362
  response.headers['internalid'] = request.internalid
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: easy_utils_dev
3
- Version: 2.158
3
+ Version: 2.160
4
4
  Keywords: python3
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Requires-Dist: psutil
@@ -1,6 +1,6 @@
1
1
  from setuptools import setup, find_packages
2
2
 
3
- VERSION = '2.158'
3
+ VERSION = '2.160'
4
4
 
5
5
  # Setting up
6
6
  setup(
File without changes