From 04c808412d590bd450c775ea78833b597fb196ee Mon Sep 17 00:00:00 2001 From: Joongi Kim Date: Tue, 27 Oct 2020 11:20:38 +0900 Subject: [PATCH 1/5] docs: Update configs --- .readthedocs.yml | 2 +- docs/conf.py | 18 ++++++++++-------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/.readthedocs.yml b/.readthedocs.yml index f49467b4..a7c156f0 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -13,6 +13,6 @@ formats: all # Optionally set the version of Python and requirements required to build your docs python: - version: 3.6 + version: 3.8 install: - requirements: requirements/docs.txt diff --git a/docs/conf.py b/docs/conf.py index 986518db..fe3ffa0c 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -20,11 +20,13 @@ _init_path = (Path(__file__).parent.parent / 'src' / 'ai' / 'backend' / 'client' / '__init__.py') _init_text = _init_path.read_text() -try: - _version_info = re.search( - r"^__version__ = '(?P\d+)\.(?P\d+)\.(?P\d+)(?P.*)?'$", # noqa - _init_text, re.M).groupdict() -except IndexError: +_version_info = None +_m = re.search( + r"^__version__ = '(?P\d+)\.(?P\d+)\.(?P\d+)(?P.*)?'$", + _init_text, re.M) +if _m is not None: + _version_info = _m.groupdict() +else: raise RuntimeError('Unable to determine version.') @@ -34,14 +36,14 @@ try: from ai.backend.client import request # noqa except ImportError: - subprocess.run('pip install -U "pip>=19.2" "setuptools>=41.2"', shell=True) - subprocess.run('pip install -e "..[docs]"', shell=True) + subprocess.run('pip install -U "pip>=20.2" "setuptools>=50.3"', shell=True) + subprocess.run('pip install -r "requirements/docs.txt"', shell=True) # -- Project information ----------------------------------------------------- project = 'Backend.AI Client SDK for Python' -copyright = '2019, Lablup Inc.' +copyright = '2020, Lablup Inc.' author = 'Lablup Inc.' # The short X.Y version. From 693031533ea1ea1703a1431cdb8478cb593b6b48 Mon Sep 17 00:00:00 2001 From: Jonghyun Park Date: Tue, 27 Oct 2020 16:18:40 +0900 Subject: [PATCH 2/5] docs: add quickstart guide on getting started --- docs/gsg/jupyter_app.png | Bin 0 -> 96765 bytes docs/gsg/jupyter_mnist_execution.png | Bin 0 -> 395434 bytes docs/gsg/quickstart.rst | 479 +++++++++++++++++++++++++++ docs/gsg/ttyd_app.png | Bin 0 -> 69540 bytes docs/index.rst | 1 + 5 files changed, 480 insertions(+) create mode 100644 docs/gsg/jupyter_app.png create mode 100644 docs/gsg/jupyter_mnist_execution.png create mode 100644 docs/gsg/quickstart.rst create mode 100644 docs/gsg/ttyd_app.png diff --git a/docs/gsg/jupyter_app.png b/docs/gsg/jupyter_app.png new file mode 100644 index 0000000000000000000000000000000000000000..3804de18133df5637aa2cb9cdf72b66d22439056 GIT binary patch literal 96765 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