Contact: [email protected]
Date | Author | Description |
---|---|---|
2023-08-10 | numbworks | Created. |
2023-09-24 | numbworks | Updated to v1.6.0. |
2024-01-21 | numbworks | Updated to v2.0.0. |
2024-03-24 | numbworks | Updated to v3.0.0. |
2024-03-28 | numbworks | Updated to v3.1.0. |
2024-05-19 | numbworks | Updated to v3.2.0. |
2024-05-20 | numbworks | Updated to v3.3.0. |
2024-08-12 | numbworks | Updated to v3.4.0. |
2024-09-23 | numbworks | Updated to v3.5.0. |
nwreadinglist
is a Jupyter Notebook
designed to analyze the Excel file I use to annotate all the books I study in my continuous education journey. As a second set of features, it converts some of the analyses to Markdown
files, so that I can easily show them on my Github
account.
The previous implementation of this software has been developed in Microsoft VBA
(Visual Basic for Applications
) and it run fine for years, but it reached a point that it was difficult to scale up and therefore I rewrote it from scratch using Python
and Jupyter Notebook
This project may not be useful for many (not generic enough), but I decided to upload it to Github
anyway, in order to showcase my way of working when I face similar data analysis tasks and I decide to tackle them with Python
and Jupyter Notebook
.
To run this application on Windows and Linux:
-
Download and install Visual Studio Code;
-
Download and install Docker;
-
Download and install Git;
-
Open your terminal application of choice and type the following commands:
mkdir nwreadinglist cd nwreadinglist git clone https://github.com/numbworks/nwreadinglist.git
-
Launch Visual Studio Code and install the following extensions:
-
In order for the Jupyter Notebook to automatically detect changes in the underlying library, click on File > Preferences > Settings and change the following setting as below:
"jupyter.runStartupCommands": [ "%load_ext autoreload", "%autoreload 2" ]
-
In order for Pylance to perform type checking, set the
python.analysis.typeCheckingMode
setting tobasic
; -
Click on File > Open folder >
nwreadinglist
; -
Click on View > Command Palette and type:
> Dev Container: Reopen in Container
-
Wait some minutes for the container defined in the .devcointainer folder to be built;
-
Open the notebook file (src/nwreadinglist.ipynb);
-
Edit the
SettingBag
object according to your needs; -
Click on Run All;
-
Done!
To run the unit tests in Visual Studio Code (while still connected to the Dev Container):
- click on the Testing icon on the sidebar, right-click on tests > Run Test;
- select the Python interpreter inside the Dev Container (if asked);
- Done!
To calculate the total unit test coverage in Visual Studio Code (while still connected to the Dev Container):
-
Terminal > New Terminal;
-
Run the following commands to get the total unit test coverage:
cd tests coverage run -m unittest nwreadinglisttests.py coverage report --omit=nwreadinglisttests.py
-
Run the following commands to get the unit test coverage per class:
cd tests coverage run -m unittest nwreadinglisttests.py coverage html --omit=nwreadinglisttests.py && sed -n '/<table class="index" data-sortable>/,/<\/table>/p' htmlcov/class_index.html | pandoc --from html --to plain && sleep 3 && rm -rf htmlcov
-
Done!
If nwshared
creates some issues for you, please refer to its documentation on Github.
Suggested toolset to view and edit this Markdown file: