pdd-cli 0.0.17__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.17")
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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: pdd-cli
3
- Version: 0.0.17
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.17-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.17).
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=tvHIVZIA85EiL6fzrFnrAoDc9gnpIZInN4FQ_4dFDew,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
@@ -30,8 +30,6 @@ pdd/generate_output_paths.py,sha256=zz42GTx9eGyWIYSl3jcWvtJRGnieC3eoPM6DIVcWz2k,
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_0_0_20250221_234728.py,sha256=ZSsbi7n-tFw-7RQX7c3pV1qWsRt72qS_3AlAYjV53jA,2393
34
- pdd/get_extension_1_1_1_0_20250221_230416.py,sha256=ZSsbi7n-tFw-7RQX7c3pV1qWsRt72qS_3AlAYjV53jA,2393
35
33
  pdd/get_jwt_token.py,sha256=BGxqMh7qf2mG-TFw7JlV941O9XtrW22L_dRoS_UZNjM,11560
36
34
  pdd/get_language.py,sha256=yxyQqVEb5H3ep3Hc6XgAl3vMLTHD5OIs8ZSekB493GA,1438
37
35
  pdd/git_update.py,sha256=Ya7eI7YFtGIpT7FdziFJfnFkiZlj8I9Lh98lqtXfClc,2855
@@ -60,7 +58,7 @@ pdd/update_main.py,sha256=5a4nsOOaAXULdk0BS9pj4blZ_QHBFeET37uaAqoJI2g,3912
60
58
  pdd/update_prompt.py,sha256=OdPRIAMu7OBx7E4SOU95hWgdtBY4oO8XOe1dvPChMlU,4351
61
59
  pdd/xml_tagger.py,sha256=NcyWacoXarRi6_16pchMhh1M7V-Gfz1cQImO_If2ia4,4241
62
60
  pdd/data/language_format.csv,sha256=xUTmFHXSBVBRfPV-NKG3oWo5_ped5ukP-ekFcIlVzJk,877
63
- pdd/data/llm_model.csv,sha256=B240BLwwcweHFrkYT4FA-yBcz7YgVnx4dQopSedQG9I,1702
61
+ pdd/data/llm_model.csv,sha256=LVnSbYRxI9UHJWP94eUA1YqwXc9Z6Et0V9lL0VO_4yU,1702
64
62
  pdd/prompts/auto_include_LLM.prompt,sha256=0t-Jmm5o6vVTmqsISTUiewqPT8bB389UZnJoHZvgtu4,13967
65
63
  pdd/prompts/bug_to_unit_test_LLM.prompt,sha256=--ysObDv9WzOEyJMuaKEdDHkRrR_1j0dmOtlAFr4YRg,1205
66
64
  pdd/prompts/change_LLM.prompt,sha256=W3sE6XZ2fb35XdqOykK1hDPtqkHSv9MZGD3sT8B8WjY,2083
@@ -92,9 +90,9 @@ pdd/prompts/trim_results_start_LLM.prompt,sha256=WwFlOHha4wzMLtRHDMI6GtcNdl2toE8
92
90
  pdd/prompts/unfinished_prompt_LLM.prompt,sha256=-JgBpiPTQZdWOAwOG1XpfpD9waynFTAT3Jo84eQ4bTw,1543
93
91
  pdd/prompts/update_prompt_LLM.prompt,sha256=_lGaxeVP4oF8yGqiN6yj6UE0j79lxfGdjsYr5w5KSYk,1261
94
92
  pdd/prompts/xml_convertor_LLM.prompt,sha256=YGRGXJeg6EhM9690f-SKqQrKqSJjLFD51UrPOlO0Frg,2786
95
- pdd_cli-0.0.17.dist-info/LICENSE,sha256=-1bjYH-CEjGEQ8VixtnRYuu37kN6F9NxmZSDkBuUQ9o,1062
96
- pdd_cli-0.0.17.dist-info/METADATA,sha256=qUaf1QAujAPdv6HU36UQPfg7DT65bHrcWYhtSLVs5AM,6808
97
- pdd_cli-0.0.17.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
98
- pdd_cli-0.0.17.dist-info/entry_points.txt,sha256=Kr8HtNVb8uHZtQJNH4DnF8j7WNgWQbb7_Pw5hECSR-I,36
99
- pdd_cli-0.0.17.dist-info/top_level.txt,sha256=xjnhIACeMcMeDfVNREgQZl4EbTni2T11QkL5r7E-sbE,4
100
- pdd_cli-0.0.17.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.
@@ -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.