Skip to content

Commit 82c7637

Browse files
Merge pull request #13 from contentstack/include_fallback
Publish content fallback
2 parents b558197 + 0f2b759 commit 82c7637

13 files changed

+139
-110
lines changed

CHANGELOG.md

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,44 @@
11
# CHANGELOG
22

3-
Date: 10-Aug-2020 - include_reference issue fixed
3+
4+
## _v1.2.0_
5+
============
6+
7+
_Date: 08-Dec-2020_
8+
9+
- include_fallback Support Added
10+
- Timeout support included
11+
12+
- Entry
13+
- added support for include_fallback.
14+
- Asset
15+
- added support for include_fallback.
16+
- AssetQueryable
17+
- added support for include_fallback.
18+
- Query
19+
- added support for include_fallback.
20+
21+
-----------------------------
22+
23+
24+
425

526
## _v1.1.0_
627

28+
_Date: 10-Aug-2020 - include_reference issue fixed_
29+
730
EntryQueryable
831

932
- updated include_reference function.
1033

1134
-----------------------------
1235

13-
Date: 17-Jun-2020 - initial release
36+
1437

1538
## _v1.0.0_
1639

40+
_Date: 17-Jun-2020 - initial release_
41+
1742
Stack
1843

1944
- Initialisation of stack has been modified
@@ -34,11 +59,10 @@ Query
3459

3560
-----------------------------
3661

37-
Date: 18-Nov-2019 - beta release
3862

3963
## _v0.1.0_
4064

41-
November-18, 2019 -beta release
65+
_November-18, 2019 -beta release_
4266

4367
Initial release for the contentstack-python-sdk for Content Delivery API
4468

changelog.rst

Lines changed: 38 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,65 @@
1-
=========
2-
CHANGELOG
3-
=========
1+
================
2+
**CHANGELOG**
3+
================
4+
5+
ENHANCEMENT, NEW FEATURE, BUG RESOLVE
6+
7+
*v1.2.0*
8+
============
9+
10+
**Date: 20-Oct-2020**
11+
12+
- **include_fallback support added**
13+
`entry`
14+
- added support for include_fallback.
15+
`asset`
16+
- added support for include_fallback.
17+
`assetquery`
18+
- added support for include_fallback.
19+
`query`
20+
- added support for include_fallback.
21+
22+
- **Timeout support included**
23+
24+
============
25+
426

5-
Date: 10-Aug-2020 - include_reference issue fixed
627

728
*v1.1.0*
829
============
930

10-
EntryQueryable
11-
- updated include_reference function.
31+
**Date: 10-Aug-2020 :: include_reference issue fixed**
32+
33+
**EntryQueryable**
34+
- updated include_reference function.
1235

1336
============
1437

15-
Date: 17-Jun-2020 - initial release
1638

1739
*v1.0.0*
1840
============
1941

20-
Stack
42+
**Date: 17-Jun-2020 :: Initial Release**
43+
44+
**Stack**
2145
- Initialization of the stack has been modified
2246
- External config support moved to stack initialization optional parameters
2347

24-
Asset
48+
**Asset**
2549
- changes incorporated in Asset class.
2650

27-
Entry
51+
**Entry**
2852
- changes incorporated in the entry class.
2953

30-
Query
54+
**Query**
3155
- Changes incorporated in the Query class.
3256

3357
-----------------------------
3458

35-
Date: 18-Nov-2019 - beta release
3659

3760
*v0.0.1*
3861
============
62+
63+
**Date: 18-Nov-2019 :: Beta Release**
64+
3965
- Beta release for the contentstack-python SDK for Content Delivery API

contentstack/__init__.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,10 @@
1414
from .https_connection import HTTPSConnection
1515
from .stack import Stack
1616
from .utility import Utils
17-
# from contentstack import *
1817

1918
__title__ = 'contentstack-python'
2019
__author__ = 'Contentstack'
2120
__status__ = 'debug'
22-
__version__ = '1.1.0'
21+
__version__ = '1.2.0'
2322
__endpoint__ = 'cdn.contentstack.io'
2423
__email__ = '[email protected]'

contentstack/assetquery.py

Lines changed: 40 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class AssetQuery(BaseQuery):
1919
def __init__(self, http_instance):
2020
super().__init__()
2121
self.http_instance = http_instance
22-
self.__query_params = {}
22+
self.asset_query_params = {}
2323
self.base_url = "{}/assets".format(self.http_instance.endpoint)
2424
if "environment" in self.http_instance.headers:
2525
env = self.http_instance.headers["environment"]
@@ -62,7 +62,7 @@ def version(self, version):
6262
>>> result = stack.asset_query().version(3).find()
6363
------------------------------
6464
"""
65-
self.__query_params["version"] = version
65+
self.asset_query_params["version"] = version
6666
return self
6767

6868
def include_dimension(self):
@@ -79,7 +79,7 @@ def include_dimension(self):
7979
>>> result = stack.asset_query().include_dimension().find()
8080
------------------------------
8181
"""
82-
self.__query_params["include_dimension"] = "true"
82+
self.asset_query_params["include_dimension"] = "true"
8383
return self
8484

8585
def relative_url(self):
@@ -95,7 +95,41 @@ def relative_url(self):
9595
>>> result = stack.asset_query().relative_url().find()
9696
------------------------------
9797
"""
98-
self.__query_params["relative_urls"] = "true"
98+
self.asset_query_params["relative_urls"] = "true"
99+
return self
100+
101+
def include_fallback(self):
102+
"""Retrieve the published content of the fallback locale if an
103+
entry is not localized in specified locale.
104+
105+
:return: AssetQuery, so we can chain the call
106+
107+
----------------------------
108+
Example::
109+
110+
>>> import contentstack
111+
>>> stack = contentstack.Stack('api_key', 'delivery_token', 'environment')
112+
>>> result = stack.asset_query().include_fallback().find()
113+
----------------------------
114+
"""
115+
self.asset_query_params['include_fallback'] = 'true'
116+
return self
117+
118+
def locale(self, locale: str):
119+
"""Enter locale code. e.g., en-us
120+
This retrieves published entries of specific locale..
121+
122+
:return: AssetQuery, so we can chain the call
123+
124+
----------------------------
125+
Example::
126+
127+
>>> import contentstack
128+
>>> stack = contentstack.Stack('api_key', 'delivery_token', 'environment')
129+
>>> result = stack.asset_query().locale('en-us').find()
130+
----------------------------
131+
"""
132+
self.asset_query_params['locale'] = locale
99133
return self
100134

101135
def find(self):
@@ -115,6 +149,6 @@ def find(self):
115149
116150
"""
117151
if self.parameters is not None and len(self.parameters) > 0:
118-
self.__query_params["query"] = json.dumps(self.parameters)
119-
url = Utils.get_complete_url(self.base_url, self.__query_params)
152+
self.asset_query_params["query"] = json.dumps(self.parameters)
153+
url = Utils.get_complete_url(self.base_url, self.asset_query_params)
120154
return self.http_instance.get(url)

contentstack/basequery.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ def query(self, key: str, value):
165165
key {str} -- key of the query param
166166
value {any} -- value of query param
167167
Raises:
168-
KeyError: when key or value found None
168+
`KeyError`: when key or value found None
169169
Returns:
170170
self-- Class instance, So that method chaining can be performed
171171
"""

contentstack/contenttype.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
content type.
66
"""
77

8-
# ************* Module asset **************
8+
# ************* Module ContentType **************
99
# Your code has been rated at 10.00/10 by pylint
1010

1111
from urllib import parse

contentstack/entryqueryable.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@
44
"""
55

66

7+
# ************* Module EntryQueryable **************
8+
# Your code has been rated at 10/10 by pylint
9+
10+
711
class EntryQueryable:
812
"""
913
This class is base class for the Entry and Query class that shares common functions
@@ -73,7 +77,6 @@ def excepts(self, field_uid: str):
7377

7478
def include_reference(self, field_uid):
7579
"""
76-
**Include Reference:**
7780
When you fetch an entry of a content type that has a reference field,
7881
by default, the content of the referred entry is not fetched.
7982
It only fetches the UID of the referred entry, along with the content of
@@ -112,9 +115,7 @@ def include_content_type(self):
112115
>>> entry = content_type.entry('uid')
113116
>>> entry.include_content_type()
114117
>>> result = entry.fetch()
115-
116118
-------------------------------
117-
118119
[Example: for Query:]
119120
120121
>>> import contentstack
@@ -178,3 +179,4 @@ def add_param(self, key: str, value: str):
178179
"""
179180
if None not in (key, value):
180181
self.entry_queryable_param[key] = value
182+
return self

contentstack/https_connection.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77

88
import platform
99
from json import JSONDecodeError
10-
10+
from requests.adapters import HTTPAdapter
11+
from requests.packages.urllib3.util.retry import Retry
1112
import requests
1213
from requests.exceptions import Timeout, HTTPError
1314

@@ -54,7 +55,12 @@ def get(self, url):
5455
"""
5556
try:
5657
self.headers.update(user_agents())
57-
response = requests.get(url, verify=True, headers=self.headers)
58+
session = requests.Session()
59+
retry = Retry(connect=3, backoff_factor=0.5)
60+
adapter = HTTPAdapter(max_retries=retry)
61+
session.mount('https://', adapter)
62+
response = session.get(url, verify=True, headers=self.headers)
63+
# response = requests.get(url, verify=True, headers=self.headers)
5864
response.encoding = 'utf-8'
5965
return response.json()
6066
except Timeout:

contentstack/utility.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"""
77

88
# ************* Module utility checked using pylint **************
9-
# Your code has been rated at 10.00/10 (previous run: 10.00/10, +0.00)
9+
# Your code has been rated at 10.00/10
1010

1111

1212
import json
@@ -63,7 +63,8 @@ def do_url_encode(params):
6363

6464
@staticmethod
6565
def get_complete_url(base_url: str, params: dict):
66-
""" creates complete url using base_url and their respective parameters
66+
"""
67+
creates complete url using base_url and their respective parameters
6768
:param base_url:
6869
:param params:
6970
:return:

coverage.svg

Lines changed: 3 additions & 3 deletions
Loading

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
22
"name": "contentstack.python",
3-
"version": "1.1.0"
3+
"version": "1.2.0"
44
}

0 commit comments

Comments
 (0)