aliyun-log-python-sdk 0.9.19__tar.gz → 0.9.22__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 (129) hide show
  1. {aliyun_log_python_sdk-0.9.19/aliyun_log_python_sdk.egg-info → aliyun_log_python_sdk-0.9.22}/PKG-INFO +1 -1
  2. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/compress.py +24 -1
  3. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/logclient.py +14 -2
  4. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/putlogsrequest.py +11 -1
  5. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/version.py +1 -2
  6. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22/aliyun_log_python_sdk.egg-info}/PKG-INFO +1 -1
  7. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/LICENSE +0 -0
  8. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/README.md +0 -0
  9. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/__init__.py +0 -0
  10. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/__init__.py +0 -0
  11. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/_proto_py2/__init__.py +0 -0
  12. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/_proto_py2/log_logs_pb2.py +0 -0
  13. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/_proto_py2/log_logs_raw_pb2.py +0 -0
  14. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/acl_config.py +0 -0
  15. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/acl_response.py +0 -0
  16. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/auth.py +0 -0
  17. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/common_response.py +0 -0
  18. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/consumer/__init__.py +0 -0
  19. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/consumer/checkpoint_tracker.py +0 -0
  20. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/consumer/config.py +0 -0
  21. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/consumer/consumer_client.py +0 -0
  22. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/consumer/exceptions.py +0 -0
  23. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/consumer/fetched_log_group.py +0 -0
  24. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/consumer/heart_beat.py +0 -0
  25. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/consumer/shard_worker.py +0 -0
  26. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/consumer/tasks.py +0 -0
  27. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/consumer/worker.py +0 -0
  28. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/consumer_group_request.py +0 -0
  29. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/consumer_group_response.py +0 -0
  30. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/credentials.py +0 -0
  31. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/cursor_response.py +0 -0
  32. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/cursor_time_response.py +0 -0
  33. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/es_migration/__init__.py +0 -0
  34. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/es_migration/doc_logitem_converter.py +0 -0
  35. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/es_migration/index_logstore_mappings.py +0 -0
  36. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/es_migration/mapping_index_converter.py +0 -0
  37. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/es_migration/migration_log.py +0 -0
  38. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/es_migration/migration_manager.py +0 -0
  39. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/es_migration/migration_response.py +0 -0
  40. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/es_migration/migration_task.py +0 -0
  41. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/es_migration/util.py +0 -0
  42. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/etl_config_response.py +0 -0
  43. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/etl_core/__init__.py +0 -0
  44. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/etl_core/config_parser.py +0 -0
  45. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/etl_core/etl_util.py +0 -0
  46. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/etl_core/exceptions.py +0 -0
  47. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/etl_core/restrict_config_parser.py +0 -0
  48. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/etl_core/runner.py +0 -0
  49. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/etl_core/settings.py +0 -0
  50. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/etl_core/trans_comp/__init__.py +0 -0
  51. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/etl_core/trans_comp/trans_base.py +0 -0
  52. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/etl_core/trans_comp/trans_csv.py +0 -0
  53. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/etl_core/trans_comp/trans_json.py +0 -0
  54. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/etl_core/trans_comp/trans_kv.py +0 -0
  55. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/etl_core/trans_comp/trans_lookup.py +0 -0
  56. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/etl_core/trans_comp/trans_mv.py +0 -0
  57. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/etl_core/trans_comp/trans_regex.py +0 -0
  58. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/etl_core/trans_comp/trans_set_field.py +0 -0
  59. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/etl_core/transform/__init__.py +0 -0
  60. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/etl_core/transform/condition_list.py +0 -0
  61. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/etl_core/transform/condition_transform.py +0 -0
  62. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/etl_core/transform/condition_util.py +0 -0
  63. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/etl_core/transform/transform_base.py +0 -0
  64. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/etl_core/transform/transform_list.py +0 -0
  65. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/etl_core/transform/transform_meta.py +0 -0
  66. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/export_response.py +0 -0
  67. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/ext/__init__.py +0 -0
  68. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/ext/jupyter_magic.py +0 -0
  69. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/ext/syslogclient.py +0 -0
  70. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/external_store_config.py +0 -0
  71. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/external_store_config_response.py +0 -0
  72. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/getcontextlogsresponse.py +0 -0
  73. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/gethistogramsrequest.py +0 -0
  74. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/gethistogramsresponse.py +0 -0
  75. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/getlogsrequest.py +0 -0
  76. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/getlogsresponse.py +0 -0
  77. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/histogram.py +0 -0
  78. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/index_config.py +0 -0
  79. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/index_config_response.py +0 -0
  80. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/ingestion_response.py +0 -0
  81. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/job.py +0 -0
  82. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/listlogstoresrequest.py +0 -0
  83. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/listlogstoresresponse.py +0 -0
  84. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/listtopicsrequest.py +0 -0
  85. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/listtopicsresponse.py +0 -0
  86. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/log_logs_pb2.py +0 -0
  87. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/log_logs_raw_pb2.py +0 -0
  88. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/logclient_core.py +0 -0
  89. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/logclient_operator.py +0 -0
  90. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/logexception.py +0 -0
  91. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/logger_hanlder.py +0 -0
  92. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/logitem.py +0 -0
  93. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/logrequest.py +0 -0
  94. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/logresponse.py +0 -0
  95. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/logstore_config_response.py +0 -0
  96. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/logtail_config_detail.py +0 -0
  97. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/logtail_config_response.py +0 -0
  98. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/machine_group_detail.py +0 -0
  99. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/machinegroup_response.py +0 -0
  100. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/odps_sink.py +0 -0
  101. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/oss_sink.py +0 -0
  102. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/pluralize.py +0 -0
  103. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/project_response.py +0 -0
  104. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/proto.py +0 -0
  105. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/pulllog_response.py +0 -0
  106. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/putlogsresponse.py +0 -0
  107. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/queriedlog.py +0 -0
  108. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/rebuild_index_response.py +0 -0
  109. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/resource_params.py +0 -0
  110. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/resource_response.py +0 -0
  111. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/scheduled_sql.py +0 -0
  112. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/scheduled_sql_response.py +0 -0
  113. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/shard_response.py +0 -0
  114. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/shipper_config.py +0 -0
  115. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/shipper_response.py +0 -0
  116. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/sink.py +0 -0
  117. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/sql_instance_response.py +0 -0
  118. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/substore_config_response.py +0 -0
  119. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/tag_response.py +0 -0
  120. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/topostore_params.py +0 -0
  121. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/topostore_response.py +0 -0
  122. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun/log/util.py +0 -0
  123. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun_log_python_sdk.egg-info/SOURCES.txt +0 -0
  124. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun_log_python_sdk.egg-info/dependency_links.txt +0 -0
  125. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun_log_python_sdk.egg-info/requires.txt +0 -0
  126. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/aliyun_log_python_sdk.egg-info/top_level.txt +0 -0
  127. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/setup.cfg +0 -0
  128. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/setup.py +0 -0
  129. {aliyun_log_python_sdk-0.9.19 → aliyun_log_python_sdk-0.9.22}/tests/test_alert.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: aliyun-log-python-sdk
