Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit4669246

Browse files
gh-134109: Fix showing comments in pydoc output for argparse
Comments immediately preceding the object's source code are usedif the object has no docstring.Comments that do not describe the object should be separated fromthe following source code by an empty line.
1 parentea2d707 commit4669246

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

‎Lib/argparse.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,7 @@ def _set_color(self, color):
205205
# ===============================
206206
# Section and indentation methods
207207
# ===============================
208+
208209
def_indent(self):
209210
self._current_indent+=self._indent_increment
210211
self._level+=1
@@ -256,6 +257,7 @@ def _add_item(self, func, args):
256257
# ========================
257258
# Message building methods
258259
# ========================
260+
259261
defstart_section(self,heading):
260262
self._indent()
261263
section=self._Section(self,self._current_section,heading)
@@ -299,6 +301,7 @@ def add_arguments(self, actions):
299301
# =======================
300302
# Help-formatting methods
301303
# =======================
304+
302305
defformat_help(self):
303306
help=self._root_section.format_help()
304307
ifhelp:
@@ -1467,6 +1470,7 @@ def __init__(self,
14671470
# ====================
14681471
# Registration methods
14691472
# ====================
1473+
14701474
defregister(self,registry_name,value,object):
14711475
registry=self._registries.setdefault(registry_name, {})
14721476
registry[value]=object
@@ -1477,6 +1481,7 @@ def _registry_get(self, registry_name, value, default=None):
14771481
# ==================================
14781482
# Namespace default accessor methods
14791483
# ==================================
1484+
14801485
defset_defaults(self,**kwargs):
14811486
self._defaults.update(kwargs)
14821487

@@ -1496,6 +1501,7 @@ def get_default(self, dest):
14961501
# =======================
14971502
# Adding argument actions
14981503
# =======================
1504+
14991505
defadd_argument(self,*args,**kwargs):
15001506
"""
15011507
add_argument(dest, ..., name=value, ...)
@@ -1921,6 +1927,7 @@ def identity(string):
19211927
# =======================
19221928
# Pretty __repr__ methods
19231929
# =======================
1930+
19241931
def_get_kwargs(self):
19251932
names= [
19261933
'prog',
@@ -1935,6 +1942,7 @@ def _get_kwargs(self):
19351942
# ==================================
19361943
# Optional/Positional adding methods
19371944
# ==================================
1945+
19381946
defadd_subparsers(self,**kwargs):
19391947
ifself._subparsersisnotNone:
19401948
raiseValueError('cannot have multiple subparser arguments')
@@ -1988,6 +1996,7 @@ def _get_positional_actions(self):
19881996
# =====================================
19891997
# Command line argument parsing methods
19901998
# =====================================
1999+
19912000
defparse_args(self,args=None,namespace=None):
19922001
args,argv=self.parse_known_args(args,namespace)
19932002
ifargv:
@@ -2582,6 +2591,7 @@ def parse_known_intermixed_args(self, args=None, namespace=None):
25822591
# ========================
25832592
# Value conversion methods
25842593
# ========================
2594+
25852595
def_get_values(self,action,arg_strings):
25862596
# optional argument produces a default when not present
25872597
ifnotarg_stringsandaction.nargs==OPTIONAL:
@@ -2681,6 +2691,7 @@ def _check_value(self, action, value):
26812691
# =======================
26822692
# Help-formatting methods
26832693
# =======================
2694+
26842695
defformat_usage(self):
26852696
formatter=self._get_formatter()
26862697
formatter.add_usage(self.usage,self._actions,
@@ -2718,6 +2729,7 @@ def _get_formatter(self):
27182729
# =====================
27192730
# Help-printing methods
27202731
# =====================
2732+
27212733
defprint_usage(self,file=None):
27222734
iffileisNone:
27232735
file=_sys.stdout
@@ -2739,6 +2751,7 @@ def _print_message(self, message, file=None):
27392751
# ===============
27402752
# Exiting methods
27412753
# ===============
2754+
27422755
defexit(self,status=0,message=None):
27432756
ifmessage:
27442757
self._print_message(message,_sys.stderr)

‎Lib/test/test_urlparse.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1550,6 +1550,25 @@ def test_urlsplit_normalization(self):
15501550
withself.assertRaises(ValueError):
15511551
urllib.parse.urlsplit(url)
15521552

1553+
deftest_urlunsplit_relative(self):
1554+
cases= [
1555+
# expected result is a relative URL without netloc and scheme
1556+
(('','a','','',''),'//a'),
1557+
# extra leading slashes need to be stripped to avoid confusion
1558+
# with a relative URL
1559+
(('','','//a','',''),'/a'),
1560+
(('','','///a','',''),'/a'),
1561+
# not relative so extra leading slashes don't need stripping since
1562+
# they don't cause confusion
1563+
(('http','x.y','//a','',''),'http://x.y//a'),
1564+
# avoid confusion with path containing colon
1565+
(('','','a:b','',''),'./a:b'),
1566+
]
1567+
forparts,resultincases:
1568+
withself.subTest([parts,result]):
1569+
self.assertEqual(urllib.parse.urlunsplit(parts),result,
1570+
msg=f'{parts=}')
1571+
15531572
classUtility_Tests(unittest.TestCase):
15541573
"""Testcase to test the various utility functions in the urllib."""
15551574
# In Python 2 this test class was in test_urllib.

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp