Skip to main content

pyline

GitHub | PyPi | Warehouse | ReadTheDocs | Travis-CI

https://badge.fury.io/py/pyline.png https://travis-ci.org/westurner/pyline.png?branch=master

Pyline is a grep-like, sed-like, awk-like command-line tool for line-based text processing in Python.

Features

Why

Somewhat unsurprisingly, I found the original pyline recipe while searching for “python grep sed” (see AUTHORS.rst and LICENSE.psf).

I added an option for setting p = Path(line) in the eval/compile command context and added it to my dotfiles ; where it grew tests and an optparse.OptionParser; and is now promoted to a GitHub project with ReadTheDocs documentation, tests with tox and Travis-CI, and a setup.py for PyPi.

What

Pyline is an ordered MapReduce tool:

Input Readers:
  • stdin (default)

  • file (codecs.open(file, 'r', encoding='utf-8'))

Map Functions:
  • Python module imports (-m os)

  • Python regex pattern (-r '\(.*\)')

  • path library (p from --pathpy OR --pathlib)

  • Python codeobj eval output transform:

    ls | pyline -m os 'line and os.path.abspath(line.strip())'
    ls | pyline -r '\(.*\)' 'rgx and (rgx.group(0), rgx.group(1)) or line'
    ls | pyline -p 'p and p.abspath() or ("# ".format(line))'
    
    # With an extra outer loop to bind variables in
    # (because (_p = p.abspath(); <codeobj>) does not work)
    find $PWD | pyline --pathpy -m os -m collections --input-delim='/' \
        'p and [collections.OrderedDict((
                ("p", p),
                ("_p", _p),
                ("_p.split()", str(_p).split(os.path.sep)),
                ("line.rstrip().split()", line.rstrip().split(os.path.sep)),
                ("l.split()", l.split(os.path.sep)),
                ("words", words),
                ("w", w)))
            for _p in [p.abspath()]][0]' \
           -O json
Partition Function:

None

Compare Function:

Result(collections.namedtuple).__cmp__

Reduce Functions:

bool(), sorted()

Output Writers:

ResultWriter classes

pyline -O csv
pyline -O tsv
pyline -O json

Installing

Install from PyPi:

pip install pyline

Install from GitHub as editable (add a pyline.pth in site-packages):

pip install -e git+https://github.com/westurner/pyline#egg=pyline

Usage

Print help:

pyline --help

Process:

# Print every line (null transform)
cat ~/.bashrc | pyline line
cat ~/.bashrc | pyline l

# Number every line
cat ~/.bashrc | pyline -n l

# Print every word (str.split(input-delim=None))
cat ~/.bashrc | pyline words
cat ~/.bashrc | pyline w

# Split into words and print (default: tab separated)
cat ~/.bashrc | pyline 'len(w) >= 2 and w[1] or "?"'

# Select the last word, dropping lines with no words
pyline -f ~/.bashrc 'w[-1:]'

# Regex matching with groups
cat ~/.bashrc | pyline -n -r '^#(.*)' 'rgx and rgx.group()'
cat ~/.bashrc | pyline -n -r '^#(.*)'

## Original Examples
# Print out the first 20 characters of every line
tail access_log | pyline "line[:20]"

# Print just the URLs in the access log (seventh "word" in the line)
tail access_log | pyline "words[6]"

Work with paths and files:

# List current directory files larger than 1 Kb
ls | pyline -m os \
  "os.path.isfile(line) and os.stat(line).st_size > 1024 and line"

# List current directory files larger than 1 Kb
#pip install path.py
ls | pyline -p 'p and p.size > 1024 and line'

Documentation

https://pyline.readthedocs.org/en/latest/

License

Python Software License

.

History

release/0.3.20 (2020-10-02 20:51:19 -0400)

git log --reverse --pretty=format:'* %s [%h]' v0.3.19..release/0.3.20
  • MRG: Merge tag ‘v0.3.19’ into develop [fc2163e]

  • BLD: setup.py: 3 & 3.8 trove classifiers [6bf10e0]

  • RLS: pyline.py,setup.py: v0.3.20 [242a75a]

