-
Notifications
You must be signed in to change notification settings - Fork 68
/
pyproject.toml
115 lines (103 loc) · 2.9 KB
/
pyproject.toml
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
[tool.poetry]
name = "otter-grader"
version = "6.0.4"
description = "A Python and R autograding solution"
authors = ["Christopher Pyles <cpyles@berkeley.edu>"]
license = "BSD-3-Clause"
readme = "README.md"
homepage = "https://otter-grader.readthedocs.io/"
repository = "https://github.com/ucbds-infra/otter-grader"
documentation = "https://otter-grader.readthedocs.io/"
classifiers = [
"Programming Language :: Python :: 3",
"License :: OSI Approved :: BSD License",
"Operating System :: OS Independent",
]
packages = [
{ include = "otter" },
]
include = [
{ path = "otter/export/exporters/templates/**/*" },
{ path = "otter/generate/templates/**/*" },
{ path = "otter/grade/Dockerfile" },
]
[tool.poetry.scripts]
otter = "otter.cli:cli"
gmail_oauth2 = "otter.plugins.builtin.gmail_notifications.bin.gmail_oauth2:main"
[tool.poetry.dependencies]
python = "^3.9"
click = "^8.1.7"
dill = ">=0.3.0"
fica = ">=0.4.1"
google-api-python-client = { version = "*", optional = true }
google-auth-oauthlib = { version = "*", optional = true }
six = { version = "*", optional = true }
gspread = { version = "*", optional = true }
ipykernel = { version = "*", optional = true}
ipylab = "^1.0.0"
ipython = "*"
ipywidgets = "^8.1.5"
jinja2 = "^3.1"
jupyter_client = { version = "*", optional = true}
jupytext = "^1.16.4"
nbconvert = { version = ">=6.0.0", extras = ["webpdf"], markers = "sys_platform != 'emscripten' and sys_platform != 'wasi'" }
nbformat = ">=5.0.0"
pandas = ">=2.0.0"
pypdf = { version = "*", optional = true }
python-on-whales = ">=0.72.0,<1.0.0"
pyyaml = "^6"
requests = "^2.31"
rpy2 = { version = "^3.5.16", optional = true }
wrapt = "^1.16.0"
[tool.poetry.extras]
grading = ["ipykernel", "jupyter_client", "pypdf"]
plugins = ["google-api-python-client", "google-auth-oauthlib", "gspread", "six"]
r = ["rpy2"]
[tool.poetry.group.dev]
optional = true
[tool.poetry.group.dev.dependencies]
black = "^24.8.0"
isort = "^5.13.2"
twine = "^5.1.1"
[tool.poetry.group.test]
optional = true
[tool.poetry.group.test.dependencies]
coverage = "^7.2.0"
matplotlib = "*"
pytest = "^8.2.2"
pytest-html = "*"
responses = ">=0.25.3"
tqdm = "*"
[tool.poetry.group.docs]
optional = true
[tool.poetry.group.docs.dependencies]
sphinx = ">=5.0.0"
sphinx-book-theme = "1.1.0"
sphinx-click = "*"
sphinx_markdown_tables = "*"
sphinxcontrib-apidoc = "*"
[tool.black]
line-length = 100
target-version = ["py39"]
extend-exclude = """
(
.*.ipynb # exclude ipynb files
| test/.*/files/.*.py # exclude test goldens
)
"""
[tool.isort]
py_version = "39"
skip_glob = ["test/**/files/*"]
line_length = 100
sections = ["FUTURE", "THIRDPARTY", "FIRSTPARTY", "LOCALFOLDER"]
multi_line_output = 3
use_parentheses = true
order_by_type = false
lines_after_imports = 2
lines_between_types = 1
include_trailing_comma = true
reverse_relative = true
combine_as_imports = true
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"