lesscode-flask 0.1.8__tar.gz → 0.1.10__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 (54) hide show
  1. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/PKG-INFO +1 -1
  2. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/__init__.py +1 -1
  3. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/utils/oss/__init__.py +63 -42
  4. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask.egg-info/PKG-INFO +1 -1
  5. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/README.md +0 -0
  6. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/app.py +0 -0
  7. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/db/__init__.py +0 -0
  8. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/db/datasource.py +0 -0
  9. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/db/executor.py +0 -0
  10. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/export_data/__init__.py +0 -0
  11. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/export_data/data_download_handler.py +0 -0
  12. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/log/access_log_handler.py +0 -0
  13. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/model/access_log.py +0 -0
  14. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/model/base_model.py +0 -0
  15. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/model/parameterized_query.py +0 -0
  16. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/model/resource_param_template.py +0 -0
  17. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/model/response_result.py +0 -0
  18. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/model/user.py +0 -0
  19. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/service/access_log_service.py +0 -0
  20. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/service/base_service.py +0 -0
  21. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/service/resource_param_template_service.py +0 -0
  22. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/setting/__init__.py +0 -0
  23. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/setup/__init__.py +0 -0
  24. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/static/swagger.py +0 -0
  25. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/utils/__init__.py +0 -0
  26. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/utils/decorator/__init__.py +0 -0
  27. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/utils/decorator/cache.py +0 -0
  28. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/utils/decorator/swagger.py +0 -0
  29. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/utils/file/file_exporter.py +0 -0
  30. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/utils/helpers.py +0 -0
  31. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/utils/json/NotSortJSONProvider.py +0 -0
  32. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/utils/oss/ks3_oss.py +0 -0
  33. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/utils/redis/redis_helper.py +0 -0
  34. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/utils/request/request.py +0 -0
  35. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/utils/swagger/swagger_template.py +0 -0
  36. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/utils/swagger/swagger_util.py +0 -0
  37. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/utils/thread/thread_utils.py +0 -0
  38. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/wsgi.py +0 -0
  39. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask.egg-info/SOURCES.txt +0 -0
  40. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask.egg-info/dependency_links.txt +0 -0
  41. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask.egg-info/requires.txt +0 -0
  42. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask.egg-info/top_level.txt +0 -0
  43. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/redash/query_runner/__init__.py +0 -0
  44. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/redash/query_runner/clickhouse.py +0 -0
  45. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/redash/query_runner/elasticsearch.py +0 -0
  46. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/redash/query_runner/kingbase.py +0 -0
  47. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/redash/query_runner/mysql.py +0 -0
  48. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/redash/query_runner/pg.py +0 -0
  49. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/redash/settings/__init__.py +0 -0
  50. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/redash/settings/helpers.py +0 -0
  51. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/redash/utils/__init__.py +0 -0
  52. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/redash/utils/requests_session.py +0 -0
  53. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/setup.cfg +0 -0
  54. {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lesscode-flask
3
- Version: 0.1.8
3
+ Version: 0.1.10
4
4
  Summary: lesscode-flask 是基于flask的web开发脚手架项目,该项目初衷为简化开发过程,让研发人员更加关注业务。
5
5
  Home-page: https://lesscode-flask
6
6
  Author: Chao.yy
@@ -1,4 +1,4 @@
1
- __version__ = '0.1.8'
1
+ __version__ = '0.1.10'
2
2
 
3
3
  import functools
4
4
  import logging
@@ -6,17 +6,62 @@ from lesscode_flask.utils.oss.ks3_oss import Ks3Oss
6
6
 
7
7
 
8
8
  class CommonOss:
9
- def __init__(self, storage_type, **kwargs):
9
+ def __init__(self, storage_type, data_type="stream", **kwargs):
10
10
  """
11
11
  初始化OSS
12
12
  Args:
13
13
  storage_type (str): 存储类型,目前支持ks3和file
14
- storage_config (dict): 存储配置,目前支持ks3file
14
+ data_type (str): 数据类型,目前支持streamfile_path
15
+ storage_config (dict): 存储配置,目前支持ks3和file,file_name
15
16
  """
16
17
  self.storage_type = storage_type
18
+ self.data_type = data_type
17
19
  self.storage_config = kwargs.get("storage_config", {}) if kwargs.get("storage_config", {}) else app_config.get(
18
20
  "STORAGE_CONFIG", {})
19
21
 
22
+ def _save(self, key, io_stream: BytesIO = None, file_path: str = None):
23
+ file_url_obj = dict()
24
+ if self.storage_type == "ks3":
25
+ if self.data_type == "stream":
26
+ storage_config = self.storage_config or dict()
27
+ ks3 = Ks3Oss(**storage_config)
28
+ url = ks3.save(key=key, string_data=io_stream.getvalue(), content_type="string", policy="public-read")
29
+ file_url_obj = {"key": key, "url": url}
30
+ elif self.data_type == "file_path":
31
+ storage_config = self.storage_config or dict()
32
+ ks3 = Ks3Oss(**storage_config)
33
+ url = ks3.save(key=key, filename=file_path, content_type="filename", policy="public-read")
34
+ file_url_obj = {"key": key, "url": url}
35
+ elif self.storage_type == "file":
36
+ storage_path = ""
37
+ storage_dir = self.storage_config.get("storage_dir", "")
38
+ if not storage_dir:
39
+ storage_dir = app_config.get("STORAGE_DIR")
40
+ if not storage_dir:
41
+ raise Exception("storage_dir is empty")
42
+ if self.data_type == "stream":
43
+ if "\\" in key:
44
+ key_list = key.split("\\")
45
+ elif "/" in key:
46
+ key_list = key.split("/")
47
+ else:
48
+ key_list = [key]
49
+ storage_path = storage_dir
50
+ if key_list:
51
+ for k in key_list:
52
+ storage_path = os.path.join(storage_path, k)
53
+ dir_path = os.path.dirname(storage_path)
54
+ if not os.path.exists(dir_path):
55
+ os.makedirs(dir_path)
56
+ elif self.data_type == "file_path":
57
+ with open(file_path, 'rb') as infile:
58
+ io_stram = BytesIO(infile.read())
59
+ if storage_path:
60
+ with open(storage_path, 'wb') as outfile:
61
+ outfile.write(io_stram.getvalue())
62
+ file_url_obj = {"key": key, "url": storage_path}
63
+ return file_url_obj
64
+
20
65
  def upload(self, **kwargs):
21
66
  """上传文件
22
67
  Args:
@@ -28,60 +73,36 @@ class CommonOss:
28
73
  files = kwargs.get("files", [])
29
74
  if not files:
30
75
  raise Exception("files is empty")
31
- if self.storage_type == "ks3":
32
- storage_config = self.storage_config or dict()
33
- ks3 = Ks3Oss(**storage_config)
76
+ if self.data_type == "stream":
34
77
  for f in files:
35
78
  if not isinstance(f, dict):
36
- file_name = f.filename
79
+ key = f.filename
37
80
  stream = f.stream.read()
38
81
  file_stream = BytesIO(stream)
39
- content = file_stream.getvalue().decode('utf-8')
40
- url = ks3.save(key=file_name, content=content, content_type="string", policy="public-read")
41
- file_url_list.append({"key": file_name, "url": url})
42
82
  else:
43
83
  key = f.get("key", "")
44
84
  _steam = f.get("stream")
45
85
  stream = _steam.stream.read()
46
86
  file_stream = BytesIO(stream)
47
- content = file_stream.getvalue().decode('utf-8')
48
- url = ks3.save(key=key, content=content, content_type="string", policy="public-read")
49
- file_url_list.append({"key": key, "url": url})
50
- elif self.storage_type == "file":
51
- storage_dir = self.storage_config.get("storage_dir", "")
52
- if not storage_dir:
53
- storage_dir = app_config.get("STORAGE_DIR")
54
- if not storage_dir:
55
- raise Exception("storage_dir is empty")
87
+ file_url_obj = self._save(key=key, io_stream=file_stream)
88
+ file_url_list.append(file_url_obj)
56
89
 
90
+ elif self.data_type == "file_path":
57
91
  for f in files:
58
92
  if not isinstance(f, dict):
59
- file_name = f.filename
60
- stream = f.stream.read()
61
- file_stream = BytesIO(stream)
62
- file_path = os.path.join(storage_dir, file_name)
63
- with open(file_path, 'wb') as outfile:
64
- outfile.write(file_stream.getvalue())
65
- file_url_list.append({"key": file_name, "url": file_path})
93
+ if "\\" in f:
94
+ file_name = f.split("\\")[-1]
95
+ elif "/" in f:
96
+ file_name = f.split("/")[-1]
97
+ else:
98
+ file_name = f
99
+ key = file_name
100
+ _file_path = f
66
101
  else:
67
102
  key = f.get("key", "")
68
- _steam = f.get("stream")
69
- stream = _steam.stream.read()
70
- file_stream = BytesIO(stream)
71
- if "\\" in key:
72
- key_list = key.split("\\")
73
- elif "/" in key:
74
- key_list = key.split("/")
75
- else:
76
- key_list = [key]
77
- file_path = storage_dir
78
- if key_list:
79
- for k in key_list:
80
- file_path = os.path.join(file_path, k)
81
- with open(file_path, 'wb') as outfile:
82
- outfile.write(file_stream.getvalue())
83
- file_url_list.append({"key": key, "url": file_path})
84
- return file_url_list
103
+ _file_path = f.get("file_path")
104
+ file_url_obj = self._save(key=key, file_path=_file_path)
105
+ file_url_list.append(file_url_obj)
85
106
 
86
107
  def download(self, key):
87
108
  """下载文件,返回文件流
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lesscode-flask
3
- Version: 0.1.8
3
+ Version: 0.1.10
4
4
  Summary: lesscode-flask 是基于flask的web开发脚手架项目,该项目初衷为简化开发过程,让研发人员更加关注业务。
5
5
  Home-page: https://lesscode-flask
6
6
  Author: Chao.yy
File without changes