Change Log — dbilib - v0.4.0rc1 Documentation

# Change Log

- 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