Privex-helpers

Latest version: v3.2.1

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

Scan your dependencies

Page 2 of 2

2.5.1

===============================================================================================

-----------------------------------------------------------------------------------------------------------------------

Author: Chris (Someguy123)
Date: Sat Dec 7 00:06:30 2019 +0000

- Added `call_sys` function in `helpers.common`, an easier way to run and interact with external programs
- Added `shell_quote` function - small shim for python 3.8's `shlex.join` for backwards compatibility
- Added `call_sys_async` function in `helpers.asyncx`, which is a fully async version of `call_sys`
- Added tests for `call_sys` and `call_sys_async`

- Improvements to `local_tests.sh`
- Re-factored most of `local_tests.sh` into `lib/lib_test.sh`. lib_test.sh contains only shell functions, so it can be
sourced into a bash shell for debugging local_tests.sh

- Now has a `QUIET` option, for less verbose output
- Re-factored virtualenv creation, detection and activation into `pyactivate`, `venv_status`, `is_current_venv` and others
- Handle script running from within an existing virtualenv cleanly.
- Main body of the venv creation / test running has been moved into `main_tests()` in lib_test
- Now shows a summary at the end of the tests, so you can see which python versions caused tests to throw warnings and/or
were skipped
- Lots of other small improvements

- Added gitignore lines for `dev_*.py`, sqlite databases, and adjusted `venv` lines to only affect root folder.



-----------------------------------------------------------------------------------------------------------------------

2.5.0

===============================================================================================

-----------------------------------------------------------------------------------------------------------------------


Author: Chris (Someguy123)
Date: Thu Dec 5 02:53:08 2019 +0000

- Includes commit 12da829ff8da8b64549208ac92bb48c62f0af60c which enables 2.5.0 to function fully on
Python 3.6 and 3.7 (prior to this commit some tests only worked on 3.8+)


commit 12da829ff8da8b64549208ac92bb48c62f0af60c
Date: Thu Dec 5 02:39:32 2019 +0000
Add local_tests.sh, fix get_function_params on older python

- Added `local_tests.sh` for running the unit tests on multiple python versions locally
- Added `OrderedDictObject` to collections module, since python versions before 3.8 cannot reverse a normal dict.
- Add unit tests for ordered dict object
- Adjusted `get_function_params` to use the new OrderedDictObject (fixes failing tests on older python versions)


**New Features / Additions**

- `privex.helpers.common`
- Added `get_function_params` - which extracts and filters a function/method or class constructor's parameters, and
outputs them in a dictionary

- Added `construct_dict`, which allows you to either construct a class, or call a function using a dictionary of
keyword arguments, using `get_function_params` to detect what arguments the class/function/method can take, including any
parent classes, then filtering out any keyword arguments which would otherwise be rejected and cause a TypeError.

- Added `_filter_params`, a private function used by the aforementioned functions to filter a dictionary or iterable of
Parameter objects.

- New module `converters`, containing functions/classes designed to convert/parse one type into another

- `convert_datetime` converts both string date/time's as well as unix timestamps into `datetime.datetime` objects
using `dateutil.parser`

- `convert_unixtime_datetime` converts specifically UNIX epoch timestamps (can be string, int, float, Decimal etc.) into
`datetime.datetime` objects, and is used by `convert_datetime` to handle unix timestamps.

- `convert_bool_int` converts booleans `True` / `False` as well as string / int versions into integers 1 (true) and 0 (false)

- `convert_int_bool` is mostly an alias to `is_true`, but exists for convenience and semantics (if there's a
convert_bool_int, why not a convert_int_bool?)

**Changes / Updates**

- Shrank the rather large copyright notice in most modules down to the small copyright block, and instead of dumping the
whole X11 / MIT License text in there, the licence block simply states `License: X11 / MIT`. This should make the docs a
bit more readable.

- Added `python-dateutil` to the `Pipfile`

- For sanity reasons, `python-dateutil` has been added to the `install_requires` (meaning it's auto-installed when you
install privex-helpers). The package is relatively small and depends on just `six`, weighing in around 500kb
(python-dateutil = 468kb, six = 36kb).

It may be removed and refactored into a setup.py extra at a later point, but for now it's small and commonly
required enough that it can be a dependency.

- Added `dateutil` to the sphinx intersphinx mapping
- Possibly other small changes I forgot to include

**Testing**

- Added new test case `TestInspectFunctions` to test_general, which tests the new `get_function_params`
and `construct_dict` functions.

- Added new test module `test_converters.py` which contains test cases for the new converters module

- `TestConvertDate` covers date/time related converters such as `convert_datetime` and `convert_unixtime_datetime`

- `TestConvertGeneral` covers other converters that don't fit into a specific category
(or would otherwise be pointless to categorize)

Page 2 of 2

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.