pjdev-sqlmodel 4.1.0a2__tar.gz → 4.2.0a2__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pjdev-sqlmodel
3
- Version: 4.1.0a2
3
+ Version: 4.2.0a2
4
4
  Project-URL: Documentation, https://gitlab.purplejay.net/keystone/python
5
5
  Project-URL: Issues, https://gitlab.purplejay.net/keystone/python/issues
6
6
  Project-URL: Source, https://gitlab.purplejay.net/keystone/python
@@ -1,4 +1,4 @@
1
1
  # SPDX-FileCopyrightText: 2024-present Chris O'Neill <chris@purplejay.io>
2
2
  #
3
3
  # SPDX-License-Identifier: MIT
4
- __version__ = "4.1.0a2"
4
+ __version__ = "4.2.0a2"
@@ -54,5 +54,9 @@ class SqliteSettings(SqlModelSettings):
54
54
 
55
55
 
56
56
  class PostgresSettings(SqlModelSettings):
57
+ username: str
58
+ password: str
59
+ port: int = 5432
60
+
57
61
  def get_connection_string(self) -> str:
58
- return f"postgresql+psycopg:///{self.host}.{self.db_name}"
62
+ return f"postgresql+psycopg://{self.username}:{self.password}@{self.host}:{self.port}/{self.db_name}"
@@ -8,7 +8,6 @@ import pandas as pd
8
8
  from openpyxl.reader.excel import load_workbook
9
9
  from loguru import logger
10
10
  from sqlalchemy import Engine
11
- from sqlmodel import select
12
11
 
13
12
  from pjdev_sqlmodel import session_context, sqlmodel_service
14
13
  from pjdev_sqlmodel.models import ModelBase
@@ -16,14 +15,10 @@ from pjdev_sqlmodel.models import ModelBase
16
15
  T = TypeVar("T", bound=ModelBase)
17
16
 
18
17
 
19
- def get_files_in_directory(directory: Path, file_name='*', force_presence=False) -> List[Path]:
20
- file_obj = [f for f in directory.glob(f"**/{file_name}.xlsx") if not f.name.startswith("~$")] + [
21
- f for f in directory.glob(f"**/{file_name}.csv")
18
+ def get_files_in_directory(directory: Path) -> List[Path]:
19
+ return [f for f in directory.glob("**/*.xlsx") if not f.name.startswith("~$")] + [
20
+ f for f in directory.glob("**/*.csv")
22
21
  ]
23
- if force_presence and len(file_obj) == 0:
24
- logger.error(f'Failed to find files matching the {directory}/{file_name} pattern and presence is required. Exiting...')
25
- exit(1)
26
- return file_obj
27
22
 
28
23
 
29
24
  def get_csv_columns(file_path):
@@ -172,36 +167,6 @@ def load_raw_excel_data(
172
167
  )
173
168
 
174
169
 
175
- def convert_table_to_df(InputTable: type[BaseModel]):
176
- with session_context() as session:
177
- statement = select(InputTable)
178
- results = session.exec(statement).all()
179
-
180
- headers = []
181
- field_names = []
182
- for name, annotation in InputTable.__annotations__.items():
183
- field = InputTable.__fields__[name]
184
- alias = field.alias if field.alias else name
185
- headers.append(alias)
186
- field_names.append(name)
187
-
188
- data = []
189
- for res in results:
190
- new_obj = {}
191
- for i in range(len(headers)):
192
- header = headers[i]
193
- field_name = field_names[i]
194
- new_obj[header] = getattr(res, field_name)
195
- data.append(new_obj)
196
- df = pd.DataFrame(data)
197
- return df
198
-
199
-
200
- def convert_table_to_csv(InputTable: type[BaseModel], file: Path):
201
- df = convert_table_to_df(InputTable)
202
- df.to_csv(file, index=False)
203
-
204
-
205
170
  def __read_csv(
206
171
  file: Path | str,
207
172
  cols: Optional[List[str]] = None,
@@ -243,4 +208,4 @@ def convert_to_csv(
243
208
  df = pd.DataFrame(dict_data)
244
209
 
245
210
  # Export DataFrame to CSV
246
- df.to_csv(filename, index=index, columns=cols)
211
+ df.to_csv(filename, index=index, columns=cols)