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


Python _markerlib.compile方法代码示例

本文整理汇总了Python中_markerlib.compile方法的典型用法代码示例。如果您正苦于以下问题:Python _markerlib.compile方法的具体用法?Python _markerlib.compile怎么用?Python _markerlib.compile使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在_markerlib的用法示例。


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

示例1: _compute_dependencies

# 需要导入模块: import _markerlib [as 别名]
# 或者: from _markerlib import compile [as 别名]
def _compute_dependencies(self):
        """Recompute this distribution's dependencies."""
        from _markerlib import compile as compile_marker
        dm = self.__dep_map = {None: []}

        reqs = []
        # Including any condition expressions
        for req in self._parsed_pkg_info.get_all('Requires-Dist') or []:
            distvers, mark = self._preparse_requirement(req)
            parsed = next(parse_requirements(distvers))
            parsed.marker_fn = compile_marker(mark)
            reqs.append(parsed)

        def reqs_for_extra(extra):
            for req in reqs:
                if req.marker_fn(override={'extra':extra}):
                    yield req

        common = frozenset(reqs_for_extra(None))
        dm[None].extend(common)

        for extra in self._parsed_pkg_info.get_all('Provides-Extra') or []:
            extra = safe_extra(extra.strip())
            dm[extra] = list(frozenset(reqs_for_extra(extra)) - common)

        return dm 
开发者ID:MayOneUS,项目名称:pledgeservice,代码行数:28,代码来源:pkg_resources.py

示例2: test_markers

# 需要导入模块: import _markerlib [as 别名]
# 或者: from _markerlib import compile [as 别名]
def test_markers(self):
        from _markerlib import interpret, default_environment, compile
        
        os_name = os.name
        
        self.assertTrue(interpret(""))
        
        self.assertTrue(interpret("os.name != 'buuuu'"))
        self.assertTrue(interpret("os_name != 'buuuu'"))
        self.assertTrue(interpret("python_version > '1.0'"))
        self.assertTrue(interpret("python_version < '5.0'"))
        self.assertTrue(interpret("python_version <= '5.0'"))
        self.assertTrue(interpret("python_version >= '1.0'"))
        self.assertTrue(interpret("'%s' in os.name" % os_name))
        self.assertTrue(interpret("'%s' in os_name" % os_name))
        self.assertTrue(interpret("'buuuu' not in os.name"))
        
        self.assertFalse(interpret("os.name == 'buuuu'"))
        self.assertFalse(interpret("os_name == 'buuuu'"))
        self.assertFalse(interpret("python_version < '1.0'"))
        self.assertFalse(interpret("python_version > '5.0'"))
        self.assertFalse(interpret("python_version >= '5.0'"))
        self.assertFalse(interpret("python_version <= '1.0'"))
        self.assertFalse(interpret("'%s' not in os.name" % os_name))
        self.assertFalse(interpret("'buuuu' in os.name and python_version >= '5.0'"))    
        self.assertFalse(interpret("'buuuu' in os_name and python_version >= '5.0'"))    
        
        environment = default_environment()
        environment['extra'] = 'test'
        self.assertTrue(interpret("extra == 'test'", environment))
        self.assertFalse(interpret("extra == 'doc'", environment))
        
        def raises_nameError():
            try:
                interpret("python.version == '42'")
            except NameError:
                pass
            else:
                raise Exception("Expected NameError")
        
        raises_nameError()
        
        def raises_syntaxError():
            try:
                interpret("(x for x in (4,))")
            except SyntaxError:
                pass
            else:
                raise Exception("Expected SyntaxError")
            
        raises_syntaxError()
        
        statement = "python_version == '5'"
        self.assertEqual(compile(statement).__doc__, statement) 
开发者ID:MayOneUS,项目名称:pledgeservice,代码行数:56,代码来源:test_markerlib.py


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