python_uml_class 0.2.0 → 0.2.1
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.
- checksums.yaml +4 -4
- data/.rspec_status +13 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +56 -41
- data/README.md +59 -2
- data/README_JA.md +99 -0
- data/img/class.png +0 -0
- data/lib/config/setting.json +23 -2
- data/lib/config.ru +0 -2
- data/lib/create_uml_class.rb +161 -34
- data/lib/css/index.css +6 -0
- data/lib/js/main.js +24 -10
- data/lib/python_uml_class/version.rb +1 -1
- data/lib/server.rb +12 -0
- data/lib/start.rb +28 -7
- data/lib/wsserver.rb +8 -1
- data/python_uml_class.gemspec +3 -0
- data/test_run.log +3617 -0
- data/test_run.rb +7 -0
- data/test_run_new.log +3083 -0
- data/test_script.py +1674 -0
- data/user_code.py +52 -0
- metadata +51 -2
data/user_code.py
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import json
|
|
2
|
+
import sqlite3
|
|
3
|
+
import re
|
|
4
|
+
from pydantic import BaseModel, Field
|
|
5
|
+
|
|
6
|
+
class SaveProductTool:
|
|
7
|
+
def _run(self, name: str, store: str = None, price: str = None, url: str = "", description: str = "", model_number: str = "", release_date: str = "", ram: str = "", ssd: str = "", **kwargs):
|
|
8
|
+
try:
|
|
9
|
+
if should_save:
|
|
10
|
+
cursor.execute('''
|
|
11
|
+
INSERT INTO products (name, store, price, url, description, model_number, release_date, ram, ssd, updated_at)
|
|
12
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP)
|
|
13
|
+
''', (name, store, price, url, description, model_number, release_date, ram, ssd))
|
|
14
|
+
if not msg:
|
|
15
|
+
msg = f"Saved product: {name} from {store} for {price}."
|
|
16
|
+
else:
|
|
17
|
+
msg = msg_prefix
|
|
18
|
+
|
|
19
|
+
if should_update:
|
|
20
|
+
if (price != curr_price_str):
|
|
21
|
+
cursor.execute('''
|
|
22
|
+
UPDATE products
|
|
23
|
+
SET price = ?, url = ?, description = ?, model_number = ?, release_date = ?, ram = ?, ssd = ?, store = ?, updated_at = CURRENT_TIMESTAMP
|
|
24
|
+
WHERE id = ?
|
|
25
|
+
''', (price, url, description, final_model, final_release, final_ram, final_ssd, store, current_cheapest['id']))
|
|
26
|
+
if not msg:
|
|
27
|
+
msg = f"Updated product {name} info."
|
|
28
|
+
else:
|
|
29
|
+
msg = msg_prefix
|
|
30
|
+
else:
|
|
31
|
+
msg = f"No changes for {name} at {store}."
|
|
32
|
+
|
|
33
|
+
if should_save or should_update:
|
|
34
|
+
cursor.execute("SELECT id, price FROM products WHERE name = ?", (name,))
|
|
35
|
+
rows = cursor.fetchall()
|
|
36
|
+
if len(rows) > 1:
|
|
37
|
+
rows_parsed = []
|
|
38
|
+
for r in rows:
|
|
39
|
+
rows_parsed.append({'id': r[0], 'val': parse_price_val(r[1])})
|
|
40
|
+
|
|
41
|
+
rows_parsed.sort(key=lambda x: x['val'])
|
|
42
|
+
winner = rows_parsed[0]
|
|
43
|
+
|
|
44
|
+
for loser in rows_parsed[1:]:
|
|
45
|
+
cursor.execute("DELETE FROM products WHERE id = ?", (loser['id'],))
|
|
46
|
+
msg += " (Cleaned up duplicate records)"
|
|
47
|
+
|
|
48
|
+
conn.commit()
|
|
49
|
+
conn.close()
|
|
50
|
+
return msg
|
|
51
|
+
except Exception as e:
|
|
52
|
+
return f"Error saving product: {str(e)}"
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: python_uml_class
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Masataka kuwayama
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-03-26 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: browser_app_base
|
|
@@ -38,6 +38,48 @@ dependencies:
|
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
40
|
version: '4.2'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: rack
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - ">="
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '3.0'
|
|
48
|
+
type: :runtime
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - ">="
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '3.0'
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: rackup
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - ">="
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '0'
|
|
62
|
+
type: :runtime
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - ">="
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '0'
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: webrick
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - ">="
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: '0'
|
|
76
|
+
type: :runtime
|
|
77
|
+
prerelease: false
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - ">="
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: '0'
|
|
41
83
|
description: Create a Python UML class diagram with PlangUml.
|
|
42
84
|
email:
|
|
43
85
|
- masataka.kuwayama@gmail.com
|
|
@@ -47,10 +89,12 @@ executables:
|
|
|
47
89
|
extensions: []
|
|
48
90
|
extra_rdoc_files: []
|
|
49
91
|
files:
|
|
92
|
+
- ".rspec_status"
|
|
50
93
|
- Gemfile
|
|
51
94
|
- Gemfile.lock
|
|
52
95
|
- LICENSE
|
|
53
96
|
- README.md
|
|
97
|
+
- README_JA.md
|
|
54
98
|
- Rakefile
|
|
55
99
|
- bin/start_python_uml_class.rb
|
|
56
100
|
- bin/start_python_uml_class.rbw
|
|
@@ -73,6 +117,11 @@ files:
|
|
|
73
117
|
- lib/wsserver.rb
|
|
74
118
|
- python_uml_class.gemspec
|
|
75
119
|
- sig/PythonUmlClass.rbs
|
|
120
|
+
- test_run.log
|
|
121
|
+
- test_run.rb
|
|
122
|
+
- test_run_new.log
|
|
123
|
+
- test_script.py
|
|
124
|
+
- user_code.py
|
|
76
125
|
homepage: https://github.com/kuwayama1971/PythonUmlClass
|
|
77
126
|
licenses:
|
|
78
127
|
- MIT
|