Initial
This commit is contained in:
commit
d85a56f97c
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
.idea/
|
||||||
|
venv/
|
||||||
|
result/
|
||||||
|
|
||||||
58
main.py
Executable file
58
main.py
Executable file
@ -0,0 +1,58 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import random
|
||||||
|
import os
|
||||||
|
|
||||||
|
import click
|
||||||
|
from docx import Document
|
||||||
|
|
||||||
|
|
||||||
|
RFUNC = {
|
||||||
|
"int": random.randint,
|
||||||
|
"float": random.uniform,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@click.group()
|
||||||
|
def cli():
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
@cli.command("random_table")
|
||||||
|
@click.option("--rtype", type=click.Choice(RFUNC.keys()), default="int")
|
||||||
|
@click.option("--seed", type=int, default=None)
|
||||||
|
@click.option("--prec", type=int, default=5)
|
||||||
|
@click.option("--min", type=float, default=0)
|
||||||
|
@click.option("--max", type=float, default=10)
|
||||||
|
@click.option("--cols", type=int, default=10)
|
||||||
|
@click.option("--docx", type=click.Path(dir_okay=False, writable=True, resolve_path=True),
|
||||||
|
default="./result/table.docx")
|
||||||
|
@click.option("--py", type=click.Path(dir_okay=False, writable=True, resolve_path=True, allow_dash=True),
|
||||||
|
default="./result/table.py")
|
||||||
|
@click.argument("size", type=int, default=200)
|
||||||
|
def random_table(rtype, seed, prec, min, max, cols, docx, py, size):
|
||||||
|
random.seed(seed)
|
||||||
|
|
||||||
|
rows = size // cols
|
||||||
|
if size % cols > 0:
|
||||||
|
rows += 1
|
||||||
|
|
||||||
|
rfunc = RFUNC[rtype]
|
||||||
|
array = [round(rfunc(min, max), prec) for _ in range(size)]
|
||||||
|
|
||||||
|
with click.open_file(py, "w") as f:
|
||||||
|
print(array, file=f)
|
||||||
|
|
||||||
|
document = Document()
|
||||||
|
table = document.add_table(rows=rows, cols=cols)
|
||||||
|
n = 0
|
||||||
|
for i in range(rows):
|
||||||
|
for j in range(cols):
|
||||||
|
table.rows[i].cells[j].text = str(array[n])
|
||||||
|
n += 1
|
||||||
|
|
||||||
|
document.save(docx)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
cli()
|
||||||
3
requirements.txt
Normal file
3
requirements.txt
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
python-docx
|
||||||
|
click
|
||||||
|
|
||||||
0
result/.gitkeep
Normal file
0
result/.gitkeep
Normal file
Reference in New Issue
Block a user