Skip to content

Commit c2544a8

Browse files
shaileshmishrashaileshmishra
authored andcommitted
📦 v1.0.0 released
1 parent 883206a commit c2544a8

27 files changed

+2273
-31
lines changed

README.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,16 @@ Contentstack Utils SDK lets you interact with the Content Delivery APIs and retr
6464
To get an embedded item of a single entry, you need to provide the stack API key, environment name, content type’s UID, and entry’s UID. Then, use the `entry.fetch` function as shown below:
6565

6666
```python
67-
import contentstack
67+
import contentstack
6868

6969
stack = contentstack.Stack('api_key','delivery_token','environment')
7070
content_type = stack.content_type("content_type_uid")
7171
entry = content_type.entry("entry_uid")
7272
result = entry.fetch()
73+
if result is not None:
74+
entry = result['entries']
75+
Utils.render(entry, ['rich_text_editor', 'some_other_text'], Option())
76+
7377
```
7478

7579
## Fetch Embedded Item(s) from Multiple Entries
@@ -82,4 +86,8 @@ To get embedded items from multiple entries, you need to provide the stack API k
8286
stack = contentstack.Stack('api_key','delivery_token','environment')
8387
query = stack.content_type("content_type_uid").query()
8488
result = query.find()
89+
if result is not None and 'entries' in result:
90+
entry = result['entries']
91+
for item in range:
92+
Utils.render(item, ['rich_text_editor', 'some_other_text'], Option())
8593
```

changelog.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44

55
ENHANCEMENT, NEW FEATURE, BUG RESOLVE
66

7-
*v0.0.1*
7+
*v0.1.0*
88
============
99

10-
**Date: 20-Nov-2020**
10+
**Date: 02-Sept-2021**
1111

12-
- initial release of contentstack utility package
12+
- Initial release of contentstack utility package

contentstack_utils/utils.py

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -144,28 +144,3 @@ def get_embedded_objects(html_doc, embedded_obj, callback):
144144
elements = tag.xpath("//*[contains(@class, 'embedded-asset') or contains(@class, 'embedded-entry')]")
145145
metadata = get_metadata(elements)
146146
return get_html_doc(embedded_obj, metadata, callback, html_doc)
147-
148-
# if '_embedded_items' in embedded_obj:
149-
# keys = extract_keys(embedded_obj['_embedded_items'])
150-
# for key in keys:
151-
# items_array = embedded_obj['_embedded_items'][key]
152-
# item = find_embedded_entry(items_array, metadata)
153-
# if item is not None:
154-
# replaceable_str = callback.render_options(item, metadata)
155-
# html_doc = html_doc.replace(metadata.outer_html, replaceable_str)
156-
# break
157-
# return html_doc
158-
159-
# for element in elements:
160-
# content_type = None
161-
# typeof = element.attrib['type']
162-
# if typeof == 'asset':
163-
# uid = element.attrib['data-sys-asset-uid']
164-
# else:
165-
# uid = element.attrib['data-sys-entry-uid']
166-
# content_type = element.attrib['data-sys-content-type-uid']
167-
# style = element.attrib['sys-style-type']
168-
# outer_html = etree.tostring(element).decode('utf-8')
169-
# attributes = element.attrib
170-
# style = Utils.convert_style(style)
171-
# metadata = Metadata(element.text, typeof, uid, content_type, style, outer_html, attributes)
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5+
<meta http-equiv="X-UA-Compatible" content="IE=emulateIE7" />
6+
<title>Coverage for contentstack_utils/__init__.py: 100%</title>
7+
<link rel="icon" sizes="32x32" href="favicon_32.png">
8+
<link rel="stylesheet" href="style.css" type="text/css">
9+
<script type="text/javascript" src="jquery.min.js"></script>
10+
<script type="text/javascript" src="jquery.hotkeys.js"></script>
11+
<script type="text/javascript" src="jquery.isonscreen.js"></script>
12+
<script type="text/javascript" src="coverage_html.js"></script>
13+
<script type="text/javascript">
14+
jQuery(document).ready(coverage.pyfile_ready);
15+
</script>
16+
</head>
17+
<body class="pyfile">
18+
<div id="header">
19+
<div class="content">
20+
<h1>Coverage for <b>contentstack_utils/__init__.py</b> :
21+
<span class="pc_cov">100%</span>
22+
</h1>
23+
<img id="keyboard_icon" src="keybd_closed.png" alt="Show keyboard shortcuts" />
24+
<h2 class="stats">
25+
12 statements &nbsp;
26+
<button type="button" class="run shortkey_r button_toggle_run" title="Toggle lines run">12 run</button>
27+
<button type="button" class="mis show_mis shortkey_m button_toggle_mis" title="Toggle lines missing">0 missing</button>
28+
<button type="button" class="exc show_exc shortkey_x button_toggle_exc" title="Toggle lines excluded">0 excluded</button>
29+
</h2>
30+
</div>
31+
</div>
32+
<div class="help_panel">
33+
<img id="panel_icon" src="keybd_open.png" alt="Hide keyboard shortcuts" />
34+
<p class="legend">Hot-keys on this page</p>
35+
<div>
36+
<p class="keyhelp">
37+
<span class="key">r</span>
38+
<span class="key">m</span>
39+
<span class="key">x</span>
40+
<span class="key">p</span> &nbsp; toggle line displays
41+
</p>
42+
<p class="keyhelp">
43+
<span class="key">j</span>
44+
<span class="key">k</span> &nbsp; next/prev highlighted chunk
45+
</p>
46+
<p class="keyhelp">
47+
<span class="key">0</span> &nbsp; (zero) top of page
48+
</p>
49+
<p class="keyhelp">
50+
<span class="key">1</span> &nbsp; (one) first highlighted chunk
51+
</p>
52+
</div>
53+
</div>
54+
<div id="source">
55+
<p id="t1" class="pln"><span class="n"><a href="#t1">1</a></span><span class="t"><span class="com"># pip install -r requirements.txt</span>&nbsp;</span><span class="r"></span></p>
56+
<p id="t2" class="pln"><span class="n"><a href="#t2">2</a></span><span class="t"><span class="com"># pytest --html=tests/report/test-report.html</span>&nbsp;</span><span class="r"></span></p>
57+
<p id="t3" class="pln"><span class="n"><a href="#t3">3</a></span><span class="t"><span class="com"># coverage report -m</span>&nbsp;</span><span class="r"></span></p>
58+
<p id="t4" class="pln"><span class="n"><a href="#t4">4</a></span><span class="t"><span class="com"># coverage html -d coveragereport</span>&nbsp;</span><span class="r"></span></p>
59+
<p id="t5" class="run"><span class="n"><a href="#t5">5</a></span><span class="t"><span class="str">"""</span>&nbsp;</span><span class="r"></span></p>
60+
<p id="t6" class="pln"><span class="n"><a href="#t6">6</a></span><span class="t"><span class="str">The __init__.py files are required to make Python treat the directories as containing</span>&nbsp;</span><span class="r"></span></p>
61+
<p id="t7" class="pln"><span class="n"><a href="#t7">7</a></span><span class="t"><span class="str">packages; this is done to prevent directories with a common name, such as string,</span>&nbsp;</span><span class="r"></span></p>
62+
<p id="t8" class="pln"><span class="n"><a href="#t8">8</a></span><span class="t"><span class="str">from unintentionally hiding valid modules that occur later on the module search path</span>&nbsp;</span><span class="r"></span></p>
63+
<p id="t9" class="pln"><span class="n"><a href="#t9">9</a></span><span class="t"><span class="str">Used: Safety checks your installed dependencies for known security vulnerabilities</span>&nbsp;</span><span class="r"></span></p>
64+
<p id="t10" class="pln"><span class="n"><a href="#t10">10</a></span><span class="t"><span class="str">file __init__.py contains package information like</span>&nbsp;</span><span class="r"></span></p>
65+
<p id="t11" class="pln"><span class="n"><a href="#t11">11</a></span><span class="t">&nbsp;</span><span class="r"></span></p>
66+
<p id="t12" class="pln"><span class="n"><a href="#t12">12</a></span><span class="t"><span class="str">__author__, __status__, __version__, __endpoint__ and __email__</span>&nbsp;</span><span class="r"></span></p>
67+
<p id="t13" class="pln"><span class="n"><a href="#t13">13</a></span><span class="t">&nbsp;</span><span class="r"></span></p>
68+
<p id="t14" class="pln"><span class="n"><a href="#t14">14</a></span><span class="t"><span class="str">`Your code has been rated at 10.00/10`</span>&nbsp;</span><span class="r"></span></p>
69+
<p id="t15" class="pln"><span class="n"><a href="#t15">15</a></span><span class="t"><span class="str">"""</span>&nbsp;</span><span class="r"></span></p>
70+
<p id="t16" class="pln"><span class="n"><a href="#t16">16</a></span><span class="t">&nbsp;</span><span class="r"></span></p>
71+
<p id="t17" class="run"><span class="n"><a href="#t17">17</a></span><span class="t"><span class="key">from</span> <span class="nam">contentstack_utils</span><span class="op">.</span><span class="nam">embedded</span><span class="op">.</span><span class="nam">item_type</span> <span class="key">import</span> <span class="nam">ItemType</span>&nbsp;</span><span class="r"></span></p>
72+
<p id="t18" class="run"><span class="n"><a href="#t18">18</a></span><span class="t"><span class="key">from</span> <span class="nam">contentstack_utils</span><span class="op">.</span><span class="nam">embedded</span><span class="op">.</span><span class="nam">styletype</span> <span class="key">import</span> <span class="nam">StyleType</span>&nbsp;</span><span class="r"></span></p>
73+
<p id="t19" class="run"><span class="n"><a href="#t19">19</a></span><span class="t"><span class="key">from</span> <span class="nam">contentstack_utils</span><span class="op">.</span><span class="nam">helper</span><span class="op">.</span><span class="nam">metadata</span> <span class="key">import</span> <span class="nam">Metadata</span>&nbsp;</span><span class="r"></span></p>
74+
<p id="t20" class="run"><span class="n"><a href="#t20">20</a></span><span class="t"><span class="key">from</span> <span class="nam">contentstack_utils</span><span class="op">.</span><span class="nam">render</span><span class="op">.</span><span class="nam">options</span> <span class="key">import</span> <span class="nam">Options</span>&nbsp;</span><span class="r"></span></p>
75+
<p id="t21" class="run"><span class="n"><a href="#t21">21</a></span><span class="t"><span class="key">from</span> <span class="nam">contentstack_utils</span><span class="op">.</span><span class="nam">utils</span> <span class="key">import</span> <span class="nam">Utils</span>&nbsp;</span><span class="r"></span></p>
76+
<p id="t22" class="pln"><span class="n"><a href="#t22">22</a></span><span class="t">&nbsp;</span><span class="r"></span></p>
77+
<p id="t23" class="run"><span class="n"><a href="#t23">23</a></span><span class="t"><span class="nam">__title__</span> <span class="op">=</span> <span class="str">'contentstack_utils'</span>&nbsp;</span><span class="r"></span></p>
78+
<p id="t24" class="run"><span class="n"><a href="#t24">24</a></span><span class="t"><span class="nam">__author__</span> <span class="op">=</span> <span class="str">'contentstack'</span>&nbsp;</span><span class="r"></span></p>
79+
<p id="t25" class="run"><span class="n"><a href="#t25">25</a></span><span class="t"><span class="nam">__status__</span> <span class="op">=</span> <span class="str">'debug'</span>&nbsp;</span><span class="r"></span></p>
80+
<p id="t26" class="run"><span class="n"><a href="#t26">26</a></span><span class="t"><span class="nam">__version__</span> <span class="op">=</span> <span class="str">'0.0.1'</span>&nbsp;</span><span class="r"></span></p>
81+
<p id="t27" class="run"><span class="n"><a href="#t27">27</a></span><span class="t"><span class="nam">__endpoint__</span> <span class="op">=</span> <span class="str">'cdn.contentstack.io'</span>&nbsp;</span><span class="r"></span></p>
82+
<p id="t28" class="run"><span class="n"><a href="#t28">28</a></span><span class="t"><span class="nam">__contact__</span> <span class="op">=</span> <span class="str">'support@contentstack.com'</span>&nbsp;</span><span class="r"></span></p>
83+
</div>
84+
<div id="footer">
85+
<div class="content">
86+
<p>
87+
<a class="nav" href="index.html">&#xab; index</a> &nbsp; &nbsp; <a class="nav" href="https://coverage.readthedocs.io">coverage.py v5.5</a>,
88+
created at 2021-03-12 21:42 +0530
89+
</p>
90+
</div>
91+
</div>
92+
</body>
93+
</html>
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5+
<meta http-equiv="X-UA-Compatible" content="IE=emulateIE7" />
6+
<title>Coverage for contentstack_utils/embedded/item_type.py: 100%</title>
7+
<link rel="icon" sizes="32x32" href="favicon_32.png">
8+
<link rel="stylesheet" href="style.css" type="text/css">
9+
<script type="text/javascript" src="jquery.min.js"></script>
10+
<script type="text/javascript" src="jquery.hotkeys.js"></script>
11+
<script type="text/javascript" src="jquery.isonscreen.js"></script>
12+
<script type="text/javascript" src="coverage_html.js"></script>
13+
<script type="text/javascript">
14+
jQuery(document).ready(coverage.pyfile_ready);
15+
</script>
16+
</head>
17+
<body class="pyfile">
18+
<div id="header">
19+
<div class="content">
20+
<h1>Coverage for <b>contentstack_utils/embedded/item_type.py</b> :
21+
<span class="pc_cov">100%</span>
22+
</h1>
23+
<img id="keyboard_icon" src="keybd_closed.png" alt="Show keyboard shortcuts" />
24+
<h2 class="stats">
25+
4 statements &nbsp;
26+
<button type="button" class="run shortkey_r button_toggle_run" title="Toggle lines run">4 run</button>
27+
<button type="button" class="mis show_mis shortkey_m button_toggle_mis" title="Toggle lines missing">0 missing</button>
28+
<button type="button" class="exc show_exc shortkey_x button_toggle_exc" title="Toggle lines excluded">0 excluded</button>
29+
</h2>
30+
</div>
31+
</div>
32+
<div class="help_panel">
33+
<img id="panel_icon" src="keybd_open.png" alt="Hide keyboard shortcuts" />
34+
<p class="legend">Hot-keys on this page</p>
35+
<div>
36+
<p class="keyhelp">
37+
<span class="key">r</span>
38+
<span class="key">m</span>
39+
<span class="key">x</span>
40+
<span class="key">p</span> &nbsp; toggle line displays
41+
</p>
42+
<p class="keyhelp">
43+
<span class="key">j</span>
44+
<span class="key">k</span> &nbsp; next/prev highlighted chunk
45+
</p>
46+
<p class="keyhelp">
47+
<span class="key">0</span> &nbsp; (zero) top of page
48+
</p>
49+
<p class="keyhelp">
50+
<span class="key">1</span> &nbsp; (one) first highlighted chunk
51+
</p>
52+
</div>
53+
</div>
54+
<div id="source">
55+
<p id="t1" class="pln"><span class="n"><a href="#t1">1</a></span><span class="t"><span class="str">"""</span>&nbsp;</span><span class="r"></span></p>
56+
<p id="t2" class="pln"><span class="n"><a href="#t2">2</a></span><span class="t"><span class="str">ItemType is Enumeration class that conatains two options for ItemType:</span>&nbsp;</span><span class="r"></span></p>
57+
<p id="t3" class="pln"><span class="n"><a href="#t3">3</a></span><span class="t">&nbsp;</span><span class="r"></span></p>
58+
<p id="t4" class="pln"><span class="n"><a href="#t4">4</a></span><span class="t"><span class="str">ASSET</span>&nbsp;</span><span class="r"></span></p>
59+
<p id="t5" class="pln"><span class="n"><a href="#t5">5</a></span><span class="t">&nbsp;</span><span class="r"></span></p>
60+
<p id="t6" class="pln"><span class="n"><a href="#t6">6</a></span><span class="t"><span class="str">ENTRY</span>&nbsp;</span><span class="r"></span></p>
61+
<p id="t7" class="pln"><span class="n"><a href="#t7">7</a></span><span class="t"><span class="str">"""</span>&nbsp;</span><span class="r"></span></p>
62+
<p id="t8" class="pln"><span class="n"><a href="#t8">8</a></span><span class="t">&nbsp;</span><span class="r"></span></p>
63+
<p id="t9" class="run"><span class="n"><a href="#t9">9</a></span><span class="t"><span class="key">import</span> <span class="nam">enum</span>&nbsp;</span><span class="r"></span></p>
64+
<p id="t10" class="pln"><span class="n"><a href="#t10">10</a></span><span class="t">&nbsp;</span><span class="r"></span></p>
65+
<p id="t11" class="pln"><span class="n"><a href="#t11">11</a></span><span class="t">&nbsp;</span><span class="r"></span></p>
66+
<p id="t12" class="run"><span class="n"><a href="#t12">12</a></span><span class="t"><span class="key">class</span> <span class="nam">ItemType</span><span class="op">(</span><span class="nam">enum</span><span class="op">.</span><span class="nam">Enum</span><span class="op">)</span><span class="op">:</span>&nbsp;</span><span class="r"></span></p>
67+
<p id="t13" class="pln"><span class="n"><a href="#t13">13</a></span><span class="t"> <span class="str">"""</span>&nbsp;</span><span class="r"></span></p>
68+
<p id="t14" class="pln"><span class="n"><a href="#t14">14</a></span><span class="t"><span class="str"> Contains Two option for ItemsType</span>&nbsp;</span><span class="r"></span></p>
69+
<p id="t15" class="pln"><span class="n"><a href="#t15">15</a></span><span class="t">&nbsp;</span><span class="r"></span></p>
70+
<p id="t16" class="pln"><span class="n"><a href="#t16">16</a></span><span class="t"><span class="str"> ENTRY</span>&nbsp;</span><span class="r"></span></p>
71+
<p id="t17" class="pln"><span class="n"><a href="#t17">17</a></span><span class="t"><span class="str"> ASSET</span>&nbsp;</span><span class="r"></span></p>
72+
<p id="t18" class="pln"><span class="n"><a href="#t18">18</a></span><span class="t"><span class="str"> """</span>&nbsp;</span><span class="r"></span></p>
73+
<p id="t19" class="run"><span class="n"><a href="#t19">19</a></span><span class="t"> <span class="nam">ENTRY</span> <span class="op">=</span> <span class="str">'entry'</span>&nbsp;</span><span class="r"></span></p>
74+
<p id="t20" class="run"><span class="n"><a href="#t20">20</a></span><span class="t"> <span class="nam">ASSET</span> <span class="op">=</span> <span class="str">'asset'</span>&nbsp;</span><span class="r"></span></p>
75+
</div>
76+
<div id="footer">
77+
<div class="content">
78+
<p>
79+
<a class="nav" href="index.html">&#xab; index</a> &nbsp; &nbsp; <a class="nav" href="https://coverage.readthedocs.io">coverage.py v5.5</a>,
80+
created at 2021-03-12 21:42 +0530
81+
</p>
82+
</div>
83+
</div>
84+
</body>
85+
</html>

0 commit comments

Comments
 (0)