python-docs-mcp-server 0.2.0__py3-none-any.whl → 0.2.1__py3-none-any.whl

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.
@@ -13,6 +13,7 @@ import logging
13
13
  import os
14
14
  import re
15
15
  import sqlite3
16
+ import sys
16
17
  from collections.abc import Mapping
17
18
  from pathlib import Path
18
19
 
@@ -166,6 +167,25 @@ def make_sphinx_json_env(
166
167
  return env
167
168
 
168
169
 
170
+ def sphinx_parallel_jobs(
171
+ version_info: tuple[int, ...] = (sys.version_info.major, sys.version_info.minor),
172
+ ) -> str:
173
+ """Return the Sphinx ``-j`` value for the build interpreter.
174
+
175
+ The Sphinx venv is created from the current interpreter (``venv.create``),
176
+ so ``sys.version_info`` reflects the Python that will run ``sphinx-build``.
177
+
178
+ Python 3.14 changed the default ``multiprocessing`` start method on
179
+ POSIX from ``fork`` to ``forkserver``. ``forkserver`` pickles the work
180
+ handed to child processes, but Sphinx's parallel build passes a
181
+ ``ParallelTasks`` object holding a local closure
182
+ (``Builder._read_parallel.<locals>.merge``) that cannot be pickled, so
183
+ ``-j auto`` raises ``_pickle.PicklingError`` on 3.14+. Fall back to a
184
+ serial build there; ``fork``-default interpreters keep the parallel path.
185
+ """
186
+ return "1" if version_info >= (3, 14) else "auto"
187
+
188
+
169
189
  def build_sphinx_json_command(
170
190
  sphinx_build: Path | str,
171
191
  doc_dir: Path | str,
@@ -179,7 +199,7 @@ def build_sphinx_json_command(
179
199
  "-D",
180
200
  "html_theme=classic",
181
201
  "-j",
182
- "auto",
202
+ sphinx_parallel_jobs(),
183
203
  str(doc_dir),
184
204
  str(json_out),
185
205
  ]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-docs-mcp-server
3
- Version: 0.2.0
3
+ Version: 0.2.1
4
4
  Summary: The canonical Python stdlib oracle for AI coding agents — exact symbols, exact sections, exact versions, offline, always free, always MIT, token-frugal.
5
5
  Author-email: Aymen Hammouda <hammouda.aymen@gmail.com>
6
6
  License-Expression: MIT
@@ -12,7 +12,7 @@ mcp_server_python_docs/ingestion/__init__.py,sha256=Yd7Jk7hD7XG3eoBVQpYiG94EwJGf
12
12
  mcp_server_python_docs/ingestion/cpython_versions.py,sha256=mEhjuT7q8Bo1aZ-zj6PSqmbq2Bz64g4xj50ttqA4QUU,977
13
13
  mcp_server_python_docs/ingestion/inventory.py,sha256=5gQCWOo1tBiQgv-e_A9KR9n2xfP4YAnJrSmb0pFbzwY,5672
14
14
  mcp_server_python_docs/ingestion/publish.py,sha256=gra87NgH1i4T92nSwf3sqp4AnKuuzQfrcE7ySnDgcSQ,17247
15
- mcp_server_python_docs/ingestion/sphinx_json.py,sha256=yvWzZ0T0Bk3JosyXbPxiE9Rmvc5gCU1iIL5w7zFby8w,19336
15
+ mcp_server_python_docs/ingestion/sphinx_json.py,sha256=OXrZ8LMeLFn2har2TVnWVNwMY9b5z1VCMioQdIE5gJE,20270
16
16
  mcp_server_python_docs/retrieval/__init__.py,sha256=xSH2dWrIun_Q980ElcoXWBIobTqz0am66-AkEvRo_ck,779
17
17
  mcp_server_python_docs/retrieval/budget.py,sha256=kORd1Pt6IxLH95vRE7WBwdwezxvk98deYBgeNLEmyOw,2098
18
18
  mcp_server_python_docs/retrieval/query.py,sha256=9rWBvWQG3KwVjCqEqCYKMFgKqswU-O4a1SyJiTzQrjk,6116
@@ -30,8 +30,8 @@ mcp_server_python_docs/services/version_resolution.py,sha256=rULBoqq97t0ZfSWSy-e
30
30
  mcp_server_python_docs/storage/__init__.py,sha256=YNeNr7FW9Vgvo79oXgKXE3eGP0WwWDqRgTZ7lg7MFW4,62
31
31
  mcp_server_python_docs/storage/db.py,sha256=Lys8HN3IvgmNpr_qyocUQghcZnwHf2lz9eq_BFmwi54,5634
32
32
  mcp_server_python_docs/storage/schema.sql,sha256=4cXPktPQSLfbjkSjirpf0dA2CphlO9UCIKUxnLiIm_g,5637
33
- python_docs_mcp_server-0.2.0.dist-info/METADATA,sha256=Yb2uC9uMwyceWUJiUxa-Da1TRIKLkpqhu6TXCHJHKWM,13880
34
- python_docs_mcp_server-0.2.0.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
35
- python_docs_mcp_server-0.2.0.dist-info/entry_points.txt,sha256=-1arbtjZhF5mtnJNAh_90UBr1f4AqJxT3Tmfy9p7NMI,142
36
- python_docs_mcp_server-0.2.0.dist-info/licenses/LICENSE,sha256=-AHGWRwcvoeP4bkY1W2ok_qaI1Mg0Zx2qYgR1k-3CHY,1071
37
- python_docs_mcp_server-0.2.0.dist-info/RECORD,,
33
+ python_docs_mcp_server-0.2.1.dist-info/METADATA,sha256=cRyy9YN4VFMSHudIlNbZEW2NB2D6B9F72mwDK5FCUNM,13880
34
+ python_docs_mcp_server-0.2.1.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
35
+ python_docs_mcp_server-0.2.1.dist-info/entry_points.txt,sha256=-1arbtjZhF5mtnJNAh_90UBr1f4AqJxT3Tmfy9p7NMI,142
36
+ python_docs_mcp_server-0.2.1.dist-info/licenses/LICENSE,sha256=-AHGWRwcvoeP4bkY1W2ok_qaI1Mg0Zx2qYgR1k-3CHY,1071
37
+ python_docs_mcp_server-0.2.1.dist-info/RECORD,,