azapyGUI 0.1.1__tar.gz → 1.0.0__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.
Files changed (63) hide show
  1. {azapygui-0.1.1 → azapygui-1.0.0}/PKG-INFO +22 -10
  2. {azapygui-0.1.1 → azapygui-1.0.0}/README.md +6 -6
  3. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/ViewTip.py +12 -12
  4. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/ViewTip_Ubuntu.py +52 -52
  5. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/ViewTip_fast.py +55 -55
  6. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/config.py +1 -1
  7. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI.egg-info/PKG-INFO +22 -10
  8. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI.egg-info/requires.txt +1 -1
  9. {azapygui-0.1.1 → azapygui-1.0.0}/setup.py +3 -3
  10. {azapygui-0.1.1 → azapygui-1.0.0}/LICENSE +0 -0
  11. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/AppSettingsPage.py +0 -0
  12. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/AppSettingsPageMisc.py +0 -0
  13. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/AppSettingsWindow.py +0 -0
  14. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/BacktestComputation.py +0 -0
  15. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/BacktestEntryWindow.py +0 -0
  16. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/BacktestMenuPortfolioWindow.py +0 -0
  17. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/CloneMenuPortfolioWindow.py +0 -0
  18. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/CrossHairBCursor.py +0 -0
  19. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/DF_Window.py +0 -0
  20. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/DF_table.py +0 -0
  21. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/EditMenuPortfolioWindow.py +0 -0
  22. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/EditPortfolioWindow.py +0 -0
  23. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/EntryClonePortfolioWindow.py +0 -0
  24. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/EntryNameWindow.py +0 -0
  25. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/EntryRenamePortfolioWindow.py +0 -0
  26. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/GetMktData.py +0 -0
  27. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/MenuApp.py +0 -0
  28. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/MktDataFrame.py +0 -0
  29. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/MktDataNode.py +0 -0
  30. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/ModelParamEditWindow.py +0 -0
  31. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/NrShares_table.py +0 -0
  32. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/PortAnalyseWindow.py +0 -0
  33. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/PortDataNode.py +0 -0
  34. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/PortfolioFrame.py +0 -0
  35. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/RebalanceMenuPortfolioWindow.py +0 -0
  36. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/RemoveMenuPortfolioWindow.py +0 -0
  37. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/SaveMenuPortfolioWindow.py +0 -0
  38. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/Scrollable.py +0 -0
  39. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/SelectOneWindow.py +0 -0
  40. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/SymbAnalyseWindow.py +0 -0
  41. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/SymbExtractWindow.py +0 -0
  42. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/SymbTableEntry.py +0 -0
  43. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/TimeSeriesViewWindow.py +0 -0
  44. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/ViewTip_fade.py +0 -0
  45. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/WeightsWindow.py +0 -0
  46. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/__init__.py +0 -0
  47. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/azHelper.py +0 -0
  48. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/azapyApp.py +0 -0
  49. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/configHelps.py +0 -0
  50. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/configMSG.py +0 -0
  51. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/configModels.py +0 -0
  52. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/configPlot.py +0 -0
  53. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/configSettings.py +0 -0
  54. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/configTips.py +0 -0
  55. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/mktDataValidation.py +0 -0
  56. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/modelParametersValidation.py +0 -0
  57. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/serviceMasterUserConfig.py +0 -0
  58. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI/tkHelper.py +0 -0
  59. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI.egg-info/SOURCES.txt +0 -0
  60. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI.egg-info/dependency_links.txt +0 -0
  61. {azapygui-0.1.1 → azapygui-1.0.0}/azapyGUI.egg-info/top_level.txt +0 -0
  62. {azapygui-0.1.1 → azapygui-1.0.0}/pyproject.toml +0 -0
  63. {azapygui-0.1.1 → azapygui-1.0.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: azapyGUI
3
- Version: 0.1.1
3
+ Version: 1.0.0
4
4
  Summary: GUI for azapy library - Financial Portfolio Optimization Algorithms
5
5
  Home-page: https://github.com/Mircea-MMXXI/azapyGUI.git
6
6
  Author: Mircea Marinescu
@@ -12,14 +12,26 @@ Project-URL: Bug Tracker, https://github.com/Mircea-MMXXI/azapyGUI/issues
12
12
  Classifier: Programming Language :: Python :: 3
13
13
  Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
14
14
  Classifier: Operating System :: OS Independent
15
- Requires-Python: >=3.11
15
+ Requires-Python: >=3.14.4
16
16
  Description-Content-Type: text/markdown
17
17
  License-File: LICENSE
18
- Requires-Dist: azapy>=1.2.5
18
+ Requires-Dist: azapy>=1.2.6
19
19
  Requires-Dist: numpy
20
20
  Requires-Dist: pandas
21
21
  Requires-Dist: matplotlib
22
22
  Requires-Dist: xlsxwriter; platform_system == "Windows"
23
+ Dynamic: author
24
+ Dynamic: author-email
25
+ Dynamic: classifier
26
+ Dynamic: description
27
+ Dynamic: description-content-type
28
+ Dynamic: home-page
29
+ Dynamic: license
30
+ Dynamic: license-file
31
+ Dynamic: project-url
32
+ Dynamic: requires-dist
33
+ Dynamic: requires-python
34
+ Dynamic: summary
23
35
 
24
36
  # azapyGUI project
25
37
 
@@ -117,10 +129,10 @@ and then run in a powershell: `python my_azapy.py`
117
129
 
118
130
  ### Required packages
119
131
 
120
- * python 3.11.8
121
- * azapy 1.2.5
122
- * pandas 2.2.0
123
- * numpy 1.26.0
124
- * matplotlib 3.8.0
125
- * xlsxwriter 3.1.1 (for non-Linux installations)
132
+ * python 3.14.4
133
+ * azapy 1.2.6
134
+ * pandas 3.0.2
135
+ * numpy 2.4.4
136
+ * matplotlib 3.10.8
137
+ * xlsxwriter 3.2.9 (for non-Linux installations)
126
138
 
@@ -94,10 +94,10 @@ and then run in a powershell: `python my_azapy.py`
94
94
 
95
95
  ### Required packages
96
96
 
97
- * python 3.11.8
98
- * azapy 1.2.5
99
- * pandas 2.2.0
100
- * numpy 1.26.0
101
- * matplotlib 3.8.0
102
- * xlsxwriter 3.1.1 (for non-Linux installations)
97
+ * python 3.14.4
98
+ * azapy 1.2.6
99
+ * pandas 3.0.2
100
+ * numpy 2.4.4
101
+ * matplotlib 3.10.8
102
+ * xlsxwriter 3.2.9 (for non-Linux installations)
103
103
 
@@ -1,12 +1,12 @@
1
- import platform
2
-
3
- from azapyGUI.ViewTip_Ubuntu import ViewTip_Ubuntu
4
- from azapyGUI.ViewTip_fade import ViewTip_fade
5
- from azapyGUI.ViewTip_fast import ViewTip_fast
6
-
7
-
8
- def ViewTip(master, **kwargs):
9
- if platform.system() == 'Windows':
10
- return ViewTip_fade(master, **kwargs)
11
- else:
12
- return ViewTip_Ubuntu(master, **kwargs)
1
+ import platform
2
+
3
+ from azapyGUI.ViewTip_Ubuntu import ViewTip_Ubuntu
4
+ from azapyGUI.ViewTip_fade import ViewTip_fade
5
+ from azapyGUI.ViewTip_fast import ViewTip_fast
6
+
7
+
8
+ def ViewTip(master, **kwargs):
9
+ if platform.system() == 'Windows':
10
+ return ViewTip_fade(master, **kwargs)
11
+ else:
12
+ return ViewTip_Ubuntu(master, **kwargs)
@@ -1,52 +1,52 @@
1
- import tkinter as tk
2
- from tkinter import ttk
3
- from typing import Union
4
-
5
- Widget = Union[tk.Widget, ttk.Widget]
6
-
7
-
8
- class ViewTip_Ubuntu(tk.Toplevel):
9
- def __init__(self, master, **kwargs):
10
- tk.Toplevel.__init__(self, master)
11
-
12
- self.attributes('-alpha', 0, '-topmost', True)
13
- self.overrideredirect(True)
14
-
15
- style = dict(bd=2, relief='raised', font='Ariel 10', bg='#D4D4D4',
16
- anchor='w', justify='left')
17
- self._label = tk.Label(self, **{**style, **kwargs})
18
- self._label.grid(row=0, column=0, sticky='w')
19
-
20
- self._view = True
21
-
22
-
23
- def bind(self, target:Widget, text:str, **kwargs):
24
- target.bind('<Enter>', lambda e: self._goin(text, e), add="+")
25
- target.bind('<Leave>', lambda e: self._goout(), add="+")
26
-
27
-
28
- def _goin(self, text:str=None, event:tk.Event=None):
29
- if not self._view: return
30
- self.deiconify()
31
-
32
- self._label.configure(text=f'{text:^{len(text) + 2}}')
33
- self.update()
34
-
35
- offset_x = event.widget.winfo_width() + 2
36
- offset_y = int((event.widget.winfo_height() - self._label.winfo_height()) / 2)
37
-
38
- w = self._label.winfo_width()
39
- h = self._label.winfo_height()
40
- x = event.widget.winfo_rootx() + offset_x
41
- y = event.widget.winfo_rooty() + offset_y
42
-
43
- self.geometry(f'{w}x{h}+{x}+{y}')
44
-
45
-
46
- def _goout(self):
47
- if not self._view: return
48
- self.withdraw()
49
-
50
-
51
- def turned(self, on:bool=True):
52
- self._view = on
1
+ import tkinter as tk
2
+ from tkinter import ttk
3
+ from typing import Union
4
+
5
+ Widget = Union[tk.Widget, ttk.Widget]
6
+
7
+
8
+ class ViewTip_Ubuntu(tk.Toplevel):
9
+ def __init__(self, master, **kwargs):
10
+ tk.Toplevel.__init__(self, master)
11
+
12
+ self.attributes('-alpha', 0, '-topmost', True)
13
+ self.overrideredirect(True)
14
+
15
+ style = dict(bd=2, relief='raised', font='Ariel 10', bg='#D4D4D4',
16
+ anchor='w', justify='left')
17
+ self._label = tk.Label(self, **{**style, **kwargs})
18
+ self._label.grid(row=0, column=0, sticky='w')
19
+
20
+ self._view = True
21
+
22
+
23
+ def bind(self, target:Widget, text:str, **kwargs):
24
+ target.bind('<Enter>', lambda e: self._goin(text, e), add="+")
25
+ target.bind('<Leave>', lambda e: self._goout(), add="+")
26
+
27
+
28
+ def _goin(self, text:str=None, event:tk.Event=None):
29
+ if not self._view: return
30
+ self.deiconify()
31
+
32
+ self._label.configure(text=f'{text:^{len(text) + 2}}')
33
+ self.update()
34
+
35
+ offset_x = event.widget.winfo_width() + 2
36
+ offset_y = int((event.widget.winfo_height() - self._label.winfo_height()) / 2)
37
+
38
+ w = self._label.winfo_width()
39
+ h = self._label.winfo_height()
40
+ x = event.widget.winfo_rootx() + offset_x
41
+ y = event.widget.winfo_rooty() + offset_y
42
+
43
+ self.geometry(f'{w}x{h}+{x}+{y}')
44
+
45
+
46
+ def _goout(self):
47
+ if not self._view: return
48
+ self.withdraw()
49
+
50
+
51
+ def turned(self, on:bool=True):
52
+ self._view = on
@@ -1,55 +1,55 @@
1
- import tkinter as tk
2
- from tkinter import ttk
3
- from typing import Union
4
-
5
- Widget = Union[tk.Widget, ttk.Widget]
6
-
7
-
8
- class ViewTip_fast(tk.Toplevel):
9
- def __init__(self, master, fade_inc=0.07, fade_ms=20, **kwargs):
10
- tk.Toplevel.__init__(self, master)
11
- self._fade_inc = fade_inc
12
- self._fade_ms = fade_ms
13
-
14
- self.attributes('-alpha', 0, '-topmost', True)
15
- self.overrideredirect(True)
16
-
17
- style = dict(bd=2, relief='raised', font='Ariel 10', bg='#D4D4D4',
18
- anchor='w', justify='left')
19
- self._label = tk.Label(self, **{**style, **kwargs})
20
- self._label.grid(row=0, column=0, sticky='w')
21
-
22
-
23
- def bind(self, target:Widget, text:str, **kwargs):
24
- target.bind('<Enter>', lambda e: self._goin(text, e), add="+")
25
- target.bind('<Leave>', lambda e: self._goout(), add="+")
26
-
27
-
28
- def _goin(self, text:str=None, event:tk.Event=None):
29
- if text is None: return
30
-
31
- self._label.configure(text=f'{text:^{len(text) + 2}}')
32
- self.update()
33
-
34
- offset_x = event.widget.winfo_width() + 2
35
- offset_y = int((event.widget.winfo_height() - self._label.winfo_height()) / 2)
36
-
37
- w = self._label.winfo_width()
38
- h = self._label.winfo_height()
39
- x = event.widget.winfo_rootx() + offset_x
40
- y = event.widget.winfo_rooty() + offset_y
41
-
42
- self.geometry(f'{w}x{h}+{x}+{y}')
43
-
44
- self.attributes('-alpha', 1)
45
-
46
-
47
- def _goout(self):
48
- self.attributes('-alpha', 0)
49
-
50
-
51
- def turned(self, on=True):
52
- if on:
53
- self.deiconify()
54
- else:
55
- self.withdraw()
1
+ import tkinter as tk
2
+ from tkinter import ttk
3
+ from typing import Union
4
+
5
+ Widget = Union[tk.Widget, ttk.Widget]
6
+
7
+
8
+ class ViewTip_fast(tk.Toplevel):
9
+ def __init__(self, master, fade_inc=0.07, fade_ms=20, **kwargs):
10
+ tk.Toplevel.__init__(self, master)
11
+ self._fade_inc = fade_inc
12
+ self._fade_ms = fade_ms
13
+
14
+ self.attributes('-alpha', 0, '-topmost', True)
15
+ self.overrideredirect(True)
16
+
17
+ style = dict(bd=2, relief='raised', font='Ariel 10', bg='#D4D4D4',
18
+ anchor='w', justify='left')
19
+ self._label = tk.Label(self, **{**style, **kwargs})
20
+ self._label.grid(row=0, column=0, sticky='w')
21
+
22
+
23
+ def bind(self, target:Widget, text:str, **kwargs):
24
+ target.bind('<Enter>', lambda e: self._goin(text, e), add="+")
25
+ target.bind('<Leave>', lambda e: self._goout(), add="+")
26
+
27
+
28
+ def _goin(self, text:str=None, event:tk.Event=None):
29
+ if text is None: return
30
+
31
+ self._label.configure(text=f'{text:^{len(text) + 2}}')
32
+ self.update()
33
+
34
+ offset_x = event.widget.winfo_width() + 2
35
+ offset_y = int((event.widget.winfo_height() - self._label.winfo_height()) / 2)
36
+
37
+ w = self._label.winfo_width()
38
+ h = self._label.winfo_height()
39
+ x = event.widget.winfo_rootx() + offset_x
40
+ y = event.widget.winfo_rooty() + offset_y
41
+
42
+ self.geometry(f'{w}x{h}+{x}+{y}')
43
+
44
+ self.attributes('-alpha', 1)
45
+
46
+
47
+ def _goout(self):
48
+ self.attributes('-alpha', 0)
49
+
50
+
51
+ def turned(self, on=True):
52
+ if on:
53
+ self.deiconify()
54
+ else:
55
+ self.withdraw()
@@ -1,4 +1,4 @@
1
- __version__ = '0.1.1'
1
+ __version__ = '1.0.0'
2
2
 
3
3
  MktDataDict = {}
4
4
  PortDataDict = {}
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: azapyGUI
3
- Version: 0.1.1
3
+ Version: 1.0.0
4
4
  Summary: GUI for azapy library - Financial Portfolio Optimization Algorithms
5
5
  Home-page: https://github.com/Mircea-MMXXI/azapyGUI.git
6
6
  Author: Mircea Marinescu
@@ -12,14 +12,26 @@ Project-URL: Bug Tracker, https://github.com/Mircea-MMXXI/azapyGUI/issues
12
12
  Classifier: Programming Language :: Python :: 3
13
13
  Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
14
14
  Classifier: Operating System :: OS Independent
15
- Requires-Python: >=3.11
15
+ Requires-Python: >=3.14.4
16
16
  Description-Content-Type: text/markdown
17
17
  License-File: LICENSE
18
- Requires-Dist: azapy>=1.2.5
18
+ Requires-Dist: azapy>=1.2.6
19
19
  Requires-Dist: numpy
20
20
  Requires-Dist: pandas
21
21
  Requires-Dist: matplotlib
22
22
  Requires-Dist: xlsxwriter; platform_system == "Windows"
23
+ Dynamic: author
24
+ Dynamic: author-email
25
+ Dynamic: classifier
26
+ Dynamic: description
27
+ Dynamic: description-content-type
28
+ Dynamic: home-page
29
+ Dynamic: license
30
+ Dynamic: license-file
31
+ Dynamic: project-url
32
+ Dynamic: requires-dist
33
+ Dynamic: requires-python
34
+ Dynamic: summary
23
35
 
24
36
  # azapyGUI project
25
37
 
@@ -117,10 +129,10 @@ and then run in a powershell: `python my_azapy.py`
117
129
 
118
130
  ### Required packages
119
131
 
120
- * python 3.11.8
121
- * azapy 1.2.5
122
- * pandas 2.2.0
123
- * numpy 1.26.0
124
- * matplotlib 3.8.0
125
- * xlsxwriter 3.1.1 (for non-Linux installations)
132
+ * python 3.14.4
133
+ * azapy 1.2.6
134
+ * pandas 3.0.2
135
+ * numpy 2.4.4
136
+ * matplotlib 3.10.8
137
+ * xlsxwriter 3.2.9 (for non-Linux installations)
126
138
 
@@ -1,4 +1,4 @@
1
- azapy>=1.2.5
1
+ azapy>=1.2.6
2
2
  numpy
3
3
  pandas
4
4
  matplotlib
@@ -5,7 +5,7 @@ with open("README.md", "r", encoding="utf-8") as readme:
5
5
 
6
6
  setuptools.setup(
7
7
  name="azapyGUI",
8
- version="0.1.1",
8
+ version="1.0.0",
9
9
  author="Mircea Marinescu",
10
10
  author_email="mircea.marinescu@outlook.com",
11
11
  description="GUI for azapy library - Financial Portfolio Optimization Algorithms",
@@ -25,9 +25,9 @@ setuptools.setup(
25
25
  ],
26
26
  package_dir={"": "."},
27
27
  packages=setuptools.find_packages(),
28
- python_requires=">=3.11",
28
+ python_requires=">=3.14.4",
29
29
  install_requires=[
30
- 'azapy>=1.2.5',
30
+ 'azapy>=1.2.6',
31
31
  'numpy',
32
32
  'pandas',
33
33
  'matplotlib',
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