changeset 390:1ea88e3bec25

On the default trunk begin a pure PEP 517 build configuration. This is Python3 only. Builds with Python2.7 and/or older Python3 versions are supported on the upcoming build-2.7 branch.
author Franz Glasner <fzglas.hg@dom66.de>
date Mon, 16 Feb 2026 13:28:35 +0100
parents faa36af3c629
children 5b8c48e8c4ec
files pyproject.toml setup.cfg
diffstat 2 files changed, 58 insertions(+), 48 deletions(-) [+]
line wrap: on
line diff
--- a/pyproject.toml	Sun May 18 06:00:46 2025 +0200
+++ b/pyproject.toml	Mon Feb 16 13:28:35 2026 +0100
@@ -1,4 +1,61 @@
 # Pure-Python-Build
 [build-system]
-requires = ["setuptools>=43.0", "wheel>=0.33"]
+requires = ["setuptools>=77.0", "wheel>=0.33"]
 build-backend = "setuptools.build_meta"
+
+[project]
+name = "py-cutils"
+description = "Pure Python implementation of some coreutils with some extensions"
+#
+# NOTE: This is the *distribution* license (e.g. includes vendored stuff).
+#       There is no such thing here as a "project" license.
+#
+license = "BSD-3-Clause AND MIT"
+license-files = [
+  "LICENSES/BSD-3-Clause.txt",
+  "LICENSES/MIT.txt"
+]
+authors = [
+  {name = "Franz Glasner", email = "fzglas.hg@dom66.de"},
+]
+classifiers = [
+    "Development Status :: 5 - Production/Stable",
+    "Environment :: Console",
+    "Intended Audience :: Developers",
+    "Intended Audience :: End Users/Desktop",
+    "Intended Audience :: System Administrators",
+    "Operating System :: OS Independent",
+    "Programming Language :: Python :: 2.7",
+    "Programming Language :: Python :: 3",
+    "Topic :: System",
+    "Topic :: Utilities"
+]
+requires-python = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*"
+dynamic = ["version", "readme"]
+
+[project.urls]
+homepage = "https://hg2.dom66.de/hgrepos/Python/apps/py-cutils"
+download = "https://pypi2.dom66.de/simple/py-cutils/"
+source = "https://hg2.dom66.de/hgrepos/Python/apps/py-cutils"
+
+[project.scripts]
+py-dos2unix = "cutils.dos2unix:main"
+py-genpwd = "cutils.genpwd:main"
+py-shasum = "cutils.shasum:main"
+py-treesum = "cutils.treesum:main"
+
+[tool.setuptools]
+include-package-data = false
+platforms = ["any"]
+zip-safe = true
+packages = [
+    "cutils",
+    "cutils.util",
+    "cutils.crcmod",
+    "cutils.crcmod.python2",
+    "cutils.crcmod.python3"
+]
+
+[tool.setuptools.dynamic]
+version = {attr = "cutils.__version__"}
+readme = {file = ["README.txt"], content-type = "text/x-rst"}
--- a/setup.cfg	Sun May 18 06:00:46 2025 +0200
+++ b/setup.cfg	Mon Feb 16 13:28:35 2026 +0100
@@ -9,53 +9,6 @@
 [sdist]
 formats = tar
 
