|
3 | 3 |
|
4 | 4 | [build-system] |
5 | 5 | build-backend = "hatchling.build" |
6 | | -requires = ["hatchling>=1.4.0", "hatch-nodejs-version", "jupyterlab>=4.0.0"] |
| 6 | +requires = ["hatchling>=1.4.0", "jupyterlab>=4.0.0"] |
7 | 7 |
|
8 | 8 | [project] |
9 | | -name = "my-jupyter-shared-drive-monorepo" |
10 | | -requires-python = ">=3.9" |
11 | | -dependencies = [ |
12 | | - # jupyterlab/notebook frontend extensions |
13 | | - "my-jupyter-shared-docprovider @ {root:uri}/projects/my-jupyter-shared-docprovider", |
| 9 | +name = "my-jupyter-shared-drive" |
| 10 | +version = "0.1.0" |
| 11 | +readme = "README.md" |
| 12 | +license = { file = "LICENSE" } |
| 13 | +requires-python = ">=3.8" |
| 14 | +description = "JupyterLab/Jupyter Notebook 7+ extension integrating collaborative shared models." |
| 15 | +classifiers = [ |
| 16 | + "Intended Audience :: Developers", |
| 17 | + "Intended Audience :: System Administrators", |
| 18 | + "Intended Audience :: Science/Research", |
| 19 | + "License :: OSI Approved :: BSD License", |
| 20 | + "Programming Language :: Python", |
| 21 | + "Programming Language :: Python :: 3.9", |
| 22 | + "Programming Language :: Python :: 3.10", |
| 23 | + "Programming Language :: Python :: 3.11", |
| 24 | + "Programming Language :: Python :: 3.12", |
| 25 | + "Programming Language :: Python :: 3.13", |
| 26 | + "Framework :: Jupyter", |
| 27 | + "Framework :: Jupyter :: JupyterLab", |
| 28 | + "Framework :: Jupyter :: JupyterLab :: 4", |
| 29 | + "Framework :: Jupyter :: JupyterLab :: Extensions", |
| 30 | + "Framework :: Jupyter :: JupyterLab :: Extensions :: Prebuilt", |
14 | 31 | ] |
15 | | -dynamic = ["version"] |
16 | | - |
17 | | -[project.optional-dependencies] |
18 | | -dev = [ |
19 | | - "click", |
20 | | - "pre-commit", |
21 | | - "jupyter_releaser", |
22 | | - "jupyterlab>=4.0.0", |
23 | | -] |
24 | | -docs = [ |
25 | | - "jupyterlab>=4.0.0", |
26 | | - "sphinx", |
27 | | - "myst-parser", |
28 | | - "pydata-sphinx-theme" |
| 32 | +authors = [ |
| 33 | + { name = "Jupyter Development Team", email = "[email protected]" }, |
29 | 34 | ] |
30 | 35 |
|
31 | | -[tool.black] |
32 | | -line-length = 100 |
33 | | - |
34 | | -[tool.isort] |
35 | | -profile = "black" |
| 36 | +[project.urls] |
| 37 | +Documentation = "https://jupyterlab-realtime-collaboration.readthedocs.io/" |
| 38 | +Repository = "https://github.com/jupyterlab/jupyter-collaboration" |
36 | 39 |
|
37 | | -[tool.hatch.version] |
38 | | -source = "nodejs" |
| 40 | +[tool.hatch.build.targets.sdist] |
| 41 | +artifacts = ["my_jupyter_shared_docprovider/labextension"] |
| 42 | +exclude = ["/.github", "/binder", "node_modules"] |
39 | 43 |
|
40 | | -[tool.hatch.build] |
41 | | -packages = [ |
42 | | - "projects/jupyter-shared-docprovider", |
43 | | -] |
44 | | - |
45 | | -[tool.hatch.metadata] |
46 | | -allow-direct-references = true |
| 44 | +[tool.hatch.build.targets.sdist.force-include] |
| 45 | +"packages/my-shared-docprovider" = "packages/my-shared-docprovider" |
| 46 | +"packages/my-shared-docprovider-extension" = "packages/my-shared-docprovider-extension" |
47 | 47 |
|
48 | | -[tool.jupyter-releaser] |
49 | | -skip = ["check-links"] |
| 48 | +[tool.hatch.build.targets.wheel.shared-data] |
| 49 | +"my_jupyter_shared_docprovider/labextension" = "share/jupyter/labextensions/@jupyter/my-shared-docprovider-extension" |
| 50 | +"install.json" = "share/jupyter/labextensions/@jupyter/my-shared-docprovider-extension/install.json" |
50 | 51 |
|
51 | | -[tool.jupyter-releaser.options] |
52 | | -# `--skip-if-dirty` is a workaround for https://github.com/jupyter-server/jupyter_releaser/issues/567 |
53 | | -version-cmd = "cd ../.. && python scripts/bump_version.py --force --skip-if-dirty" |
54 | | -python_packages = [ |
55 | | - "projects/jupyter-shared-docprovider:jupyter-shared-docprovider", |
| 52 | +[tool.hatch.build.hooks.jupyter-builder] |
| 53 | +dependencies = ["hatch-jupyter-builder>=0.5"] |
| 54 | +build-function = "hatch_jupyter_builder.npm_builder" |
| 55 | +ensured-targets = [ |
| 56 | + "my_jupyter_shared_drive/labextension/static/style.js", |
| 57 | + "my_jupyter_shared_drive/labextension/package.json", |
56 | 58 | ] |
| 59 | +skip-if-exists = ["my_jupyter_shared_drive/labextension/static/style.js"] |
57 | 60 |
|
58 | | -[tool.jupyter-releaser.hooks] |
59 | | -before-build-npm = [ |
60 | | - "YARN_ENABLE_IMMUTABLE_INSTALLS=0 jlpm build:prod" |
61 | | -] |
62 | | -before-build-python = [ |
63 | | - "jlpm clean:all", |
64 | | - # Build the assets |
65 | | - "jlpm build:prod", |
66 | | - # Clean the build artifacts to not include them in sdist |
67 | | - "jlpm clean:lib" |
68 | | -] |
69 | | -before-bump-version = [ |
70 | | - "python -m pip install -U jupyterlab", |
71 | | - "jlpm" |
72 | | -] |
| 61 | +[tool.hatch.build.hooks.jupyter-builder.build-kwargs] |
| 62 | +npm = ["jlpm"] |
| 63 | +build_cmd = "build:prod" |
| 64 | +editable_build_cmd = "install:extension" |
73 | 65 |
|
74 | | -[tool.pytest.ini_options] |
75 | | -addopts = "-raXs --durations 10 --color=yes --doctest-modules" |
76 | | -testpaths = ["tests/"] |
77 | | -timeout = 300 |
78 | | -# Restore this setting to debug failures |
79 | | -# timeout_method = "thread" |
80 | | -filterwarnings = [ |
81 | | - "error", |
82 | | - # From tornado |
83 | | - "ignore:unclosed <socket.socket:ResourceWarning", |
84 | | - "module:make_current is deprecated:DeprecationWarning", |
85 | | - "module:clear_current is deprecated:DeprecationWarning", |
86 | | - "module:There is no current event loop:DeprecationWarning", |
87 | | - # |
88 | | - "module:Jupyter is migrating its paths to use standard platformdirs:DeprecationWarning", |
89 | | - # In PyPy/Cython: see https://github.com/yaml/pyyaml/issues/688 |
90 | | - "ignore:can't resolve package from __spec__ or __package__, falling back on __name__ and __path__:ImportWarning", |
91 | | - # see https://github.com/dateutil/dateutil/issues/1314 |
92 | | - "ignore:.*datetime.utcfromtimestamp\\(\\) is deprecated.*:DeprecationWarning:", |
93 | | - # From anyio https://github.com/agronholm/anyio/pull/715 |
94 | | - 'ignore:Unclosed <MemoryObjectSendStream:ResourceWarning', |
95 | | -] |
96 | | - |
97 | | -[tool.mypy] |
98 | | -exclude=[ |
99 | | - "^scripts/bump_version\\.py$", |
100 | | - "^binder/jupyter_config\\.py$", |
101 | | - "/setup\\.py$", |
102 | | -] |
103 | | -check_untyped_defs = true |
104 | | -disallow_any_generics = false |
105 | | -disallow_incomplete_defs = true |
106 | | -disallow_untyped_decorators = true |
107 | | -no_implicit_optional = true |
108 | | -no_implicit_reexport = true |
109 | | -pretty = true |
110 | | -show_error_context = true |
111 | | -show_error_codes = true |
112 | | -strict_equality = true |
113 | | -strict_optional = true |
114 | | -warn_unused_configs = true |
115 | | -warn_redundant_casts = true |
116 | | -warn_return_any = false |
117 | | -warn_unused_ignores = true |
118 | | -ignore_missing_imports = true |
| 66 | +[tool.check-wheel-contents] |
| 67 | +ignore = ["W002"] |
0 commit comments