Search Posts

Visits: 99

ディレクトリ構成と__init__.pyファイル

genInvoice及びinvoice2tsvで共通してモジュールdic2treeを使用するのためにdic2etreeサブディレクトリに次の内容で__init__.pyファイルを定義した。
ディレクトリ構成を次に示す。

.
├── LICENSE
├── README.md
├── data
│   ├── common
│   │   └── xpath.txt
│   ├── in
│   │   ├── ubl-tc434-example1.xml
│   │   ├── ubl-tc434-example2.xml
│   │   └── ubl-tc434-example3.xml
│   └── out
│       ├── ubl-tc434-example1.tsv
│       ├── ubl-tc434-example1.xml
│       ├── ubl-tc434-example2.tsv
│       ├── ubl-tc434-example2.xml
│       ├── ubl-tc434-example3.tsv
│       └── ubl-tc434-example3.xml
├── dic2etree
│   ├── __init__.py
│   └── dic2etree.py
├── doc
│   └── dic2etree.md
├── genInvoice
└── invoice2tsv
from .dic2etree import dict_to_etree
from .dic2etree import etree_to_dict
from .dic2etree import get_path_value
from .dic2etree import set_path_value

ns = {
  '': 'urn:oasis:names:specification:ubl:schema:xsd:Invoice-2',
  'xsi': 'http://www.w3.org/2001/XMLSchema-instance',
  'cac': 'urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2',
  'cbc': 'urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2',
  'qdt': 'urn:oasis:names:specification:ubl:schema:xsd:QualifiedDataTypes-2',
  'udt': 'urn:oasis:names:specification:ubl:schema:xsd:UnqualifiedDataTypes-2',
  'ccts': 'urn:un:unece:uncefact:documentation:2'
}

__all__ = ['dict_to_etree', 'etree_to_dict', 'get_path_value', 'set_path_value', 'ns']

両モジュールで共通して使用する名前空間定義のnsをここで定義すると同時に、dic2etree.pyで定義した4つの関数をimportしている。これらの共有関数を__all__で指定することで、両モジュールの中で、
from dic2etree import *
を記述することで利用可能としている。