From b85b0665f335c8baa9b7cf63079546b25da8c452 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Wed, 26 Jun 2019 11:35:01 +0200 Subject: fix doc build errors and update httpdomain --- api-auditor.rst | 2 +- api-merchant.rst | 14 +++++++------- api-sync.rst | 37 +++++++++++++++++++------------------ exts/httpdomain/httpdomain.py | 25 ++++++++++++++++++++++--- 4 files changed, 49 insertions(+), 29 deletions(-) diff --git a/api-auditor.rst b/api-auditor.rst index 6ea01d7c..957b1c01 100644 --- a/api-auditor.rst +++ b/api-auditor.rst @@ -46,7 +46,7 @@ know-your-customer (KYC) registration before issuing contracts. **Details:** - .. _ExchangeList: + .. _AuditorVersion: .. code-block:: tsref interface AuditorVersion { diff --git a/api-merchant.rst b/api-merchant.rst index 9a04236e..0d0302f9 100644 --- a/api-merchant.rst +++ b/api-merchant.rst @@ -607,7 +607,7 @@ Dynamic Merchant Instance The backend has successfully returned the list of instances stored. Returns a `InstancesResponse`_. - .. InstancesResponse: + .. _InstancesResponse: .. code-block:: tsref interface InstancesResponse { @@ -650,7 +650,7 @@ The `instance` object describes the instance registered with the backend. It has The backend has successfully created the instance. The response is a `CreateInstanceResponse`_. - .. CreateInstanceRequest: + .. _CreateInstanceRequest: .. code-block:: tsref interface CreateInstanceRequest { @@ -668,7 +668,7 @@ The `instance` object describes the instance registered with the backend. It has } - .. CreateInstanceResponse: + .. _CreateInstanceResponse: .. code-block:: tsref interface CreateInstanceResponse { @@ -694,7 +694,7 @@ The `instance` object describes the instance registered with the backend. It has The backend has successfully returned the list of instances stored. Returns a `QueryInstancesResponse`_. - .. QueryInstancesResponse: + .. _QueryInstancesResponse: .. code-block:: tsref interface QueryInstancesResponse { @@ -728,7 +728,7 @@ The `instance` object describes the instance registered with the backend. It has The backend has successfully updated the instance. The response is a `PostInstanceUpdateResponse`_. - .. PostInstanceUpdateRequest: + .. _PostInstanceUpdateRequest: .. code-block:: tsref interface PostInstanceUpdateRequest { @@ -744,7 +744,7 @@ The `instance` object describes the instance registered with the backend. It has } - .. PostInstanceUpdateResponse: + .. _PostInstanceUpdateResponse: .. code-block:: tsref interface PostInstanceUpdateResponse { @@ -770,7 +770,7 @@ The `instance` object describes the instance registered with the backend. It has The backend has successfully removed the instance. The response is a `PostInstanceRemoveResponse`_. - .. PostInstanceRemoveResponse: + .. _PostInstanceRemoveResponse: .. code-block:: tsref interface PostInstanceRemoveResponse { diff --git a/api-sync.rst b/api-sync.rst index 4966a01e..701c7df5 100644 --- a/api-sync.rst +++ b/api-sync.rst @@ -288,7 +288,7 @@ Receiving Terms of Service HTTP specification, the synchronization service may require the client to provide the length upfront. - :status 413 Payload too large: + :status 413 Request Entity Too Large: The requested upload exceeds the quota for the type of account. The wallet should suggest to the user to migrate to another backup and synchronization service @@ -375,23 +375,24 @@ Synchronization user experience The menu should include three entries for synchronization: - * "synchronize" to manually trigger synchronization, - insensitive if no synchronization provider is available - * "export backup configuration" to re-display (and possibly - print) the synchronization and backup parameters (URL and - private key), insensitive if no synchronization - provider is available, and - * "import backup configuration" to: - * import another devices' synchronization options - (by specifying URL and private key, or possibly - scanning a QR code), or - * select a synchronization provider from the list, - including manual specification of a URL; here - confirmation should only be possible if the provider - is free or can be paid for; in this case, the - wallet should trigger the payment interaction when - the user presses the "select" button. - * a special button to "disable synchronization and backup" +* "synchronize" to manually trigger synchronization, + insensitive if no synchronization provider is available +* "export backup configuration" to re-display (and possibly + print) the synchronization and backup parameters (URL and + private key), insensitive if no synchronization + provider is available, and +* "import backup configuration" to: + + * import another devices' synchronization options + (by specifying URL and private key, or possibly + scanning a QR code), or + * select a synchronization provider from the list, + including manual specification of a URL; here + confirmation should only be possible if the provider + is free or can be paid for; in this case, the + wallet should trigger the payment interaction when + the user presses the "select" button. + * a special button to "disable synchronization and backup" One usability issue here is that we are asking users to deal with a private key. It is likely better to map private keys to trustwords diff --git a/exts/httpdomain/httpdomain.py b/exts/httpdomain/httpdomain.py index 03d58b79..a5e34716 100644 --- a/exts/httpdomain/httpdomain.py +++ b/exts/httpdomain/httpdomain.py @@ -64,7 +64,7 @@ class IETFRef(DocRef): """Represents a reference to the specific IETF RFC.""" def __init__(self, rfc, section): - url = 'http://tools.ietf.org/html/rfc{0:d}'.format(rfc) + url = 'https://tools.ietf.org/html/rfc{0:d}'.format(rfc) super(IETFRef, self).__init__(url, 'section-', section) @@ -124,7 +124,7 @@ HEADER_REFS = { 'Cookie': IETFRef(2109, '4.3.4'), # also RFC6265 section 5.4 'Date': IETFRef(7231, '7.1.1.2'), 'Destination': IETFRef(2518, 9.3), - 'ETag': IETFRef(7231, 2.3), + 'ETag': IETFRef(7232, 2.3), 'Expect': IETFRef(7231, '5.1.1'), 'Expires': IETFRef(7234, 5.3), 'From': IETFRef(7231, '5.5.2'), @@ -492,6 +492,8 @@ class HTTPXRefStatusRole(XRefRole): url = 'http://tools.ietf.org/html/rfc6585#section-4' elif code == 449: url = 'http://msdn.microsoft.com/en-us/library/dd891478(v=prot.10).aspx' + elif code == 451: + url = 'http://www.ietf.org/rfc/rfc7725.txt' elif code in WEBDAV_STATUS_CODES: url = 'http://tools.ietf.org/html/rfc4918#section-11.%d' % (WEBDAV_STATUS_CODES.index(code) + 1) elif code in HTTP_STATUS_CODES: @@ -646,7 +648,23 @@ class HTTPDomain(Domain): try: info = self.data[str(typ)][target] except KeyError: - return None + text = contnode.rawsource + role = self.roles.get(typ) + if role is None: + return None + + if fromdocname not in _doctree_cache: + _doctree_cache[fromdocname] = env.get_doctree(fromdocname) + doctree = _doctree_cache[fromdocname] + + resnode = role.result_nodes(doctree, env, node, None)[0][0] + if isinstance(resnode, addnodes.pending_xref): + text = node[0][0] + reporter = doctree.reporter + reporter.warning('Cannot resolve reference to %r' % text, + line=node.line) + return None + return resnode else: anchor = http_resource_anchor(typ, target) title = typ.upper() + ' ' + target @@ -741,6 +759,7 @@ class HTTPLexer(RegexLexer): def setup(app): app.add_domain(HTTPDomain) + try: get_lexer_by_name('http') except ClassNotFound: -- cgit v1.2.3