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.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | caccd7688cca59940dec9077a105d1e595bda75498c33c2796619a20e59fcfa0 |
|
MD5 | 34f3499a5250d0c3a4ee0112ec3facc6 |
|
BLAKE2b-256 | 4879b5b0d4112432175077dcd80f8fe9282dce5e1fb40ca678e5e97b194ad2e4 |