mikrowerk-edi-invoicing 0.6.0__py3-none-any.whl → 0.6.1__py3-none-any.whl

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.
@@ -16,4 +16,4 @@ __all__ = ["parse_and_map_x_rechnung",
16
16
  "ubl_doc_codes"
17
17
  ]
18
18
 
19
- version = "0.5.0"
19
+ version = "0.6.1"
@@ -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.1
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,5 +1,5 @@
1
- edi_invoice_parser/__init__.py,sha256=UihdTr4gW2O1cKAet6eNZFVV2ViriRye8KukcDf7Yd4,667
2
- edi_invoice_parser/cross_industry_invoice_mapper.py,sha256=Sex-h6aBechwWwATtpxZNxcpne_qoBwbIW2NABJUj0M,923
1
+ edi_invoice_parser/__init__.py,sha256=o_oatupAKzFcuuRI1z6Epj8-rIAEsxVCHwmPF0SJgVs,667
2
+ edi_invoice_parser/cross_industry_invoice_mapper.py,sha256=PCByIKH0srVnXqKR3orcQsrAxcqAtp_ljcmhNIv2FS8,1402
3
3
  edi_invoice_parser/cii_dom_parser/__init__.py,sha256=J9O0f-t1570oDgC_zWT6-MpjOYA6o3whazbe9ffQqjE,188
4
4
  edi_invoice_parser/cii_dom_parser/dom_elements_helper.py,sha256=60_YyI85xWhIa92hHwIr_FLQvFuRcNrlCJjBi9S1s8o,3686
5
5
  edi_invoice_parser/cii_dom_parser/pdf.py,sha256=1bbXWdqIGmrnYvkS284oc6ZVvH995vd9qB8-xdcDtf0,13270
@@ -21,7 +21,7 @@ edi_invoice_parser/cii_dom_parser/models/references.py,sha256=2LYJGJU5KkJse-UsUc
21
21
  edi_invoice_parser/cii_dom_parser/models/trade.py,sha256=exlMrVMzj9aMb0qI3c610G3GuB6Z5ttM4qkFfK5tn3o,6968
22
22
  edi_invoice_parser/cii_dom_parser/models/tradelines.py,sha256=262opVT4pWXKEc_-HTEqVjm4yqQhvz639QNckEQCthY,5650
23
23
  edi_invoice_parser/model/__init__.py,sha256=gdzehRQK27DRpc-datjXMSkcs5GvxPFtph02wLE1Kns,647
24
- edi_invoice_parser/model/trade_document_types.py,sha256=NA-USM8KlVXZhOFMfyJccSkbz8ZE3ewnx67GjdiB3cA,5088
24
+ edi_invoice_parser/model/trade_document_types.py,sha256=nmNzSG0bK9FCUzF1KmR1SUvgEx8ACaXezhLV_a97eYQ,5060
25
25
  edi_invoice_parser/model/xml_abstract_x_rechnung_parser.py,sha256=ufkXX4OP0_CjsB9pjF0-h_MJerkOx4JeY54nULi_BUA,691
26
26
  edi_invoice_parser/tests/__init__.py,sha256=KhEmBFKreDn5PGQFEnBzTAI7IkxtRj_H0dMxk_tuo54,160
27
27
  edi_invoice_parser/tests/test_iban_handling.py,sha256=suRaB9gxbNc2Dc7spjHmQyPBdXva98HF1js85wQWqPM,662
@@ -31,8 +31,8 @@ edi_invoice_parser/ubl_sax_parser/xml_ubl_sax_parser.py,sha256=eZETsQi0MZ7f0SvyR
31
31
  edi_invoice_parser/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
32
  edi_invoice_parser/util/file_helper.py,sha256=4gdWbv8L9LSMraLKvGI1Z3NMcuGGy7JB1qFvNaW-yo4,767
33
33
  edi_invoice_parser/util/timer_helper.py,sha256=X1XSV03iLZ4xfjELj_axlvNxzR2sOrJInXiv9HU2Fyg,284
34
- mikrowerk_edi_invoicing-0.6.0.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
35
- mikrowerk_edi_invoicing-0.6.0.dist-info/METADATA,sha256=v4BAmnBoB756m0d7wkfv4k9IRdXAUd4pIS81WVOHvOs,1074
36
- mikrowerk_edi_invoicing-0.6.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
37
- mikrowerk_edi_invoicing-0.6.0.dist-info/top_level.txt,sha256=OyIJDXDBfR9f0EvTDTmEHdXEFHscjRqX1MxeOeT2VKM,19
38
- mikrowerk_edi_invoicing-0.6.0.dist-info/RECORD,,
34
+ mikrowerk_edi_invoicing-0.6.1.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
35
+ mikrowerk_edi_invoicing-0.6.1.dist-info/METADATA,sha256=EEEN0GCXPmhTvEFofOhbB8He2YY4UYP5q6_TdSOKJ9Q,1074
36
+ mikrowerk_edi_invoicing-0.6.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
37
+ mikrowerk_edi_invoicing-0.6.1.dist-info/top_level.txt,sha256=OyIJDXDBfR9f0EvTDTmEHdXEFHscjRqX1MxeOeT2VKM,19
38
+ mikrowerk_edi_invoicing-0.6.1.dist-info/RECORD,,