@@ -2740,11 +2740,14 @@ _PyArg_CheckPositional(const char *name, Py_ssize_t nargs,
2740
2740
assert (min <= max );
2741
2741
2742
2742
if (nargs < min ) {
2743
- if (name != NULL )
2743
+ if (name != NULL ) {
2744
+ const char * arg_type = (strcmp (name , "dict" ) == 0 || strcmp (name , "update" ) == 0 )
2745
+ ? "positional argument" : "argument" ;
2744
2746
PyErr_Format (
2745
2747
PyExc_TypeError ,
2746
- "%.200s expected %s%zd argument%s, got %zd" ,
2747
- name , (min == max ? "" : "at least " ), min , min == 1 ? "" : "s" , nargs );
2748
+ "%.200s expected %s%zd %s%s, got %zd" ,
2749
+ name , (min == max ? "" : "at least " ), min , arg_type , min == 1 ? "" : "s" , nargs );
2750
+ }
2748
2751
else
2749
2752
PyErr_Format (
2750
2753
PyExc_TypeError ,
@@ -2759,11 +2762,14 @@ _PyArg_CheckPositional(const char *name, Py_ssize_t nargs,
2759
2762
}
2760
2763
2761
2764
if (nargs > max ) {
2762
- if (name != NULL )
2765
+ if (name != NULL ) {
2766
+ const char * arg_type = (strcmp (name , "dict" ) == 0 || strcmp (name , "update" ) == 0 )
2767
+ ? "positional argument" : "argument" ;
2763
2768
PyErr_Format (
2764
2769
PyExc_TypeError ,
2765
- "%.200s expected %s%zd argument%s, got %zd" ,
2766
- name , (min == max ? "" : "at most " ), max , max == 1 ? "" : "s" , nargs );
2770
+ "%.200s expected %s%zd %s%s, got %zd" ,
2771
+ name , (min == max ? "" : "at most " ), max , arg_type , max == 1 ? "" : "s" , nargs );
2772
+ }
2767
2773
else
2768
2774
PyErr_Format (
2769
2775
PyExc_TypeError ,
0 commit comments