[importlinter]
root_packages =
    ruthless

[importlinter:contract:core-isolation]
name = core must not import strategies or backends
type = forbidden
source_modules =
    ruthless._io
    ruthless._logging
    ruthless.errors
    ruthless.result
    ruthless.objective
    ruthless.backend
    ruthless.strategy
    ruthless.guards
    ruthless.parallel
    ruthless.config
    ruthless.config.common
    ruthless.config.space
    ruthless.config.strategies
    ruthless.report
    ruthless.remote
    ruthless.testing
    ruthless.wire
forbidden_modules =
    ruthless.strategies
    ruthless.backends

[importlinter:contract:strategy-isolation]
name = strategies must not import backends or each other
type = forbidden
source_modules =
    ruthless.strategies
forbidden_modules =
    ruthless.backends

[importlinter:contract:backends-isolation]
name = backends must not import strategies
type = forbidden
source_modules =
    ruthless.backends
forbidden_modules =
    ruthless.strategies
