-
Notifications
You must be signed in to change notification settings - Fork 16.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' into bq-vector-search-usage-tracking
- Loading branch information
Showing
644 changed files
with
21,715 additions
and
5,629 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,20 +1,24 @@ | ||
<!-- Thank you for contributing to LangChain! | ||
Thank you for contributing to LangChain! | ||
|
||
Please title your PR "<package>: <description>", where <package> is whichever of langchain, community, core, experimental, etc. is being modified. | ||
Checklist: | ||
|
||
Replace this entire comment with: | ||
- **Description:** a description of the change, | ||
- **Issue:** the issue # it fixes if applicable, | ||
- **Dependencies:** any dependencies required for this change, | ||
- **Twitter handle:** we announce bigger features on Twitter. If your PR gets announced, and you'd like a mention, we'll gladly shout you out! | ||
Please make sure your PR is passing linting and testing before submitting. Run `make format`, `make lint` and `make test` from the root of the package you've modified to check this locally. | ||
See contribution guidelines for more information on how to write/run tests, lint, etc: https://python.langchain.com/docs/contributing/ | ||
If you're adding a new integration, please include: | ||
- [ ] PR title: Please title your PR "package: description", where "package" is whichever of langchain, community, core, experimental, etc. is being modified. Use "docs: ..." for purely docs changes, "templates: ..." for template changes, "infra: ..." for CI changes. | ||
- Example: "community: add foobar LLM" | ||
- [ ] PR message: **Delete this entire template message** and replace it with the following bulleted list | ||
- **Description:** a description of the change | ||
- **Issue:** the issue # it fixes, if applicable | ||
- **Dependencies:** any dependencies required for this change | ||
- **Twitter handle:** if your PR gets announced, and you'd like a mention, we'll gladly shout you out! | ||
- [ ] Pass lint and test: Run `make format`, `make lint` and `make test` from the root of the package(s) you've modified to check that you're passing lint and testing. See contribution guidelines for more information on how to write/run tests, lint, etc: https://python.langchain.com/docs/contributing/ | ||
- [ ] Add tests and docs: If you're adding a new integration, please include | ||
1. a test for the integration, preferably unit tests that do not rely on network access, | ||
2. an example notebook showing its use. It lives in `docs/docs/integrations` directory. | ||
|
||
If no one reviews your PR within a few days, please @-mention one of @baskaryan, @eyurtsev, @hwchase17. | ||
--> | ||
Additional guidelines: | ||
- Make sure optional dependencies are imported within a function. | ||
- Please do not add dependencies to pyproject.toml files (even optional ones) unless they are required for unit tests. | ||
- Most PRs should not touch more than one package. | ||
- Changes should be backwards compatible. | ||
- If you are adding something to community, do not re-import it in langchain. | ||
|
||
If no one reviews your PR within a few days, please @-mention one of @baskaryan, @efriis, @eyurtsev, @hwchase17. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
import sys | ||
|
||
import tomllib | ||
from packaging.version import parse as parse_version | ||
import re | ||
|
||
MIN_VERSION_LIBS = ["langchain-core", "langchain-community", "langchain"] | ||
|
||
|
||
def get_min_version(version: str) -> str: | ||
# case ^x.x.x | ||
_match = re.match(r"^\^(\d+(?:\.\d+){0,2})$", version) | ||
if _match: | ||
return _match.group(1) | ||
|
||
# case >=x.x.x,<y.y.y | ||
_match = re.match(r"^>=(\d+(?:\.\d+){0,2}),<(\d+(?:\.\d+){0,2})$", version) | ||
if _match: | ||
_min = _match.group(1) | ||
_max = _match.group(2) | ||
assert parse_version(_min) < parse_version(_max) | ||
return _min | ||
|
||
# case x.x.x | ||
_match = re.match(r"^(\d+(?:\.\d+){0,2})$", version) | ||
if _match: | ||
return _match.group(1) | ||
|
||
raise ValueError(f"Unrecognized version format: {version}") | ||
|
||
|
||
def get_min_version_from_toml(toml_path: str): | ||
# Parse the TOML file | ||
with open(toml_path, "rb") as file: | ||
toml_data = tomllib.load(file) | ||
|
||
# Get the dependencies from tool.poetry.dependencies | ||
dependencies = toml_data["tool"]["poetry"]["dependencies"] | ||
|
||
# Initialize a dictionary to store the minimum versions | ||
min_versions = {} | ||
|
||
# Iterate over the libs in MIN_VERSION_LIBS | ||
for lib in MIN_VERSION_LIBS: | ||
# Check if the lib is present in the dependencies | ||
if lib in dependencies: | ||
# Get the version string | ||
version_string = dependencies[lib] | ||
|
||
# Use parse_version to get the minimum supported version from version_string | ||
min_version = get_min_version(version_string) | ||
|
||
# Store the minimum version in the min_versions dictionary | ||
min_versions[lib] = min_version | ||
|
||
return min_versions | ||
|
||
|
||
# Get the TOML file path from the command line argument | ||
toml_file = sys.argv[1] | ||
|
||
# Call the function to get the minimum versions | ||
min_versions = get_min_version_from_toml(toml_file) | ||
|
||
print( | ||
" ".join([f"{lib}=={version}" for lib, version in min_versions.items()]) | ||
) # noqa: T201 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.