Overview
Thedoctor command performs health checks on installed seed plugins to ensure they have all required dependencies, modules, and attributes. It’s useful for troubleshooting issues with seed operations.
Basic Usage
Check All Seeds
Validate all installed seeds:- Required module attributes
- Required executable dependencies
- Module structure and imports
Check Specific Seed
Validate a single seed:Name of the seed to check (optional). If omitted, all seeds are checked.
Repair Mode
Attempt to automatically repair detected issues:Try to repair seed issues automatically
Repair functionality is currently under development. Most issues will need to be resolved manually.
What Doctor Checks
Required Attributes
Doctor verifies that each seed module has the following attributes:Prefix for identification of DATs - Used to identify which DATs belong to this seed
Description of module - Human-readable description of the seed’s purpose
Function to fetch data - The main function that downloads DAT files from the source
Rules for the rules engine - Defines how to parse and categorize DATs from this seed
Actions to take for DATs - Defines the processing pipeline for DATs from this seed
Required Executables
If a seed declares executable requirements in its__requirements__ attribute, doctor will verify they are available in the system PATH.
Common executables checked:
7zor7zip- For archive extractionwgetorcurl- For downloading- Custom tools specific to certain seeds
Output Format
Success (No Issues)
Failures
When issues are found, doctor outputs specific error messages:- Missing attribute - A required module attribute or function is not found
- Missing executable - A required external command is not installed
Common Issues and Solutions
Missing Module Attribute
Error:- Check if the seed is properly installed:
datoso seed installed - Reinstall the seed:
pip install --upgrade datoso-seed-<name> - Check seed documentation for installation requirements
Missing Executable
Error:- Install the missing executable:
- Ensure the executable is in your PATH
- Run doctor again to verify
Module Not Found
Error:- List installed seeds:
datoso seed installed - Install the seed:
pip install datoso-seed-<name> - Verify installation:
datoso doctor <seed-name>
Workflow Examples
Troubleshooting Failed Fetch
Post-Installation Validation
System-Wide Health Check
Integration with Other Commands
Doctor is automatically invoked when certain operations fail:After Failed Fetch
After Failed Process
After Failed Config Update
Verbose Output
For more detailed diagnostic information, combine doctor with verbose flag:Exit Codes
- 0 - All checks passed or non-critical warnings only
- 1 - Critical issues found (seed not found)
Checking Version Requirements
If a seed specifies version requirements for dependencies, doctor validates them using these operators:>- Greater than<- Less than>=- Greater than or equal to<=- Less than or equal to==- Exactly equal to
Best Practices
Regular Health Checks
Run doctor periodically to ensure seeds remain properly configured:Before Reporting Issues
Always run doctor before reporting seed-related issues:After System Updates
Run doctor after system updates that might affect dependencies:Development and Testing
When developing custom seeds, use doctor to validate your implementation:Limitations
Current limitations:- Cannot automatically install missing executables
- Cannot fix code-level issues in seed modules
- Cannot repair network connectivity issues
- Cannot fix permission issues
Next Steps
- Review seed commands for working with seeds
- Check config commands for configuration issues
- Use
datoso logto view detailed error logs - Consult individual seed documentation for specific requirements