dsfolder 0.0.0.1__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 (46) hide show
  1. dsfolder-0.0.0.1/MANIFEST.in +2 -0
  2. dsfolder-0.0.0.1/PKG-INFO +45 -0
  3. dsfolder-0.0.0.1/README.md +38 -0
  4. dsfolder-0.0.0.1/dsfolder.egg-info/PKG-INFO +45 -0
  5. dsfolder-0.0.0.1/dsfolder.egg-info/SOURCES.txt +75 -0
  6. dsfolder-0.0.0.1/dsfolder.egg-info/dependency_links.txt +1 -0
  7. dsfolder-0.0.0.1/dsfolder.egg-info/entry_points.txt +3 -0
  8. dsfolder-0.0.0.1/dsfolder.egg-info/requires.txt +4 -0
  9. dsfolder-0.0.0.1/dsfolder.egg-info/top_level.txt +1 -0
  10. dsfolder-0.0.0.1/dspackagefolder/__init__.py +1 -0
  11. dsfolder-0.0.0.1/dspackagefolder/install_precommit_and_create_env.py +184 -0
  12. dsfolder-0.0.0.1/dspackagefolder/main.py +46 -0
  13. dsfolder-0.0.0.1/dspackagefolder/template/.config/.gitkeep +0 -0
  14. dsfolder-0.0.0.1/dspackagefolder/template/.config/example.toml +1 -0
  15. dsfolder-0.0.0.1/dspackagefolder/template/.gitignore +18 -0
  16. dsfolder-0.0.0.1/dspackagefolder/template/.pre-commit-config.yaml +13 -0
  17. dsfolder-0.0.0.1/dspackagefolder/template/.python-version +1 -0
  18. dsfolder-0.0.0.1/dspackagefolder/template/Dockerfile +33 -0
  19. dsfolder-0.0.0.1/dspackagefolder/template/EXAMPLE/example.py +0 -0
  20. dsfolder-0.0.0.1/dspackagefolder/template/README.md +13 -0
  21. dsfolder-0.0.0.1/dspackagefolder/template/checklist/.gitignore +1 -0
  22. dsfolder-0.0.0.1/dspackagefolder/template/checklist/GENERIC_CHECKLIST.xlsx +0 -0
  23. dsfolder-0.0.0.1/dspackagefolder/template/checklist/ML_CHECKLIST.xlsx +0 -0
  24. dsfolder-0.0.0.1/dspackagefolder/template/checklist/STATISTICS_CHECKLIST.xlsx +0 -0
  25. dsfolder-0.0.0.1/dspackagefolder/template/data/.gitkeep +1 -0
  26. dsfolder-0.0.0.1/dspackagefolder/template/data/INPUT/.gitkeep +1 -0
  27. dsfolder-0.0.0.1/dspackagefolder/template/data/OUTPUT/.gitkeep +1 -0
  28. dsfolder-0.0.0.1/dspackagefolder/template/logs/.gitkeep +2 -0
  29. dsfolder-0.0.0.1/dspackagefolder/template/main.py +60 -0
  30. dsfolder-0.0.0.1/dspackagefolder/template/main_dashboard.py +0 -0
  31. dsfolder-0.0.0.1/dspackagefolder/template/models/.gitignore +1 -0
  32. dsfolder-0.0.0.1/dspackagefolder/template/requirements.txt +6 -0
  33. dsfolder-0.0.0.1/dspackagefolder/template/sql/.gitkeep +0 -0
  34. dsfolder-0.0.0.1/dspackagefolder/template/sql/query.sql +1 -0
  35. dsfolder-0.0.0.1/dspackagefolder/template/src/.gitkeep +0 -0
  36. dsfolder-0.0.0.1/dspackagefolder/template/src/__init__.py +0 -0
  37. dsfolder-0.0.0.1/dspackagefolder/template/src/sqlcrud.py +114 -0
  38. dsfolder-0.0.0.1/dspackagefolder/template/src/utils/config_loader.py +20 -0
  39. dsfolder-0.0.0.1/dspackagefolder/template/src/utils/env_loader.py +20 -0
  40. dsfolder-0.0.0.1/dspackagefolder/template/src/utils/logging_config.py +48 -0
  41. dsfolder-0.0.0.1/dspackagefolder/template/template_notebook.ipynb +384 -0
  42. dsfolder-0.0.0.1/dspackagefolder/template/unit_testing/.gitkeep +0 -0
  43. dsfolder-0.0.0.1/dspackagefolder/template/validation/.gitkeep +0 -0
  44. dsfolder-0.0.0.1/pyproject.toml +37 -0
  45. dsfolder-0.0.0.1/setup.cfg +4 -0
  46. dsfolder-0.0.0.1/setup.py +28 -0
