Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
C
ConfigHandler
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
FlexSensor-public
modules
ConfigHandler
Commits
7800bda9
Commit
7800bda9
authored
1 year ago
by
Schmidt, Christoph
Browse files
Options
Downloads
Patches
Plain Diff
Cleanup repo for version 0.0.2
parent
346f3da0
Branches
Branches containing commit
Tags
0.0.2
Tags containing commit
No related merge requests found
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
pyproject.toml
+1
-1
1 addition, 1 deletion
pyproject.toml
src/confighandler/controller/old/VFSObject.py
+0
-103
0 additions, 103 deletions
src/confighandler/controller/old/VFSObject.py
src/confighandler/view/old/ConfigViewOld.py
+0
-144
0 additions, 144 deletions
src/confighandler/view/old/ConfigViewOld.py
with
1 addition
and
248 deletions
pyproject.toml
+
1
−
1
View file @
7800bda9
[project]
name
=
"confighandler"
version
=
"0.0.
1
"
version
=
"0.0.
2
"
authors
=
[
{
name
=
"Christoph Schmidt"
,
email
=
"cschmidt.fs@gmail.com"
}
,
]
...
...
This diff is collapsed.
Click to expand it.
src/confighandler/controller/old/VFSObject.py
deleted
100644 → 0
+
0
−
103
View file @
346f3da0
import
os
from
abc
import
ABC
class
VFSObject
(
ABC
):
def
__init__
(
self
,
file_system_obj
:
str
=
None
,
pref_folder
:
str
=
None
,
keywords
:
dict
=
None
):
super
().
__init__
()
self
.
_raw_file_system_obj
=
file_system_obj
self
.
keywords
=
keywords
if
file_system_obj
is
None
or
file_system_obj
==
""
:
raise
ValueError
(
"
File input can
'
t be None or empty. No file given
"
)
if
pref_folder
is
None
or
pref_folder
==
""
:
self
.
pref_folder
=
"
./
"
else
:
self
.
pref_folder
=
pref_folder
self
.
set_obj
(
file_system_obj
=
self
.
_raw_file_system_obj
,
keywords
=
keywords
)
@property
def
filename
(
self
):
return
self
.
_raw_file_system_obj
@property
def
absolute
(
self
):
return
self
.
_abs
@property
def
relative
(
self
):
return
self
.
_rel
def
setup_folder
(
self
):
# Check if the given argument is a file
if
os
.
path
.
isfile
(
self
.
absolute
)
or
"
.
"
in
self
.
absolute
:
folder
=
os
.
path
.
split
(
self
.
absolute
)[
0
]
# joind the splitted string
folder
=
os
.
path
.
join
(
folder
)
else
:
folder
=
self
.
absolute
if
"
{
"
in
folder
:
print
(
self
.
absolute
)
raise
Exception
(
"
Can
'
t set folder for file with keywords in path.
"
)
# Try creating the output directory
if
not
os
.
path
.
exists
(
folder
):
try
:
os
.
makedirs
(
folder
)
except
Exception
as
exc
:
print
(
f
"
Could not create folder
{
folder
}
. Exception:
{
exc
}
"
)
raise
exc
# check if the folder exists
try
:
if
not
os
.
path
.
exists
(
folder
):
raise
FileNotFoundError
(
f
"
Folder
{
folder
}
does not exist
"
)
except
Exception
as
exc
:
print
(
f
"
Could not check if folder
{
folder
}
exists. Exception:
{
exc
}
"
)
self
.
_folder_set
=
True
print
(
f
"
Folder created:
{
folder
}
for
"
f
"
->
\n
{
self
.
absolute
}
\n
"
)
return
folder
def
create_object
(
self
):
if
self
.
_folder_set
:
return
self
else
:
return
self
.
setup_folder
()
def
set_obj
(
self
,
file_system_obj
:
str
=
None
,
keywords
:
dict
=
None
,
pref_folder
:
str
=
None
):
# Now replace all keywords
if
keywords
is
not
None
:
self
.
keywords
=
{
**
self
.
keywords
,
**
keywords
}
if
file_system_obj
is
not
None
:
self
.
_raw_file_system_obj
=
file_system_obj
if
pref_folder
is
not
None
:
self
.
pref_folder
=
pref_folder
# print(f"Setting pref_folder to {self.pref_folder} for {self.filename}")
self
.
file_system_obj
=
self
.
_raw_file_system_obj
self
.
_folder_set
=
False
self
.
_file
=
self
.
file_system_obj
self
.
_file_full
=
os
.
path
.
join
(
self
.
pref_folder
,
self
.
_file
)
self
.
_abs
=
os
.
path
.
abspath
(
self
.
_file_full
)
try
:
self
.
_rel
=
os
.
path
.
relpath
(
self
.
_file_full
,
os
.
getcwd
())
except
:
self
.
_rel
=
self
.
_abs
def
__str__
(
self
):
return
self
.
relative
def
__repr__
(
self
):
return
f
"
{
type
(
self
)
}
:
{
self
.
relative
}
"
This diff is collapsed.
Click to expand it.
src/confighandler/view/old/ConfigViewOld.py
deleted
100644 → 0
+
0
−
144
View file @
346f3da0
# -*- coding: utf-8 -*-
"""
Author(s): Christoph Schmidt <christoph.schmidt@tugraz.at>
Created: 2023-10-19 12:35
Package Version: 0.0.1
Description:
"""
import
logging
import
sys
from
PySide6.QtGui
import
QStandardItemModel
,
QStandardItem
from
PySide6.QtWidgets
import
QApplication
,
QWidget
,
QVBoxLayout
,
QLineEdit
,
QTreeView
,
QPushButton
from
confighandler.controller.VAutomatorConfig
import
VAutomatorConfig
from
confighandler.controller.GenericConfig
import
GenericConfig
class
ConfigViewOld
(
QWidget
):
def
__init__
(
self
,
vaut_config
:
VAutomatorConfig
):
super
().
__init__
()
# Load YAML file
#with open(yaml_file_path, 'r') as f:
self
.
data
=
vaut_config
# Create controller and populate with YAML data
self
.
model
=
QStandardItemModel
()
self
.
_populate_model
(
self
.
model
,
self
.
data
)
# Create view and set controller
self
.
view
=
QTreeView
()
self
.
view
.
setModel
(
self
.
model
)
self
.
view
.
expandAll
()
# Connect double-click signal to edit mode
self
.
view
.
doubleClicked
.
connect
(
self
.
_edit_mode
)
# Create textbox and button for value editing
self
.
textbox
=
QLineEdit
()
self
.
button
=
QPushButton
(
'
Update
'
)
self
.
button
.
clicked
.
connect
(
self
.
_update_value
)
# Create layout and add widgets
self
.
layout
=
QVBoxLayout
()
self
.
layout
.
addWidget
(
self
.
view
)
self
.
layout
.
addWidget
(
self
.
textbox
)
self
.
layout
.
addWidget
(
self
.
button
)
# Set widget layout
self
.
setLayout
(
self
.
layout
)
def
repopulate
(
self
,
data
):
self
.
data
=
data
self
.
model
=
QStandardItemModel
()
self
.
_populate_model
(
self
.
model
,
data
)
self
.
view
.
setModel
(
self
.
model
)
def
_populate_model
(
self
,
parent
,
data
):
"""
Recursively populate QStandardItemModel with YAML data
"""
if
isinstance
(
data
,
dict
):
for
key
,
value
in
data
.
items
():
item
=
QStandardItem
(
str
(
key
))
parent
.
appendRow
(
item
)
self
.
_populate_model
(
item
,
value
)
if
isinstance
(
data
,
GenericConfig
):
for
key
,
value
in
data
.
__dict__
.
items
():
item
=
QStandardItem
(
str
(
key
))
parent
.
appendRow
(
item
)
self
.
_populate_model
(
item
,
value
)
elif
isinstance
(
data
,
list
):
for
value
in
data
:
item
=
QStandardItem
(
str
(
value
))
parent
.
appendRow
(
item
)
#self._populate_model(item, str(data))
elif
isinstance
(
data
,
logging
.
Logger
):
pass
else
:
item
=
QStandardItem
(
str
(
data
))
parent
.
appendRow
(
item
)
def
_edit_mode
(
self
,
index
):
"""
Enter edit mode when double-clicked on item
"""
self
.
view
.
edit
(
index
)
def
_update_value
(
self
):
"""
Update YAML data and controller when button is clicked
"""
# Get selected index
index
=
self
.
view
.
currentIndex
()
# Get new value from textbox
new_value
=
self
.
textbox
.
text
()
# Update YAML data
self
.
_update_data
(
self
.
data
,
index
,
new_value
)
# Update controller
self
.
model
.
clear
()
self
.
_populate_model
(
self
.
model
,
self
.
data
)
self
.
view
.
expandAll
()
def
_update_data
(
self
,
data
,
index
,
new_value
):
"""
Recursively update YAML data
"""
if
index
.
column
()
==
0
:
# Update key
key
=
index
.
selected_measurements
()
data
[
new_value
]
=
data
.
pop
(
key
)
else
:
# Update value
parent
=
index
.
parent
().
selected_measurements
()
if
isinstance
(
data
,
dict
):
data
[
parent
][
index
.
row
()]
=
new_value
elif
isinstance
(
data
,
list
):
data
[
parent
][
index
.
row
()]
=
new_value
# Recursively update child nodes
for
row
in
range
(
self
.
model
.
rowCount
(
index
)):
child_index
=
self
.
model
.
index
(
row
,
0
,
index
)
self
.
_update_data
(
data
,
child_index
,
new_value
)
if
__name__
==
'
__main__
'
:
# Initialize Qt application
app
=
QApplication
(
sys
.
argv
)
vaut
=
VAutomatorConfig
.
load_config
(
"
./configs/init_config.yaml
"
)
# Create main window
window
=
ConfigViewOld
(
vaut
)
window
.
show
()
# Run Qt event loop
sys
.
exit
(
app
.
exec
())
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment