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


Python Manifest.addentry方法代码示例

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


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

示例1: safe_classpath

# 需要导入模块: from pants.java.jar.manifest import Manifest [as 别名]
# 或者: from pants.java.jar.manifest.Manifest import addentry [as 别名]
def safe_classpath(classpath, synthetic_jar_dir):
  """Bundles classpath into one synthetic jar that includes original classpath in its manifest.

  This is to ensure classpath length never exceeds platform ARG_MAX.

  :param list classpath: Classpath to be bundled.
  :param string synthetic_jar_dir: directory to store the synthetic jar, if `None`
    a temp directory will be provided and cleaned up upon process exit. Otherwise synthetic
    jar will remain in the supplied directory, only for debugging purpose.

  :returns: A classpath (singleton list with just the synthetic jar).
  :rtype: list of strings
  """
  if synthetic_jar_dir:
    safe_mkdir(synthetic_jar_dir)
  else:
    synthetic_jar_dir = safe_mkdtemp()

  bundled_classpath = relativize_classpath(classpath, synthetic_jar_dir)

  manifest = Manifest()
  manifest.addentry(Manifest.CLASS_PATH, ' '.join(bundled_classpath))

  with temporary_file(root_dir=synthetic_jar_dir, cleanup=False, suffix='.jar') as jar_file:
    with open_zip(jar_file, mode='w', compression=ZIP_STORED) as jar:
      jar.writestr(Manifest.PATH, manifest.contents())
    return [jar_file.name]
开发者ID:dturner-tw,项目名称:pants,代码行数:29,代码来源:util.py

示例2: safe_classpath

# 需要导入模块: from pants.java.jar.manifest import Manifest [as 别名]
# 或者: from pants.java.jar.manifest.Manifest import addentry [as 别名]
def safe_classpath(classpath, synthetic_jar_dir, custom_name=None):
  """Bundles classpath into one synthetic jar that includes original classpath in its manifest.

  This is to ensure classpath length never exceeds platform ARG_MAX.

  :param list classpath: Classpath to be bundled.
  :param string synthetic_jar_dir: directory to store the synthetic jar, if `None`
    a temp directory will be provided and cleaned up upon process exit. Otherwise synthetic
    jar will remain in the supplied directory, only for debugging purpose.
  :param custom_name: filename of the synthetic jar to be created.

  :returns: A classpath (singleton list with just the synthetic jar).
  :rtype: list of strings
  """
  if synthetic_jar_dir:
    safe_mkdir(synthetic_jar_dir)
  else:
    synthetic_jar_dir = safe_mkdtemp()

  # Quote the paths so that if they contain reserved characters can be safely passed to JVM classloader.
  bundled_classpath = map(urllib.quote, relativize_classpath(classpath, synthetic_jar_dir))

  manifest = Manifest()
  manifest.addentry(Manifest.CLASS_PATH, ' '.join(bundled_classpath))

  with temporary_file(root_dir=synthetic_jar_dir, cleanup=False, suffix='.jar') as jar_file:
    with open_zip(jar_file, mode='w', compression=ZIP_STORED) as jar:
      jar.writestr(Manifest.PATH, manifest.contents())

    if custom_name:
      custom_path = os.path.join(synthetic_jar_dir, custom_name)
      safe_concurrent_rename(jar_file.name, custom_path)
      return [custom_path]
    else:
      return [jar_file.name]
开发者ID:baroquebobcat,项目名称:pants,代码行数:37,代码来源:util.py

示例3: bundled_classpath

# 需要导入模块: from pants.java.jar.manifest import Manifest [as 别名]
# 或者: from pants.java.jar.manifest.Manifest import addentry [as 别名]
def bundled_classpath(classpath):
  """Bundles classpath into one synthetic jar that includes original classpath in its manifest.

  See https://docs.oracle.com/javase/7/docs/technotes/guides/extensions/spec.html#bundled

  :param list classpath: Classpath to be bundled.

  :returns: A classpath (singleton list with just the synthetic jar).
  :rtype: list of strings
  """
  def prepare_url(url):
    url_in_bundle = os.path.realpath(url)
    # append '/' for directories, those not ending with '/' are assumed to be jars
    if os.path.isdir(url):
      url_in_bundle += '/'
    return url_in_bundle

  bundled_classpath = [prepare_url(url) for url in classpath]

  manifest = Manifest()
  manifest.addentry(Manifest.CLASS_PATH, ' '.join(bundled_classpath))

  with temporary_file(cleanup=False, suffix='.jar') as jar_file:
    with open_zip(jar_file, mode='w', compression=ZIP_STORED) as jar:
      jar.writestr(Manifest.PATH, manifest.contents())
    yield [jar_file.name]
开发者ID:Gabriel439,项目名称:pants,代码行数:28,代码来源:util.py

示例4: safe_classpath

