Compare commits
4 Commits
092b925b68
...
develop
| Author | SHA1 | Date | |
|---|---|---|---|
| f12e5c05a1 | |||
| 3b9db43f0d | |||
| 8df9be825f | |||
| d0fc473134 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,3 +1,4 @@
|
|||||||
|
secrets.env
|
||||||
pdfs/
|
pdfs/
|
||||||
output/
|
output/
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -13,6 +13,10 @@ extract_table_settings = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class ExtractError(Exception):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
def extract_date(page_text):
|
def extract_date(page_text):
|
||||||
"""Extract date from a page
|
"""Extract date from a page
|
||||||
|
|
||||||
@@ -123,12 +127,10 @@ def extract_save(pdf_file, dest, save=[]):
|
|||||||
pdf_file = Path(pdf_file)
|
pdf_file = Path(pdf_file)
|
||||||
xlss = extract_plan(pdf_file, dest)
|
xlss = extract_plan(pdf_file, dest)
|
||||||
|
|
||||||
if save != []:
|
|
||||||
dfs = from_pdf(pdf_file)
|
dfs = from_pdf(pdf_file)
|
||||||
|
|
||||||
for s in save:
|
for s in save:
|
||||||
dfs[s].to_excel(xlss[s], sheet_name=s, index=False)
|
dfs[s].to_excel(xlss[s], sheet_name=s, index=False)
|
||||||
logging.info(f"{xlss[s]} saved")
|
logging.info(f"{xlss[s]} saved")
|
||||||
return {k: v for k, v in xlss.items() if k in save}
|
|
||||||
|
|
||||||
return xlss
|
return {k: v for k, v in xlss.items() if k in save}
|
||||||
|
|||||||
@@ -75,6 +75,7 @@ def fsm():
|
|||||||
line = yield
|
line = yield
|
||||||
elif current_state == "add_totaux":
|
elif current_state == "add_totaux":
|
||||||
if line[0] == "Totaux":
|
if line[0] == "Totaux":
|
||||||
|
if line[6] is None:
|
||||||
row.update(
|
row.update(
|
||||||
{
|
{
|
||||||
"Loyers": line[2],
|
"Loyers": line[2],
|
||||||
@@ -86,6 +87,18 @@ def fsm():
|
|||||||
"Impayés": line[9],
|
"Impayés": line[9],
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
else:
|
||||||
|
row.update(
|
||||||
|
{
|
||||||
|
"Loyers": line[2],
|
||||||
|
"Taxes": line[3],
|
||||||
|
"Provisions": line[4],
|
||||||
|
"Divers": line[5],
|
||||||
|
"Total": line[6],
|
||||||
|
"Réglés": line[7],
|
||||||
|
"Impayés": line[8],
|
||||||
|
}
|
||||||
|
)
|
||||||
line = yield row
|
line = yield row
|
||||||
row = {}
|
row = {}
|
||||||
current_state = "new_row"
|
current_state = "new_row"
|
||||||
|
|||||||
@@ -42,12 +42,41 @@ def extract():
|
|||||||
@extract.command()
|
@extract.command()
|
||||||
@click.argument("pdf_file", required=1)
|
@click.argument("pdf_file", required=1)
|
||||||
@click.option("--dest", help="Où mettre les fichiers produits", default="")
|
@click.option("--dest", help="Où mettre les fichiers produits", default="")
|
||||||
def on(pdf_file, dest):
|
@click.option(
|
||||||
|
"--only-plan",
|
||||||
|
help="Ne produit rien mais indique les changements",
|
||||||
|
default=False,
|
||||||
|
is_flag=True,
|
||||||
|
)
|
||||||
|
@click.option(
|
||||||
|
"--force",
|
||||||
|
help="Écrase les fichiers produits précédemment",
|
||||||
|
default=False,
|
||||||
|
is_flag=True,
|
||||||
|
)
|
||||||
|
def on(pdf_file, dest, force, only_plan):
|
||||||
|
pdf_file = Path(pdf_file)
|
||||||
if not dest:
|
if not dest:
|
||||||
pdf_path = Path(pdf_file)
|
pdf_path = Path(pdf_file)
|
||||||
dest = pdf_path.parent
|
dest = pdf_path.parent
|
||||||
|
else:
|
||||||
|
dest = Path(dest)
|
||||||
|
|
||||||
extract_save(pdf_file, dest)
|
assert pdf_file.exists()
|
||||||
|
logging.info(f"Found {pdf_file}")
|
||||||
|
|
||||||
|
plan_dest = extract_plan(pdf_file, dest)
|
||||||
|
save = []
|
||||||
|
for k, p in plan_dest.items():
|
||||||
|
if not p.exists() or force:
|
||||||
|
save.append(k)
|
||||||
|
|
||||||
|
if only_plan:
|
||||||
|
for s in save:
|
||||||
|
logging.info(f"Planing to create {plan_dest[s]}")
|
||||||
|
else:
|
||||||
|
dest.mkdir(parents=True, exist_ok=True)
|
||||||
|
extract_save(pdf_file, dest, save)
|
||||||
|
|
||||||
|
|
||||||
@extract.command()
|
@extract.command()
|
||||||
|
|||||||
Reference in New Issue
Block a user