Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Version 2 upgrade #72

Merged
merged 371 commits into from
Mar 27, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
371 commits
Select commit Hold shift + click to select a range
617790e
Fix docstrings
davidfokkema Jun 6, 2023
94f7ad5
Refactored paste cells
davidfokkema Jun 6, 2023
1172595
Remove print()
davidfokkema Jun 6, 2023
5ac9a3e
Prevent infinite loop trying to lock in variables
davidfokkema Jun 6, 2023
bdae78f
Extracted array_to_text()
davidfokkema Jun 6, 2023
0550acc
Added fixme label
davidfokkema Jun 6, 2023
3e70c19
Removed irrelevant FIXME comments
davidfokkema Jun 7, 2023
e6839c3
Added column label and labels methods
davidfokkema Jun 7, 2023
7038c51
WIP: started refactoring plot tab code
davidfokkema Jun 9, 2023
d699bc5
WIP: refactoring and testing plot model
davidfokkema Jun 16, 2023
7f9350b
Split up init test
davidfokkema Jun 16, 2023
23a97f3
Move connect() calls to new method
davidfokkema Jun 16, 2023
25e29f6
Integrated PlotTab test script runs, for now
davidfokkema Jun 16, 2023
f59baab
Test create_plot
davidfokkema Jun 20, 2023
87b287d
Set initial x and y plot labels
davidfokkema Jun 20, 2023
a8dfd82
Added docstrings
davidfokkema Jun 20, 2023
0306c3b
Test update_ui, _plot
davidfokkema Jun 20, 2023
a3088d4
Test adjusting limits
davidfokkema Jun 20, 2023
0a67ae6
Test and fix info box
davidfokkema Jun 20, 2023
00eaf94
Fit object belongs on model
davidfokkema Jun 20, 2023
785ba0b
Update axis labels
davidfokkema Jun 22, 2023
6ab3541
Refactored setting plot limits
davidfokkema Jun 25, 2023
21f21f9
Click button to reset plot limits
davidfokkema Jun 25, 2023
5912126
Refactored update model expression
davidfokkema Jun 25, 2023
554d321
Refactored get parameter names
davidfokkema Jun 26, 2023
3657844
Store model when updating expression
davidfokkema Jun 26, 2023
a292689
Attribute fit -> has_fit
davidfokkema Jun 26, 2023
d252323
Refactored update parameters
davidfokkema Jun 26, 2023
9397a06
Parameters is an attribute and is updated automatically
davidfokkema Jun 26, 2023
8cb2723
Fix updating parameters
davidfokkema Jun 26, 2023
9b8a0f0
Refactored fit domain
davidfokkema Jun 27, 2023
9cbbfe0
Remove print-statement, add FIXME
davidfokkema Jun 27, 2023
3cf34b8
Don't set fit_domain on init of model
davidfokkema Jun 27, 2023
1b7e415
Test toggle fit domain
davidfokkema Jun 27, 2023
e943ef2
Test get fit curve x limits
davidfokkema Jun 27, 2023
f77e440
Disable updated_plot_range method
davidfokkema Jun 27, 2023
353aac2
Update parameter values in model
davidfokkema Jun 29, 2023
b5b4ae2
Refactored plot initial model
davidfokkema Jun 29, 2023
5557dfd
Test evaluate model
davidfokkema Jun 30, 2023
7d613bb
Update docstring
davidfokkema Jun 30, 2023
0ef4498
Refactored curve fitting methods
davidfokkema Jul 2, 2023
7e776ea
Optionally use fit domain
davidfokkema Jul 2, 2023
0d5f53c
Toggle use of fit domain
davidfokkema Jul 2, 2023
851b72a
Rename update_bestfit_plot() method
davidfokkema Jul 2, 2023
a99f815
Invalidate best fit when appropriate
davidfokkema Jul 2, 2023
d0fea88
Remove unused methods
davidfokkema Jul 2, 2023
7a00fac
Redraw curves when appropriate
davidfokkema Jul 2, 2023
9dbd1f8
Remove name and label when removing column
davidfokkema Jul 2, 2023
429f88a
Only x column may be part of model expression
davidfokkema Jul 2, 2023
fbfbe9c
Fix plot info box
davidfokkema Jul 2, 2023
d7e60df
Fix using _name_ of x-column
davidfokkema Jul 7, 2023
70133b6
Merge branch 'main' into version-2
davidfokkema Jul 16, 2023
ef6fc35
Test different data checksum options
davidfokkema Jul 18, 2023
c0dd743
Only reset best fit when the model actually changed
davidfokkema Jul 18, 2023
41a668a
Fix dialog icon Enums
davidfokkema Jul 18, 2023
53f6396
Really make sure to update all plot curves
davidfokkema Jul 18, 2023
9f73038
Rename method
davidfokkema Jul 18, 2023
904cf3a
Implemented best fit data checksum
davidfokkema Jul 18, 2023
2b53d32
Invalidate best fit if data is nonidentical
davidfokkema Jul 18, 2023
7314b54
Verify all plot data when changing tabs
davidfokkema Jul 18, 2023
f852277
Check for x/y error, don't try/except
davidfokkema Jul 21, 2023
5809193
Invalidate fit when updating parameter value or bounds
davidfokkema Jul 21, 2023
2fa200a
Axis limits must work for 0 and not just None
davidfokkema Jul 21, 2023
aeb2e97
Merge branch 'refactor_with_tests' into version-2
davidfokkema Jul 21, 2023
9103c73
Added newline
davidfokkema Jul 21, 2023
9d98fb8
Remove unused imports
davidfokkema Jul 21, 2023
00d290e
Added type hint
davidfokkema Jul 26, 2023
07d15bc
Update Pandas to version 2.0
davidfokkema Jul 26, 2023
7ba2aa0
Create test_project_files.py
davidfokkema Jul 26, 2023
807e7c8
Each sheet needs an ID for referencing
davidfokkema Jul 27, 2023
872dd43
Plot tabs have a name
davidfokkema Jul 27, 2023
5003fa5
Use Pydantic to convert application state to json
davidfokkema Jul 27, 2023
448160e
WIP: loading project from json
davidfokkema Jul 28, 2023
3187539
Migrate from old resources API to files()
davidfokkema Jul 28, 2023
bf2ad1e
Load data sheets into application
davidfokkema Jul 28, 2023
11a8e5c
Finished load project from json data
davidfokkema Jul 28, 2023
d6846fc
Separate save/load model from json
davidfokkema Jul 28, 2023
6353f61
Save/load to and from paths
davidfokkema Jul 28, 2023
fadf703
Improve add_sheet behaviour
davidfokkema Jul 28, 2023
a90c778
Restore active tab from project
davidfokkema Jul 28, 2023
37d1238
Fix circular import due to type hints
davidfokkema Jul 28, 2023
0279f93
Open and save projects
davidfokkema Jul 28, 2023
5cf5ea0
Don't use statusbar for now
davidfokkema Jul 31, 2023
0754461
Fix import which is not a problem during tests
davidfokkema Jul 31, 2023
dc2f29f
Start with an empty sheet
davidfokkema Jul 31, 2023
8b04ac5
Restoring data sheet must call begin/end reset model
davidfokkema Jul 31, 2023
7cf51bd
Make calculated column expressions always a str
davidfokkema Jul 31, 2023
016b66d
WIP: importing legacy projects
davidfokkema Jul 31, 2023
ebf7f14
Fix test for 'empty' column
davidfokkema Aug 1, 2023
18b84a6
Finished importing legacy projects
davidfokkema Aug 1, 2023
de4d942
Clarify docstring for verify_best_fit_data()
davidfokkema Aug 1, 2023
83d9278
Remove _is_calculated_column_valid from project file
davidfokkema Aug 4, 2023
e7cf79c
Fix test
davidfokkema Aug 4, 2023
a80b11d
Plots now have an id
davidfokkema Aug 4, 2023
1839215
Split tabs to plots and sheets in project files
davidfokkema Aug 4, 2023
2f4f4e7
Remove redundant function
davidfokkema Sep 15, 2023
2f493e4
add_sheet has good default
davidfokkema Sep 15, 2023
d66e92e
Legacy projects load again
davidfokkema Sep 15, 2023
5a6d49a
Correctly load parameter attributes from project
davidfokkema Sep 16, 2023
c75330d
There are always error values
davidfokkema Sep 16, 2023
c8e3229
Remove old save/load code
davidfokkema Sep 16, 2023
217e500
Let parameters update on focus and check for changed values
davidfokkema Jan 8, 2024
66e7d9d
Fix refresh_ui test
davidfokkema Jan 8, 2024
767a9ae
Include setting fit domain in test
davidfokkema Jan 11, 2024
6f91ea9
Make model_expression private
davidfokkema Jan 11, 2024
ea4f52a
Make model private
davidfokkema Jan 11, 2024
b431573
Make parameters private
davidfokkema Jan 11, 2024
74fc106
Make fit domain private
davidfokkema Jan 11, 2024
4c2998b
Make fit data checksum private
davidfokkema Jan 11, 2024
ea9d7eb
Make use fit domain private
davidfokkema Jan 11, 2024
14cb4ba
Reorder attributes
davidfokkema Jan 11, 2024
38820cc
Remove old throwaway test
davidfokkema Jan 11, 2024
76955a8
Reimplemented parameter name read access
davidfokkema Jan 11, 2024
7e07a0e
Save/load uses private attributes
davidfokkema Jan 11, 2024
1a4c863
Setters for parameter value, min, max
davidfokkema Jan 11, 2024
0a4ddf3
PlotTab uses new parameter setters
davidfokkema Jan 11, 2024
b0946b1
Getters and setters for fit domain
davidfokkema Jan 11, 2024
1aab7ed
Refactored setting fit domain bounds
davidfokkema Jan 11, 2024
48a8587
Fixed toggle use of fit domain
davidfokkema Jan 11, 2024
4f35a86
Fix and test update parameters from model
davidfokkema Jan 12, 2024
6688be8
Update fit domain widgets from model
davidfokkema Jan 12, 2024
a3c085b
Block signals when refreshing parameter UI
davidfokkema Jan 12, 2024
5e31b78
Draw new model curves when changing fit domain
davidfokkema Jan 12, 2024
e634192
Suppress test error
davidfokkema Jan 12, 2024
dd39248
Explicitly change Inf to Nan
davidfokkema Jan 12, 2024
d8e311a
Make draw curve options an IntEnum
davidfokkema Jan 15, 2024
ca3be14
Streamline use of DrawCurve Enum
davidfokkema Jan 15, 2024
2bc3c53
Store draw curve option in project files
davidfokkema Jan 15, 2024
45b2efd
Remove old rename method
davidfokkema Jan 15, 2024
6efca09
Store option enum value, not widget index
davidfokkema Jan 16, 2024
81a3668
Test loading legacy projects
davidfokkema Jan 16, 2024
74f3ec3
Save show initial fit in project files
davidfokkema Jan 16, 2024
6fcef41
Remove old throw-away tests
davidfokkema Jan 16, 2024
a7121c1
Create test_app.py
davidfokkema Jan 18, 2024
4fca380
Test and fix various tab closing edge cases
davidfokkema Jan 18, 2024
aa7afa1
Tell which plots are about to be closed
davidfokkema Jan 18, 2024
6a2d3a7
Renamed methods
davidfokkema Jan 19, 2024
eacb559
Show GUI as skipped test
davidfokkema Jan 22, 2024
98e4be8
Do not remove a column which is used by a plot
davidfokkema Jan 22, 2024
b30b2b1
Do not remove a column which is used by calculated columns
davidfokkema Jan 23, 2024
a3d50c6
More consequent model / data_model naming
davidfokkema Jan 23, 2024
55df47a
Quote plot titles and column names
davidfokkema Jan 23, 2024
e6ec4e9
Allow multiple columns that use each other to be removed
davidfokkema Jan 23, 2024
50a4c6f
Remove unused method
davidfokkema Jan 23, 2024
55b386c
Use scrollbuttons for too many open tabs
davidfokkema Jan 23, 2024
11cd42f
Fix sheet/plot nums and duplicate sheet
davidfokkema Jan 23, 2024
ee3a6a3
Export CSV files
davidfokkema Jan 25, 2024
91fc72a
Export CSV through QDataModel
davidfokkema Jan 25, 2024
ecb30e3
All sheet names now have a space
davidfokkema Jan 25, 2024
b1e15e2
Import CSV files in empty sheet
davidfokkema Jan 26, 2024
6194cf3
Merge CSV with pre-existing data in sheet
davidfokkema Jan 26, 2024
3f35e6e
Implemented duplicate sheet (with plots)
davidfokkema Feb 6, 2024
5cb0cdb
Implemented duplicate plot
davidfokkema Feb 8, 2024
627770b
Removed unused parameter
davidfokkema Feb 8, 2024
1246486
Add colon to text labels
davidfokkema Feb 8, 2024
e9e4ea4
Add ability to change plot data sources
davidfokkema Feb 8, 2024
adc406e
Refactored change plot data source
davidfokkema Feb 8, 2024
911de02
Warning dialog was moved
davidfokkema Feb 8, 2024
30f0e57
Show warning when either x or y columns are not selected
davidfokkema Feb 8, 2024
6a2d540
Test change plot data source
davidfokkema Feb 8, 2024
2b9a175
Update test_project_files.py
davidfokkema Feb 8, 2024
a166bb1
Added rename sheet and plot
davidfokkema Feb 9, 2024
1968f42
Fixed exporting plots
davidfokkema Feb 9, 2024
30e1f02
Added graph previews
davidfokkema Feb 9, 2024
1248479
Refactored show exception dialog
davidfokkema Feb 9, 2024
3a5ba52
Started work on MultiPlotTab
davidfokkema Feb 12, 2024
291cb23
Draw plots in MultiPlot
davidfokkema Feb 12, 2024
d844bb3
Add and remove plots
davidfokkema Feb 12, 2024
8284cad
Change plot color
davidfokkema Feb 12, 2024
38d6707
Fix error bars
davidfokkema Feb 12, 2024
cd72cf0
Draw fit curve and update plot name
davidfokkema Feb 12, 2024
9b7ff01
Update MultiPlot UI from model
davidfokkema Feb 12, 2024
a0abc80
Fix: update UI axis labels from model
davidfokkema Feb 12, 2024
b7fa293
Save and load multiplots
davidfokkema Feb 13, 2024
3e1f7e1
Save/load axis limits, plus UI fixes
davidfokkema Feb 13, 2024
2d56359
Create multiplot from plot
davidfokkema Feb 13, 2024
82f06e0
Preview and export multiplot
davidfokkema Feb 13, 2024
bac3921
Legacy projects don't have multiplots
davidfokkema Feb 13, 2024
4ca13e2
Fix: use fixed state of parameters
davidfokkema Feb 13, 2024
ec19119
Rename multiplots
davidfokkema Feb 13, 2024
5a986e4
When closing sheets, also list and close multiplot
davidfokkema Feb 15, 2024
91cc461
Skip 'show GUI' test
davidfokkema Feb 16, 2024
aa0fe4e
Don't include author name in install path on Windows
davidfokkema Feb 16, 2024
e5289a7
Close plot with associated multiplots
davidfokkema Feb 22, 2024
b53708f
Refactored close tab with children
davidfokkema Feb 22, 2024
366daa5
Renamed variable
davidfokkema Feb 22, 2024
db15ec7
Removed duplicated method
davidfokkema Feb 22, 2024
daf4be9
Test closing mulitplot
davidfokkema Feb 22, 2024
06e403f
Implemented a legend for MultiPlot
davidfokkema Feb 23, 2024
2eefd80
Test that duplicated plot ids are unique
davidfokkema Feb 23, 2024
37b1fae
Use newest PySide6
davidfokkema Feb 23, 2024
4729e2b
Use checkbox labels in multiplot
davidfokkema Feb 23, 2024
bf79aeb
Keep cursor position when editing column name
davidfokkema Feb 23, 2024
6b5aec6
Handle SyntaxError in column expressions
davidfokkema Feb 23, 2024
f970373
Draw red border around invalid column expressions
davidfokkema Feb 23, 2024
cf46859
Show red border around invalid models
davidfokkema Feb 23, 2024
6b3b3ee
Implement open file action on MacOS
davidfokkema Feb 23, 2024
ee7b85b
Implement open file action on Windows
davidfokkema Feb 25, 2024
f21cfea
Fix update dialog
davidfokkema Feb 25, 2024
e7574ee
Fix event handler return value
davidfokkema Feb 25, 2024
5ad31a7
Fix opening some legacy projects
davidfokkema Feb 26, 2024
5726525
Catch fit errors and present helpful dialog
davidfokkema Feb 26, 2024
56b6118
Show dialog when recent file doesn't exist anymore
davidfokkema Feb 26, 2024
8f5287d
Add Create Plot menu item
davidfokkema Feb 26, 2024
4005c53
I don't see any difference: enabled by default?
davidfokkema Feb 26, 2024
5836b03
Improved docstring
davidfokkema Feb 26, 2024
08e4cd2
Reorder fit results
davidfokkema Feb 26, 2024
47bc57e
Sort parameters in UI and fit results
davidfokkema Feb 26, 2024
7aab3d7
WIP: mark project dirty on changes
davidfokkema Feb 26, 2024
5bc8c13
Changing plot options now marks the project dirty
davidfokkema Feb 26, 2024
7178aca
MultiPlot now also correctly marks project dirty
davidfokkema Feb 26, 2024
a67c32f
Cleaned up imports
davidfokkema Feb 26, 2024
696d555
Remove some FIXMEs and debug print statement
davidfokkema Feb 26, 2024
8473aa2
Remove old code
davidfokkema Feb 26, 2024
0523a88
Fixed paste cells selection behaviour
davidfokkema Feb 27, 2024
7b7124d
Remove debug print statement
davidfokkema Feb 27, 2024
b9538bf
Superfluous, but necessary
davidfokkema Feb 27, 2024
421efac
Release 2.0.beta1
davidfokkema Feb 27, 2024
97b81e7
Release version 2.0b1
davidfokkema Feb 27, 2024
56a5536
Update gh action and dependencies for Python 3.11
davidfokkema Feb 27, 2024
02a079e
Fix project marked dirty when model expression unchanged
davidfokkema Feb 27, 2024
5cd79e1
Release version 2.0b2
davidfokkema Feb 27, 2024
ffe8e5d
Don't delete temporary file on close
davidfokkema Feb 27, 2024
679f817
Delete temporary file manually
davidfokkema Feb 28, 2024
8b57a2d
Release version 2.0b3
davidfokkema Feb 28, 2024
7ffa72b
Improved comment
davidfokkema Mar 7, 2024
b0ba588
Don't ask confirmation when import CSV on empty sheet
davidfokkema Mar 7, 2024
b387b61
Remove unused constant
davidfokkema Mar 7, 2024
6fe5fc6
New sheets always get 'x' and 'y' columns
davidfokkema Mar 7, 2024
a0efdc9
Show error when x or y not selected for plot
davidfokkema Mar 8, 2024
4acdf4a
Correctly set parent attribute for all dialogs
davidfokkema Mar 8, 2024
c824516
Fix checkbox and missing model in loading legacy projects
davidfokkema Mar 11, 2024
830f339
Implement dark mode color scheme
davidfokkema Mar 11, 2024
a92c30d
Set initial fit domain and draw curve fixes
davidfokkema Mar 18, 2024
ecbf236
Fix foobar for fit error dialog
davidfokkema Mar 21, 2024
be3f479
Start using a concrete syntax tree (cst)
davidfokkema Mar 23, 2024
4443681
Use parentheses and newlines to separate parts of your model
davidfokkema Mar 23, 2024
d21d6aa
Mark project dirty when renaming tabs
davidfokkema Mar 25, 2024
bdd04cd
If broken expression is unchanged, don't mark dirty
davidfokkema Mar 25, 2024
3d4cf5f
Include missing libcst dependency
davidfokkema Mar 25, 2024
16c2908
Update Makefile
davidfokkema Mar 25, 2024
a7d8c5d
Bump version to 2.0b4
davidfokkema Mar 25, 2024
b3805f3
Custom Info.plist to handle document types
davidfokkema Mar 25, 2024
6ba98a3
Conform to correct file types
davidfokkema Mar 26, 2024
0983ff8
Build command for macOS in Makefile
davidfokkema Mar 26, 2024
6d441b7
Fixed version in changelog
davidfokkema Mar 26, 2024
36725b8
Build command for Windows in Makefile
davidfokkema Mar 26, 2024
70cf93f
Fixes for build on Windows
davidfokkema Mar 26, 2024
49b8a95
Include links in help menu for issues, docs and repo
davidfokkema Mar 27, 2024
a32d4ad
Fix link to docs
davidfokkema Mar 27, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
New sheets always get 'x' and 'y' columns
  • Loading branch information
davidfokkema committed Mar 7, 2024
commit 6fe5fc6c0486e7fed19bc4b9860c12e6ad9f3b39
2 changes: 0 additions & 2 deletions src/tailor/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -614,8 +614,6 @@ def clear_all(self, add_sheet=False):
self._set_project_path(None)
if add_sheet:
sheet = self.add_data_sheet()
sheet.model.renameColumn(0, "x")
sheet.model.renameColumn(1, "y")
# force updating column information in UI
sheet.selection_changed()
self.mark_project_dirty(False)
Expand Down
2 changes: 2 additions & 0 deletions src/tailor/data_sheet.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,8 @@ def setup_data_model(self):
self.model = QDataModel(main_window=self.main_window)
self.model.insertColumns(0, 2)
self.model.insertRows(0, 5)
self.model.renameColumn(0, "x")
self.model.renameColumn(1, "y")

# Set view and selection model
self.ui.data_view.setModel(self.model)
Expand Down