Skip to main content

Trivial split for strings with quotes and escaped characters

Project description

Trivial split for strings with multiple character delimiters, quotes and escaped characters

Downloads Buy Me A Coffee

Installation

pip install tssplit

Usage

Syntax

def tssplit(s:str, quote:str='"\'', quote_keep:bool=False, delimiter:str=':;,', escape:str='/^',
            trim:str='', remark:str='#') -> list[str]:

    """Split a string by delimiters with quotes and escaped characters, optionally trimming results

    :param s: A string to split into chunks
    :param quote: Quote chars to protect a part of s from parsing
    :param quote_keep: Preserve quote characters in the output or not
    :param delimiter: A chunk separator character
    :param escape: An escape character
    :param trim: Trim characters from chunks
    :param remark: Ignore all characters after remark sign
    :return: A list of chunks
    """

Example

import tssplit

tssplit('--:--;--,--"--/--"--\'--:--\'--/"--^--',
        quote='"\'', delimiter=':;,', escape='/^', trim='')
['--', '--', '--', '----/------:----"----']

tssplit('--:--;--,--"--/--"--\'--:--\'--/"--^--',
        quote='"\'', delimiter=':;,', escape='/^', trim='', quote_keep=True)
['--', '--', '--', '--"--/--"--\'--:--\'--"----']

tssplit('--:--;--,--"--/--"--\'--:--\'--# Ignore this',
        quote='"\'', delimiter=':;,', escape='/^', trim='', quote_keep=True, remark='#')
['--', '--', '--', '--"--/--"--\'--:--\'--']

Changelog

  • 2020.03.28 v1.0 Initial release
  • 2020.03.28 v1.0.1 Many quick fixes to make all things work in PyPI
  • 2020.03.29 v1.0.2 Minor fixes, Readme update, Long description provided
  • 2020.03.29 v1.0.3 Trim option to strip() characters from chunks
  • 2020.03.29 v1.0.4 Multiple characters for quotes, delimiters and escapes
  • 2022.02.04 v1.0.5 Added quote_keep option to preserve quote marks in the output or not
  • 2023.01.12 v1.0.6 Remark characters interrupt string parsing
  • 2024.04.03 v1.0.7 Cosmetics to make pylint happy
  • 2024.10.19 v1.0.8 Better module import; minor cosmetic changes
  • 2024.12.25 v1.0.9 Type annotations by @mkupferman + misc minor changes

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

tssplit-1.0.9.tar.gz (3.6 kB view details)

Uploaded Source

Built Distribution

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

tssplit-1.0.9-py3-none-any.whl (4.2 kB view details)

Uploaded Python 3

File details

Details for the file tssplit-1.0.9.tar.gz.

File metadata

  • Download URL: tssplit-1.0.9.tar.gz
  • Upload date:
  • Size: 3.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.9.21

File hashes

Hashes for tssplit-1.0.9.tar.gz
Algorithm Hash digest
SHA256 8e58973e1d69c21fd9b4deeaa757fb6ab8f17b4fa7469387a120f0e99bde8e22
MD5 651507f7756f04c66629aba39c2a4bfc
BLAKE2b-256 8beace705a18347a87a7a22dba4f0dd100ba1cc6fca0b3ad4b0613461bfcc90b

See more details on using hashes here.

File details

Details for the file tssplit-1.0.9-py3-none-any.whl.

File metadata

  • Download URL: tssplit-1.0.9-py3-none-any.whl
  • Upload date:
  • Size: 4.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.9.21

File hashes

Hashes for tssplit-1.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 4f23f0cb3c7a27c7ed8bb2b3e7ca06606ee268044fc78a20419b9673beb85683
MD5 7b61ba1211585e930c97873b2e3949da
BLAKE2b-256 3dd16b624a6e44a299427615dee45fbb19e2f8d3babeaaac78635d2eca4e7370

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