langgraph_openai_serve 0.0.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- langgraph_openai_serve-0.0.2/.dockerignore +22 -0
- langgraph_openai_serve-0.0.2/.editorconfig +24 -0
- langgraph_openai_serve-0.0.2/.github/actions/setup-python/action.yml +21 -0
- langgraph_openai_serve-0.0.2/.github/workflows/doc_deploy.yml +27 -0
- langgraph_openai_serve-0.0.2/.github/workflows/doc_test.yml +25 -0
- langgraph_openai_serve-0.0.2/.github/workflows/docker_push.yml +35 -0
- langgraph_openai_serve-0.0.2/.github/workflows/lint.yml +22 -0
- langgraph_openai_serve-0.0.2/.github/workflows/package.yml +75 -0
- langgraph_openai_serve-0.0.2/.github/workflows/test.yml +58 -0
- langgraph_openai_serve-0.0.2/.gitignore +273 -0
- langgraph_openai_serve-0.0.2/.pre-commit-config.yaml +51 -0
- langgraph_openai_serve-0.0.2/.python-version +1 -0
- langgraph_openai_serve-0.0.2/.vscode/extensions.json +16 -0
- langgraph_openai_serve-0.0.2/.vscode/settings.json +32 -0
- langgraph_openai_serve-0.0.2/CHANGELOG.md +17 -0
- langgraph_openai_serve-0.0.2/CONTRIBUTING.md +126 -0
- langgraph_openai_serve-0.0.2/LICENSE +21 -0
- langgraph_openai_serve-0.0.2/Makefile +171 -0
- langgraph_openai_serve-0.0.2/PKG-INFO +154 -0
- langgraph_openai_serve-0.0.2/README.md +128 -0
- langgraph_openai_serve-0.0.2/demo/__init__.py +0 -0
- langgraph_openai_serve-0.0.2/demo/app.py +112 -0
- langgraph_openai_serve-0.0.2/demo/loggers/__init__.py +1 -0
- langgraph_openai_serve-0.0.2/demo/loggers/configs/__init__.py +1 -0
- langgraph_openai_serve-0.0.2/demo/loggers/configs/default.py +72 -0
- langgraph_openai_serve-0.0.2/demo/loggers/configs/uvicorn.py +53 -0
- langgraph_openai_serve-0.0.2/demo/loggers/filters.py +104 -0
- langgraph_openai_serve-0.0.2/demo/loggers/formatters.py +29 -0
- langgraph_openai_serve-0.0.2/demo/loggers/setup.py +43 -0
- langgraph_openai_serve-0.0.2/demo/placeholder.py +105 -0
- langgraph_openai_serve-0.0.2/demo/utils.py +56 -0
- langgraph_openai_serve-0.0.2/docker/Dockerfile +123 -0
- langgraph_openai_serve-0.0.2/docker/entrypoint.sh +4 -0
- langgraph_openai_serve-0.0.2/docker-compose.yml +57 -0
- langgraph_openai_serve-0.0.2/docs/explanation/architecture.md +163 -0
- langgraph_openai_serve-0.0.2/docs/explanation/index.md +9 -0
- langgraph_openai_serve-0.0.2/docs/explanation/langgraph-integration.md +236 -0
- langgraph_openai_serve-0.0.2/docs/explanation/openai-compatibility.md +237 -0
- langgraph_openai_serve-0.0.2/docs/how-to-guides/authentication.md +274 -0
- langgraph_openai_serve-0.0.2/docs/how-to-guides/docker.md +211 -0
- langgraph_openai_serve-0.0.2/docs/how-to-guides/index.md +8 -0
- langgraph_openai_serve-0.0.2/docs/index.md +41 -0
- langgraph_openai_serve-0.0.2/docs/reference.md +5 -0
- langgraph_openai_serve-0.0.2/docs/stylesheets/custom.css +67 -0
- langgraph_openai_serve-0.0.2/docs/tutorials/custom-graphs.md +178 -0
- langgraph_openai_serve-0.0.2/docs/tutorials/getting-started.md +148 -0
- langgraph_openai_serve-0.0.2/docs/tutorials/index.md +9 -0
- langgraph_openai_serve-0.0.2/docs/tutorials/makefile.md +25 -0
- langgraph_openai_serve-0.0.2/docs/tutorials/openai-clients.md +163 -0
- langgraph_openai_serve-0.0.2/mkdocs.yml +101 -0
- langgraph_openai_serve-0.0.2/notebooks/custom_api.ipynb +285 -0
- langgraph_openai_serve-0.0.2/pyproject.toml +197 -0
- langgraph_openai_serve-0.0.2/src/langgraph_openai_serve/__init__.py +10 -0
- langgraph_openai_serve-0.0.2/src/langgraph_openai_serve/api/__init__.py +0 -0
- langgraph_openai_serve-0.0.2/src/langgraph_openai_serve/api/chat/__init__.py +0 -0
- langgraph_openai_serve-0.0.2/src/langgraph_openai_serve/api/chat/service.py +188 -0
- langgraph_openai_serve-0.0.2/src/langgraph_openai_serve/api/chat/views.py +51 -0
- langgraph_openai_serve-0.0.2/src/langgraph_openai_serve/api/health/__init__.py +0 -0
- langgraph_openai_serve-0.0.2/src/langgraph_openai_serve/api/health/views.py +11 -0
- langgraph_openai_serve-0.0.2/src/langgraph_openai_serve/api/models/__init__.py +0 -0
- langgraph_openai_serve-0.0.2/src/langgraph_openai_serve/api/models/service.py +57 -0
- langgraph_openai_serve-0.0.2/src/langgraph_openai_serve/api/models/views.py +24 -0
- langgraph_openai_serve-0.0.2/src/langgraph_openai_serve/graph/__init__.py +1 -0
- langgraph_openai_serve-0.0.2/src/langgraph_openai_serve/graph/runner.py +191 -0
- langgraph_openai_serve-0.0.2/src/langgraph_openai_serve/graph/simple_graph.py +89 -0
- langgraph_openai_serve-0.0.2/src/langgraph_openai_serve/openai_server.py +102 -0
- langgraph_openai_serve-0.0.2/src/langgraph_openai_serve/schemas/__init__.py +1 -0
- langgraph_openai_serve-0.0.2/src/langgraph_openai_serve/schemas/openai_schema.py +203 -0
- langgraph_openai_serve-0.0.2/src/langgraph_openai_serve/utils/__init__.py +1 -0
- langgraph_openai_serve-0.0.2/src/langgraph_openai_serve/utils/message.py +29 -0
- langgraph_openai_serve-0.0.2/templates/google-notypes.mustache +38 -0
- langgraph_openai_serve-0.0.2/templates/google.mustache +37 -0
- langgraph_openai_serve-0.0.2/templates/numpy-notypes.mustache +44 -0
- langgraph_openai_serve-0.0.2/templates/numpy.mustache +46 -0
- langgraph_openai_serve-0.0.2/templates/tutorial.md +68 -0
- langgraph_openai_serve-0.0.2/tests/__init__.py +0 -0
- langgraph_openai_serve-0.0.2/tests/utils/test_message.py +104 -0
- langgraph_openai_serve-0.0.2/uv.lock +2037 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# http://editorconfig.org
|
|
2
|
+
|
|
3
|
+
root = true
|
|
4
|
+
|
|
5
|
+
[*]
|
|
6
|
+
indent_style = space
|
|
7
|
+
indent_size = 4
|
|
8
|
+
trim_trailing_whitespace = true
|
|
9
|
+
insert_final_newline = true
|
|
10
|
+
charset = utf-8
|
|
11
|
+
end_of_line = lf
|
|
12
|
+
|
|
13
|
+
[*.bat]
|
|
14
|
+
indent_style = tab
|
|
15
|
+
end_of_line = crlf
|
|
16
|
+
|
|
17
|
+
[LICENSE]
|
|
18
|
+
insert_final_newline = false
|
|
19
|
+
|
|
20
|
+
[Makefile]
|
|
21
|
+
indent_style = tab
|
|
22
|
+
|
|
23
|
+
[*.{yml,yaml,json}]
|
|
24
|
+
indent_size = 2
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
name: "Setup Python Environment"
|
|
2
|
+
description: "Set up Python environment for the given Python version"
|
|
3
|
+
|
|
4
|
+
runs:
|
|
5
|
+
using: "composite"
|
|
6
|
+
steps:
|
|
7
|
+
- name: Install uv
|
|
8
|
+
uses: astral-sh/setup-uv@v5
|
|
9
|
+
with:
|
|
10
|
+
version: "latest"
|
|
11
|
+
enable-cache: "true"
|
|
12
|
+
cache-suffix: "UV_PYTHON"
|
|
13
|
+
|
|
14
|
+
- name: Install Python
|
|
15
|
+
run: uv python install
|
|
16
|
+
shell: bash
|
|
17
|
+
|
|
18
|
+
- name: Create virtual environment
|
|
19
|
+
run: |
|
|
20
|
+
uv venv
|
|
21
|
+
shell: bash
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
name: Deploy Docs to GitHub Pages
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: write
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
doc-deploy:
|
|
13
|
+
runs-on: ubuntu-22.04
|
|
14
|
+
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v4
|
|
17
|
+
|
|
18
|
+
- name: Install the latest version of uv
|
|
19
|
+
uses: astral-sh/setup-uv@v5
|
|
20
|
+
|
|
21
|
+
- name: Install the Project with Test Dependencies
|
|
22
|
+
run: |
|
|
23
|
+
uv sync --frozen --only-group doc
|
|
24
|
+
|
|
25
|
+
- name: Deploy the documentation to GitHub Pages
|
|
26
|
+
run: |
|
|
27
|
+
uv run mkdocs gh-deploy --force
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
name: Docs Test Build
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
types: [opened, synchronize, reopened]
|
|
6
|
+
push:
|
|
7
|
+
branches: [main]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
doc-check:
|
|
11
|
+
runs-on: ubuntu-22.04
|
|
12
|
+
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@v4
|
|
15
|
+
|
|
16
|
+
- name: Install the latest version of uv
|
|
17
|
+
uses: astral-sh/setup-uv@v5
|
|
18
|
+
|
|
19
|
+
- name: Install the Project with Test Dependencies
|
|
20
|
+
run: |
|
|
21
|
+
uv sync --frozen --only-group doc
|
|
22
|
+
|
|
23
|
+
- name: Test the doc build
|
|
24
|
+
run: |
|
|
25
|
+
make doc-build
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
name: Build and publish a Docker image to ghcr.io
|
|
2
|
+
on:
|
|
3
|
+
|
|
4
|
+
# publish on releases, e.g. v2.1.13 (image tagged as "2.1.13" - "v" prefix is removed)
|
|
5
|
+
# release:
|
|
6
|
+
# types: [ published ]
|
|
7
|
+
|
|
8
|
+
# publish on pushes to the specific branch (image tagged as "latest")
|
|
9
|
+
push:
|
|
10
|
+
branches:
|
|
11
|
+
# - main
|
|
12
|
+
- dummy-branch
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
docker_publish:
|
|
16
|
+
runs-on: "ubuntu-22.04"
|
|
17
|
+
permissions:
|
|
18
|
+
contents: read
|
|
19
|
+
packages: write
|
|
20
|
+
|
|
21
|
+
steps:
|
|
22
|
+
- uses: actions/checkout@v4
|
|
23
|
+
|
|
24
|
+
# https://github.com/marketplace/actions/push-to-ghcr
|
|
25
|
+
- name: Build and publish a Docker image for ${{ github.repository }}
|
|
26
|
+
uses: macbre/push-to-ghcr@master
|
|
27
|
+
with:
|
|
28
|
+
image_name: ${{ github.repository }} # it will be lowercased internally
|
|
29
|
+
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
30
|
+
dockerfile: ./docker/Dockerfile
|
|
31
|
+
# optionally push to the Docker Hub (docker.io)
|
|
32
|
+
# docker_io_token: ${{ secrets.DOCKER_IO_ACCESS_TOKEN }} # see https://hub.docker.com/settings/security
|
|
33
|
+
# customize the username to be used when pushing to the Docker Hub
|
|
34
|
+
# docker_io_user: foobar # see https://github.com/macbre/push-to-ghcr/issues/14
|
|
35
|
+
#
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
name: Lint the module
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
pull_request:
|
|
8
|
+
branches:
|
|
9
|
+
- main
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
lint:
|
|
13
|
+
runs-on: ubuntu-22.04
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v4
|
|
16
|
+
|
|
17
|
+
- name: Lint Dependency Installation
|
|
18
|
+
uses: astral-sh/ruff-action@v3
|
|
19
|
+
with:
|
|
20
|
+
src: ./src/langgraph_openai_serve
|
|
21
|
+
- run: ruff format --check --diff
|
|
22
|
+
- run: ruff check
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
name: Publish to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types:
|
|
6
|
+
- created
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
extract-version:
|
|
10
|
+
name: Extract version from release tag
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
outputs:
|
|
13
|
+
version: ${{ steps.get-version.outputs.version }}
|
|
14
|
+
steps:
|
|
15
|
+
- name: Extract version from tag
|
|
16
|
+
id: get-version
|
|
17
|
+
run: |
|
|
18
|
+
TAG_NAME=${{ github.event.release.tag_name }}
|
|
19
|
+
|
|
20
|
+
if [[ ! $TAG_NAME =~ ^v([0-9]+\.[0-9]+\.[0-9]+)$ ]]; then
|
|
21
|
+
echo "The tag $TAG_NAME is not in the expected format 'v<MAJOR>.<MINOR>.<PATCH>'"
|
|
22
|
+
exit 1
|
|
23
|
+
fi
|
|
24
|
+
|
|
25
|
+
VERSION=${TAG_NAME#v}
|
|
26
|
+
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
|
27
|
+
echo "Extracted version: $VERSION"
|
|
28
|
+
|
|
29
|
+
build-sdist:
|
|
30
|
+
name: Build source distribution
|
|
31
|
+
runs-on: ubuntu-latest
|
|
32
|
+
needs: [extract-version]
|
|
33
|
+
steps:
|
|
34
|
+
- name: Checkout code
|
|
35
|
+
uses: actions/checkout@v4
|
|
36
|
+
|
|
37
|
+
- name: Install the latest version of uv
|
|
38
|
+
uses: astral-sh/setup-uv@v5
|
|
39
|
+
|
|
40
|
+
- name: Update version in pyproject.toml
|
|
41
|
+
run: |
|
|
42
|
+
VERSION=${{ needs.extract-version.outputs.version }}
|
|
43
|
+
echo "Using version: $VERSION"
|
|
44
|
+
|
|
45
|
+
# Update pyproject.toml with the version
|
|
46
|
+
sed -i "s/version = \"[^\"]*\"/version = \"$VERSION\"/" pyproject.toml
|
|
47
|
+
|
|
48
|
+
- name: Build source distribution
|
|
49
|
+
run: uv build --sdist --out-dir dist
|
|
50
|
+
|
|
51
|
+
- name: Upload source distribution artifact
|
|
52
|
+
uses: actions/upload-artifact@v4
|
|
53
|
+
with:
|
|
54
|
+
name: sdist
|
|
55
|
+
path: dist/*.tar.gz
|
|
56
|
+
retention-days: 1
|
|
57
|
+
|
|
58
|
+
publish:
|
|
59
|
+
name: Publish to PyPI
|
|
60
|
+
needs: [extract-version, build-sdist]
|
|
61
|
+
runs-on: ubuntu-latest
|
|
62
|
+
steps:
|
|
63
|
+
- name: Download all artifacts
|
|
64
|
+
uses: actions/download-artifact@v4
|
|
65
|
+
with:
|
|
66
|
+
path: dist
|
|
67
|
+
merge-multiple: true
|
|
68
|
+
|
|
69
|
+
- name: Install the latest version of uv
|
|
70
|
+
uses: astral-sh/setup-uv@v5
|
|
71
|
+
|
|
72
|
+
- name: Publish to PyPI
|
|
73
|
+
env:
|
|
74
|
+
UV_PUBLISH_TOKEN: ${{ secrets.UV_PUBLISH_TOKEN }}
|
|
75
|
+
run: uv publish dist/*
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
name: Test the module
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
pull_request:
|
|
8
|
+
branches:
|
|
9
|
+
- main
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
test_matrix:
|
|
13
|
+
strategy:
|
|
14
|
+
matrix:
|
|
15
|
+
python-version: ['3.11', '3.12']
|
|
16
|
+
runs-on: ubuntu-22.04
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v4
|
|
19
|
+
|
|
20
|
+
- name: Disable Logger Outputs
|
|
21
|
+
run: |
|
|
22
|
+
sed -i "s/log_cli = true/log_cli = false/" pyproject.toml
|
|
23
|
+
|
|
24
|
+
- name: Install the latest version of uv and set the python version
|
|
25
|
+
uses: astral-sh/setup-uv@v5
|
|
26
|
+
with:
|
|
27
|
+
python-version: ${{ matrix.python-version }}
|
|
28
|
+
|
|
29
|
+
- name: Install the Project with Test Dependencies
|
|
30
|
+
run: |
|
|
31
|
+
uv sync --frozen --only-group test
|
|
32
|
+
|
|
33
|
+
- name: Test the Project
|
|
34
|
+
run: |
|
|
35
|
+
make test-all-parallel
|
|
36
|
+
|
|
37
|
+
# test-single:
|
|
38
|
+
# runs-on: ubuntu-22.04
|
|
39
|
+
# steps:
|
|
40
|
+
# - uses: actions/checkout@v4
|
|
41
|
+
|
|
42
|
+
# - name: Disable Logger Outputs
|
|
43
|
+
# run: |
|
|
44
|
+
# sed -i "s/log_cli = true/log_cli = false/" pyproject.toml
|
|
45
|
+
|
|
46
|
+
# - name: Set up python environment
|
|
47
|
+
# uses: ./.github/actions/setup-python
|
|
48
|
+
|
|
49
|
+
# - name: Install the Project with Test Dependencies
|
|
50
|
+
# run: |
|
|
51
|
+
# uv sync --frozen --only-group test
|
|
52
|
+
|
|
53
|
+
# - name: Test the Project
|
|
54
|
+
# run: |
|
|
55
|
+
# make test-all-parallel
|
|
56
|
+
|
|
57
|
+
# # - name: Publish code coverage
|
|
58
|
+
# # uses: codecov/codecov-action@v3
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
|
|
2
|
+
# Created by https://www.toptal.com/developers/gitignore/api/pycharm+all,visualstudiocode,python,jupyternotebooks
|
|
3
|
+
# Edit at https://www.toptal.com/developers/gitignore?templates=pycharm+all,visualstudiocode,python,jupyternotebooks
|
|
4
|
+
|
|
5
|
+
### JupyterNotebooks ###
|
|
6
|
+
# gitignore template for Jupyter Notebooks
|
|
7
|
+
# website: http://jupyter.org/
|
|
8
|
+
|
|
9
|
+
.ipynb_checkpoints
|
|
10
|
+
*/.ipynb_checkpoints/*
|
|
11
|
+
|
|
12
|
+
# IPython
|
|
13
|
+
profile_default/
|
|
14
|
+
ipython_config.py
|
|
15
|
+
|
|
16
|
+
# Remove previous ipynb_checkpoints
|
|
17
|
+
# git rm -r .ipynb_checkpoints/
|
|
18
|
+
|
|
19
|
+
### PyCharm+all ###
|
|
20
|
+
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
|
|
21
|
+
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
|
22
|
+
|
|
23
|
+
# User-specific stuff
|
|
24
|
+
.idea/**/workspace.xml
|
|
25
|
+
.idea/**/tasks.xml
|
|
26
|
+
.idea/**/usage.statistics.xml
|
|
27
|
+
.idea/**/dictionaries
|
|
28
|
+
.idea/**/shelf
|
|
29
|
+
|
|
30
|
+
# AWS User-specific
|
|
31
|
+
.idea/**/aws.xml
|
|
32
|
+
|
|
33
|
+
# Generated files
|
|
34
|
+
.idea/**/contentModel.xml
|
|
35
|
+
|
|
36
|
+
# Sensitive or high-churn files
|
|
37
|
+
.idea/**/dataSources/
|
|
38
|
+
.idea/**/dataSources.ids
|
|
39
|
+
.idea/**/dataSources.local.xml
|
|
40
|
+
.idea/**/sqlDataSources.xml
|
|
41
|
+
.idea/**/dynamic.xml
|
|
42
|
+
.idea/**/uiDesigner.xml
|
|
43
|
+
.idea/**/dbnavigator.xml
|
|
44
|
+
|
|
45
|
+
# Gradle
|
|
46
|
+
.idea/**/gradle.xml
|
|
47
|
+
.idea/**/libraries
|
|
48
|
+
|
|
49
|
+
# Gradle and Maven with auto-import
|
|
50
|
+
# When using Gradle or Maven with auto-import, you should exclude module files,
|
|
51
|
+
# since they will be recreated, and may cause churn. Uncomment if using
|
|
52
|
+
# auto-import.
|
|
53
|
+
# .idea/artifacts
|
|
54
|
+
# .idea/compiler.xml
|
|
55
|
+
# .idea/jarRepositories.xml
|
|
56
|
+
# .idea/modules.xml
|
|
57
|
+
# .idea/*.iml
|
|
58
|
+
# .idea/modules
|
|
59
|
+
# *.iml
|
|
60
|
+
# *.ipr
|
|
61
|
+
|
|
62
|
+
# CMake
|
|
63
|
+
cmake-build-*/
|
|
64
|
+
|
|
65
|
+
# Mongo Explorer plugin
|
|
66
|
+
.idea/**/mongoSettings.xml
|
|
67
|
+
|
|
68
|
+
# File-based project format
|
|
69
|
+
*.iws
|
|
70
|
+
|
|
71
|
+
# IntelliJ
|
|
72
|
+
out/
|
|
73
|
+
|
|
74
|
+
# mpeltonen/sbt-idea plugin
|
|
75
|
+
.idea_modules/
|
|
76
|
+
|
|
77
|
+
# JIRA plugin
|
|
78
|
+
atlassian-ide-plugin.xml
|
|
79
|
+
|
|
80
|
+
# Cursive Clojure plugin
|
|
81
|
+
.idea/replstate.xml
|
|
82
|
+
|
|
83
|
+
# Crashlytics plugin (for Android Studio and IntelliJ)
|
|
84
|
+
com_crashlytics_export_strings.xml
|
|
85
|
+
crashlytics.properties
|
|
86
|
+
crashlytics-build.properties
|
|
87
|
+
fabric.properties
|
|
88
|
+
|
|
89
|
+
# Editor-based Rest Client
|
|
90
|
+
.idea/httpRequests
|
|
91
|
+
|
|
92
|
+
# Android studio 3.1+ serialized cache file
|
|
93
|
+
.idea/caches/build_file_checksums.ser
|
|
94
|
+
|
|
95
|
+
### PyCharm+all Patch ###
|
|
96
|
+
# Ignores the whole .idea folder and all .iml files
|
|
97
|
+
# See https://github.com/joeblau/gitignore.io/issues/186 and https://github.com/joeblau/gitignore.io/issues/360
|
|
98
|
+
|
|
99
|
+
.idea/
|
|
100
|
+
|
|
101
|
+
# Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023
|
|
102
|
+
|
|
103
|
+
*.iml
|
|
104
|
+
modules.xml
|
|
105
|
+
.idea/misc.xml
|
|
106
|
+
*.ipr
|
|
107
|
+
|
|
108
|
+
# Sonarlint plugin
|
|
109
|
+
.idea/sonarlint
|
|
110
|
+
|
|
111
|
+
### Python ###
|
|
112
|
+
# Byte-compiled / optimized / DLL files
|
|
113
|
+
__pycache__/
|
|
114
|
+
*.py[cod]
|
|
115
|
+
*$py.class
|
|
116
|
+
|
|
117
|
+
# C extensions
|
|
118
|
+
*.so
|
|
119
|
+
|
|
120
|
+
# Distribution / packaging
|
|
121
|
+
.Python
|
|
122
|
+
build/
|
|
123
|
+
develop-eggs/
|
|
124
|
+
dist/
|
|
125
|
+
downloads/
|
|
126
|
+
eggs/
|
|
127
|
+
.eggs/
|
|
128
|
+
lib/
|
|
129
|
+
lib64/
|
|
130
|
+
parts/
|
|
131
|
+
sdist/
|
|
132
|
+
var/
|
|
133
|
+
wheels/
|
|
134
|
+
share/python-wheels/
|
|
135
|
+
*.egg-info/
|
|
136
|
+
.installed.cfg
|
|
137
|
+
*.egg
|
|
138
|
+
MANIFEST
|
|
139
|
+
|
|
140
|
+
# PyInstaller
|
|
141
|
+
# Usually these files are written by a python script from a template
|
|
142
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
143
|
+
*.manifest
|
|
144
|
+
*.spec
|
|
145
|
+
|
|
146
|
+
# Installer logs
|
|
147
|
+
pip-log.txt
|
|
148
|
+
pip-delete-this-directory.txt
|
|
149
|
+
|
|
150
|
+
# Unit test / coverage reports
|
|
151
|
+
htmlcov/
|
|
152
|
+
.tox/
|
|
153
|
+
.nox/
|
|
154
|
+
.coverage
|
|
155
|
+
.coverage.*
|
|
156
|
+
.cache
|
|
157
|
+
nosetests.xml
|
|
158
|
+
coverage.xml
|
|
159
|
+
*.cover
|
|
160
|
+
*.py,cover
|
|
161
|
+
.hypothesis/
|
|
162
|
+
.pytest_cache/
|
|
163
|
+
cover/
|
|
164
|
+
|
|
165
|
+
# Translations
|
|
166
|
+
*.mo
|
|
167
|
+
*.pot
|
|
168
|
+
|
|
169
|
+
# Django stuff:
|
|
170
|
+
*.log
|
|
171
|
+
local_settings.py
|
|
172
|
+
db.sqlite3
|
|
173
|
+
db.sqlite3-journal
|
|
174
|
+
|
|
175
|
+
# Flask stuff:
|
|
176
|
+
instance/
|
|
177
|
+
.webassets-cache
|
|
178
|
+
|
|
179
|
+
# Scrapy stuff:
|
|
180
|
+
.scrapy
|
|
181
|
+
|
|
182
|
+
# Sphinx documentation
|
|
183
|
+
docs/_build/
|
|
184
|
+
|
|
185
|
+
# PyBuilder
|
|
186
|
+
.pybuilder/
|
|
187
|
+
target/
|
|
188
|
+
|
|
189
|
+
# Jupyter Notebook
|
|
190
|
+
|
|
191
|
+
# IPython
|
|
192
|
+
|
|
193
|
+
# pyenv
|
|
194
|
+
# For a library or package, you might want to ignore these files since the code is
|
|
195
|
+
# intended to run in multiple environments; otherwise, check them in:
|
|
196
|
+
# .python-version
|
|
197
|
+
|
|
198
|
+
# pipenv
|
|
199
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
200
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
201
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
202
|
+
# install all needed dependencies.
|
|
203
|
+
#Pipfile.lock
|
|
204
|
+
|
|
205
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
|
|
206
|
+
__pypackages__/
|
|
207
|
+
|
|
208
|
+
# Celery stuff
|
|
209
|
+
celerybeat-schedule
|
|
210
|
+
celerybeat.pid
|
|
211
|
+
|
|
212
|
+
# SageMath parsed files
|
|
213
|
+
*.sage.py
|
|
214
|
+
|
|
215
|
+
# Environments
|
|
216
|
+
.env
|
|
217
|
+
.venv
|
|
218
|
+
env/
|
|
219
|
+
venv/
|
|
220
|
+
ENV/
|
|
221
|
+
env.bak/
|
|
222
|
+
venv.bak/
|
|
223
|
+
|
|
224
|
+
# Spyder project settings
|
|
225
|
+
.spyderproject
|
|
226
|
+
.spyproject
|
|
227
|
+
|
|
228
|
+
# Rope project settings
|
|
229
|
+
.ropeproject
|
|
230
|
+
|
|
231
|
+
# mkdocs documentation
|
|
232
|
+
/site
|
|
233
|
+
|
|
234
|
+
# mypy
|
|
235
|
+
.mypy_cache/
|
|
236
|
+
.dmypy.json
|
|
237
|
+
dmypy.json
|
|
238
|
+
|
|
239
|
+
# Pyre type checker
|
|
240
|
+
.pyre/
|
|
241
|
+
|
|
242
|
+
# pytype static type analyzer
|
|
243
|
+
.pytype/
|
|
244
|
+
|
|
245
|
+
# Cython debug symbols
|
|
246
|
+
cython_debug/
|
|
247
|
+
|
|
248
|
+
### VisualStudioCode ###
|
|
249
|
+
.vscode/*
|
|
250
|
+
!.vscode/settings.json
|
|
251
|
+
!.vscode/tasks.json
|
|
252
|
+
!.vscode/launch.json
|
|
253
|
+
!.vscode/extensions.json
|
|
254
|
+
*.code-workspace
|
|
255
|
+
|
|
256
|
+
# Local History for Visual Studio Code
|
|
257
|
+
.history/
|
|
258
|
+
|
|
259
|
+
### VisualStudioCode Patch ###
|
|
260
|
+
# Ignore all local history of files
|
|
261
|
+
.history
|
|
262
|
+
.ionide
|
|
263
|
+
|
|
264
|
+
# End of https://www.toptal.com/developers/gitignore/api/pycharm+all,visualstudiocode,python,jupyternotebooks
|
|
265
|
+
|
|
266
|
+
# Custom ignores
|
|
267
|
+
|
|
268
|
+
/.ruff_cache/
|
|
269
|
+
public
|
|
270
|
+
|
|
271
|
+
# Scalene related
|
|
272
|
+
profile.*
|
|
273
|
+
docker/volumes
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# NOTE: exclude
|
|
2
|
+
# Single file/folder -> exclude: examples/.*ipynb
|
|
3
|
+
# Multiple file/folder -> exclude: (^.*<folder_name>/|examples/.*ipynb)
|
|
4
|
+
|
|
5
|
+
repos:
|
|
6
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
7
|
+
rev: v4.4.0
|
|
8
|
+
hooks:
|
|
9
|
+
- id: check-case-conflict
|
|
10
|
+
- id: check-merge-conflict
|
|
11
|
+
# - id: check-symlinks
|
|
12
|
+
# - id: check-json
|
|
13
|
+
- id: check-toml
|
|
14
|
+
- id: check-yaml
|
|
15
|
+
- id: debug-statements
|
|
16
|
+
- id: end-of-file-fixer
|
|
17
|
+
- id: trailing-whitespace
|
|
18
|
+
- id: mixed-line-ending
|
|
19
|
+
args: ["--fix=lf"]
|
|
20
|
+
description: Forces to replace line ending by the UNIX 'lf' character.
|
|
21
|
+
- id: check-added-large-files
|
|
22
|
+
args: ["--maxkb=1000"]
|
|
23
|
+
|
|
24
|
+
- repo: https://github.com/astral-sh/uv-pre-commit
|
|
25
|
+
rev: 0.6.2
|
|
26
|
+
hooks:
|
|
27
|
+
# Update the uv lockfile
|
|
28
|
+
- id: uv-lock
|
|
29
|
+
|
|
30
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
31
|
+
rev: v0.11.6
|
|
32
|
+
hooks:
|
|
33
|
+
# Run the Ruff linter.
|
|
34
|
+
- id: ruff
|
|
35
|
+
args: [--exit-non-zero-on-fix, --config=pyproject.toml]
|
|
36
|
+
# Run the Ruff formatter.
|
|
37
|
+
- id: ruff-format
|
|
38
|
+
args: [--config=pyproject.toml]
|
|
39
|
+
|
|
40
|
+
# NOTE: It doesn't use pyproject.toml configs. We might enable it the future.
|
|
41
|
+
# - repo: https://github.com/pre-commit/mirrors-mypy
|
|
42
|
+
# rev: v0.991
|
|
43
|
+
# hooks:
|
|
44
|
+
# - id: mypy
|
|
45
|
+
# files: langgraph_openai_serve
|
|
46
|
+
# additional_dependencies: [types-PyYAML, rich]
|
|
47
|
+
# args: [
|
|
48
|
+
# "--strict",
|
|
49
|
+
# # "--config-file=pyproject.toml",
|
|
50
|
+
# # "--ignore-missing-imports",
|
|
51
|
+
# ]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.11
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"recommendations": [
|
|
3
|
+
"GitLab.gitlab-workflow",
|
|
4
|
+
"bungcip.better-toml",
|
|
5
|
+
"EditorConfig.EditorConfig",
|
|
6
|
+
"redhat.vscode-yaml",
|
|
7
|
+
"ms-python.python",
|
|
8
|
+
"ms-python.vscode-pylance",
|
|
9
|
+
"njpwerner.autodocstring",
|
|
10
|
+
"charliermarsh.ruff",
|
|
11
|
+
// "ms-python.mypy-type-checker",
|
|
12
|
+
],
|
|
13
|
+
"unwantedRecommendations": [
|
|
14
|
+
"ms-python.isort"
|
|
15
|
+
]
|
|
16
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"[python]": {
|
|
3
|
+
"editor.formatOnSave": true,
|
|
4
|
+
"editor.defaultFormatter": "charliermarsh.ruff",
|
|
5
|
+
"editor.codeActionsOnSave": {
|
|
6
|
+
// "source.fixAll": "always",
|
|
7
|
+
"source.organizeImports": "explicit",
|
|
8
|
+
},
|
|
9
|
+
"editor.rulers": [
|
|
10
|
+
{
|
|
11
|
+
"column": 88,
|
|
12
|
+
"color": "#57565651"
|
|
13
|
+
},
|
|
14
|
+
],
|
|
15
|
+
},
|
|
16
|
+
"python.languageServer": "Pylance",
|
|
17
|
+
// "python.analysis.autoImportCompletions": true,
|
|
18
|
+
"ruff.nativeServer": "on",
|
|
19
|
+
"autoDocstring.generateDocstringOnEnter": true,
|
|
20
|
+
"autoDocstring.docstringFormat": "google",
|
|
21
|
+
"autoDocstring.customTemplatePath": "templates/google-notypes.mustache",
|
|
22
|
+
"autoDocstring.includeExtendedSummary": false,
|
|
23
|
+
"python.testing.unittestEnabled": false,
|
|
24
|
+
"python.testing.pytestEnabled": true,
|
|
25
|
+
// "python.testing.pytestArgs": [],
|
|
26
|
+
"notebook.formatOnSave.enabled": true,
|
|
27
|
+
"notebook.codeActionsOnSave": {
|
|
28
|
+
// "notebook.source.fixAll": "always",
|
|
29
|
+
"notebook.source.organizeImports": "explicit",
|
|
30
|
+
},
|
|
31
|
+
"evenBetterToml.formatter.reorderKeys": true,
|
|
32
|
+
}
|