Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
2bb2f6ac
Kaydet (Commit)
2bb2f6ac
authored
Agu 10, 2013
tarafından
R David Murray
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Sade Fark
Merge #8112: Update the documenting xmlrpc server to use getfullargspec.
üst
8281e7c2
f22b62e2
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
36 additions
and
11 deletions
+36
-11
test_docxmlrpc.py
Lib/test/test_docxmlrpc.py
+23
-4
server.py
Lib/xmlrpc/server.py
+10
-7
NEWS
Misc/NEWS
+3
-0
No files found.
Lib/test/test_docxmlrpc.py
Dosyayı görüntüle @
2bb2f6ac
...
@@ -54,8 +54,18 @@ def server(evt, numrequests):
...
@@ -54,8 +54,18 @@ def server(evt, numrequests):
"""
"""
return
x
+
y
return
x
+
y
def
annotation
(
x
:
int
):
""" Use function annotations. """
return
x
class
ClassWithAnnotation
:
def
method_annotation
(
self
,
x
:
bytes
):
return
x
.
decode
()
serv
.
register_function
(
add
)
serv
.
register_function
(
add
)
serv
.
register_function
(
lambda
x
,
y
:
x
-
y
)
serv
.
register_function
(
lambda
x
,
y
:
x
-
y
)
serv
.
register_function
(
annotation
)
serv
.
register_instance
(
ClassWithAnnotation
())
while
numrequests
>
0
:
while
numrequests
>
0
:
serv
.
handle_request
()
serv
.
handle_request
()
...
@@ -177,10 +187,7 @@ class DocXMLRPCHTTPGETServer(unittest.TestCase):
...
@@ -177,10 +187,7 @@ class DocXMLRPCHTTPGETServer(unittest.TestCase):
b
'method takes two integers as arguments'
b
'method takes two integers as arguments'
b
'<br>
\n
and returns a double result.<br>
\n
'
b
'<br>
\n
and returns a double result.<br>
\n
'
b
'<br>
\n
This server does NOT support system'
b
'<br>
\n
This server does NOT support system'
b
'.methodSignature.</tt></dd></dl>
\n
<dl><dt><a name="-test_method">'
b
'.methodSignature.</tt></dd></dl>'
),
response
)
b
'<strong>test_method</strong></a>(arg)</dt><dd><tt>Test '
b
'method
\'
s docs. This method truly does'
b
' very little.</tt></dd></dl>'
),
response
)
def
test_autolink_dotted_methods
(
self
):
def
test_autolink_dotted_methods
(
self
):
"""Test that selfdot values are made strong automatically in the
"""Test that selfdot values are made strong automatically in the
...
@@ -191,6 +198,18 @@ class DocXMLRPCHTTPGETServer(unittest.TestCase):
...
@@ -191,6 +198,18 @@ class DocXMLRPCHTTPGETServer(unittest.TestCase):
self
.
assertIn
(
b
"""Try self.<strong>add</strong>, too."""
,
self
.
assertIn
(
b
"""Try self.<strong>add</strong>, too."""
,
response
.
read
())
response
.
read
())
def
test_annotations
(
self
):
""" Test that annotations works as expected """
self
.
client
.
request
(
"GET"
,
"/"
)
response
=
self
.
client
.
getresponse
()
self
.
assertIn
(
(
b
'<dl><dt><a name="-annotation"><strong>annotation</strong></a>'
b
'(x: int)</dt><dd><tt>Use function annotations.</tt>'
b
'</dd></dl>
\n
<dl><dt><a name="-method_annotation"><strong>'
b
'method_annotation</strong></a>(x: bytes)</dt></dl>'
),
response
.
read
())
def
test_main
():
def
test_main
():
support
.
run_unittest
(
DocXMLRPCHTTPGETServer
)
support
.
run_unittest
(
DocXMLRPCHTTPGETServer
)
...
...
Lib/xmlrpc/server.py
Dosyayı görüntüle @
2bb2f6ac
...
@@ -756,20 +756,23 @@ class ServerHTMLDoc(pydoc.HTMLDoc):
...
@@ -756,20 +756,23 @@ class ServerHTMLDoc(pydoc.HTMLDoc):
self
.
escape
(
anchor
),
self
.
escape
(
name
))
self
.
escape
(
anchor
),
self
.
escape
(
name
))
if
inspect
.
ismethod
(
object
):
if
inspect
.
ismethod
(
object
):
args
,
varargs
,
varkw
,
defaults
=
inspect
.
get
argspec
(
object
)
args
=
inspect
.
getfull
argspec
(
object
)
# exclude the argument bound to the instance, it will be
# exclude the argument bound to the instance, it will be
# confusing to the non-Python user
# confusing to the non-Python user
argspec
=
inspect
.
formatargspec
(
argspec
=
inspect
.
formatargspec
(
args
[
1
:],
args
.
args
[
1
:],
varargs
,
args
.
varargs
,
varkw
,
args
.
varkw
,
defaults
,
args
.
defaults
,
annotations
=
args
.
annotations
,
formatvalue
=
self
.
formatvalue
formatvalue
=
self
.
formatvalue
)
)
elif
inspect
.
isfunction
(
object
):
elif
inspect
.
isfunction
(
object
):
args
,
varargs
,
varkw
,
defaults
=
inspect
.
get
argspec
(
object
)
args
=
inspect
.
getfull
argspec
(
object
)
argspec
=
inspect
.
formatargspec
(
argspec
=
inspect
.
formatargspec
(
args
,
varargs
,
varkw
,
defaults
,
formatvalue
=
self
.
formatvalue
)
args
.
args
,
args
.
varargs
,
args
.
varkw
,
args
.
defaults
,
annotations
=
args
.
annotations
,
formatvalue
=
self
.
formatvalue
)
else
:
else
:
argspec
=
'(...)'
argspec
=
'(...)'
...
...
Misc/NEWS
Dosyayı görüntüle @
2bb2f6ac
...
@@ -24,6 +24,9 @@ Core and Builtins
...
@@ -24,6 +24,9 @@ Core and Builtins
Library
Library
-------
-------
- Issue #8112: xlmrpc.server'
s
DocXMLRPCServer
server
no
longer
raises
an
error
if
methods
have
annotations
;
it
now
correctly
displays
the
annotations
.
-
Issue
#
18600
:
Added
policy
argument
to
email
.
message
.
Message
.
as_string
,
-
Issue
#
18600
:
Added
policy
argument
to
email
.
message
.
Message
.
as_string
,
and
as_bytes
and
__bytes__
methods
to
Message
.
and
as_bytes
and
__bytes__
methods
to
Message
.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment