forked from jakevdp/PythonDataScienceHandbook
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathadd_book_info.py
36 lines (23 loc) · 1.45 KB
/
add_book_info.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import os
import nbformat
from nbformat.v4.nbbase import new_markdown_cell
from generate_contents import iter_notebooks, NOTEBOOK_DIR
BOOK_COMMENT = "<!--BOOK_INFORMATION-->"
BOOK_INFO = BOOK_COMMENT + """
<img align="left" style="padding-right:10px;" src="figures/PDSH-cover-small.png">
*This notebook contains an excerpt from the [Python Data Science Handbook](http://shop.oreilly.com/product/0636920034919.do) by Jake VanderPlas; the content is available [on GitHub](https://github.com/jakevdp/PythonDataScienceHandbook).*
*The text is released under the [CC-BY-NC-ND license](https://creativecommons.org/licenses/by-nc-nd/3.0/us/legalcode), and code is released under the [MIT license](https://opensource.org/licenses/MIT). If you find this content useful, please consider supporting the work by [buying the book](http://shop.oreilly.com/product/0636920034919.do)!*"""
def add_book_info():
for nb_name in iter_notebooks():
nb_file = os.path.join(NOTEBOOK_DIR, nb_name)
nb = nbformat.read(nb_file, as_version=4)
is_comment = lambda cell: cell.source.startswith(BOOK_COMMENT)
if is_comment(nb.cells[0]):
print('- amending comment for {0}'.format(nb_name))
nb.cells[0].source = BOOK_INFO
else:
print('- inserting comment for {0}'.format(nb_name))
nb.cells.insert(0, new_markdown_cell(BOOK_INFO))
nbformat.write(nb, nb_file)
if __name__ == '__main__':
add_book_info()