berryworld 1.0.0.194150__py3-none-any.whl → 1.0.0.194154__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.
@@ -13,34 +13,27 @@ from numbers import Number
13
13
  class SQLConnection:
14
14
  """ Connect to Microsoft SQL """
15
15
 
16
- def __init__(self, db_reference, server, db_server=None, master=False, trusted_certificate=True, azure=False,
17
- encrypt=True, multi_db=False):
16
+ def __init__(self, db_reference, server, master=False, trusted_certificate=True, encrypt=True, multi_db=False):
18
17
  """ Initialize the class
19
18
  It requires the
20
- SQL-DBREFERENCE-DBNAME = 'db name'
21
- SQL-DBREFERENCE-USERNAME = 'user'
22
- SQL-DBREFERENCE-PASSW = 'password'
19
+ SQL-DBREFERENCE-PROD = 'server_name db_name user password'
23
20
  -----------------------------
24
21
  db_reference = 'FruitFlow'
25
22
  server = 'prod'
26
- wincred = True
27
- master = False
28
23
 
29
- con_ = SQLConnection(db_reference, server, wincred, master)
24
+ con_ = SQLConnection(db_reference, server)
30
25
  -----------------------------
31
26
  :param db_reference: Database reference to connect to
32
27
  :param server: Server to connect to
33
28
  :param master: Indicate whether the connection will be done to master or to a specific database
34
29
  :param trusted_certificate: Indicate whether the connection will be done using the TrustServerCertificate
35
- :param azure: Indicate whether the connection will be done to an Azure SQL database or to an on-premise SQL
36
30
  :param encrypt: Indicate whether the connection will use SSL/TLS encryption
37
31
  :param multi_db: Indicate whether the connection will be done to a specific database or to multiple databases
38
32
  """
39
33
  self.db_reference = db_reference.replace("_", "") if "_" in db_reference else db_reference
40
34
  self.server = server
41
- self.db_server = db_server
42
35
  if self.server is None:
43
- raise ValueError("Please provide a value for server parameter")
36
+ raise ValueError("Please provide a value for server type")
44
37
 
45
38
  self.multi_db = multi_db
46
39
  self.master = master
@@ -55,13 +48,10 @@ class SQLConnection:
55
48
  self.encrypt = ''
56
49
 
57
50
  drivers = [driver for driver in pyodbc.drivers() if (bool(re.search(r'\d', driver)))]
58
- self.azure = azure
59
- self.creds = {}
60
51
  try:
61
52
  self.server_name, self.db_name, self.user_name, self.password = self.credentials()
62
-
63
53
  except Exception as e:
64
- print(f'Cannot find a reference to {self.db_reference} - Error: {str(e)}')
54
+ raise ValueError(f"Cannot find a reference to {self.db_reference} and {self.server.upper()} server: {str(e)}")
65
55
 
66
56
  self.con = None
67
57
  self.engine = None
@@ -85,21 +75,24 @@ class SQLConnection:
85
75
  """ Return the credentials used to connect to the SQL Server
86
76
  :return: Dictionary with the credentials used to connect to the SQL Server
87
77
  """
88
- if self.db_server is not None:
89
- server_name = self.db_server
78
+ server_creds = os.environ.get(f"SQL-{self.db_reference.upper()}-{self.server.upper()}")
79
+ server_creds = server_creds.split(' ') if server_creds is not None else None
80
+ if server_creds is None:
81
+ raise ValueError(f"Credentials not registered for {self.db_reference} on {self.server.upper()} server")
82
+
83
+ server_name = server_creds[0]
84
+ if len(server_creds) > 1:
85
+ db_name = server_creds[1]
90
86
  else:
91
- if self.azure:
92
- server_name = os.environ.get(f"SQL-{self.server.upper()}")
93
- else:
94
- server_name = os.environ.get(f"SQL-ONPREM-{self.server.upper()}")
95
-
96
- if os.environ.get("SQL-" + self.db_reference.upper() + '-DBNAME-' + self.server.upper()) is not None:
97
- db_name = os.environ.get("SQL-" + self.db_reference.upper() + '-DBNAME-' + self.server.upper())
87
+ raise ValueError(f"Database name not provided for {self.db_reference} on {self.server.upper()} server")
88
+ if len(server_creds) > 2:
89
+ user_name = server_creds[2]
98
90
  else:
99
- db_name = os.environ.get("SQL-" + self.db_reference.upper() + '-DBNAME')
100
-
101
- user_name = os.environ.get("SQL-" + self.db_reference.upper() + '-USERNAME')
102
- password = os.environ.get("SQL-" + self.db_reference.upper() + '-PASSWORD')
91
+ raise ValueError(f"User name not provided for {self.db_reference} on {self.server.upper()} server")
92
+ if len(server_creds) > 3:
93
+ password = server_creds[3]
94
+ else:
95
+ raise ValueError(f"Password not provided for {self.db_reference} on {self.server.upper()} server")
103
96
 
