pilot.linkstec 0.0.99__py3-none-any.whl → 0.0.101__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.
@@ -1,5 +1,6 @@
1
1
  import os
2
2
  import shutil
3
+ import time
3
4
  from concurrent.futures import ThreadPoolExecutor
4
5
 
5
6
 
@@ -19,7 +20,7 @@ class BaseController(ControlInterface):
19
20
  return BaseUnit()
20
21
 
21
22
  def run(self,configfile: str = None):
22
- import time
23
+
23
24
  config_dto = ConfigReader(configfile).get_dto()
24
25
  unit = self._init_unit()
25
26
  unit.config_dto = config_dto
@@ -83,3 +84,24 @@ class BaseController(ControlInterface):
83
84
  pass
84
85
 
85
86
 
87
+ def copy_result_files_to_next_control_without_delete(from_configfile: str,to_configfile: str ):
88
+ from_config_dto = ConfigReader(from_configfile).get_dto()
89
+ to_config_dto = ConfigReader(to_configfile).get_dto()
90
+ from_runsteps = from_config_dto.steps
91
+ to_runsteps = to_config_dto.steps
92
+ from_workspace = from_config_dto.work_space
93
+ to_workspace = to_config_dto.work_space
94
+ from_fold = os.path.join(from_workspace, from_runsteps[-1])
95
+ to_fold = os.path.join(to_workspace, to_runsteps[0])
96
+ os.makedirs(to_fold, exist_ok=True)
97
+ shutil.copytree(from_fold, to_fold, dirs_exist_ok=True)
98
+ for root, _, files in os.walk(to_fold):
99
+ for fname in files:
100
+ if fname.endswith(('.trg', '.begin', '.end')):
101
+ try:
102
+ os.remove(os.path.join(root, fname))
103
+ except OSError:
104
+ pass
105
+
106
+
107
+
@@ -0,0 +1,17 @@
1
+ import textwrap
2
+
3
+
4
+ class create_file():
5
+ # 静的な文字列(詳細プロンプト)
6
+
7
+ detail_prompt: str = textwrap.dedent("""\
8
+
9
+ work_space=C:/workspace/lsc_sci/plsql_detail
10
+
11
+ sub_project_name=common
12
+ sub_source_folder=clearner
13
+ sub_sub_source_folder_1=cobol
14
+
15
+
16
+ ```
17
+ """).strip()
@@ -0,0 +1,18 @@
1
+ import textwrap
2
+
3
+
4
+ class create_file():
5
+ # 静的な文字列(詳細プロンプト)
6
+
7
+ detail_prompt: str = textwrap.dedent("""\
8
+
9
+ work_space={{WORK_SPACE}}
10
+
11
+ project={{PROJECT_NAME}}
12
+ steps={{STEP_NAME}}
13
+ runsteps={{STEP_NAME}}
14
+ multisteps=
15
+ threads=1
16
+
17
+ ```
18
+ """).strip()
@@ -0,0 +1,25 @@
1
+ from pathlib import Path
2
+
3
+ from pilot.job.impl.base_job import BaseJob
4
+
5
+ class DelimiterSwitcherJob(BaseJob):
6
+
7
+ def __init__(self, *args, **kwargs):
8
+ super().__init__(*args, **kwargs)
9
+ self.from_sep = ''
10
+ self.to_sep = ''
11
+ self.desc_file_path = None
12
+ self.src_file_path = None
13
+
14
+ def run(self):
15
+ replaced_text = []
16
+ if self.src_file_path is None:
17
+ self.src_file_path = Path(self.file_path)
18
+ with open(self.src_file_path, 'r', encoding='utf-8', newline='') as rf:
19
+ for line in rf:
20
+ replaced_text.append(line.replace(self.from_sep, self.to_sep))
21
+ if self.desc_file_path is None:
22
+ self.desc_file_path = Path(self.file_path)
23
+ with open(self.desc_file_path, 'w', encoding='utf-8', newline='') as wf:
24
+ wf.writelines(replaced_text)
25
+ super().run()
@@ -7,7 +7,7 @@ from pilot.job.impl.base_job import BaseJob
7
7
 
8
8
  from pilot.generater.vertexai import VertexAISingleton
9
9
 
10
- class generateJsonBaseJob(BaseJob):
10
+ class GenerateJsonBaseJob(BaseJob):
11
11
 
12
12
  prompt_content: str
13
13
  result_content: str
@@ -7,7 +7,7 @@ from pilot.job.impl.base_job import BaseJob
7
7
 
