kopia lustrzana https://github.com/deathbeds/ipydrawio
Bump to drawio 19.0.3 (#96)
rodzic
5169c41765
commit
b22d82ec7f
|
@ -60,7 +60,7 @@ dependencies:
|
|||
- sphinx-jsonschema
|
||||
- sphinxext-rediraffe
|
||||
- pip:
|
||||
- jupyterlite ==0.1.0b7
|
||||
- jupyterlite ==0.1.0b8
|
||||
|
||||
### ipydrawio-docs-deps ###
|
||||
|
||||
|
|
|
@ -10,9 +10,9 @@
|
|||
|
||||
#### @deathbeds/ipydrawio-notebook 1.2.1
|
||||
|
||||
#### @deathbeds/ipydrawio-webpack 18.0.400
|
||||
#### @deathbeds/ipydrawio-webpack 19.0.300
|
||||
|
||||
- updates to drawio v18.0.4
|
||||
- updates to drawio v19.0.3
|
||||
|
||||
#### @deathbeds/ipydrawio-jupyter-templates 1.2.1
|
||||
|
||||
|
|
|
@ -2,14 +2,14 @@
|
|||
"LiteBuildConfig": {
|
||||
"federated_extensions": [
|
||||
"../py_packages/ipydrawio/dist/ipydrawio-1.2.1-py3-none-any.whl",
|
||||
"https://github.com/conda-forge/releases/releases/download/noarch/bqplot-0.12.33-pyhd8ed1ab_0.tar.bz2/bqplot-0.12.33-pyhd8ed1ab_0.tar.bz2",
|
||||
"https://github.com/conda-forge/releases/releases/download/noarch/jupyterlab-tour-3.1.4-pyhd8ed1ab_0.tar.bz2/jupyterlab-tour-3.1.4-pyhd8ed1ab_0.tar.bz2",
|
||||
"https://github.com/conda-forge/releases/releases/download/noarch/jupyterlab-webrtc-docprovider-0.1.1-pyhd8ed1ab_0.tar.bz2/jupyterlab-webrtc-docprovider-0.1.1-pyhd8ed1ab_0.tar.bz2",
|
||||
"https://github.com/conda-forge/releases/releases/download/noarch/jupyterlab_widgets-1.1.0-pyhd8ed1ab_0.tar.bz2/jupyterlab_widgets-1.1.0-pyhd8ed1ab_0.tar.bz2",
|
||||
"https://github.com/conda-forge/releases/releases/download/noarch/wxyz_datagrid-0.5.1-pyhd8ed1ab_0.tar.bz2/wxyz_datagrid-0.5.1-pyhd8ed1ab_0.tar.bz2",
|
||||
"https://github.com/conda-forge/releases/releases/download/noarch/wxyz_json_schema_form-0.5.1-pyhd8ed1ab_0.tar.bz2/wxyz_json_schema_form-0.5.1-pyhd8ed1ab_0.tar.bz2",
|
||||
"https://github.com/conda-forge/releases/releases/download/noarch/wxyz_lab-0.5.1-pyhd8ed1ab_0.tar.bz2/wxyz_lab-0.5.1-pyhd8ed1ab_0.tar.bz2",
|
||||
"https://github.com/conda-forge/releases/releases/download/noarch/wxyz_svg-0.5.1-pyhd8ed1ab_0.tar.bz2/wxyz_svg-0.5.1-pyhd8ed1ab_0.tar.bz2"
|
||||
"https://conda.anaconda.org/conda-forge/noarch/bqplot-0.12.33-pyhd8ed1ab_0.tar.bz2",
|
||||
"https://conda.anaconda.org/conda-forge/noarch/jupyterlab-tour-3.1.4-pyhd8ed1ab_0.tar.bz2",
|
||||
"https://conda.anaconda.org/conda-forge/noarch/jupyterlab-webrtc-docprovider-0.1.1-pyhd8ed1ab_0.tar.bz2",
|
||||
"https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-1.1.0-pyhd8ed1ab_0.tar.bz2",
|
||||
"https://conda.anaconda.org/conda-forge/noarch/wxyz_datagrid-0.5.1-pyhd8ed1ab_0.tar.bz2",
|
||||
"https://conda.anaconda.org/conda-forge/noarch/wxyz_json_schema_form-0.5.1-pyhd8ed1ab_0.tar.bz2",
|
||||
"https://conda.anaconda.org/conda-forge/noarch/wxyz_lab-0.5.1-pyhd8ed1ab_0.tar.bz2",
|
||||
"https://conda.anaconda.org/conda-forge/noarch/wxyz_svg-0.5.1-pyhd8ed1ab_0.tar.bz2"
|
||||
],
|
||||
"ignore_sys_prefix": true,
|
||||
"lite_dir": ".",
|
||||
|
|
|
@ -32,7 +32,7 @@ dependencies:
|
|||
- sphinx-jsonschema
|
||||
- sphinxext-rediraffe
|
||||
- pip:
|
||||
- jupyterlite ==0.1.0b7
|
||||
- jupyterlite ==0.1.0b8
|
||||
|
||||
### ipydrawio-docs-deps ###
|
||||
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 4deecee18191f67e242422abf3ca304e19e49687
|
||||
Subproject commit bf41618c37f9918078303e3a875961187b86f86b
|
|
@ -1768,7 +1768,7 @@ import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/grapheditor/Sh
|
|||
import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/grapheditor/Sidebar.js';
|
||||
import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/grapheditor/Toolbar.js';
|
||||
import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/integrate.min.js';
|
||||
import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/jquery/jquery-3.3.1.min.js';
|
||||
import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/jquery/jquery-3.6.0.min.js';
|
||||
import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/jscolor/jscolor.js';
|
||||
import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/jszip/jszip.min.js';
|
||||
import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/math-print.js';
|
||||
|
@ -2805,8 +2805,12 @@ import '!!file-loader?name=[path][name].[ext]&context=.!../dio/templates/wirefra
|
|||
import '!!file-loader?name=[path][name].[ext]&context=.!../dio/vsdxImporter.html';
|
||||
import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-12cca165.js';
|
||||
import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-12cca165.js.map';
|
||||
import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-50a29d49.js';
|
||||
import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-50a29d49.js.map';
|
||||
import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-5490a1bd.js';
|
||||
import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-5490a1bd.js.map';
|
||||
import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-7a2a8380.js';
|
||||
import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-7a2a8380.js.map';
|
||||
import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-9fe249eb.js';
|
||||
import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-9fe249eb.js.map';
|
||||
import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-bed83ea8.js';
|
||||
|
@ -2816,4 +2820,6 @@ import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-d4d5b410.
|
|||
import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-dfbb910f.js';
|
||||
import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-dfbb910f.js.map';
|
||||
import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-f163abaa.js';
|
||||
import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-f163abaa.js.map';
|
||||
import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-f163abaa.js.map';
|
||||
import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-fa8c4ce5.js';
|
||||
import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-fa8c4ce5.js.map';
|
|
@ -43,5 +43,5 @@
|
|||
"build:pre": "python scripts/patch.py && python scripts/static.py"
|
||||
},
|
||||
"types": "lib/index.d.ts",
|
||||
"version": "18.0.400"
|
||||
"version": "19.0.300"
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
"@jupyterlab/application": "^3.1.0",
|
||||
"@jupyterlab/launcher": "^3.1.0",
|
||||
"@jupyterlab/mainmenu": "^3.1.0",
|
||||
"@deathbeds/ipydrawio-webpack": "^18.0.400"
|
||||
"@deathbeds/ipydrawio-webpack": "^19.0.300"
|
||||
},
|
||||
"description": "A JupyterLab extension for embedding interactive drawio / mxgraph diagrams.",
|
||||
"devDependencies": {
|
||||
|
|
|
@ -32,13 +32,21 @@ from pathlib import Path
|
|||
import lxml.etree as E
|
||||
from jupyterlab.commands import get_app_dir
|
||||
from PIL import Image
|
||||
from PyPDF2 import PdfFileMerger, PdfFileReader, PdfFileWriter
|
||||
from requests import Session
|
||||
from requests_cache import CachedSession
|
||||
from tornado.concurrent import run_on_executor
|
||||
from traitlets import Bool, Dict, Instance, Int, Unicode, default
|
||||
from traitlets.config import LoggingConfigurable
|
||||
|
||||
try:
|
||||
from PyPDF2 import PdfMerger, PdfReader, PdfWriter
|
||||
except ImportError: # pragma: no cover
|
||||
from PyPDF2 import (
|
||||
PdfFileMerger as PdfMerger,
|
||||
PdfFileReader as PdfReader,
|
||||
PdfFileWriter as PdfWriter,
|
||||
)
|
||||
|
||||
from .constants import (
|
||||
DRAWIO_APP,
|
||||
ENV_IPYDRAWIO_DATA_DIR,
|
||||
|
@ -208,8 +216,8 @@ class IPyDrawioExportManager(LoggingConfigurable):
|
|||
output_pdf = tdp / "original.pdf"
|
||||
output_pdf.write_bytes(b64decode(pdf_text))
|
||||
final_pdf = tdp / "final.pdf"
|
||||
final = PdfFileWriter()
|
||||
final.appendPagesFromReader(PdfFileReader(str(output_pdf), "rb"))
|
||||
final = PdfWriter()
|
||||
final.appendPagesFromReader(PdfReader(str(output_pdf), "rb"))
|
||||
xml = pdf_request["xml"]
|
||||
if hasattr(xml, "encode"):
|
||||
xml = xml.encode("utf-8")
|
||||
|
@ -263,7 +271,7 @@ class IPyDrawioExportManager(LoggingConfigurable):
|
|||
tree = E.fromstring("""<mxfile version="13.3.6"></mxfile>""")
|
||||
with tempfile.TemporaryDirectory() as td:
|
||||
tdp = Path(td)
|
||||
merger = PdfFileMerger()
|
||||
merger = PdfMerger()
|
||||
for i, pdf_request in enumerate(pdf_requests):
|
||||
self.log.warning("adding page %s", i)
|
||||
for diagram in self.extract_diagrams(pdf_request):
|
||||
|
@ -273,13 +281,13 @@ class IPyDrawioExportManager(LoggingConfigurable):
|
|||
raise ValueError("PDF request is empty")
|
||||
wrote = next_pdf.write_bytes(b64decode(pdf_request["pdf"]))
|
||||
if wrote:
|
||||
merger.append(PdfFileReader(str(next_pdf)))
|
||||
merger.append(PdfReader(str(next_pdf)))
|
||||
output_pdf = tdp / "output.pdf"
|
||||
final_pdf = tdp / "final.pdf"
|
||||
merger.write(str(output_pdf))
|
||||
composite_xml = E.tostring(tree).decode("utf-8")
|
||||
final = PdfFileWriter()
|
||||
final.appendPagesFromReader(PdfFileReader(str(output_pdf), "rb"))
|
||||
final = PdfWriter()
|
||||
final.appendPagesFromReader(PdfReader(str(output_pdf), "rb"))
|
||||
if self.attach_xml:
|
||||
final.addAttachment(self.attachment_name, composite_xml.encode("utf-8"))
|
||||
with final_pdf.open("wb") as fpt:
|
||||
|
@ -383,7 +391,7 @@ class IPyDrawioExportManager(LoggingConfigurable):
|
|||
|
||||
def attachments(self, pdf_path):
|
||||
"""iterate over the name, attachment pairs in the PDF"""
|
||||
reader = PdfFileReader(str(pdf_path), "rb")
|
||||
reader = PdfReader(str(pdf_path), "rb")
|
||||
attachments = []
|
||||
try:
|
||||
attachments = reader.trailer["/Root"]["/Names"]["/EmbeddedFiles"]["/Names"]
|
||||
|
|
|
@ -18,6 +18,8 @@ import subprocess
|
|||
import sys
|
||||
import time
|
||||
|
||||
import lxml.etree as ET
|
||||
|
||||
from . import project as P
|
||||
|
||||
PABOT_DEFAULTS = [
|
||||
|
@ -99,35 +101,47 @@ def run_tests(attempt=0, extra_args=None):
|
|||
proc = subprocess.Popen(str_args, cwd=P.ATEST)
|
||||
|
||||
try:
|
||||
return proc.wait()
|
||||
proc.wait()
|
||||
except KeyboardInterrupt:
|
||||
proc.kill()
|
||||
return proc.wait()
|
||||
proc.wait()
|
||||
|
||||
out_xml = out_dir / "output.xml"
|
||||
fail_count = -1
|
||||
|
||||
try:
|
||||
root = ET.fromstring(out_xml.read_bytes())
|
||||
stat = root.xpath("//total/stat")
|
||||
fail_count = int(stat[0].attrib["fail"])
|
||||
except Exception as err:
|
||||
print(err)
|
||||
|
||||
return fail_count
|
||||
|
||||
|
||||
def attempt_atest_with_retries(extra_args=None):
|
||||
"""retry the robot tests a number of times"""
|
||||
extra_args = list(extra_args or [])
|
||||
attempt = 0
|
||||
error_count = -1
|
||||
fail_count = -1
|
||||
|
||||
retries = P.ATEST_RETRIES
|
||||
extra_args += P.ATEST_ARGS
|
||||
|
||||
while error_count != 0 and attempt <= retries:
|
||||
while fail_count != 0 and attempt <= retries:
|
||||
attempt += 1
|
||||
print("attempt {} of {}...".format(attempt, retries + 1), flush=True)
|
||||
start_time = time.time()
|
||||
error_count = run_tests(attempt=attempt, extra_args=extra_args)
|
||||
fail_count = run_tests(attempt=attempt, extra_args=extra_args)
|
||||
print(
|
||||
error_count,
|
||||
"errors in",
|
||||
fail_count,
|
||||
"failed in",
|
||||
int(time.time() - start_time),
|
||||
"seconds",
|
||||
flush=True,
|
||||
)
|
||||
|
||||
return error_count
|
||||
return fail_count
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
|
|
@ -377,7 +377,7 @@ SERVER_EXT = {
|
|||
|
||||
# demo
|
||||
RE_CONDA_FORGE_URL = r"/conda-forge/(.*/)?(noarch|linux-64|win-64|osx-64)/([^/]+)$"
|
||||
CONDA_FORGE_RELEASE = "https://github.com/conda-forge/releases/releases/download"
|
||||
CONDA_FORGE_RELEASE = "https://conda.anaconda.org/conda-forge"
|
||||
FED_EXT_MARKER = "### FEDERATED EXTENSIONS ###"
|
||||
DEMO = ROOT / "demo"
|
||||
DEMO_FILES = DEMO / "files"
|
||||
|
@ -910,9 +910,7 @@ def _sync_lite_config(from_env, to_json, marker, extra_federated, extra_pyolite)
|
|||
|
||||
for ext in ext_packages:
|
||||
if pkg.startswith(ext):
|
||||
federated_extensions += [
|
||||
"/".join([CONDA_FORGE_RELEASE, subdir, pkg, pkg])
|
||||
]
|
||||
federated_extensions += ["/".join([CONDA_FORGE_RELEASE, subdir, pkg])]
|
||||
|
||||
config = json.loads(to_json.read_text(**ENC))
|
||||
|
||||
|
|
|
@ -99,14 +99,14 @@
|
|||
"@jupyterlab/application" "^3.1.0"
|
||||
|
||||
"@deathbeds/ipydrawio-webpack@file:packages/ipydrawio-webpack":
|
||||
version "18.0.400"
|
||||
version "19.0.300"
|
||||
dependencies:
|
||||
"@jupyterlab/application" "^3.1.0"
|
||||
|
||||
"@deathbeds/ipydrawio@file:packages/ipydrawio":
|
||||
version "1.2.1"
|
||||
dependencies:
|
||||
"@deathbeds/ipydrawio-webpack" "^18.0.400"
|
||||
"@deathbeds/ipydrawio-webpack" "^19.0.300"
|
||||
"@jupyterlab/application" "^3.1.0"
|
||||
"@jupyterlab/launcher" "^3.1.0"
|
||||
"@jupyterlab/mainmenu" "^3.1.0"
|
||||
|
|
Ładowanie…
Reference in New Issue