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 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.
📦 Making a Release
After installing the package in development mode and installing
tox
with pip install tox
, the commands for making a new release are contained within the finish
environment
in tox.ini
. Run the following from the shell:
$ tox -e finish
This script does the following:
- Uses BumpVersion to switch the version number in the
setup.cfg
andsrc/table-format/version.py
to not have the-dev
suffix - Packages the code in both a tar archive and a wheel
- Uploads to PyPI using
twine
. Be sure to have a.pypirc
file configured to avoid the need for manual input at this step - Push to GitHub. You'll need to make a release going with the commit where the version was bumped.
- Bump the version to the next patch. If you made big changes and want to bump the version by minor, you can
use
tox -e bumpversion minor
after.
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-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 47e35bafa16e92dc6b8934e41e6bd43899ae3ed671cb7726314ea2de6634e686 |
|
MD5 | 84647b79d6e51cf8d088905fea5c7642 |
|
BLAKE2b-256 | 36207448bfad952115523ae89f8ff39d91be06d6e4f126d290a58432758553b3 |