rezo 0.1.0__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.
- rezo/__init__.py +6 -0
- rezo/application/config.py +17 -0
- rezo/basic_functions/os_funs.py +56 -0
- rezo/core/core.py +47 -0
- rezo/core/help.py +27 -0
- rezo/gui/gui.py +73 -0
- rezo/main.py +41 -0
- rezo/version.py +15 -0
- rezo-0.1.0.dist-info/METADATA +20 -0
- rezo-0.1.0.dist-info/RECORD +14 -0
- rezo-0.1.0.dist-info/WHEEL +5 -0
- rezo-0.1.0.dist-info/entry_points.txt +2 -0
- rezo-0.1.0.dist-info/licenses/LICENSE +18 -0
- rezo-0.1.0.dist-info/top_level.txt +1 -0
rezo/__init__.py
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"""
|
|
2
|
+
help.py
|
|
3
|
+
|
|
4
|
+
Author: Benevant Mathew
|
|
5
|
+
Date: 2026-05-12
|
|
6
|
+
"""
|
|
7
|
+
import os
|
|
8
|
+
from rezo.basic_functions.os_funs import get_user_profile
|
|
9
|
+
|
|
10
|
+
# directory where config file exist
|
|
11
|
+
current_dir = os.path.abspath(os.path.dirname(__file__))
|
|
12
|
+
|
|
13
|
+
#user directory
|
|
14
|
+
usrprofile=get_user_profile()
|
|
15
|
+
|
|
16
|
+
#root directory
|
|
17
|
+
root_dir=os.path.join(current_dir, "..")
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"""
|
|
2
|
+
os_funs.py
|
|
3
|
+
|
|
4
|
+
Author: Benevant Mathew
|
|
5
|
+
Date: 2025-09-20
|
|
6
|
+
"""
|
|
7
|
+
import platform
|
|
8
|
+
import os
|
|
9
|
+
import pandas as pd
|
|
10
|
+
|
|
11
|
+
def get_user_profile():
|
|
12
|
+
"""
|
|
13
|
+
Docstring for get_user_profile
|
|
14
|
+
"""
|
|
15
|
+
if platform.system()=='Windows':
|
|
16
|
+
out=os.environ['USERPROFILE']
|
|
17
|
+
else:
|
|
18
|
+
out=os.path.expanduser('~')
|
|
19
|
+
return out
|
|
20
|
+
|
|
21
|
+
def read_csv(file):
|
|
22
|
+
"""
|
|
23
|
+
#read a csv file to df
|
|
24
|
+
|
|
25
|
+
:param file: Description
|
|
26
|
+
"""
|
|
27
|
+
return pd.read_csv(file)
|
|
28
|
+
|
|
29
|
+
def write_file(name,text):
|
|
30
|
+
"""
|
|
31
|
+
Docstring for write_file
|
|
32
|
+
|
|
33
|
+
:param name: Description
|
|
34
|
+
:param text: Description
|
|
35
|
+
"""
|
|
36
|
+
#write joined text file
|
|
37
|
+
f1 = open(name, "w")
|
|
38
|
+
f1.write(text)
|
|
39
|
+
f1.close()
|
|
40
|
+
print('{} created'.format(name))
|
|
41
|
+
|
|
42
|
+
def get_end_from_path(path):
|
|
43
|
+
"""
|
|
44
|
+
Docstring for get_end_from_path
|
|
45
|
+
|
|
46
|
+
:param path: Description
|
|
47
|
+
"""
|
|
48
|
+
return os.path.basename(path)
|
|
49
|
+
|
|
50
|
+
def get_dir_path_from_path(path):
|
|
51
|
+
"""
|
|
52
|
+
Docstring for get_dir_path_from_path
|
|
53
|
+
|
|
54
|
+
:param path: Description
|
|
55
|
+
"""
|
|
56
|
+
return os.path.dirname(path)
|
rezo/core/core.py
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"""
|
|
2
|
+
core.py
|
|
3
|
+
|
|
4
|
+
Author: Benevant Mathew
|
|
5
|
+
Date: 2025-09-20
|
|
6
|
+
"""
|
|
7
|
+
import os
|
|
8
|
+
from rezo.basic_functions.os_funs import (
|
|
9
|
+
read_csv, write_file, get_end_from_path, get_dir_path_from_path
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
def remove_frames_from_timestamp(text):
|
|
13
|
+
"""
|
|
14
|
+
Docstring for remove_frames_from_timestamp
|
|
15
|
+
|
|
16
|
+
:param text: Description
|
|
17
|
+
"""
|
|
18
|
+
return text[:-3]
|
|
19
|
+
|
|
20
|
+
def write_timestamp_and_index(filepaths):
|
|
21
|
+
"""
|
|
22
|
+
Docstring for write_timestamp_and_index
|
|
23
|
+
|
|
24
|
+
:param filepaths: Description
|
|
25
|
+
"""
|
|
26
|
+
for filepath in filepaths:
|
|
27
|
+
name=get_end_from_path(filepath)
|
|
28
|
+
prefix=name[:-4]
|
|
29
|
+
new_name=prefix+'_short.txt'
|
|
30
|
+
|
|
31
|
+
dir_name=get_dir_path_from_path(filepath)
|
|
32
|
+
|
|
33
|
+
new_filepath=os.path.join(dir_name,new_name)
|
|
34
|
+
|
|
35
|
+
df=read_csv(filepath)
|
|
36
|
+
df_out=df.loc[:,['Source In','Notes']].copy()
|
|
37
|
+
|
|
38
|
+
df_out['Source In'] = df_out['Source In'].apply(remove_frames_from_timestamp)
|
|
39
|
+
r,c=df_out.shape
|
|
40
|
+
text=''
|
|
41
|
+
for row in range(r):
|
|
42
|
+
text+=df_out.loc[row,'Source In']
|
|
43
|
+
text+=' '
|
|
44
|
+
text+=df_out.loc[row,'Notes']
|
|
45
|
+
text+='\n'
|
|
46
|
+
|
|
47
|
+
write_file(new_filepath,text)
|
rezo/core/help.py
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"""
|
|
2
|
+
help.py
|
|
3
|
+
|
|
4
|
+
Author: Benevant Mathew
|
|
5
|
+
Date: 2026-05-12
|
|
6
|
+
"""
|
|
7
|
+
import sys
|
|
8
|
+
# Function to display help
|
|
9
|
+
|
|
10
|
+
def print_help():
|
|
11
|
+
"""
|
|
12
|
+
help function
|
|
13
|
+
"""
|
|
14
|
+
help_message = """
|
|
15
|
+
Usage: rezo [OPTIONS]
|
|
16
|
+
|
|
17
|
+
Your Resolve workflow assistant.
|
|
18
|
+
|
|
19
|
+
Options:
|
|
20
|
+
--version, -v Show the version and exit
|
|
21
|
+
--help, -h Show this help message and exit
|
|
22
|
+
--email, -e Show email and exit
|
|
23
|
+
--author, -a Show author and exit
|
|
24
|
+
(No arguments) Launch the GUI application
|
|
25
|
+
"""
|
|
26
|
+
print(help_message)
|
|
27
|
+
sys.exit(0)
|
rezo/gui/gui.py
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"""
|
|
2
|
+
gui.py
|
|
3
|
+
|
|
4
|
+
Author: Benevant Mathew
|
|
5
|
+
Date: 2025-09-20
|
|
6
|
+
"""
|
|
7
|
+
import tkinter as tk
|
|
8
|
+
from tkinter import filedialog, messagebox
|
|
9
|
+
from tkinter import ttk # for Notebook widget (tabs)
|
|
10
|
+
from rezo.core.core import write_timestamp_and_index
|
|
11
|
+
from rezo.version import __app_label__
|
|
12
|
+
|
|
13
|
+
def create_gui():
|
|
14
|
+
"""
|
|
15
|
+
Docstring for create_gui
|
|
16
|
+
"""
|
|
17
|
+
# Function to handle file selection
|
|
18
|
+
def select_files():
|
|
19
|
+
global filenames
|
|
20
|
+
|
|
21
|
+
filetypes = (
|
|
22
|
+
("CSV files", "*.csv"),
|
|
23
|
+
("All files", "*.*")
|
|
24
|
+
)
|
|
25
|
+
filenames = filedialog.askopenfilenames(title="Select CSV files", filetypes=filetypes)
|
|
26
|
+
|
|
27
|
+
# Update the label with selected file names
|
|
28
|
+
if filenames:
|
|
29
|
+
selected_files_label.config(text="\n".join(filenames))
|
|
30
|
+
|
|
31
|
+
# Function to handle the create button click
|
|
32
|
+
def create_action():
|
|
33
|
+
if not selected_files_label.cget("text"):
|
|
34
|
+
messagebox.showwarning("Warning", "No files selected!")
|
|
35
|
+
else:
|
|
36
|
+
write_timestamp_and_index(filenames)
|
|
37
|
+
messagebox.showinfo("Success", "CSV files processed successfully!")
|
|
38
|
+
# You can add more logic to handle file processing here
|
|
39
|
+
|
|
40
|
+
# Create main window
|
|
41
|
+
root = tk.Tk()
|
|
42
|
+
root.title(__app_label__)
|
|
43
|
+
root.geometry("500x400")
|
|
44
|
+
|
|
45
|
+
# Create a Notebook (for tabs)
|
|
46
|
+
notebook = ttk.Notebook(root)
|
|
47
|
+
notebook.pack(pady=10, expand=True)
|
|
48
|
+
|
|
49
|
+
# Create a frame for the "Markers Edit" tab
|
|
50
|
+
markers_edit_frame = ttk.Frame(notebook, width=500, height=400)
|
|
51
|
+
markers_edit_frame.pack(fill='both', expand=True)
|
|
52
|
+
|
|
53
|
+
# Add the tab to the notebook
|
|
54
|
+
notebook.add(markers_edit_frame, text="Markers Edit")
|
|
55
|
+
|
|
56
|
+
# Page Title inside "Markers Edit" tab
|
|
57
|
+
title_label = tk.Label(markers_edit_frame, text="Markers Edit", font=("Arial", 16))
|
|
58
|
+
title_label.pack(pady=10)
|
|
59
|
+
|
|
60
|
+
# Button to select multiple .csv files
|
|
61
|
+
select_button = tk.Button(markers_edit_frame, text="Select CSV Files", command=select_files)
|
|
62
|
+
select_button.pack(pady=5)
|
|
63
|
+
|
|
64
|
+
# Label to display selected files
|
|
65
|
+
selected_files_label = tk.Label(markers_edit_frame, text="", anchor="w", justify="left")
|
|
66
|
+
selected_files_label.pack(pady=10)
|
|
67
|
+
|
|
68
|
+
# Create button
|
|
69
|
+
create_button = tk.Button(markers_edit_frame, text="Create", command=create_action)
|
|
70
|
+
create_button.pack(pady=20)
|
|
71
|
+
|
|
72
|
+
# Start the application
|
|
73
|
+
root.mainloop()
|
rezo/main.py
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"""
|
|
2
|
+
main.py
|
|
3
|
+
|
|
4
|
+
Author: Benevant Mathew
|
|
5
|
+
Date: 2026-05-12
|
|
6
|
+
"""
|
|
7
|
+
import sys
|
|
8
|
+
|
|
9
|
+
from rezo.version import (
|
|
10
|
+
__version__,__email__,__release_date__,__author__
|
|
11
|
+
)
|
|
12
|
+
from rezo.core.help import print_help
|
|
13
|
+
|
|
14
|
+
# Main entry point
|
|
15
|
+
def main():
|
|
16
|
+
"""
|
|
17
|
+
main
|
|
18
|
+
"""
|
|
19
|
+
# Check for command-line arguments
|
|
20
|
+
if "--version" in sys.argv or "-v" in sys.argv:
|
|
21
|
+
print(f"version {__version__}")
|
|
22
|
+
sys.exit(0)
|
|
23
|
+
if "--help" in sys.argv or "-h" in sys.argv:
|
|
24
|
+
print_help()
|
|
25
|
+
sys.exit(0)
|
|
26
|
+
if "--author" in sys.argv or "-a" in sys.argv:
|
|
27
|
+
print(f"Author {__author__}")
|
|
28
|
+
sys.exit(0)
|
|
29
|
+
if "--email" in sys.argv or "-e" in sys.argv:
|
|
30
|
+
print(f"Mailto {__email__}")
|
|
31
|
+
sys.exit(0)
|
|
32
|
+
if "--date" in sys.argv or "-d" in sys.argv:
|
|
33
|
+
print(f"Release Date {__release_date__}")
|
|
34
|
+
sys.exit(0)
|
|
35
|
+
|
|
36
|
+
# call gui
|
|
37
|
+
from rezo.gui.gui import create_gui
|
|
38
|
+
create_gui()
|
|
39
|
+
|
|
40
|
+
if __name__ == "__main__":
|
|
41
|
+
main()
|
rezo/version.py
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"""
|
|
2
|
+
version.py
|
|
3
|
+
|
|
4
|
+
Author: Benevant Mathew
|
|
5
|
+
Date: 2026-05-12
|
|
6
|
+
"""
|
|
7
|
+
__version__ = "0.1.0"
|
|
8
|
+
__author__ = "Benevant Mathew"
|
|
9
|
+
__email__ = "benevantmathewv@gmail.com"
|
|
10
|
+
__release_date__="2026-05-12"
|
|
11
|
+
__app_name__ = "rezo"
|
|
12
|
+
__app_label__ = f"rezo v{__version__}"
|
|
13
|
+
if __name__ == "__main__":
|
|
14
|
+
print(__version__)
|
|
15
|
+
print(__release_date__)
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: rezo
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Your Resolve workflow assistant
|
|
5
|
+
Author-email: Benevant Mathew <benevantmathewv@gmail.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Classifier: Programming Language :: Python :: 3
|
|
8
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
9
|
+
Classifier: Natural Language :: English
|
|
10
|
+
Classifier: Operating System :: OS Independent
|
|
11
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
12
|
+
Classifier: Topic :: Utilities
|
|
13
|
+
Requires-Python: >=3.10
|
|
14
|
+
Description-Content-Type: text/markdown
|
|
15
|
+
License-File: LICENSE
|
|
16
|
+
Requires-Dist: pandas>=2.3.3
|
|
17
|
+
Dynamic: license-file
|
|
18
|
+
|
|
19
|
+
# Rezo
|
|
20
|
+
Your Resolve workflow assistant
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
rezo/__init__.py,sha256=_FCojDKXEpSZ_l4bUq57NeQkNdOAYiv3n0I0RP0weCs,124
|
|
2
|
+
rezo/main.py,sha256=lWwqPNUsOEcx4I3wrRoCHUSWP1v9oK-6aLGFgvGTFm8,936
|
|
3
|
+
rezo/version.py,sha256=lv6P0J3OVmKg6Mdq_N5MOsWldQW2SXxRoZRtwYyNF4s,323
|
|
4
|
+
rezo/application/config.py,sha256=_vNH8ngeBYKtEoc_WPU23rb2Cl7u9fV7s_ElniFZkCA,325
|
|
5
|
+
rezo/basic_functions/os_funs.py,sha256=xCXaXHFEahrOljY4w-qA4Qd8ToLjrE0dhB7BJ4u7SrU,999
|
|
6
|
+
rezo/core/core.py,sha256=-F3aDXjAsPgtFdkAsUCOSailWNFd19VedaDg7fvYeOM,1128
|
|
7
|
+
rezo/core/help.py,sha256=zSnUjbGHw6ncuQqyHsrtFOXNCMkiXb7FjvAZcmAeW6Y,527
|
|
8
|
+
rezo/gui/gui.py,sha256=CdZd1bf8yjXSWpkxyM7sYat40-cLc5fAjAiXIE4Chso,2336
|
|
9
|
+
rezo-0.1.0.dist-info/licenses/LICENSE,sha256=n0KhtsOuPmaWYKzRPeL1lMFZk-dxyJ08Lya0SnwlctM,948
|
|
10
|
+
rezo-0.1.0.dist-info/METADATA,sha256=zDv4ngbUreNkdWegWS1xMtwrF0cEeZga3_LBw5j_YPQ,627
|
|
11
|
+
rezo-0.1.0.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
|
|
12
|
+
rezo-0.1.0.dist-info/entry_points.txt,sha256=UBSnbmdaJWWqVuMRmUZLimjj14nxcHbtKCR88wK05VQ,40
|
|
13
|
+
rezo-0.1.0.dist-info/top_level.txt,sha256=xDruKyq_5cjCLN7lrkidKE9WH6V-TyfqxkObX-1xADw,5
|
|
14
|
+
rezo-0.1.0.dist-info/RECORD,,
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Benevant Mathew
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
13
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
14
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
15
|
+
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
|
16
|
+
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
|
17
|
+
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
|
|
18
|
+
THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
rezo
|