v0.3.19 (2020-10-02 20:44:25 -0400)

git log --reverse --pretty=format:'* %s [%h]' v0.3.18..v0.3.19
  • MRG: Merge tag ‘v0.3.18’ into develop [715618e]

  • DOC,BLD: HISTORY.rst: *manually* fix unquoted/unescaped reference [9146f39]

  • BLD: setup.cfg: [wheel] -> [bdist_wheel] [ba27bd5]

  • BLD: setup.py: long_description_content_type=’text/x-rst’ [07dc247]

  • RLS: pyline.py,setup.py: v0.3.19 [405f3f6]

  • DOC: HISTORY.rst: output from git-changelog.py [9088f29]

  • MRG: Merge branch ‘release/0.3.19’ [45110ec]

v0.3.18 (2020-10-02 20:27:08 -0400)

git log --reverse --pretty=format:'* %s [%h]' v0.3.17..v0.3.18
  • MRG: Merge tag ‘v0.3.17’ into develop [09f46ca]

  • REF,TST: Makefile, requirements-test: switch to pytest, require jinja2 for tests [999446d]

  • REF,TST: pyline.py, test_pyline.py: py3 [7365938]

  • WIP: __init__: change import for py3 (TODO: check py2 compatibility) [fe61a93]

  • BLD: requirements[-test]: remove wheel, -test -> reqs.txt [716a9b3]

  • REF,BUG: py3, pathpy import, rawstrs, only strip one newline when numbering lines [f7b3281]

  • BLD: tox.ini,.travis.yml: use tox-travis, envs=py37,py38 [a2a4a82]

  • DOC,BLD: docs/reqs,docs/conf: copyright, fix pyline import [036bac8]

  • BLD,TST: setup.py: setup.py:test calls pytest -v [ced27bb]

  • REF,BUG: pyline.py: when sorting, sort None as ‘’ (and log extensively for other sort comparison TypeError exceptions) [9248acb]

  • MRG: #29 REF,TST,BLD,BUG: Python 3 Support [cb195b4]

  • REF: pyline.py: change shebang to `#!/usr/bin/env python` from python2 [5841704]

  • RLS: pyline.py,setup.py: v0.3.18 [a1072e2]

  • DOC: HISTORY.rst: output from git-changelog.py [c9f7f89]

  • MRG: Merge branch ‘release/0.3.18’ [579ccdf]

v0.3.17 (2018-12-23 14:41:45 -0500)

git log --reverse --pretty=format:'* %s [%h]' v0.3.16..v0.3.17
  • MRG: Merge tag ‘v0.3.15’ into develop [e1d7768]

  • MRG: Merge tag ‘v0.3.16’ into develop [3a6fec4]

  • DOC: pyline.py: typo: checkbok -> checkbox [a0917c5]

  • BUG,ENH: pyline.py: -p: strip one trailing ‘n’ from line before parsing as path [47efdc9]

  • RLS: setup.py, pyline.py: v0.3.17 [9ef9d41]

  • BLD,DOC: Makefile: setversion, release docs [5cfc1e4]

  • MRG: Merge branch ‘release/0.3.17’ [618920a]

v0.3.16 (2016-07-22 11:42:57 -0500)

