File size: 3,975 Bytes
62dbcfb |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
[project]
name = "traiNNer-redux"
requires-python = ">=3.11"
dynamic = ["version"]
dependencies = [
"ema-pytorch",
"msgspec",
"numpy>=2",
"opencv-python",
"Pillow",
"pytorch-optimizer>=3.4.2",
"pyvips>=2.2.3",
"pyvips-binary>=8.16.0",
"pyyaml",
"requests",
"rich",
"safetensors",
"scikit-image",
"scipy",
"spandrel>=0.4.0",
"spandrel-extra-arches>=0.2.0",
"tb-nightly",
"timm",
"torch>=2.7.0",
"torchvision",
"tqdm",
]
authors = [{name = "the-database"}]
description = "Deep learning training framework for image super resolution and restoration."
readme = "README.md"
license = {file = "LICENSE.txt"}
keywords = ["machine learning", "deep learning", "neural network", "pytorch", "super resolution", "upscale", "image restoration" ]
[project.optional-dependencies]
dev = ["ruff", "pyright", "pytest", "syrupy", "torchfix"]
onnx = ["onnx", "onnxruntime", "onnxconverter-common", "onnxslim"]
docs = ["sphinx", "sphinx-rtd-theme"]
scripts = ["chainner_ext", "matplotlib", "pandas"]
segmentation = ["segmentation_models_pytorch"]
[project.urls]
Repository = "https://github.com/the-database/traiNNer-redux.git"
[tool.setuptools.packages.find]
where = ["."] # list of folders that contain the packages (["."] by default)
include = ["traiNNer"] # package names should match these glob patterns (["*"] by default)
exclude = [] # exclude packages matching these glob patterns (empty by default)
namespaces = false # to disable scanning PEP 420 namespaces (true by default)
[tool.ruff]
# Same as Black.
line-length = 88
indent-width = 4
src = ["traiNNer"]
unsafe-fixes = true
[tool.ruff.lint]
# Add the `line-too-long` rule to the enforced rule set.
extend-select = [
"UP", # pyupgrade
"E", # pycodestyle
"W", # pycodestyle
"F", # pyflakes
"I", # isort
"N", # pep8-naming
# "ANN", # flake8-annotations
"ANN001",
"ANN002",
"ANN201",
"ANN202",
"ANN204",
"ANN205",
"ANN206",
# "ASYNC", # flake8-async
"PL", # pylint
"RUF", # ruff
"B", # flake8-bugbear
# "A", # flake8-builtins
# "COM", # flake8-commas
"C4", # flake8-comprehensions
"FA", # flake8-future-annotations
"ISC", # flake8-implicit-str-concat
"ICN", # flake8-import-conventions
"G", # flake8-logging-format
# "INP", # flake8-implicit-namespaces
"PIE", # flake8-pie
# "PYI", # flake8-pyi
"Q", # flake8-quotes
# "RET", # flake8-return
"SLF", # flake8-self
# "SIM", # flake8-simplify
# "TCH", # flake8-tidy-imports
"NPY", # NumPy-specific rules
"NPY201", # numpy2-deprecation
]
ignore = [
"E501", # Line too long
"PLR2004", # Magic value
"PLR0911", # Too many return statements
"PLR0912", # Too many branches
"PLR0913", # Too many arguments
"PLR0915", # Too many statements,
"E741", # Ambiguous variable name,
"E712", # true-false-comparison, has false positives because of numpy's operator overloading
"F821", # Undefined name -- this one is weird, it seems like it has false positives on closures and other context changes
"F403", # 'from module import *' used; unable to detect undefined names
"PLW0603", # Using the global statement
"N999", # Invalid module name (which triggers for chaiNNer)
"N818", # Exception name should end in Error
"ISC001", # Implicit string concatenation, conflicts with formatter
]
unfixable = [
"F841",
"F401"
]
[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"
[tool.uv.pip]
extra-index-url = ["https://download.pytorch.org/whl/cu121"]
|