-[metadata]
-name = py-cutils
-version = attr: cutils.__version__
-description = Pure Python implementation of some coreutils with some extensions
-author = Franz Glasner
-author_email = fzglas.hg@dom66.de
-license = BSD 3-Clause "New" or "Revised" License
-url = https://pypi.dom66.de/simple/py-cutils/
-download_url = https://pypi.dom66.de/simple/py-cutils/
-license_files =
-  LICENSES/BSD-3-Clause.txt
-  LICENSES/MIT.txt
-long_description = file: README.txt
-long_description_content_type = text/x-rst
-platforms = any
-classifiers =
-    Development Status :: 5 - Production/Stable
-    Environment :: Console
-    Intended Audience :: Developers
-    Intended Audience :: End Users/Desktop
-    Intended Audience :: System Administrators
-    License :: OSI Approved :: BSD License
-    Operating System :: OS Independent
-    Programming Language :: Python :: 2.7
-    Programming Language :: Python :: 3
-    Topic :: System
-    Topic :: Utilities
-
-[options]
-include_package_data = False
-zip_safe = True
-python_requires = >=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*
-packages =
-    cutils
-    cutils.util
-    cutils.crcmod
-    cutils.crcmod.python2
-    cutils.crcmod.python3
-
-[options.entry_points]
-console_scripts =
-    py-dos2unix = cutils.dos2unix:main
-    py-genpwd = cutils.genpwd:main
-    py-shasum = cutils.shasum:main
-    py-treesum = cutils.treesum:main
-
-
 [flake8]
 exclude =
     # Ignore the vendored crcmod2/crcmod sub-package