# 需要导入模块: from pants.java.jar.manifest import Manifest [as 别名]
# 或者: from pants.java.jar.manifest.Manifest import addentry [as 别名]
def safe_classpath(classpath, synthetic_jar_dir):
  """Bundles classpath into one synthetic jar that includes original classpath in its manifest.

  This is to ensure classpath length never exceeds platform ARG_MAX. Original classpath are
  converted to URLs relative to synthetic jar path and saved in its manifest as attribute
  `Class-Path`. See
  https://docs.oracle.com/javase/7/docs/technotes/guides/extensions/spec.html#bundled

  :param list classpath: Classpath to be bundled.
  :param string synthetic_jar_dir: directory to store the synthetic jar, if `None`
    a temp directory will be provided and cleaned up upon process exit. Otherwise synthetic
    jar will remain in the supplied directory, only for debugging purpose.

  :returns: A classpath (singleton list with just the synthetic jar).
  :rtype: list of strings
  """
  def prepare_url(url, root_dir):
    url_in_bundle = os.path.relpath(os.path.realpath(url), os.path.realpath(root_dir))
    # append '/' for directories, those not ending with '/' are assumed to be jars
    if os.path.isdir(url):
      url_in_bundle += '/'
    return url_in_bundle

  if synthetic_jar_dir:
    safe_mkdir(synthetic_jar_dir)
  else:
    synthetic_jar_dir = safe_mkdtemp()
  bundled_classpath = [prepare_url(url, synthetic_jar_dir) for url in classpath]

  manifest = Manifest()
  manifest.addentry(Manifest.CLASS_PATH, ' '.join(bundled_classpath))

  with temporary_file(root_dir=synthetic_jar_dir, cleanup=False, suffix='.jar') as jar_file:
    with open_zip(jar_file, mode='w', compression=ZIP_STORED) as jar:
      jar.writestr(Manifest.PATH, manifest.contents())
    return [jar_file.name]
开发者ID:megaserg,项目名称:pants,代码行数:38,代码来源:util.py

示例5: _write_agent_manifest

# 需要导入模块: from pants.java.jar.manifest import Manifest [as 别名]
# 或者: from pants.java.jar.manifest.Manifest import addentry [as 别名]
 def _write_agent_manifest(agent, jar):
   # TODO(John Sirois): refactor an agent model to support 'Boot-Class-Path' properly.
   manifest = Manifest()
   manifest.addentry(Manifest.MANIFEST_VERSION, '1.0')
   if agent.premain:
     manifest.addentry('Premain-Class', agent.premain)
   if agent.agent_class:
     manifest.addentry('Agent-Class', agent.agent_class)
   if agent.can_redefine:
     manifest.addentry('Can-Redefine-Classes', 'true')
   if agent.can_retransform:
     manifest.addentry('Can-Retransform-Classes', 'true')
   if agent.can_set_native_method_prefix:
     manifest.addentry('Can-Set-Native-Method-Prefix', 'true')
   jar.writestr(Manifest.PATH, manifest.contents())
开发者ID:arloherrine,项目名称:pants,代码行数:17,代码来源:jar_task.py

示例6: test_nonascii_char

# 需要导入模块: from pants.java.jar.manifest import Manifest [as 别名]
# 或者: from pants.java.jar.manifest.Manifest import addentry [as 别名]
 def test_nonascii_char(self):
   manifest = Manifest()
   with self.assertRaises(UnicodeEncodeError):
     manifest.addentry('X-Copyright', '© 2015')
开发者ID:foursquare,项目名称:pants,代码行数:6,代码来源:test_manifest.py

示例7: test_too_long_entry

# 需要导入模块: from pants.java.jar.manifest import Manifest [as 别名]
# 或者: from pants.java.jar.manifest.Manifest import addentry [as 别名]
 def test_too_long_entry(self):
   manifest = Manifest()
   with self.assertRaises(ValueError):
     manifest.addentry(
       '1234567890123456789012345678901234567890'
       '12345678901234567890123456789', 'value')
开发者ID:foursquare,项目名称:pants,代码行数:8,代码来源:test_manifest.py

示例8: test_addentry

# 需要导入模块: from pants.java.jar.manifest import Manifest [as 别名]
# 或者: from pants.java.jar.manifest.Manifest import addentry [as 别名]
 def test_addentry(self):
   manifest = Manifest()
   manifest.addentry('Header', 'value')
   self.assertEquals(
     'Header: value\n', manifest.contents())
开发者ID:foursquare,项目名称:pants,代码行数:7,代码来源:test_manifest.py

示例9: test_isempty

# 需要导入模块: from pants.java.jar.manifest import Manifest [as 别名]
# 或者: from pants.java.jar.manifest.Manifest import addentry [as 别名]
 def test_isempty(self):
   manifest = Manifest()
   self.assertTrue(manifest.is_empty())
   manifest.addentry('Header', 'value')
   self.assertFalse(manifest.is_empty())
开发者ID:foursquare,项目名称:pants,代码行数:7,代码来源:test_manifest.py


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