[build-system] requires = [ "packaging", "setuptools >= 49.4.0", "wheel", ] build-backend = "setuptools.build_meta" [tool.isort] profile = "black" # black-compatible line_length = 119 # should match black parameters ignore_whitespace = true # ignore whitespace for compatibility with the initial style py_version = 310 # python 3.10 as a target version sections = ["FUTURE", "STDLIB", "THIRDPARTY", "FIRSTPARTY", "LOCALFOLDER"] default_section = "THIRDPARTY" extend_skip = ["setup.py", "docs/source/conf.py"] known_first_party = ["slime", "slime_plugins"] known_third_party = ["megatron", "wandb", "ray", "transformers"] src_paths = ["slime", "slime_plugins"] [tool.black] line_length = 119 [tool.ruff] line-length = 320 # TODO [tool.ruff.lint] select = [ "E", # Pycodestyle Errors (Structural/Fundamental Errors like bad indentation) "F", # Pyflakes (Core Errors: Unused imports, undefined names) "B", # Flake8-Bugbear (Logic Bugs: Variable shadowing, dangerous default arguments) "UP", # pyupgrade (Modernization and compatibility issues) ] ignore = [ "E402", # module-import-not-at-top-of-file "E501", # Line too long # TODO handle it later ] [tool.pytest.ini_options] # durations=0 will display all tests execution time, sorted in ascending order starting from from the slowest one. # -vv will also display tests with duration = 0.00s addopts = "--verbose --pyargs --durations=0 --strict-markers" # always add these arguments to pytest testpaths = ["./tests"] # must be an explicit path to avoid importing another "tests" module # directories to ignore when discovering tests norecursedirs = [ "external", "examples", "docs", "scripts", "tools", "tutorials", "*.egg", ".*", "_darcs", "build", "CVS", "dist", "venv", "{arch}", ] # markers to select tests, use `pytest --markers` to see all available markers, `pytest -m ""` to select tests markers = [ "unit: marks unit test, i.e. testing a single, well isolated functionality (deselect with '-m \"not unit\"')", "integration: marks test checking the elements when integrated into subsystems (deselect with '-m \"not integration\"')", "system: marks test working at the highest integration level (deselect with '-m \"not system\"')", "acceptance: marks test checking whether the developed product/model passes the user defined acceptance criteria (deselect with '-m \"not acceptance\"')", "docs: mark tests related to documentation (deselect with '-m \"not docs\"')", "skipduringci: marks tests that are skipped ci as they are addressed by Jenkins jobs but should be run to test user setups", "pleasefixme: marks tests that are broken and need fixing", ]