SmartRoute

Getting Started

  • Installation
    • Requirements
    • From PyPI
    • With Optional Dependencies
      • Pydantic Plugin
      • Development Tools
      • All Dependencies
    • From Source
    • Verify Installation
    • Next Steps
  • Quick Start
    • Installation
    • Your First Router
    • Custom Entry Names
    • Building Hierarchies
    • Adding Plugins
    • Validating Arguments
    • Next Steps
    • Need Help?
  • SmartRoute - Frequently Asked Questions
    • What is SmartRoute?
      • What problem does SmartRoute solve?
      • SmartRoute vs function dictionary?
      • Is SmartRoute a web framework?
    • Core Concepts
      • What is a Router?
      • How does the @route decorator work?
      • What is RoutedClass?
    • Hierarchies and Child Routers
      • How do I organize nested routers?
      • How do I access child routers?
      • Do plugins inherit to children?
    • Plugin System
      • What are plugins?
      • How do I use built-in plugins?
      • How do I configure plugins at runtime?
      • Can I create custom plugins?
    • Scope and Channel
      • What are scope and channel?
      • When should I use PublishPlugin?
    • Advanced Use Cases
      • How do I register handlers dynamically?
      • How do I handle errors and defaults?
      • How do I use SmartAsync?
      • How do I introspect the structure?
    • Comparisons
      • SmartRoute vs decorator dispatch?
    • Troubleshooting
      • “No plugin named ‘X’ attached to router”
      • “Handler name collision”
      • Plugins don’t propagate to children
      • ValidationError with Pydantic
    • Best Practices
      • When should I use SmartRoute?
      • Does plugin order matter?
      • How do I test code with SmartRoute?
    • Useful Links
    • Contributing

User Guide

  • Basic Usage
    • Overview
    • Creating Your First Router
    • Registering Handlers
    • Calling Handlers
    • Using Prefixes and Custom Names
    • Default Handlers
    • Dynamic Handler Registration
    • Building Hierarchies
    • Introspection
    • Next Steps
  • Plugin Development
    • Overview
    • Built-in Plugins
      • Publish-ready plugin (ecosystem)
    • Creating Custom Plugins
      • Basic Plugin Structure
      • Constructor Signature
    • Plugin Hooks
      • configure(**kwargs)
      • on_decore(router, func, entry)
      • wrap_handler(router, entry, call_next)
      • allow_entry(router, entry, **filters)
      • entry_metadata(router, entry)
    • Plugin Registration
    • Per-Instance State
    • Plugin Configuration
      • Defining Configuration
      • Reading Configuration
      • Configuring at Runtime
      • The _target Parameter
      • The flags Parameter
    • Complete Example: Authorization Plugin
    • Best Practices
    • Next Steps
  • Plugin Configuration
    • Overview
    • Target Syntax
    • Basic Configuration
    • Batch Updates
    • Introspection
    • Exposing Configuration API
    • Error Handling
    • Best Practices
    • Next Steps
  • Hierarchical Routers
    • Overview
    • Managing Hierarchies
    • Basic Instance Attachment
    • Multiple Routers: Auto-Mapping
    • Multiple Routers: Explicit Mapping
    • Parent with Multiple Routers
    • Branch Routers
    • Direct Router Hierarchies with parent_router
    • Auto-Detachment
    • Parent Tracking
    • Plugin Inheritance
    • Dotted Path Navigation
    • Introspection
    • Real-World Examples
      • Microservice-Style Organization
      • Multi-Level Organization with Branches
      • Dynamic Service Replacement
    • Best Practices
      • Logical Grouping with Branches
      • Shared Plugins at Root
      • Deep Hierarchies
      • Store Before Attach
      • Explicit Detachment
      • Prevent Name Collisions
    • Common Patterns
      • Parent-Aware Children
      • Conditional Attachment
      • Multi-Router Services
    • Next Steps
  • Best Practices

Reference

  • API Reference
    • Constructor and slots
    • Registration and naming
    • Marker discovery
    • Handler table and wrapping
    • Lookup and execution
    • Children (instance hierarchies only)
    • Child discovery helpers
    • Introspection
    • Hooks for subclasses
    • Invariants and guarantees
    • BaseRouter
      • BaseRouter.__init__()
      • BaseRouter.instance
      • BaseRouter.name
      • BaseRouter.prefix
      • BaseRouter.add_entry()
      • BaseRouter.get()
      • BaseRouter.__getitem__()
      • BaseRouter.call()
      • BaseRouter.entries()
      • BaseRouter.attach_instance()
      • BaseRouter.detach_instance()
      • BaseRouter.members()
      • BaseRouter.iter_plugins()
    • Internal state
    • Global registry
    • Attaching plugins
    • Runtime flags and data
    • Wrapping pipeline
    • Entry/plugin application
    • Inheritance behaviour
    • Filtering
    • Description hooks
    • Data shapes
    • Router Invariants
    • Router
      • Router.__init__()
      • Router.register_plugin()
      • Router.available_plugins()
      • Router.plug()
      • Router.iter_plugins()
      • Router.get_config()
      • Router.set_plugin_enabled()
      • Router.is_plugin_enabled()
      • Router.set_runtime_data()
      • Router.get_runtime_data()
      • Router.instance
      • Router.name
      • Router.prefix
    • Re-exports
    • route()
    • RoutedClass
      • RoutedClass.routedclass
    • Router
      • Router.instance
      • Router.name
      • Router.prefix
      • Router.__init__()
      • Router.available_plugins()
      • Router.get_config()
      • Router.get_runtime_data()
      • Router.is_plugin_enabled()
      • Router.iter_plugins()
      • Router.plug()
      • Router.register_plugin()
      • Router.set_plugin_enabled()
      • Router.set_runtime_data()
  • Plugin API Reference
    • Auto-Generated Plugin API
      • Responsibilities
      • Configuration
      • Behaviour and API
      • Registration
      • LoggingPlugin
        • LoggingPlugin.plugin_code
        • LoggingPlugin.plugin_description
        • LoggingPlugin.__init__()
        • LoggingPlugin.configure()
        • LoggingPlugin.wrap_handler()
      • Responsibilities
      • Dependencies and guards
      • Behaviour and data
      • Registration
      • PydanticPlugin
        • PydanticPlugin.plugin_code
        • PydanticPlugin.plugin_description
        • PydanticPlugin.__init__()
        • PydanticPlugin.configure()
        • PydanticPlugin.on_decore()
        • PydanticPlugin.wrap_handler()
        • PydanticPlugin.get_model()
        • PydanticPlugin.name
        • PydanticPlugin.entry_metadata()
SmartRoute
  • Search


© Copyright 2025, Genropy Team.

Built with Sphinx using a theme provided by Read the Docs.