将Python代码(列表的列表)格式化为固定宽度表格。
项目描述
table-format
将Python代码(列表的列表)格式化为固定宽度表格。
动机和用法
您有一些这样的测试或其他代码
def test_the_table():
assert generate_the_table() == [
['Date', 'Description', 'Amount', 'Balance'],
['2021-04-06', 'Account opened', 0, 0],
['2021-04-07', 'Cash deposit at 123 Main St, Newtown', 1000, 1000],
['2021-04-08', 'ACME anvils', -300, 700],
]
或者更糟的是,像这样
assert generate_the_table() == [
[
"Date",
"Description",
"Amount",
"Balance",
],
[
"2021-04-06",
"Account opened",
0,
0,
],
[
"2021-04-07",
"Cash deposit at 123 Main St, Newtown",
1000,
1000,
],
[
"2021-04-08",
"ACME anvils",
-300,
700,
],
]
是否希望有列对齐的可读性测试?
将整个列表的列表复制到剪贴板,然后通过table-format --guess-indent
- 在Linux上,您可以使用
xsel
或xclip
- 在MacOS上,您可以使用
pbpaste
- 在Windows PowerShell上,您可以使用
Get-Clipboard
Linux示例
$ xsel | table-format --guess-indent
[
['Date', 'Description', 'Amount', 'Balance'],
['2021-04-06', 'Account opened', 0, 0 ],
['2021-04-07', 'Cash deposit at 123 Main St, Newtown', 1000, 1000 ],
['2021-04-08', 'ACME anvils', -300, 700 ],
]
输出应准备好粘贴回您的编辑器。
选项
通过传递--help
标志来显示所有选项
$ table-format --help
⬇️ 安装
最新版本可以从PyPI安装
$ pip install table-format
您还可以使用 pipx 在隔离环境中更方便地安装。
$ pipx install table-format
查看 变更日志。
最新代码和数据可以直接通过以下方式从 GitHub 安装:
$ pip install git+https://github.com/spookylukey/table-format.git
要开发模式安装,请使用以下命令:
$ git clone git+https://github.com/spookylukey/table-format.git
$ cd table-format
$ pip install -e .
其他技巧
元组
我们也支持元组列表以及列表列表,并且会保留这些结构。
Black
Black 将还原如下格式的代码。但是,您可以使用 # fmt: off
和 # fmt: on
命令来停止 Black 格式化这些代码块。
为了更类似于 Black 风格地格式化引号,请使用 --quote-style=double
(这不会完全相同于 Black,它只是将单引号改为双引号)。
Flake8
Flake8 可能会抱怨以下问题:
- E202 - 在
]
前的空白 - E241 - 逗号后有多余的空格
- E501 - 行太长
最简单的解决方案是在您的配置中全局静默这些 flake8 错误,特别是如果您正在使用像 Black 这样的格式化程序,它将自动为您强制执行这些规则。
否则,您可以使用 noqa:E202,E241,E501
在每行的基础上静默错误,您可以将这些自动添加到每行的末尾,如下所示
$ table-format --add-noqa=E202,E241,E501
其他 noqa
项和其他行尾注释将被保留。
Emacs
使用默认键绑定,执行 C-u
M-|
table-format --guess-indent
ENTER
将用 table-format
格式化后的版本替换当前区域。
您可以将它封装在一个漂亮的函数中,如下所示
(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))
其他编辑器
欢迎为在其他编辑器中使用提供说明的贡献!
⚖️ 许可证
本软件包中的代码根据 MIT 许可证授权。
🙏 贡献
贡献,无论是提交问题、提交拉取请求还是分叉,都受到赞赏。有关参与的信息,请参阅 CONTRIBUTING.rst。
🛠️ 开发
README 的最后一部分是如果您想要通过代码贡献来参与。
❓ 测试
在克隆仓库后,安装开发需求
pip install -r requirements-dev.txt
并运行 pytest
pytest
跨所有环境测试
$ tox
此外,这些测试会自动与每个提交一起在 GitHub Action 中重新运行。
🍪 Cookiecutter 致谢
此软件包是用 @audreyfeldroy 的 cookiecutter 软件包和 @cthoyt 的 cookiecutter-snekpack 模板创建的。
项目详情
下载文件
下载适合您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。
源代码分发
构建分发
table-format-1.4.2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1e63ba8e7229f26749eb710e2be9394fcdd87f093ef880a276ae0202f23bea87 |
|
MD5 | 20b9bee8e75e70b397c46d2a0ff95333 |
|
BLAKE2b-256 | 14163cd9af060f9c1f81f5b9982ab842c9a80137c815815a322620d2a327858c |
table_format-1.4.2-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8c100dc2a5a096f43c4d1030838e90c170864a349322c418d10a8c1024438227 |
|
MD5 | 63c9d421de133748b5e04f00fbe1e7e0 |
|
BLAKE2b-256 | ebfd4cffc5cab7250d42b048f004d53cf99124dbc056086074cf15236f71c1e2 |