8
8
  from pilot.generater.vertexai import VertexAISingleton
9
9
 
10
- class textBaseJob(BaseJob):
10
+ class GenerateTextBaseJob(BaseJob):
11
11
 
12
12
  prompt_content: str
13
13
  result_content: str
@@ -0,0 +1,26 @@
1
+
2
+ from pilot.job.impl.base_job import BaseJob
3
+
4
+ class SpitPreDigit(BaseJob):
5
+ def run(self):
6
+
7
+ with open(self.file_path, 'r', encoding='utf-8') as f:
8
+ lines = f.readlines()
9
+
10
+ cleaned_lines = []
11
+ for line in lines:
12
+ # 先頭6文字を抽出
13
+ prefix = line[:6]
14
+
15
+ # 先頭6文字がすべて数字(かつ6文字以上ある)かチェック
16
+ if len(prefix) == 6 and prefix.isdigit():
17
+ # 数字だった場合は7文字目以降を保存
18
+ cleaned_lines.append(line[6:])
19
+ else:
20
+ # 数字でない(または6文字未満)場合はそのまま保存
21
+ cleaned_lines.append(line)
22
+
23
+ with open(self.file_path, 'w', encoding='utf-8') as f:
24
+ f.writelines(cleaned_lines)
25
+
26
+
@@ -81,7 +81,7 @@ class BaseJob(JobInterface):
81
81
 
82
82
  try:
83
83
  base_dir = os.path.join(self.config_dto.work_space, self.current_step)
84
- return os.path.relpath(self._file_path, base_dir)
84
+ return base_dir
85
85
  except ValueError:
86
86
  return self._file_path
87
87
 
@@ -331,7 +331,9 @@ class BaseJob(JobInterface):
331
331
  ジョブ実行前の前処理を行うメソッド。
332
332
  必要に応じてサブクラスでオーバーライドして使用する。
333
333
  """
334
- pass
334
+ if not self.change_current_trg_to_begin():
335
+ return False
336
+ return True
335
337
 
336
338
  def post_run(self):
337
339
  """
@@ -30,9 +30,27 @@ class BaseUnit(UnitInterface):
30
30
  job.step_index = index
31
31
  job.file_path = file_path
32
32
  if self.job_need_run(job, filename, index):
33
+ if index != 0:
34
+ if not job.pre_run():
35
+ continue
33
36
  job.run()
34
37
  if index != 0:
35
38
  job.post_run()
36
39
 
37
- def job_need_run(self, job:BaseJob,filename: str,index):
38
- return True
40
+ def job_need_run(self, job:BaseJob ,filename: str, step_index: int):
41
+ if step_index == 0:
42
+ return True
43
+ file_ext = file_ext = filename.split('.')[-1]
44
+ if file_ext == "trg":
45
+ # ★ trgファイルは、jobのfile_pathに設定する
46
+ job.current_trg_file_path = job.file_path
47
+ job.file_path = job.file_path.rsplit('.trg', 1)[0]
48
+ return True
49
+ elif file_ext == "end":
50
+ #job.copy_input_file_to_next_step(job.file_path.rsplit('.', 1)[0])
51
+ #job.create_next_step_end_trg_file()
52
+ return False
53
+ elif file_ext == "begin":
54
+ return False
55
+ else:
56
+ return False
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pilot.linkstec
3
- Version: 0.0.99
3
+ Version: 0.0.101
4
4
  Summary: pilot of the ship, a tool for managing and deploying Python projects.
5
5
  Author-email: wanglr <wanglr1980@gmail.com>
6
6
  License-Expression: MIT
@@ -16,18 +16,19 @@ pilot/config/config_reader.py,sha256=MchG-9j-Xfy8AquL_6tlvqQR65MFJ3c3hwWBl6IF2jw
16
16
  pilot/control/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
17
  pilot/control/control_interface.py,sha256=zGv380oQgAKPAIHDHeFdPYzhj2Ngo2T66NWlNloA7vY,124
18
18
  pilot/control/impl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
- pilot/control/impl/base_controller.py,sha256=I2_jvTlM7W5GYQEb-Pcc3jTbulIigQK6dppm0ZZ41l4,2778
19
+ pilot/control/impl/base_controller.py,sha256=049WVHCVfKyAiWHD1epLO8nzDbRDDOopXe0E4K401KA,3743
20
20
  pilot/conver/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
21
  pilot/conver/commentRemover.py,sha256=S8uwp9Glp0bdv4EFqf62WIcOTLiJZdracG2FAMKY1EY,3777
