Format Python code (list of lists) as a fixed width table.
Project description
table-format
Format Python code (list of lists) as a fixed width table.
Usage
You've got some tests or other code like this:
def test_the_table():
assert generate_the_table() == [
["Date", "Name", "Projects released"],
["2021-04-06", "spookylukey", 1],
]
Wouldn't it be nice if those columns lined up?
Copy the whole list of lists to the clipboard, then pipe to table-format --guess-indent
. On Linux you could use xsel
or xclip
etc:
$ xsel | table-format --guess-indent
[
['Date', 'Name', 'Projects released'],
['2021-04-06', 'spookylukey', 1 ],
]
The output should be ready to paste back into your editor.
Options
Pass the --help
flag to show all options:
$ table-format --help
⬇️ Installation
The most recent release can be installed from PyPI with:
$ pip install table-format
You can also use pipx to install it more conveniently in an isolated environment:
$ pipx install table-format
The most recent code and data can be installed directly from GitHub with:
$ pip install git+https://github.com/spookylukey/table-format.git
To install in development mode, use the following:
$ git clone git+https://github.com/spookylukey/table-format.git
$ cd table-format
$ pip install -e .
Other tips
black: use # fmt: off
and # fmt: on
commands to stop black reformatting your
nicely aligned columns.
Emacs
With default keybindings, doing C-u
M-|
table-format --guess-indent
ENTER
will
replace the current region with the formatted version from table-format
.
You can wrap it up in a nice function like this:
(defun align-python-table ()
(interactive)
(shell-command-on-region
;; beginning and end of region
(region-beginning)
(region-end)
;; command and parameters
"table-format --guess-indent"
;; output buffer
(current-buffer)
;; replace?
t
;; name of the error buffer
"*Table-Format Error Buffer*"
;; show error buffer?
t))
⚖️ License
The code in this package is licensed under the MIT License.
🙏 Contributing
Contributions, whether filing an issue, making a pull request, or forking, are appreciated. See CONTRIBUTING.rst for more information on getting involved.
🍪 Cookiecutter Acknowledgement
This package was created with @audreyfeldroy's cookiecutter package using @cthoyt's cookiecutter-python-package template.
🛠️ Development
The final section of the README is for if you want to get involved by making a code contribution.
❓ Testing
After cloning the repository and installing tox
with pip install tox
, the unit tests in the tests/
folder can be
run reproducibly with:
$ tox
Additionally, these tests are automatically re-run with each commit in a GitHub Action.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for table_format-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec1b69ac9c21b5ed98f0e3074b35ff6fd9885618700663858c8e0711e12480a0 |
|
MD5 | 32baf0783d51113f898644f41b2d05d7 |
|
BLAKE2b-256 | ecb02dd01809697cf014d5bd7c9ee4054d482c8b6fd28f2bca223106a51a338d |