@@ -0,0 +1,2 @@
1
+ recursive-include dspackagefolder/template *
2
+ recursive-include dspackagefolder/template .*
@@ -0,0 +1,45 @@
1
+ Metadata-Version: 2.1
2
+ Name: dsfolder
3
+ Version: 0.0.0.1
4
+ Summary: Add your description here
5
+ Requires-Python: >=3.11
6
+ Description-Content-Type: text/markdown
7
+
8
+ ## Data Science Folder Structure Setup
9
+
10
+ 1. This was developed for creating a Python folder to start a data science project.
11
+
12
+ 2. It includes preconfigured connections to different systems:
13
+ - uv
14
+ - git
15
+ - GitHub workflow
16
+ - .gitignore
17
+
18
+ 3. It also provides small code snippets for connecting to other systems.
19
+
20
+ 4. Below are some of the systems included, along with additional setup steps to get them working:
21
+ - logging
22
+ - SQL
23
+ - src
24
+ - config
25
+ - pre-commit hook
26
+ - .gitignore
27
+ - git
28
+ - GitHub workflow
29
+ - uv
30
+ - env
31
+ - validation
32
+ - testing
33
+ - requirements.txt
34
+ - Install dependencies with: `uv install requirements.txt`
35
+
36
+ 5. Install the package:
37
+ ```bash
38
+ pip install datascience-folder-structure
39
+ 6. Create a folder structure:
40
+ ```bash
41
+ createdatasciencefolder NameOfProject
42
+
43
+ or
44
+ ```bash
45
+ dsf NameOfProject
@@ -0,0 +1,38 @@
1
+ ## Data Science Folder Structure Setup
2
+
3
+ 1. This was developed for creating a Python folder to start a data science project.
4
+
5
+ 2. It includes preconfigured connections to different systems:
6
+ - uv
7
+ - git
8
+ - GitHub workflow
9
+ - .gitignore
10
+
11
+ 3. It also provides small code snippets for connecting to other systems.
12
+
13
+ 4. Below are some of the systems included, along with additional setup steps to get them working:
14
+ - logging
15
+ - SQL
16
+ - src
17
+ - config
18
+ - pre-commit hook
19
+ - .gitignore
20
+ - git
21
+ - GitHub workflow
22
+ - uv
23
+ - env
24
+ - validation
25
+ - testing
26
+ - requirements.txt
27
+ - Install dependencies with: `uv install requirements.txt`
28
+
29
+ 5. Install the package:
30
+ ```bash
31
+ pip install datascience-folder-structure
32
+ 6. Create a folder structure:
33
+ ```bash
34
+ createdatasciencefolder NameOfProject
35
+
36
+ or
37
+ ```bash
38
+ dsf NameOfProject
@@ -0,0 +1,45 @@
1
+ Metadata-Version: 2.1
2
+ Name: dsfolder
3
+ Version: 0.0.0.1
4
+ Summary: Add your description here
5
+ Requires-Python: >=3.11
6
+ Description-Content-Type: text/markdown
7
+
8
+ ## Data Science Folder Structure Setup
9
+
10
+ 1. This was developed for creating a Python folder to start a data science project.
11
+
12
+ 2. It includes preconfigured connections to different systems:
13
+ - uv
14
+ - git
15
+ - GitHub workflow
16
+ - .gitignore
17
+
18
+ 3. It also provides small code snippets for connecting to other systems.
19
+
20
+ 4. Below are some of the systems included, along with additional setup steps to get them working:
21
+ - logging
22
+ - SQL
23
+ - src
24
+ - config
25
+ - pre-commit hook
26
+ - .gitignore
27
+ - git
28
+ - GitHub workflow
29
+ - uv
30
+ - env
31
+ - validation
32
+ - testing
33
+ - requirements.txt
34
+ - Install dependencies with: `uv install requirements.txt`
35
+
36
+ 5. Install the package:
37
+ ```bash
38
+ pip install datascience-folder-structure
39
+ 6. Create a folder structure:
40
+ ```bash
41
+ createdatasciencefolder NameOfProject
42
+
43
+ or
44
+ ```bash
45
+ dsf NameOfProject
@@ -0,0 +1,75 @@
1
+ MANIFEST.in
2
+ README.md
3
+ pyproject.toml
4
+ setup.py
5
+ ./dspackagefolder/__init__.py
6
+ ./dspackagefolder/install_precommit_and_create_env.py
7
+ ./dspackagefolder/main.py
8
+ ./dspackagefolder/template/.gitignore
9
+ ./dspackagefolder/template/.pre-commit-config.yaml
10
+ ./dspackagefolder/template/.python-version
11
+ ./dspackagefolder/template/Dockerfile
12
+ ./dspackagefolder/template/README.md
13
+ ./dspackagefolder/template/main.py
14
+ ./dspackagefolder/template/main_dashboard.py
15
+ ./dspackagefolder/template/requirements.txt
16
+ ./dspackagefolder/template/template_notebook.ipynb
17
+ ./dspackagefolder/template/.config/.gitkeep
18
+ ./dspackagefolder/template/.config/example.toml
19
+ ./dspackagefolder/template/EXAMPLE/example.py
20
+ ./dspackagefolder/template/checklist/.gitignore
21
+ ./dspackagefolder/template/checklist/GENERIC_CHECKLIST.xlsx
22
+ ./dspackagefolder/template/checklist/ML_CHECKLIST.xlsx
23
+ ./dspackagefolder/template/checklist/STATISTICS_CHECKLIST.xlsx
24
+ ./dspackagefolder/template/data/.gitkeep
25
+ ./dspackagefolder/template/data/INPUT/.gitkeep
26
+ ./dspackagefolder/template/data/OUTPUT/.gitkeep
27
+ ./dspackagefolder/template/logs/.gitkeep
28
+ ./dspackagefolder/template/models/.gitignore
29
+ ./dspackagefolder/template/sql/.gitkeep
30
+ ./dspackagefolder/template/sql/query.sql
31
+ ./dspackagefolder/template/src/.gitkeep
32
+ ./dspackagefolder/template/src/__init__.py
33
+ ./dspackagefolder/template/src/sqlcrud.py
34
+ ./dspackagefolder/template/src/utils/config_loader.py
35
+ ./dspackagefolder/template/src/utils/env_loader.py
36
+ ./dspackagefolder/template/src/utils/logging_config.py
37
+ ./dspackagefolder/template/unit_testing/.gitkeep
38
+ ./dspackagefolder/template/validation/.gitkeep
39
+ dsfolder.egg-info/PKG-INFO
40
+ dsfolder.egg-info/SOURCES.txt
41
+ dsfolder.egg-info/dependency_links.txt
42
+ dsfolder.egg-info/entry_points.txt
43
+ dsfolder.egg-info/requires.txt
44
+ dsfolder.egg-info/top_level.txt
45
+ dspackagefolder/template/.gitignore
46
+ dspackagefolder/template/.pre-commit-config.yaml
47
+ dspackagefolder/template/.python-version
48
+ dspackagefolder/template/Dockerfile
49
+ dspackagefolder/template/README.md
50
+ dspackagefolder/template/main.py
51
+ dspackagefolder/template/main_dashboard.py
52
+ dspackagefolder/template/requirements.txt
53
+ dspackagefolder/template/template_notebook.ipynb
54
+ dspackagefolder/template/.config/.gitkeep
55
+ dspackagefolder/template/.config/example.toml
56
+ dspackagefolder/template/EXAMPLE/example.py
57
+ dspackagefolder/template/checklist/.gitignore
58
+ dspackagefolder/template/checklist/GENERIC_CHECKLIST.xlsx
59
+ dspackagefolder/template/checklist/ML_CHECKLIST.xlsx
60
+ dspackagefolder/template/checklist/STATISTICS_CHECKLIST.xlsx
61
+ dspackagefolder/template/data/.gitkeep
62
+ dspackagefolder/template/data/INPUT/.gitkeep
63
+ dspackagefolder/template/data/OUTPUT/.gitkeep
64
+ dspackagefolder/template/logs/.gitkeep
65
+ dspackagefolder/template/models/.gitignore
66
+ dspackagefolder/template/sql/.gitkeep
67
+ dspackagefolder/template/sql/query.sql
68
+ dspackagefolder/template/src/.gitkeep
69
+ dspackagefolder/template/src/__init__.py
70
+ dspackagefolder/template/src/sqlcrud.py
71
+ dspackagefolder/template/src/utils/config_loader.py
72
+ dspackagefolder/template/src/utils/env_loader.py
73
+ dspackagefolder/template/src/utils/logging_config.py
74
+ dspackagefolder/template/unit_testing/.gitkeep
75
+ dspackagefolder/template/validation/.gitkeep
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ createdatasciencefolder = dspackagefolder.main:create_ds_folder_cli
3
+ dsf = dspackagefolder.main:create_ds_folder_cli
@@ -0,0 +1,4 @@
1
+ path>=17.1.1
2
+ python-dotenv>=1.2.1
3
+ sqlalchemy>=2.0.48
4
+ toml>=0.10.2
@@ -0,0 +1 @@
1
+ dspackagefolder
@@ -0,0 +1 @@
1
+ from .main import create_ds_folder
@@ -0,0 +1,184 @@
1
+ ## install uv
2
+ ## uv add requirements.txt
3
+ ## install pre-commit
4
+ ## pre-commit install
5
+ ## creeate env file into the new folder
6
+
7
+
8
+ import subprocess
9
+ import sys
10
+ from pathlib import Path
11
+
12
+
13
+ def setup_project_environment(project_dir: str | Path = "."):
14
+ project_dir = Path(project_dir).resolve()
15
+
16
+ try:
17
+ if not project_dir.exists():
18
+ raise FileNotFoundError(f"{project_dir} does not exist")
19
+ except Exception as e:
20
+ print(f"❌ Invalid project directory: {e}")
21
+ return
22
+
23
+ def run(cmd: list[str]):
24
+ try:
25
+ subprocess.check_call(cmd, cwd=project_dir)
26
+ except subprocess.CalledProcessError as e:
27
+ print(f"❌ Command failed: {' '.join(cmd)}\n{e}")
28
+ except FileNotFoundError as e:
29
+ print(f"❌ Command not found: {cmd[0]}\n{e}")
30
+ except Exception as e:
31
+ print(f"❌ Unexpected error running {' '.join(cmd)}: {e}")
32
+
33
+ # 1️⃣ Install uv if missing
34
+ try:
35
+ subprocess.check_call([sys.executable, "-m", "uv", "--version"])
36
+ except (subprocess.CalledProcessError, FileNotFoundError):
37
+ try:
38
+ print("Installing uv...")
39
+ subprocess.check_call([sys.executable, "-m", "pip", "install", "uv"])
40
+ except Exception as e:
41
+ print(f"❌ Failed to install uv: {e}")
42
+
43
+ # 2️⃣ Initialise uv project if pyproject.toml is missing
44
+ try:
45
+ pyproject = project_dir / "pyproject.toml"
46
+ if not pyproject.exists():
47
+ print("Initialising uv project...")
48
+ run(["uv", "init"])
49
+ except Exception as e:
50
+ print(f"❌ Error during uv init: {e}")
51
+
52
+ # 3️⃣ Add requirements.txt using uv
53
+ try:
54
+ requirements = project_dir / "requirements.txt"
55
+ if requirements.exists():
56
+ run(["uv", "add", "-r", "requirements.txt"])
57
+ else:
58
+ print("requirements.txt not found — skipping uv add")
59
+ except Exception as e:
60
+ print(f"❌ Error adding requirements: {e}")
61
+
62
+ # 4️⃣ Install pre-commit if missing
63
+ try:
64
+ subprocess.check_call(["pre-commit", "--version"])
65
+ except (subprocess.CalledProcessError, FileNotFoundError):
66
+ try:
67
+ print("Installing pre-commit...")
68
+ subprocess.check_call(
69
+ [sys.executable, "-m", "pip", "install", "pre-commit"]
70
+ )
71
+ except Exception as e:
72
+ print(f"❌ Failed to install pre-commit: {e}")
73
+
74
+ # 5️⃣ Install pre-commit hooks
75
+ try:
76
+ run(["git", "init"])
77
+ except FileNotFoundError:
78
+ print("❌ Git is not installed or is not in your PATH.")
79
+ print("Please install Git from https://git-scm.com/downloads")
80
+ print("After installing Git, restart your terminal and try again.")
81
+ except Exception as e:
82
+ print(f"❌ Error initializing git repository: {e}")
83
+ try:
84
+ run(["pre-commit", "install"])
85
+ except Exception as e:
86
+ print(f"❌ Error setting up pre-commit hooks: {e}")
87
+
88
+ # 6️⃣ Create ENVIRONMENT folder and .env file
89
+ try:
90
+ env_folder = project_dir / "ENVIRONMENT"
91
+ env_folder.mkdir(parents=True, exist_ok=True)
92
+
93
+ env_file = env_folder / ".env"
94
+ if not env_file.exists():
95
+ env_file.write_text("# Environment variables\n", encoding="utf-8")
96
+ print(f"Created {env_file}")
97
+ else:
98
+ print(f"{env_file} already exists")
99
+
100
+ gitignore_file = env_folder / ".gitignore"
101
+ if not gitignore_file.exists():
102
+ gitignore_file.write_text("*\n", encoding="utf-8")
103
+ print(f"Created {gitignore_file}")
104
+ else:
105
+ print(f"{gitignore_file} already exists")
106
+
107
+ except Exception as e:
108
+ print(f"❌ Error creating environment files: {e}")
109
+
110
+ # 7️⃣ Create GitHub Actions workflow
111
+ try:
112
+ github_workflows = project_dir / ".github" / "workflows"
113
+ github_workflows.mkdir(parents=True, exist_ok=True)
114
+
115
+ precommit_workflow = github_workflows / "pre-commit.yml"
116
+
117
+ if not precommit_workflow.exists():
118
+ precommit_workflow.write_text(
119
+ """name: Pre-commit
120
+
121
+ on:
122
+ push:
123
+ pull_request:
124
+
125
+ jobs:
126
+ pre-commit:
127
+ runs-on: ubuntu-latest
128
+
129
+ steps:
130
+ - name: Checkout code
131
+ uses: actions/checkout@v4
132
+
133
+ - name: Set up Python
134
+ uses: actions/setup-python@v5
135
+ with:
136
+ python-version: "3.11"
137
+
138
+ - name: Install dependencies
139
+ run: |
140
+ pip install pre-commit
141
+
142
+ - name: Run pre-commit
143
+ run: |
144
+ pre-commit run --all-files
145
+ """,
146
+ encoding="utf-8",
147
+ )
148
+ print(f"Created GitHub Actions workflow at {precommit_workflow}")
149
+ else:
150
+ print(f"{precommit_workflow} already exists")
151
+
152
+ except Exception as e:
153
+ print(f"❌ Error creating GitHub workflow: {e}")
154
+
155
+ # 7️⃣ Create GitHub Actions workflow
156
+ try:
157
+ precommit_workflow = project_dir / ".pre-commit-config.yaml"
158
+
159
+ if not precommit_workflow.exists():
160
+ precommit_workflow.write_text(
161
+ """repos:
162
+ - repo: https://github.com/kynan/nbstripout
163
+ rev: 0.6.1
164
+ hooks:
165
+ - id: nbstripout
166
+ - repo: https://github.com/Yelp/detect-secrets
167
+ rev: v1.5.0
168
+ hooks:
169
+ - id: detect-secrets
170
+ - repo: https://github.com/psf/black
171
+ rev: 24.4.2
172
+ hooks:
173
+ - id: black
174
+ """,
175
+ encoding="utf-8",
176
+ )
177
+ print(f"Created pre-commit configuration at {precommit_workflow}")
178
+ else:
179
+ print(f"{precommit_workflow} already exists")
180
+
181
+ except Exception as e:
182
+ print(f"❌ Error creating pre-commit configuration: {e}")
183
+
184
+ print("✅ Project environment setup complete")
@@ -0,0 +1,46 @@
1
+ from pathlib import Path
2
+ import shutil
3
+ import importlib.resources as resources
4
+ import sys
5
+ from dspackagefolder.install_precommit_and_create_env import setup_project_environment
6
+
7
+
8
+ def create_ds_folder(folder_name: str = "dsframework"):
9
+ # 1️⃣ Create destination folder
10
+ # 2️⃣ Locate the template folder INSIDE the package
11
+ with resources.path("dspackagefolder", "template") as template_path:
12
+ target = Path(folder_name)
13
+
14
+ if target.exists():
15
+ print(f"Folder already exists: {target}")
16
+ return
17
+
18
+ # 3️⃣ Copy template into destination
19
+ shutil.copytree(template_path, target)
20
+
21
+ print(f"Project created at: {target.resolve()}")
22
+ # 4️⃣ Setup project environment
23
+ setup_project_environment(target)
24
+ print("🎉 Setup complete! Happy coding!")
25
+
26
+
27
+ def create_ds_folder_cli():
28
+ # 1️⃣ Create destination folder
29
+ # dest_root = Path("dspackagefolder")
30
+ # dest_root.mkdir(exist_ok=True)
31
+ project_name = sys.argv[1] if len(sys.argv) > 1 else "data_science_project"
32
+ # 2️⃣ Locate the template folder INSIDE the package
33
+ with resources.path("dspackagefolder", "template") as template_path:
34
+ target = Path(project_name)
35
+
36
+ if target.exists():
37
+ print(f"Folder already exists: {target}")
38
+ return
39
+
40
+ # 3️⃣ Copy template into destination
41
+ shutil.copytree(template_path, target)
42
+
43
+ print(f"Project created at: {target.resolve()}")
44
+ # 4️⃣ Setup project environment
45
+ setup_project_environment(project_name)
46
+ print("🎉 Setup complete! Happy coding!")
@@ -0,0 +1,18 @@
1
+ # Python-generated files
2
+ __pycache__/
3
+ *.py[oc]
4
+ build/
5
+ dist/
6
+ wheels/
7
+ *.egg-info
8
+
9
+ # Virtual environments
10
+ .venv
11
+
12
+
13
+ # JUPYTER NOTEBOOKS
14
+ .ipynb_checkpoints/
15
+
16
+
17
+ # Environment variables
18
+ .env
@@ -0,0 +1,13 @@
1
+ repos:
2
+ - repo: https://github.com/kynan/nbstripout
3
+ rev: 0.6.1
4
+ hooks:
5
+ - id: nbstripout
6
+ - repo: https://github.com/Yelp/detect-secrets
7
+ rev: v1.5.0
8
+ hooks:
9
+ - id: detect-secrets
10
+ - repo: https://github.com/psf/black
11
+ rev: 24.4.2
12
+ hooks:
13
+ - id: black
@@ -0,0 +1,33 @@
1
+ # Dockerfile
2
+ FROM python:3.12-slim
3
+
4
+ WORKDIR /app
5
+
6
+ # Install uv and Jupyter
7
+ RUN pip install --no-cache-dir uv jupyterlab notebook
8
+
9
+ CMD ["bash"]
10
+
11
+
12
+ ## Build the Docker image
13
+ # Run the following command from the folder containing this Dockerfile:
14
+ # docker build -t my-dev-env .
15
+
16
+ ## Run the container (mount your local project directory)
17
+ # Linux/macOS:
18
+ # docker run -it -p 8888:8888 -v $(pwd):/app my-dev-env bash
19
+ #
20
+ # Windows (Command Prompt):
21
+ # docker run -it -p 8888:8888 -v %cd%:/app my-dev-env cmd
22
+
23
+ ## Start Jupyter Notebook inside the container
24
+ # jupyter notebook --ip=0.0.0.0 --port=8888 --no-browser --allow-root
25
+ #
26
+ # Then open your browser and go to:
27
+ # http://localhost:8888
28
+
29
+ ## Restart an existing container
30
+ # docker restart <container_name_or_id>
31
+
32
+ ## Reconnect to a running container
33
+ # docker exec -it <container_name_or_id> bash
@@ -0,0 +1,13 @@
1
+ ## TO USE THIS FOLDER:
2
+ run the install_precommit_and_create_env.py first
3
+ run uv add requirements.txt
4
+
5
+
6
+
7
+ ## main_dashboard use and running
8
+ main_dashboard.py is used for visualizing the dashboard of the data.
9
+ you run it by uv run streamlit run main_dashboard.py
10
+
11
+ # WHAT TO DO NEXT
12
+ I need to show examples of how to connect the data/sql/validation/logs/config/src
13
+
@@ -0,0 +1,2 @@
1
+ !*/
2
+ *.log
@@ -0,0 +1,60 @@
1
+ ##### This is a template for making src available in any folder.
2
+ import sys
3
+ from pathlib import Path
4
+
5
+ sys.path.append(str(Path(__file__).resolve().parents[1]))
6
+ from src.utils.logging_config import setup_logger
7
+ from src.utils.config_loader import load_config
8
+
9
+ ###### Set up logger
10
+ import sys
11
+ from pathlib import Path
12
+
13
+ sys.path.append(str(Path(__file__).resolve().parents[1]))
14
+ from src.utils.logging_config import setup_logger
15
+
16
+ logger = setup_logger(__name__, base_filename="pipeline")
17
+
18
+ logger.info("Started run")
19
+ logger.error("Failure occurred")
20
+
21
+ # logging = setup_logging()
22
+
23
+
24
+ ### Load config
25
+ import sys
26
+ from pathlib import Path
27
+
28
+ sys.path.append(str(Path(__file__).resolve().parents[1]))
29
+ from src.utils.config_loader import load_config
30
+
31
+ config = load_config()
32
+ print(config)
33
+
34
+
35
+ ### Load env variables
36
+ import sys
37
+ from pathlib import Path
38
+
39
+ sys.path.append(str(Path(__file__).resolve().parents[1]))
40
+ from src.utils.env_loader import load_env_from_root
41
+
42
+ env_path = load_env_from_root()
43
+ print(f"Loaded env variables from: {env_path}")
44
+ ##import os
45
+ ##os.getenv("YOUR_ENV_VAR")
46
+
47
+ ### Example usage of SQLCRUD
48
+ import sys
49
+ from pathlib import Path
50
+
51
+ sys.path.append(str(Path(__file__).resolve().parents[1]))
52
+ from src.sqlcrud import SQLServerCRUD
53
+
54
+ connection_string = "DRIVER={ODBC Driver 17 for SQL Server};SERVER=your_server;DATABASE=your_db;UID=your_user;PWD=your_password"
55
+ sql_crud = SQLServerCRUD(connection_string)
56
+ sql_crud.connect()
57
+ sql_crud.build_query("sql/query.sql", params={"param1": "value1"})
58
+ df = sql_crud.read_data()
59
+ print(df)
60
+ sql_crud.close_connection()
@@ -0,0 +1,6 @@
1
+ # toml
2
+ # streamlit
3
+ # pydantic
4
+ # python-dotenv
5
+ # sqlalchemy
6
+ # pandas
File without changes
File without changes