pdd-cli 0.0.16__py3-none-any.whl → 0.0.18__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.

Potentially problematic release.


This version of pdd-cli might be problematic. Click here for more details.

pdd/cli.py CHANGED
@@ -46,7 +46,7 @@ console = Console()
46
46
  @click.option("--review-examples", is_flag=True,
47
47
  help="Review and optionally exclude few-shot examples before command execution.")
48
48
  @click.option('--local', is_flag=True, help='Run commands locally instead of in the cloud.')
49
- @click.version_option(version="0.0.16")
49
+ @click.version_option(version="0.0.18")
50
50
  @click.pass_context
51
51
  def cli(
52
52
  ctx,
pdd/data/llm_model.csv CHANGED
@@ -5,7 +5,7 @@ Anthropic,"claude-3-5-haiku-20241022",1,5,1259,,ANTHROPIC_API_KEY,anthropic,clau
5
5
  OpenAI,"deepseek-coder",0.14,0.28,1279,https://api.deepseek.com/beta,DEEPSEEK_API_KEY,autotokenizer,deepseek-coder-7b-instruct-v1.5,8192,,False
6
6
  Google,"gemini-2.0-flash-thinking-exp-01-21",.1,.4,1291,,GOOGLE_API_KEY,,,8192,,False
7
7
  GoogleVertexAI,"gemini-2.0-pro-exp-02-05",1.25,5,1299,,VERTEX_AI_API_KEY,,,8192,,False
8
- Anthropic,claude-3-5-sonnet-20241022,3,15,1312,,ANTHROPIC_API_KEY,anthropic,claude-3-sonnet-20240229,8192,,False
8
+ Anthropic,claude-3-7-sonnet-20250219,3,15,1312,,ANTHROPIC_API_KEY,anthropic,claude-3-sonnet-20240229,8192,,False
9
9
  Google,gemini-exp-1206,1.25,5,1313,,GOOGLE_API_KEY,,,8192,,False
10
10
  OpenAI,"deepseek-r1-distill-llama-70b-specdec",5,5,1314,https://api.groq.com/openai/v1,GROQ_API_KEY,autotokenizer,deepseek-coder-7b-instruct-v1.5,16384,,False
11
11
  Ollama,"deepseek-r1:70b-llama-distill-q8_0",0.0,0.0,1315,,PWD,,,,,False
pdd/fix_error_loop.py CHANGED
@@ -39,12 +39,13 @@ def run_pytest_on_file(test_file: str) -> (int, int, int, str):
39
39
 
40
40
  # Check pytest's return code first
41
41
  return_code = test_results.get('return_code', 1)
42
- if return_code != 0:
43
- return 1, 1, 0, f"Pytest failed with return code {return_code}\n{result.stdout}\n{result.stderr}"
44
42
 
45
43
  failures = test_results.get('failures', 0)
46
44
  errors = test_results.get('errors', 0)
47
45
  warnings = test_results.get('warnings', 0)
46
+
47
+ if return_code == 2:
48
+ errors += 1
48
49
 
49
50
  # Combine stdout and stderr from the test results
50
51
  logs = test_results.get('standard_output', '') + '\n' + test_results.get('standard_error', '')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: pdd-cli
3
- Version: 0.0.16
3
+ Version: 0.0.18
4
4
  Summary: PDD (Prompt-Driven Development) Command Line Interface
5
5
  Author: Greg Tanaka
6
6
  Author-email: glt@alumni.caltech.edu
@@ -21,17 +21,17 @@ License-File: LICENSE
21
21
  Requires-Dist: GitPython==3.1.44
22
22
  Requires-Dist: Requests==2.32.3
23
23
  Requires-Dist: click==8.1.7
24
- Requires-Dist: keyring==24.3.1
25
- Requires-Dist: langchain==0.3.18
26
- Requires-Dist: langchain_anthropic==0.3.7
27
- Requires-Dist: langchain_community==0.3.17
28
- Requires-Dist: langchain_core==0.3.34
24
+ Requires-Dist: keyring==25.6.0
25
+ Requires-Dist: langchain==0.3.19
26
+ Requires-Dist: langchain_anthropic==0.3.8
27
+ Requires-Dist: langchain_community==0.3.18
28
+ Requires-Dist: langchain_core==0.3.40
29
29
  Requires-Dist: langchain_fireworks==0.2.7
30
- Requires-Dist: langchain_google_genai==2.0.9
30
+ Requires-Dist: langchain_google_genai==2.0.11
31
31
  Requires-Dist: langchain_google_vertexai==2.0.13
32
32
  Requires-Dist: langchain_groq==0.2.4
33
33
  Requires-Dist: langchain_ollama==0.2.3
34
- Requires-Dist: langchain_openai==0.3.4
34
+ Requires-Dist: langchain_openai==0.3.7
35
35
  Requires-Dist: langchain_together==0.3.0
36
36
  Requires-Dist: pandas==2.2.3
37
37
  Requires-Dist: pydantic==2.10.6
@@ -40,7 +40,7 @@ Requires-Dist: semver==3.0.2
40
40
  Requires-Dist: setuptools==75.1.0
41
41
  Requires-Dist: python-Levenshtein
42
42
 
43
- .. image:: https://img.shields.io/badge/pdd--cli-v0.0.16-blue
43
+ .. image:: https://img.shields.io/badge/pdd--cli-v0.0.18-blue
44
44
  :alt: PDD-CLI Version
45
45
 
46
46
  PDD (Prompt-Driven Development) Command Line Interface
@@ -101,7 +101,7 @@ After installation, verify:
101
101
 
102
102
  pdd --version
103
103
 
104
- You'll see the current PDD version (e.g., 0.0.16).
104
+ You'll see the current PDD version (e.g., 0.0.18).
105
105
 
106
106
  Advanced Installation Tips
107
107
  --------------------------
@@ -6,7 +6,7 @@ pdd/bug_main.py,sha256=myKU9--QWdkV4Wf3mD2PoLPJFNgRjwf4z8s7TC28G_s,3720
6
6
  pdd/bug_to_unit_test.py,sha256=dsJNm6qAwx-m7RvFF5RquFJRzxzZGCWT4IKYnzVCUws,5569
7
7
  pdd/change.py,sha256=iqjWS5DrQ73yMkuUQlwIRIFlofmKdaK6t6-v3zHKL-4,4985
8
8
  pdd/change_main.py,sha256=yL_i1Ws5vt4vAkWiC826csNi2cHP6wKbwe_PfMqbbPY,11407
9
- pdd/cli.py,sha256=fIGmhHofbY53VR3Ag090jqx0KUd-5wcf1VQUNb6zhL4,16593
9
+ pdd/cli.py,sha256=5Cdrdegn59zuPRPNgmgk_4mQgC8gYNtxiO4Z0HLwXeg,16593
10
10
  pdd/cmd_test_main.py,sha256=aSCxRnSurg15AvPcJDAPp9xy8p_qqnjU1oV14Hi2R54,5301
11
11
  pdd/code_generator.py,sha256=n5akrX7VPe71X4RsD6kKqAVvzBLMlciJI4RtJA1PcgA,4375
12
12
  pdd/code_generator_main.py,sha256=G2eRBPXc1cGszkk0PbIPmJZHPaf_dw5d2yZbsvQZA3c,4793
@@ -23,14 +23,13 @@ pdd/detect_change_main.py,sha256=1Z4ymhjJaVr2aliGyqkqeqSmQ7QMgcl23p0wdsmBas0,365
23
23
  pdd/find_section.py,sha256=lz_FPY4KDCRAGlL1pWVZiutUNv7E4KsDFK-ymDWA_Ec,962
24
24
  pdd/fix_code_loop.py,sha256=L0yxq2yAziPIyFGb8lIP2mvufu8a_gtc5nnN2LuMuKs,8596
25
25
  pdd/fix_code_module_errors.py,sha256=M6AnlR2jF5LI-nNg6gIO5LvSkxiaLIUGyTvfnUfe1cU,4625
26
- pdd/fix_error_loop.py,sha256=--sYHsC2r6h8atDwYHON4lFWYAqN5Wnb2yykAm2Ox2o,17170
26
+ pdd/fix_error_loop.py,sha256=1_pW4MGy8FhLuq4RiGUBligev5IJg8Bs_-r2GaZN5Y8,17085
27
27
  pdd/fix_errors_from_unit_tests.py,sha256=8qCEyHZ6lUSBtV9vhQyhgAxDuhngmOy7vVy2HObckd0,8934
28
28
  pdd/fix_main.py,sha256=02OIViH12BcsykpDp4Osxw2ndEeThnNakMFkzdpYr48,5333
29
29
  pdd/generate_output_paths.py,sha256=zz42GTx9eGyWIYSl3jcWvtJRGnieC3eoPM6DIVcWz2k,7219
30
30
  pdd/generate_test.py,sha256=BwmRnjaPDTlxUqJZ37N3bxTBHlLPCZIR5i1bwrNNv54,4791
31
31
  pdd/get_comment.py,sha256=yuRtk68-SDkMaGzOSyIFdldRoymJBRSKjOYkr0narVc,2627
32
32
  pdd/get_extension.py,sha256=ZSsbi7n-tFw-7RQX7c3pV1qWsRt72qS_3AlAYjV53jA,2393
33
- pdd/get_extension_1_1_1_0_20250221_230416.py,sha256=ZSsbi7n-tFw-7RQX7c3pV1qWsRt72qS_3AlAYjV53jA,2393
34
33
  pdd/get_jwt_token.py,sha256=BGxqMh7qf2mG-TFw7JlV941O9XtrW22L_dRoS_UZNjM,11560
35
34
  pdd/get_language.py,sha256=yxyQqVEb5H3ep3Hc6XgAl3vMLTHD5OIs8ZSekB493GA,1438
36
35
  pdd/git_update.py,sha256=Ya7eI7YFtGIpT7FdziFJfnFkiZlj8I9Lh98lqtXfClc,2855
@@ -59,7 +58,7 @@ pdd/update_main.py,sha256=5a4nsOOaAXULdk0BS9pj4blZ_QHBFeET37uaAqoJI2g,3912
59
58
  pdd/update_prompt.py,sha256=OdPRIAMu7OBx7E4SOU95hWgdtBY4oO8XOe1dvPChMlU,4351
60
59
  pdd/xml_tagger.py,sha256=NcyWacoXarRi6_16pchMhh1M7V-Gfz1cQImO_If2ia4,4241
61
60
  pdd/data/language_format.csv,sha256=xUTmFHXSBVBRfPV-NKG3oWo5_ped5ukP-ekFcIlVzJk,877
62
- pdd/data/llm_model.csv,sha256=B240BLwwcweHFrkYT4FA-yBcz7YgVnx4dQopSedQG9I,1702
61
+ pdd/data/llm_model.csv,sha256=LVnSbYRxI9UHJWP94eUA1YqwXc9Z6Et0V9lL0VO_4yU,1702
63
62
  pdd/prompts/auto_include_LLM.prompt,sha256=0t-Jmm5o6vVTmqsISTUiewqPT8bB389UZnJoHZvgtu4,13967
64
63
  pdd/prompts/bug_to_unit_test_LLM.prompt,sha256=--ysObDv9WzOEyJMuaKEdDHkRrR_1j0dmOtlAFr4YRg,1205
65
64
  pdd/prompts/change_LLM.prompt,sha256=W3sE6XZ2fb35XdqOykK1hDPtqkHSv9MZGD3sT8B8WjY,2083
@@ -91,9 +90,9 @@ pdd/prompts/trim_results_start_LLM.prompt,sha256=WwFlOHha4wzMLtRHDMI6GtcNdl2toE8
91
90
  pdd/prompts/unfinished_prompt_LLM.prompt,sha256=-JgBpiPTQZdWOAwOG1XpfpD9waynFTAT3Jo84eQ4bTw,1543
92
91
  pdd/prompts/update_prompt_LLM.prompt,sha256=_lGaxeVP4oF8yGqiN6yj6UE0j79lxfGdjsYr5w5KSYk,1261
93
92
  pdd/prompts/xml_convertor_LLM.prompt,sha256=YGRGXJeg6EhM9690f-SKqQrKqSJjLFD51UrPOlO0Frg,2786
94
- pdd_cli-0.0.16.dist-info/LICENSE,sha256=-1bjYH-CEjGEQ8VixtnRYuu37kN6F9NxmZSDkBuUQ9o,1062
95
- pdd_cli-0.0.16.dist-info/METADATA,sha256=XzqQ8wXovCkmh_taKrR_5eCJaEqZkrAiZGGMx0_czHE,6808
96
- pdd_cli-0.0.16.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
97
- pdd_cli-0.0.16.dist-info/entry_points.txt,sha256=Kr8HtNVb8uHZtQJNH4DnF8j7WNgWQbb7_Pw5hECSR-I,36
98
- pdd_cli-0.0.16.dist-info/top_level.txt,sha256=xjnhIACeMcMeDfVNREgQZl4EbTni2T11QkL5r7E-sbE,4
99
- pdd_cli-0.0.16.dist-info/RECORD,,
93
+ pdd_cli-0.0.18.dist-info/LICENSE,sha256=-1bjYH-CEjGEQ8VixtnRYuu37kN6F9NxmZSDkBuUQ9o,1062
94
+ pdd_cli-0.0.18.dist-info/METADATA,sha256=VJWrWxiY1bsmCtnL1PiizWO4m-AOMwd9g-UEwi2IkzE,6809
95
+ pdd_cli-0.0.18.dist-info/WHEEL,sha256=nn6H5-ilmfVryoAQl3ZQ2l8SH5imPWFpm1A5FgEuFV4,91
96
+ pdd_cli-0.0.18.dist-info/entry_points.txt,sha256=Kr8HtNVb8uHZtQJNH4DnF8j7WNgWQbb7_Pw5hECSR-I,36
97
+ pdd_cli-0.0.18.dist-info/top_level.txt,sha256=xjnhIACeMcMeDfVNREgQZl4EbTni2T11QkL5r7E-sbE,4
98
+ pdd_cli-0.0.18.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.8.0)
2
+ Generator: setuptools (75.8.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,52 +0,0 @@
1
- # To implement the `get_extension` function as described, we will follow the steps outlined in your request. We'll use the `pandas` library to read the CSV file, and we'll handle the environment variable for the file path. Here's how you can implement this function:
2
-
3
- # ```python
4
- import os
5
- import pandas as pd
6
-
7
- def get_extension(language):
8
- # Step 1: Load the environment variable PDD_PATH
9
- pdd_path = os.getenv('PDD_PATH')
10
- if not pdd_path:
11
- raise ValueError("Environment variable PDD_PATH is not set.")
12
-
13
- # Construct the full path to the CSV file
14
- csv_file_path = os.path.join(pdd_path, 'data', 'language_format.csv')
15
-
16
- # Step 2: Lower case the language string
17
- language_lower = language.lower()
18
-
19
- # Step 3: Load the CSV file and look up the file extension
20
- try:
21
- df = pd.read_csv(csv_file_path)
22
- except FileNotFoundError:
23
- raise FileNotFoundError(f"The file {csv_file_path} does not exist.")
24
-
25
- # Check if the language exists in the DataFrame
26
- row = df[df['language'].str.lower() == language_lower]
27
-
28
- # Step 4: Return the file extension or an empty string if not found
29
- if not row.empty:
30
- extension = row['extension'].values[0]
31
- return extension if isinstance(extension, str) and extension else ''
32
-
33
- return ''
34
-
35
- # Example usage:
36
- # Assuming the environment variable PDD_PATH is set correctly
37
- # print(get_extension('Python')) # Output: .py
38
- # ```
39
-
40
- # ### Explanation of the Code:
41
- # 1. **Environment Variable**: We use `os.getenv` to retrieve the `PDD_PATH` environment variable. If it's not set, we raise a `ValueError`.
42
- # 2. **Lowercase Language**: The input language string is converted to lowercase to ensure case-insensitive comparison.
43
- # 3. **Load CSV**: We use `pandas` to read the CSV file. If the file is not found, we raise a `FileNotFoundError`.
44
- # 4. **Lookup**: We filter the DataFrame to find the row corresponding to the given language. If found, we check if the extension is a valid string and return it; otherwise, we return an empty string.
45
- # 5. **Return Value**: If the language is not found, we return an empty string.
46
-
47
- # ### Note:
48
- # - Make sure to have the `pandas` library installed in your Python environment. You can install it using pip:
49
- # ```bash
50
- # pip install pandas
51
- # ```
52
- # - Ensure that the CSV file is structured correctly and located at the specified path.