Database Helper Package
Reason this release was yanked:
Unstable release
Project description
HELPER SCRIPTS
Built for data professionals by data professionals.
Note: Despite the tagline, this package can be used by anyone.
PACKAGE DESCRIPTION
DatabaseHandler
This code defines a class called DatabaseHandler
that provides methods for interacting with a PostgreSQL database.
-
It imports necessary modules:
ConfigParser
fromconfigparser
,psycopg2
,DictCursor
frompsycopg2.extras
, andsys
. -
The
DatabaseHandler
class is defined. -
The
__init__
method initializes theDatabaseHandler
object with theconfig_file
andconfig_file_section
parameters. It also initializesself.conn
asNone
. -
The
read_db_config
method reads the configuration file specified inself.config_file
usingConfigParser
. It retrieves the parameters for the PostgreSQL section specified inself.config_file_section
and returns them as a dictionary. -
The
connect
method establishes a connection to the database using the parameters obtained fromread_db_config
. -
The
get_cursor
method creates a cursor for executing database queries. It checks if a connection exists or is closed and connects if necessary. It returns a cursor withDictCursor
as the cursor factory, which returns query results as dictionaries. -
The
close
method closes the database connection if it is open. -
The
commit
method commits the currently open transaction. -
The
rollback
method rolls back the currently open transaction. -
The
execute
method creates a cursor, executes a query with optional arguments, and returns the cursor. If an exception occurs during query execution, it rolls back the transaction, closes the cursor, and raises the exception. -
The
fetchone
method executes a SELECT query that is expected to return a single row. It calls theexecute
method internally, fetches the first row from the cursor, closes the cursor, and returns the row as apsycopg2 DictRow
. -
The
fetchall
method executes a SELECT query that is expected to return multiple rows. It calls theexecute
method internally, fetches all rows from the cursor, closes the cursor, and returns the rows as a list ofpsycopg2 DictRow
objects. -
The
copy_to
method executes a COPY command to copy data from a table to a file. It opens the file specified inpath
and usescopy_to
method of the cursor to perform the copying. If an exception occurs, it closes the cursor and raises the exception. -
The
sql_copy_to
method executes an SQL COPY command to copy data from a table to a file. It opens the file specified inpath
and usescopy_expert
method of the cursor to perform the copying. If an exception occurs, it closes the cursor and raises the exception. -
The
sql_copy_from
method executes an SQL COPY command to copy data from a file to a table. It opens the file specified inpath
and usescopy_expert
method of the cursor to perform the copying. If an exception occurs, it closes the cursor and raises the exception. -
The
copy_from
method executes a COPY command to copy data from a file to a table. It opens the file specified inpath
and usescopy_from
method of the cursor to perform the copying. If an exception occurs, it closes the cursor and raises the exception.
Overall, this code provides a set of methods to interact with a PostgreSQL database, including connecting to the database, executing queries, fetching results, and performing data copying operations using the psycopg2
library.
SendMail
This code defines a class called SendMail
that is responsible for sending emails using the smtplib
library. Here's a breakdown of what the code is doing:
-
It imports necessary modules:
MIMEBase
,smtplib
,ssl
,MIMEText
,MIMEMultipart
,encoders
fromemail.mime
andemail
,Helpers
fromdatabase_handler
,config
fromdatabase_handler
, andpath
fromos
. -
It reads the email server configuration parameters from a configuration file using the
CONFIG
class fromdatabase_handler
and assigns them to theparams
variable. -
The
SendMail
class is defined. -
The
send_email
method is defined within theSendMail
class. It takes several parameters:email_message
(the body of the email),subject
(the subject of the email),email_recepients
(a list of recipient email addresses), andfile_attachments
(a list of file paths for attachments, optional). -
Inside the method, it retrieves the necessary email server configuration parameters from
params
. -
It creates an instance of
MIMEMultipart
to construct the email message. -
It sets the email subject, sender, recipient(s), and Cc fields of the message.
-
It constructs the HTML content of the email using the
email_message
parameter. -
It attaches the HTML content to the email message using
MIMEText
and the 'html' subtype. -
If there are file attachments, it iterates over the
file_attachments
list, opens each file, creates aMIMEBase
object, reads the file content, encodes it using Base64, and adds it as an attachment to the email message. -
It creates a SSL context using
ssl.create_default_context()
. -
It establishes a connection to the SMTP server specified in the email server configuration using
smtplib.SMTP()
. -
It starts a TLS connection with the server using
server.starttls()
. -
It authenticates with the server using the login email and password specified in the email server configuration.
-
It sends the email message using
server.sendmail()
. -
If an exception occurs during the process, it is raised.
Overall, this code provides a class that encapsulates the functionality to send emails with attachments using an email server specified in a configuration file.
GoogleDrive
This code defines a class worker
that provides various functionalities to interact with Google Drive using the Google Drive API. Below is a description of the key components and functionalities of this code:
Class worker
Class Attributes
- scope_readonly: Scope for read-only access to Google Drive.
- scope_write: Scope for read and write access to Google Drive.
- initial_download_path: Default path for downloading files, set to the current working directory.
Constructor
__init__(self, api_name='drive', api_version='v3', key_file_location='')
: Initializes the class with API name, version, and the location of the key file.
Methods
-
construct_service(self, scope: str = None):
- Constructs and returns a Google Drive service instance with the specified scope.
-
read_drive_files(self, scope=scope_readonly, file_id: str = None, filename: str = None, ignore_trashed=True):
- Reads files from Google Drive based on file ID or filename, with an option to ignore trashed files.
-
download_drive_file(self, file_id=None, download_path=initial_download_path, filename=None, scope=scope_write):
- Downloads a file from Google Drive based on file ID or filename to a specified download path.
-
upload_file_to_drive(self, scope=scope_write, filename=None, file_path=None, parent_folder_id=None, mimetype=None, coerce=True):
- Uploads a file to Google Drive with the specified parameters.
-
get_file_permissions(self, file_id=None):
- Retrieves and returns the permissions of a specified file on Google Drive.
-
delete_drive_files(self, file_ids: list = [], reset=False):
- Deletes specified files from Google Drive. If
reset
is True, it deletes all files.
- Deletes specified files from Google Drive. If
Error Handling
- The code handles errors using
try-except
blocks and returns appropriate error messages and codes.
Usage
- The class
worker
can be instantiated and used to interact with Google Drive, performing operations like reading, downloading, uploading, checking permissions, and deleting files.
This code provides a structured way to interact with Google Drive using the Google Drive API, encapsulating the logic within a class for ease of use and reusability.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for helper_scripts-0.4.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7b29c5cdd7b45322f02edd08c21028248f29d85dbfde1ee4825bd26959638110 |
|
MD5 | cc1aecf68e90ee7011e6b73137cb4e33 |
|
BLAKE2b-256 | 3a8359d3b4f9411fc8fddaec13618069b6dfcd7aa3094e4a3464ea5cf2bb2751 |