Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
75 lines (68 loc) · 2.92 KB
/
Copy pathpyproject.toml
File metadata and controls
75 lines (68 loc) · 2.92 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
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
[project]
name = "actop"
version = "1.9.12"
description = "Apple Silicon (M1–M4) power, GPU, ANE & memory-bandwidth monitor — sudoless TUI + Python API for profiling local LLM / MLX / CoreML inference"
readme = "README.md"
license = { text = "MIT" }
authors = [
{ name = "binlecode", email = "bin.le.code@gmail.com" },
]
keywords = ["actop", "apple-silicon", "ioreport", "performance-monitor"]
classifiers = [
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"License :: OSI Approved :: MIT License",
"Operating System :: MacOS",
]
requires-python = ">=3.11"
dependencies = [
"textual>=0.60",
"rich>=13.0", # imported directly (tui/widgets.py); do not rely on textual's transitive pin
]
[project.optional-dependencies]
# ruff unpinned again as of 1.4.16: the tree is now compliant under 0.16 and
# the rule set is codified in [tool.ruff.lint] below, so CI no longer depends
# on ruff's default select (whose 0.16.0 expansion had broken the gate).
dev = ["ruff", "pytest"]
# Release tooling: PyPI publishing is local-only (scripts/tag_release.sh runs
# `python -m build` + `twine upload` as part of the tag cut), so the maintainer
# cutting a release needs these. Kept out of `dev` so CI stays lean — no
# workflow publishes to PyPI.
release = ["build", "twine"]
pandas = ["pandas>=1.3"]
# ANE load generator (scripts/ane_load.py) only; macOS-only + heavy, kept out
# of `dev` so Linux CI (`pip install -e ".[dev]"`) stays lean and green.
ane = ["coremltools>=7.0", "numpy>=1.21"]
[project.urls]
Homepage = "https://github.com/binlecode/actop"
Repository = "https://github.com/binlecode/actop"
[project.scripts]
actop = "actop.actop:cli"
[tool.pytest.ini_options]
testpaths = ["tests"]
markers = [
"local: macOS-only tests requiring IOReport, vm_stat, or Apple Silicon hardware",
]
[tool.ruff.lint]
# Explicit rule set so CI/local no longer ride ruff's shifting defaults —
# ruff 0.16.0 silently expanded its default select and broke the previously
# green lint gate (see CHANGELOG 1.4.14). `E4/E7/E9/F` is ruff's recommended
# default equivalent; the rest are opt-in modernization/correctness families.
# Deliberately NOT selected: `BLE`/`S` (blind-except & bandit — the native
# ctypes/IOKit/SMC reads intentionally catch broad Exception and fail silent),
# `EXE`/`PLW` (skill & scratch helper scripts).
select = ["E4", "E7", "E9", "F", "I", "UP", "C4", "PIE", "RUF"]
ignore = [
"RUF001", # ambiguous-unicode (string): the TUI intentionally uses —, ·, ×, braille
"RUF002", # ambiguous-unicode (docstring)
"RUF003", # ambiguous-unicode (comment)
"RUF012", # mutable-class-default: Textual `BINDINGS = [...]` is the framework idiom
]
[tool.setuptools.packages.find]
include = ["actop*"]