Perplexity Pro / Cline

Clineを使います。

Roo Codeの方が面白そうだけど、長期で考えるとClineに乗った方が良いかもと思ったので。

visual studio code / 設定

Extensionsでclineで検索します。
installします。

Use your own API key

[API Provider]

OpenAI Compatible

[Base URL]

https://api.perplexity.ai/

[OpenAI API Key]

*****************************************************

[Model]

sonar

[Done] (上に戻ります)

Auto-approve: None

ときどき欲しくなる機能を作ってもらう

前の記事と同じです。

create a python script that outputs a list of files and their sizes under a specified folder.
the folder is specified as an argument at run time.
please output file sizes in descending order in human-friendly units.
for directory, recursively get the total file size under the directory.
for directory, output a list of directories. for each directory, output the total file size under that directory.

sonar-reasoningを使って60秒以上戻って来ない場合は無限loopになっているはずです。
Cancelしましょう。reasoningだからかな。

output

file nameは変えてます。

file_sizes_cline.py

import os
import sys

def get_file_sizes(directory):
    """Lists all files in the directory and their sizes."""
    files = os.listdir(directory)
    for file in files:
        path = os.path.join(directory, file)
        if os.path.isfile(path):
            size = os.path.getsize(path)
            print(f"{file}: {convert_size(size)}")

def get_directory_sizes(directory):
    """Recursively calculates the total size of files under each subdirectory."""
    directories = {}
    for item in os.listdir(directory):
        path = os.path.join(directory, item)
        if os.path.isdir(path):
            directories[item] = get_total_size(path)
    return directories

def get_total_size(directory):
    """Recursively calculates the total size of files in a directory."""
    total_size = 0
    for entry in os.scandir(directory):
        if entry.is_file():
            total_size += entry.stat().st_size
        elif entry.is_dir():
            total_size += get_total_size(entry.path)
    return total_size

def convert_size(size):
    """Converts size in bytes to human-friendly units."""
    for unit in ['', 'K', 'M', 'G', 'T', 'P', 'E', 'Z']:
        if abs(size) < 1024.0:
            return f"{size:3.1f}{unit}B"
        size /= 1024.0
    return f"{size:.1f}YB"

def main():
    if len(sys.argv) != 2:
        print("Usage: python script.py <directory_path>")
        return

    directory = sys.argv[1]
    if not os.path.exists(directory):
        print(f"Directory '{directory}' does not exist.")
        return

    print("Files and their sizes:")
    get_file_sizes(directory)

    print("\nDirectories and their total sizes:")
    directory_sizes = get_directory_sizes(directory)
    for dir_name, size in sorted(directory_sizes.items(), key=lambda item: item[1], reverse=True):
        print(f"{dir_name}: {convert_size(size)}")

if __name__ == "__main__":
    main()

まとめ

今度はdirectoryは降順だけどfile sizeが降順でない。

sonar-reasoningでpythonを実行したら無限ループに入ってしまうscriptを生成する場合もありました。先週はそんなことなかったのに。

広告

IT開発関連書とビジネス書が豊富な翔泳社の通販『SEshop』
さくらのレンタルサーバ
ムームードメイン
Oisix(おいしっくす)
らでぃっしゅぼーや
珈琲きゃろっと
エプソムソルト




«       »