Skip to main content

A library of convenient utility functions and pure Python data structures.

Project description

ConvUtils provides a small library of convenience functions for dealing with a variety of tasks, such as creating CSV readers and writers, and convenient data structures, such as a two-way dictionary.

This package provides two modules: convutils and convstructs. Typically, the user will want to import one or the other, e.g.:

from convutils import convutils

convutils

convutils provides the following classes:

  • ExcelTabNewlineDialect is similar to the csv.excel_tab dialect, but uses the newline character ('\n') as the line separator, giving a more Unix-friendly tsv (tab-separated values) format.

convutils also provides the following functions:

  • make_csv_reader creates a csv.DictReader or csv.Reader instance with the convenience of the user not having to explicitly specify the CSV dialect.

  • make_csv_dict_writer creates a csv.DictWriter instance with the convenience of not having to manually enter the header row yourself; uses ExcelTabNewlineDialect as the dialect, by default.

  • append_to_file_base_name will return a modified file name given an original one and a string between the base name and the extension (e.g., append_to_file_base_name('myfile.txt', '-2') returns 'myfile-2.txt').

  • count_lines counts the number of lines in a file.

  • split_file_by_parts takes one large file and splits it into new files, the maximum number of which is given by the user.

  • split_file_by_num_lines takes one large file and splits it into new file, the maximum number of lines in each being defined by the user.

  • column_args_to_indices takes a string representing desired columns (e.g., '1-4,6,8') and converts it into actual indices and slices of an indexable Python sequence.

  • cumsum produces the cumulative sum of any iterable whose elements support the add operator. (New in version 1.1.)

  • sample_list_dict is like random.sample but for dictionaries whose values are lists or other enumerable, iterable container types. (New in version 1.1.)

  • sample_list_dict_low_mem is similar to sample_list_dict but has a lower memory consumption for larger dictionaries. (New in version 1.1.)

convstructs

convstructs provides two convenient data structures, both specialized subclasses of Python’s dict.

  • SortedTupleKeysDict is a dictionary which expects 2-tuples as keys, and will always sort the tuples, either when setting or retrieving values.

  • TwoWaySetDict is a dictionary that assumes the values are sets, and will store a reverse lookup dictionary to tell you, for each set in the values that some item belongs to, the keys with which item is associated.

Installation

Installation is easy with pip; simply run

pip install ConvUtils

Availability

Project details


Download files

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

Source Distributions

ConvUtils-1.1.zip (12.7 kB view details)

Uploaded Source

ConvUtils-1.1.tar.gz (10.2 kB view details)

Uploaded Source

File details

Details for the file ConvUtils-1.1.zip.

File metadata

  • Download URL: ConvUtils-1.1.zip
  • Upload date:
  • Size: 12.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for ConvUtils-1.1.zip
Algorithm Hash digest
SHA256 3ca179dd6e74fdb3c6142c2ccbefb7a7a4805509b18be4d84c212affd1c0b731
MD5 edee0f2dd85ed0064b5e03a3eb55781f
BLAKE2b-256 c9e055dab7f2b9064e42dff67b2becb4e2bae6961c4142f8a2d24c50fcd0d6cd

See more details on using hashes here.

File details

Details for the file ConvUtils-1.1.tar.gz.

File metadata

  • Download URL: ConvUtils-1.1.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for ConvUtils-1.1.tar.gz
Algorithm Hash digest
SHA256 27772a948ec74b6a51b24e36a8e4d5df526a13b6a4d2beb1006907b0badf32e9
MD5 c9d240e317b3005b2e06922d32a7779d
BLAKE2b-256 a73f801f637de7f0d9d1ea88b375746ef717d23e6877ae73ac99c1fe474112a0

See more details on using hashes here.

Supported by

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