Skip to content

Commit 3bb169a

Browse files
c0llab0rat0rntninja
authored andcommitted
Rename new environment variables to use standard PY_IPFS_HTTP_CLIENT_DEFAULT prefix and update docs
1 parent e7b5e55 commit 3bb169a

File tree

6 files changed

+24
-25
lines changed

6 files changed

+24
-25
lines changed

RELEASE.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -87,5 +87,5 @@ generation and publish process:
8787
If you are publishing to an IPFS server that is remote, and protected by an HTTP reverse proxy
8888
with TLS and basic authentication, run this instead:
8989

90-
$ IPFS_API_MULTI_ADDR=/dns/yourserver.tld/tcp/5001/https IPFS_API_USERNAME=basicauthuser IPFS_API_PASSWORD=basicauthpassword python publish.py ipns-key-id
90+
$ PY_IPFS_HTTP_CLIENT_DEFAULT_ADDR=/dns/yourserver.tld/tcp/5001/https PY_IPFS_HTTP_CLIENT_DEFAULT_USERNAME=basicauthuser PY_IPFS_HTTP_CLIENT_DEFAULT_PASSWORD=basicauthpassword python publish.py ipns-key-id
9191

docs/publish.py

+10-15
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
#!/usr/bin/python3
22
import os
3+
import sphinx.cmd.build
34
import sys
45
import typing as ty
56

67
script_dir = os.path.dirname(os.path.realpath(__file__))
78
sys.path.insert(0, os.path.join(script_dir, ".."))
89

9-
import sphinx.cmd.build
1010
import ipfshttpclient
1111

1212
os.chdir(script_dir)
@@ -20,26 +20,21 @@ def main(argv: ty.List[str]) -> int:
2020

2121
print("Usage: {0} [IPNS-key]".format(os.path.basename(__file__)))
2222
print()
23+
print('To connect to a remote IPFS daemon, set environment variables:')
24+
print()
25+
print(' PY_IPFS_HTTP_CLIENT_DEFAULT_ADDR')
26+
print(' PY_IPFS_HTTP_CLIENT_DEFAULT_USERNAME')
27+
print(' PY_IPFS_HTTP_CLIENT_DEFAULT_PASSWORD')
28+
print()
2329
print("!! Continuing without publishing to IPNS !!")
2430
print()
2531

26-
ipfs_api_address: str = os.getenv('IPFS_API_MULTI_ADDR', str(ipfshttpclient.DEFAULT_ADDR))
27-
ipfs_api_username: ty.Optional[str] = os.getenv('IPFS_API_USERNAME', None)
28-
ipfs_api_password: ty.Optional[str] = os.getenv('IPFS_API_PASSWORD', None)
29-
3032
return publish(
31-
ipfs_api_address=ipfs_api_address,
32-
ipfs_api_username=ipfs_api_username,
33-
ipfs_api_password=ipfs_api_password,
3433
ipns_key=ipns_key
3534
)
3635

3736

38-
def publish(
39-
ipfs_api_address: str,
40-
ipfs_api_username: ty.Optional[str],
41-
ipfs_api_password: ty.Optional[str],
42-
ipns_key: ty.Optional[str]) -> int:
37+
def publish(ipns_key: ty.Optional[str]) -> int:
4338
# Invoke Sphinx like the Makefile does
4439
result = sphinx.cmd.build.build_main([
4540
"-b", "html",
@@ -52,8 +47,8 @@ def publish(
5247
return result
5348

5449
print()
55-
print(f"Exporting files to IPFS server at {ipfs_api_address}…")
56-
client = ipfshttpclient.connect(addr=ipfs_api_address, username=ipfs_api_username, password=ipfs_api_password)
50+
print(f"Exporting files to IPFS server at {ipfshttpclient.DEFAULT_ADDR}…")
51+
client = ipfshttpclient.connect()
5752
hash_docs = client.add("build/html", recursive=True, raw_leaves=True, pin=False)[-1]["Hash"]
5853
hash_main = client.object.new("unixfs-dir")["Hash"]
5954
hash_main = client.object.patch.add_link(hash_main, "docs", hash_docs)["Hash"]

ipfshttpclient/__init__.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88
###################################
99
from . import exceptions
1010

11-
from .client import DEFAULT_ADDR, DEFAULT_BASE
11+
from .client import DEFAULT_ADDR, \
12+
DEFAULT_BASE, \
13+
DEFAULT_USERNAME, \
14+
DEFAULT_PASSWORD
1215
from .client import VERSION_MINIMUM, VERSION_MAXIMUM
1316
from .client import Client, assert_version, connect

ipfshttpclient/client/__init__.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313

1414
DEFAULT_ADDR = multiaddr.Multiaddr(os.environ.get("PY_IPFS_HTTP_CLIENT_DEFAULT_ADDR", '/dns/localhost/tcp/5001/http'))
1515
DEFAULT_BASE = str(os.environ.get("PY_IPFS_HTTP_CLIENT_DEFAULT_BASE", 'api/v0'))
16+
DEFAULT_USERNAME: ty.Optional[str] = os.getenv('PY_IPFS_HTTP_CLIENT_DEFAULT_USERNAME', None)
17+
DEFAULT_PASSWORD: ty.Optional[str] = os.getenv('PY_IPFS_HTTP_CLIENT_DEFAULT_PASSWORD', None)
1618

1719
# This range inclusive-exclusive, so the daemon version must match
1820
# `VERSION_MINIMUM <= version < VERSION_MAXIMUM`
@@ -91,9 +93,8 @@ def connect(
9193
headers: http.headers_t = {},
9294
timeout: http.timeout_t = 120,
9395

94-
# Backward-compatibility
95-
username: ty.Optional[str] = None,
96-
password: ty.Optional[str] = None
96+
username: ty.Optional[str] = DEFAULT_USERNAME,
97+
password: ty.Optional[str] = DEFAULT_PASSWORD
9798
):
9899
"""Create a new :class:`~ipfshttpclient.Client` instance and connect to the
99100
daemon to validate that its version is supported as well as applying any

ipfshttpclient/client/base.py

+3-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import multiaddr # type: ignore[import]
66

7-
from . import DEFAULT_ADDR, DEFAULT_BASE
7+
from . import DEFAULT_ADDR, DEFAULT_BASE, DEFAULT_USERNAME, DEFAULT_PASSWORD
88

99
from .. import multipart, http, utils
1010
from ..http_common import ClientSyncBase
@@ -337,9 +337,8 @@ def __init__( # type: ignore[no-any-unimported]
337337
headers: http.headers_t = {}, # type: ignore[assignment] # False positive
338338
timeout: http.timeout_t = 120,
339339

340-
# Backward-compat
341-
username: ty.Optional[str] = None,
342-
password: ty.Optional[str] = None
340+
username: ty.Optional[str] = DEFAULT_USERNAME,
341+
password: ty.Optional[str] = DEFAULT_PASSWORD
343342
):
344343
"""
345344
Arguments

test/unit/test_http.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -368,7 +368,8 @@ def test_session(http_client, http_server):
368368
assert http_client._session is None
369369
try:
370370
http_client.open_session()
371-
http_client._session is not None
371+
assert http_client._session is not None
372+
372373
res = http_client.request("/okay")
373374
assert res == b"okay"
374375
finally:

0 commit comments

Comments
 (0)