Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
161 lines (144 loc) · 5.57 KB
/
Copy pathpyproject.toml
File metadata and controls
161 lines (144 loc) · 5.57 KB
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
[build-system]
requires = ["setuptools>=64", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "de-shell"
dynamic = ["version"]
description = "The Electron + Python desktop-app shell Direct Electron's apps (SpyDE, Ground Crew, Autopilot) are assembled from"
readme = "README.md"
license = {text = "MIT"}
authors = [{name = "Carter Francis", email = "cartsfrancis@gmail.com"}]
requires-python = ">=3.10"
keywords = ["electron", "desktop", "anyplotlib", "electron-microscopy", "direct-electron"]
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: JavaScript",
"Topic :: Scientific/Engineering",
"Topic :: Software Development :: Libraries :: Application Frameworks",
]
# Deliberately tiny. Every dependency added here is one that every app
# installs — see the module docstring in de_shell/__init__. In particular: no
# hyperspy, no dask, no rosettasciio, no pyxem; tests/test_boundary.py enforces it.
dependencies = [
"numpy>=1.20.0",
# 0.7.3 for the circle widget's `lock_center`, which Calibrate's FFT ring
# needs: the centre is the DC term, and enforcing that from Python cannot
# work — the renderer recomputes the drag from its own grab-time snapshot,
# so a correction pushed from here is overwritten on the next mousemove.
#
# 0.8.0 for its PR #62, "a tiled image born on a placeholder rendered solid
# black". Every large STILL in Ground Crew is that case: a pane opened at
# the frame's shape, given a tile source on its zeros placeholder, then
# painted. On 0.7.3 a state push landing between the open and the first
# frame could leave the pane showing the placeholder.
#
# 0.10.0 for the hover readout's `apl:readout` event and `set_readout_visible`
# (0.9.0), and `add_texts`' `outline_color` halo (0.10.0).
"anyplotlib>=0.10.0",
"pyyaml",
]
[project.optional-dependencies]
tests = [
"pytest>=3.6",
"pytest-timeout",
]
[project.urls]
Homepage = "https://github.com/directelectron/de-shell"
Repository = "https://github.com/directelectron/de-shell"
Issues = "https://github.com/directelectron/de-shell/issues"
Changelog = "https://github.com/directelectron/de-shell/blob/main/CHANGELOG.rst"
# One version, in one place: de_shell.__version__. The release workflow refuses
# a tag that does not match it.
[tool.setuptools.dynamic]
version = {attr = "de_shell.__version__"}
[tool.setuptools.packages.find]
include = ["de_shell*"]
where = ["."]
[tool.setuptools.package-data]
de_shell = [
"*.yaml",
"plotting/toolbars/icons/*.svg",
]
# The TypeScript half rides in the wheel (see de_shell/js). Tests included:
# an app that links the tree gets to run them, and excluding them would be a
# second list to keep in step.
"de_shell.js" = [
"package.json",
"main/*.ts",
"preload/*.ts",
"renderer/*.ts",
"renderer/*.tsx",
"testing/*.cjs",
"packaging/*.mjs",
"packaging/*.d.mts",
"packaging/*.nsh",
"packaging/*.yml",
]
[tool.pytest.ini_options]
testpaths = ["tests"]
timeout = 120
# ---------------------------------------------------------------------------
# Changelog management (towncrier)
# ---------------------------------------------------------------------------
# towncrier assembles CHANGELOG.rst from one fragment file per PR, written while
# the change is fresh. The alternative — deriving notes from commit subjects at
# release time — reads like a commit log, because that is what it is: it cannot
# say what a change means to an app upgrading, only what the author was doing.
# It also stops two pull requests conflicting over the same few changelog lines.
#
# `package` is set: this repo's version of record IS de_shell.__version__ (the
# publish workflow refuses a tag that disagrees with it), so towncrier can read
# the version itself and `--version` is only needed to build notes for a bump
# that has not been written yet. See upcoming_changes/README.rst.
[tool.towncrier]
package = "de_shell"
package_dir = "."
directory = "upcoming_changes"
filename = "CHANGELOG.rst"
start_string = ".. towncrier release notes start\n"
issue_format = "`#{issue} <https://github.com/directelectron/de-shell/pull/{issue}>`_"
title_format = "{version} ({project_date})"
underlines = ["=", "-", "~"]
# Behaviour changes lead the notes: they are the entries an app upgrading has
# to ACT on, and they are easy to miss filed under "Bug Fixes".
[[tool.towncrier.type]]
directory = "api_change"
name = "API and Behaviour Changes"
showcontent = true
[[tool.towncrier.type]]
directory = "new_feature"
name = "New Features"
showcontent = true
[[tool.towncrier.type]]
directory = "bugfix"
name = "Bug Fixes"
showcontent = true
[[tool.towncrier.type]]
directory = "performance"
name = "Performance"
showcontent = true
[[tool.towncrier.type]]
directory = "deprecation"
name = "Deprecations"
showcontent = true
[[tool.towncrier.type]]
directory = "removal"
name = "Removals"
showcontent = true
[[tool.towncrier.type]]
directory = "doc"
name = "Documentation"
showcontent = true
[[tool.towncrier.type]]
directory = "maintenance"
name = "Maintenance"
showcontent = true