当前位置: 首页>>代码示例>>Python>>正文


Python xpath.XPath类代码示例

本文整理汇总了Python中corehq.apps.app_manager.xpath.XPath的典型用法代码示例。如果您正苦于以下问题:Python XPath类的具体用法?Python XPath怎么用?Python XPath使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了XPath类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: _add_action_to_detail

    def _add_action_to_detail(self, detail, module):
        # add form action to detail
        form = self.app.get_form(module.case_list_form.form_id)

        if self.app.enable_localized_menu_media:
            case_list_form = module.case_list_form
            detail.action = LocalizedAction(
                menu_locale_id=id_strings.case_list_form_locale(module),
                media_image=bool(len(case_list_form.all_image_paths())),
                media_audio=bool(len(case_list_form.all_audio_paths())),
                image_locale_id=id_strings.case_list_form_icon_locale(module),
                audio_locale_id=id_strings.case_list_form_audio_locale(module),
                stack=Stack(),
                for_action_menu=True,
            )
        else:
            detail.action = Action(
                display=Display(
                    text=Text(locale_id=id_strings.case_list_form_locale(module)),
                    media_image=module.case_list_form.default_media_image,
                    media_audio=module.case_list_form.default_media_audio,
                ),
                stack=Stack()
            )

        frame = PushFrame()
        frame.add_command(XPath.string(id_strings.form_command(form)))

        target_form_dm = self.entries_helper.get_datums_meta_for_form_generic(form)
        source_form_dm = self.entries_helper.get_datums_meta_for_form_generic(module.get_form(0))
        for target_meta in target_form_dm:
            if target_meta.requires_selection:
                # This is true for registration forms where the case being created is a subcase
                try:
                    [source_dm] = [
                        source_meta for source_meta in source_form_dm
                        if source_meta.case_type == target_meta.case_type
                    ]
                except ValueError:
                    message = _(
                        "The '{form}' form selected as the case list registration form "
                        "for the '{module}' module requires a '{case_type}' case. "
                        "The '{module}' must load a case of this type.").format(
                        form=form.default_name(),
                        module=module.default_name(),
                        case_type=target_meta.case_type
                    )
                    raise SuiteValidationError(message)
                else:
                    frame.add_datum(StackDatum(
                        id=target_meta.datum.id,
                        value=session_var(source_dm.datum.id))
                    )
            else:
                s_datum = target_meta.datum
                frame.add_datum(StackDatum(id=s_datum.id, value=s_datum.function))

        frame.add_datum(StackDatum(id=RETURN_TO, value=XPath.string(id_strings.menu_id(module))))
        detail.action.stack.add_frame(frame)
开发者ID:tlwakwella,项目名称:commcare-hq,代码行数:59,代码来源:details.py

示例2: owner_name

 def owner_name(owner_id):
     groups = XPath(u"instance('groups')/groups/group")
     group = groups.select("@id", owner_id)
     return XPath.if_(
         group.count().neq(0),
         group.slash("name"),
         XPath.if_(CommCareSession.userid.eq(owner_id), CommCareSession.username, XPath.string("")),
     )
开发者ID:dimagi,项目名称:commcare-hq,代码行数:8,代码来源:detail_screen.py

示例3: get_if_clause

 def get_if_clause(case_count_xpath, target_command):
     return_to = session_var(RETURN_TO)
     args = [
         return_to.count().eq(1),
         return_to.eq(XPath.string(target_command)),
     ]
     if case_count_xpath:
         args.append(case_count_xpath)
     return XPath.and_(*args)
开发者ID:kkrampa,项目名称:commcare-hq,代码行数:9,代码来源:workflow.py

示例4: test_complex

 def test_complex(self):
     xp = XPath.and_(
         XPath('a').eq('1'),
         XPath('b').neq(XPath.string('')),
         XPath.or_(
             XPath('c').eq(XPath.string('')),
             XPath.date('d').neq('today()')
         ))
     self.assertEqual("a = 1 and b != '' and (c = '' or date(d) != today())", xp)
开发者ID:saketkanth,项目名称:commcare-hq,代码行数:9,代码来源:test_xpath.py

示例5: _get_reg_form_action

    def _get_reg_form_action(self, module):
        """
        Returns registration form action
        """
        form = self.app.get_form(module.case_list_form.form_id)

        if self.app.enable_localized_menu_media:
            case_list_form = module.case_list_form
            action = LocalizedAction(
                menu_locale_id=id_strings.case_list_form_locale(module),
                media_image=bool(len(case_list_form.all_image_paths())),
                media_audio=bool(len(case_list_form.all_audio_paths())),
                image_locale_id=id_strings.case_list_form_icon_locale(module),
                audio_locale_id=id_strings.case_list_form_audio_locale(module),
                stack=Stack(),
                for_action_menu=True,
            )
        else:
            action = Action(
                display=Display(
                    text=Text(locale_id=id_strings.case_list_form_locale(module)),
                    media_image=module.case_list_form.default_media_image,
                    media_audio=module.case_list_form.default_media_audio,
                ),
                stack=Stack()
            )

        frame = PushFrame()
        frame.add_command(XPath.string(id_strings.form_command(form)))

        target_form_dm = self.entries_helper.get_datums_meta_for_form_generic(form)
        source_form_dm = []
        if len(module.forms):
            source_form_dm = self.entries_helper.get_datums_meta_for_form_generic(module.get_form(0))
        for target_meta in target_form_dm:
            if target_meta.requires_selection:
                # This is true for registration forms where the case being created is a subcase
                try:
                    [source_dm] = [
                        source_meta for source_meta in source_form_dm
                        if source_meta.case_type == target_meta.case_type
                    ]
                except ValueError:
                    pass
                else:
                    frame.add_datum(StackDatum(
                        id=target_meta.datum.id,
                        value=session_var(source_dm.datum.id))
                    )
            else:
                s_datum = target_meta.datum
                frame.add_datum(StackDatum(id=s_datum.id, value=s_datum.function))

        frame.add_datum(StackDatum(id=RETURN_TO, value=XPath.string(id_strings.menu_id(module))))
        action.stack.add_frame(frame)
        return action
