From 34eafad749f900a9fdda7c0d8ebf8cb29c162fb3 Mon Sep 17 00:00:00 2001 From: Sthitaprajna Sahoo Date: Sat, 11 Apr 2026 02:10:26 -0400 Subject: [PATCH] chore: rename project to pytypeform to avoid PyPI conflict --- .github/workflows/ci.yml | 6 +++--- README.md | 20 +++++++++--------- examples/collection_wizard.py | 2 +- examples/enterprise_wizard.py | 2 +- examples/simple_wizard.py | 4 ++-- examples/ultimate_demo.py | 2 +- examples/ultimate_wizard.py | 2 +- pyproject.toml | 16 +++++++------- src/{typerform => pytypeform}/__init__.py | 0 src/{typerform => pytypeform}/core.py | 0 .../__pycache__/__init__.cpython-313.pyc | Bin 265 -> 0 bytes .../__pycache__/core.cpython-313.pyc | Bin 13323 -> 0 bytes tests/test_core.py | 4 ++-- tests/test_extended.py | 4 ++-- 14 files changed, 31 insertions(+), 31 deletions(-) rename src/{typerform => pytypeform}/__init__.py (100%) rename src/{typerform => pytypeform}/core.py (100%) delete mode 100644 src/typerform/__pycache__/__init__.cpython-313.pyc delete mode 100644 src/typerform/__pycache__/core.cpython-313.pyc diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ce8a4f2..d9e9b8c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -35,13 +35,13 @@ jobs: run: pip install -e ".[dev]" - name: Lint (ruff) - run: ruff check src/typerform + run: ruff check src/pytypeform - name: Type-check (mypy) - run: mypy src/typerform + run: mypy src/pytypeform - name: Test (pytest + coverage) - run: pytest --cov=typerform --cov-report=xml --cov-report=term-missing + run: pytest --cov=pytypeform --cov-report=xml --cov-report=term-missing - name: Upload coverage if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.12' diff --git a/README.md b/README.md index 50711b9..5a56ae8 100644 --- a/README.md +++ b/README.md @@ -2,11 +2,11 @@ A Type-Safe UI/CLI Generator powered by Pydantic and Prompt-Toolkit. -[![PyPI version](https://img.shields.io/pypi/v/typerform.svg)](https://pypi.org/project/typerform/) -[![Python](https://img.shields.io/pypi/pyversions/typerform.svg)](https://pypi.org/project/typerform/) -[![CI](https://github.com/sthitaprajnas/typerform/actions/workflows/ci.yml/badge.svg)](https://github.com/sthitaprajnas/typerform/actions/workflows/ci.yml) +[![PyPI version](https://img.shields.io/pypi/v/pytypeform.svg)](https://pypi.org/project/pytypeform/) +[![Python](https://img.shields.io/pypi/pyversions/pytypeform.svg)](https://pypi.org/project/pytypeform/) +[![CI](https://github.com/sthitaprajnas/pytypeform/actions/workflows/ci.yml/badge.svg)](https://github.com/sthitaprajnas/pytypeform/actions/workflows/ci.yml) [![License](https://img.shields.io/badge/license-Apache%202.0-green)](LICENSE) -[![Typed](https://img.shields.io/badge/typing-py.typed-informational)](src/typerform/py.typed) +[![Typed](https://img.shields.io/badge/typing-py.typed-informational)](src/pytypeform/py.typed) Typerform transforms your Pydantic models into professional, interactive CLI wizards. Stop writing boilerplate input loops and manual validation—let your schemas drive the user experience. @@ -26,7 +26,7 @@ Typerform transforms your Pydantic models into professional, interactive CLI wiz ## Installation ```bash -pip install typerform +pip install pytypeform ``` ## Quick Start @@ -34,7 +34,7 @@ pip install typerform ```python from typing import Literal from pydantic import BaseModel, Field -from typerform import form +from pytypeform import form class SetupConfig(BaseModel): project_name: str = Field(description="Project Name", min_length=3) @@ -90,12 +90,12 @@ config = form(MyModel, hydrate_from=[os.environ]) Contributions are welcome! Whether it's bug reports, feature requests, or new prompt engines. ```bash -git clone https://github.com/sthitaprajnas/typerform.git -cd typerform +git clone https://github.com/sthitaprajnas/pytypeform.git +cd pytypeform pip install -e ".[dev]" pytest # run test suite -ruff check src/typerform # lint -mypy src/typerform # type-check +ruff check src/pytypeform # lint +mypy src/pytypeform # type-check ``` ## License diff --git a/examples/collection_wizard.py b/examples/collection_wizard.py index 1d7cdf6..c7a115d 100644 --- a/examples/collection_wizard.py +++ b/examples/collection_wizard.py @@ -5,7 +5,7 @@ # Add src to sys.path sys.path.insert(0, "./src") -from typerform import form +from pytypeform import form from rich.console import Console console = Console() diff --git a/examples/enterprise_wizard.py b/examples/enterprise_wizard.py index 88c5eeb..36281a0 100644 --- a/examples/enterprise_wizard.py +++ b/examples/enterprise_wizard.py @@ -5,7 +5,7 @@ # Add the src directory to sys.path sys.path.insert(0, "./src") -from typerform import form +from pytypeform import form from rich.console import Console console = Console() diff --git a/examples/simple_wizard.py b/examples/simple_wizard.py index ecef558..be1ba55 100644 --- a/examples/simple_wizard.py +++ b/examples/simple_wizard.py @@ -3,12 +3,12 @@ from pydantic import BaseModel, EmailStr, Field -# Add the src directory to sys.path so we can import typerform without installing it +# Add the src directory to sys.path so we can import pytypeform without installing it sys.path.insert(0, "./src") from rich.console import Console -from typerform import form +from pytypeform import form console = Console() diff --git a/examples/ultimate_demo.py b/examples/ultimate_demo.py index d3608bb..4a2139e 100644 --- a/examples/ultimate_demo.py +++ b/examples/ultimate_demo.py @@ -6,7 +6,7 @@ # Add src to sys.path sys.path.insert(0, "./src") -from typerform import form +from pytypeform import form from rich.console import Console console = Console() diff --git a/examples/ultimate_wizard.py b/examples/ultimate_wizard.py index 9e146ee..fe402fb 100644 --- a/examples/ultimate_wizard.py +++ b/examples/ultimate_wizard.py @@ -6,7 +6,7 @@ # Add src to sys.path sys.path.insert(0, "./src") -from typerform import form +from pytypeform import form from rich.console import Console console = Console() diff --git a/pyproject.toml b/pyproject.toml index fa23ea7..532dbd4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ build-backend = "hatchling.build" # --------------------------------------------------------------------------- [project] -name = "typerform" +name = "pytypeform" version = "0.2.0" description = "A Type-Safe UI/CLI Generator powered by Pydantic." readme = "README.md" @@ -47,10 +47,10 @@ dependencies = [ ] [project.urls] -Homepage = "https://github.com/sthitaprajnas/typerform" -Repository = "https://github.com/sthitaprajnas/typerform" -Documentation = "https://github.com/sthitaprajnas/typerform#readme" -Issues = "https://github.com/sthitaprajnas/typerform/issues" +Homepage = "https://github.com/sthitaprajnas/pytypeform" +Repository = "https://github.com/sthitaprajnas/pytypeform" +Documentation = "https://github.com/sthitaprajnas/pytypeform#readme" +Issues = "https://github.com/sthitaprajnas/pytypeform/issues" [project.optional-dependencies] dev = [ @@ -67,7 +67,7 @@ dev = [ # --------------------------------------------------------------------------- [tool.hatch.build.targets.wheel] -packages = ["src/typerform"] +packages = ["src/pytypeform"] [tool.hatch.build.targets.sdist] include = [ @@ -89,7 +89,7 @@ addopts = "-v --tb=short" [tool.mypy] strict = true python_version = "3.10" -files = ["src/typerform"] +files = ["src/pytypeform"] [tool.ruff] line-length = 100 @@ -100,7 +100,7 @@ select = ["E", "F", "I", "UP", "B", "SIM"] ignore = ["E501"] [tool.coverage.run] -source = ["src/typerform"] +source = ["src/pytypeform"] [tool.coverage.report] show_missing = true diff --git a/src/typerform/__init__.py b/src/pytypeform/__init__.py similarity index 100% rename from src/typerform/__init__.py rename to src/pytypeform/__init__.py diff --git a/src/typerform/core.py b/src/pytypeform/core.py similarity index 100% rename from src/typerform/core.py rename to src/pytypeform/core.py diff --git a/src/typerform/__pycache__/__init__.cpython-313.pyc b/src/typerform/__pycache__/__init__.cpython-313.pyc deleted file mode 100644 index d77c0e2d331584324f31755c55c7a8097b7fc99b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 265 zcmey&%ge<81V_%_%yb0Ok3k$5V1hC}O92^E8G;#t8NC_27>gJc7=oFKn1Y%08H#mC=b zkB?8x$%&6&$?zGdlHrz*erPdJQokUvprAN6Festoa0_;5G_n_Q03`tMsYpNo diff --git a/src/typerform/__pycache__/core.cpython-313.pyc b/src/typerform/__pycache__/core.cpython-313.pyc deleted file mode 100644 index dc70351808799e2dbae3d6562419ee94ea7ff689..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13323 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 diff --git a/tests/test_core.py b/tests/test_core.py index 9158d92..4b547ba 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -4,8 +4,8 @@ from unittest.mock import MagicMock from pydantic import BaseModel, Field, SecretStr -from typerform import form -from typerform.core import PromptEngine, set_engine, config +from pytypeform import form +from pytypeform.core import PromptEngine, set_engine, config import io from rich.console import Console diff --git a/tests/test_extended.py b/tests/test_extended.py index 971f6ab..45bf75c 100644 --- a/tests/test_extended.py +++ b/tests/test_extended.py @@ -2,8 +2,8 @@ from typing import Literal, Optional, Any, Dict from enum import Enum from pydantic import BaseModel, Field, SecretStr -from typerform import form -from typerform.core import PromptEngine, set_engine, config +from pytypeform import form +from pytypeform.core import PromptEngine, set_engine, config import io from rich.console import Console