Skip to main content

Gufo Loader

Typed runtime object resolution for Python.

PyPi version Downloads Python Versions License Build codecov Sponsors Ruff


Documentation: https://docs.gufolabs.com/gufo_loader/

Source Code: https://github.com/gufolabs/gufo_loader/


Gufo Loader provides tools to resolve Python objects at runtime from string identifiers with full typing and IDE support.

It is designed for applications where object selection is driven by configuration or runtime state.

Two resolution models

Gufo Loader supports two complementary ways to resolve Python objects.

          String identifier
                 │
      ┌──────────┴──────────┐
      │                     │
 Full import path      Logical name
      │                     │
ImportPathResolver        Loader
      └──────────┬──────────┘
                 │
          Python object

Direct resolution (full import path)

A Python object is identified by its fully qualified import path.

"myproject.handlers.process"

Use ImportPathResolver:

resolver = ImportPathResolver[Callable[..., Any]]()
handler = resolver("myproject.handlers.process")

Use this when the exact location of the object is known.

Named resolution (logical name)

A Python object is referenced by a short logical name:

"json"

The system resolves it to a concrete implementation. Use Loader:

loader = Loader[type[BasePlugin]](base="myproject.plugins")
plugin = loader["json"]

Use this when behavior is selected by configuration or convention.

ImportPathResolver

Resolves full Python import paths into objects.

resolver("package.module.symbol")

Properties:

  • works with any Python object
  • caching of successful resolutions
  • optional negative caching
  • strict typing support
  • safe, deterministic import behavior

Loader

Loader discovers and resolves typed objects from one or more Python packages.

It supports three plugin models:

Class-based plugins

Loader[type[BasePlugin]]

Singleton instances

Loader[BasePlugin]

Protocol-based plugins

Loader[MyProtocol]

Properties:

  • subclasses, instances and protocols
  • no registration
  • multiple package namespaces
  • lazy discovery
  • type validation
  • predictable resolution behavior

Features

  • Zero dependencies — no external runtime dependencies
  • Fully typed API — generics, protocols, subclass-safe resolution
  • IDE-friendly — autocompletion and static type inference support
  • Lazy loading — modules imported only when needed
  • Caching — resolved objects are cached for performance
  • Negative caching — failed resolutions are cached to avoid repeated lookups
  • Secure by design — only explicit Python imports are performed
  • Deterministic behavior — predictable resolution for identical inputs
  • Multi-package support — load plugins from multiple namespaces

On Gufo Stack

This product is a part of Gufo Stack - the collaborative effort led by Gufo Labs. Our goal is to create a robust and flexible set of tools to create network management software and automate routine administration tasks.

To do this, we extract the key technologies that have proven themselves in the NOC and bring them as separate packages. Then we work on API, performance tuning, documentation, and testing. The NOC uses the final result as the external dependencies.

Gufo Stack makes the NOC better, and this is our primary task. But other products can benefit from Gufo Stack too. So we believe that our effort will make the other network management products better.

Metadata

Release files for gufo-loader 2.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gufo-loader 2.0.1
File Size Uploaded
gufo_loader-2.0.1.tar.gz 17.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gufo-loader 2.0.1
File Interpreter ABI Platform
gufo_loader-2.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 27.0 kB

Release files / gufo_loader-2.0.1.tar.gz

Download URL gufo_loader-2.0.1.tar.gz
Size 17.0 kB
Tags Source
SHA-256 checksum
How to use checksums
8ba136be971afa8a090be649e6a126c0b5921682667e3efa7dbc17c3aa4da445
BLAKE2b-256 checksum
How to use checksums
450921625cf1078f373804a38c716bd071c15b2b508470ee5e49b14ec4b730c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 5, 2026.

Transparency log

Release files / gufo_loader-2.0.1-py3-none-any.whl

Download URL gufo_loader-2.0.1-py3-none-any.whl
Size 10.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
246aa59249705d527b8e50eb555c5decf014aeb1f36963255b817ff6e335b81c
BLAKE2b-256 checksum
How to use checksums
6bef11c679f6f9cc2a94498f05e22817bd637198e61e94519f28bb6004222543
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 5, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.0.1 This release

2 release files

2.0.0

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page