|
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 = "jupyter@googlegroups.com" }, |
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