diff --git a/mercurial/wireprotov2server.py b/mercurial/wireprotov2server.py --- a/mercurial/wireprotov2server.py +++ b/mercurial/wireprotov2server.py @@ -603,9 +603,6 @@ A callable returning the default value for this argument. If not specified, ``None`` will be the default value. - ``required`` - Bool indicating whether the argument is required. - ``example`` An example value for this argument. @@ -671,13 +668,9 @@ raise error.ProgrammingError('%s argument for command %s does not ' 'declare example field' % (arg, name)) - if 'default' in meta and meta.get('required'): - raise error.ProgrammingError('%s argument for command %s is marked ' - 'as required but has a default value' % - (arg, name)) + meta['required'] = 'default' not in meta meta.setdefault('default', lambda: None) - meta.setdefault('required', False) meta.setdefault('validvalues', None) def register(func): @@ -792,14 +785,17 @@ args={ 'noderange': { 'type': 'list', + 'default': lambda: None, 'example': [[b'0123456...'], [b'abcdef...']], }, 'nodes': { 'type': 'list', + 'default': lambda: None, 'example': [b'0123456...'], }, 'nodesdepth': { 'type': 'int', + 'default': lambda: None, 'example': 10, }, 'fields': { @@ -968,7 +964,6 @@ }, 'nodes': { 'type': 'list', - 'required': True, 'example': [b'0123456...'], }, 'fields': { @@ -979,7 +974,6 @@ }, 'path': { 'type': 'bytes', - 'required': True, 'example': b'foo.txt', } }, @@ -1074,7 +1068,6 @@ args={ 'namespace': { 'type': 'bytes', - 'required': True, 'example': b'ns', }, }, @@ -1091,7 +1084,6 @@ args={ 'key': { 'type': 'bytes', - 'required': True, 'example': b'foo', }, }, @@ -1109,7 +1101,6 @@ args={ 'nodes': { 'type': 'list', - 'required': True, 'example': [b'0123456...'], }, 'haveparents': { @@ -1125,7 +1116,6 @@ }, 'tree': { 'type': 'bytes', - 'required': True, 'example': b'', }, }, @@ -1183,22 +1173,18 @@ args={ 'namespace': { 'type': 'bytes', - 'required': True, 'example': b'ns', }, 'key': { 'type': 'bytes', - 'required': True, 'example': b'key', }, 'old': { 'type': 'bytes', - 'required': True, 'example': b'old', }, 'new': { 'type': 'bytes', - 'required': True, 'example': 'new', }, },