104
97
  return re.sub(r'(\\)\1*', r'\1', server_name), db_name, user_name, password
105
98
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: berryworld
3
- Version: 1.0.0.194150
3
+ Version: 1.0.0.194154
4
4
  Summary: Handy classes to improve ETL processes
5
5
  Home-page: https://www.berryworld.com
6
6
  Author: BerryWorld ltd
@@ -19,19 +19,19 @@ berryworld/power_automate.py,sha256=V86QEGG9H36DrDvod9Q6yp8OUu307hfYcXJhw06pYrA,
19
19
  berryworld/sharepoint_con.py,sha256=_P9m6OydNbm7tCtdMGfF5KRif2eooCcSW3tKbdYr2R4,22254
20
20
  berryworld/snowflake_conn.py,sha256=go5ZJjnhz5SkG83B0G0XZSwKgU6tg7AFTBso59oRG5M,2434
21
21
  berryworld/sql_conn.py,sha256=tYKgD8ja7NQuvLB1WBjdsJbPcm3eX1Y76QPTEgx8R8Q,47564
22
- berryworld/sql_connenction.py,sha256=qdR2ar9z1cJfSL84kYhvUkzHi7Gc91y9ctGWwFX3Dow,48568
22
+ berryworld/sql_connenction.py,sha256=ku2f4_4JY-X-G9dY7h1eKEkRgZY_Ps-1pC1_1ZvF1ng,48411
23
23
  berryworld/teams_logging.py,sha256=8NwXyWr4fLj7W6GzAm2nRQCGFDxibQpAHDHHD24FrP8,6997
24
24
  berryworld/transportation_solver.py,sha256=tNc1JJk71azIBccdWVHbqcvXWhalOdKffv6HmBD6tG0,5014
25
25
  berryworld/verify_keys.py,sha256=X4Nuz3o0XbRDYofbJGvxIDeN5gfWj19PN7lhO6T3hR8,4356
26
26
  berryworld/vivantio.py,sha256=QfZo0UKqkzVRg_LyiwivNd3aEup4TH57x4KxLZkCJwc,10627
27
27
  berryworld/vivantio_logging.py,sha256=ciy7gA4u3FrgUIpEBnMgocbNPp6jcu9TPoy-kLcrTZU,5736
28
28
  berryworld/xml_parser.py,sha256=HWD71NaTN3DaIOGT6Wzxs4CEsroFhGQwe9iPLIL80Co,957
29
- berryworld-1.0.0.194150.dist-info/licenses/LICENSE,sha256=vtkVCJM6E2af2gnsi2XxKPr4WY-uIbvzVLXieFND0UU,1074
29
+ berryworld-1.0.0.194154.dist-info/licenses/LICENSE,sha256=vtkVCJM6E2af2gnsi2XxKPr4WY-uIbvzVLXieFND0UU,1074
30
30
  tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
31
  tests/test_allocation_config.py,sha256=e12l6fE9U57eSPS35g6ekJ_hol7-RHg89JV60_m1BlE,4633
32
32
  tests/test_handy_mix_config.py,sha256=Un56mz9KJmdn4K4OwzHAHLSRzDU1Xv2nFrONNuzOG04,2594
33
33
  tests/test_xml_parser.py,sha256=3QTlhFEd6KbK6nRFKZnc35tad6wqukTbe4QrFi8mr_8,859
34
- berryworld-1.0.0.194150.dist-info/METADATA,sha256=9tjHXUhBt7cDlqa_9c_nD8BygR8htzVNh6WtXFW4XEg,1445
35
- berryworld-1.0.0.194150.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
36
- berryworld-1.0.0.194150.dist-info/top_level.txt,sha256=GIZ5qy-P5oxfEH755vA1IMFeTVdX3-40JxMe6nOe5I8,17
37
- berryworld-1.0.0.194150.dist-info/RECORD,,
34
+ berryworld-1.0.0.194154.dist-info/METADATA,sha256=oVL9dT1-1QIGuuJlUqc_5bT0mffgT8UlV21rdc0-YGg,1445
35
+ berryworld-1.0.0.194154.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
36
+ berryworld-1.0.0.194154.dist-info/top_level.txt,sha256=GIZ5qy-P5oxfEH755vA1IMFeTVdX3-40JxMe6nOe5I8,17
37
+ berryworld-1.0.0.194154.dist-info/RECORD,,