Etlhelper

Latest version: v1.0.2

Safety actively analyzes 706267 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 4 of 5

0.9.4

Not secure
This minor release includes:

+ `setup_oracle_client` fails gracefully with sys.exit() instead of producing stack trace
+ README highlights `iter_rows`
+ Fix typos in README example ETL script

0.9.3

Not secure
This minor release includes:

- Wheel distribution built
- setup_oracle_client script works with `sh` and `zsh`
- README explains inplace dictionary transforms

0.9.2

Not secure
This minor release improves error messages related to DbParams and connections.

+ Creating DbParams for database type with no installed driver raises a Warning
+ Connecting to database with no installed driver raises ETLHelperConnectionError
+ Stack trace for non-existent dbtype error simplified
+ `sys.exit(1)` / SystemExit calls replaced with ETLHelper errors
+ All print statements replaced with logging calls - this keeps `stdout` clean

0.9.1

Not secure
+ Fix typo in ETL script template
+ Add `.dockerignore` (thanks kinow)
+ Fix typos in docstrings (thanks kinow)

0.9.0

Not secure
Breaking changes

Refactored setup_oracle_client

The `setup_oracle_client` script has been overhauled and the internal logic has been simplified. Externally facing changes are:

1. The Instant Client zip file is downloaded from the Oracle servers by default (previously it was only accessible to logged in users)
2. The script writes a file that can run with the `source` command to add the drivers to LD_LIBRARY_PATH
3. The client can now be installed and configured in one line: `source $(setup_oracle_client)`
4. The `--zip_location` allows an alternative location (URL or file path) to be specified for the drivers
5. The `--reinstall` flag allows reinstallation of an existing install
6. The `-v` flag gives verbose output of install progress

Note that in Dockerfiles, it is still necessary to manually set the LD_LIBRARY_PATH using the `ENV` command.

rowfactory -> row_factory

`namedtuple_rowfactory` and `dict_rowfactory` have been replaced with `namedtuple_row_factory` and `dict_row_factory`. This makes `etlhelper` consistent with `row_factory` in other Python modules e.g. `sqlite3` in the standard library.

executemany parameter order changed

The syntax for executemany has been changed from `executemany(query, rows, conn)` to `executemany(query, conn, rows)`. This is consistent with the other ETL functions where `query` and `conn` are together.

Non-breaking changes

+ Update README. New text brings intended use cases and simple example closer to the top.
+ DbParams class gets `MY_DB.connect()` syntax for creating databases.
+ Add `paramstyle` attribute to DbHelper class. This allows the required paramstyle to be displayed in error messages, giving users a clue if a syntax error is because they used `%s` instead of `:1` as a placeholder for parameter values.
+ Add integration tests for MS SQL Server databases. These run internally on the BGS CI system.
+ The PostgreSQL DbHelper now catches `InterfaceError` and `InternalError` (thanks rwolniak)

0.8.0

Not secure
- Added support for `fetchone` row. Fetches a single row.
- Deprecation warning for `executemany` parameter order. The order of parameters to copyrows will be changed in the next release, or keyword arguments will be used (See: https://github.com/BritishGeologicalSurvey/etlhelper/pull/28)
- Copy function added to DbParams returning a deep copy.
- Minor fixes and typos in setup

Contributors volcan01010 kerberpolis metazool dvalters

Page 4 of 5

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.