Skip to main content

Few Utilities

Project description

Few Utility Functions

License Python pypi Build Status

Install

pip install ddcUtils
pip install git+https://github.com/ddc/ddcUtils

File Utils

from ddcUtils import FileUtils
fu = FileUtils()
  • OPEN_FILE

    • Opens the given file and returns 0 for success and 1 for failed access to the file
      open_file(file_path: str) -> int
      
  • LIST_FILES

    • Lists all files in the given directory and returns them in a list
      list_files(directory: str, file_extension: str = None) -> list
      
  • GZIP_FILE

    • Opens the given file and returns the path for success or None if failed
      gzip_file(file_path: str) -> Path | None
      
  • UNZIP_FILE

    • Opens the given file and returns the zipfile for success or None for failed
      unzip_file(file_path: str, out_path: str = None) -> zipfile.ZipFile | None
      
  • COPYDIR

    • Copy files from src to dst and returns True or False
      copydir(src, dst, symlinks=False, ignore=None) -> bool
      
  • DOWNLOAD_FILE

    • Download file from remote url to local and returns True or False
      download_file(remote_file_url, local_file_path) -> bool
      
  • GET_EXE_BINARY_TYPE

    • Returns the binary type of the given windows EXE file
      get_exe_binary_type(file_path: str) -> str | None
      

Functions for .ini/.conf config file structure

Example of file.ini:

[main]
files=5
path="/tmp/test_dir"
port=5432
list=1,2,3,4,5,6
  • GET_ALL_FILE_VALUES

    • Get all values from an .ini config file structure and returns them as a dictionary
      get_all_file_values(file_path: str, mixed_values: bool = False) -> dict
      
  • GET_ALL_FILE_SECTION_VALUES

    • Get all section values from an .ini config file structure and returns them as a dictionary
      get_all_file_section_values(file_path: str, section: str) -> dict
      
  • GET_FILE_VALUE

    • Get value from an .ini config file structure and returns it
      get_file_value(file_path: str, section: str, config_name: str) -> str | int | None:
      
  • SET_FILE_VALUE

    • Set value from an .ini config file structure and returns True or False
      set_file_value(file_path: str, section_name: str, config_name: str, new_value) -> bool:
      

Object

  • This class is used for creating a simple class object
from ddcUtils import Object
obj = Object()
obj.test = "test"

Misc Utils

from ddcUtils import MiscUtils
mu = MiscUtils()
  • CLEAR_SCREEN

    • Clears the terminal screen
      clear_screen() -> None
      
  • USER_CHOICE

    • This function will ask the user to select an option
      user_choice() -> input
      
  • GET_ACTIVE_BRANCH_NAME

    • This function will return the name of the active branch
      get_active_branch_name(default_master_branch_name: str = "master") -> str
      
  • GET_CURRENT_DATE_TIME

    • Returns the current date and time on UTC timezone
      get_current_date_time() -> datetime
      
  • CONVERT_DATETIME_TO_STR_LONG

    • Converts a datetime object to a long string
    • returns: "Mon Jan 01 2024 21:43:04"
      convert_datetime_to_str_long(date: datetime) -> str
      
  • CONVERT_DATETIME_TO_STR_SHORT

    • Converts a datetime object to a short string
    • returns: "2024-01-01 00:00:00.000000"
      convert_datetime_to_str_short(date: datetime) -> str
      
  • CONVERT_STR_TO_DATETIME_SHORT

    • Converts a str to a datetime
    • input: "2024-01-01 00:00:00.000000"
      convert_str_to_datetime_short(datetime_str: str) -> datetime
      
  • GET_CURRENT_DATE_TIME_STR_LONG

    • Returns the current date and time as string
    • returns: "Mon Jan 01 2024 21:47:00"
      get_current_date_time_str_long() -> str
      

OS Utils

from ddcUtils import OsUtils
ou = OsUtils()
  • GET_CURRENT_PATH

    • Returns the current working directory
      get_current_path() -> Path
      
  • GET_PICTURES_PATH

    • Returns the pictures directory inside the user's home directory
      get_pictures_path() -> Path
      
  • GET_DOWNLOADS_PATH

    • Returns the download directory inside the user's home directory
      get_downloads_path() -> Path
      

Logs

  • SETUP_LOGGING
    • Logs will rotate based on when variable to a .tar.gz file, defaults to midnight
    • Logs will be deleted based on the days_to_keep variable, defaults to 7
    • Current 'when' events supported:
      • S - Seconds
      • M - Minutes
      • H - Hours
      • D - Days
      • midnight - roll over at midnight
      • W{0-6} - roll over on a certain day; 0 - Monday
from ddcUtils import Log
log = Log(
    dir_logs: str = "logs",
    filename: str = "app",
    days_to_keep: int = 7,
    when: str = "midnight",
    utc: bool = True,
    level: str = "info"
)
log.setup_logging()

Databases

  • DBSQLITE
from ddcUtils.databases import DBSqlite
dbsqlite = DBSqlite(db_file_path: str, batch_size=100, echo=False)
  • DBPOSTGRES
from ddcUtils.databases import DBPostgres
dbpostgres = DBPostgres(**kwargs)
username = kwargs["username"]
password = kwargs["password"]
host = kwargs["host"]
port = kwargs["port"]
db = kwargs["database"]
  • DBUTILS
    • Uses SQLAlchemy statements
from ddcUtils import DBUtils
db_utils = DBUtils(session)
db_utils.add(stmt)
db_utils.execute(stmt)
db_utils.fetchall(stmt)
db_utils.fetchone(stmt)
db_utils.fetch_value(stmt)

Source Code

Build

poetry build

Run Tests

poe test

Get Coverage Report

poe coverage

License

Released under the MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ddcutils-1.0.10.tar.gz (11.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ddcutils-1.0.10-py3-none-any.whl (13.7 kB view details)

Uploaded Python 3

File details

Details for the file ddcutils-1.0.10.tar.gz.

File metadata

  • Download URL: ddcutils-1.0.10.tar.gz
  • Upload date:
  • Size: 11.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for ddcutils-1.0.10.tar.gz
Algorithm Hash digest
SHA256 d0f81a9267d67111df5d2c029c2b17cfcecc19547248c7b5a18da1f3e3ac8ce5
MD5 3d6578036a5bc2a41eb5a8966c2ff5de
BLAKE2b-256 b318a57ebf2eccb6f618576cf9589ee365239d4d314a5f973006ac4f7917e630

See more details on using hashes here.

File details

Details for the file ddcutils-1.0.10-py3-none-any.whl.

File metadata

  • Download URL: ddcutils-1.0.10-py3-none-any.whl
  • Upload date:
  • Size: 13.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for ddcutils-1.0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 5a06b22e774dc23af1f0109c37835fc90af43828a2c6eb610f89395cc854db8a
MD5 c137602103609bb6d68d512d466b3cdb
BLAKE2b-256 f0f301c39d2d65ae55ff5da160d0fc173db142350993ccbec3be8a6d8bfebc45

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page