Change Log
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
0.1.0 - Updates to README files for new package. by j_berendt at 2018-03-06 11:08:21
0.1.0 - Unit tests converted and run successfully on Py2 and Py3. by j_berendt at 2018-03-05 15:28:03