开发者ID:kkrampa,项目名称:commcare-hq,代码行数:56,代码来源:details.py

示例6: owner_name

 def owner_name(owner_id):
     groups = XPath(u"instance('groups')/groups/group")
     group = groups.select('@id', owner_id)
     return XPath.if_(
         group.count().not_equals(0),
         group.slash('name'),
         XPath.if_(
             CommCareSession.userid.equals(owner_id),
             CommCareSession.username,
             XPath.string('')
         )
     )
开发者ID:NoahCarnahan,项目名称:commcare-hq,代码行数:12,代码来源:detail_screen.py

示例7: get_userdata_autoselect

 def get_userdata_autoselect(key, session_id, mode):
     base_xpath = session_var("data", path="user")
     xpath = session_var(key, path="user/data")
     protected_xpath = XPath.if_(
         XPath.and_(base_xpath.count().eq(1), xpath.count().eq(1)), xpath, XPath.empty_string()
     )
     datum = SessionDatum(id=session_id, function=protected_xpath)
     assertions = [
         EntriesHelper.get_assertion(
             XPath.and_(base_xpath.count().eq(1), xpath.count().eq(1)),
             "case_autoload.{0}.property_missing".format(mode),
             [key],
         ),
         EntriesHelper.get_assertion(
             CaseIDXPath(xpath).case().count().eq(1), "case_autoload.{0}.case_missing".format(mode)
         ),
     ]
     return datum, assertions
开发者ID:johan--,项目名称:commcare-hq,代码行数:18,代码来源:entries.py

示例8: _add_case_search_action_to_detail

 def _add_case_search_action_to_detail(detail, module):
     detail.action = Action(
         display=Display(
             text=Text(locale_id=id_strings.case_search_locale(module))
         ),
         stack=Stack()
     )
     frame = PushFrame()
     frame.add_command(XPath.string(id_strings.search_command(module)))
     detail.action.stack.add_frame(frame)
开发者ID:saketkanth,项目名称:commcare-hq,代码行数:10,代码来源:details.py

示例9: to_frame

    def to_frame(self):
        if not self.children and not self.allow_empty_frame:
            return

        frame = CreateFrame(if_clause=self.if_clause)

        for child in self.children:
            if isinstance(child, CommandId):
                frame.add_command(XPath.string(child.id))
            elif isinstance(child, StackDatum):
                frame.add_datum(child)
            else:
                raise Exception("Unexpected child type: {} ({})".format(type(child), child))

        return frame
开发者ID:saketkanth,项目名称:commcare-hq,代码行数:15,代码来源:workflow.py

示例10: _get_case_search_action

 def _get_case_search_action(module):
     relevant_kwarg = {}
     if module.search_config.search_button_display_condition:
         relevant_kwarg = dict(
             relevant=XPath(module.search_config.search_button_display_condition),
         )
     action = Action(
         display=Display(
             text=Text(locale_id=id_strings.case_search_locale(module))
         ),
         stack=Stack(),
         **relevant_kwarg
     )
     frame = PushFrame()
     frame.add_mark()
     frame.add_command(XPath.string(id_strings.search_command(module)))
     action.stack.add_frame(frame)
     return action
开发者ID:kkrampa,项目名称:commcare-hq,代码行数:18,代码来源:details.py

示例11: test_paren

 def test_paren(self):
     xp = XPath('/data/q1')
     self.assertEqual('/data/q1', xp.paren())
     self.assertEqual('(/data/q1)', xp.paren(force=True))
     self.assertEqual('(/data/q1)', XPath('/data/q1', compound=True).paren())
开发者ID:saketkanth,项目名称:commcare-hq,代码行数:5,代码来源:test_xpath.py

示例12: test_int

 def test_int(self):
     self.assertEqual('int(a)', XPath.int('a'))
开发者ID:saketkanth,项目名称:commcare-hq,代码行数:2,代码来源:test_xpath.py

示例13: test_date

 def test_date(self):
     self.assertEqual('date(a)', XPath.date('a'))
开发者ID:saketkanth,项目名称:commcare-hq,代码行数:2,代码来源:test_xpath.py

示例14: test_not

 def test_not(self):
     self.assertEqual('not a', XPath.not_('a'))
     self.assertEqual('not (a or b)', XPath.not_(XPath.or_('a', 'b')))
开发者ID:saketkanth,项目名称:commcare-hq,代码行数:3,代码来源:test_xpath.py

示例15: test_and_or

    def test_and_or(self):
        self.assertEqual('a and b and c', XPath.and_('a', 'b', 'c'))
        self.assertEqual('a and (b and c)', XPath.and_('a', XPath.and_('b', 'c')))

        self.assertEqual('a or b or c', XPath.or_('a', 'b', 'c'))
        self.assertEqual('(a or b) or c', XPath.or_(XPath.or_('a', 'b'), XPath('c')))
开发者ID:saketkanth,项目名称:commcare-hq,代码行数:6,代码来源:test_xpath.py


注:本文中的corehq.apps.app_manager.xpath.XPath类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。