22name = " atomicwriter"
33version = " 0.3.0"
44description = " Cross-platform atomic file writer for all-or-nothing operations."
5- authors = [{ name = " Ravencentric" , email = " me@ravencentric.cc" }]
65readme = " README.md"
7- license = " MIT OR Apache-2.0"
86requires-python = " >=3.10"
7+ license = " MIT OR Apache-2.0"
8+ authors = [{ name = " Ravencentric" , email = " me@ravencentric.cc" }]
99keywords = [" atomic" , " file" , " writer" ]
1010classifiers = [
1111 " Intended Audience :: Developers" ,
1212 " Operating System :: OS Independent" ,
13- " Programming Language :: Rust" ,
1413 " Programming Language :: Python :: 3.9" ,
1514 " Programming Language :: Python :: 3.10" ,
1615 " Programming Language :: Python :: 3.11" ,
@@ -19,43 +18,58 @@ classifiers = [
1918 " Programming Language :: Python :: 3.14" ,
2019 " Programming Language :: Python :: Implementation :: CPython" ,
2120 " Programming Language :: Python :: Implementation :: PyPy" ,
21+ " Programming Language :: Rust" ,
2222 " Typing :: Typed" ,
2323]
2424dependencies = []
2525
2626[project .urls ]
27- Repository = " https://github.com/Ravencentric/atomicwriter"
2827Documentation = " https://ravencentric.cc/atomicwriter/"
28+ Repository = " https://github.com/Ravencentric/atomicwriter"
2929
3030[dependency-groups ]
31- test = [" pytest>=9 " ]
32- lint = [
33- " mypy>=1.15.0 " ,
34- " ruff>=0.15.12 " ,
35- { include-group = " test " },
31+ dev = [
32+ " maturin>=1.13 " ,
33+ " nox>=2025.2.9 " ,
34+ { include-group = " docs " } ,
35+ { include-group = " lint " },
3636]
3737docs = [
3838 " mkdocs-autorefs>=1.4.0" ,
3939 " mkdocs-material>=9.6.7" ,
4040 " mkdocstrings[python]>=0.28.2" ,
4141]
42- dev = [
43- " maturin>=1.8.2" ,
44- " nox>=2025.2.9" ,
45- { include-group = " lint" },
46- { include-group = " docs" },
47-
42+ lint = [
43+ " mypy>=1.15.0" ,
44+ " ruff>=0.15.12" ,
45+ { include-group = " test" },
4846]
47+ test = [" pytest>=9" ]
4948
50- [tool .uv ]
51- cache-keys = [{ file = " Cargo.toml" }, { file = " src/**/*.rs" }]
49+ [build-system ]
50+ requires = [" maturin>=1.13,<2.0" ]
51+ build-backend = " maturin"
5252
53- [tool .ruff .lint ]
54- extend-select = [" I" , " RUF" , " UP" , " N" , " D4" , " PYI" ]
55- fixable = [" ALL" ]
53+ [tool .cibuildwheel ]
54+ enable = [" pypy" ]
55+ archs = " auto64"
56+ build-frontend = " build[uv]"
57+ test-groups = [" test" ]
58+ test-command = " pytest {package}/tests"
5659
57- [tool .ruff .lint .extend-per-file-ignores ]
58- "tests/*" = [" D" ]
60+ [tool .cibuildwheel .linux ]
61+ # https://cibuildwheel.pypa.io/en/stable/faq/#building-rust-wheels
62+ before-all = " curl -sSf https://sh.rustup.rs | sh -s -- -y"
63+ environment = { PATH = " $HOME/.cargo/bin:$PATH" }
64+
65+ [tool .cibuildwheel .macos ]
66+ environment = { MACOSX_DEPLOYMENT_TARGET = " 11.0" }
67+
68+ [tool .maturin ]
69+ editable-profile = " dev"
70+ locked = true
71+ module-name = " atomicwriter._impl"
72+ python-source = " python"
5973
6074[tool .mypy ]
6175strict = true
@@ -64,33 +78,23 @@ files = ["python/**/*.pyi", "tests/**/*.py"]
6478enable_error_code = [" ignore-without-code" ]
6579
6680[tool .pytest ]
67- minversion = " 9.0"
68- strict = true
69- addopts = [" -ra" , " --showlocals" , " -v" ]
81+ addopts = [" --showlocals" , " -ra" , " -v" ]
7082filterwarnings = [" error" ]
7183log_cli_level = " INFO"
84+ minversion = " 9.0"
85+ strict = true
7286testpaths = [" tests" ]
7387
74- [tool .maturin ]
75- locked = true
76- editable-profile = " dev"
77- python-source = " python"
78- module-name = " atomicwriter._impl"
79-
80- [tool .cibuildwheel ]
81- enable = [" pypy" , " cpython-freethreading" ]
82- archs = " auto64"
83- build-frontend = " build[uv]"
84- test-groups = [" test" ]
85- test-command = " pytest {package}/tests"
86-
87- [tool .cibuildwheel .linux ]
88- before-all = " curl -sSf https://sh.rustup.rs | sh -s -- -y"
89- environment = { PATH = " $HOME/.cargo/bin:$PATH" }
88+ [tool .ruff .lint ]
89+ extend-select = [" I" , " RUF" , " UP" , " N" , " D4" , " PYI" ]
90+ fixable = [" ALL" ]
9091
91- [tool .cibuildwheel . macos ]
92- environment = { MACOSX_DEPLOYMENT_TARGET = " 11.0 " }
92+ [tool .ruff . lint . extend-per-file-ignores ]
93+ "tests/*" = [ " D " ]
9394
94- [build-system ]
95- requires = [" maturin>=1.8,<2.0" ]
96- build-backend = " maturin"
95+ [tool .uv ]
96+ cache-keys = [
97+ { file = " Cargo.toml" },
98+ { file = " pyproject.toml" },
99+ { file = " src/**/*.rs" },
100+ ]
0 commit comments