crackerjack 0.20.2__py3-none-any.whl → 0.20.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1022,23 +1022,34 @@ class Crackerjack:
1022
1022
 
1023
1023
  if options.publish:
1024
1024
  if platform.system() == "Darwin":
1025
- authorize = self.execute_command(
1026
- ["pdm", "self", "add", "keyring"], capture_output=True, text=True
1025
+ # First check if keyring is already installed in PDM
1026
+ check_keyring = self.execute_command(
1027
+ ["pdm", "self", "list"], capture_output=True, text=True
1027
1028
  )
1028
- if authorize.returncode > 0:
1029
- error = PublishError(
1030
- message="Authentication setup failed",
1031
- error_code=ErrorCode.AUTHENTICATION_ERROR,
1032
- details=f"Failed to add keyring support to PDM.\nCommand output:\n{authorize.stderr}",
1033
- recovery="Please manually add your keyring credentials to PDM. Run `pdm self add keyring` and try again.",
1034
- exit_code=1,
1035
- )
1036
- handle_error(
1037
- error=error,
1038
- console=self.console,
1039
- verbose=options.verbose,
1040
- ai_agent=options.ai_agent,
1029
+ keyring_installed = "keyring" in check_keyring.stdout
1030
+
1031
+ if not keyring_installed:
1032
+ # Only attempt to install keyring if it's not already installed
1033
+ self.console.print("Installing keyring for PDM...")
1034
+ authorize = self.execute_command(
1035
+ ["pdm", "self", "add", "keyring"],
1036
+ capture_output=True,
1037
+ text=True,
1041
1038
  )
1039
+ if authorize.returncode > 0:
1040
+ error = PublishError(
1041
+ message="Authentication setup failed",
1042
+ error_code=ErrorCode.AUTHENTICATION_ERROR,
1043
+ details=f"Failed to add keyring support to PDM.\nCommand output:\n{authorize.stderr}",
1044
+ recovery="Please manually add your keyring credentials to PDM. Run `pdm self add keyring` and try again.",
1045
+ exit_code=1,
1046
+ )
1047
+ handle_error(
1048
+ error=error,
1049
+ console=self.console,
1050
+ verbose=options.verbose,
1051
+ ai_agent=options.ai_agent,
1052
+ )
1042
1053
 
1043
1054
  build = self.execute_command(
1044
1055
  ["pdm", "build"], capture_output=True, text=True
@@ -4,7 +4,7 @@ requires = [ "pdm-backend" ]
4
4
 
5
5
  [project]
6
6
  name = "crackerjack"
7
- version = "0.20.1"
7
+ version = "0.20.2"
8
8
  description = "Crackerjack: code quality toolkit"
9
9
  readme = "README.md"
10
10
  keywords = [
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: crackerjack
3
- Version: 0.20.2
3
+ Version: 0.20.3
4
4
  Summary: Crackerjack: code quality toolkit
5
5
  Keywords: bandit,black,creosote,mypy,pyright,pytest,refurb,ruff
6
6
  Author-Email: lesleslie <les@wedgwoodwebworks.com>
@@ -1,7 +1,7 @@
1
- crackerjack-0.20.2.dist-info/METADATA,sha256=JxIeMJ6WVmtpOW1CYU2eP6mLxb36wqiZNOIHYWcVZ8I,26354
2
- crackerjack-0.20.2.dist-info/WHEEL,sha256=tSfRZzRHthuv7vxpI4aehrdN9scLjk-dCJkPLzkHxGg,90
3
- crackerjack-0.20.2.dist-info/entry_points.txt,sha256=6OYgBcLyFCUgeqLgnvMyOJxPCWzgy7se4rLPKtNonMs,34
4
- crackerjack-0.20.2.dist-info/licenses/LICENSE,sha256=fDt371P6_6sCu7RyqiZH_AhT1LdN3sN1zjBtqEhDYCk,1531
1
+ crackerjack-0.20.3.dist-info/METADATA,sha256=XNTChcz8YHD5P5n57GnqTS7wy7KymNgaqfm0wexV_D0,26354
2
+ crackerjack-0.20.3.dist-info/WHEEL,sha256=tSfRZzRHthuv7vxpI4aehrdN9scLjk-dCJkPLzkHxGg,90
3
+ crackerjack-0.20.3.dist-info/entry_points.txt,sha256=6OYgBcLyFCUgeqLgnvMyOJxPCWzgy7se4rLPKtNonMs,34
4
+ crackerjack-0.20.3.dist-info/licenses/LICENSE,sha256=fDt371P6_6sCu7RyqiZH_AhT1LdN3sN1zjBtqEhDYCk,1531
5
5
  crackerjack/.gitignore,sha256=4DYG7ZoVEHR5Tv1gQliRWmsNku5Fw2_k756cG_t12Cg,185
6
6
  crackerjack/.libcst.codemod.yaml,sha256=a8DlErRAIPV1nE6QlyXPAzTOgkB24_spl2E9hphuf5s,772
7
7
  crackerjack/.pdm.toml,sha256=dZe44HRcuxxCFESGG8SZIjmc-cGzSoyK3Hs6t4NYA8w,23
@@ -23,7 +23,7 @@ crackerjack/.ruff_cache/0.11.12/16869036553936192448,sha256=pYYUCDrYh7fPq8xkFLxv
23
23
  crackerjack/.ruff_cache/0.11.12/1867267426380906393,sha256=2w4M0Lrjd9flwuq6uJxehTbm7FVUcK5sL2sz1gS2Yvo,256
24
24
  crackerjack/.ruff_cache/0.11.12/4240757255861806333,sha256=uph5uIRG-XnF7ywAEcCxqqgIkWALPCvJFcwCgnNfTI4,77
25
25
  crackerjack/.ruff_cache/0.11.12/4441409093023629623,sha256=eHrESew3XCFJ2WqmKvtGLO1r4mY5Q_mv7yGlDmM1sSc,153
26
- crackerjack/.ruff_cache/0.11.13/1867267426380906393,sha256=-JUoRdDv_1mo2i4m_u0dAa9ByNdbOSvEGWE_LiSl6tc,256
26
+ crackerjack/.ruff_cache/0.11.13/1867267426380906393,sha256=FQ8Z7PFzLBASpKw20TqKwD02FLSG_mj4C3cEt8nU2YY,256
27
27
  crackerjack/.ruff_cache/0.11.2/4070660268492669020,sha256=FTRTUmvj6nZw_QQBp_WHI-h3_iqRejzL39api-9wTvs,224
28
28
  crackerjack/.ruff_cache/0.11.3/9818742842212983150,sha256=U-4mT__a-OljovvAJvv5M6X7TCMa3dReLXx3kTNGgwU,224
29
29
  crackerjack/.ruff_cache/0.11.4/9818742842212983150,sha256=QF9j6-3MH_d0pDNotdbF2hlqCL66SxN8OLVKR3PZyZU,224
@@ -60,9 +60,9 @@ crackerjack/.ruff_cache/0.9.9/8843823720003377982,sha256=e4ymkXfQsUg5e_mtO34xTsa
60
60
  crackerjack/.ruff_cache/CACHEDIR.TAG,sha256=WVMVbX4MVkpCclExbq8m-IcOZIOuIZf5FrYw5Pk-Ma4,43
61
61
  crackerjack/__init__.py,sha256=w5jukdION0D0fyeKYl-7hfCPzI0isXbEjzdjw8RecKA,840
62
62
  crackerjack/__main__.py,sha256=jg-eO0Z1VZkx5F-97dsd1rxOQ0uwHWabuKma8thUJVw,6779
63
- crackerjack/crackerjack.py,sha256=OWw-EyQzDZsoxH-snikhxuQL8t0Es4MD9bsGfu6zwv4,52600
63
+ crackerjack/crackerjack.py,sha256=DpbodHdqeoyA0_QC6ADGtNX0A3zMIPpnWqk2UsIdyQw,53203
64
64
  crackerjack/errors.py,sha256=OtbmtA912kzDOWVo6JASuFbaMU-VhmQD_fUNsvnWCZc,4311
65
65
  crackerjack/interactive.py,sha256=Ay7_s3pc4ntc_3F_bRKBsWxmjor6nkN9v6tqqJe1iRw,15904
66
66
  crackerjack/py313.py,sha256=VgthlcpLL6nNDcg3evvEmGNYWCdMuojnMhow58ISEdY,6184
67
- crackerjack/pyproject.toml,sha256=2SSoGzy_2YAUS7Tuf8nnShK3JTRCc0mBHEdm89QUQ4E,4843
68
- crackerjack-0.20.2.dist-info/RECORD,,
67
+ crackerjack/pyproject.toml,sha256=HLvG6faHtQDxAtTYK7ujGjPX93n_OLCIgdOaPYtTago,4843
68
+ crackerjack-0.20.3.dist-info/RECORD,,