@@ -33,9 +33,6 @@ set_zstd_error(const _zstd_state* const state,
33
33
case ERR_COMPRESS :
34
34
msg = "Unable to compress zstd data: %s" ;
35
35
break ;
36
- case ERR_SET_PLEDGED_INPUT_SIZE :
37
- msg = "Unable to set pledged uncompressed content size: %s" ;
38
- break ;
39
36
40
37
case ERR_LOAD_D_DICT :
41
38
msg = "Unable to load zstd dictionary or prefix for decompression: %s" ;
@@ -151,19 +148,19 @@ set_parameter_error(const _zstd_state* const state, int is_compress,
151
148
}
152
149
if (ZSTD_isError (bounds .error )) {
153
150
PyErr_Format (state -> ZstdError ,
154
- "Zstd %s parameter \"%s\" is invalid. (zstd v%s) " ,
155
- type , name , ZSTD_versionString () );
151
+ "Zstd %s parameter \"%s\" is invalid." ,
152
+ type , name );
156
153
return ;
157
154
}
158
155
159
156
/* Error message */
160
157
PyErr_Format (state -> ZstdError ,
161
158
"Error when setting zstd %s parameter \"%s\", it "
162
159
"should %d <= value <= %d, provided value is %d. "
163
- "(zstd v%s, %d-bit build)" ,
160
+ "(%d-bit build)" ,
164
161
type , name ,
165
162
bounds .lowerBound , bounds .upperBound , value_v ,
166
- ZSTD_versionString (), 8 * (int )sizeof (Py_ssize_t ));
163
+ 8 * (int )sizeof (Py_ssize_t ));
167
164
}
168
165
169
166
static inline _zstd_state *
@@ -558,150 +555,81 @@ static PyMethodDef _zstd_methods[] = {
558
555
};
559
556
560
557
561
- #define ADD_INT_PREFIX_MACRO (module , macro ) \
562
- do { \
563
- if (PyModule_AddIntConstant(module, "_" #macro, macro) < 0) { \
564
- return -1; \
565
- } \
566
- } while(0)
567
-
568
- static int
569
- add_parameters (PyObject * module )
570
- {
571
- /* If add new parameters, please also add to cp_list/dp_list above. */
572
-
573
- /* Compression parameters */
574
- ADD_INT_PREFIX_MACRO (module , ZSTD_c_compressionLevel );
575
- ADD_INT_PREFIX_MACRO (module , ZSTD_c_windowLog );
576
- ADD_INT_PREFIX_MACRO (module , ZSTD_c_hashLog );
577
- ADD_INT_PREFIX_MACRO (module , ZSTD_c_chainLog );
578
- ADD_INT_PREFIX_MACRO (module , ZSTD_c_searchLog );
579
- ADD_INT_PREFIX_MACRO (module , ZSTD_c_minMatch );
580
- ADD_INT_PREFIX_MACRO (module , ZSTD_c_targetLength );
581
- ADD_INT_PREFIX_MACRO (module , ZSTD_c_strategy );
582
-
583
- ADD_INT_PREFIX_MACRO (module , ZSTD_c_enableLongDistanceMatching );
584
- ADD_INT_PREFIX_MACRO (module , ZSTD_c_ldmHashLog );
585
- ADD_INT_PREFIX_MACRO (module , ZSTD_c_ldmMinMatch );
586
- ADD_INT_PREFIX_MACRO (module , ZSTD_c_ldmBucketSizeLog );
587
- ADD_INT_PREFIX_MACRO (module , ZSTD_c_ldmHashRateLog );
588
-
589
- ADD_INT_PREFIX_MACRO (module , ZSTD_c_contentSizeFlag );
590
- ADD_INT_PREFIX_MACRO (module , ZSTD_c_checksumFlag );
591
- ADD_INT_PREFIX_MACRO (module , ZSTD_c_dictIDFlag );
592
-
593
- ADD_INT_PREFIX_MACRO (module , ZSTD_c_nbWorkers );
594
- ADD_INT_PREFIX_MACRO (module , ZSTD_c_jobSize );
595
- ADD_INT_PREFIX_MACRO (module , ZSTD_c_overlapLog );
596
-
597
- /* Decompression parameters */
598
- ADD_INT_PREFIX_MACRO (module , ZSTD_d_windowLogMax );
599
-
600
- /* ZSTD_strategy enum */
601
- ADD_INT_PREFIX_MACRO (module , ZSTD_fast );
602
- ADD_INT_PREFIX_MACRO (module , ZSTD_dfast );
603
- ADD_INT_PREFIX_MACRO (module , ZSTD_greedy );
604
- ADD_INT_PREFIX_MACRO (module , ZSTD_lazy );
605
- ADD_INT_PREFIX_MACRO (module , ZSTD_lazy2 );
606
- ADD_INT_PREFIX_MACRO (module , ZSTD_btlazy2 );
607
- ADD_INT_PREFIX_MACRO (module , ZSTD_btopt );
608
- ADD_INT_PREFIX_MACRO (module , ZSTD_btultra );
609
- ADD_INT_PREFIX_MACRO (module , ZSTD_btultra2 );
610
-
611
- return 0 ;
612
- }
613
-
614
- static inline PyObject *
615
- get_zstd_version_info (void )
616
- {
617
- uint32_t ver = ZSTD_versionNumber ();
618
- uint32_t major , minor , release ;
619
-
620
- major = ver / 10000 ;
621
- minor = (ver / 100 ) % 100 ;
622
- release = ver % 100 ;
623
-
624
- return Py_BuildValue ("III" , major , minor , release );
625
- }
626
-
627
558
static inline int
628
- add_vars_to_module (PyObject * module )
559
+ add_vars_to_module (PyObject * m )
629
560
{
630
- PyObject * obj ;
561
+ #define ADD_INT_MACRO (MACRO ) \
562
+ if (PyModule_AddIntConstant((m), #MACRO, (MACRO)) < 0) { \
563
+ return -1; \
564
+ }
631
565
632
- /* zstd_version, a str. */
633
- if (PyModule_AddStringConstant ( module , "zstd_version " ,
634
- ZSTD_versionString ()) < 0 ) {
566
+ /* zstd_version_number, int */
567
+ if (PyModule_AddIntConstant ( m , "zstd_version_number " ,
568
+ ZSTD_versionNumber ()) < 0 ) {
635
569
return -1 ;
636
570
}
637
571
638
- /* zstd_version_info, a tuple. */
639
- obj = get_zstd_version_info ();
640
- if (PyModule_AddObjectRef (module , "zstd_version_info" , obj ) < 0 ) {
641
- Py_XDECREF (obj );
572
+ /* zstd_version, str */
573
+ if (PyModule_AddStringConstant (m , "zstd_version" ,
574
+ ZSTD_versionString ()) < 0 ) {
642
575
return -1 ;
643
576
}
644
- Py_DECREF (obj );
645
577
646
- /* Add zstd parameters */
647
- if (add_parameters (module ) < 0 ) {
578
+ /* ZSTD_CLEVEL_DEFAULT, int */
579
+ #if ZSTD_VERSION_NUMBER >= 10500
580
+ if (PyModule_AddIntConstant (m , "ZSTD_CLEVEL_DEFAULT" ,
581
+ ZSTD_defaultCLevel ()) < 0 ) {
648
582
return -1 ;
649
583
}
650
-
651
- /* _compressionLevel_values: (default, min, max)
652
- ZSTD_defaultCLevel() was added in zstd v1.5.0 */
653
- obj = Py_BuildValue ("iii" ,
654
- #if ZSTD_VERSION_NUMBER < 10500
655
- ZSTD_CLEVEL_DEFAULT ,
656
584
#else
657
- ZSTD_defaultCLevel (),
585
+ ADD_INT_MACRO ( ZSTD_CLEVEL_DEFAULT );
658
586
#endif
659
- ZSTD_minCLevel (),
660
- ZSTD_maxCLevel ());
661
- if (PyModule_AddObjectRef (module ,
662
- "_compressionLevel_values" ,
663
- obj ) < 0 ) {
664
- Py_XDECREF (obj );
665
- return -1 ;
666
- }
667
- Py_DECREF (obj );
668
587
669
- /* _ZSTD_CStreamSizes */
670
- obj = Py_BuildValue ("II" ,
671
- (uint32_t )ZSTD_CStreamInSize (),
672
- (uint32_t )ZSTD_CStreamOutSize ());
673
- if (PyModule_AddObjectRef (module , "_ZSTD_CStreamSizes" , obj ) < 0 ) {
674
- Py_XDECREF (obj );
588
+ /* ZSTD_DStreamOutSize, int */
589
+ if (PyModule_Add (m , "ZSTD_DStreamOutSize" ,
590
+ PyLong_FromSize_t (ZSTD_DStreamOutSize ())) < 0 ) {
675
591
return -1 ;
676
592
}
677
- Py_DECREF (obj );
678
593
679
- /* _ZSTD_DStreamSizes */
680
- obj = Py_BuildValue ( "II" ,
681
- ( uint32_t ) ZSTD_DStreamInSize (),
682
- ( uint32_t ) ZSTD_DStreamOutSize () );
683
- if ( PyModule_AddObjectRef ( module , "_ZSTD_DStreamSizes" , obj ) < 0 ) {
684
- Py_XDECREF ( obj );
685
- return -1 ;
686
- }
687
- Py_DECREF ( obj );
594
+ /* Add zstd compression parameters. All should also be in cp_list. */
595
+ ADD_INT_MACRO ( ZSTD_c_compressionLevel );
596
+ ADD_INT_MACRO ( ZSTD_c_windowLog );
597
+ ADD_INT_MACRO ( ZSTD_c_hashLog );
598
+ ADD_INT_MACRO ( ZSTD_c_chainLog );
599
+ ADD_INT_MACRO ( ZSTD_c_searchLog );
600
+ ADD_INT_MACRO ( ZSTD_c_minMatch ) ;
601
+ ADD_INT_MACRO ( ZSTD_c_targetLength );
602
+ ADD_INT_MACRO ( ZSTD_c_strategy );
688
603
689
- /* _ZSTD_CONFIG */
690
- obj = Py_BuildValue ("isOOO" , 8 * (int )sizeof (Py_ssize_t ), "c" ,
691
- Py_False ,
692
- Py_True ,
693
- /* User mremap output buffer */
694
- #if defined(HAVE_MREMAP )
695
- Py_True
696
- #else
697
- Py_False
698
- #endif
699
- );
700
- if (PyModule_AddObjectRef (module , "_ZSTD_CONFIG" , obj ) < 0 ) {
701
- Py_XDECREF (obj );
702
- return -1 ;
703
- }
704
- Py_DECREF (obj );
604
+ ADD_INT_MACRO (ZSTD_c_enableLongDistanceMatching );
605
+ ADD_INT_MACRO (ZSTD_c_ldmHashLog );
606
+ ADD_INT_MACRO (ZSTD_c_ldmMinMatch );
607
+ ADD_INT_MACRO (ZSTD_c_ldmBucketSizeLog );
608
+ ADD_INT_MACRO (ZSTD_c_ldmHashRateLog );
609
+
610
+ ADD_INT_MACRO (ZSTD_c_contentSizeFlag );
611
+ ADD_INT_MACRO (ZSTD_c_checksumFlag );
612
+ ADD_INT_MACRO (ZSTD_c_dictIDFlag );
613
+
614
+ ADD_INT_MACRO (ZSTD_c_nbWorkers );
615
+ ADD_INT_MACRO (ZSTD_c_jobSize );
616
+ ADD_INT_MACRO (ZSTD_c_overlapLog );
617
+
618
+ /* Add zstd decompression parameters. All should also be in dp_list. */
619
+ ADD_INT_MACRO (ZSTD_d_windowLogMax );
620
+
621
+ /* ZSTD_strategy enum */
622
+ ADD_INT_MACRO (ZSTD_fast );
623
+ ADD_INT_MACRO (ZSTD_dfast );
624
+ ADD_INT_MACRO (ZSTD_greedy );
625
+ ADD_INT_MACRO (ZSTD_lazy );
626
+ ADD_INT_MACRO (ZSTD_lazy2 );
627
+ ADD_INT_MACRO (ZSTD_btlazy2 );
628
+ ADD_INT_MACRO (ZSTD_btopt );
629
+ ADD_INT_MACRO (ZSTD_btultra );
630
+ ADD_INT_MACRO (ZSTD_btultra2 );
631
+
632
+ #undef ADD_INT_MACRO
705
633
706
634
return 0 ;
707
635
}
0 commit comments