22
22
  pilot/conver/converfileEncodding.py,sha256=HnP-7o6V4YCEq8SA1iryyGUwbnWBkFbL16DxrTq7N-s,1582
23
- pilot/conver/nkf_converter.py,sha256=JqgThmXcdnTGMsLIHUEwe8sc0VGMqDaKCIQTg-UE3WE,1148
24
23
  pilot/create_python/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
24
  pilot/create_python/create_python.py,sha256=VQwL1KKw06ocVi-uRCL_l2rDiSaEr80R1LCt2u4ilOo,8795
26
25
  pilot/create_python/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
+ pilot/create_python/config/create_file.py,sha256=wyuM7x2FbAcBk78iU9sv1MKIWudn0bRnSTyAqF-3U6A,310
27
27
  pilot/create_python/sample/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
28
  pilot/create_python/sample/child_sample/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
29
  pilot/create_python/sample/child_sample/job/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
30
  pilot/create_python/sample/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
+ pilot/create_python/sample/config/properties.py,sha256=MgTI9ekuP5dE-bPhYhbZywb0AmgQxkCr2zmMKFUFJic,296
31
32
  pilot/db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
33
  pilot/db/create_table.py,sha256=Cz76da2nJe1y-_ASVMusKMcUgSgVCKHag5kglPSANEk,1004
33
34
  pilot/db/db_connect.py,sha256=cq7RsCptV2CQcLw9i4HqRe8DmnZbnMnwTXIQYXS8y_s,1742
@@ -47,34 +48,33 @@ pilot/job/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
48
  pilot/job/job_interface.py,sha256=EKtuj0IcdolP494aAgTtctgamyQIoFXVwRORwOQck7A,124
48
49
  pilot/job/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
50
  pilot/job/base/convert/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
+ pilot/job/base/convert/delimiterSwitcherJob.py,sha256=m5Y92XVbCjVWGBKzYJYX8wgLMnAKf_RyQNUOEXuVOwE,902
50
52
  pilot/job/base/convert/encodingTransformerJob.py,sha256=P6txCqAcQ4w999ttA_gmA4VKr6klvTz4SrQIYT1gv6U,279
51
53
  pilot/job/base/convert/tabReplaceJob.py,sha256=FtPLbWwDPgH1jGsK3y5_sY4lAZ4Lhsv7GQ-1A-QgAFE,743
52
54
  pilot/job/base/generate/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
- pilot/job/base/generate/generateJsonBaseJob.py,sha256=5klyS0tj9YTAcLVldcxUe1GXnWYXsQhvpcB7bRjq_n4,1377
54
- pilot/job/base/generate/generateTextBaseJob.py,sha256=yJVzeM_87T_lqo3x39j9Mi4IuKwGj_Ww3bxXUuY_F6o,1299
55
+ pilot/job/base/generate/generateJsonBaseJob.py,sha256=gFWOOYDkdylW-Ph7R7xFdGr-TSzZycFrW8r-8i10DmA,1377
56
+ pilot/job/base/generate/generateTextBaseJob.py,sha256=PcHXG0-mtAkiQi3Srkdk-4e3ThoSGnwzQ5QY_Nxxn84,1307
55
57
  pilot/job/base/program/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
58
  pilot/job/base/program/cobol/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
59
  pilot/job/base/program/cobol/convert/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
60
+ pilot/job/base/program/cobol/convert/spitPreDigit.py,sha256=uGmIKOSaxNmPkzy45i0wzhxX9wFh82b2nhJVqpHUGsY,858
58
61
  pilot/job/base/program/java/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
59
62
  pilot/job/base/program/java/generateDetailDesignPrompt.py,sha256=JcXxRQeJPpFNhli1nWOOxh8ZTdp_IN3-OoFQahHprjs,5651
60
63
  pilot/job/impl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
- pilot/job/impl/base_job.py,sha256=wTrAp9P6AxyQ98cD6kWa22gUTiXJc6TcTv7-cvize9c,14665
64
+ pilot/job/impl/base_job.py,sha256=xnZrs8xRniUKIltcmLbfoeqzVnOsMf2JVvp80Nq2oyY,14716
62
65
  pilot/logging/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
66
  pilot/logging/logger.py,sha256=TF7eGr3w8GK5v4sf71lDt97uVoBtCgqrZuCdbMmeQBU,1815
