1
+ [build-system ]
2
+ requires = [" setuptools >= 64" ]
3
+ build-backend = " setuptools.build_meta"
4
+
5
+ [project ]
6
+ name =" outcome"
7
+ description =" Capture the outcome of Python function calls."
8
+ authors = [{name = " Frazer McLean" , email = " frazer@frazermclean.co.uk" }]
9
+ license = {text = " MIT OR Apache-2.0" }
10
+ keywords = [
11
+ " result" ,
12
+ ]
13
+ classifiers =[
14
+ " Development Status :: 5 - Production/Stable" ,
15
+ " Framework :: Trio" ,
16
+ " Intended Audience :: Developers" ,
17
+ " License :: OSI Approved :: MIT License" ,
18
+ " License :: OSI Approved :: Apache Software License" ,
19
+ " Operating System :: POSIX :: Linux" ,
20
+ " Operating System :: MacOS :: MacOS X" ,
21
+ " Operating System :: Microsoft :: Windows" ,
22
+ " Programming Language :: Python :: Implementation :: CPython" ,
23
+ " Programming Language :: Python :: Implementation :: PyPy" ,
24
+ " Programming Language :: Python :: 3 :: Only" ,
25
+ " Programming Language :: Python :: 3.8" ,
26
+ " Programming Language :: Python :: 3.9" ,
27
+ " Programming Language :: Python :: 3.10" ,
28
+ " Programming Language :: Python :: 3.11" ,
29
+ " Programming Language :: Python :: 3.12" ,
30
+ " Typing :: Typed" ,
31
+ ]
32
+ requires-python = " >=3.8"
33
+ dependencies = [
34
+ # attrs 19.2.0 adds `eq` option to decorators
35
+ " attrs>=19.2.0"
36
+ ]
37
+ dynamic = [" version" ]
38
+
39
+ [project .readme ]
40
+ file = " README.rst"
41
+ content-type = " text/x-rst"
42
+
43
+ [project .urls ]
44
+ Homepage = " https://github.com/python-trio/outcome"
45
+ Documentation = " https://outcome.readthedocs.io/en/latest/"
46
+ Changelog = " https://outcome.readthedocs.io/en/latest/history.html"
47
+ Chat = " https://gitter.im/python-trio/general"
48
+
49
+ [tool .setuptools ]
50
+ # This means, just install *everything* you see under outcome/, even if it
51
+ # doesn't look like a source file, so long as it appears in MANIFEST.in:
52
+ include-package-data = true
53
+
54
+ [tool .setuptools .dynamic ]
55
+ version = {attr = " outcome._version.__version__" }
56
+
1
57
[tool .towncrier ]
2
- package = " outcome"
3
- filename = " docs/source/history.rst"
4
58
directory = " newsfragments"
5
- underlines = [ " - " , " ~ " , " ^ " ]
59
+ filename = " docs/source/history.rst "
6
60
issue_format = " `#{issue} <https://github.com/python-trio/outcome/issues/{issue}>`__"
61
+ # Usage:
62
+ # - PRs should drop a file like "issuenumber.feature" in newsfragments
63
+ # (or "bugfix", "doc", "removal", "misc"; misc gets no text, we can
64
+ # customize this)
65
+ # - At release time after bumping version number, run: towncrier
66
+ # (or towncrier --draft)
67
+ package = " outcome"
68
+ package_dir = " src"
69
+ underlines = [" -" , " ~" , " ^" ]
70
+
71
+ [[tool .towncrier .type ]]
72
+ directory = " feature"
73
+ name = " Features"
74
+ showcontent = true
75
+
76
+ [[tool .towncrier .type ]]
77
+ directory = " bugfix"
78
+ name = " Bugfixes"
79
+ showcontent = true
80
+
81
+ [[tool .towncrier .type ]]
82
+ directory = " doc"
83
+ name = " Improved documentation"
84
+ showcontent = true
85
+
86
+ [[tool .towncrier .type ]]
87
+ directory = " removal"
88
+ name = " Removals without deprecations"
89
+ showcontent = true
90
+
91
+ [[tool .towncrier .type ]]
92
+ directory = " misc"
93
+ name = " Miscellaneous internal changes"
94
+ showcontent = true
95
+
96
+ [tool .coverage .run ]
97
+ branch = true
98
+ source_pkgs = [" outcome" , " tests" ]
99
+ omit = [
100
+ " tests/type_tests.py" ,
101
+ ]
102
+
103
+ [tool .coverage .report ]
104
+ precision = 1
105
+ exclude_lines = [
106
+ " pragma: no cover" ,
107
+ " abc.abstractmethod" ,
108
+ " if TYPE_CHECKING.*:" ,
109
+ " @overload" ,
110
+ " raise NotImplementedError" ,
111
+ ]
112
+ partial_branches = [
113
+ " pragma: no branch" ,
114
+ " if not TYPE_CHECKING:" ,
115
+ " if .* or not TYPE_CHECKING:" ,
116
+ ]
7
117
8
118
[tool .isort ]
9
119
combine_as_imports = true
10
120
profile = " black"
11
121
skip_gitignore = true
122
+ skip = [" ./build" , " ./docs" ]
123
+ known_first_party = [" outcome" ]
12
124
13
125
[tool .mypy ]
126
+ python_version = " 3.8"
127
+
14
128
# Be strict about use of Mypy
15
129
strict = true
130
+ local_partial_types = true
16
131
warn_unused_ignores = true
17
132
warn_unused_configs = true
18
133
warn_redundant_casts = true
@@ -34,3 +149,6 @@ disallow_untyped_decorators = true
34
149
35
150
# DO NOT use `ignore_errors`; it doesn't apply
36
151
# downstream and users have to deal with them.
152
+
153
+ [tool .pytest .ini_options ]
154
+ asyncio_mode = " strict"
0 commit comments