Skip to content

Commit dc342d2

Browse files
authored
Support using the SDK on Python 3.10 (#41)
The only missing feature is the truncation of exception tracebacks at the SDK boundary. Note: supporting Python 3.9 isn't feasible due to the extensive use of pattern matching in the SDK implementation
1 parent 27f1b0b commit dc342d2

23 files changed

+401
-198
lines changed

.github/workflows/test.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ jobs:
3535
runs-on: ${{ matrix.os }}
3636
strategy:
3737
fail-fast: false # Always report results for all targets
38-
max-parallel: 6
38+
max-parallel: 8
3939
matrix:
40-
python-version: [3.11, 3.12, 3.13]
40+
python-version: ["3.10", "3.11", "3.12", "3.13"]
4141
# There's no platform specific SDK code, but explicitly check Windows anyway
4242
os: [ubuntu-20.04, windows-2019]
4343

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ in a dedicated [documentation repo](https://github.com/lmstudio-ai/docs).
2323

2424
## Development Workflow
2525

26-
_`lmstudio-python` requires Python 3.11 or later_
26+
`lmstudio-python` makes extensive use of pattern matching and hence requires _Python 3.10 or later_
2727

2828
1. Fork this repository
2929
2. Clone your fork: `git clone git@github.com:lmstudio-ai/lmstudio-python.git` onto your local development machine

ci-bootstrap-requirements.txt

Lines changed: 35 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,15 @@ dep-logic==0.4.11 \
1616
distlib==0.3.9 \
1717
--hash=sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87 \
1818
--hash=sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403
19+
exceptiongroup==1.2.2 \
20+
--hash=sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b \
21+
--hash=sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc
1922
filelock==3.17.0 \
2023
--hash=sha256:533dc2f7ba78dc2f0f531fc6c4940addf7b70a481e269a5a3b93be94ffbe8338 \
2124
--hash=sha256:ee4e77401ef576ebb38cd7f13b9b28893194acc20a8e68e18730ba9c0e54660e
22-
findpython==0.6.2 \
23-
--hash=sha256:bda62477f858ea623ef2269f5e734469a018104a5f6c0fd9317ba238464ddb76 \
24-
--hash=sha256:e0c75ba9f35a7f9bb4423eb31bd17358cccf15761b6837317719177aeff46723
25+
findpython==0.6.3 \
26+
--hash=sha256:5863ea55556d8aadc693481a14ac4f3624952719efc1c5591abb0b4a9e965c94 \
27+
--hash=sha256:a85bb589b559cdf1b87227cc233736eb7cad894b9e68021ee498850611939ebc
2528
h11==0.14.0 \
2629
--hash=sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d \
2730
--hash=sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761
@@ -57,21 +60,26 @@ msgpack==1.1.0 \
5760
--hash=sha256:58dfc47f8b102da61e8949708b3eafc3504509a5728f8b4ddef84bd9e16ad420 \
5861
--hash=sha256:5dbad74103df937e1325cc4bfeaf57713be0b4f15e1c2da43ccdd836393e2ea2 \
5962
--hash=sha256:5e1da8f11a3dd397f0a32c76165cf0c4eb95b31013a94f6ecc0b280c05c91b59 \
63+
--hash=sha256:685ec345eefc757a7c8af44a3032734a739f8c45d1b0ac45efc5d8977aa4720f \
6064
--hash=sha256:6ad622bf7756d5a497d5b6836e7fc3752e2dd6f4c648e24b1803f6048596f701 \
65+
--hash=sha256:74bed8f63f8f14d75eec75cf3d04ad581da6b914001b474a5d3cd3372c8cc27d \
6166
--hash=sha256:79ec007767b9b56860e0372085f8504db5d06bd6a327a335449508bbee9648fa \
67+
--hash=sha256:7ad442d527a7e358a469faf43fda45aaf4ac3249c8310a82f0ccff9164e5dccd \
68+
--hash=sha256:914571a2a5b4e7606997e169f64ce53a8b1e06f2cf2c3a7273aa106236d43dd5 \
6269
--hash=sha256:bce7d9e614a04d0883af0b3d4d501171fbfca038f12c77fa838d9f198147a23f \
6370
--hash=sha256:d46cf9e3705ea9485687aa4001a76e44748b609d260af21c4ceea7f2212a501d \
71+
--hash=sha256:d8ce0b22b890be5d252de90d0e0d119f363012027cf256185fc3d474c44b1b9e \
6472
--hash=sha256:dd432ccc2c72b914e4cb77afce64aab761c1137cc698be3984eee260bcb2896e \
6573
--hash=sha256:fd2906780f25c8ed5d7b323379f6138524ba793428db5d0e9d226d3fa6aa1788
6674
packaging==24.2 \
6775
--hash=sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759 \
6876
--hash=sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f
69-
pbs-installer==2025.2.12 \
70-
--hash=sha256:3d9034047945b2d5f169cd9bb324f1f28c37d0ec120d6110ddb10aa07016fb79 \
71-
--hash=sha256:c6815165babf312c90d27ccd16afe598de641d616860f88e1855f183b0253b39
72-
pdm==2.22.3 \
73-
--hash=sha256:e868f5ff46aa716b33aa69a10678447af681c26864b2992c4cb1f853a0f958cc \
74-
--hash=sha256:f409d37b44f6b9938e4eed0bd0ca8016d15cd4514337640d6f962a74d022b412
77+
pbs-installer==2025.3.11 \
78+
--hash=sha256:150986b56648e2d04e99fafe24c165fa94cfa8385b93d6bf9b82925c3d57d064 \
79+
--hash=sha256:c5d17afdb41abbec2afda815d41a93276887f19e6bdc16e98b2dfed11d845968
80+
pdm==2.22.4 \
81+
--hash=sha256:2859a1f788fee571803a0f1f27d6d05dbc95267a071d7f2e01c230c58836d971 \
82+
--hash=sha256:8483f3d2285039cea7e07c5ba6ac7e1fcba358129f8831fb75065a797d27b923
7583
platformdirs==4.3.6 \
7684
--hash=sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907 \
7785
--hash=sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb
@@ -99,6 +107,21 @@ sniffio==1.3.1 \
99107
socksio==1.0.0 \
100108
--hash=sha256:95dc1f15f9b34e8d7b16f06d74b8ccf48f609af32ab33c608d08761c5dcbb1f3 \
101109
--hash=sha256:f88beb3da5b5c38b9890469de67d0cb0f9d494b78b106ca1845f96c10b91c4ac
110+
tomli==2.2.1; python_version <= "3.11" \
111+
--hash=sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6 \
112+
--hash=sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c \
113+
--hash=sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b \
114+
--hash=sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea \
115+
--hash=sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249 \
116+
--hash=sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee \
117+
--hash=sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4 \
118+
--hash=sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8 \
119+
--hash=sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281 \
120+
--hash=sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69 \
121+
--hash=sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc \
122+
--hash=sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff \
123+
--hash=sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222 \
124+
--hash=sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7
102125
tomlkit==0.13.2 \
103126
--hash=sha256:7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde \
104127
--hash=sha256:fff5fe59a87295b278abd31bec92c15d9bc4a06885ab12bcea52c71119392e79
@@ -111,6 +134,6 @@ typing-extensions==4.12.2 \
111134
unearth==0.17.2 \
112135
--hash=sha256:0b8a2afd3476f1ab6155fc579501ac47fffe43547d88a70e5a5b76a7fe6caa2c \
113136
--hash=sha256:4d21af1238a583835fca156322f7225382e718cdcc42d6278050a88e605c4ad5
114-
virtualenv==20.29.2 \
115-
--hash=sha256:fdaabebf6d03b5ba83ae0a02cfe96f48a716f4fae556461d180825866f75b728 \
116-
--hash=sha256:febddfc3d1ea571bdb1dc0f98d7b45d24def7428214d4fb73cc486c9568cce6a
137+
virtualenv==20.29.3 \
138+
--hash=sha256:3e3d00f5807e83b234dfb6122bf37cfadf4be216c53a49ac059d02414f819170 \
139+
--hash=sha256:95e39403fcf3940ac45bc717597dba16110b74506131845d9b687d5e73d947ac

0 commit comments

Comments
 (0)