From ebfbefc2de78bac7a4d652ded2745fa9421813d0 Mon Sep 17 00:00:00 2001 From: Taeho Kim Date: Tue, 2 Sep 2025 17:14:43 +0900 Subject: [PATCH] chore: move files to prepare for multiple languages --- .github/workflows/ci.yml | 3 +++ .python-version | 1 - .readthedocs.yaml | 3 ++- README.md | 8 ++++---- .gitignore => py/.gitignore | 0 py/README.md | 1 + {docs => py/docs}/api/overview.md | 0 {docs => py/docs}/api/parser.md | 0 {docs => py/docs}/api/tracker.md | 0 py/docs/diagram.png | Bin 0 -> 60411 bytes {docs => py/docs}/index.md | 0 example.py => py/example.py | 0 mkdocs.yml => py/mkdocs.yml | 0 pyproject.toml => py/pyproject.toml | 0 {src => py/src}/langdiff/__init__.py | 0 {src => py/src}/langdiff/parser/__init__.py | 0 {src => py/src}/langdiff/parser/decoder.py | 0 {src => py/src}/langdiff/parser/model.py | 0 {src => py/src}/langdiff/parser/parser.py | 0 {src => py/src}/langdiff/py.typed | 0 {src => py/src}/langdiff/tracker/__init__.py | 0 .../src}/langdiff/tracker/change_tracker.py | 0 {src => py/src}/langdiff/tracker/changes.py | 0 {src => py/src}/langdiff/tracker/impl.py | 0 {tests => py/tests}/test_change_tracker.py | 0 {tests => py/tests}/test_parser.py | 0 {tests => py/tests}/test_partial_json.py | 0 uv.lock => py/uv.lock | 0 28 files changed, 10 insertions(+), 6 deletions(-) delete mode 100644 .python-version rename .gitignore => py/.gitignore (100%) create mode 120000 py/README.md rename {docs => py/docs}/api/overview.md (100%) rename {docs => py/docs}/api/parser.md (100%) rename {docs => py/docs}/api/tracker.md (100%) create mode 100644 py/docs/diagram.png rename {docs => py/docs}/index.md (100%) rename example.py => py/example.py (100%) rename mkdocs.yml => py/mkdocs.yml (100%) rename pyproject.toml => py/pyproject.toml (100%) rename {src => py/src}/langdiff/__init__.py (100%) rename {src => py/src}/langdiff/parser/__init__.py (100%) rename {src => py/src}/langdiff/parser/decoder.py (100%) rename {src => py/src}/langdiff/parser/model.py (100%) rename {src => py/src}/langdiff/parser/parser.py (100%) rename {src => py/src}/langdiff/py.typed (100%) rename {src => py/src}/langdiff/tracker/__init__.py (100%) rename {src => py/src}/langdiff/tracker/change_tracker.py (100%) rename {src => py/src}/langdiff/tracker/changes.py (100%) rename {src => py/src}/langdiff/tracker/impl.py (100%) rename {tests => py/tests}/test_change_tracker.py (100%) rename {tests => py/tests}/test_parser.py (100%) rename {tests => py/tests}/test_partial_json.py (100%) rename uv.lock => py/uv.lock (100%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4d45614..04f18e1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,6 +13,9 @@ jobs: fail-fast: false matrix: python-version: ["3.11", "3.12"] + defaults: + run: + working-directory: ./py steps: - uses: actions/checkout@v4 diff --git a/.python-version b/.python-version deleted file mode 100644 index e4fba21..0000000 --- a/.python-version +++ /dev/null @@ -1 +0,0 @@ -3.12 diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 8e029ca..8d705ee 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -17,8 +17,9 @@ build: create_environment: - uv venv "${READTHEDOCS_VIRTUALENV_PATH}" install: + - cd py - UV_PROJECT_ENVIRONMENT="${READTHEDOCS_VIRTUALENV_PATH}" uv sync --frozen --group docs # Build documentation with Mkdocs mkdocs: - configuration: mkdocs.yml + configuration: py/mkdocs.yml diff --git a/README.md b/README.md index d3c709f..981571d 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ LangDiff is a Python library that solves the hard problems of streaming structured LLM outputs to frontends. -![Diagram](./docs/diagram.png) +![Diagram](/docs/diagram.png) LangDiff provides intelligent partial parsing with granular, type-safe events as JSON structures build token by token, plus automatic JSON Patch generation for efficient frontend synchronization. Build responsive AI applications where your backend structures and frontend experiences can evolve independently. Read more about it on the [Motivation](#motivation) section. @@ -112,7 +112,7 @@ Suppose you want to generate a multi-section article with an LLM. Rather than wa you can stream the article progressively by first generating section titles as they're determined, then streaming each section's content as it's written. -![Demo Video](./docs/demo.gif) +![Demo Video](/docs/demo.gif) Start by defining model classes that specify your streaming structure: @@ -265,8 +265,8 @@ LangDiff enables you to build responsive, maintainable AI applications where the ## License -Apache-2.0. See the [LICENSE](./LICENSE) file for details. +Apache-2.0. See the [LICENSE](/LICENSE) file for details. ## Demo -See [`example.py`](./example.py) for a runnable end-to-end demo using streaming parsing and diff tracking. +See [`py/example.py`](/py/example.py) for a runnable end-to-end demo using streaming parsing and diff tracking. diff --git a/.gitignore b/py/.gitignore similarity index 100% rename from .gitignore rename to py/.gitignore diff --git a/py/README.md b/py/README.md new file mode 120000 index 0000000..32d46ee --- /dev/null +++ b/py/README.md @@ -0,0 +1 @@ +../README.md \ No newline at end of file diff --git a/docs/api/overview.md b/py/docs/api/overview.md similarity index 100% rename from docs/api/overview.md rename to py/docs/api/overview.md diff --git a/docs/api/parser.md b/py/docs/api/parser.md similarity index 100% rename from docs/api/parser.md rename to py/docs/api/parser.md diff --git a/docs/api/tracker.md b/py/docs/api/tracker.md similarity index 100% rename from docs/api/tracker.md rename to py/docs/api/tracker.md diff --git a/py/docs/diagram.png b/py/docs/diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..b16cab985c56797264cd1295eba62ba947e06cdb GIT binary patch literal 60411 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