3
- Version: 0.9.19
3
+ Version: 0.9.22
4
4
  Summary: Aliyun log service Python client SDK
5
5
  Home-page: https://github.com/aliyun/aliyun-log-python-sdk
6
6
  Author: Aliyun
@@ -6,26 +6,46 @@ from .util import Util
6
6
  import six
7
7
  import lz4.block
8
8
 
9
+ try:
10
+ import zstd
11
+ zstd_available = True
12
+ except ImportError:
13
+ zstd_available = False
9
14
 
10
15
  def lz_decompress(raw_size, data):
11
16
  return lz4.block.decompress(data, uncompressed_size=raw_size)
12
17
 
13
-
14
18
  def lz_compresss(data):
15
19
  return lz4.block.compress(data)[4:]
16
20
 
21
+ def zstd_compress(data):
22
+ if not zstd_available:
23
+ raise LogException('UnsupportedompressType',
24
+ 'Unsupported compress type zstd, zstd not installed')
25
+ return zstd.compress(data, 1)
17
26
 
18
27
  class CompressType(Enum):
19
28
  UNCOMPRESSED = 1
20
29
  LZ4 = 2
30
+ ZSTD = 3
21
31
 
22
32
  @staticmethod
23
33
  def default_compress_type():
24
34
  return CompressType.LZ4
35
+
36
+ @staticmethod
37
+ def from_nullable_str(compress_type):
38
+ if compress_type == 'lz4':
39
+ return CompressType.LZ4
40
+ if compress_type == 'zstd':
41
+ return CompressType.ZSTD
42
+ return CompressType.default_compress_type()
25
43
 
26
44
  def __str__(self):
27
45
  if self == CompressType.LZ4:
28
46
  return 'lz4'
47
+ if self == CompressType.ZSTD:
48
+ return 'zstd'
29
49
  return ''
30
50
 
31
51
 
@@ -35,6 +55,9 @@ class Compressor():
35
55
  # type: (bytes, CompressType) -> bytes
36
56
  if compress_type == CompressType.LZ4:
37
57
  return lz_compresss(data)
58
+
59
+ if compress_type == CompressType.ZSTD:
60
+ return zstd_compress(data)
38
61
 
39
62
  if compress_type == CompressType.UNCOMPRESSED:
40
63
  return data
@@ -166,6 +166,8 @@ class LogClient(object):
166
166
  self._auth = make_auth(StaticCredentialsProvider(accessKeyId, accessKey, securityToken),
167
167
  auth_version, region)
168
168
  self._get_logs_v2_enabled = True
169
+ self._session = requests.Session()
170
+ self._enable_keep_alive = True
169
171
 
170
172
  def _replace_credentials(self):
171
173
  delta = time.time() - self._last_refresh
@@ -248,10 +250,16 @@ class LogClient(object):
248
250
  'Bad json format:\n"%s"' % resp_body + '\n' + repr(ex),
249
251
  requestId, resp_status, resp_header, resp_body)
250
252
 
253
+ def _get_http_sender(self, method):
254
+ if self._enable_keep_alive:
255
+ return getattr(self._session, method.lower())
256
+ return getattr(requests, method.lower())
257
+
251
258
  def _getHttpResponse(self, method, url, params, body, headers): # ensure method, url, body is str
252
259
  try:
253
260
  headers['User-Agent'] = self._user_agent
254
- r = getattr(requests, method.lower())(url, params=params, data=body, headers=headers, timeout=self._timeout)
261
+ http_sender = self._get_http_sender(method)
262
+ r = http_sender(url, params=params, data=body, headers=headers, timeout=self._timeout)
255
263
  return r.status_code, r.content, r.headers
256
264
  except Exception as ex:
257
265
  raise LogException('LogRequestError', str(ex))
@@ -274,6 +282,10 @@ class LogClient(object):
274
282
 
275
283
  exJson = self._loadJson(resp_status, resp_header, resp_body, requestId)
276
284
  exJson = Util.convert_unicode_to_str(exJson)
285
+ if exJson is None:
286
+ raise LogException('LogRequestError',
287
+ 'Request is failed, got None response while status code is ' + str(resp_status) + '.',
288
+ requestId, resp_status, resp_header, resp_body)
277
289
 
278
290
  if 'errorCode' in exJson and 'errorMessage' in exJson:
279
291
  raise LogException(exJson['errorCode'], exJson['errorMessage'], requestId,
@@ -444,7 +456,7 @@ class LogClient(object):
444
456
 
445
457
  need_compress = request.get_compress() is None or request.get_compress()
446
458
  if need_compress:
447
- compress_type = CompressType.default_compress_type()
459
+ compress_type = CompressType.from_nullable_str(request.get_compress_type())
448
460
  headers['x-log-compresstype'] = str(compress_type)
449
461
  body = Compressor.compress(body, compress_type)
450
462
 
@@ -33,11 +33,14 @@ class PutLogsRequest(LogRequest):
33
33
 
34
34
  :type logtags: list
35
35
  :param logtags: list of key:value tag pair , [(tag_key_1,tag_value_1) , (tag_key_2,tag_value_2)]
36
+
37
+ :type compress_type: String
38
+ :param compress_type: compress_type, eg lz4, zstd, default is lz4. To use zstd, pip install zstd.
36
39
 
37
40
  """
38
41
 
39
42
  def __init__(self, project=None, logstore=None, topic=None, source=None, logitems=None, hashKey=None,
40
- compress=True, logtags=None):
43
+ compress=True, logtags=None, compress_type=None):
41
44
  LogRequest.__init__(self, project)
42
45
  self.logstore = logstore
43
46
  self.topic = topic
@@ -46,6 +49,13 @@ class PutLogsRequest(LogRequest):
46
49
  self.hashkey = hashKey
47
50
  self.compress = compress
48
51
  self.logtags = logtags
52
+ self.compress_type = compress_type
53
+
54
+ def get_compress_type(self):
55
+ return self.compress_type
56
+
57
+ def set_compress_type(self, compress_type):
58
+ self.compress_type = compress_type
49
59
 
50
60
  def get_compress(self):
51
61
  return self.compress
@@ -1,5 +1,4 @@
1
- __version__ = '0.9.19'
2
-
1
+ __version__ = '0.9.22'
3
2
 
4
3
  import sys
5
4
  OS_VERSION = str(sys.platform)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: aliyun-log-python-sdk
3
- Version: 0.9.19
3
+ Version: 0.9.22
4
4
  Summary: Aliyun log service Python client SDK
5
5
  Home-page: https://github.com/aliyun/aliyun-log-python-sdk
6
6
  Author: Aliyun