Methods and properties
^^^^^^^^^^^^^^^^^^^^^^
+.. testsetup::
+
+ from pathlib import PurePosixPath, PureWindowsPath
+
Pure paths provide the following methods and properties:
.. data:: PurePath.drive
Return information about this path (similarly to :func:`os.stat`).
The result is looked up at each call to this method.
+ ::
+
>>> p = Path('setup.py')
>>> p.stat().st_size
956
.. method:: Path.rglob(pattern)
This is like calling :meth:`Path.glob` with "``**``" added in front of the
- given *pattern*:
+ given *pattern*::
>>> sorted(Path().rglob("*.py"))
[PosixPath('build/lib/pathlib.py'),
An :exc:`OSError` can be raised if either file cannot be accessed for some
reason.
+ ::
+
>>> p = Path('spam')
>>> q = Path('eggs')
>>> p.samefile(q)
*target_is_directory* must be true (default ``False``) if the link's target
is a directory. Under POSIX, *target_is_directory*'s value is ignored.
+ ::
+
>>> p = Path('mylink')
>>> p.symlink_to('setup.py')
>>> p.resolve()
Certificate handling
^^^^^^^^^^^^^^^^^^^^
+.. testsetup::
+
+ import ssl
+
.. function:: match_hostname(cert, hostname)
Verify that *cert* (in decoded format as returned by
>>> import ssl
>>> timestamp = ssl.cert_time_to_seconds("Jan 5 09:34:43 2018 GMT")
- >>> timestamp
+ >>> timestamp # doctest: +SKIP
1515144883
>>> from datetime import datetime
- >>> print(datetime.utcfromtimestamp(timestamp))
+ >>> print(datetime.utcfromtimestamp(timestamp)) # doctest: +SKIP
2018-01-05 09:34:43
"notBefore" or "notAfter" dates must use GMT (:rfc:`5280`).
'strength_bits': 128}]
On OpenSSL 1.1 and newer the cipher dict contains additional fields::
+
>>> ctx.get_ciphers() # OpenSSL 1.1+
[{'aead': True,
'alg_bits': 256,
.. versionchanged:: 3.6
:attr:`SSLContext.options` returns :class:`Options` flags:
- >>> ssl.create_default_context().options
+ >>> ssl.create_default_context().options # doctest: +SKIP
<Options.OP_ALL|OP_NO_SSLv3|OP_NO_SSLv2|OP_NO_COMPRESSION: 2197947391>
.. attribute:: SSLContext.protocol
.. versionchanged:: 3.6
:attr:`SSLContext.verify_flags` returns :class:`VerifyFlags` flags:
- >>> ssl.create_default_context().verify_flags
+ >>> ssl.create_default_context().verify_flags # doctest: +SKIP
<VerifyFlags.VERIFY_X509_TRUSTED_FIRST: 32768>
.. attribute:: SSLContext.verify_mode
:const:`PROTOCOL_TLS_SERVER` as the protocol version. SSLv2 and SSLv3 are
disabled by default.
+::
+
>>> client_context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
>>> client_context.options |= ssl.OP_NO_TLSv1
>>> client_context.options |= ssl.OP_NO_TLSv1_1
>>> turtle.fillcolor("violet")
>>> turtle.fillcolor()
'violet'
- >>> col = turtle.pencolor()
- >>> col
+ >>> turtle.pencolor()
(50.0, 193.0, 143.0)
- >>> turtle.fillcolor(col)
+ >>> turtle.fillcolor((50, 193, 143)) # Integers, not floats
>>> turtle.fillcolor()
(50.0, 193.0, 143.0)
>>> turtle.fillcolor('#ffffff')
>>> obj = Object()
>>> f = weakref.finalize(obj, callback, 1, 2, z=3)
>>> f.detach() #doctest:+ELLIPSIS
- (<__main__.Object object ...>, <function callback ...>, (1, 2), {'z': 3})
+ (<...Object object ...>, <function callback ...>, (1, 2), {'z': 3})
>>> newobj, func, args, kwargs = _
>>> assert not f.alive
>>> assert newobj is obj