- 🔴 High priority (i.e. critical and urgent features / fixes)
- 🟠 Medium priority (i.e. important, but not detrimental to normal operation)
- 🟢 Low priority (i.e. "would be nice to have")
-
🔴 Fix attribute name definitions conflicting with globally tracked identifiers (refer to sample_HiveNAS.ipynb ->
foodsource.py'stimeproperty conflicting with thetimepackage, leading to an improperimport timedependency). -
🔴 Add a feature to use the CDA to exclude non-functional modules (i.e. all comments or
passstatements. Those could be resulting from a notebook cell that exclusively contain magic commands (which get replaced bypass # \1), yielding an essentially empty file). -
🔴 Update the CDA to handle global (cell-level) variable tracking and injection (we currently only track functions' and classes' definitions). The most elegant approach I could think of at the moment that does not involve
globals()is to create a root-level moduleglobal_vars.pyor so and accumulate all definitions there. -
🟠 Reimplement the Processor logic to a 2-pass approach to infer the module tree structure and node types, then analyze the usages/dependencies (the CDA bit). This is to overcome the current hacky relative-imports' solution for package-level modules (refer to ./fileops/writer.py:__write_module_node() for the full description).
-
🟢 Add and handle custom Markdown commands to override the module tree structure (e.g. assign node IDs, force parent nodes regardless of Markdown structure, node depth (partially implemented in the processor), etc.).
- 🔴 Add a CLI flag to instantiate modules (add
__init__.pyto sub-directories in the writer phase). - 🟠 Add unit testing for the CDA, Parser, and CLI. Integrate it into the CI workflow.
-
🔴 Fix module declaration within package contexts to properly create modules inside their parent packages rather than as standalone files.
-
🔴 Fix cases where
from ... import ...withasaliases are not properly parsed (basic example of which isfrom matplotlib import pyplot as plt; this only sometimes fails). -
🟠 Add a "before and after" example to the docs
-
🟢 Restructure the docs'
index.rstto have a more informative homepage than just the toctree. Also add the version number (already declared in conf.py and accessible through|version|in RST).