robot-piglet 1 год назад
Родитель
Сommit
2012d1699e

+ 4 - 0
build/mapping.conf.json

@@ -91,6 +91,8 @@
         "2842390994": "https://devtools-registry.s3.yandex.net/2842390994",
         "5310288728": "https://devtools-registry.s3.yandex.net/5310288728",
         "5620327787": "https://devtools-registry.s3.yandex.net/5620327787",
+        "5257605552": "https://devtools-registry.s3.yandex.net/5257605552",
+        "5257606004": "https://devtools-registry.s3.yandex.net/5257606004",
         "2989597929": "https://devtools-registry.s3.yandex.net/2989597929",
         "2989596911": "https://devtools-registry.s3.yandex.net/2989596911",
         "2989598506": "https://devtools-registry.s3.yandex.net/2989598506",
@@ -394,6 +396,8 @@
         "2842390994": "devtools jacoco agent 0.8.7 with shaded asm",
         "5310288728": "devtools jstyle runner 10.12.4",
         "5620327787": "devtools jstyle runner 10.12.4",
+        "5257605552": "devtools/bloat2/tools/bloat/bloat for darwin",
+        "5257606004": "devtools/bloat2/tools/bloat/bloat for linux",
         "2989597929": "devtools/huge_python/python for darwin",
         "2989596911": "devtools/huge_python/python for darwin-arm64",
         "2989598506": "devtools/huge_python/python for linux",

+ 34 - 0
build/ya.conf.json

@@ -41,6 +41,14 @@
                 }
             }
         },
+        "bloat": {
+            "executable": {
+                "bloat": [
+                    "bloat"
+                ]
+            },
+            "formula": "build/external_resources/bloat/resources.json"
+        },
         "clang-format": {
             "executable": {
                 "clang-format": [
@@ -319,6 +327,28 @@
                 }
             }
         },
