Change Log

  • 1.5.0rc3 - Release candidate (3) for version 1.5.0. by j_berendt at 2024-08-14 17:47:50

    Changes:
    - Addressed a bug in setup.cfg where the new [build] table worked for
      Windows, but not Linux.
      - The [build] table is now added dynamically for Windows only.
    - Updated the homepage of the documentation to include a more accurate
      build instruction for Windows.
    
    Released: 2024-08-14
    
  • 1.5.0rc2 - Release candidate (2) for version 1.5.0. by j_berendt at 2024-08-14 14:53:40

    Changes:
    - Added a compiler entry to setup.cfg (for Windows building).
    - Minor accuracy updates to the README file.
    - Updated the release checklist.
    - Updated minimum Python version to 3.7.
    - Updated references to Python 3.6 to Python 3.7.
    - Removed Python 3.6 from the documentation.
    
    Python 3.6 deprecation:
    - Although Python 3.6 is no longer *officially* supported, the library
      will still work on 3.6 in most cases. The reason for pulling official
      support is due to the difficulty in getting hold of a build environment
      for 3.6 as it's no longer supported.
    
    Testing:
    - Python 3.8 testing and coverage completed successfully at 100%.
    - Python 3.12 testing and coverage completed successfully at 100%.
    
    Released: 2024-08-14
    
  • 1.5.0rc1 - Release candidate for version 1.5.0. by j_berendt at 2024-08-09 13:18:24

    Changes:
    - Added a README file for GitHub and PyPI.
    - Migrated the build from setup.py to pyproject.toml.
    - Minor documentation updates, primarily on the homepage.
    
    Testing:
    - Python 3.8 testing and coverage completed successfully at 100%.
    - Python 3.11 testing and coverage completed successfully at 100%.
    
    Released: 2024-08-12
    
  • 1.5.0.dev1 - Updates to the mathfunc and stats modules. Bug fixes. by j_berendt at 2023-01-19 20:25:11

    mathfunc:
    - PHI: The former function 'phi' has been n renamed to 'PHI', as this
      calculates a *constant* value of phi. This adjustment also makes
      the 'phi' function name available for the new function.
    - phi: A new 'phi' function has been added to calculate Euler's totient
      (or phi function).
    - esieve: Updated to support a larger quantity of prime numbers due
      to a different C memory allocation method. Tested up to 100M
      successfully. Additionally, the esieve method has been updated to
      be more memory efficient.
    - is_permutation: A new function to determine if two positive integers
      are permutations of each other.
    
    stats:
    - A CUSUM calculation method has been added to the Stats class.
    - A Gaussian KDE calculation has been added to the Stats class.
    
    Bug fixes:
    - utils.clean_dataframe:
      - BUG: Integer and float values were converted to NaN during cleaning
             if a string was present in the field.
      - FIX: If a string is present in the field, the dtype is set to
             'object', however the integer and float values retain their
             original value.
    
    Released: 2023-01-25
    
  • 1.4.0 - Addition of the dirsplit function to the filesys module. by j_berendt at 2022-08-12 13:34:16

    filesys:
    - The dirsplit function has been added which splits the files in a given
      directory into (n) sub-directories.
    - This function is designed to facilitate batch loading where the parent
      directory contains more files than the loader is designed to handle in
      a single run.
    
    Released: 2022-08-15
    
  • 1.3.0 - Addition of the cutils module and a mathfunc fix. by j_berendt at 2022-07-18 11:21:45

    cutils.py:
    - Addition of the c-based utilities module.
    - memset function added to wipe a specific memory location.
    
    mathfunc:
    - Updated to simplify the logic in the is_pandigital method.
    
    Released: 2022-07-18
    
  • 1.2.0 - New filesys module. Minor bug fix in mathfunc. by j_berendt at 2022-06-29 14:38:42

    filesys:
    - The filesys module contains a new function for comparing two files
      to verify if they are the same.
    - All test cases written with 100% test coverage.
    
    mathfunc:
    - Bug fix to the is_triangular function.
      - Addresses a bracketing issue where the wrong triangular value
        was being calculated, although the end result of the function
        was still correct.
    
    Released: 2022-06-30
    
  • 1.1.0 - New ‘source check’ utility and mathfunc updates. by j_berendt at 2022-06-07 10:28:05

    srccheck:
    - A new utility has been added (source check) which enables the
      checksumming of files.
    - The primary design-purpose of this utility is to enable the caller
      application to *easily* perform checksums on its source code files
      during startup.
    
    mathfunc:
    - primefactors:
        - Introduced a primefactors function which generates a list of prime
          factors for a given N value.
    - fib:
        - Updated the Fibonacci sequence generator to return a list of values
          the in the sequence, up to N.
        - Updated the internal logic to use iteration, rather than
          linear calculation due to inaccuracy in higher values of N.
    - New methods added:
      - *intconcat*: Concatenate two integer values.
      - *int_nbits*: Return the number of bits occupied by (n).
      - *is_perfect*: Test is a number is a perfect number.
    - Changed C source code filenames for mathfunc from libmfunc to _mathfunc
      for clarity.
    - Test cases updated in support of these updates.
    
    stats:
    - A new 'stats' module has been added with the view of offering 'standard'
      statistical methods into a project, without the dependency overhead of
      a heavy data science library such as scipy.
    
    Released: 2022-06-13
    
  • 1.0.0b1 - Bug fixes for the alpha 1 release. by j_berendt at 2022-04-07 13:28:17

    progressbar:
    - Addressed an issue introduced in v1.0.0a1, where a single whitespace
      character was left at the end of the progress bar.
      For example: 'Processing ... N% Complete '.
    - Whitespace removed.
    
    utils:
    - The 'ping' function has been updated to include a 'timeout' parameter.
    
    Documentation:
    - Changed code examples in the documentation which still referenced
      utils3 to utils4.
    
    Released: 2022-04-07
    
  • 1.0.0a1 - Complete overhaul and update of utils3. by j_berendt at 2022-01-04 13:18:36

    Key changes:
    - Fully documented library.
    - Fully tested code - with 100% code coverage.
    - Fewer dependencies.
    - Better terminal colour support for Windows.
    - New mathfunc library, written in C for efficiency.
    - Cleaner, more efficient code, relative to utils3.
    
    Change overview:
    - Initial cleanup commit in preparation for the utils4 overhaul.
    - Setup file updated.
    - Addition of the C library (libmfunc) which provides the low-level
      logic for the mathfunc module.
    - Module revisions, testing and docs complete for the following modules:
      - cmaps
      - config
      - convert
      - crypto
      - dfdiff
      - dict2obj
      - log
      - mathfunc (libmfunc)
      - palette
      - progressbar
      - pywarnings
      - reader
      - registry (Windows-only, docs only)
      - reporterror
      - termcolour (docs only)
      - tickers (docs only)
      - timedelta
      - user_interface (docs only)
      - utils
      - validation
    
    New modules:
    - mathfunc:
      - This module is a wrapper for the C extension libary 'libmfunc' which
        contains high-iteration mathematical calculations. The low-level
        library has been implemented in C for speed and efficiency.
    - palette:
      - A new colour palette module containing all named CSS4 colours,
        accessible in both hex and RGB formats.
    - termcolour:
      - This module replaces the previous 'colours' module with extended, yet
        simplified ANSI sequence logic for colouring terminal text.
    
    Removed modules:
    The following module have been *removed* from utils4.
    - colours (replaced with the termcolour module)
    - database
    - get_datafiles
    
    Deprecations:
    - user_interface:
      - The 'get_input' method has been deprecated and replaced with the
        'prompt' method. A FutureWarning is raised when this method is used.
    - utils:
      - Many of the no-longer-used methods from the utils module have been
        removed, but will remain available in utils3 v0.15.1.
    - validation:
      - Many of the no-longer-used methods from the validation module have
        been removed, and its internal structure and logic have been
        simplified. If you require now-missing functionality, please continue
        to use the latest utils3 (v0.15.1).
    
    Other changes:
    - user_interface:
      - The user_interface module no longer requires an external JSON config
        file, as the config values have been integrated into the module itself.
      - A reported bug in the get_input (now prompt) method has been addressed
        where ANSI sequences were displayed in a Windows terminal, rather than
        colouring the text.
    - Updates to MANIFEST.in:
      - Includes the test suite in the source dist.
      - Includes *only* libmfunc* files in the libs directory.
    - setup:
      - On source and build setup calls, *copies* are made of the source dist
        file (.tar.gz) and the wheel file and renamed to use 'latest' in place
        of the version number.
    
    Testing:
    - Incorporated 'coverage' into the testing suite to ensure optimal code
      testing coverage.
    - Added .bat test runner files for easy testing on Windows.
    - The test cases have passed successfully on the following platforms and
      Python versions:
    
        Linux x86_64    Linux armv7l    Windows x86_64
        ------------    ------------    --------------
        3.6.15          3.6.15          3.6.8
        3.7.13          3.7.13          3.7.9
        3.8.13          3.8.13          3.8.10
        3.9.12          -               -
        3.10.4          -               -
    
    Documentation:
    - Documentation now uses the read-the-docs theme.
    - Guidance included for building utils4 from source.
    - Layout and navigation updated to provide easier/clearer access to the
      designed area.
    - Added a spell checker to the documentation generation process.
    
    Released: 2022-04-04
    
  • 0.15.1 - Progress bar bug fix. by j_berendt at 2021-12-14 12:48:54

    progressbar.py:
    - BUG:
      - When run on Windows, the progress bar initialisation method
        re-initialised colorama for each instance of the progress bar.
      - This caused the progress bar to slow down substantially after
        about 200 iterations, and in some cases caused programs crashes
        due to a stack overflow.
    - FIX:
      - Moved the colorama initialisation into the __init__ module of
        the utils3 package, and only to initialise if on Windows.
    
    Released: 2021-12-14
    
  • 0.15.0 - Addition of the convert module. by j_berendt at 2021-10-26 21:00:10

    convert.py:
    - The convert module is used to perform various data type conversions
      such as bin -> ascii, ascii -> hex, hex --> bin, etc.
    - All conversions supported for: binary, ascii, hexidecimal and integer.
    
    Released: 2021-10-26
    
  • 0.14.1 - Update to the reader module. by j_berendt at 2021-10-20 14:14:36

    reader.py:
    - The read_xls method has been updated to accept and apply date formats
      to ensure the call to pandas.read_csv parses the date columns
      correctly.
    
    Other changes:
    - Updated the docs to reflect Python 3.5+.
    - Various (non-functional) code base changes to address pylint detections.
    
    Released: 2021-10-20
    
  • 0.14.0 - Addition of the reader.py module. by j_berendt at 2021-08-25 14:00:14

    reader:
    - The reader module was developed to read old (Excel 2) workbooks
      into a DataFrame.
    
    Other changes:
    - Updated the setup.sh script to add/update the requirements.txt file.
      - Minor updates to output formatting.
    - Updated pylintr to v0.3.0.
    
    Released: 2021-08-25
    
  • 0.13.3 - User interface module bug fix. by j_berendt at 2020-10-08 08:35:41

    Details:
    - BUG: Addressed a bug in the user_interface module where all warning
      messages were displayed in any application instantiating
      UserInterface, although the application itself had set warnings to
      'ignore'.
    - FIX: Rather than ignoring, then resetting the warnings, a
      (previously unknown) argument has been passed into the `enable()`
      function of `win_unicode_console`to bypass the stdin and stdout
      encoding check. It was the mismatch in stdin and stdout encoding
      which threw the RuntimeWaring, causing the need for warning
      suppression.
    
    Other changes:
    - New pylintr
    
    Released: 2020-10-08
    
  • 0.13.2 - Updated reporterror module to include the module name. by j_berendt at 2020-05-15 16:32:13

  • 0.13.1 - Bug fix to database module. Sphinx updates. by j_berendt at 2020-05-12 20:09:32

    database.py:
    - Removed spurious message stating the database must be connected first.
    
    Sphinx:
    - Added create and update scripts or Linux.
    
  • 0.13.0 - New modules added. by j_berendt at 2020-05-05 16:45:28

    crypto:
    - Module added to provide light wrapper around base64 and hashlib
      libraries, with additional functionality.
    
    cmaps:
    - Module added to provide a light-weight/easy-access wrapper around
      matplotlib's colour maps.
    - Added deprecation warnings to colour mapping methods in the utils
      module.
    
  • 0.12.0 - Added the DataFrame differencing module (dfdiff). by j_berendt at 2020-01-21 21:25:55

  • 0.11.1 - Updated user_interface to include a blue heading. by j_berendt at 2019-09-24 10:51:28

  • 0.11.0 - Added the timedelta module. by j_berendt at 2019-07-22 13:29:44

  • 0.10.4 - Updated setup so win_unicode_console is not required for by j_berendt at 2019-03-25 20:33:02

    Linux installations.
    
  • 0.10.3 - Added wheel and dist package. by j_berendt at 2019-02-07 16:21:58

  • 0.10.3 - Updated registry.py so it *only* tries to work on Windows. by j_berendt at 2019-02-07 15:59:58

  • 0.10.3 - Merge fix for _version.py. by j_berendt at 2019-02-07 15:51:00

  • 0.10.3 - Various stability updates across the library. by j_berendt at 2019-02-07 08:54:01

    - Removed unrequired packages from the setup file.
      Often times utils3 is imported for a key feature, and you don't
      always need Oracle connection capability, or matplotlib, etc.
      Additionally, this should make installation and updates less painful.
    
    - Latitude and longitude rules updated to:
      - Accept 0 as a valid lat/lon value.
      - Return False to 90.01 (lat) and 180.01 (lon) as decimals were
        previously accepted for lat/lon values of 90 and 180 respectively.
    
    - The ._busy member of tickers.Spinner and tickers.WaitTicker has been
      renamed to .busy, as this threw pylint error when accessed externally.
      *CAUTION*:
      This has not been updated for backwards compatability.  If you use
      ._busy in your code, please update your code.
    
    - Dev note: The `pylintr` shell script has been added.
    
  • 0.11.0 - Various stability updates across the library. by j_berendt at 2019-02-07 08:54:01

    - Removed unrequired packages from the setup file.
      Often times utils3 is imported for a key feature, and you don't
      always need Oracle connection capability, or matplotlib, etc.
      Additionally, this should make installation and updates less painful.
    
    - Latitude and longitude rules updated to:
      - Accept 0 as a valid lat/lon value.
      - Return False to 90.01 (lat) and 180.01 (lon) as decimals were
        previously accepted for lat/lon values of 90 and 180 respectively.
    
    - The ._busy member of tickers.Spinner and tickers.WaitTicker has been
      renamed to .busy, as this threw pylint error when accessed externally.
      *CAUTION*:
      This has not been updated for backwards compatability.  If you use
      ._busy in your code, please update your code.
    
    - Dev note: The `pylintr` shell script has been added.
    
  • 0.10.2 - Added new dist files. by j_berendt at 2018-12-24 09:00:45

  • 0.10.2 - Added IP addr and geo coordinate validation rules. by j_berendt at 2018-12-21 17:34:56

  • 0.10.1 - Optional error catch added to tickers. by j_berendt at 2018-12-20 16:32:50

  • 0.10.0 - Setup and dist files complete. by j_berendt at 2018-12-18 16:22:47

  • 0.10.0 - Added the pywarnings.py module. by j_berendt at 2018-12-18 16:07:15

  • 0.10.0 - Added the colours.py module. by j_berendt at 2018-12-18 14:56:42

  • 0.10.0 - Pre update cleanup. by j_berendt at 2018-12-18 14:41:44

  • 0.9.0 - Updated changelog and docs. by j_berendt at 2018-10-29 16:11:08

  • 0.9.0 - Added distributions. by j_berendt at 2018-10-29 16:06:57

  • 0.9.0 - Added a module containing program wait tickers. by j_berendt at 2018-10-29 15:57:05

  • 0.8.2 - Re-added sdist tar.gz and wheel for installations. by j_berendt at 2018-10-24 12:29:14

  • 0.8.1 - Removed dist as it didn’t include all required files. by j_berendt at 2018-10-24 12:10:42

  • 0.8.0 - Added dist wheel. by j_berendt at 2018-10-23 15:39:16

  • 0.8.0 - Added validation.py to handle various validation rules. by j_berendt at 2018-10-23 15:22:25

  • 0.8.0 - Various minor Py35 compatibility bug fixes. by j_berendt at 2018-10-23 15:00:13

  • 0.8.0 - Added __version__ as an attribute to utils3. by j_berendt at 2018-10-23 14:34:35

  • 0.7.0 - Added package dist. by j_berendt at 2018-09-25 17:52:35

  • 0.7.0 - Updated to remove RuntimeWarning on UserInterface instantiation. by j_berendt at 2018-09-25 17:37:01

  • 0.6.1 - Added self.cur.close() to disconnect() in database.py. This by critchard_mark at 2018-09-21 15:09:27

    ensures connections are properly closed when database objects
            go out of scope.
    
  • Merge branch ‘upd_dist’ by j_berendt at 2018-06-13 15:22:56

  • 0.6.0 - Added package dist. by j_berendt at 2018-06-13 15:21:03

  • 0.6.0 - Added package dist. by j_berendt at 2018-06-13 15:21:03

  • 0.6.0 - Updated Sphinx change log information. by j_berendt at 2018-06-13 15:17:37

  • 0.6.0 - Merged Sphinx documentation into utils3 0.5.0. by j_berendt at 2018-06-13 15:14:38

  • x.x.x - Change log documentation update. by j_berendt at 2018-06-12 17:02:03

  • x.x.x - Updated get_datafiles module to collect Sphinx documentation. by j_berendt at 2018-06-12 16:59:14

  • x.x.x - Updated setup.py. by j_berendt at 2018-06-12 15:02:36

    - Excluded Sphinx docs at the minute; need update to gather files.
    
  • x.x.x - Updated README to link to detailed documentation. by j_berendt at 2018-06-11 16:16:14

  • x.x.x - Sphinx documentation: utils.py complete by j_berendt at 2018-06-11 12:35:38

  • x.x.x - Sphinx documentation: user_interface.PrintBanner complete. by j_berendt at 2018-06-06 10:04:13

  • x.x.x - Sphinx documentation: user_interface.UserInterface complete. by j_berendt at 2018-06-05 16:56:43

  • x.x.x - Applied S3DEV branding to documentation. by j_berendt at 2018-06-05 15:53:03

  • x.x.x - Sphinx documentation: registry.py complete. by j_berendt at 2018-06-05 15:05:01

  • x.x.x - Sphinx documentation: added S3DEV logo. by j_berendt at 2018-05-14 17:02:16

  • x.x.x - Sphinx documentation: reporterror.py complete. by j_berendt at 2018-05-14 16:48:41

  • x.x.x - Sphinx documentation: progressbar.py complete. by j_berendt at 2018-05-14 16:17:44

  • x.x.x - Sphinx documentation: log.py complete. by j_berendt at 2018-05-14 14:10:51

  • x.x.x - Sphinx documentation: get_datafiles.py complete. by j_berendt at 2018-05-14 12:22:42

  • x.x.x - Sphinx documentation: dict2obj.py complete. by j_berendt at 2018-04-30 17:37:10

  • 0.5.0 - Updates to database.py by critchard_mark at 2018-05-08 16:43:02

    Updated the Database class with:
    - A destructor that ensures the object is correctly
      destroyed when it is garbage collected.
    - A generic run_query() method for running queries and
      getting results as lists of rows.
    Updated the SQLite class with:
    - Automatic database connection on instantiation.
    - A _create_database_functions() method that allows
      user-defined functions to be added and used from
      within SQL statements.
    - A _match method that wraps the re.match() method as
      a user-defined function.
    
  • x.x.x - Sphinx documentation: database.py complete. by j_berendt at 2018-04-30 16:32:12

  • x.x.x - Sphinx documentation: config.py complete. by j_berendt at 2018-04-30 13:04:57

  • x.x.x - Sphinx documentation: General setup complete. by j_berendt at 2018-04-30 12:43:43

  • Merge branch ‘upd_general’ by j_berendt at 2018-04-27 16:48:13

  • 0.4.0 - General package versioning updates. by j_berendt at 2018-04-27 16:47:36

  • 0.4.0 - Updates to the database.SQLite class. by j_berendt at 2018-04-27 16:43:14

    - Database file is created if it doesn't exist.
    - Added the .vacuum() method to shrink database file size.
    
  • Merge branch ‘master’ of file:///g:/repo_generic/utils3 by j_berendt at 2018-04-16 16:39:34

  • 0.3.1 - Updated __version__ import for utils. by j_berendt at 2018-04-16 16:31:17

  • 0.3.1 - Updated __version__ import for utils. by j_berendt at 2018-04-16 16:31:17

  • 0.3.0 - Improvements to user_interface.py by critchard_mark at 2018-03-28 11:51:29

    > Updated print_heading_.* methods to override bright style
      to improve appearance in Windows CLI.
    > Removed exclusion of LIGHT.*_EX colours in the
      _build_color_dict method to enable more combinations of
      colour and style.
    
  • 0.2.2 - Removed commented code from last commit. by j_berendt at 2018-03-14 14:49:40

  • 0.2.2 - Bug fixes to user_interface. by j_berendt at 2018-03-14 14:45:15

    - Fixed dict_keys indexing error thrown when determining the longest key
    for the PrintBanner class.
    - Fixed pylint error for using built-in map function.  Replaced with
    list comprehension.
    
  • 0.2.1 - Updated setup.py to show utils3 in the URL. by j_berendt at 2018-03-13 14:55:55

  • 0.2.1 - Updated the input() function to use six.moves.input() for by j_berendt at 2018-03-13 14:41:56

    Py2/Py3 compatibility.
    
  • 0.2.1 - Updated setup.py to include win_unicode_console as a required by j_berendt at 2018-03-13 12:33:39

    package.
    
  • 0.2.1 - README updates. by j_berendt at 2018-03-13 12:27:22

  • 0.2.1 - Merged Mark’s win_unicode_console update for user_interface. by j_berendt at 2018-03-13 12:20:16

    Merge file:///g/Repo_Generic/utils3 into merge_remote
    
  • 0.2.0 - Added unittest for Dict2Obj class into the config test module. by j_berendt at 2018-03-13 12:05:05

  • 0.2.0 - New version to include the Dict2Obj update. by j_berendt at 2018-03-12 16:19:27

    - Added the __version__ attribute to the utils module to enable package
    version check.
    - Updated README to include version check command.
    - General version change updates.
    
  • 0.1.0 - Addition of the dict2obj class module and use in config. by j_berendt at 2018-03-08 16:34:00

    - The dict2obj class module has been added, which is used by the
    config.loadconfig() function.  This functionality loads JSON content
    or dictionaries, and returns an object - allowing config files to
    be accessed as object attributes, rather than as a dictionary.
    
  • 0.1.0 - Minor code formatting updates for the utils module. by j_berendt at 2018-03-07 16:08:22

  • 0.1.0 - Py3 compatibility updates to the user_interface module. by j_berendt at 2018-03-07 16:01:40

    - Updated the PrintBanner class to use Py3's floor division
    operator (//) when calculating the length of the ribbon.
    - Minor formatting updates.
    
  • 0.1.0 - Minor code cleaning for the reporterror module. by j_berendt at 2018-03-07 14:59:14

  • 0.1.0 - Minor formatting and cleaning for registry module. by j_berendt at 2018-03-07 14:20:20

    - Removed the 'computer_name' parameter from Registry class.
    
  • 0.1.0 - Cleaned and updated progressbar module for Py3. by j_berendt at 2018-03-06 16:01:34

    - Updated to move the 'total number of items' from the inner
    update_progress function to the instantiation.
    NOTE: This **will break** current implementations.  A minor update
    will be required to your program.
    - Minor docstring clarifications and updates.
    - Revised the user color to ANSI lookup process.
    
  • 0.0.2 - Removed win_unicode_console.disable() to prevent the fix for by critchard_mark at 2018-03-06 15:22:56

    the Python and Windows CLI interaction problem being turned
            off when using the UserInterface class in different places.
    
  • 0.0.2 - Added use of win_unicode_console to fix a problem between by critchard_mark at 2018-03-06 15:13:02

    the Python input() function and the Windows CLI.
    
  • 0.1.0 - Cleaned log module and unittest for Py3. by j_berendt at 2018-03-06 15:00:29

  • 0.1.0 - Cleaned get_datafiles module and unittest for Py3. by j_berendt at 2018-03-06 14:13:48

  • 0.1.0 - Cleaned database module for Py3. by j_berendt at 2018-03-06 14:04:12

  • 0.1.0 - Updated .gitignore and _version files. by j_berendt at 2018-03-06 12:27:14

  • 0.1.0 - Updated and cleaned config module and unittests for Py3. by j_berendt at 2018-03-06 12:17:24

    config.py:
    - devmode removed from loadconfig() function