Skip to main content

Composable survey question models with hierarchical namespaces

Project description

Hubify

Hubify is a Python package that provides composable survey question models with a lazy-loaded, hierarchical namespace. The library focuses on:

  • A consistent set of BaseQuestionContract abstractions powered by Pydantic v2.
  • Category-specific implementations such as simple, multiple, matrix, and advanced questions that automatically register themselves.
  • A QuestionFactory capable of instantiating question payloads dynamically based on their question_type metadata.

The runtime package lives under src/hubify/ and is published on PyPI as the hubify-core distribution while remaining importable via the hubify module.

Getting Started

The project uses uv for dependency management. To install all dependencies:

uv sync

Run the test-suite with:

uv run pytest

To enter a REPL or execute scripts against the synced environment use uv run <command>.

Package Layout

src/hubify/
├── __init__.py        # Package exports and conveniences
├── surveys.py         # Survey composition model
└── questions/
		├── __init__.py    # Lazy-loading namespace + public API
		├── registry.py    # Auto-discovery registry and factory helpers
		├── contracts/     # Base contracts and shared models
		└── types/         # Question implementations grouped by category

Documentation describing the architecture and import patterns lives under docs/. Tests validating lazy-loading behaviour and question contracts live in tests/.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hubify_core-0.1.0.tar.gz (14.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hubify_core-0.1.0-py3-none-any.whl (19.1 kB view details)

Uploaded Python 3

File details

Details for the file hubify_core-0.1.0.tar.gz.

File metadata

  • Download URL: hubify_core-0.1.0.tar.gz
  • Upload date:
  • Size: 14.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.9

File hashes

Hashes for hubify_core-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d7db5f9d1b5f228b465eb8eef6a81029ee5363e4f2e05eaba27c8ff2e230ec06
MD5 449afcb14cc506c932b9430f51f752a2
BLAKE2b-256 5dcc587376e46a7a5c0e49df4b549fed52befe0c42d9d670e4ea11b6a9746adc

See more details on using hashes here.

File details

Details for the file hubify_core-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: hubify_core-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 19.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.9

File hashes

Hashes for hubify_core-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 71d2bea7d9ecfee18c9bdef8e246059e98daf195ea0a389e707b1e10de6824e5
MD5 0cf73d4817e5e826c26e60b5aeba8e62
BLAKE2b-256 ba312dadc10914c1a887ac1d0b79b278f1d1877ed492efcad322f6410d21bade

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page