git log --reverse --pretty=format:'* %s [%h]' v0.3.15..v0.3.16
  • BUG: pyline.py: sys.argv[1:] (#7) [a548405]

  • RLS: pyline v0.3.16 [b17153a]

  • DOC: HISTORY.rst: git-changelog.py [9725f8d]

  • MRG: Merge branch ‘hotfix/0.3.16’ [c18d61c]

v0.3.15 (2016-07-22 11:34:56 -0500)

git log --reverse --pretty=format:'* %s [%h]' v0.3.14..v0.3.15
  • MRG: Merge tag ‘v0.3.12’ into develop [b4a3ec7]

  • BUG: include files named s+ with -p/–pathpy or –pathlib (fixes #24) [6c3f658]

  • MRG: Merge tag ‘v0.3.13’ into develop [1f2b64b]

  • MRG: Merge tag ‘v0.3.14’ into develop [b27731a]

  • ETC: pyline/__init__.py: __version__ = version = pyline.version [4065820]

  • RLS: setup.py, pyline.py: version=’0.3.15’ [a83ad49]

  • DOC: HISTORY.rst: git-changelog.py -r “release/0.3.15” –hdr=”+”` [cfd26be]

  • MRG: Merge branch ‘release/0.3.15’ [2225fd6]

v0.3.14 (2016-07-22 11:27:03 -0500)

git log --reverse --pretty=format:'* %s [%h]' v0.3.13..v0.3.14
  • BUG: pyline/__init__.py: remove untested package-level __main__ function [91e1f5f]

  • RLS: setup.py, __init__.py, pyline.py: v0.3.14 (in 3 places) [3186eb5]

  • MRG: Merge branch ‘hotfix/0.3.14’ [527df85]

v0.3.13 (2016-07-22 11:16:44 -0500)

git log --reverse --pretty=format:'* %s [%h]' v0.3.12..v0.3.13
  • BUG,TST: pyline/pyline.py: console_entrypoint -> pyline.pyline:main_entrypoint (see: #7) [a16570e]

  • MRG: Merge branch ‘hotfix/0.3.13’ [29b64ef]

v0.3.12 (2016-02-16 16:07:18 -0600)

git log --reverse --pretty=format:'* %s [%h]' v0.3.11..v0.3.12
  • MRG: Merge tag ‘v0.3.11’ into develop [98adc78]

  • DOC: README.rst: add .. contents:: [4416581]

  • TST,UBY: pyline.py, scripts/pyline.py: symlinks to pyline/pyline.py [2fda52e]

  • UBY,BUG: pyline.py: loglevels [WARN], -v/–verbose/DEBUG, -q/–quiet/ERROR [07fbc09]

  • RLS,DOC: setup.py,pyline.py: version 0.3.12 [0cb05f3]

  • DOC: HISTORY.rst: git-changelog.py –hdr=+ –rev ‘release/0.3.12’ | pbcopy [3b4d775]

  • MRG: Merge branch ‘release/0.3.12’ [29332e2]

v0.3.11 (2016-02-14 22:29:55 -0600)

git log --reverse --pretty=format:'* %s [%h]' v0.3.10..v0.3.11
  • MRG: Merge tag ‘v0.3.10’ into develop [ed296ea]

  • BLD: tox.ini: testenv/deps/jinja2 [1a6c2f5]

  • BLD: tox.ini, requirements.txt: add jinja2 to requirements.txt [e267a1e]

  • RLS,DOC: setup.py,pyline.py: version 0.3.11 [21bd6e9]

  • DOC: HISTORY.rst: git-changelog.py –hdr=+ –rev ‘release/0.3.11’ | pbcopy [efc24ce]

  • MRG: Merge branch ‘release/0.3.11’ [9c05df0]

v0.3.10 (2016-02-14 21:56:36 -0600)

git log --reverse --pretty=format:'* %s [%h]' v0.3.9..v0.3.10
  • MRG: Merge tag ‘v0.3.9’ into develop [f7c8a16]

  • BUG,UBY: pyline.py: logging config (default INFO, -q/–quiet, -v/–verbose (DEBUG)) [8a060ab]

  • UBY,DOC: pyline.py: log.info((‘pyline.version’, __version__)) at startup [da1e883]

  • BUG,UBY: pyline.py: log.info((‘argv’, argv)) [ede1d5e]

  • BUG,REF: opts[‘cmd’], main->(int, results[]), log opts after all config [3cf9585]

  • UBY: pyline.py: log.info((‘_rgx’, _regexstr)) [02bd234]

  • RLS,DOC: setup.py,pyline.py: version 0.3.10 [ea6a1fd]

  • DOC: HISTORY.rst: git-changelog.py –hdr=+ –rev ‘release/0.3.10’ | pbcopy [5266662]

  • MRG: Merge branch ‘release/0.3.10’ [aa2529a]

v0.3.9 (2016-02-14 17:58:36 -0600)

git log --reverse --pretty=format:'* %s [%h]' v0.3.8..v0.3.9
  • ENH: pyline.py: –version arg [a38bf5a]

  • MRG: Merge tag ‘v0.3.8’ into develop [85cd8e9]

  • BUG,REF: pyline.py: output-filetype/-> output-format [fbcd9e2]

  • BUG: pyline.py: only print version when opts.get(‘version’) [ef8ac20]

  • RLS,DOC: setup.py,pyline.py: version 0.3.9 [5f2c4a6]

  • DOC: HISTORY.rst: git-changelog.py –hdr=+ –rev ‘release/0.3.9’ | pbcopy [ce95bae]

  • MRG: Merge branch ‘release/0.3.9’ [38e0393]

v0.3.8 (2016-02-14 17:34:08 -0600)

git log --reverse --pretty=format:'* %s [%h]' v0.3.7..v0.3.8
  • MRG: Merge tag ‘v0.3.7’ into develop [0cd0e3c]

  • BUG,ENH: fix CSV header row; add -O jinja:template=path.jinja support (#1,) [d5fe67b]

  • ENH: pyline.py: –version arg [818fc1d]

  • RLS: setup.py, pyline.py: version 0.3.8 [245214d]

  • DOC: HISTORY.rst: git-changelog.py –hdr=+ –rev ‘release/0.3.8’ | pbcopy [983b535]

  • DOC: HISTORY.rst: git-changelog.py –hdr=+ –rev ‘release/0.3.8’ | pbcopy [7b65d8e]

  • MRG: Merge branch ‘release/0.3.8’ [2f5f249]

v0.3.7 (2016-02-12 20:04:39 -0600)

git log --reverse --pretty=format:'* %s [%h]' v0.3.6..v0.3.7
  • Merge tag ‘v0.3.5’ into develop [8c5de0a]

  • ENH: pyline.py: main(args=None, iterable=None, output=None) [dd490e1]

  • UBY: pyline.py: -O chk == -O checkbox [3aa96ce]

  • UBY: pyline.py: l = line = o = obj [3aa9a81]

  • DOC: pyline.py: -f/–in/–input-file, -o/–out/–output-file [bcc9eff]

  • TST: requirements-test.txt: nose, nose-parameterized, nose-progressive [213e0c0]

  • BUG: pyline: collections.OrderedDict, return 0 [5fd1114]

  • DOC: setup.py: install_requires=[] [a41bf30]

  • TST,BUG,CLN: test_pyline.py: chk, main(_args), docstrings, #opts._output.close() [0254f30]

  • Merge tag ‘v0.3.6’ into develop [f46f90c]

  • DOC,REF: pyline.py: type_func->typefunc, docstrings [08c8d9c]

  • UBY: pyline.py: [–input-delim-split-max|–max|–max-split] [b509726]

  • REF: pyline.py: ResultWriter.get_writer ValueError, expand [143c5f7]

  • DOC: pyline.py: usage docstring, main docstring [bc44747]

  • TST: tests/test_pylinepy: more tests of sorting [b60750a]

  • DOC: pyline.py: docstrings [89ea5c7]

  • BLD,TST,BUG: Makefile, setup.py, pyline.py, test_pyline.py: pyline.main does sorting, kwargs, opts obj [e80cde6]

  • TST,REF: split to SequenceTestCase, LoggingTestCase, Test* [62ff39b]

  • TST: tests/test_pyline.py: TestPylinePyline.test_30_pyline_codefunc [49928d5]

  • Merge branch ‘feature/split_tests’ into develop [ef63a18]

  • RLS,DOC: README.rst, setup.py, pyline.py 0.3.7 description [9fc262e]

  • Merge branch ‘release/0.3.7’ [07b00b2]

v0.3.6 (2015-12-21 04:17:23 -0600)

git log --reverse --pretty=format:'* %s [%h]' v0.3.5..v0.3.6
  • BUG: pyline.py: #!/usr/bin/env python2 [9729816]

  • RLS: HISTORY.rst, __init__.py, pyline.py, setup.py: __version__ = ‘0.3.6’ [a463d39]

  • Merge branch ‘hotfix/0.3.6’ [445c089]

v0.3.5 (2015-05-24 20:58:39 -0500)

git log --reverse --pretty=format:'* %s [%h]' v0.3.4..v0.3.5
  • Merge tag ‘v0.3.4’ into develop [3ec1391]

  • CLN: patchheader: rm [c9f6304]

  • ENH: pyline.py: add a codefunc() kwarg [be8dcc8]

  • BUG,DOC: pyline.py: set default regex_options to ‘’, optparse helpstrings [fa9e9cb]

  • DOC: pyline.py: docstrings (calling a function, stdlib/vendoring) [ee22e2c]

  • ENH,TST: pyline.py: add a codefunc() kwarg [91aa0a8]

  • RLS: setup.py, __init__, HISTORY: v0.3.5, git log –format=’* %s [%h]’ master..develop [78f3ad9]

  • Merge branch ‘release/0.3.5’ [065797d]

v0.3.4 (2015-04-25 06:48:47 -0500)

git log --reverse --pretty=format:'* %s [%h]' v0.3.3..v0.3.4
  • Merge tag ‘v0.3.3’ into develop [e630114]

  • RLS: HISTORY.rst, __init__.py, setup.py: v0.3.4 [e448183]

  • Merge branch ‘release/0.3.4’ [612228d]

v0.3.3 (2015-04-25 06:43:37 -0500)

git log --reverse --pretty=format:'* %s [%h]' v0.3.2..v0.3.3
  • Merge tag ‘v0.3.2’ into develop [061840b]

  • BUG: pyline.pyline.__main__ [db71796]

  • DOC,BLD,CLN: Makefile: sphinx-apidoc –no-toc [209bff8]

  • TST,CLN: pyline.py: remote -t/–test option [2629924]

  • DOC,CLN: modules.rst: remove generated modules.rst [abdc00d]

  • BUG, ENH, BUG, TST: [b5a21e7]

  • RLS: __init__.py, setup.py: v0.3.3 [eb81129]

  • BLD: Makefile: release (dist), twine [7e602c8]

  • Merge branch ‘release/0.3.3’ [c0df4ab]

v0.3.2 (2014-11-30 19:49:42 -0600)

git log --reverse --pretty=format:'* %s [%h]' v0.3.1..v0.3.2
  • Merge tag ‘v0.3.1’ into develop [a3f8c1c]

  • ENH: Add pyline.__main__ (pyline.pyline.main) for ‘python -m pyline’ [1bd5e10]

  • DOC: README.rst [a26d97a]

  • DOC: HISTORY.rst: link to Source: http://code.activestate.com/recipes/437932-pyline-a-grep-like-sed-like-command-line-tool/ [5871727]

  • DOC: usage.rst: add :shell: option to ‘pyline –help’ output [d1f32de]

  • BUG: pyline/__init__.py: Set pyline.pyline.__main__ correctly [49ae891]

  • DOC: pyline/pyline.py: docstrings, import path as pathpy [178af4e]

  • RLS: HISTORY.txt, pyline/__init__.py, setup.py: set version to v0.3.2 [6c547e4]

  • Merge branch ‘release/0.3.2’ [10b84f5]

v0.3.1 (2014-10-27 07:53:27 -0500)

git log --reverse --pretty=format:'* %s [%h]' v0.3.0..v0.3.1
  • Merge tag ‘v0.3.0’ into develop [35a380b]

  • DOC: README.rst [f803665]

  • Merge branch ‘hotfix/readme-travis-link’ [35f7b44]

  • Merge tag ‘vreadme-travis-link’ into develop [6849887]

  • DOC: setup.py version 0.3.1 [a7fae60]

  • Merge branch ‘release/0.3.1’ [276d16b]

v0.3.0 (2014-10-27 07:34:58 -0500)

git log --reverse --pretty=format:'* %s [%h]' v0.2.0..v0.3.0
  • Added tag v0.2.0 for changeset cddc5c513cd2 [c53a725]

  • DOC: Update README.rst: typo -output-filetype -> –output-filetype [6897954]

  • DOC: Update README.rst: update ‘Features’ [548c426]

  • DOC: Update README.rst: update ‘Features’ [273b475]

  • DOC: Update README.rst: update ‘Features’ [254ed95]

  • DOC: Update README.rst add additional link to docs [8415a7c]

  • BLD,DOC: Update requirements.txt: add ../ (from ./docs) as editable [d94ff0e]

  • Revert “BLD,DOC: Update requirements.txt: add ../ (from ./docs) as editable” [fa062b8]

  • DOC: program-output:: -> command-output:: [984b8a6]

  • ENH,BUG,CLN: #10, #12, #13 [a75d2f9]

  • CLN: remove _import_path_module [0cc9bb9]

  • RLS: pyline v0.3.0 [14941af]

  • Merge branch ‘release/0.3.0’ [53609dc]

v0.2.0 (2014-08-24 14:44:31 -0500)

git log --reverse --pretty=format:'* %s [%h]' v0.1.5..v0.2.0
  • Added tag v0.1.5 for changeset 8cd9c44a80ab [4bb3fc7]

  • BLD: Add docs for ‘make release’; remove bdist_wheel upload [e76b592]

  • BLD: Add docs for ‘make release’: HISTORY.rst [e5b3e9a]

  • ENH: Add checkbox output formatter (closes #5) [46b7177]

  • BUG: add NullHandler to logger (closes #6) [a9fac28]

  • RLS: Release v0.2.0 [9ef4a25]

  • Added tag v0.2.0 for changeset f510a75a37a8 [38c7eeb]

v0.1.5 (2014-05-12 20:59:34 -0500)

git log --reverse --pretty=format:'* %s [%h]' v0.1.4..v0.1.5
  • Added tag v0.1.4 for changeset c79a1068cb1c [0abdc5e]

  • DOC: setup.py keywords and classifiers [9079d03]

  • DOC: Update HISTORY.rst: 0.1.0 -> 0.1.5 [9bfe2a5]

  • BLD: bump version to v0.1.5 [0af9381]

v0.1.4 (2014-05-12 20:42:52 -0500)

git log --reverse --pretty=format:'* %s [%h]' v0.1.3..v0.1.4
  • Added tag v0.1.3 for changeset d49705961509 [4f8cfec]

  • DOC: correct license and download_url in setup.py [49ea953]

v0.1.3 (2014-05-12 20:30:47 -0500)

git log --reverse --pretty=format:'* %s [%h]' v0.1.2..v0.1.3
  • Added tag v0.1.2 for changeset 09cca8fa5555 [828d223]

  • DOC: missing newline in description [63a442c]

  • DOC: version bump, setup description [53ad0f4]

v0.1.2 (2014-05-12 20:24:26 -0500)

git log --reverse --pretty=format:'* %s [%h]' v0.1.1..v0.1.2
  • Added tag v0.1.1 for changeset 13ad121ea966 [5727951]

  • BLD: add pathlib and path.py to requirements.txt [aa6dda7]

  • DOC,BLD,BUG: setup.py build_long_description, file handles [f7a73c1]

  • DOC: README.rst: remove includes [2d2bd6f]

  • DOC: version bump, setup description [e920ff2]

v0.1.1 (2014-05-12 19:41:54 -0500)

git log --reverse --pretty=format:'* %s [%h]' v0.1.0..v0.1.1
  • DOC,BLD: Update AUTHORS.rst, HISTORY.rst, README.rst, docs/license.rst [7b087c8]

  • CLN: pyline rename arg[0] _input -> iterable [7040271]

  • BUG: default command in – ls | pyline -p “ p = path = Path(line.strip()) [30dce3a]

  • LOG: log.info(cmd) ... after shell parsing, exception [c449765]

  • CLN: pep8 test command kwargs formatting [993c65a]

  • DOC: README.rst; ReST doesn’t seem to like `path.py`_ .. _path.py:, links [209ecb5]

  • TST: Update setup.py test command (runtests -v ./tests/test*.py) [bc84652]

  • TST: tox.ini: make html rather than sphinx-build [c96b3b0]

  • CLN: factor out _import_pathmodule and get_path_module [d0aebfb]

  • TST: move tests from pyline.py to tests/test_pyline.py [477fbb4]

  • BUG: file handles (was causing tests to fail silently) [80e84b6]

  • CLN: move optparse things into get_option_parser() [723a8b7]

  • BLD: Release 0.1.1 [3f9f56f]

v0.1.0 (2014-05-12 04:03:15 -0500)

git log --reverse --pretty=format:'* %s [%h]' b1303ba..v0.1.0
  • CLN: Update .gitignore and .hgignore [0d07ad1]

  • DOC: Update README.rst: comment out unconfigured badges [b0e0fc1]

  • ENH: Add pyline script from https://github.com/westurner/dotfiles/blob/e7f766f3/src/dotfiles/pyline.py [ce2dba8]

  • BLD,TST: Add py.test runtests.py and setup.py:PyTestCommand [953edbe]

  • BUG: try/except import StringIO (Python 3 compatibility) [97d5781]

  • BLD: remove py33 section from tox.ini for now [b103587]

  • BLD: remove py33 section from tox.ini for now [2ff4a77]

  • BLD: Update tox.ini, .travis.yml, reqs, docs/conf [13b5487]

  • CLN: pyline cleanup [9724f8e]

  • CLN: update .hgignore [59196b7]

0.0.1 (Unreleased)

  • Updated 2012.11.17, Wes Turner

  • Updated 2005.07.21, thanks to Jacob Oscarson

  • Updated 2006.03.30, thanks to Mark Eichin

Credits

Download files

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

Source Distribution

pyline-0.3.21.tar.gz (48.5 kB view details)

Uploaded Source

Built Distribution

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

pyline-0.3.21-py2.py3-none-any.whl (23.0 kB view details)

Uploaded Python 2Python 3

File details

Details for the file pyline-0.3.21.tar.gz.

File metadata

  • Download URL: pyline-0.3.21.tar.gz
  • Upload date:
  • Size: 48.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for pyline-0.3.21.tar.gz
Algorithm Hash digest
SHA256 21c9f3180a5f9999929174467df18f172b0bc3262f8ff0d460ffb9aed71e9c73
MD5 db9e7b5b4aef08ca853d1b13d88ad234
BLAKE2b-256 9df84e6dd7a4a8c2fa43d4bb7047012afa108c293b6a8c86f1c248ad9b6246cb

See more details on using hashes here.

File details

Details for the file pyline-0.3.21-py2.py3-none-any.whl.

File metadata

  • Download URL: pyline-0.3.21-py2.py3-none-any.whl
  • Upload date:
  • Size: 23.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for pyline-0.3.21-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 bde8101012e00b9ec7b0aba6e5982379036e6bd085b63b27fe0145942ceb7b9e
MD5 aee6e6db52c0597cc0b7ff82c8f1a3e2
BLAKE2b-256 bfb045acee65d8f70ebfe3b0bc2691d0b6b2b200873d9cf7500d9d5e5a4879ea

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.3.21 This release

2 files

0.3.20

2 files

0.3.19

2 files

0.3.16

2 files

0.3.15

2 files

0.3.12

2 files

0.3.11

2 files

0.3.10

2 files

0.3.9

2 files

0.3.8

2 files

0.3.7

2 files

0.3.6

2 files

0.3.5

2 files

0.3.4

2 files

0.3.3

2 files

0.3.1

1 file

0.3.0

1 file

0.2.0

1 file

0.1.5

1 file

0.1.4

1 file

0.1.3

1 file

0.1.2

1 file

0.1.1

1 file

0.1.0

1 file

Supported by

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