czty's picture
Add files using upload-large-folder tool
33bf87a verified
Raw
History Blame Contribute Delete
8.8 kB
[build-system]
build-backend = "setuptools.build_meta"
requires = ["setuptools>=61"]
[dependency-groups]
dev = ["labbench[dev]"]
[project]
classifiers = [
"Operating System :: OS Independent",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python"
]
name = "labbench"
version = "0.1.0"
dependencies = [
"anthropic",
"chembench",
"datasets",
"google-auth>=2.31", # Pin for py.typed
"openai~=1.0",
"pydantic~=2.0",
"python-dotenv",
"Pillow",
"tenacity",
"tqdm",
"vertexai"
]
requires-python = ">=3.10"
[project.optional-dependencies]
dev = [
"mypy>=1.8", # Pin for mutable-override
"pre-commit>=3.4", # Pin to keep recent
"pytest",
"pytest-xdist",
"types-tqdm"
]
[project.urls]
issues = "https://github.com/Future-House/LAB-Bench/issues"
repository = "https://github.com/Future-House/LAB-Bench"
[tool.black]
preview = true
[tool.mypy]
# Type-checks the interior of functions without type annotations.
check_untyped_defs = true
# Allows enabling one or multiple error codes globally. Note: This option will
# override disabled error codes from the disable_error_code option.
enable_error_code = [
"ignore-without-code",
"mutable-override",
"redundant-cast",
"redundant-expr",
"redundant-self",
"truthy-bool",
"truthy-iterable",
"unimported-reveal",
"unreachable",
"unused-ignore"
]
# Shows a short summary line after error messages.
error_summary = false
# A regular expression that matches file names, directory names and paths which mypy
# should ignore while recursively discovering files to check. Use forward slashes (/) as
# directory separators on all platforms.
exclude = [
"^\\.?venv" # SEE: https://regex101.com/r/0rp5Br/1
]
# This flag tells mypy that top-level packages will be based in either the current
# directory, or a member of the MYPYPATH environment variable or mypy_path config
# option. This option is only useful in the absence of __init__.py. See Mapping file
# paths to modules for details.
explicit_package_bases = true
# Specifies the OS platform for the target program, for example darwin or win32
# (meaning OS X or Windows, respectively). The default is the current platform
# as revealed by Python’s sys.platform variable.
platform = "linux"
# Comma-separated list of mypy plugins.
plugins = ["pydantic.mypy"]
# Use visually nicer output in error messages: use soft word wrap, show source
# code snippets, and show error location markers.
pretty = true
# Shows column numbers in error messages.
show_column_numbers = true
# Shows error codes in error messages.
# SEE: https://mypy.readthedocs.io/en/stable/error_codes.html#error-codes
show_error_codes = true
# Prefixes each error with the relevant context.
show_error_context = true
# Warns about casting an expression to its inferred type.
warn_redundant_casts = true
# Shows a warning when encountering any code inferred to be unreachable or
# redundant after performing type analysis.
warn_unreachable = true
# Warns about per-module sections in the config file that do not match any
# files processed when invoking mypy.
warn_unused_configs = true
# Warns about unneeded `# type: ignore` comments.
warn_unused_ignores = true
[[tool.mypy.overrides]]
# Suppresses error messages about imports that cannot be resolved.
ignore_missing_imports = true
# Per-module configuration options
module = [
"chembench.*", # SEE: https://github.com/lamalab-org/chembench/issues/485
"datasets", # SEE: https://github.com/huggingface/datasets/issues/3841
"vertexai"
]
[tool.pytest.ini_options]
testpaths = ["tests"]
[tool.ruff]
# Line length to use when enforcing long-lines violations (like `E501`).
line-length = 120
# Enable application of unsafe fixes.
unsafe-fixes = true
[tool.ruff.format]
# Enable reformatting of code snippets in docstrings.
docstring-code-format = true
# Enable preview style formatting.
preview = true
[tool.ruff.lint]
explicit-preview-rules = true
extend-select = [
"A006",
"ASYNC116",
"B901",
"B909",
"C420",
"DOC202",
"DOC403",
"DTZ901",
"E111",
"E112",
"E113",
"E114",
"E115",
"E116",
"E117",
"E201",
"E202",
"E203",
"E204",
"E211",
"E221",
"E222",
"E223",
"E224",
"E225",
"E226",
"E227",
"E228",
"E231",
"E241",
"E242",
"E251",
"E252",
"E261",
"E262",
"E265",
"E266",
"E271",
"E272",
"E273",
"E274",
"E275",
"E301",
"E302",
"E303",
"E304",
"E305",
"E306",
"E502",
"FURB101",
"FURB103",
"FURB110",
"FURB113",
"FURB116",
"FURB118",
"FURB131",
"FURB132",
"FURB140",
"FURB142",
"FURB145",
"FURB148",
"FURB152",
"FURB154",
"FURB156",
"FURB157",
"FURB164",
"FURB166",
"FURB171",
"FURB180",
"FURB188",
"FURB189",
"FURB192",
"LOG015",
"PLC1901",
"PLC2801",
"PLE0304",
"PLE1141",
"PLR6104",
"PLE4703",
"PLR6201",
"PLW0108",
"PYI059",
"RUF027",
"RUF028",
"RUF031",
"RUF032",
"RUF033",
"RUF034",
"RUF035",
"RUF036",
"RUF038",
"RUF039",
"RUF048",
"SIM905",
"UP042",
"UP044",
"W391"
]
# List of rule codes that are unsupported by Ruff, but should be preserved when
# (e.g.) validating # noqa directives. Useful for retaining # noqa directives
# that cover plugins not yet implemented by Ruff.
external = [
"FURB" # refurb
]
ignore = [
"ANN", # Don't care to enforce typing
"ARG002", # Thrown all the time when we are subclassing
"ARG003", # Thrown all the time when we are subclassing
"ASYNC109", # Buggy, SEE: https://github.com/astral-sh/ruff/issues/12353
"ASYNC2", # It's ok to mix async and sync ops (like opening a file)
"B023",
"BLE001", # Don't care to enforce blind exception catching
"C901", # we can be complex
"COM812", # Trailing comma with black leads to wasting lines
"D100", # D100, D101, D102, D103, D104, D105, D106, D107: don't always need docstrings
"D101",
"D102",
"D103",
"D104",
"PLR0913",
"D105",
"D106",
"D107",
"D203", # Keep docstring next to the class definition (covered by D211)
"D212", # Summary should be on second line (opposite of D213)
"D402", # It's nice to reuse the method name
"D406", # Google style requires ":" at end
"D407", # We aren't using numpy style
"D413", # Blank line after last section. -> No blank line
"DTZ", # Don't care to have timezone safety
"EM", # Overly pedantic
"ERA001", # Don't care to prevent commented code
"FBT001", # FBT001, FBT002: overly pedantic
"FBT002",
"FIX", # Don't care to prevent TODO, FIXME, etc.
"FLY002", # Can be less readable
"G004", # f-strings are convenient
"INP001", # Can use namespace packages
"ISC001", # For ruff format compatibility
"N803", # Allow matching math formula names/conventions
"N806", # Allow matching math formula names/conventions
"PLC0415", # Don't care to prevent imports outside of top-level
"PLR0912", # Allow us to have lots of branches
"PLR0915", # we can write lots of code
"PLR0913",
"PLR6104", # Moving to __iadd__ risks ldp graph manipulation
"PLW2901", # Allow modifying loop variables
"PTH", # Overly pedantic
"RUF027", # Prompt templates may not be f-strings
"S101", # Don't care to prevent asserts
"S105", # Duplicates Yelp/detect-secrets in pre-commit
"S311", # Ok to use python random
"SLF001", # Overly pedantic
"T201", # Overly pedantic
"TC001", # TC001, TC002, TC003: don't care to enforce type checking blocks
"TC002",
"TC003",
"TD002", # Don't care for TODO author
"TD003", # Don't care for TODO links
"TRY003" # Overly pedantic
]
preview = true
select = ["ALL"]
unfixable = [
"B007", # While debugging, unused loop variables can be useful
"B905", # Default fix is zip(strict=False), but that can hide bugs
"ERA001", # While debugging, temporarily commenting code can be useful
"F401", # While debugging, unused imports can be useful
"F841", # While debugging, unused locals can be useful
"TC004" # While debugging, it can be nice to keep TYPE_CHECKING in tact
]
[tool.ruff.lint.flake8-annotations]
mypy-init-return = true
[tool.ruff.lint.per-file-ignores]
"**/tests/*.py" = [
"N802", # Tests function names can match class names
"PLR2004", # Tests can have magic values
"S101" # Tests can have assertions
]
[tool.ruff.lint.pycodestyle]
# The maximum line length to allow for line-length violations within
# documentation (W505), including standalone comments.
max-doc-length = 120 # Match line-length
[tool.ruff.lint.pydocstyle]
# Whether to use Google-style or NumPy-style conventions or the PEP257
# defaults when analyzing docstring sections.
convention = "google"
[tool.setuptools.packages.find]
include = ["labbench*"]