Merged
Conversation
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <copilot@github.com>
shivashanmugam
commented
Apr 25, 2026
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #136 +/- ##
===========================================
- Coverage 97.15% 64.33% -32.82%
===========================================
Files 30 33 +3
Lines 1546 2333 +787
===========================================
- Hits 1502 1501 -1
- Misses 44 832 +788
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
0xba1a
approved these changes
Apr 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
API Reference Documentation

There are four
__init__.pyfiles have addedWhy these
__init__.pyfile additions are required1.Zensical uses mkdocstrings plugin to render API docs
2.mkdocstrings uses griffe to discover and parse Python source code
3.Griffe uses Python's standard package resolution to find modules
When your stub file says ::: microbots.MicroBot, griffe needs to resolve microbots.MicroBot to a file path. It does this by:
1.Looking in the configured paths: [src] directory
2.Finding microbots — and checking: is this a Python package?
3.A directory is a Python package only if it contains init.py
4.If tools has no init.py, griffe doesn't recognize it as a package, so microbots.tools.tool can't be resolved to tool.py
In short: Griffe follows Python's own package rules. Without init.py, a directory is just a folder, not a Python package — so dotted module paths like microbots.tools.tool have no meaning.