{"id":21030593,"url":"https://github.com/workfloworchestrator/pydantic-forms","last_synced_at":"2026-02-19T12:05:20.190Z","repository":{"id":44890342,"uuid":"513103040","full_name":"workfloworchestrator/pydantic-forms","owner":"workfloworchestrator","description":"Define JSON scheme with pydantic so a frontend can generate forms with pydantic validators","archived":false,"fork":false,"pushed_at":"2026-02-17T10:27:09.000Z","size":282,"stargazers_count":13,"open_issues_count":6,"forks_count":0,"subscribers_count":19,"default_branch":"main","last_synced_at":"2026-02-17T15:50:27.760Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/workfloworchestrator.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-07-12T10:47:14.000Z","updated_at":"2026-02-09T15:26:22.000Z","dependencies_parsed_at":"2023-09-29T08:15:36.979Z","dependency_job_id":"da077e35-261f-45d9-bfee-4e6e401dd03f","html_url":"https://github.com/workfloworchestrator/pydantic-forms","commit_stats":{"total_commits":30,"total_committers":3,"mean_commits":10.0,"dds":0.5,"last_synced_commit":"7c25912b584b547375b91a72f75fe00a4642ae4b"},"previous_names":[],"tags_count":29,"template":false,"template_full_name":null,"purl":"pkg:github/workfloworchestrator/pydantic-forms","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/workfloworchestrator%2Fpydantic-forms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/workfloworchestrator%2Fpydantic-forms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/workfloworchestrator%2Fpydantic-forms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/workfloworchestrator%2Fpydantic-forms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/workfloworchestrator","download_url":"https://codeload.github.com/workfloworchestrator/pydantic-forms/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/workfloworchestrator%2Fpydantic-forms/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29612515,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T10:52:55.328Z","status":"ssl_error","status_checked_at":"2026-02-19T10:52:26.323Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-19T12:19:21.311Z","updated_at":"2026-02-19T12:05:15.613Z","avatar_url":"https://github.com/workfloworchestrator.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pydantic forms\n\n[![pypi_version](https://img.shields.io/pypi/v/pydantic-forms?color=%2334D058\u0026label=pypi%20package)](https://pypi.org/project/pydantic-forms)\n[![Supported python versions](https://img.shields.io/pypi/pyversions/pydantic-forms.svg?color=%2334D058)](https://pypi.org/project/pydantic-forms)\n[![Downloads](https://static.pepy.tech/badge/pydantic-forms/month)](https://pepy.tech/project/pydantic-forms)\n[![codecov](https://codecov.io/gh/workfloworchestrator/pydantic-forms/branch/main/graph/badge.svg?token=AJMOSWPHQX)](https://codecov.io/gh/workfloworchestrator/pydantic-forms)\n\nA Python package that lets you add smart forms to [FastAPI](https://fastapi.tiangolo.com/)\nand [Flask](https://palletsprojects.com/p/flask/). Forms will respond with a JSON scheme that\ncontains all info needed in a React frontend with uniforms to render the forms and handle all validation tasks.\n\nForms can also consist out of a wizard, so you can create complex form flows consisting out of multiple\nconsecutive forms. The forms and the validation logic are defined by\nusing [Pydantic](https://pydantic-docs.helpmanual.io/) models.\n\nDocumentation regarding the usage of Forms can be found\n[here](https://github.com/workfloworchestrator/orchestrator-core/blob/main/docs/architecture/application/forms-frontend.md)\n\n### Installation (Development standalone)\nInstall the project and its dependencies to develop on the code.\n\n#### Step 1 - install flit:\n\n```shell\npython3 -m venv venv\nsource venv/bin/activate\npip install flit\n```\n\n#### Step 2 - install the development code:\n```shell\nflit install --deps develop --symlink --python venv/bin/python\n```\n\n!!! danger\n    Make sure to use the flit binary that is installed in your environment. You can check the correct\n    path by running\n    ```shell\n    which flit\n    ```\n\nTo be sure that the packages will be installed against the correct venv you can also prepend the python interpreter\nthat you want to use:\n\n```shell\nflit install --deps develop --symlink --python venv/bin/python\n```\n\n\n### Running tests\nRun the unit-test suite to verify a correct setup.\n\n#### Step 2 - Run tests\n```shell\npytest tests/unit_tests\n```\n\nor with xdist:\n\n```shell\npytest -n auto tests/unit_tests\n```\n\nIf you do not encounter any failures in the test, you should be able to develop features in the pydantic-forms.\n\n### Installation (Development symlinked into project that use pydantic-forms)\n\nIf you are working on a project that already uses the `pydantic-forms` and you want to test your new form features\nagainst it, you can use some `flit` magic to symlink the dev version of the forms to your project. It will\nautomatically replace the pypi dep with a symlink to the development version\nof the core and update/downgrade all required packages in your own project.\n\n#### Step 1 - install flit:\n\n```shell\npython - m venv venv\nsource venv/bin/activate\npip install flit\n```\n\n### Step 2 - symlink the core to your own project\n\n```shell\nflit install --deps develop --symlink --python /path/to/a/project/venv/bin/python\n```\n\n# Increasing the version number for a (pre) release.\n\nWhen your PR is accepted you will get a version number.\n\nYou can do the necessary change with a clean, e.g. every change committed, branch:\n\n```shell\nbumpversion patch --new-version 0.0.1\n```\n\nNote: specifying it like this, instead of relying on bumpversion itself to increase the version, allows you to\nset a \"RC1\" version if needed.\n\n# Debugging Form behaviour\n\nIf you want/need the traceback of pydantic in a Form response you can add an env variable:\n\n`\nPYDANTIC_FORMS_LOGLEVEL=DEBUG\n`\n\nThis will add the traceback to the `JSONResponse`. If the loglevel is set to DEBUG the library will also add the\ntraceback to the logger.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fworkfloworchestrator%2Fpydantic-forms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fworkfloworchestrator%2Fpydantic-forms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fworkfloworchestrator%2Fpydantic-forms/lists"}