mikrowerk-edi-invoicing 0.6.0__tar.gz → 0.6.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. {mikrowerk_edi_invoicing-0.6.0/mikrowerk_edi_invoicing.egg-info → mikrowerk_edi_invoicing-0.6.2}/PKG-INFO +1 -1
  2. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/edi_invoice_parser/__init__.py +3 -2
  3. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/edi_invoice_parser/cross_industry_invoice_mapper.py +19 -3
  4. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/edi_invoice_parser/model/trade_document_types.py +0 -1
  5. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2/mikrowerk_edi_invoicing.egg-info}/PKG-INFO +1 -1
  6. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/setup.py +1 -1
  7. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/LICENSE +0 -0
  8. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/README.md +0 -0
  9. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/edi_invoice_parser/cii_dom_parser/__init__.py +0 -0
  10. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/edi_invoice_parser/cii_dom_parser/dom_elements_helper.py +0 -0
  11. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/edi_invoice_parser/cii_dom_parser/models/__init__.py +0 -0
  12. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/edi_invoice_parser/cii_dom_parser/models/accounting.py +0 -0
  13. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/edi_invoice_parser/cii_dom_parser/models/container.py +0 -0
  14. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/edi_invoice_parser/cii_dom_parser/models/delivery.py +0 -0
  15. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/edi_invoice_parser/cii_dom_parser/models/document.py +0 -0
  16. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/edi_invoice_parser/cii_dom_parser/models/elements.py +0 -0
  17. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/edi_invoice_parser/cii_dom_parser/models/fields.py +0 -0
  18. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/edi_invoice_parser/cii_dom_parser/models/note.py +0 -0
  19. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/edi_invoice_parser/cii_dom_parser/models/party.py +0 -0
  20. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/edi_invoice_parser/cii_dom_parser/models/payment.py +0 -0
  21. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/edi_invoice_parser/cii_dom_parser/models/product.py +0 -0
  22. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/edi_invoice_parser/cii_dom_parser/models/references.py +0 -0
  23. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/edi_invoice_parser/cii_dom_parser/models/trade.py +0 -0
  24. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/edi_invoice_parser/cii_dom_parser/models/tradelines.py +0 -0
  25. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/edi_invoice_parser/cii_dom_parser/pdf.py +0 -0
  26. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/edi_invoice_parser/cii_dom_parser/utils.py +0 -0
  27. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/edi_invoice_parser/cii_dom_parser/xml_cii_dom_parser.py +0 -0
  28. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/edi_invoice_parser/cii_dom_parser/xmp_schema.py +0 -0
  29. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/edi_invoice_parser/model/__init__.py +0 -0
  30. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/edi_invoice_parser/model/xml_abstract_x_rechnung_parser.py +0 -0
  31. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/edi_invoice_parser/tests/__init__.py +0 -0
  32. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/edi_invoice_parser/tests/test_iban_handling.py +0 -0
  33. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/edi_invoice_parser/tests/test_parse_x_rechnung.py +0 -0
  34. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/edi_invoice_parser/ubl_sax_parser/__init__.py +0 -0
  35. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/edi_invoice_parser/ubl_sax_parser/xml_ubl_sax_parser.py +0 -0
  36. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/edi_invoice_parser/util/__init__.py +0 -0
  37. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/edi_invoice_parser/util/file_helper.py +0 -0
  38. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/edi_invoice_parser/util/timer_helper.py +0 -0
  39. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/mikrowerk_edi_invoicing.egg-info/SOURCES.txt +0 -0
  40. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/mikrowerk_edi_invoicing.egg-info/dependency_links.txt +0 -0
  41. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/mikrowerk_edi_invoicing.egg-info/requires.txt +0 -0
  42. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/mikrowerk_edi_invoicing.egg-info/top_level.txt +0 -0
  43. {mikrowerk_edi_invoicing-0.6.0 → mikrowerk_edi_invoicing-0.6.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mikrowerk_edi_invoicing
3
- Version: 0.6.0
3
+ Version: 0.6.2
4
4
  Summary: Parser for EDI invoices in CII or UBL format or plain pdf with LLM support
5
5
  Author: Mikrowerk a Gammadata Division
6
6
  Author-email: info@mikrowerk.com
@@ -1,8 +1,9 @@
1
- from .cross_industry_invoice_mapper import parse_and_map_x_rechnung
1
+ from .cross_industry_invoice_mapper import parse_and_map_x_rechnung, check_if_parser_is_available
2
2
  from .model.trade_document_types import TradeDocument, TradeParty, TradePartyAddress, TradeCurrency, TradePartyContact, \
3
3
  TradeLine, TradePaymentMeans, AppliedTradeTax, BankAccount, FinancialCard, ubl_doc_codes
4
4
 
5
5
  __all__ = ["parse_and_map_x_rechnung",
6
+ "check_if_parser_is_available",
6
7
  "TradeDocument",
7
8
  "TradeParty",
8
9
  "TradePartyAddress",
@@ -16,4 +17,4 @@ __all__ = ["parse_and_map_x_rechnung",
16
17
  "ubl_doc_codes"
17
18
  ]
18
19
 
19
- version = "0.5.0"
20
+ version = "0.6.2"
@@ -1,11 +1,15 @@
1
1
  """
2
2
  This implements a mapper from a drafthorse parsed x-rechnung-xml to the internal XRechnung object
3
3
  """
4
+ import logging
4
5
  from lxml import etree
5
6
 
6
7
  from .model.trade_document_types import TradeDocument
7
8
  from .cii_dom_parser import XRechnungCIIXMLParser
8
9
  from .ubl_sax_parser.xml_ubl_sax_parser import XRechnungUblXMLParser
10
+ from .model.xml_abstract_x_rechnung_parser import XMLAbstractXRechnungParser
11
+
12
+ _logger = logging.getLogger(__name__)
9
13
 
10
14
 
11
15
  def parse_and_map_x_rechnung(_xml: bytes) -> TradeDocument:
@@ -17,12 +21,24 @@ def parse_and_map_x_rechnung(_xml: bytes) -> TradeDocument:
17
21
  Returns: XRechnung
18
22
 
19
23
  """
24
+ _parser = get_xml_parser_for_doc_type(_xml)
25
+ if _parser is None:
26
+ raise ValueError('xml format not supported for any parser"')
27
+ return _parser.parse_and_map_x_rechnung(_xml)
28
+
29
+
30
+ def get_xml_parser_for_doc_type(_xml: bytes) -> XMLAbstractXRechnungParser:
20
31
  _parser = None
21
32
  tree = etree.fromstring(_xml)
22
33
  if tree.tag == '{urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100}CrossIndustryInvoice':
23
34
  _parser = XRechnungCIIXMLParser()
24
35
  elif tree.tag == '{urn:oasis:names:specification:ubl:schema:xsd:Invoice-2}Invoice':
25
36
  _parser = XRechnungUblXMLParser()
26
- if _parser is None:
27
- raise ValueError(f'xml format not supported: "{tree.tag}"')
28
- return _parser.parse_and_map_x_rechnung(_xml)
37
+ else:
38
+ _logger.warning(f'No parser found, unsupported XML tag: {tree.tag}')
39
+ return _parser
40
+
41
+
42
+ def check_if_parser_is_available(_xml: bytes) -> bool:
43
+ return get_xml_parser_for_doc_type(_xml) is not None
44
+
@@ -79,7 +79,6 @@ class TradeLine:
79
79
  quantity_unit_code: str = None
80
80
  unit_price: float = None
81
81
  unit_price_gross: float = None
82
- total_net: float = None
83
82
  tax: AppliedTradeTax | None = None
84
83
  total_amount_net: float = None
85
84
  total_amount: float = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mikrowerk_edi_invoicing
3
- Version: 0.6.0
3
+ Version: 0.6.2
4
4
  Summary: Parser for EDI invoices in CII or UBL format or plain pdf with LLM support
5
5
  Author: Mikrowerk a Gammadata Division
6
6
  Author-email: info@mikrowerk.com
@@ -16,7 +16,7 @@ setuptools.setup(
16
16
  name="mikrowerk_edi_invoicing",
17
17
 
18
18
  # version of the module
19
- version="0.6.0",
19
+ version="0.6.2",
20
20
 
21
21
  # Name of Author
22
22
  author="Mikrowerk a Gammadata Division",