pilot.linkstec 0.0.92__tar.gz → 0.0.94__tar.gz
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.
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/PKG-INFO +1 -1
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/pyproject.toml +1 -1
- pilot_linkstec-0.0.94/src/pilot/config/config_reader.py +95 -0
- pilot_linkstec-0.0.94/src/pilot/job/base/generate/generateJsonBaseJob.py +42 -0
- pilot_linkstec-0.0.94/src/pilot/job/base/generate/generateTextBaseJob.py +40 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/unit/impl/base_unit.py +2 -1
- pilot_linkstec-0.0.94/src/pilot/util/__init__.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot.linkstec.egg-info/PKG-INFO +1 -1
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot.linkstec.egg-info/SOURCES.txt +3 -0
- pilot_linkstec-0.0.92/src/pilot/config/config_reader.py +0 -133
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/LICENSE +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/README.md +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/setup.cfg +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/__init__.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/base/__init__.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/base/ai_call.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/base/ai_info.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/base/chage_file_tag_base.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/base/db_operation_base.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/base/delete_commnents_base.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/base/file_operation.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/base/get_file_encoding.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/base/make_parsing_java_file_order_base.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/base/split_file_base.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/client/__init__.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/client/ai_client.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/config/__init__.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/control/__init__.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/control/control_interface.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/control/impl/__init__.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/control/impl/base_controller.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/conver/__init__.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/conver/commentRemover.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/conver/converfileEncodding.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/conver/nkf_converter.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/create_python/__init__.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/create_python/config/__init__.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/create_python/create_python.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/create_python/sample/__init__.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/create_python/sample/child_sample/__init__.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/create_python/sample/child_sample/job/__init__.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/create_python/sample/config/__init__.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/db/__init__.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/db/create_table.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/db/db_connect.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/db/db_main.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/db/db_util.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/db/ddl/__init__.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/db/dml/__init__.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/db/sql_executor.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/db/sql_loader.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/db/sql_service.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/file_tool/__init__.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/file_tool/create_prompt_file.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/file_tool/json_file_tool.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/generater/__init__.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/generater/vertexai.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/job/__init__.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/job/base/__init__.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/job/base/convert/__init__.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/job/base/convert/encodingTransformerJob.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/job/base/convert/tabReplaceJob.py +0 -0
- {pilot_linkstec-0.0.92/src/pilot/job/base/generater → pilot_linkstec-0.0.94/src/pilot/job/base/generate}/__init__.py +0 -0
- {pilot_linkstec-0.0.92/src/pilot/job/base/program → pilot_linkstec-0.0.94/src/pilot/job/base/generater}/__init__.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/job/base/generater/generateJsonBaseJob.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/job/base/generater/generateTextBaseJob.py +0 -0
- {pilot_linkstec-0.0.92/src/pilot/job/base/program/cobol → pilot_linkstec-0.0.94/src/pilot/job/base/program}/__init__.py +0 -0
- {pilot_linkstec-0.0.92/src/pilot/job/base/program/cobol/convert → pilot_linkstec-0.0.94/src/pilot/job/base/program/cobol}/__init__.py +0 -0
- {pilot_linkstec-0.0.92/src/pilot/job/impl → pilot_linkstec-0.0.94/src/pilot/job/base/program/cobol/convert}/__init__.py +0 -0
- {pilot_linkstec-0.0.92/src/pilot/logging → pilot_linkstec-0.0.94/src/pilot/job/impl}/__init__.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/job/impl/base_job.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/job/job_interface.py +0 -0
- {pilot_linkstec-0.0.92/src/pilot/processor → pilot_linkstec-0.0.94/src/pilot/logging}/__init__.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/logging/logger.py +0 -0
- {pilot_linkstec-0.0.92/src/pilot/prompt → pilot_linkstec-0.0.94/src/pilot/processor}/__init__.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/processor/code_processor.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/processor/code_processor_pipeline.py +0 -0
- {pilot_linkstec-0.0.92/src/pilot/splitters → pilot_linkstec-0.0.94/src/pilot/prompt}/__init__.py +0 -0
- {pilot_linkstec-0.0.92/src/pilot/unit → pilot_linkstec-0.0.94/src/pilot/splitters}/__init__.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/splitters/cobolsplitter.py +0 -0
- {pilot_linkstec-0.0.92/src/pilot/unit/impl → pilot_linkstec-0.0.94/src/pilot/unit}/__init__.py +0 -0
- {pilot_linkstec-0.0.92/src/pilot/util → pilot_linkstec-0.0.94/src/pilot/unit/impl}/__init__.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/unit/unit_interface.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/util/files.py +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot.linkstec.egg-info/dependency_links.txt +0 -0
- {pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot.linkstec.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import configparser
|
|
2
|
+
import os
|
|
3
|
+
import inspect
|
|
4
|
+
from dataclasses import dataclass
|
|
5
|
+
from typing import List
|
|
6
|
+
|
|
7
|
+
@dataclass
|
|
8
|
+
class ConfigDTO:
|
|
9
|
+
work_space: str
|
|
10
|
+
threads: int
|
|
11
|
+
project: str
|
|
12
|
+
steps: list[str]
|
|
13
|
+
skipsteps: list[str]
|
|
14
|
+
runsteps: list[str]
|
|
15
|
+
multisteps: list[str]
|
|
16
|
+
|
|
17
|
+
class ConfigReader:
|
|
18
|
+
def __init__(self, filename = None):
|
|
19
|
+
filepath = None
|
|
20
|
+
if filename is None:
|
|
21
|
+
filepath = self.find_config_path()
|
|
22
|
+
|
|
23
|
+
if filename is not None:
|
|
24
|
+
cwd = os.getcwd()
|
|
25
|
+
filepath = os.path.join(cwd, 'config', filename)
|
|
26
|
+
if not os.path.exists(filepath):
|
|
27
|
+
raise FileNotFoundError(f"Configuration file not found: {filepath}")
|
|
28
|
+
|
|
29
|
+
self.config = configparser.ConfigParser()
|
|
30
|
+
self.config.optionxform = str
|
|
31
|
+
|
|
32
|
+
with open(filepath, 'r', encoding='utf-8') as f:
|
|
33
|
+
content = f.read()
|
|
34
|
+
if not content.lstrip().startswith('['):
|
|
35
|
+
content = '[DEFAULT]\n' + content
|
|
36
|
+
self.config.read_string(content)
|
|
37
|
+
|
|
38
|
+
@classmethod
|
|
39
|
+
def find_config_path(cls):
|
|
40
|
+
cwd = os.getcwd()
|
|
41
|
+
candidate_path = os.path.join(cwd, 'config', 'control.properties')
|
|
42
|
+
if os.path.exists(candidate_path):
|
|
43
|
+
return candidate_path
|
|
44
|
+
|
|
45
|
+
stack = inspect.stack()
|
|
46
|
+
for frame in stack:
|
|
47
|
+
caller_file = frame.filename
|
|
48
|
+
caller_dir = os.path.dirname(os.path.abspath(caller_file))
|
|
49
|
+
possible_path = os.path.abspath(os.path.join(caller_dir, '..', '..', 'config', 'control.properties'))
|
|
50
|
+
if os.path.exists(possible_path):
|
|
51
|
+
return possible_path
|
|
52
|
+
|
|
53
|
+
base_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..'))
|
|
54
|
+
fallback_path = os.path.join(base_dir, 'config', 'control.properties')
|
|
55
|
+
if os.path.exists(fallback_path):
|
|
56
|
+
return fallback_path
|
|
57
|
+
|
|
58
|
+
raise FileNotFoundError("control.properties not found in expected locations")
|
|
59
|
+
|
|
60
|
+
def get(self, section, option, fallback=None, cast_type=str):
|
|
61
|
+
try:
|
|
62
|
+
if cast_type == bool:
|
|
63
|
+
return self.config.getboolean(section, option)
|
|
64
|
+
elif cast_type == int:
|
|
65
|
+
return self.config.getint(section, option)
|
|
66
|
+
elif cast_type == float:
|
|
67
|
+
return self.config.getfloat(section, option)
|
|
68
|
+
else:
|
|
69
|
+
return self.config.get(section, option)
|
|
70
|
+
except (configparser.NoSectionError, configparser.NoOptionError):
|
|
71
|
+
return fallback
|
|
72
|
+
|
|
73
|
+
def get_dto(self) -> ConfigDTO:
|
|
74
|
+
input_path = self.get('DEFAULT', 'input_path', fallback='.')
|
|
75
|
+
work_space = self.get('DEFAULT', 'work_space', fallback='.')
|
|
76
|
+
threads = int(self.get('DEFAULT', 'threads', fallback=1))
|
|
77
|
+
project = self.get('DEFAULT', 'project', fallback='')
|
|
78
|
+
steps_str = self.get('DEFAULT', 'steps', fallback='')
|
|
79
|
+
steps = [s.strip() for s in steps_str.split(',')] if steps_str else []
|
|
80
|
+
skipsteps_str = self.get('DEFAULT', 'skipsteps', fallback='')
|
|
81
|
+
skipsteps = [s.strip() for s in skipsteps_str.split(',')] if skipsteps_str else []
|
|
82
|
+
runsteps_str = self.get('DEFAULT', 'runsteps', fallback='')
|
|
83
|
+
runsteps = [s.strip() for s in runsteps_str.split(',')] if runsteps_str else []
|
|
84
|
+
multisteps_str = self.get('DEFAULT', 'multisteps', fallback='')
|
|
85
|
+
multisteps = [s.strip() for s in multisteps_str.split(',')] if multisteps_str else []
|
|
86
|
+
|
|
87
|
+
return ConfigDTO(
|
|
88
|
+
work_space=work_space,
|
|
89
|
+
threads=threads,
|
|
90
|
+
project=project,
|
|
91
|
+
steps=steps,
|
|
92
|
+
skipsteps=skipsteps,
|
|
93
|
+
runsteps=runsteps,
|
|
94
|
+
multisteps=multisteps
|
|
95
|
+
)
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import json
|
|
2
|
+
import os
|
|
3
|
+
import threading
|
|
4
|
+
import time
|
|
5
|
+
|
|
6
|
+
from pilot.job.impl.base_job import BaseJob
|
|
7
|
+
|
|
8
|
+
from pilot.generater.vertexai import VertexAISingleton
|
|
9
|
+
|
|
10
|
+
class generateJsonBaseJob(BaseJob):
|
|
11
|
+
|
|
12
|
+
prompt_content: str
|
|
13
|
+
result_content: str
|
|
14
|
+
result_file_path: str
|
|
15
|
+
|
|
16
|
+
def run(self):
|
|
17
|
+
#with self._begin_file_lock:
|
|
18
|
+
# if not self.change_current_trg_to_begin():
|
|
19
|
+
# return
|
|
20
|
+
#prompt = self.get_file_content()
|
|
21
|
+
prompt = self.prompt_content
|
|
22
|
+
# トークン数チェック
|
|
23
|
+
vertexai = VertexAISingleton.get_instance()
|
|
24
|
+
token_count = vertexai.count_tokens(prompt)
|
|
25
|
+
if token_count == 0:
|
|
26
|
+
super().run()
|
|
27
|
+
return
|
|
28
|
+
if token_count > 900000:
|
|
29
|
+
print(f"警告: promptのトークン数が900000を超えています ({token_count} tokens)")
|
|
30
|
+
super().run()
|
|
31
|
+
return
|
|
32
|
+
# VertexAI で生成
|
|
33
|
+
start = time.time()
|
|
34
|
+
result = vertexai.generate_content(prompt)
|
|
35
|
+
end = time.time()
|
|
36
|
+
print(f"Ai 処理時間 {self.file_path}: {end - start:.2f}秒")
|
|
37
|
+
|
|
38
|
+
result_content = result.get('response', '')
|
|
39
|
+
data = json.loads(result_content)
|
|
40
|
+
with open(self.result_file_path, 'w', encoding='utf-8') as f:
|
|
41
|
+
json.dump(data, f, ensure_ascii=False, indent=2)
|
|
42
|
+
super().run()
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import json
|
|
2
|
+
import os
|
|
3
|
+
import threading
|
|
4
|
+
import time
|
|
5
|
+
|
|
6
|
+
from pilot.job.impl.base_job import BaseJob
|
|
7
|
+
|
|
8
|
+
from pilot.generater.vertexai import VertexAISingleton
|
|
9
|
+
|
|
10
|
+
class textBaseJob(BaseJob):
|
|
11
|
+
|
|
12
|
+
prompt_content: str
|
|
13
|
+
result_content: str
|
|
14
|
+
result_file_path: str
|
|
15
|
+
|
|
16
|
+
def run(self):
|
|
17
|
+
#with self._begin_file_lock:
|
|
18
|
+
# if not self.change_current_trg_to_begin():
|
|
19
|
+
# return
|
|
20
|
+
#prompt = self.get_file_content()
|
|
21
|
+
prompt = self.prompt_content
|
|
22
|
+
# トークン数チェック
|
|
23
|
+
vertexai = VertexAISingleton.get_instance()
|
|
24
|
+
token_count = vertexai.count_tokens(prompt)
|
|
25
|
+
if token_count == 0:
|
|
26
|
+
super().run()
|
|
27
|
+
return
|
|
28
|
+
if token_count > 900000:
|
|
29
|
+
print(f"警告: promptのトークン数が900000を超えています ({token_count} tokens)")
|
|
30
|
+
super().run()
|
|
31
|
+
return
|
|
32
|
+
# VertexAI で生成
|
|
33
|
+
start = time.time()
|
|
34
|
+
result = vertexai.generate_content(prompt)
|
|
35
|
+
end = time.time()
|
|
36
|
+
print(f"AI 処理時間 {self.file_path}: {end - start:.2f}秒")
|
|
37
|
+
result_content = result.get('response', '')
|
|
38
|
+
with open(self.result_file_path, 'w', encoding='utf-8') as f:
|
|
39
|
+
f.write(result_content)
|
|
40
|
+
super().run()
|
|
File without changes
|
|
@@ -56,6 +56,9 @@ src/pilot/job/base/__init__.py
|
|
|
56
56
|
src/pilot/job/base/convert/__init__.py
|
|
57
57
|
src/pilot/job/base/convert/encodingTransformerJob.py
|
|
58
58
|
src/pilot/job/base/convert/tabReplaceJob.py
|
|
59
|
+
src/pilot/job/base/generate/__init__.py
|
|
60
|
+
src/pilot/job/base/generate/generateJsonBaseJob.py
|
|
61
|
+
src/pilot/job/base/generate/generateTextBaseJob.py
|
|
59
62
|
src/pilot/job/base/generater/__init__.py
|
|
60
63
|
src/pilot/job/base/generater/generateJsonBaseJob.py
|
|
61
64
|
src/pilot/job/base/generater/generateTextBaseJob.py
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
import configparser
|
|
2
|
-
import inspect
|
|
3
|
-
import os
|
|
4
|
-
from dataclasses import dataclass
|
|
5
|
-
from typing import Optional
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
@dataclass
|
|
9
|
-
class ConfigDTO:
|
|
10
|
-
project: str
|
|
11
|
-
log_level: str
|
|
12
|
-
threads: int
|
|
13
|
-
lm_studio_api_url: str
|
|
14
|
-
lm_studio_model_name: str
|
|
15
|
-
work_space: str
|
|
16
|
-
copy_path: str
|
|
17
|
-
json_file_path:str
|
|
18
|
-
steps: list[str]
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
class ConfigReader:
|
|
22
|
-
_instance = None
|
|
23
|
-
_loaded = False
|
|
24
|
-
|
|
25
|
-
def __new__(cls, filepath=None):
|
|
26
|
-
if cls._instance is None:
|
|
27
|
-
cls._instance = super().__new__(cls)
|
|
28
|
-
return cls._instance
|
|
29
|
-
|
|
30
|
-
def __init__(self, filepath=None):
|
|
31
|
-
if self._loaded:
|
|
32
|
-
return
|
|
33
|
-
|
|
34
|
-
try:
|
|
35
|
-
if filepath is None:
|
|
36
|
-
filepath = self.find_config_path()
|
|
37
|
-
if not os.path.exists(filepath):
|
|
38
|
-
raise FileNotFoundError(f"設定ファイルが見つかりません: {filepath}")
|
|
39
|
-
|
|
40
|
-
self.config = configparser.ConfigParser()
|
|
41
|
-
self.config.optionxform = str
|
|
42
|
-
with open(filepath, 'r', encoding='utf-8') as f:
|
|
43
|
-
content = f.read()
|
|
44
|
-
if not content.lstrip().startswith('['):
|
|
45
|
-
content = '[DEFAULT]\n' + content
|
|
46
|
-
self.config.read_string(content)
|
|
47
|
-
|
|
48
|
-
self._loaded = True
|
|
49
|
-
except Exception as e:
|
|
50
|
-
print(f"設定ファイル読み込みエラー: {e}")
|
|
51
|
-
raise
|
|
52
|
-
|
|
53
|
-
@classmethod
|
|
54
|
-
def find_config_path(cls):
|
|
55
|
-
cwd = os.getcwd()
|
|
56
|
-
candidate_path = os.path.join(cwd, 'config', 'control.properties')
|
|
57
|
-
if os.path.exists(candidate_path):
|
|
58
|
-
return candidate_path
|
|
59
|
-
|
|
60
|
-
stack = inspect.stack()
|
|
61
|
-
for frame in stack:
|
|
62
|
-
caller_file = frame.filename
|
|
63
|
-
caller_dir = os.path.dirname(os.path.abspath(caller_file))
|
|
64
|
-
possible_path = os.path.abspath(os.path.join(caller_dir, '..', '..', 'config', 'control.properties'))
|
|
65
|
-
if os.path.exists(possible_path):
|
|
66
|
-
return possible_path
|
|
67
|
-
|
|
68
|
-
base_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..'))
|
|
69
|
-
fallback_path = os.path.join(base_dir, 'config', 'control.properties')
|
|
70
|
-
|
|
71
|
-
if os.path.exists(fallback_path):
|
|
72
|
-
return fallback_path
|
|
73
|
-
|
|
74
|
-
raise FileNotFoundError("control.properties が期待される場所に見つかりません")
|
|
75
|
-
|
|
76
|
-
def get(self, section, option, fallback=None, cast_type=str):
|
|
77
|
-
try:
|
|
78
|
-
if cast_type == bool:
|
|
79
|
-
return self.config.getboolean(section, option)
|
|
80
|
-
elif cast_type == int:
|
|
81
|
-
return self.config.getint(section, option)
|
|
82
|
-
elif cast_type == float:
|
|
83
|
-
return self.config.getfloat(section, option)
|
|
84
|
-
else:
|
|
85
|
-
return self.config.get(section, option)
|
|
86
|
-
except (configparser.NoSectionError, configparser.NoOptionError):
|
|
87
|
-
return fallback
|
|
88
|
-
|
|
89
|
-
def get_dto(self) -> ConfigDTO:
|
|
90
|
-
project = self.get('DEFAULT', 'project', fallback='')
|
|
91
|
-
log_level = self.get('DEFAULT', 'log_level', fallback='INFO')
|
|
92
|
-
threads = self.get('DEFAULT', 'threads', fallback=1, cast_type=int)
|
|
93
|
-
lm_studio_api_url = self.get('DEFAULT', 'lm_studio_api_url', fallback='.')
|
|
94
|
-
lm_studio_model_name = self.get('DEFAULT', 'lm_studio_model_name', fallback='.')
|
|
95
|
-
work_space = self.get('DEFAULT', 'work_space', fallback='.')
|
|
96
|
-
copy_path = self.get('DEFAULT', 'copy_file_path', fallback='.')
|
|
97
|
-
json_file_path = self.get('DEFAULT', 'json_file_path', fallback='.')
|
|
98
|
-
steps_str = self.get('DEFAULT', 'steps', fallback='')
|
|
99
|
-
|
|
100
|
-
steps = [s.strip() for s in steps_str.split(',')] if steps_str else []
|
|
101
|
-
|
|
102
|
-
return ConfigDTO(
|
|
103
|
-
project=project,
|
|
104
|
-
log_level=log_level,
|
|
105
|
-
threads=threads,
|
|
106
|
-
lm_studio_api_url=lm_studio_api_url,
|
|
107
|
-
lm_studio_model_name=lm_studio_model_name,
|
|
108
|
-
work_space=work_space,
|
|
109
|
-
copy_path=copy_path,
|
|
110
|
-
json_file_path=json_file_path,
|
|
111
|
-
steps=steps
|
|
112
|
-
)
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
# 全局設定管理用の変数
|
|
116
|
-
_global_config: Optional[ConfigDTO] = None
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
def init_config(filepath=None):
|
|
120
|
-
global _global_config
|
|
121
|
-
try:
|
|
122
|
-
config_reader = ConfigReader(filepath)
|
|
123
|
-
_global_config = config_reader.get_dto()
|
|
124
|
-
except Exception as e:
|
|
125
|
-
print(f"設定初期化エラー: {e}")
|
|
126
|
-
raise
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
def get_config() -> ConfigDTO:
|
|
130
|
-
global _global_config
|
|
131
|
-
if _global_config is None:
|
|
132
|
-
raise RuntimeError("設定が初期化されていません。init_config() を最初に呼び出してください。")
|
|
133
|
-
return _global_config
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/base/make_parsing_java_file_order_base.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/create_python/sample/config/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/job/base/convert/encodingTransformerJob.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/job/base/generater/generateJsonBaseJob.py
RENAMED
|
File without changes
|
{pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/job/base/generater/generateTextBaseJob.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pilot_linkstec-0.0.92/src/pilot/logging → pilot_linkstec-0.0.94/src/pilot/job/impl}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pilot_linkstec-0.0.92/src/pilot/processor → pilot_linkstec-0.0.94/src/pilot/logging}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{pilot_linkstec-0.0.92/src/pilot/prompt → pilot_linkstec-0.0.94/src/pilot/processor}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot/processor/code_processor_pipeline.py
RENAMED
|
File without changes
|
{pilot_linkstec-0.0.92/src/pilot/splitters → pilot_linkstec-0.0.94/src/pilot/prompt}/__init__.py
RENAMED
|
File without changes
|
{pilot_linkstec-0.0.92/src/pilot/unit → pilot_linkstec-0.0.94/src/pilot/splitters}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{pilot_linkstec-0.0.92/src/pilot/unit/impl → pilot_linkstec-0.0.94/src/pilot/unit}/__init__.py
RENAMED
|
File without changes
|
{pilot_linkstec-0.0.92/src/pilot/util → pilot_linkstec-0.0.94/src/pilot/unit/impl}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pilot_linkstec-0.0.92 → pilot_linkstec-0.0.94}/src/pilot.linkstec.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|