{"id":23177,"library":"total-perspective-vortex","title":"Total Perspective Vortex","description":"A library for routing entities (jobs, users or groups) to destinations in Galaxy. Current version is 3.2.1, released in April 2025. Release cadence is irregular with multiple minor releases per year.","status":"active","version":"3.2.1","language":"python","source_language":"en","source_url":"https://github.com/galaxyproject/total-perspective-vortex","tags":["galaxy","routing","job-scheduling","config","pydantic"],"install":[{"cmd":"pip install total-perspective-vortex","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Configuration models","package":"pydantic","optional":false},{"reason":"YAML config parsing","package":"pyyaml","optional":false},{"reason":"Template rendering in configuration","package":"Jinja2","optional":false}],"imports":[{"wrong":"from total_perspective_vortex.config import TPVConfigLoader","symbol":"get_version","correct":"from tpv import get_version"},{"symbol":"version","correct":"from tpv import version"},{"symbol":"PackageNotFoundError","correct":"from tpv import PackageNotFoundError"}],"quickstart":{"code":"from total_perspective_vortex.entities import Entity\nfrom total_perspective_vortex.routing import Router\n\n# Define an entity (e.g., a job)\nentity = Entity(\n    id=\"job-123\",\n    tool_id=\"toolshed.g2.bx.psu.edu/repos/devteam/fastqc/fastqc/0.11.9\",\n    user=\"alice\"\n)\n\n# Initialize router with config path\nrouter = Router(config_path=\"tpv_config.yml\")\n\n# Route entity to destination\ndestination = router.route(entity)\nprint(destination)","lang":"python","description":"Basic usage: create an entity, load a router, and route to a destination."},"warnings":[{"fix":"Update config to use new database URL: https://gxy.io/tpv/db-v2.yml","message":"Version 3.0.0 changed the TPV shared database URL. Old short links point to db-v1 which is frozen. Use https://gxy.io/tpv/db-v2.yml for latest v2 database or fork your own.","severity":"breaking","affected_versions":">=3.0.0"},{"fix":"Replace `class Config` with `model_config = ConfigDict(...)` in your custom models.","message":"Pydantic v1-style class Config is deprecated since v3.2.1. Replace with ConfigDict (Pydantic v2).","severity":"deprecated","affected_versions":">=3.2.1"},{"fix":"Check if tool is being automatically tagged; manually set tool_type in config after loading.","message":"The entity 'tool_type' tag is automatically set for special tool types (e.g., 'data_source'). This can override user-set tool_type attributes unexpectedly.","severity":"gotcha","affected_versions":">=3.2.0"},{"fix":"Test templates separately and use tpv validate command to catch errors early.","message":"Jinja2 templates in configuration are evaluated at load time; syntax errors or missing variables cause silent failures or unexpected defaults.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"search_vec":"'2025':24 '3.2.1':20 'april':23 'cadenc':26 'config':40 'current':17 'destin':14 'entiti':8 'galaxi':16,35 'group':12 'irregular':28 'job':9,38 'job-schedul':37 'librari':5 'minor':31 'multipl':30 'per':33 'perspect':2 'pydant':41 'releas':21,25,32 'rout':7,36 'schedul':39 'total':1 'user':10 'version':18 'vortex':3 'year':34","created_at":"2026-05-01T06:02:49.946064+00:00","updated_at":"2026-05-01T06:02:49.946064+00:00","problems":null,"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":"3.2.1","cli_name":"","cli_version":null,"type":"library","homepage":null,"github":"https://github.com/galaxyproject/total-perspective-vortex","docs":"https://total-perspective-vortex.readthedocs.io","changelog":null,"pypi":"https://pypi.org/project/total-perspective-vortex/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["aws","data","workflow"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-07-03","last_verified":"2026-07-03","next_check":"2026-08-02","install_tag":null}}