From cf0eb81a16a07a26050448459a8fa931b4d89995 Mon Sep 17 00:00:00 2001 From: "Xuefeng Ding (IHEP)" <dingxf@ihep.ac.cn> Date: Thu, 28 Nov 2024 16:40:29 +0800 Subject: [PATCH] fix import --- .vscode/settings.json | 36 +++-- README.md | 125 ++++++++++++------ notebooks/example.ipynb | 16 +++ noxfile.py | 15 ++- pyproject.toml | 11 +- .../_hello.cpython-310-x86_64-linux-gnu.so | Bin 0 -> 109632 bytes python/myproj/simulation/_csrc/libcomplexf.so | Bin 0 -> 15352 bytes python/myproj/simulation/_csrc/libhello.so | Bin 0 -> 15152 bytes python/myproj/simulation/py.typed | 0 9 files changed, 135 insertions(+), 68 deletions(-) create mode 100755 python/myproj/simulation/_csrc/_hello.cpython-310-x86_64-linux-gnu.so create mode 100755 python/myproj/simulation/_csrc/libcomplexf.so create mode 100755 python/myproj/simulation/_csrc/libhello.so create mode 100644 python/myproj/simulation/py.typed diff --git a/.vscode/settings.json b/.vscode/settings.json index 25860b5..6fc7c93 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -4,20 +4,23 @@ "editor.formatOnSave": true, "[python]": { "editor.codeActionsOnSave": { - "source.fixAll": "explicit" + "source.fixAll": "explicit", + "source.organizeImports": "explicit" }, "editor.defaultFormatter": "charliermarsh.ruff" }, - // "notebook.codeActionsOnSave": { - // "source.fixAll": "explicit" - // }, - "notebook.defaultFormatter": "charliermarsh.ruff", - // "ruff.lint.args": ["--config=pyproject.toml"], - "ruff.fixAll": true, + "notebook.codeActionsOnSave": { + "notebook.source.fixAll": "explicit", + "notebook.source.organizeImports": "explicit" + }, + "notebook.formatOnSave.enabled": true, + "notebook.lineNumbers": "on", "[cpp]": { "editor.defaultFormatter": "llvm-vs-code-extensions.vscode-clangd" }, - "notebook.lineNumbers": "on", + "[cmake]": { + "editor.defaultFormatter": "josetr.cmake-language-support-vscode" + }, "clangd.arguments": [ "--log=info", "--pretty", @@ -35,11 +38,16 @@ "clangd.path": "clangd-17", "jupyter.debugJustMyCode": false, "debugpy.debugJustMyCode": false, - "pylint.args": ["--prefer-stubs=true"], - // "pylint.args": [ - // "--extension-pkg-allow-list=simulation._csrc._hello", - // "--prefer-stubs=true" - // ], + "ruff.fixAll": true, + "python.defaultInterpreterPath": ".venv/bin/python", "python.testing.pytestEnabled": true, - "python.testing.unittestEnabled": false + "python.testing.unittestEnabled": false, + "python.analysis.autoFormatStrings": true, + "python.analysis.autoImportCompletions": true, + "python.analysis.completeFunctionParens": true, + "python.analysis.inlayHints.functionReturnTypes": true, + "python.analysis.inlayHints.pytestParameters": true, + "python.analysis.inlayHints.variableTypes": true, + "python.analysis.typeCheckingMode": "strict", + "python.analysis.extraPaths": ["${workspaceFolder}/python"] } diff --git a/README.md b/README.md index ebeb45b..638045f 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,5 @@ # scikit-build-cpp-python - - ## Why and What use scikit-build-core to setup a python-cmake project that can be installed with `pip install -e .` @@ -10,15 +8,20 @@ use scikit-build-core to setup a python-cmake project that can be installed with - package name has nothing to do with the import path. pacakge named my_package is installed with `pip install .`, uninstalled with `pip uninstall my_package`, but can be used as `import kk.ss as ks`. - installation of cpp files: + ```cmake install(TARGET mylib LIBRARY DESTINATION .) ``` + and set + ``` [tool.scikit-build] wheel.install-dir = "kk/ss" ``` + - installation of python files: + ``` [tool.scikit-build.wheel.packages] "mm/tt" = "python/myproj/simulation" @@ -27,10 +30,8 @@ wheel.install-dir = "kk/ss" wheel.exclude = ["CMakeLists.txt","*.cc","*.h"] ``` - ## special variable - - `${SKBUILD_PLATLIB_DIR}`: The original platlib directory. Anything here goes directly to site-packages when a wheel is installed. - `${SKBUILD_DATA_DIR}`: The data directory. Anything here goes to the root of @@ -47,13 +48,19 @@ wheel.exclude = ["CMakeLists.txt","*.cc","*.h"] wheel. ## style and lint check + ### notebook output stripping + - use pre-commit + 1. install + ```bash pip install pre-commit nbstripout ``` + 2. set + ```yaml repos: - repo: https://gitlab.cern.ch/pre-commit-hook-mirrors/kynan/nbstripout @@ -62,22 +69,30 @@ repos: - id: nbstripout files: \.ipynb$ ``` + 3. install + ```bash pre-commit install ``` + 4. run and verify + ```bash pre-commit run --all-files ``` + or + ```bash nox -s pre_commit ``` ### c++ formating + - pre-commit + vscode extensions - install extensions + ``` Name: clangd Id: llvm-vs-code-extensions.vscode-clangd @@ -86,19 +101,23 @@ Version: 0.1.30 Publisher: LLVM VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=llvm-vs-code-extensions.vscode-clangd ``` + and make sure this is in `settings.json`: + ```json "[cpp]": { "editor.defaultFormatter": "llvm-vs-code-extensions.vscode-clangd" } ``` + - install pre-commit hooks -Name: Black Formatter -Id: ms-python.black-formatter -Description: Formatting support for Python files using the Black formatter. -Version: 2024.4.0 -Publisher: Microsoft -VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=ms-python.black-formatter + Name: Black Formatter + Id: ms-python.black-formatter + Description: Formatting support for Python files using the Black formatter. + Version: 2024.4.0 + Publisher: Microsoft + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=ms-python.black-formatter + ```yaml - repo: https://gitlab.cern.ch/pre-commit-hook-mirrors/pre-commit/mirrors-clang-format rev: v19.1.3 @@ -108,47 +127,52 @@ VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=ms-pyth ``` ### python formatting + - pre-commit + vscode extensions - install extensions + ``` -Name: Black Formatter -Id: ms-python.black-formatter -Description: Formatting support for Python files using the Black formatter. -Version: 2024.4.0 -Publisher: Microsoft -VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=ms-python.black-formatter +Name: Ruff +Id: charliermarsh.ruff +Description: A Visual Studio Code extension with support for the Ruff linter. +Version: 2024.56.0 +Publisher: Astral Software +VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=charliermarsh.ruff ``` + and update `settings.json` + ```json "[python]": { "editor.codeActionsOnSave": { - "source.organizeImports": "always" + "source.fixAll": "explicit", + "source.organizeImports": "explicit" }, - "editor.defaultFormatter": "ms-python.black-formatter" + "editor.defaultFormatter": "charliermarsh.ruff" }, - "isort.args": ["--profile", "black"], + "notebook.codeActionsOnSave": { + "notebook.source.fixAll": "explicit", + "notebook.source.organizeImports": "explicit" + }, + "notebook.formatOnSave.enabled": true, ``` + - install pre-commit hooks -``` - - repo: https://github.com/psf/black-pre-commit-mirror - rev: 24.10.0 # Use the latest stable version - hooks: - - id: black-jupyter - - repo: https://github.com/pycqa/isort - rev: 5.13.2 - hooks: - - id: isort - name: isort (python)repos: - - repo: https://gitlab.cern.ch/pre-commit-hook-mirrors/psf/black-pre-commit-mirror - rev: 24.10.0 # Use the latest stable version +``` + - repo: https://github.com/charliermarsh/ruff-pre-commit + rev: v0.7.4 # Use the latest version hooks: - - id: black + - id: ruff + args: ["--fix", "--exit-non-zero-on-fix", "--show-fixes"] + - id: ruff-formatp ``` ### c++ lint + - nox + vscode extensions - setup nox + ```python @nox.session(venv_backend="none") def dev(session: nox.Session) -> None: @@ -156,6 +180,8 @@ def dev(session: nox.Session) -> None: Prepare a .venv folder. """ + library_output_dir = DIR / "python" / "myproj" / "simulation" / "_csrc" + session.run(sys.executable, "-m", "venv", ".venv") session.run( ".venv/bin/pip", @@ -163,17 +189,19 @@ def dev(session: nox.Session) -> None: "scikit-build-core[pyproject]", "pybind11", "pip>=23", + "nox", + "pytest", ) session.run( ".venv/bin/pip", "install", "--no-build-isolation", "--check-build-dependencies", - "-ve.", - "-C", - "cmake.define.CMAKE_EXPORT_COMPILE_COMMANDS=1", - "-C", - "build-dir=build", + "-ve", + ".", + "-Ccmake.define.CMAKE_EXPORT_COMPILE_COMMANDS=1", + f"-Ccmake.define.CMAKE_LIBRARY_OUTPUT_DIRECTORY={library_output_dir}", + "-Cbuild-dir=build", ) @nox.session(reuse_venv=True) @@ -182,7 +210,9 @@ def cpp_lint(session: nox.Session) -> None: session.install("clangd-tidy") session.run("clangd-tidy", "-p", "build", *cpp_files) ``` + - vscode extensions. use `clangd` + ``` Name: clangd Id: llvm-vs-code-extensions.vscode-clangd @@ -191,7 +221,9 @@ Version: 0.1.30 Publisher: LLVM VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=llvm-vs-code-extensions.vscode-clangd ``` + and set + ```json "clangd.arguments": [ "--log=info", @@ -211,16 +243,21 @@ and set ``` ### python lint + #### ruff: pre-commit + vscode extensions + - install pre-commit + ```yaml - - repo: https://github.com/charliermarsh/ruff-pre-commit - rev: v0.7.3 # Use the latest version - hooks: - - id: ruff - args: ["--fix", "--show-fixes"] +- repo: https://github.com/charliermarsh/ruff-pre-commit + rev: v0.7.3 # Use the latest version + hooks: + - id: ruff + args: ["--fix", "--show-fixes"] ``` + - install extensions + ``` Name: Ruff Id: charliermarsh.ruff @@ -233,7 +270,9 @@ VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=charlie #### pylint: nox + vscode extensions ## vscode extensions to install + - "isort", which sort python import + ``` Name: isort Id: ms-python.isort @@ -242,7 +281,9 @@ Version: 2023.10.1 Publisher: Microsoft VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=ms-python.isort ``` + - "pylint", for complrehensive code analysis + ``` Name: Pylint Id: ms-python.pylint diff --git a/notebooks/example.ipynb b/notebooks/example.ipynb index d9eedf5..f47fc7e 100644 --- a/notebooks/example.ipynb +++ b/notebooks/example.ipynb @@ -74,6 +74,22 @@ "results = json.loads(output)\n", "print(json.dumps(results, indent=2))" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from collections.abc import Iterable\n", + "\n", + "\n", + "def sum_even_numbers(numbers: Iterable[int]) -> int:\n", + " \"\"\"\n", + " Given an iterable of integers, return the sum of all even numbers in the iterable.\\\n", + " \"\"\"\n", + " return sum(num for num in numbers if num % 2 == 0)" + ] } ], "metadata": { diff --git a/noxfile.py b/noxfile.py index f877b03..45cc1c4 100644 --- a/noxfile.py +++ b/noxfile.py @@ -26,6 +26,8 @@ def dev(session: nox.Session) -> None: Prepare a .venv folder. """ + library_output_dir = DIR / "python" / "myproj" / "simulation" / "_csrc" + session.run(sys.executable, "-m", "venv", ".venv") session.run( ".venv/bin/pip", @@ -33,17 +35,20 @@ def dev(session: nox.Session) -> None: "scikit-build-core[pyproject]", "pybind11", "pip>=23", + "nox", + "pytest", + "pre-commit", ) session.run( ".venv/bin/pip", "install", "--no-build-isolation", "--check-build-dependencies", - "-ve.", - "-C", - "cmake.define.CMAKE_EXPORT_COMPILE_COMMANDS=1", - "-C", - "build-dir=build", + "-ve", + ".", + "-Ccmake.define.CMAKE_EXPORT_COMPILE_COMMANDS=1", + f"-Ccmake.define.CMAKE_LIBRARY_OUTPUT_DIRECTORY={library_output_dir}", + "-Cbuild-dir=build", ) diff --git a/pyproject.toml b/pyproject.toml index 7c1f46e..30d55b3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -43,6 +43,10 @@ Changelog = "https://package.readthedocs.io/en/latest/changelog.html" install-dir = "myproj/simulation" exclude = ["CMakeLists.txt","*.cc","*.h"] +# [tool.scikit-build.package-data] +# myproj = ["py.typed"] +# myproj.simulation._csrc = ["*.pyi"] + [tool.mypy] strict = true ignore_missing_imports = true @@ -51,13 +55,6 @@ warn_unreachable = true disable_error_code = [] mypy_path = ["python"] -[tool.isort] -multi_line_output = 3 -include_trailing_comma = true -force_grid_wrap = 0 -line_length = 88 -profile = "black" - [tool.pylint."MESSAGES CONTROL"] disable = [ "C0114", # Missing module docstring diff --git a/python/myproj/simulation/_csrc/_hello.cpython-310-x86_64-linux-gnu.so b/python/myproj/simulation/_csrc/_hello.cpython-310-x86_64-linux-gnu.so new file mode 100755 index 0000000000000000000000000000000000000000..01bcd3dfac649dbc6500a2a5c2a163a864d21ba9 GIT binary patch literal 109632 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 S+dZkWKhs@_VWU>xDE|rnkE5*s literal 0 HcmV?d00001 diff --git a/python/myproj/simulation/_csrc/libcomplexf.so b/python/myproj/simulation/_csrc/libcomplexf.so new file mode 100755 index 0000000000000000000000000000000000000000..f12fc94e0546749c8bd06eb95d8a270e902bc11b GIT binary patch literal 15352 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 N2fUlEl;mvue*l`fZC3yQ literal 0 HcmV?d00001 diff --git a/python/myproj/simulation/_csrc/libhello.so b/python/myproj/simulation/_csrc/libhello.so new file mode 100755 index 0000000000000000000000000000000000000000..914f56c088e597c1a743da262b051b2aa0718cac GIT binary patch literal 15152 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 literal 0 HcmV?d00001 diff --git a/python/myproj/simulation/py.typed b/python/myproj/simulation/py.typed new file mode 100644 index 0000000..e69de29 -- GitLab