Skip to content

Commit ca7fa9c

Browse files
committed
zstd: Replace add_parameters and ADD_INT_PREFIX_MACRO with PyModule_AddIntMacro
1 parent 727d35e commit ca7fa9c

File tree

2 files changed

+69
-89
lines changed

2 files changed

+69
-89
lines changed

Lib/compression/zstd/__init__.py

+32-32
Original file line numberDiff line numberDiff line change
@@ -168,28 +168,28 @@ def decompress(data, zstd_dict=None, options=None):
168168
class CompressionParameter(enum.IntEnum):
169169
"""Compression parameters."""
170170

171-
compression_level = _zstd._ZSTD_c_compressionLevel
172-
window_log = _zstd._ZSTD_c_windowLog
173-
hash_log = _zstd._ZSTD_c_hashLog
174-
chain_log = _zstd._ZSTD_c_chainLog
175-
search_log = _zstd._ZSTD_c_searchLog
176-
min_match = _zstd._ZSTD_c_minMatch
177-
target_length = _zstd._ZSTD_c_targetLength
178-
strategy = _zstd._ZSTD_c_strategy
179-
180-
enable_long_distance_matching = _zstd._ZSTD_c_enableLongDistanceMatching
181-
ldm_hash_log = _zstd._ZSTD_c_ldmHashLog
182-
ldm_min_match = _zstd._ZSTD_c_ldmMinMatch
183-
ldm_bucket_size_log = _zstd._ZSTD_c_ldmBucketSizeLog
184-
ldm_hash_rate_log = _zstd._ZSTD_c_ldmHashRateLog
185-
186-
content_size_flag = _zstd._ZSTD_c_contentSizeFlag
187-
checksum_flag = _zstd._ZSTD_c_checksumFlag
188-
dict_id_flag = _zstd._ZSTD_c_dictIDFlag
189-
190-
nb_workers = _zstd._ZSTD_c_nbWorkers
191-
job_size = _zstd._ZSTD_c_jobSize
192-
overlap_log = _zstd._ZSTD_c_overlapLog
171+
compression_level = _zstd.ZSTD_c_compressionLevel
172+
window_log = _zstd.ZSTD_c_windowLog
173+
hash_log = _zstd.ZSTD_c_hashLog
174+
chain_log = _zstd.ZSTD_c_chainLog
175+
search_log = _zstd.ZSTD_c_searchLog
176+
min_match = _zstd.ZSTD_c_minMatch
177+
target_length = _zstd.ZSTD_c_targetLength
178+
strategy = _zstd.ZSTD_c_strategy
179+
180+
enable_long_distance_matching = _zstd.ZSTD_c_enableLongDistanceMatching
181+
ldm_hash_log = _zstd.ZSTD_c_ldmHashLog
182+
ldm_min_match = _zstd.ZSTD_c_ldmMinMatch
183+
ldm_bucket_size_log = _zstd.ZSTD_c_ldmBucketSizeLog
184+
ldm_hash_rate_log = _zstd.ZSTD_c_ldmHashRateLog
185+
186+
content_size_flag = _zstd.ZSTD_c_contentSizeFlag
187+
checksum_flag = _zstd.ZSTD_c_checksumFlag
188+
dict_id_flag = _zstd.ZSTD_c_dictIDFlag
189+
190+
nb_workers = _zstd.ZSTD_c_nbWorkers
191+
job_size = _zstd.ZSTD_c_jobSize
192+
overlap_log = _zstd.ZSTD_c_overlapLog
193193