+        "bloat": {
+            "platforms": [
+                {
+                    "default": true,
+                    "host": {
+                        "os": "LINUX"
+                    }
+                },
+                {
+                    "default": true,
+                    "host": {
+                        "os": "DARWIN"
+                    }
+                }
+            ],
+            "tools": {
+                "bloat": {
+                    "bottle": "bloat",
+                    "executable": "bloat"
+                }
+            }
+        },
         "clang-format": {
             "platforms": [
                 {
@@ -1932,6 +1962,10 @@
         "black": {
             "description": "Python styler, Python 3 only"
         },
+        "bloat": {
+            "description": "Run bloat tool",
+            "visible": false
+        },
         "c++": {
             "description": "Run C++ compiler"
         },

+ 3 - 1
contrib/python/responses/py3/.dist-info/METADATA

@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: responses
-Version: 0.24.1
+Version: 0.25.0
 Summary: A utility library for mocking out the `requests` Python library.
 Home-page: https://github.com/getsentry/responses
 Author: David Cramer
@@ -19,6 +19,7 @@ Classifier: Programming Language :: Python :: 3.8
 Classifier: Programming Language :: Python :: 3.9
 Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
+Classifier: Programming Language :: Python :: 3.12
 Classifier: Topic :: Software Development
 Requires-Python: >=3.8
 Description-Content-Type: text/x-rst
@@ -1273,6 +1274,7 @@ If you are using the ``Retry`` features of ``urllib3`` and want to cover scenari
 
     import responses
     from responses import registries
+    from urllib3.util import Retry
 
 
     @responses.activate(registry=registries.OrderedRegistry)

+ 1 - 0
contrib/python/responses/py3/README.rst

@@ -1232,6 +1232,7 @@ If you are using the ``Retry`` features of ``urllib3`` and want to cover scenari
 
     import responses
     from responses import registries
+    from urllib3.util import Retry
 
 
     @responses.activate(registry=registries.OrderedRegistry)

+ 14 - 13
contrib/python/responses/py3/responses/matchers.py

@@ -4,8 +4,9 @@ import re
 from json.decoder import JSONDecodeError
 from typing import Any
 from typing import Callable
-from typing import Dict
 from typing import List
+from typing import Mapping
+from typing import MutableMapping
 from typing import Optional
 from typing import Pattern
 from typing import Tuple
@@ -17,7 +18,7 @@ from requests import PreparedRequest
 from urllib3.util.url import parse_url
 
 
-def _create_key_val_str(input_dict: Union[Dict[Any, Any], Any]) -> str:
+def _create_key_val_str(input_dict: Union[Mapping[Any, Any], Any]) -> str:
     """
     Returns string of format {'key': val, 'key2': val2}
     Function is called recursively for nested dictionaries
@@ -57,8 +58,8 @@ def _create_key_val_str(input_dict: Union[Dict[Any, Any], Any]) -> str:
 
 
 def _filter_dict_recursively(
-    dict1: Dict[Any, Any], dict2: Dict[Any, Any]
-) -> Dict[Any, Any]:
+    dict1: Mapping[Any, Any], dict2: Mapping[Any, Any]
+) -> Mapping[Any, Any]:
     filtered_dict = {}
     for k, val in dict1.items():
         if k in dict2:
@@ -70,7 +71,7 @@ def _filter_dict_recursively(
 
 
 def urlencoded_params_matcher(
-    params: Optional[Dict[str, str]], *, allow_blank: bool = False
+    params: Optional[Mapping[str, str]], *, allow_blank: bool = False
 ) -> Callable[..., Any]:
     """
     Matches URL encoded data
@@ -100,7 +101,7 @@ def urlencoded_params_matcher(
 
 
 def json_params_matcher(
-    params: Optional[Union[Dict[str, Any], List[Any]]], *, strict_match: bool = True
+    params: Optional[Union[Mapping[str, Any], List[Any]]], *, strict_match: bool = True
 ) -> Callable[..., Any]:
     """Matches JSON encoded data of request body.
 
@@ -192,7 +193,7 @@ def fragment_identifier_matcher(identifier: Optional[str]) -> Callable[..., Any]
 
 
 def query_param_matcher(
-    params: Optional[Dict[str, Any]], *, strict_match: bool = True
+    params: Optional[MutableMapping[str, Any]], *, strict_match: bool = True
 ) -> Callable[..., Any]:
     """Matcher to match 'params' argument in request.
 
@@ -276,7 +277,7 @@ def query_string_matcher(query: Optional[str]) -> Callable[..., Any]:
     return match
 
 
-def request_kwargs_matcher(kwargs: Optional[Dict[str, Any]]) -> Callable[..., Any]:
+def request_kwargs_matcher(kwargs: Optional[Mapping[str, Any]]) -> Callable[..., Any]:
     """
     Matcher to match keyword arguments provided to request
 
@@ -308,7 +309,7 @@ def request_kwargs_matcher(kwargs: Optional[Dict[str, Any]]) -> Callable[..., An
 
 
 def multipart_matcher(
-    files: Dict[str, Any], data: Optional[Dict[str, str]] = None
+    files: Mapping[str, Any], data: Optional[Mapping[str, str]] = None
 ) -> Callable[..., Any]:
     """
     Matcher to match 'multipart/form-data' content-type.
@@ -392,7 +393,7 @@ def multipart_matcher(
 
 
 def header_matcher(
-    headers: Dict[str, Union[str, Pattern[str]]], strict_match: bool = False
+    headers: Mapping[str, Union[str, Pattern[str]]], strict_match: bool = False
 ) -> Callable[..., Any]:
     """
     Matcher to match 'headers' argument in request using the responses library.
@@ -408,7 +409,7 @@ def header_matcher(
     :return: (func) matcher
     """
 
-    def _compare_with_regex(request_headers: Union[Dict[Any, Any], Any]) -> bool:
+    def _compare_with_regex(request_headers: Union[Mapping[Any, Any], Any]) -> bool:
         if strict_match and len(request_headers) != len(headers):
             return False
 
@@ -420,13 +421,13 @@ def header_matcher(
                 else:
                     if not v == request_headers[k]:
                         return False
-            elif strict_match:
+            else:
                 return False
 
         return True
 
     def match(request: PreparedRequest) -> Tuple[bool, str]:
-        request_headers: Union[Dict[Any, Any], Any] = request.headers or {}
+        request_headers: Union[Mapping[Any, Any], Any] = request.headers or {}
 
         if not strict_match:
             # filter down to just the headers specified in the matcher

+ 1 - 1
contrib/python/responses/py3/ya.make

@@ -2,7 +2,7 @@
 
 PY3_LIBRARY()
 
-VERSION(0.24.1)
+VERSION(0.25.0)
 
 LICENSE(Apache-2.0)
 

+ 3 - 0
yt/yt/client/table_client/config.cpp

@@ -270,6 +270,9 @@ void TDictionaryCompressionConfig::Register(TRegistrar registrar)
     registrar.Parameter("column_dictionary_size", &TThis::ColumnDictionarySize)
         .GreaterThanOrEqual(NCompression::GetDictionaryCompressionCodec()->GetMinDictionarySize())
         .Default(32_KB);
+    registrar.Parameter("compression_level", &TThis::CompressionLevel)
+        .InRange(1, NCompression::GetDictionaryCompressionCodec()->GetMaxCompressionLevel())
+        .Default(NCompression::GetDictionaryCompressionCodec()->GetDefaultCompressionLevel());
     registrar.Parameter("applied_policies", &TThis::AppliedPolicies)
         .Default({
             EDictionaryCompressionPolicy::LargeChunkFirst,

+ 4 - 0
yt/yt/client/table_client/config.h

@@ -244,6 +244,10 @@ public:
     //! Recommended to be ~100 times less than weight of samples for that column.
     i64 ColumnDictionarySize;
 
+    //! Level of compression algorithm.
+    //! Applied to digested compression dictionary upon its construction.
+    int CompressionLevel;
+
     //! Subset of all dictionary building policies.
     //! Will build and apply dictionaries only from this subset.
     //! Upon each chunk compression will independently decide which dictionary fits best.