/ pyproject.toml
pyproject.toml
1 [build-system] 2 requires = ["hatchling>=1.0.0"] 3 build-backend = "hatchling.build" 4 5 [tool.black] 6 line-length = 88 7 target-version = ['py39'] 8 include = '\.pyi?$' 9 exclude = ''' 10 11 ( 12 /( 13 \.eggs # exclude a few common directories in the 14 | \.git # root of the project 15 | \.hg 16 | \.mypy_cache 17 | \.tox 18 | \.venv 19 | _build 20 | buck-out 21 | build 22 | dist 23 )/ 24 | foo.py # also separately exclude a file named foo.py in 25 # the root of the project 26 ) 27 ''' 28 29 [tool.interrogate] 30 ignore-init-method = true 31 ignore-init-module = false 32 ignore-magic = false 33 ignore-semiprivate = false 34 ignore-private = false 35 ignore-property-decorators = false 36 ignore-module = false 37 fail-under = 100 38 exclude = ["setup.py", "docs", "build", "examples"] 39 ignore-regex = ["^get$", "^mock_.*", ".*BaseClass.*"] 40 verbose = 2 41 quiet = false 42 whitelist-regex = [] 43 color = true 44 45 [tool.pytest.ini_options] 46 addopts = "-v --cov --cov-report term-missing --durations=10" 47 testpaths = [ 48 "tests", 49 ] 50 51 [tool.isort] 52 profile = "black" 53 54 [tool.ruff] 55 # See https://docs.astral.sh/ruff/rules/ for a list of rules. 56 # See https://docs.astral.sh/ruff/configuration/#using-pyprojecttoml for configuration documentation 57 select = ["E", "F", "I"] 58 59 [project] 60 name = "fast-seqfunc" 61 version = "0.0.1" 62 # NOTE: move dependencies into this section if you need to distribute the project as a Python package. 63 requires-python = ">=3.10" 64 dependencies = [ 65 "typer>=0.9.0", 66 "numpy>=1.22.0", 67 "pandas>=1.5.0", 68 "scikit-learn>=1.2.0", 69 "loguru>=0.7.0", 70 "pycaret>=2.2.3,<4", 71 "lazy-loader>=0.4,<0.5" 72 ] 73 readme = "README.md" 74 75 [project.scripts] 76 fast-seqfunc = "fast_seqfunc.cli:app" 77 78 79 [tool.coverage.run] 80 omit = [ 81 "tests/*", 82 ] 83 84 [tool.pixi.project] 85 channels = ["conda-forge"] 86 platforms = ["osx-arm64", "linux-64"] 87 88 [tool.pixi.pypi-dependencies] 89 fast-seqfunc = { path = ".", editable = true } 90 91 # NOTE: Core dependencies (needed for running the program) go here. 92 [tool.pixi.dependencies] 93 pycaret = ">=2.2.3,<4" 94 typer = ">=0.9.0" 95 numpy = ">=1.22.0" 96 pandas = ">=1.5.0" 97 scikit-learn = ">=1.2.0" 98 loguru = ">=0.7.0" 99 seaborn = ">=0.13.2,<0.14" 100 101 # NOTE: Testing dependencies (not needed for running program) go here. 102 [tool.pixi.feature.tests.dependencies] 103 pytest = "*" 104 pytest-cov = "*" 105 hypothesis = "*" 106 107 # NOTE: Docs dependencies (needed for documentation and notebooks) go here. 108 [tool.pixi.feature.docs.dependencies] 109 mkdocs = "*" 110 mkdocs-material = "*" 111 mknotebooks = "*" 112 113 [tool.pixi.feature.notebook.dependencies] 114 ipykernel = "*" 115 ipython = "*" 116 jupyter = "*" 117 pixi-kernel = "*" 118 119 [tool.pixi.feature.devtools.dependencies] 120 pre-commit = "*" 121 122 # NOTE: CUDA feature is inspired by https://github.com/prefix-dev/pixi/issues/1051#issuecomment-2088820974 123 [tool.pixi.feature.cuda] 124 system-requirements = { cuda = "12" } 125 126 [tool.pixi.feature.cuda.target.linux-64.dependencies] 127 jaxlib = { version = "*", build = "*cuda12*" } 128 129 [tool.pixi.feature.tests.tasks] 130 test = "pytest" 131 132 [tool.pixi.feature.devtools.tasks] 133 lint = "pre-commit run --all-files" 134 commit = "git commit" 135 136 [tool.pixi.feature.docs.tasks] 137 build-docs = "mkdocs build" 138 serve-docs = "mkdocs serve" 139 140 [tool.pixi.feature.setup.tasks] 141 setup = "pre-commit autoupdate && pre-commit install --install-hooks" 142 update = "pre-commit autoupdate" 143 144 [tool.pixi.environments] 145 default = { features = ["tests", "devtools", "notebook", "setup"] } 146 docs = { features = ["docs"] } 147 tests = { features = ["tests", "setup"] } 148 cuda = { features = ["tests", "devtools", "notebook", "setup", "cuda"] }