64
- pilot/processor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
- pilot/processor/code_processor.py,sha256=aIjRZ3eoiuLL7_g1LyEF0yhC3puVBZou3JJdKF1sQ2E,183
66
- pilot/processor/code_processor_pipeline.py,sha256=ZW2JQeAUbH_sYmgh3oI2O10FhbRS9ZNNBnNjjImH9GM,406
67
67
  pilot/prompt/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
68
  pilot/splitters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
69
69
  pilot/splitters/cobolsplitter.py,sha256=oPwxKRjA7TyXWaWV3jdy59lJZy1mRn6yxD9ivqFYCuY,5461
70
70
  pilot/unit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
71
  pilot/unit/unit_interface.py,sha256=fE8N4h_rZU-dWLHy9o0EE3yyErGmRyIuGUDb-zqe7qo,167
72
72
  pilot/unit/impl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
73
- pilot/unit/impl/base_unit.py,sha256=UV-RsCrSAknO6a2yZAQA0vD8Uo9yqJsNCXC5e8yZE6A,1348
73
+ pilot/unit/impl/base_unit.py,sha256=h6PMtd4ja0wa6mttFeI7rsv92yy96UgfLIU0QSs6Dmk,2108
74
74
  pilot/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
75
  pilot/util/files.py,sha256=v9uzfzo3Aq4xgnUIASEZeBJoA2nD9Qz_EA3P-FwzGFQ,1896
76
- pilot_linkstec-0.0.99.dist-info/licenses/LICENSE,sha256=6kbiFSfobTZ7beWiKnHpN902HgBx-Jzgcme0SvKqhKY,1091
77
- pilot_linkstec-0.0.99.dist-info/METADATA,sha256=cY0JNFeuhnw4qlmv3tuppqeOwymBhjIWhtGLddBjOXw,679
78
- pilot_linkstec-0.0.99.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
79
- pilot_linkstec-0.0.99.dist-info/top_level.txt,sha256=BijnVJdXnIPxxx3s60M848seL4Z12gNUPod6KPJxK9c,6
80
- pilot_linkstec-0.0.99.dist-info/RECORD,,
76
+ pilot_linkstec-0.0.101.dist-info/licenses/LICENSE,sha256=6kbiFSfobTZ7beWiKnHpN902HgBx-Jzgcme0SvKqhKY,1091
77
+ pilot_linkstec-0.0.101.dist-info/METADATA,sha256=XaaFjK3PuOxgm0EqJKm280YzIeGMijfuzot60N682aY,680
78
+ pilot_linkstec-0.0.101.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
79
+ pilot_linkstec-0.0.101.dist-info/top_level.txt,sha256=BijnVJdXnIPxxx3s60M848seL4Z12gNUPod6KPJxK9c,6
80
+ pilot_linkstec-0.0.101.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: setuptools (80.10.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,28 +0,0 @@
1
- import subprocess
2
- import sys
3
-
4
- class NkfConverter:
5
- def __init__(self, nkf_args=None):
6
- """
7
- コンストラクタ
8
- :param nkf_args: nkf に渡す引数のリスト(例: ['-w', '--overwrite'])
9
- 指定しない場合はデフォルト値を使用
10
- """
11
- if nkf_args is None:
12
- nkf_args = ['-w', '--overwrite']
13
- self.nkf_args = nkf_args
14
-
15
- def convert(self, file_path):
16
- """
17
- nkf を使ってファイルの文字コード変換を行う
18
- :param file_path: 変換対象のファイルパス
19
- :return: nkfの変換結果のバイト列、失敗したらNone
20
- """
21
- cmd = ['nkf32'] + self.nkf_args + [file_path]
22
- try:
23
- result = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=True)
24
- print(f"nkfの実行完了しました: {file_path}")
25
- except subprocess.CalledProcessError as e:
26
- print(f"nkfの実行でエラーが発生しました: {e.stderr.decode()}", file=sys.stderr)
27
- return None
28
- return result.stdout
File without changes
@@ -1,8 +0,0 @@
1
- from abc import ABC, abstractmethod
2
- from typing import List
3
-
4
-
5
- class CodeProcessor(ABC):
6
- @abstractmethod
7
- def process(self, lines: List[str]) -> List[str]:
8
- pass
@@ -1,14 +0,0 @@
1
- from typing import List
2
-
3
- from pilot.processor.code_processor import CodeProcessor
4
-
5
-
6
- class CodeProcessorPipeline:
7
- def __init__(self, processors: List[CodeProcessor]):
8
- self.processors = processors
9
-
10
- def run(self, lines: List[str]) -> List[str]:
11
- result = lines
12
- for processor in self.processors:
13
- result = processor.process(result)
14
- return result