Change Log
0.5.0 - Release implementing support for MSSQL. by u555923 at 2025-09-20 10:46:05
Changes relative to 0.5.0b1: - The MSSQL 'call_procedure_update' method now returns -1 as the row ID for a duplicated row on update USP calls. Note: The table must have a UNIQUE constraint for this to be triggered. - A 'flat' parameter has been added to the 'execute_query' method for flattening the list of tuples result for single element responses. Testing: - Testing completed successfully with 100% code coverage. Released: 2025-09-20
0.5.0b1 - Beta release for version 0.5.0.dev3. by j_berendt at 2025-09-11 10:28:13
Released: 2025-09-11
0.5.0.dev3 - Various bug fixes and improvements for MSSQL. by u555923 at 2025-07-25 14:56:43
Changes: - Addressed an issue when a USP does not have any parameters to return. - Introduced exit codes to the backup routine for MSSQL. - Addressed an issue in reporting SQLAlchemy errors. Testing: - Testing for new MSSQL functionality complete. 100% coverage for MSSQL code. Released: n/a
0.5.0.dev2 - Included table backup functionality for the MSSQL interface. by u555923 at 2025-07-24 10:44:12
MSSQL table backup: - Functionality has been added to the MSSQL interface for backing up any given table in the database to the *backup database*. Note this is *not* a filesystem backup. - A 'database_exists' function has been added to the interface primarily to facilitate the backup, but also for general use. MSSQL table checksum: - A function has been added to the MSSQL interface enabling the user to calculate a table checksum (easily). - Aside, this function will also be used by the MSSQL table backup logic to verify if a table was successfully backed up. Other changes: - Updated the 'execute_query' method to include a 'commit' argument, which defaults to True for backwards compaiability. Fixes: - Consistently applied the name 'mssql' for all MS SQL Server related object items in the interface; rather than variations such as 'sqlserver'. Testing: - The tests for the MSSQL interface have been updated for 100% code coverage. All MSSQL interface tests complete successfully. - Testing for MySQL and SQLite completed successfully (on a different environment) with 98% code coverage. The remaining 2% relates to the MSSQL and non-supported database engine routing in the database.DBInterface.__new__ method. Released: n/a
0.5.0.dev1 - Introduction of Microsoft SQL Server support. by u555923 at 2025-07-14 14:09:00
SQL Server: - A database interface has been added for MS SQL Server support, via pyodbc. Testing: - The test suite has been updated to test the new MS SQL Server interface, with all tests completing successfully. - Testing for MySQL and SQLite completed (on a different environment) with 98% code coverage. The missing 2% relates to SQL Server and non-supported database engine routing in the database.DBInterface.__new__ method. Released: n/a
0.4.2 - Updated dependency versions to address Snyk vulnerability issues. by j_berendt at 2024-11-12 17:18:36
Released: 2024-11-12
0.4.1 - Release for version 0.4.1b1. by j_berendt at 2024-09-27 21:22:18
Testing: - Tests complete successfully with 100% code coverage. - Pylintr completes successfully at 100%. Released: 2024-09-27
0.4.1b1 - Addressed issue in stored procedure call. by j_berendt at 2024-09-26 09:55:31
DBLIB-8: Stored procedure call - Added a commit call to the basic call_procedure method for MySQL and Oracle. Previously, any data added by a USP using this call was not committed. Testing: - Added a test case to verify the data added using the call_procedure method is committed. - All tests complete successfully with 100% test coverage. Released: 2024-09-26
0.4.0rc1 - Release candidate for PyPI upload. Library renamed. by j_berendt at 2024-08-07 16:16:41
Library rename: - To resolve a PyPI naming conflict, the library has been renamed from dblib to dbilib. - The *exact* reason for the conflict is unknown as there are no existing libraries with the name "dblib". Changes: - Migrated from setup.py to pyproject.toml. - Added a README.md file for GitHub and PyPI, based on the homepage of the existing documentation. - Uploaded documentation to Read the Docs. Testing: - Tests complete successfully with 100% code coverage. Released: 2024-08-07
0.4.0.dev4 - Relocated LICENSE file. by j_berendt at 2024-03-14 15:38:58
DBLIB-6: - The LICENSE file has been moved to the top level of the project. Released: 2024-03-14
0.4.0.dev3 - Bug fix. by j_berendt at 2024-03-07 15:00:33
DBLIB-5: Update results to DataFrame method - Addressed a StopIteration error thrown when attempting to convert results to a DataFrame, when the results object is empty. Released: 2024-03-07
0.4.0.dev2 - Security updates and Python 3.10 uplift. by j_berendt at 2024-02-28 16:24:58
DBLIB-3: Security Security updates have been applied to the _dbi_base.execute_query method. Checks have been put in place to help prevent injection-like statments. - A SecurityWarning is raised if the statement contains multiple semi-colon characters. Therefore only allowing single-statement to be executed. - A SecurityWarning is raised if the statement contains a comment delimiter. DBLIB-4: Python 3.10 - Type hinting has been updated in all modules IAW PEP-604. - This uses a pipe syntax, rather than a typing.Union keyword. - Minimum version of Python required is now 3.10. Testing: - Test cases have been added to cover the security checks. - Test cases pass successfully with 100% code coverage. Released: 2024-02-28
0.4.0.dev1 - Enable database interface class specialisation. by j_berendt at 2024-02-26 12:07:14
DBLIB-2: - The database.DBInterface class has been updated to include *args and **kwargs in the class creation. - The __new__ method remains in place due to the way classes must be created. - The _db_base._DBIBase class has been updated to include a database_name property, which is propogated through all subclasses. Testing: - Test cases updated to ensure 100% code coverage. - Minor updates to the testing setup/teardown methods for robustness. Documentation: - Updated to include a code example for 'pseudo-inheritance' to enable subclass specialisation. - Updated the usage example to remove the subclass' call to __init__, as the __init__ method will *not* be called. Released: 2024-02-26
0.3.0.dev3 - HTML documentation suite created. by j_berendt at 2023-10-10 09:49:23
Released: 2023-10-25
0.3.0.dev2 - Docstring updates. by j_berendt at 2023-07-17 10:09:09
Issued and bug fixes: - DBLIB-1: Updated the docstrings in _dbi_mysql to show the parameter name as 'proc', rather than 'proc_name'. to accurately match the name of the parameter. Released: 2023-07-17
0.3.0.dev1 - Addition of the SQLite database interface. by j_berendt at 2023-06-07 08:05:55
This is a *development release* intended for the development and testing if the calling libraries. Released: 2023-06-07
0.2.0.dev4 - Refactored module code base. Other fixes. by j_berendt at 2023-05-23 15:57:48
This is a *development release* intended for the development and testing of the calling libraries. Purpose: - The purpose of this change is to *properly* segregate the database-specific code from the generalised code. - When running the library in an Oracle (and non-MySQL) environment, the imports were getting crossed. This forced the installation of MySQL driver libraries, although they would not be used in practice. Modules: - The MySQL-specific code has been removed from the _db_base module and placed in the _dbi_mysql module; where it always should have been. - The __init__ method has been removed from the database-specific modules, enabling fallback to the parent module. - Other minor (supporting) changes in the module layout. Fixes: - The database-name tests in the database.DBInterface class have been updated to prevent a module import error during the tests. Released: 2023-05-24
0.2.0.dev3 - Fixes to the database.DBInterface.__new__ method. by j_berendt at 2023-05-22 16:01:11
DBInterface.__new__ method: - New class creation failed when 'other' parameters were passed into the class constructor. - Added the *args and **kwargs parameters, along with the 'connstr' parameter. - Changed the import test for MySQL from 'mysql.connector' to simply 'mysql', as the '.connector' test throws a ModuleNotFounderror if mysql is not installed. Released: 2023-05-23
0.2.0.dev2 - Updated to remove the required dependencies. by j_berendt at 2023-05-22 14:47:12
This is a *development release* intended for the development and testing of the calling libraries. Dependencies: - The following libraries are no longer required by the installation. This is to enable dblib to be easily deployed onto an environment where only one of the database engines is used. - Obviously, the appropriate database driver must be installed before using dblib to access that database. - cx-oracle - mysql-connector Released: 2023-05-23
0.2.0.dev1 - Added Oracle database suppport. by j_berendt at 2023-05-18 14:51:00
Modules: - The interface modules have been redesigned to facilitate code reuse and Oracle database support. Released: 2023-05-22
0.1.0.dev2 - Testing suite and minor code updates. by j_berendt at 2023-05-17 13:01:09
This is a *development release* intended for the development and testing of the calling libraries. Testing: - A complete testing suite has been added and achieves 100% test coverage. database.py: - Minor code tweaks have been applied to patch bugs found while developing the test suite. Released: 2023-05-18
0.1.0.dev1 - Initial development of the database module is complete. by j_berendt at 2023-05-16 16:50:33
This is a *development release* intended for the development and testing of the calling libraries. database.py - The core database module was taken from s3ddb v0.8.0.dev1, and modified to extend functionality with the view to removing the database code from the s3ddb and adourlib libraries. - The intended design is to have the s3ddb.database.Database and adourlib.tools.database.Database classes inherit the dblib.database.Database class, and specialise only if required. Otherwise, the core database interface functionality will reside in this lower-level library. Released: 2023-05-17
0.1.0.dev1 - Initial commit for the dblib project. by j_berendt at 2023-05-16 16:24:40