lucid-natsar-dev / pyproject.toml
lucid-hf's picture
CI: deploy Docker/PDM Space
fa7ab0c verified
[project]
name = "object_detection_project"
version = "0.1.0"
description = "Default template for PDM package"
authors = [
{name = "Kittinun Yenyueak", email = "kittinun.yenyueak@lucidinsights.com.au"},
]
dependencies = [
"streamlit>=1.49.1",
"moviepy>=2.2.1",
"pillow>=10.0.0",
"ultralytics>=8.3.0",
"numpy>=2.2.6",
"torch>=2.8.0",
"pandas>=2.3.2",
"opencv-python>=4.12.0.88",
"yt-dlp>=2025.10.22",
"torch>=2.0.1",
"torchvision>=0.15.2",
"faster-coco-eval>=1.6.5",
"PyYAML",
"tensorboard",
"scipy",
"calflops",
"transformers",
"wandb>=0.15.0",
"opencv-python",
"ultralytics",
]
requires-python = "==3.11.*"
readme = "README.md"
license = {text = "MIT"}
[tool.pdm]
distribution = false
[tool.ruff]
ignore = [
# (missing public docstrings) These work off of the Python sense of "public", rather than our
# bespoke definition based off of `@public`. When ruff supports custom plugins then we can write
# appropriate rules to require docstrings for `@public`.
"D100",
"D101",
"D102",
"D103",
"D104",
"D105",
"D106",
"D107",
# (docstring imperative mood) Overly restrictive.
"D401",
# (module level import not at top) There are several places where we use e.g.
# warnings.filterwarings calls before imports.
"E402",
# (line too long): This fires for comments, which black won't wrap.
# Disabling until there is an autoformat solution available for comments.
"E501",
# Pandas sometime need `==` for comparison instead of `is`
# Comparision to `None` should be done with `is` rather than `==`.
"E712",
# (no type comparison): There are a few places where we use `== type(None)` which are more clear
# than the equivalent `isinstance` check.
'E721',
# (bare exception): There are many places where we want to catch a maximally generic exception.
'E722',
# (no assign lambda): existing code assigns lambdas in a few places. With black formatting
# requiring extra empty lines between defs, disallowing lambda assignment can make code less
# readable.
"E731",
# (try-except-in-loop) we use this pattern in many places and the performance impact is negligible
"PERF203",
# (no concatenation) Existing codebase has many concatentations, no reason to disallow them.
"RUF005",
# (use ClassVar for attr declarations with defaults) This is a good rule for vanilla Python, but
# triggers false positives for many libs that have DSLs that make use of attr defaults.
"RUF012",
##### TEMPORARY DISABLES
# (assorted docstring rules) There are too many violations of these to enable
# right now, but we should enable after fixing the violations.
"D200", # (one-line docstring should fit)
"D205", # (blank line after summary)
"D417", # (missing arg in docstring)
# (assorted perf rules) We have a lot of violations, enable when autofix is available
"PERF401", # (manual-list-comprehension)
"PERF402", # (manual-list-copy)
]
# By default, ruff only uses all "E" (pycodestyle) and "F" (pyflakes) rules.
# Here we append to the defaults.
select = [
# (flake8-builtins) detect shadowing of python builtin symbols by variables and arguments.
# Attributes are OK (which is why A003) is not included here.
"A001",
"A002",
# (useless expression): Expressions that aren't assigned to anything are typically bugs.
"B018",
# (pydocstyle) Docstring-related rules. A large subset of these are ignored by the
# "convention=google" setting, we set under tool.ruff.pydocstyle.
"D",
# (pycodestyle) pycodestyle rules
"E",
# (pyflakes) pyflakes rules
"F",
# (isort) detect improperly sorted imports
"I001",
# (performance) perflint rules
"PERF",
# (pylint) use all pylint rules from categories "Convention", "Error", and "Warning" (ruff
# currently implements only a subset of pylint's rules)
"PLE",
"PLW",
# (no commented out code) keep commented out code blocks out of the codebase
# "ERA001",
# (ruff-specific) Enable all ruff-specific checks (i.e. not ports of
# functionality from an existing linter).
"RUF",
# (private member access) Flag access to `_`-prefixed symbols. By default the various special
# methods on `NamedTuple` are ignored (e.g. `_replace`).
"SLF001",
# (flake8-type-checking) Auto-sort imports into TYPE_CHECKING blocks depending on whether
# they are runtime or type-only imports.
"TCH",
# (f-strings) use f-strings instead of .format()
"UP032",
# (invalid escape sequence) flag errant backslashes
"W605",
]
[dependency-groups]
dev = [
"ruff>=0.13.1",
]
[build-system]
requires = ["pdm-backend"]
build-backend = "pdm.backend"