{"schema_version":1,"metadata":{"branch":"current","release":"7.9","architecture":"amd64","generated_at":"2026-09-09T04:04:41.004595+00:00","source_url":"https://cdn.openbsd.org/pub/OpenBSD/snapshots/packages/amd64/sqlports-7.55.tgz","source_sha256":"fcdbba1b9df747882aa9bab4af20ebec8dac10655069c90f1cd4145c06e1235e","package_count":12031,"source_kind":"sqlports"},"package":{"name":"py3-stevedore-5.8.0","path":"devel/py-stevedore","url":"/packages/current/devel/py-stevedore/","comment":"manage dynamic plugins for Python applications","homepage":"https://docs.openstack.org/stevedore","maintainer":"The OpenBSD ports mailing-list <ports@openbsd.org>","description":"Python makes loading code dynamically easy, allowing you to configure\nand extend your application by discovering and loading extensions\n(\"*plugins*\") at runtime. Many applications implement their own\nlibrary for doing this, using ``__import__`` or ``importlib``.\n\nstevedore avoids creating yet another extension mechanism by building\non top of `setuptools entry points`. The code for managing entry\npoints tends to be repetitive, though, so stevedore provides manager\nclasses for implementing common patterns for using dynamically\nloaded extensions.\n","package_architecture":"amd64","stem":"py3-stevedore","readme":null,"dependencies":[{"path":"lang/python/3","type":"runtime","package_spec":"","url":"/packages/current/lang/python/3/"},{"path":"lang/python/3","type":"build","package_spec":"","url":"/packages/current/lang/python/3/"},{"path":"devel/py-build","type":"build","package_spec":"","url":"/packages/current/devel/py-build/"},{"path":"devel/py-installer","type":"build","package_spec":"","url":"/packages/current/devel/py-installer/"},{"path":"devel/py-pbr","type":"build","package_spec":"","url":"/packages/current/devel/py-pbr/"},{"path":"devel/py-setuptools","type":"build","package_spec":"py3-setuptools->=79v0","url":"/packages/current/devel/py-setuptools/"},{"path":"devel/py-wheel","type":"build","package_spec":"","url":"/packages/current/devel/py-wheel/"},{"path":"devel/py-coverage","type":"test","package_spec":"","url":"/packages/current/devel/py-coverage/"},{"path":"textproc/py-sphinx","type":"test","package_spec":"","url":"/packages/current/textproc/py-sphinx/"},{"path":"lang/python/3","type":"test","package_spec":"","url":"/packages/current/lang/python/3/"},{"path":"devel/py-test","type":"test","package_spec":"","url":"/packages/current/devel/py-test/"}],"reverse_dependencies":{"count":2,"url":"/packages/data/ba/ba8c0dc4953abf63791e809328f87e3cccd2a325d71b4fb16ffa6200ca7a60c1.json"},"categories":["devel","lang/python"],"flavors":[],"only_for_architectures":["aarch64","amd64","arm","i386","mips64","mips64el","powerpc","powerpc64","riscv64","sparc64","alpha","hppa"],"not_for_architectures":[]}}
