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-tgvoOSr4tpi+tFBan+kw8FZUfUJHcQXv9e1nyeGP0so=";
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 = {
78 # python updater script sets the wrong tag
79 skipBulkUpdate = true;
80 updateScript = gitUpdater {
81 rev-prefix = "langchain-azure-dynamic-sessions==";
82 };
83 };
84
85 meta = {
86 description = "Integration package connecting Azure Container Apps dynamic sessions and LangChain";
87 homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/partners/azure-dynamic-sessions";
88 changelog = "https://github.com/langchain-ai/langchain/releases/tag/${src.tag}";
89 license = lib.licenses.mit;
90 maintainers = with lib.maintainers; [
91 natsukium
92 sarahec
93 ];
94 };
95}