&ήo&C4"IfZWDAQTT⾲/" "bhUP@A}Z[-Eg3A^}. a&{f#87 Jz'jj;/gpаsEPֺ.mFs02Coxd,JjCrB-ߴ.Zk?8yXmyB欸 X v3zI+csуۭ3#U+M¼lc[]HkT~=\ *>YJn?r`XgPy< B!GA,i8^c=? dfU_b]oFQ;x4oyUv@aX7ҕO[.MF3|T>'g-Kۍ T)Rz ϥ-|X陇[Ƅh2L\OZ73Xna-s`"G%!%2i@l4^4q\DQF&{.Ԋ_ζk.ha""D';8~%w&-,C>W[Y8ESUREp9F8=_HA0VIEzU;Q~ [scRm#8qo#ƍg_7 rɮp( /z(K8s"J03Л @dD\J,<`xbE}4QV6_8FMW|˦р40; _.LHf~^6Pl?/:3fھs\X{󫃪xs3ѽٝ ۏ1$6l2 UXSqfIKEzG|'ч<"+_SU55[]s  :oЍXzK\lTZ=15| `)QB JOvx!%2cslzs>S$',D5ּKƿ_! oqu$‚AV |v%H !r0@CvM^Ÿu !\:WO9CrМkEEƫː9c2Y0͊'I`*,'I$ex(A%qW[|Fq8m-s֒lq^8G146{$M\ ՁLc[R6Mcy^,iٻANr2kE]y=ՏXhE{Ev1'[?b;R5Sn{zd3qYt\w%a Q\$V"8Lo=zrͦ]#% h=g w*qB Q演y^tYaW v ^֏\Cdt!A,y\:"9A[0Dl[Mu=pENz^p#!߫݌H{fXTXG ).C#z`-v@/?;<#P]m:^ nY#ylУLӥ sy§Mr(| {@h#a-}#h 8xnN3Ј-{]sནT} 0.v]8Qw :k`0 %GX"^1Z_z: Y))b.vJoDX;BUq0LB(w",bKn= C_34,ϴdfaey BI 160J| z=eD`f]sV]tGlK-OO8狒kKAUZF9Nwzerd/xsݡ*EߏnYsCKo }ho I,f瘕e7Y REFGCWYv8w6!61j{tVӝ/6lCiuճy݋@w+9dIla3$kj_f۳9#C~Mч^},d[`"ٯ)NW-CTp]cta~js`ozy6WZ7THБ_WоA32RRJb63.\n#词=98p'C]=UI;OhjJ䁖bN+bL{E KxHpL9p;VyjZFksa(4, ,1{Ȕ(%m uxXi#KM0g{h&‹mhڀzWΆTԅu(HC$B(yaen)[=ZGqoi^!_,;߿Nlf+X)y%":84$Ind{>ܪJKş[>IAEx;C/Qm ^m}w=vl=Ԇ(_a懃guY\EȰ_ *G>lX"iշCs~;,\_Tk]-I#6l$h@Ɉ{L6Y=`lKd4eU:}Ѭ.%((-E];Y>?{ӵv_!^sş˥{N?)zLcFEsWɪR&]mrrH.q1bл 4qAJ/Rvٮq<18l8cdĚ.*D$;q,O?0Ѩ+w xǘ+jVK|{tsӌ-Tڟɧ7CGb$-o |ŚMEkWz)ZCd`"F_ !$3WehxL3IFB ^X71.7+yGFԿPNᡱ:2AT'a24ʐ]-Hda,ΚHH`ho)SLv;H$_0b`` , Hb 2[D i)dt\ =Z~_ .ܙkMMbbЮmf:X+"ۋmj'ǥ $Hx v p׿];@֒^O"'϶DvS֜w5*6շLmrkKû\ߩ/6ʭ4x\ۑ[y)ԬU_uETTtWڗ誊C3SiNO-el۾K>f0+#[rZ [L&48(npbZDܰ QWhϛ:/"^VVa#E/]ui9y^_"k?F_?u&{$qe,jo-X)Q2*RN~~$P欠!M00[-s[x&c"7 "j$:%GK8beOGt'q[r/Yz S~jʤX_3H2_8]E@%Tu3RFɧE=#%Z:H".7Vs`{2@Q*@cxם^4e|lb"v~&:~SS3%\IL.,1~7K}A6W[Р(MB=;Y-89E~? D[4fJ0Pz-~qG u$SʹBr`}yØ;a7ph'R߱.]!qW }wLsīo C/@P kW3m4ZEW@~ȑ77 'sÝ,kW ? R@ӟO]8u4$!sg!\EkK Z$tC,~s=Ԍy|sN x?mLM83vg^}mH.1KJ8}59Pw{z!.sw>;wAjh%'{`ϙj"b\$%[ӌ|UeFMn23i?q[=Ys vEf.DWD"XAOo-&Hc:v`E~UsyB;]d;h:@'ߚW,_lpޕh-Hfd$= wRa ꬶα.YY&3p#Cj` x Xq!]Sȍ!/YcPמּ\@67[FJ #D{x[1m=1vg8V) = E}?'n&sL\ xep&hsVU]hr'BЗ25 <e34V. ^۴{6R &t~4H[xpF贕*E4|_88zWWm@i(h@^7CC8]I}E[’ }${ R7$ R>E҅ZA[.|i֥8hi]g(M3a)^iOuLa&MFͶۈC6g&ƿѳoMQB(Of|5fFrZWNvW E6paO&4G?5t|x޺|K:HM~ozhE ݥ*BSؖj06e:W[lM3Vny~YNy| %ܣa&,oWevpnyz<>r$DB E"9IVO>ݱCNOV%12U=IF u䶻L*B~,3G "ss~b//oM|#;Èԉ%lC:؂3CZ{mhͬCISP&":Er/&A:RB3RP?=tuEn)!R%N,#$seo=ƒ2YasEb7Jo#]ǬIxiyzjzs_粏;*jMn>cVFw)gBGZ _{㠿q䕙>Ïu[|\#gR+xYI|?egI$e[B$\(JO\YJ:=O:StJC,br7\݇$Cq#3Va[jJN>[3JC'+ZKlFdݙ=YNv6"L\o"}uo5{*f^¯ͦWL̎7}ĽqZ)4f> XpeN#bP"g99xc&kXZ2>0%)=Z:oKCoKw.]cC.@9-uSՃ/="# ֬)'jLbY|Vbuʙ|5\5{:_V;I Q3&IbX]ܯWCjrWfcSyV~(<;"zðҌႜh`7|N {pYQh[X/CnDx;2Gjn5y+w7B L0E tL] ނs<3KHfeTLh^~AFp(g$&ZP>}kqs9 ⵘ@ E.C n*z KKV *G}WP(g%R-JɓZes䣏QkS$XA DIa"s)ԭQIJ8Z9-\,-5QsԄe8{e3j5{Jg' Ixq twlni15#]_ _ɥn$қJӫ$jDÆ8OjQ8TNA0){kn2jO?qz%i~kt.J}?S^=Ls:+6;n3QC6i\ׁ9&@HMs|H"*aN? drF