# Path: easy_karabiner/util.py
# def read_python_file(pypath):
# def get_checksum(s):
# def escape_string(s):
# def encode_with_utf8(o):
# def is_hex(s):
# def is_list_or_tuple(obj):
# def split_ignore_quote(s):
# def remove_all_space(s):
# def is_xml_element_equal(node1, node2):
# def is_xml_tree_equal(tree1, tree2, ignore_tags=tuple()):
# def assert_xml_equal(xml_tree1, xml_tree2, ignore_tags=tuple()):
# def print_message(msg, color=None, err=False):
# def print_error(msg, print_stack=False):
# def print_warning(msg):
# def print_info(msg):
# 
# Path: easy_karabiner/query.py
# @classmethod
# def query(cls, value):
#     self = cls.get_instance()
#     for type in self.orders:
#         if self.is_in(type, value):
#             return type
#     return None


from easy_karabiner import __version__
from easy_karabiner import util
from easy_karabiner import query
from easy_karabiner.generator import *
              <appname>BILIBILI</appname>
              <equal>com.typcn.Bilibili</equal>
            </appdef>
            <deviceproductdef>
              <productname>3494</productname>
              <productid>0x0011</productid>
            </deviceproductdef>
            <devicevendordef>
              <vendorname>CHERRY</vendorname>
              <vendorid>0x046a</vendorid>
            </devicevendordef>
            <item>
              <name>Enable</name>
              <identifier>private.easy_karabiner</identifier>
              <block>
                <autogen> __KeyToKey__ KeyCode::COMMAND_L, KeyCode::OPTION_L</autogen>
              </block>
              <block>
                <device_only> DeviceVendor::CHERRY, DeviceProduct::3494 </device_only>
                <only>BILIBILI</only>
                <autogen> __KeyToKey__ KeyCode::OPTION_L, KeyCode::COMMAND_L </autogen>
              </block>
              <block>
                <device_not> DeviceVendor::APPLE_COMPUTER, DeviceProduct::ANY </device_not>
                <autogen> __FlipScrollWheel__ Option::FLIPSCROLLWHEEL_VERTICAL </autogen>
              </block>
            </item>
          </item>
        </root>
        '''.format(version=__version__)

# Path: easy_karabiner/util.py
# def read_python_file(pypath):
# def get_checksum(s):
# def escape_string(s):
# def encode_with_utf8(o):
# def is_hex(s):
# def is_list_or_tuple(obj):
# def split_ignore_quote(s):
# def remove_all_space(s):
# def is_xml_element_equal(node1, node2):
# def is_xml_tree_equal(tree1, tree2, ignore_tags=tuple()):
# def assert_xml_equal(xml_tree1, xml_tree2, ignore_tags=tuple()):
# def print_message(msg, color=None, err=False):
# def print_error(msg, print_stack=False):
# def print_warning(msg):
# def print_info(msg):
# 
# Path: easy_karabiner/query.py
# @classmethod
# def query(cls, value):
#     self = cls.get_instance()
#     for type in self.orders:
#         if self.is_in(type, value):
#             return type
#     return None


# Path: tests/test_generator.py
from easy_karabiner import __version__
from easy_karabiner import util
from easy_karabiner import query
from easy_karabiner.generator import *

              <appname>BILIBILI</appname>
              <equal>com.typcn.Bilibili</equal>
            </appdef>
            <deviceproductdef>
              <productname>3494</productname>
              <productid>0x0011</productid>
            </deviceproductdef>
            <devicevendordef>
              <vendorname>CHERRY</vendorname>
              <vendorid>0x046a</vendorid>
            </devicevendordef>
            <item>
              <name>Enable</name>
              <identifier>private.easy_karabiner</identifier>
              <block>
                <autogen> __KeyToKey__ KeyCode::COMMAND_L, KeyCode::OPTION_L</autogen>
              </block>
              <block>
                <device_only> DeviceVendor::CHERRY, DeviceProduct::3494 </device_only>
                <only>BILIBILI</only>
                <autogen> __KeyToKey__ KeyCode::OPTION_L, KeyCode::COMMAND_L </autogen>
              </block>
              <block>
                <device_not> DeviceVendor::APPLE_COMPUTER, DeviceProduct::ANY </device_not>
                <autogen> __FlipScrollWheel__ Option::FLIPSCROLLWHEEL_VERTICAL </autogen>
              </block>
            </item>
          </item>
        </root>
        '''.format(version=__version__)

    util.assert_xml_equal(g, s)