From 2c5c1cd0b0602025692a2ca512ccacff5d68d21c Mon Sep 17 00:00:00 2001
From: Erwan Rouchet <rouchet@teklia.com>
Date: Tue, 14 May 2019 12:58:36 +0000
Subject: [PATCH] Helper method to get options from environment variables

---
 arkindex/__init__.py |  2 +-
 arkindex/client.py   | 18 +++++++++++++++++-
 2 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/arkindex/__init__.py b/arkindex/__init__.py
index b96c6b5..cf78c2e 100644
--- a/arkindex/__init__.py
+++ b/arkindex/__init__.py
@@ -1 +1 @@
-from arkindex.client import ArkindexClient  # noqa: F401
+from arkindex.client import ArkindexClient, options_from_env  # noqa: F401
diff --git a/arkindex/client.py b/arkindex/client.py
index d1d843b..c93b72a 100644
--- a/arkindex/client.py
+++ b/arkindex/client.py
@@ -1,7 +1,7 @@
 """
 Arkindex API Client
 """
-import os.path
+import os
 import apistar
 import logging
 import yaml
@@ -16,6 +16,22 @@ BASE_DIR = os.path.dirname(os.path.abspath(__file__))
 logger = logging.getLogger(__name__)
 
 
+def options_from_env():
+    """
+    Get API client keyword arguments from environment variables.
+    """
+    options = {}
+    if 'ARKINDEX_API_TOKEN' in os.environ:
+        options['token'] = os.environ.get('ARKINDEX_API_TOKEN')
+
+    if 'ARKINDEX_API_INTERNAL_URL' in os.environ:
+        options['base_url'] = os.environ.get('ARKINDEX_API_INTERNAL_URL')
+    elif 'ARKINDEX_API_URL' in os.environ:
+        options['base_url'] = os.environ.get('ARKINDEX_API_URL')
+
+    return options
+
+
 class ArkindexClient(apistar.Client):
     """
     An Arkindex API client.
-- 
GitLab