194194
def bounds(self):
195195
"""Return the (lower, upper) int bounds of a compression parameter.
@@ -202,7 +202,7 @@ def bounds(self):
202202
class DecompressionParameter(enum.IntEnum):
203203
"""Decompression parameters."""
204204

205-
window_log_max = _zstd._ZSTD_d_windowLogMax
205+
window_log_max = _zstd.ZSTD_d_windowLogMax
206206

207207
def bounds(self):
208208
"""Return the (lower, upper) int bounds of a decompression parameter.
@@ -220,15 +220,15 @@ class Strategy(enum.IntEnum):
220220
the numeric value might change.
221221
"""
222222

223-
fast = _zstd._ZSTD_fast
224-
dfast = _zstd._ZSTD_dfast
225-
greedy = _zstd._ZSTD_greedy
226-
lazy = _zstd._ZSTD_lazy
227-
lazy2 = _zstd._ZSTD_lazy2
228-
btlazy2 = _zstd._ZSTD_btlazy2
229-
btopt = _zstd._ZSTD_btopt
230-
btultra = _zstd._ZSTD_btultra
231-
btultra2 = _zstd._ZSTD_btultra2
223+
fast = _zstd.ZSTD_fast
224+
dfast = _zstd.ZSTD_dfast
225+
greedy = _zstd.ZSTD_greedy
226+
lazy = _zstd.ZSTD_lazy
227+
lazy2 = _zstd.ZSTD_lazy2
228+
btlazy2 = _zstd.ZSTD_btlazy2
229+
btopt = _zstd.ZSTD_btopt
230+
btultra = _zstd.ZSTD_btultra
231+
btultra2 = _zstd.ZSTD_btultra2
232232

233233

234234
# Check validity of the CompressionParameter & DecompressionParameter types

Modules/_zstd/_zstdmodule.c

+37-57
Original file line numberDiff line numberDiff line change
@@ -559,59 +559,6 @@ static PyMethodDef _zstd_methods[] = {
559559
};
560560

561561

562-
#define ADD_INT_PREFIX_MACRO(module, macro) \
563-
do { \
564-
if (PyModule_AddIntConstant(module, "_" #macro, macro) < 0) { \
565-
return -1; \
566-
} \
567-
} while(0)
568-
569-
static int
570-
add_parameters(PyObject *module)
571-
{
572-
/* If add new parameters, please also add to cp_list/dp_list above. */
573-
574-
/* Compression parameters */
575-
ADD_INT_PREFIX_MACRO(module, ZSTD_c_compressionLevel);
576-
ADD_INT_PREFIX_MACRO(module, ZSTD_c_windowLog);
577-
ADD_INT_PREFIX_MACRO(module, ZSTD_c_hashLog);
578-
ADD_INT_PREFIX_MACRO(module, ZSTD_c_chainLog);
579-
ADD_INT_PREFIX_MACRO(module, ZSTD_c_searchLog);
580-
ADD_INT_PREFIX_MACRO(module, ZSTD_c_minMatch);
581-
ADD_INT_PREFIX_MACRO(module, ZSTD_c_targetLength);
582-
ADD_INT_PREFIX_MACRO(module, ZSTD_c_strategy);
583-
584-
ADD_INT_PREFIX_MACRO(module, ZSTD_c_enableLongDistanceMatching);
585-
ADD_INT_PREFIX_MACRO(module, ZSTD_c_ldmHashLog);
586-
ADD_INT_PREFIX_MACRO(module, ZSTD_c_ldmMinMatch);
587-
ADD_INT_PREFIX_MACRO(module, ZSTD_c_ldmBucketSizeLog);
588-
ADD_INT_PREFIX_MACRO(module, ZSTD_c_ldmHashRateLog);
589-
590-
ADD_INT_PREFIX_MACRO(module, ZSTD_c_contentSizeFlag);
591-
ADD_INT_PREFIX_MACRO(module, ZSTD_c_checksumFlag);
592-
ADD_INT_PREFIX_MACRO(module, ZSTD_c_dictIDFlag);
593-
594-
ADD_INT_PREFIX_MACRO(module, ZSTD_c_nbWorkers);
595-
ADD_INT_PREFIX_MACRO(module, ZSTD_c_jobSize);
596-
ADD_INT_PREFIX_MACRO(module, ZSTD_c_overlapLog);
597-
598-
/* Decompression parameters */
599-
ADD_INT_PREFIX_MACRO(module, ZSTD_d_windowLogMax);
600-
601-
/* ZSTD_strategy enum */
602-
ADD_INT_PREFIX_MACRO(module, ZSTD_fast);
603-
ADD_INT_PREFIX_MACRO(module, ZSTD_dfast);
604-
ADD_INT_PREFIX_MACRO(module, ZSTD_greedy);
605-
ADD_INT_PREFIX_MACRO(module, ZSTD_lazy);
606-
ADD_INT_PREFIX_MACRO(module, ZSTD_lazy2);
607-
ADD_INT_PREFIX_MACRO(module, ZSTD_btlazy2);
608-
ADD_INT_PREFIX_MACRO(module, ZSTD_btopt);
609-
ADD_INT_PREFIX_MACRO(module, ZSTD_btultra);
610-
ADD_INT_PREFIX_MACRO(module, ZSTD_btultra2);
611-
612-
return 0;
613-
}
614-
615562
static inline int
616563
add_vars_to_module(PyObject *module)
617564
{
@@ -648,10 +595,43 @@ add_vars_to_module(PyObject *module)
648595
return -1;
649596
}
650597

651-
/* Add zstd parameters */
652-
if (add_parameters(module) < 0) {
653-
return -1;
654-
}
598+
/* Add zstd compression parameters. All should also be in cp_list. */
599+
PyModule_AddIntMacro(module, ZSTD_c_compressionLevel);
600+
PyModule_AddIntMacro(module, ZSTD_c_windowLog);
601+
PyModule_AddIntMacro(module, ZSTD_c_hashLog);
602+
PyModule_AddIntMacro(module, ZSTD_c_chainLog);
603+
PyModule_AddIntMacro(module, ZSTD_c_searchLog);
604+
PyModule_AddIntMacro(module, ZSTD_c_minMatch);
605+
PyModule_AddIntMacro(module, ZSTD_c_targetLength);
606+
PyModule_AddIntMacro(module, ZSTD_c_strategy);
607+
608+
PyModule_AddIntMacro(module, ZSTD_c_enableLongDistanceMatching);
609+
PyModule_AddIntMacro(module, ZSTD_c_ldmHashLog);
610+
PyModule_AddIntMacro(module, ZSTD_c_ldmMinMatch);
611+
PyModule_AddIntMacro(module, ZSTD_c_ldmBucketSizeLog);
612+
PyModule_AddIntMacro(module, ZSTD_c_ldmHashRateLog);
613+
614+
PyModule_AddIntMacro(module, ZSTD_c_contentSizeFlag);
615+
PyModule_AddIntMacro(module, ZSTD_c_checksumFlag);
616+
PyModule_AddIntMacro(module, ZSTD_c_dictIDFlag);
617+
618+
PyModule_AddIntMacro(module, ZSTD_c_nbWorkers);
619+
PyModule_AddIntMacro(module, ZSTD_c_jobSize);
620+
PyModule_AddIntMacro(module, ZSTD_c_overlapLog);
621+
622+
/* Add zstd decompression parameters. All should also be in dp_list. */
623+
PyModule_AddIntMacro(module, ZSTD_d_windowLogMax);
624+
625+
/* ZSTD_strategy enum */
626+
PyModule_AddIntMacro(module, ZSTD_fast);
627+
PyModule_AddIntMacro(module, ZSTD_dfast);
628+
PyModule_AddIntMacro(module, ZSTD_greedy);
629+
PyModule_AddIntMacro(module, ZSTD_lazy);
630+
PyModule_AddIntMacro(module, ZSTD_lazy2);
631+
PyModule_AddIntMacro(module, ZSTD_btlazy2);
632+
PyModule_AddIntMacro(module, ZSTD_btopt);
633+
PyModule_AddIntMacro(module, ZSTD_btultra);
634+
PyModule_AddIntMacro(module, ZSTD_btultra2);
655635

656636
return 0;
657637
}

0 commit comments

Comments
 (0)