DLR-SF / UTIS-HeliostatBeamCharacterization

UNet-based Target Image Segmentation
Other
3 stars 1 forks source link

Fix `pyproject.toml` #8

Closed mcw92 closed 1 month ago

mcw92 commented 1 month ago

@Filos1992 pip-installing the utis package in a fresh virtual environment with Python3.10 on MacOS fails with the following error message:

Processing /Users/marieweiel/Projects/artist/UTIS-HeliostatBeamCharacterization                                                         
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  error: subprocess-exited-with-error

  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [14 lines of output]
      error: Multiple top-level packages discovered in a flat-layout: ['utis', 'data', 'logos', 'trained_models'].

      To avoid accidental inclusion of unwanted files or directories,
      setuptools will not proceed with this build.

      If you are trying to create a single distribution with multiple packages
      on purpose, you should not rely on automatic discovery.
      Instead, consider the following options:

      1. set up custom discovery (`find` directive with `include` or `exclude`)
      2. use a `src-layout`
      3. explicitly set `py_modules` or `packages` with a list of names

      To find more information, look for "package discovery" on setuptools docs.
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.

This is probably due to a misconfiguration in the pyproject.toml file. poetry is a build system on its own and should rather not be mixed with setuptools. For reasons of simplicity, I suggest to adapt this file to match the format of the functional ARTIST pyprojec.toml file which uses hatchling as the build system: https://github.com/ARTIST-Association/ARTIST/blob/main/pyproject.toml

mcw92 commented 1 month ago

This should work:

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[project]
name = "utis"
version = "0.1.0"
authors = [
  { name="Mathias Kuhl", email="mathias.kuhl@dlr.de" },
]
description = "UNet-based Target Image Segmentation for Solar Tower Calibration"
readme = "README.md"
requires-python = ">=3.8"
classifiers = [
    "Programming Language :: Python :: 3",
    "License :: OSI Approved :: MIT License",
    "Development Status :: 1 - Planning",
]
dependencies = [
    "numpy",
    "Pillow",
    "pytorch-lightning",
    "torch",
    "torchvision",
]

[project.urls]
Homepage = "https://github.com/ARTIST-Association/ARTIST"
Issues = "https://github.com/DLR-SF/UTIS-HeliostatBeamCharacterization/issues"

[tool.ruff]
# Exclude a variety of commonly ignored directories.
exclude = [
    ".bzr",
    ".direnv",
    ".eggs",
    ".git",
    ".git-rewrite",
    ".hg",
    ".ipynb_checkpoints",
    ".mypy_cache",
    ".nox",
    ".pants.d",
    ".pyenv",
    ".pytest_cache",
    ".pytype",
    ".ruff_cache",
    ".svn",
    ".tox",
    ".venv",
    ".vscode",
    "__pypackages__",
    "_build",
    "buck-out",
    "build",
    "dist",
    "node_modules",
    "site-packages",
    "venv",
]

# Same as Black.
line-length = 88
indent-width = 4

# Assume Python 3.8.
target-version = "py38"

[tool.ruff.lint]
# Enable Pyflakes (`F`) and a subset of the pycodestyle (`E`)  codes by default.
# Unlike Flake8, Ruff doesn't enable pycodestyle warnings (`W`) or
# McCabe complexity (`C901`) by default.
select = ["N", "E4", "E7", "E9", "F", "D"]
ignore = ["D100", "D104"]
# Enable import sorting
extend-select = ["I"]

# Allow fix for all enabled rules (when `--fix`) is provided.
fixable = ["ALL"]
unfixable = []

# Allow unused variables when underscore-prefixed.
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"

[tool.ruff.format]
# Like Black, use double quotes for strings.
quote-style = "double"

# Like Black, indent with spaces, rather than tabs.
indent-style = "space"

# Like Black, respect magic trailing commas.
skip-magic-trailing-comma = false

# Like Black, automatically detect the appropriate line ending.
line-ending = "auto"

# Enable auto-formatting of code examples in docstrings. Markdown,
# reStructuredText code/literal blocks and doctests are all supported.
#
# This is currently disabled by default, but it is planned for this
# to be opt-out in the future.
docstring-code-format = false

# Set the line length limit used when formatting code snippets in
# docstrings.
#
# This only has an effect when the `docstring-code-format` setting is
# enabled.
docstring-code-line-length = "dynamic"

[tool.ruff.lint.pydocstyle]
convention = "numpy"

[tool.pytest.ini_options]
testpaths = [
    "tests",
]
Filos1992 commented 1 month ago

Works now