nixbot

builds

failed treefmt-check checks.x86_64-linux.formatting · build #122 · raw

1treefmt v2.6.0ERRO formatter | ruff-check: failed to apply with options '[check --fix packages/ecbx/tests/__init__.py packages/ecbx/tests/conftest.py packages/ecbx/tests/test_cli.py packages/ecbx/tests/test_exchange_rate_store.py packages/ecbx/tests/test_utils.py packages/harvest-invoicer/tests/__init__.py packages/harvest-invoicer/tests/e2e_demo.py packages/harvest-invoicer/tests/test_app.py packages/harvest-invoicer/tests/test_cli.py packages/harvest-invoicer/tests/test_config.py packages/harvest-invoicer/tests/test_db.py packages/harvest-invoicer/tests/test_fetch.py packages/harvest-invoicer/tests/test_i18n.py packages/harvest-invoicer/tests/test_mail.py packages/harvest-invoicer/tests/test_model.py packages/harvest-invoicer/tests/test_render.py packages/harvest-invoicer/tests/test_rest_retry.py]': exit status 123CPY001 Missing copyright notice at top of file4--> packages/ecbx/tests/__init__.py:1:156CPY001 Missing copyright notice at top of file7--> packages/ecbx/tests/conftest.py:1:189CPY001 Missing copyright notice at top of file10--> packages/ecbx/tests/test_cli.py:1:11112CPY001 Missing copyright notice at top of file13--> packages/ecbx/tests/test_exchange_rate_store.py:1:11415CPY001 Missing copyright notice at top of file16--> packages/ecbx/tests/test_utils.py:1:11718CPY001 Missing copyright notice at top of file19--> packages/harvest-invoicer/tests/__init__.py:1:12021CPY001 Missing copyright notice at top of file22--> packages/harvest-invoicer/tests/e2e_demo.py:1:12324CPY001 Missing copyright notice at top of file25--> packages/harvest-invoicer/tests/test_app.py:1:12627CPY001 Missing copyright notice at top of file28--> packages/harvest-invoicer/tests/test_cli.py:1:12930CPY001 Missing copyright notice at top of file31--> packages/harvest-invoicer/tests/test_config.py:1:13233CPY001 Missing copyright notice at top of file34--> packages/harvest-invoicer/tests/test_db.py:1:13536CPY001 Missing copyright notice at top of file37--> packages/harvest-invoicer/tests/test_fetch.py:1:13839CPY001 Missing copyright notice at top of file40--> packages/harvest-invoicer/tests/test_i18n.py:1:14142CPY001 Missing copyright notice at top of file43--> packages/harvest-invoicer/tests/test_mail.py:1:14445CPY001 Missing copyright notice at top of file46--> packages/harvest-invoicer/tests/test_model.py:1:14748CPY001 Missing copyright notice at top of file49--> packages/harvest-invoicer/tests/test_render.py:1:15051CPY001 Missing copyright notice at top of file52--> packages/harvest-invoicer/tests/test_rest_retry.py:1:15354Found 17 errors.5556ERRO formatter | ruff-check: failed to apply with options '[check --fix packages/working-days-calculator/src/working_days_calculator/__init__.py]': exit status 15758CPY001 Missing copyright notice at top of file59--> packages/working-days-calculator/src/working_days_calculator/__init__.py:1:16061Found 1 error.6263ERRO formatter | ruff-check: failed to apply with options '[check --fix packages/transferwise/src/transferwise/__init__.py]': exit status 16465CPY001 Missing copyright notice at top of file66--> packages/transferwise/src/transferwise/__init__.py:1:16768Found 1 error.6970ERRO formatter | ruff-check: failed to apply with options '[check --fix packages/kimai/src/kimai/__init__.py packages/kimai/src/kimai/api.py packages/kimai/src/kimai/data.py packages/kimai/src/kimai/jsonserializer.py packages/kimai/src/kimai_exporter/__init__.py packages/kimai/src/kimai_exporter/cli.py]': exit status 17172CPY001 Missing copyright notice at top of file73--> packages/kimai/src/kimai/__init__.py:1:17475CPY001 Missing copyright notice at top of file76--> packages/kimai/src/kimai/api.py:1:17778PLR0917 Too many positional arguments (6 > 5)79 --> packages/kimai/src/kimai/api.py:84:980 |8182 | return ActivityInfo.from_json(activity_data[0])8283 |8384 | def get_time_entries(84 | ^^^^^^^^^^^^^^^^8585 | self,8686 | from_date: datetime,87 |88help: Consider adding `@typing.override` if changing the function signature would violate the Liskov Substitution Principle8990CPY001 Missing copyright notice at top of file91--> packages/kimai/src/kimai/data.py:1:19293CPY001 Missing copyright notice at top of file94--> packages/kimai/src/kimai/jsonserializer.py:1:19596CPY001 Missing copyright notice at top of file97--> packages/kimai/src/kimai_exporter/__init__.py:1:19899CPY001 Missing copyright notice at top of file100--> packages/kimai/src/kimai_exporter/cli.py:1:1101102Found 7 errors.103104ERRO formatter | ruff-check: failed to apply with options '[check --fix packages/sevdesk-invoicer/src/sevdesk_invoicer/__init__.py packages/sevdesk-invoicer/src/sevdesk_tax_estimator/__init__.py packages/sevdesk-invoicer/src/sevdesk_wise_importer/__init__.py]': exit status 1105106CPY001 Missing copyright notice at top of file107--> packages/sevdesk-invoicer/src/sevdesk_invoicer/__init__.py:1:1108109CPY001 Missing copyright notice at top of file110--> packages/sevdesk-invoicer/src/sevdesk_tax_estimator/__init__.py:1:1111112CPY001 Missing copyright notice at top of file113--> packages/sevdesk-invoicer/src/sevdesk_wise_importer/__init__.py:1:1114115PLR0917 Too many positional arguments (7 > 5)116 --> packages/sevdesk-invoicer/src/sevdesk_wise_importer/__init__.py:144:5117 |118144 | def import_record(119 | ^^^^^^^^^^^^^120145 | api: SevDeskAPI,121146 | accounts: Accounts,122 |123124Found 4 errors.125126ERRO formatter | ruff-check: failed to apply with options '[check --fix packages/sevdesk-api/src/sevdesk_api/__init__.py packages/sevdesk-api/src/sevdesk_api/accounting_types.py packages/sevdesk-api/src/sevdesk_api/api.py packages/sevdesk-api/src/sevdesk_api/check_accounts.py packages/sevdesk-api/src/sevdesk_api/client.py packages/sevdesk-api/src/sevdesk_api/contacts.py packages/sevdesk-api/src/sevdesk_api/invoices.py packages/sevdesk-api/src/sevdesk_api/models/__init__.py packages/sevdesk-api/src/sevdesk_api/models/base.py packages/sevdesk-api/src/sevdesk_api/models/check_account.py packages/sevdesk-api/src/sevdesk_api/models/contact.py packages/sevdesk-api/src/sevdesk_api/models/invoice.py packages/sevdesk-api/src/sevdesk_api/object_resolver.py packages/sevdesk-api/src/sevdesk_api/transactions.py packages/sevdesk-api/src/sevdesk_api/vouchers.py]': exit status 1127128CPY001 Missing copyright notice at top of file129--> packages/sevdesk-api/src/sevdesk_api/__init__.py:1:1130131CPY001 Missing copyright notice at top of file132--> packages/sevdesk-api/src/sevdesk_api/accounting_types.py:1:1133134CPY001 Missing copyright notice at top of file135--> packages/sevdesk-api/src/sevdesk_api/api.py:1:1136137CPY001 Missing copyright notice at top of file138--> packages/sevdesk-api/src/sevdesk_api/check_accounts.py:1:1139140CPY001 Missing copyright notice at top of file141--> packages/sevdesk-api/src/sevdesk_api/client.py:1:1142143CPY001 Missing copyright notice at top of file144--> packages/sevdesk-api/src/sevdesk_api/contacts.py:1:1145146CPY001 Missing copyright notice at top of file147--> packages/sevdesk-api/src/sevdesk_api/invoices.py:1:1148149PLR0917 Too many positional arguments (6 > 5)150 --> packages/sevdesk-api/src/sevdesk_api/invoices.py:64:9151 |15262 | raise ValueError(msg)15363 |15464 | def get_invoices(155 | ^^^^^^^^^^^^15665 | self,15766 | limit: int = 100,158 |159help: Consider adding `@typing.override` if changing the function signature would violate the Liskov Substitution Principle160161PLR0917 Too many positional arguments (6 > 5)162 --> packages/sevdesk-api/src/sevdesk_api/invoices.py:165:9163 |164163 | raise ValueError(msg)165164 |166165 | def send_invoice_by_email(167 | ^^^^^^^^^^^^^^^^^^^^^168166 | self,169167 | invoice_id: int,170 |171help: Consider adding `@typing.override` if changing the function signature would violate the Liskov Substitution Principle172173CPY001 Missing copyright notice at top of file174--> packages/sevdesk-api/src/sevdesk_api/models/__init__.py:1:1175176CPY001 Missing copyright notice at top of file177--> packages/sevdesk-api/src/sevdesk_api/models/base.py:1:1178179CPY001 Missing copyright notice at top of file180--> packages/sevdesk-api/src/sevdesk_api/models/check_account.py:1:1181182CPY001 Missing copyright notice at top of file183--> packages/sevdesk-api/src/sevdesk_api/models/contact.py:1:1184185CPY001 Missing copyright notice at top of file186--> packages/sevdesk-api/src/sevdesk_api/models/invoice.py:1:1187188CPY001 Missing copyright notice at top of file189--> packages/sevdesk-api/src/sevdesk_api/object_resolver.py:1:1190191CPY001 Missing copyright notice at top of file192--> packages/sevdesk-api/src/sevdesk_api/transactions.py:1:1193194PLR0917 Too many positional arguments (7 > 5)195 --> packages/sevdesk-api/src/sevdesk_api/transactions.py:25:9196 |19723 | self.client = client19824 |19925 | def get_transactions(200 | ^^^^^^^^^^^^^^^^20126 | self,20227 | check_account_id: int | None = None,203 |204help: Consider adding `@typing.override` if changing the function signature would violate the Liskov Substitution Principle205206PLR0917 Too many positional arguments (9 > 5)207 --> packages/sevdesk-api/src/sevdesk_api/transactions.py:81:9208 |20979 | return self.client.get(f"CheckAccountTransaction/{transaction_id}")21080 |21181 | def create_transaction(212 | ^^^^^^^^^^^^^^^^^^21382 | self,21483 | check_account_id: int,215 |216help: Consider adding `@typing.override` if changing the function signature would violate the Liskov Substitution Principle217218PLR0917 Too many positional arguments (8 > 5)219 --> packages/sevdesk-api/src/sevdesk_api/transactions.py:132:9220 |221130 | return self.client.post("CheckAccountTransaction", json_data=data)222131 |223132 | def update_transaction(224 | ^^^^^^^^^^^^^^^^^^225133 | self,226134 | transaction_id: int,227 |228help: Consider adding `@typing.override` if changing the function signature would violate the Liskov Substitution Principle229230CPY001 Missing copyright notice at top of file231--> packages/sevdesk-api/src/sevdesk_api/vouchers.py:1:1232233PLR0917 Too many positional arguments (8 > 5)234 --> packages/sevdesk-api/src/sevdesk_api/vouchers.py:185:9235 |236183 | self.accounting_types = accounting_types237184 |238185 | def get_vouchers(239 | ^^^^^^^^^^^^240186 | self,241187 | status: VoucherStatus | None = None,242 |243help: Consider adding `@typing.override` if changing the function signature would violate the Liskov Substitution Principle244245PLR0917 Too many positional arguments (14 > 5)246 --> packages/sevdesk-api/src/sevdesk_api/vouchers.py:355:9247 |248353 | conn.close()249354 |250355 | def _build_voucher_data(251 | ^^^^^^^^^^^^^^^^^^^252356 | self,253357 | credit_debit: CreditDebit,254 |255help: Consider adding `@typing.override` if changing the function signature would violate the Liskov Substitution Principle256257Found 22 errors.258259ERRO formatter | ruff-check: failed to apply with options '[check --fix packages/rest/src/rest/__init__.py]': exit status 1260261CPY001 Missing copyright notice at top of file262--> packages/rest/src/rest/__init__.py:1:1263264Found 1 error.265266ERRO formatter | ruff-check: failed to apply with options '[check --fix packages/paperless-cli/src/paperless_cli/__init__.py packages/paperless-cli/src/paperless_cli/api.py packages/paperless-cli/src/paperless_cli/cli/__init__.py packages/paperless-cli/src/paperless_cli/cli/documents.py packages/paperless-cli/src/paperless_cli/cli/formatter.py packages/paperless-cli/src/paperless_cli/cli/mail_accounts.py packages/paperless-cli/src/paperless_cli/cli/mail_rules.py packages/paperless-cli/src/paperless_cli/cli/main.py packages/paperless-cli/src/paperless_cli/cli/tags.py packages/paperless-cli/src/paperless_cli/errors.py packages/paperless-cli/src/paperless_cli/models/__init__.py packages/paperless-cli/src/paperless_cli/models/base.py packages/paperless-cli/src/paperless_cli/models/correspondent.py packages/paperless-cli/src/paperless_cli/models/document.py packages/paperless-cli/src/paperless_cli/models/mail.py packages/paperless-cli/src/paperless_cli/models/tag.py packages/paperless-cli/src/paperless_cli/models/task.py]': exit status 1267268CPY001 Missing copyright notice at top of file269--> packages/paperless-cli/src/paperless_cli/__init__.py:1:1270271CPY001 Missing copyright notice at top of file272--> packages/paperless-cli/src/paperless_cli/api.py:1:1273274CPY001 Missing copyright notice at top of file275--> packages/paperless-cli/src/paperless_cli/cli/__init__.py:1:1276277CPY001 Missing copyright notice at top of file278--> packages/paperless-cli/src/paperless_cli/cli/documents.py:1:1279280CPY001 Missing copyright notice at top of file281--> packages/paperless-cli/src/paperless_cli/cli/formatter.py:1:1282283CPY001 Missing copyright notice at top of file284--> packages/paperless-cli/src/paperless_cli/cli/mail_accounts.py:1:1285286CPY001 Missing copyright notice at top of file287--> packages/paperless-cli/src/paperless_cli/cli/mail_rules.py:1:1288289CPY001 Missing copyright notice at top of file290--> packages/paperless-cli/src/paperless_cli/cli/main.py:1:1291292CPY001 Missing copyright notice at top of file293--> packages/paperless-cli/src/paperless_cli/cli/tags.py:1:1294295CPY001 Missing copyright notice at top of file296--> packages/paperless-cli/src/paperless_cli/errors.py:1:1297298CPY001 Missing copyright notice at top of file299--> packages/paperless-cli/src/paperless_cli/models/__init__.py:1:1300301CPY001 Missing copyright notice at top of file302--> packages/paperless-cli/src/paperless_cli/models/base.py:1:1303304CPY001 Missing copyright notice at top of file305--> packages/paperless-cli/src/paperless_cli/models/correspondent.py:1:1306307CPY001 Missing copyright notice at top of file308--> packages/paperless-cli/src/paperless_cli/models/document.py:1:1309310CPY001 Missing copyright notice at top of file311--> packages/paperless-cli/src/paperless_cli/models/mail.py:1:1312313CPY001 Missing copyright notice at top of file314--> packages/paperless-cli/src/paperless_cli/models/tag.py:1:1315316CPY001 Missing copyright notice at top of file317--> packages/paperless-cli/src/paperless_cli/models/task.py:1:1318319Found 17 errors.320321ERRO formatter | ruff-check: failed to apply with options '[check --fix packages/wise-exporter/src/wise_exporter/__init__.py]': exit status 1322323CPY001 Missing copyright notice at top of file324--> packages/wise-exporter/src/wise_exporter/__init__.py:1:1325326Found 1 error.327328ERRO formatter | ruff-check: failed to apply with options '[check --fix packages/quipu-invoicer/src/quipu_api/__init__.py packages/quipu-invoicer/src/quipu_api/cli.py packages/quipu-invoicer/src/quipu_invoicer/__init__.py]': exit status 1329330CPY001 Missing copyright notice at top of file331--> packages/quipu-invoicer/src/quipu_api/__init__.py:1:1332333CPY001 Missing copyright notice at top of file334--> packages/quipu-invoicer/src/quipu_api/cli.py:1:1335336CPY001 Missing copyright notice at top of file337--> packages/quipu-invoicer/src/quipu_invoicer/__init__.py:1:1338339PLR0917 Too many positional arguments (10 > 5)340 --> packages/quipu-invoicer/src/quipu_invoicer/__init__.py:47:5341 |34245 | )34346 | @click.argument("json_file", type=click.Path(exists=True))34447 | def main(345 | ^^^^34648 | quipu_app_id: str,34749 | quipu_app_secret: str,348 |349350PLR0917 Too many positional arguments (10 > 5)351 --> packages/quipu-invoicer/src/quipu_invoicer/__init__.py:75:5352 |35375 | def create_invoice(354 | ^^^^^^^^^^^^^^35576 | app_id: str,35677 | app_secret: str,357 |358359Found 5 errors.360361ERRO formatter | ruff-check: failed to apply with options '[check --fix packages/sevdesk-cli/src/sevdesk_cli/__init__.py packages/sevdesk-cli/src/sevdesk_cli/__main__.py packages/sevdesk-cli/src/sevdesk_cli/cli/__init__.py packages/sevdesk-cli/src/sevdesk_cli/cli/accounting_types.py packages/sevdesk-cli/src/sevdesk_cli/cli/check_accounts.py packages/sevdesk-cli/src/sevdesk_cli/cli/tax_rules.py packages/sevdesk-cli/src/sevdesk_cli/cli/transactions.py packages/sevdesk-cli/src/sevdesk_cli/cli/vouchers.py packages/sevdesk-cli/src/sevdesk_cli/errors.py packages/sevdesk-cli/src/sevdesk_cli/main.py]': exit status 1362363CPY001 Missing copyright notice at top of file364--> packages/sevdesk-cli/src/sevdesk_cli/__init__.py:1:1365366CPY001 Missing copyright notice at top of file367--> packages/sevdesk-cli/src/sevdesk_cli/__main__.py:1:1368369CPY001 Missing copyright notice at top of file370--> packages/sevdesk-cli/src/sevdesk_cli/cli/__init__.py:1:1371372CPY001 Missing copyright notice at top of file373--> packages/sevdesk-cli/src/sevdesk_cli/cli/accounting_types.py:1:1374375CPY001 Missing copyright notice at top of file376--> packages/sevdesk-cli/src/sevdesk_cli/cli/check_accounts.py:1:1377378CPY001 Missing copyright notice at top of file379--> packages/sevdesk-cli/src/sevdesk_cli/cli/tax_rules.py:1:1380381CPY001 Missing copyright notice at top of file382--> packages/sevdesk-cli/src/sevdesk_cli/cli/transactions.py:1:1383384CPY001 Missing copyright notice at top of file385--> packages/sevdesk-cli/src/sevdesk_cli/cli/vouchers.py:1:1386387CPY001 Missing copyright notice at top of file388--> packages/sevdesk-cli/src/sevdesk_cli/errors.py:1:1389390CPY001 Missing copyright notice at top of file391--> packages/sevdesk-cli/src/sevdesk_cli/main.py:1:1392393Found 10 errors.394395ERRO formatter | ruff-check: failed to apply with options '[check --fix packages/harvest/src/harvest/__init__.py packages/harvest/src/harvest_exporter/__init__.py packages/harvest/src/harvest_exporter/cli.py packages/harvest/src/harvest_exporter/export.py packages/harvest/src/harvest_rounder/__init__.py packages/harvest/src/harvest_rounder/cli.py]': exit status 1396397CPY001 Missing copyright notice at top of file398--> packages/harvest/src/harvest/__init__.py:1:1399400CPY001 Missing copyright notice at top of file401--> packages/harvest/src/harvest_exporter/__init__.py:1:1402403CPY001 Missing copyright notice at top of file404--> packages/harvest/src/harvest_exporter/cli.py:1:1405406CPY001 Missing copyright notice at top of file407--> packages/harvest/src/harvest_exporter/export.py:1:1408409CPY001 Missing copyright notice at top of file410--> packages/harvest/src/harvest_rounder/__init__.py:1:1411412CPY001 Missing copyright notice at top of file413--> packages/harvest/src/harvest_rounder/cli.py:1:1414415Found 6 errors.416417ERRO formatter | ruff-check: failed to apply with options '[check --fix packages/ecbx/src/ecbx/__init__.py packages/ecbx/src/ecbx/__main__.py packages/ecbx/src/ecbx/cli.py packages/ecbx/src/ecbx/constants.py packages/ecbx/src/ecbx/store.py packages/ecbx/src/ecbx/utils.py]': exit status 1418419CPY001 Missing copyright notice at top of file420--> packages/ecbx/src/ecbx/__init__.py:1:1421422CPY001 Missing copyright notice at top of file423--> packages/ecbx/src/ecbx/__main__.py:1:1424425CPY001 Missing copyright notice at top of file426--> packages/ecbx/src/ecbx/cli.py:1:1427428PLR0917 Too many positional arguments (6 > 5)429 --> packages/ecbx/src/ecbx/cli.py:134:5430 |431132 | )432133 | @click.pass_context433134 | def convert(434 | ^^^^^^^435135 | ctx: click.Context,436136 | date: str | None,437 |438439CPY001 Missing copyright notice at top of file440--> packages/ecbx/src/ecbx/constants.py:1:1441442CPY001 Missing copyright notice at top of file443--> packages/ecbx/src/ecbx/store.py:1:1444445CPY001 Missing copyright notice at top of file446--> packages/ecbx/src/ecbx/utils.py:1:1447448Found 7 errors.449450ERRO formatter | ruff-check: failed to apply with options '[check --fix packages/harvest-invoicer/src/harvest_invoicer/__init__.py packages/harvest-invoicer/src/harvest_invoicer/app.py packages/harvest-invoicer/src/harvest_invoicer/cli.py packages/harvest-invoicer/src/harvest_invoicer/config.py packages/harvest-invoicer/src/harvest_invoicer/db.py packages/harvest-invoicer/src/harvest_invoicer/fetch.py packages/harvest-invoicer/src/harvest_invoicer/i18n.py packages/harvest-invoicer/src/harvest_invoicer/mail.py packages/harvest-invoicer/src/harvest_invoicer/model.py packages/harvest-invoicer/src/harvest_invoicer/render.py]': exit status 1451452CPY001 Missing copyright notice at top of file453--> packages/harvest-invoicer/src/harvest_invoicer/__init__.py:1:1454455CPY001 Missing copyright notice at top of file456--> packages/harvest-invoicer/src/harvest_invoicer/app.py:1:1457458PLR0917 Too many positional arguments (7 > 5)459 --> packages/harvest-invoicer/src/harvest_invoicer/app.py:78:5460 |46178 | def _make_invoice(462 | ^^^^^^^^^^^^^46379 | lines: list[InvoiceLine],46480 | number: str,465 |466467PLR0917 Too many positional arguments (16 > 5)468 --> packages/harvest-invoicer/src/harvest_invoicer/app.py:103:5469 |470103 | def create_app(471 | ^^^^^^^^^^472104 | lines: list[InvoiceLine],473105 | issuer: dict[str, object],474 |475476CPY001 Missing copyright notice at top of file477--> packages/harvest-invoicer/src/harvest_invoicer/cli.py:1:1478479PLR0917 Too many positional arguments (7 > 5)480 --> packages/harvest-invoicer/src/harvest_invoicer/cli.py:182:5481 |482182 | def _build_invoice(483 | ^^^^^^^^^^^^^^484183 | lines: list[InvoiceLine],485184 | number: str,486 |487488PLR0917 Too many positional arguments (11 > 5)489 --> packages/harvest-invoicer/src/harvest_invoicer/cli.py:312:5490 |491310 | help="Use synthetic data (no Harvest credentials required).",492311 | )493312 | def serve(494 | ^^^^^495313 | client_filter: str | None,496314 | db_path: Path | None,497 |498499PLR0917 Too many positional arguments (14 > 5)500 --> packages/harvest-invoicer/src/harvest_invoicer/cli.py:525:5501 |502523 | @_MERGE_DUPLICATES_OPTION503524 | @_BILL_TO_OPTION504525 | def generate(505 | ^^^^^^^^506526 | months: tuple[str, ...],507527 | client_filter: str | None,508 |509510CPY001 Missing copyright notice at top of file511--> packages/harvest-invoicer/src/harvest_invoicer/config.py:1:1512513CPY001 Missing copyright notice at top of file514--> packages/harvest-invoicer/src/harvest_invoicer/db.py:1:1515516CPY001 Missing copyright notice at top of file517--> packages/harvest-invoicer/src/harvest_invoicer/fetch.py:1:1518519CPY001 Missing copyright notice at top of file520--> packages/harvest-invoicer/src/harvest_invoicer/i18n.py:1:1521522CPY001 Missing copyright notice at top of file523--> packages/harvest-invoicer/src/harvest_invoicer/mail.py:1:1524525CPY001 Missing copyright notice at top of file526--> packages/harvest-invoicer/src/harvest_invoicer/model.py:1:1527528CPY001 Missing copyright notice at top of file529--> packages/harvest-invoicer/src/harvest_invoicer/render.py:1:1530531Found 16 errors (1 fixed, 15 remaining).532533traversed 200 files534emitted 115 files for processing535formatted 18 files (1 changed) in 5.026s536Error: failed to finalise formatting: formatting failures detected