Skip to content

Latest commit

 

History

History
33 lines (16 loc) · 2.51 KB

TODO.md

File metadata and controls

33 lines (16 loc) · 2.51 KB

Todo

  • 🔴 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")

Major

  • 🔴 Fix attribute name definitions conflicting with globally tracked identifiers (refer to sample_HiveNAS.ipynb -> foodsource.py's time property conflicting with the time package, leading to an improper import time dependency).

  • 🔴 Add a feature to use the CDA to exclude non-functional modules (i.e. all comments or pass statements. Those could be resulting from a notebook cell that exclusively contain magic commands (which get replaced by pass # \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 module global_vars.py or 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.).

Minor

  • 🔴 Add a CLI flag to instantiate modules (add __init__.py to sub-directories in the writer phase).
  • 🟠 Add unit testing for the CDA, Parser, and CLI. Integrate it into the CI workflow.

Patches

  • 🟠 Add a "before and after" example to the docs

  • 🟢 Restructure the docs' index.rst to 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).