mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-21 05:04:00 +00:00
python3.pkgs.jinja2: build offline documentation
This commit is contained in:
parent
e724676838
commit
7e4594a5d2
@ -52,7 +52,7 @@ let
|
||||
doCheck = false;
|
||||
});
|
||||
# Required by flask-1.1
|
||||
jinja2 = super.jinja2.overridePythonAttrs (old: rec {
|
||||
jinja2 = (super.jinja2.override { enableDocumentation = false; }).overridePythonAttrs (old: rec {
|
||||
version = "2.11.3";
|
||||
src = old.src.override {
|
||||
inherit version;
|
||||
|
@ -6,11 +6,17 @@
|
||||
, babel
|
||||
, markupsafe
|
||||
, pytestCheckHook
|
||||
, sphinxHook
|
||||
, pallets-sphinx-themes
|
||||
, sphinxcontrib-log-cabinet
|
||||
, sphinx-issues
|
||||
, enableDocumentation ? true
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "Jinja2";
|
||||
version = "3.1.2";
|
||||
outputs = [ "out" ] ++ lib.optional enableDocumentation "doc";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
@ -19,11 +25,20 @@ buildPythonPackage rec {
|
||||
hash = "sha256-MTUacCpAip51laj8YVD8P0O7a/fjGXcMvA2535Q36FI=";
|
||||
};
|
||||
|
||||
patches = lib.optionals enableDocumentation [ ./patches/import-order.patch ];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
babel
|
||||
markupsafe
|
||||
];
|
||||
|
||||
nativeBuildInputs = lib.optionals enableDocumentation [
|
||||
sphinxHook
|
||||
sphinxcontrib-log-cabinet
|
||||
pallets-sphinx-themes
|
||||
sphinx-issues
|
||||
];
|
||||
|
||||
# Multiple tests run out of stack space on 32bit systems with python2.
|
||||
# See https://github.com/pallets/jinja/issues/1158
|
||||
doCheck = !stdenv.is32bit;
|
||||
|
@ -0,0 +1,27 @@
|
||||
Sphinx changed something between sphinx=4.5.0 and sphinx=5.3 that broke
|
||||
"sphinxcontrib.log_cabinet" plugin.
|
||||
|
||||
When Sphinx tries to importlib.import_module("sphinxcontrib.log_cabinet"), it
|
||||
has couple other sphinxcontrib.* libraries in sys.path, and they seem to cause
|
||||
conflict. So here I purge sys.path from sphixcontrib-related things, import
|
||||
log_cabinet and put everything back, so when Sphinx will do "import_module",
|
||||
"sphinxcontrib.log_cabinet" will be already imported and cached.
|
||||
|
||||
All this is quite hacky, but we are talking about merely building documentation
|
||||
here. If resulting html looks good, what happened in Nix sandbox stays in Nix
|
||||
sandbox.
|
||||
|
||||
--- a/docs/conf.py 1970-01-01 00:00:00.000000000 -0000
|
||||
+++ b/docs/conf.py 1970-01-01 00:00:00.000000000 -0000
|
||||
@@ -1,5 +1,12 @@
|
||||
from pallets_sphinx_themes import get_version
|
||||
from pallets_sphinx_themes import ProjectLink
|
||||
+import importlib
|
||||
+import sys
|
||||
+
|
||||
+saved_path = sys.path
|
||||
+sys.path = [x for x in sys.path if "sphinxcontrib" not in x or "cabinet" in x]
|
||||
+import sphinxcontrib.log_cabinet
|
||||
+sys.path = saved_path
|
||||
|
||||
# Project --------------------------------------------------------------
|
@ -64,7 +64,7 @@ buildPythonPackage rec {
|
||||
alabaster
|
||||
docutils
|
||||
imagesize
|
||||
jinja2
|
||||
(jinja2.override { enableDocumentation = false; })
|
||||
packaging
|
||||
pygments
|
||||
requests
|
||||
|
Loading…
Reference in New Issue
Block a user