Skip to main content

Some python useful methods

Project description

https://github.com/IMIO/imio.pyutils/actions/workflows/main.yml/badge.svg?branch=master https://coveralls.io/repos/github/IMIO/imio.pyutils/badge.svg PyPI badge

Introduction

This package provides python useful methods.

It relates to following kinds of operations:

  1. System level operations (system.py)

It provides helper methods to:

  • read and write files,

  • read directories,

  • execute commands,

  • store and load list and dict,

  • trace printing,

  • creating temporary files,

  • etc.

  1. Various python helpers (utils.py)

About:

  • ordereddict and dict manipulations

  • list manipulations

  • duration recording

  1. BeautifulSoup methods (bs.py)

  • remove elements

  • remove attributes

  • remove comments

  • replace entire strings

  • unwrap tags

  1. Postgres level operations (postgres.py). It requires psycopg2 egg !

It provides helper methods to:

  • single or multiple select,

  • insert, update, delete rows,

  • etc.

Tests

Can be run with: bin/python -m unittest discover

Changelog

1.1.0 (2024-09-17)

  • Added utils.add_key_if_value to add a key in a dic only if value or is not None. [sgeulette]

  • Moved batching.batch_delete_files from imio.helpers to be used commonly. [sgeulette]

1.0.4 (2024-06-11)

  • Blacked files. [sgeulette]

  • Added system.post_request to send a POST request. [sgeulette]

1.0.3 (2024-05-24)

  • Fix bad release for python2. [aduchene]

1.0.2 (2024-05-15)

  • Added a new helper utils.get_ordinal_clusters to cluster ordinal numbers based on an offset. [aduchene]

1.0.1 (2024-04-08)

  • Added patterns parameter in system.read_dir_filter. [sgeulette]

  • Returned original filename in system.hashed_filename if string to hash is empty. [sgeulette]

1.0.0 (2024-03-05)

  • Require six>=1.16.0. [sgeulette]

  • Added system.hashed_filename to get a new filename differentiated by a hashed string. [sgeulette]

1.0.0a1 (2024-02-08)

  • Handled set in load_var. [sgeulette]

  • Added load_pickle and dump_pickle [sgeulette]

  • Improved bs.is_empty [sgeulette]

1.0.0a (2023-11-28)

  • Made py2 and py3 compliant [sgeulette]

  • Improved utils_safe_encode [sgeulette]

  • Added bs.is_empty function. [sgeulette]

  • Added bs.remove_some_childrens function. [sgeulette]

  • Added bs.replace_strings_by_pattern function [sgeulette]

  • Added exclude_patterns parameter in system.read_recursive_dir [sgeulette]

0.31 (2023-09-26)

  • Added utils.listify that will make sure a given value is always returned as list-like iterable. [gbastien]

  • Improved system.get_git_tag with new parameter to get last tag from all branches [sgeulette]

  • Added utils.radix_like_starting_1 to get list of positional numbers following a given base but starting with 1 [sgeulette]

  • Added utils.letters_sequence to get a letters string corresponding to nth position [sgeulette]

0.30 (2023-07-24)

  • Added system.read_recursive_dir to get files recursively (with relative or full name). [sgeulette]

0.29 (2023-05-12)

  • Improved utils.all_of_dict_values to include optionally a label. [sgeulette]

  • Added setup_logger to modify a given logger independently [sgeulette]

  • Added full_path to prefix filename with path if necessary [sgeulette]

0.28 (2023-03-29)

  • Added utils.one_of_dict_values that gives the first non empty value of a list of keys. [sgeulette]

  • Added utils.all_of_dict_values that returns a not empty values list from a dict following a keys list [sgeulette]

0.27 (2023-02-27)

  • Added utils.sort_by_indexes that will sort a list of values depending on a list of indexes. [gbastien]

0.26 (2022-12-12)

  • Added stop to print error and exit. [sgeulette]

0.25 (2022-09-16)

  • Added get_git_tag. [sgeulette]

