1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5
6 # build-system
7 poetry-core,
8
9 # dependencies
10 azure-identity,
11 langchain-core,
12 langchain-openai,
13
14 # tests
15 freezegun,
16 lark,
17 pandas,
18 pytest-asyncio,
19 pytest-mock,
20 pytest-socket,
21 pytestCheckHook,
22 requests-mock,
23 responses,
24 syrupy,
25 toml,
26
27 # passthru
28 gitUpdater,
29}:
30
31buildPythonPackage rec {
32 pname = "langchain-azure-dynamic-sessions";
33 version = "0.2.0";
34 pyproject = true;
35
36 src = fetchFromGitHub {
37 owner = "langchain-ai";
38 repo = "langchain";
39 tag = "langchain-azure-dynamic-sessions==${version}";
40 hash = "sha256-ACR+JzKcnYXROGOQe6DlZeqcYd40KlesgXSUOybOT20=";
41 };
42
43 sourceRoot = "${src.name}/libs/partners/azure-dynamic-sessions";
44
45 build-system = [ poetry-core ];
46
47 pythonRelaxDeps = [
48 # Each component release requests the exact latest core.
49 # That prevents us from updating individual components.
50 "langchain-core"
51 ];
52
53 dependencies = [
54 azure-identity
55 langchain-core
56 langchain-openai
57 ];
58
59 nativeCheckInputs = [
60 freezegun
61 lark
62 pandas
63 pytest-asyncio
64 pytest-mock
65 pytest-socket
66 pytestCheckHook
67 requests-mock
68 responses
69 syrupy
70 toml
71 ];
72
73 enabledTestPaths = [ "tests/unit_tests" ];
74
75 pythonImportsCheck = [ "langchain_azure_dynamic_sessions" ];
76
77 passthru.updateScript = gitUpdater {
78 rev-prefix = "langchain-azure-dynamic-sessions==";
79 };
80
81 meta = {
82 description = "Integration package connecting Azure Container Apps dynamic sessions and LangChain";
83 homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/partners/azure-dynamic-sessions";
84 changelog = "https://github.com/langchain-ai/langchain/releases/tag/${src.tag}";
85 license = lib.licenses.mit;
86 maintainers = with lib.maintainers; [
87 natsukium
88 sarahec
89 ];
90 };
91}