{"library":"objectory","title":"Objectory","description":"Objectory is a lightweight Python library (version 0.3.1) designed for general-purpose object factories. It focuses on dynamic object factory implementations, allowing objects to be registered and instantiated from their configuration without altering the factory's core code. The library supports both abstract factory and registry patterns. As it is currently in a development stage (pre-1.0.0), the API may experience frequent changes.","language":"python","status":"active","last_verified":"Sun May 17","install":{"commands":["pip install objectory"],"cli":null},"imports":["from objectory import factory","from objectory import AbstractFactory","from objectory import Registry"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"from objectory import factory, AbstractFactory, Registry\n\n# 1. Basic factory usage with a built-in type\nobj_list = factory(\"builtins.list\")\nprint(f\"Created list: {obj_list}\")\nobj_list_init = factory(\"builtins.list\", [1, 2, 3])\nprint(f\"Created list with data: {obj_list_init}\")\n\n# 2. AbstractFactory pattern\nclass BaseProduct(metaclass=AbstractFactory):\n    pass\n\nclass ConcreteProductA(BaseProduct):\n    def __init__(self, name=\"ProductA\"):\n        self.name = name\n\nclass ConcreteProductB(BaseProduct):\n    def __init__(self, value=100):\n        self.value = value\n\nproduct_a = BaseProduct.factory(\"ConcreteProductA\", name=\"SpecialA\")\nprint(f\"Created product A: {product_a.name}\")\nproduct_b = BaseProduct.factory(\"ConcreteProductB\")\nprint(f\"Created product B value: {product_b.value}\")\n\n# 3. Registry pattern\nmy_registry = Registry()\n\n@my_registry.register()\nclass RegisteredClass:\n    def __init__(self, message=\"Hello from registry!\"):\n        self.message = message\n\nregistered_instance = my_registry.factory(\"RegisteredClass\", message=\"Dynamic message!\")\nprint(f\"Created registered instance: {registered_instance.message}\")","lang":"python","description":"Demonstrates the three main ways to use Objectory: direct factory instantiation, abstract factory inheritance, and dynamic class registration with a Registry.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-17","installed_version":"0.2.0","pypi_latest":"0.3.1","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":1.7,"avg_import_s":0.13,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"objectory","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.12,"mem_mb":4.6,"disk_size":"17.9M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"objectory","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.6,"import_time_s":0.08,"mem_mb":4.6,"disk_size":"18M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"objectory","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.17,"mem_mb":5.4,"disk_size":"19.8M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"objectory","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.7,"import_time_s":0.15,"mem_mb":5.7,"disk_size":"20M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"objectory","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.15,"mem_mb":5.3,"disk_size":"11.7M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"objectory","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.4,"import_time_s":0.15,"mem_mb":5.3,"disk_size":"12M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"objectory","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.14,"mem_mb":5.3,"disk_size":"11.4M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"objectory","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.5,"import_time_s":0.13,"mem_mb":5.3,"disk_size":"12M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"objectory","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.09,"mem_mb":4,"disk_size":"20.8M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"objectory","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.2,"import_time_s":0.09,"mem_mb":4,"disk_size":"21M"}]}}