Install & Compatibility
Where this runs
tested against v2.11.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.95 runs
installs and imports cleanly · install 0.0s · import 1.886s · 84.5MB
glibcpy 3.10–3.95 runs
installs and imports cleanly · install 7.9s · import 1.742s · 86MB
92MB installed
● package 92MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
Limit
✓ from oslo_limit import limit
✗ from oslo.limit import limit
Correct package is oslo_limit, not oslo.limit.
Enforcer
✓ from oslo_limit import limit; enforcer = limit.Enforcer(...)
✗ from oslo.limit import enforcer
Enforcer is accessed via the limit module.
Basic usage: create an Enforcer and call enforce() to check quota limits.
from oslo_limit import limit
# Define a resource with a limit of 10
resource = {'name': 'instances', 'limit': 10}
# Check usage
enforcer = limit.Enforcer()
# Would raise exception if exceeded
enforcer.enforce('project-id', resource, usage=5)
Errors
Common errors & fixes
ImportError: No module named oslo.limit
Using wrong import path; the correct package is oslo_limit.
fixRun: pip install oslo.limit
Then import: from oslo_limit import limit
TypeError: object Enforcer can't be used in 'await' expression
Enforcer methods are async and must be awaited.
fixUse: await enforcer.enforce(...) inside an async function.
oslo_limit.limit.ResourceNotFound: Resource 'instances' not found
Resource name is not registered or case mismatch.
fixVerify resource names are registered in the backend and use exact case (e.g., 'instances' vs 'Instances').
Upgrade
Version history
2.11.0latest on PyPI · released May 18, 2026
Audit
Dependencies
No dependency data recorded yet.