0.24 (2022-08-19)

  • Added utils.time_start and utils.time_elapsed to print elapsed time from start. Intended to be easily used when debugging… [sgeulette]

0.23 (2022-07-01)

  • Added utils.append to append a value and return it. [sgeulette]

0.22 (2022-04-28)

  • Added utils.get_clusters to display a list of number grouped by clusters. [gbastien]

0.21 (2022-04-26)

  • Added utils.merge_dicts to be able to merge several dicts for which values are list, list are extended in final result. [gbastien]

0.20 (2022-02-10)

  • Modified memory to return more useful information. [sgeulette]

0.19 (2022-01-21)

  • Added process_memory to return current process memory. [sgeulette]

  • Added memory to return RAM information. [sgeulette]

0.18 (2022-01-12)

  • Made insert_in_ordereddict python3 compatible. [sgeulette]

  • Added odict_pos_key to get key at position in ordereddict. [sgeulette]

0.17 (2022-01-04)

  • Added timed and ftimed functions. [sgeulette]

  • Added OrderedDict for load_var function [sgeulette]

0.16 (2021-10-27)

  • Added iterable_as_list_of_list function. [sgeulette]

  • Added date in runCommand output [sgeulette]

0.15 (2021-04-27)

  • Added ln_key parameter in read_dictcsv method. [sgeulette]

0.14 (2021-04-21)

  • Added read_dictcsv function. [sgeulette]

  • Added utils.replace_in_list function to ease replacement of values in a list. [gbastien]

  • Added safe_encode function. [sgeulette]

0.13 (2020-10-07)

  • Added insert_in_ordereddict function to easier insert a new key at needed position. [sgeulette]

0.12 (2020-05-19)

  • Update syntax for py 3. [odelaere]

0.11 (2018-10-12)

  • Added warning log level function [odelaere]

0.10 (2018-07-23)

  • Added to_skip parameter in read_dir functions. [sgeulette]

0.9 (2017-07-28)

  • Added read_csv function. [sgeulette]

0.8 (2017-07-19)

  • runCommand can append to file. [sgeulette]

0.7 (2017-06-26)

  • Just release on pypi for collective.documentgenerator. [sgeulette]

0.6 (2017-02-08)

  • runCommand: return as third value the return code of the command. [sgeulette]

0.5 (2017-02-08)

  • Added outfile parameter to runCommand. [sgeulette]

0.4 (2016-12-07)

  • Added param to get only files in dir. [sgeulette]

  • Added methods for bs4 (beautifulsoup) [sgeulette]

0.3 (2016-09-21)

  • Return empty list when file doesn’t exist. [sgeulette]

0.2 (2016-04-15)

  • Added options on read_file. [sgeulette]

0.1 (2015-06-03)

  • Initial release. [sgeulette]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

imio_pyutils-1.1.0.tar.gz (20.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

imio.pyutils-1.1.0-py3-none-any.whl (18.6 kB view details)

Uploaded Python 3

File details

Details for the file imio_pyutils-1.1.0.tar.gz.

File metadata

  • Download URL: imio_pyutils-1.1.0.tar.gz
  • Upload date:
  • Size: 20.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for imio_pyutils-1.1.0.tar.gz
Algorithm Hash digest
SHA256 4073c461a83e30e72f0678e362623398e092314acb938917defad79847ac7c43
MD5 5f7feb893a83c3cdd27ccdc1ac1781cd
BLAKE2b-256 2e8916d93ca1c6ea2da1579e723e2229127bd819ce2b474b099185711f63ea74

See more details on using hashes here.

File details

Details for the file imio.pyutils-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: imio.pyutils-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 18.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for imio.pyutils-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e95faf2d8187cbb30044e9cdc4877e99a16c16f06e5318ad0af6448d55af47a5
MD5 eb10120abf4fc547a000be51bb0a9606
BLAKE2b-256 1d2418792a1ce05625d6cb2bebdea38f308a8dd97c184a31fd7589e24a76802b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page