本文整理汇总了Python中twitter.pants.base.build_environment.get_buildroot函数的典型用法代码示例。如果您正苦于以下问题:Python get_buildroot函数的具体用法?Python get_buildroot怎么用?Python get_buildroot使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了get_buildroot函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: configure_python
def configure_python(self, source_roots, test_roots, lib_roots):
self.py_sources.extend(SourceSet(get_buildroot(), root, None, False) for root in source_roots)
self.py_sources.extend(SourceSet(get_buildroot(), root, None, True) for root in test_roots)
for root in lib_roots:
for path in os.listdir(os.path.join(get_buildroot(), root)):
if os.path.isdir(os.path.join(get_buildroot(), root, path)) or path.endswith('.egg'):
self.py_libs.append(SourceSet(get_buildroot(), root, path, False))
示例2: create_parser
def create_parser(defaults=None):
"""Creates a config parser that supports %([key-name])s value substitution.
Any defaults supplied will act as if specified in the loaded config file's DEFAULT section and
be available for substitutions.
All of the following are seeded with defaults in the config
user: the current user
homedir: the current user's home directory
buildroot: the root of this repo
pants_bootstrapdir: the global pants scratch space primarily used for caches
pants_supportdir: pants support files for this repo go here; for example: ivysettings.xml
pants_distdir: user visible artifacts for this repo go here
pants_workdir: the scratch space used to for live builds in this repo
"""
standard_defaults = dict(
buildroot=get_buildroot(),
homedir=os.path.expanduser('~'),
user=getpass.getuser(),
pants_bootstrapdir=os.path.expanduser('~/.pants.d'),
pants_workdir=os.path.join(get_buildroot(), '.pants.d'),
pants_supportdir=os.path.join(get_buildroot(), 'build-support'),
pants_distdir=os.path.join(get_buildroot(), 'dist')
)
if defaults:
standard_defaults.update(defaults)
return ConfigParser.SafeConfigParser(standard_defaults)
示例3: _tempname
def _tempname(self):
# don't assume the user's cwd is buildroot
buildroot = get_buildroot()
fallback = os.path.join(get_buildroot(), '.pants.d')
pants_workdir = self.context.config.getdefault('pants_workdir', default=fallback)
tmp_dir = os.path.join(pants_workdir, 'tmp')
safe_mkdir(tmp_dir)
fd, path = tempfile.mkstemp(dir=tmp_dir, prefix='')
os.close(fd)
return path
示例4: sourcejar
def sourcejar(self, jvm_targets, add_genjar):
for target in jvm_targets:
jar_name = jarname(target, '-sources.jar')
add_genjar(target, jar_name)
jar_path = os.path.join(self._output_dir, jar_name)
with self.create_jar(target, jar_path) as jar:
for source in target.sources:
jar.write(os.path.join(get_buildroot(), target.target_base, source), source)
if target.has_resources:
for resources in target.resources:
for resource in resources.sources:
jar.write(os.path.join(get_buildroot(), resources.target_base, resource), resource)
示例5: _register
def _register(cls, source_root_dir, *allowed_target_types):
"""Registers a source root.
:source_root_dir The source root directory against which we resolve source paths,
relative to the build root.
:allowed_target_types Optional list of target types. If specified, we enforce that
only targets of those types appear under this source root.
"""
# Verify that source_root_dir doesn't reach outside buildroot.
buildroot = get_buildroot()
if source_root_dir.startswith(buildroot):
abspath = os.path.normpath(source_root_dir)
else:
abspath = os.path.normpath(os.path.join(buildroot, source_root_dir))
if not abspath.startswith(buildroot):
raise ValueError('Source root %s is not under the build root %s' % (abspath, buildroot))
source_root_dir = os.path.relpath(abspath, buildroot)
types = cls._TYPES_BY_ROOT.get(source_root_dir)
if types is None:
types = OrderedSet()
cls._TYPES_BY_ROOT[source_root_dir] = types
for allowed_target_type in allowed_target_types:
types.add(allowed_target_type)
roots = cls._ROOTS_BY_TYPE.get(allowed_target_type)
if roots is None:
roots = OrderedSet()
cls._ROOTS_BY_TYPE[allowed_target_type] = roots
roots.add(source_root_dir)
示例6: split
def split(self, splits, catchall=False):
buildroot = get_buildroot()
src_to_split_idx = {}
for i, split in enumerate(splits):
for s in split:
src_to_split_idx[s if os.path.isabs(s) else os.path.join(buildroot, s)] = i
num_outputs = len(splits) + 1 if catchall else len(splits)
catchall_idx = len(splits) if catchall else -1
split_pcd_entries = []
split_src_to_deps = []
for _ in xrange(0, num_outputs):
split_pcd_entries.append([])
split_src_to_deps.append({})
for pcd_entry in self.pcd_entries:
split_idx = src_to_split_idx.get(pcd_entry[1], catchall_idx)
if split_idx != -1:
split_pcd_entries[split_idx].append(pcd_entry)
for src, deps in self.src_to_deps.items():
split_idx = src_to_split_idx.get(src, catchall_idx)
if split_idx != -1:
split_src_to_deps[split_idx][src] = deps
return [JMakeAnalysis(x, y) for x, y in zip(split_pcd_entries, split_src_to_deps)]
示例7: run_server
def run_server(reporting_queue):
def report_launch(actual_port):
reporting_queue.put(
'Launching server with pid %d at http://localhost:%d' % (os.getpid(), actual_port))
def done_reporting():
reporting_queue.put(DONE)
try:
# We mustn't block in the child, because the multiprocessing module enforces that the
# parent either kills or joins to it. Instead we fork a grandchild that inherits the queue
# but is allowed to block indefinitely on the server loop.
if not os.fork():
# Child process.
info_dir = RunInfo.dir(self.context.config)
# If these are specified explicitly in the config, use those. Otherwise
# they will be None, and we'll use the ones baked into this package.
template_dir = self.context.config.get('reporting', 'reports_template_dir')
assets_dir = self.context.config.get('reporting', 'reports_assets_dir')
settings = ReportingServer.Settings(info_dir=info_dir, template_dir=template_dir,
assets_dir=assets_dir, root=get_buildroot(),
allowed_clients=self.context.options.allowed_clients)
server = ReportingServer(self.context.options.port, settings)
actual_port = server.server_port()
ReportingServerManager.save_current_server_port(actual_port)
report_launch(actual_port)
done_reporting()
# Block forever here.
server.start()
except socket.error:
done_reporting()
raise
示例8: configure_project
def configure_project(self, targets, checkstyle_suppression_files, debug_port):
jvm_targets = Target.extract_jvm_targets(targets)
if self.intransitive:
jvm_targets = set(self.context.target_roots).intersection(jvm_targets)
project = Project(self.project_name,
self.python,
self.skip_java,
self.skip_scala,
get_buildroot(),
checkstyle_suppression_files,
debug_port,
jvm_targets,
not self.intransitive,
self.context.new_workunit)
if self.python:
python_source_paths = self.context.config.getlist('ide', 'python_source_paths', default=[])
python_test_paths = self.context.config.getlist('ide', 'python_test_paths', default=[])
python_lib_paths = self.context.config.getlist('ide', 'python_lib_paths', default=[])
project.configure_python(python_source_paths, python_test_paths, python_lib_paths)
extra_source_paths = self.context.config.getlist('ide', 'extra_jvm_source_paths', default=[])
extra_test_paths = self.context.config.getlist('ide', 'extra_jvm_test_paths', default=[])
all_targets = project.configure_jvm(extra_source_paths, extra_test_paths)
return all_targets, project
示例9: _run_thrift
def _run_thrift(self, source, bases):
thrift_file = source
thrift_abs_path = os.path.abspath(os.path.join(self.root, thrift_file))
args = [
select_thrift_binary(self.config),
'--gen',
'py:new_style',
'-recurse',
'-o',
self.codegen_root
]
# Add bases as include paths to try. Note that include paths and compile targets
# should be uniformly relative, or uniformly absolute (in this case the latter).
for base in bases:
args.extend(('-I', os.path.join(get_buildroot(), base)))
args.append(thrift_abs_path)
po = subprocess.Popen(args, cwd=self.chroot.path())
rv = po.wait()
if rv != 0:
comm = po.communicate()
print('thrift generation failed!', file=sys.stderr)
print('STDOUT', file=sys.stderr)
print(comm[0], file=sys.stderr)
print('STDERR', file=sys.stderr)
print(comm[1], file=sys.stderr)
return rv == 0
示例10: __init__
def __init__(self, context, nailgun_task, jvm_args, color, bootstrap_utils):
self.context = context
self._nailgun_task = nailgun_task # We run zinc on this task's behalf.
self._jvm_args = jvm_args
self._color = color
self._bootstrap_utils = bootstrap_utils
self._pants_home = get_buildroot()
# The target scala version.
self._compile_bootstrap_key = 'scalac'
compile_bootstrap_tools = context.config.getlist('scala-compile', 'compile-bootstrap-tools',
default=[':scala-compile-2.9.3'])
self._bootstrap_utils.register_jvm_build_tools(self._compile_bootstrap_key, compile_bootstrap_tools)
# The zinc version (and the scala version it needs, which may differ from the target version).
self._zinc_bootstrap_key = 'zinc'
zinc_bootstrap_tools = context.config.getlist('scala-compile', 'zinc-bootstrap-tools', default=[':zinc'])
self._bootstrap_utils.register_jvm_build_tools(self._zinc_bootstrap_key, zinc_bootstrap_tools)
# Compiler plugins.
plugins_bootstrap_tools = context.config.getlist('scala-compile', 'scalac-plugin-bootstrap-tools',
default=[])
if plugins_bootstrap_tools:
self._plugins_bootstrap_key = 'plugins'
self._bootstrap_utils.register_jvm_build_tools(self._plugins_bootstrap_key, plugins_bootstrap_tools)
else:
self._plugins_bootstrap_key = None
self._main = context.config.get('scala-compile', 'main')
# For localizing/relativizing analysis files.
self._java_home = context.java_home
self._ivy_home = context.ivy_home
示例11: _owning_targets
def _owning_targets(self, path):
for build_file in self._candidate_owners(path):
is_build_file = (build_file.full_path == os.path.join(get_buildroot(), path))
for address in Target.get_all_addresses(build_file):
target = Target.get(address)
if target and (is_build_file or (target.has_sources() and self._owns(target, path))):
yield target
示例12: __init__
def __init__(self, context, **kwargs):
super(ListTargets, self).__init__(context, **kwargs)
self._provides = context.options.list_provides
self._provides_columns = context.options.list_provides_columns
self._documented = context.options.list_documented
self._root_dir = get_buildroot()
示例13: find
def find(target):
"""Finds the source root for the given target. If none is registered, the parent
directory of the target's BUILD file is returned.
"""
target_path = os.path.relpath(target.address.buildfile.parent_path, get_buildroot())
def _find():
for typ in target.__class__.mro():
for root in SourceRoot._ROOTS_BY_TYPE.get(typ, ()):
if target_path.startswith(root):
return root
# Try already registered roots
root = _find()
if root:
return root
# Fall back to searching the ancestor path for a root
for buildfile in reversed(target.address.buildfile.ancestors()):
if buildfile not in SourceRoot._SEARCHED:
SourceRoot._SEARCHED.add(buildfile)
ParseContext(buildfile).parse()
root = _find()
if root:
return root
# Finally, resolve files relative to the BUILD file parent dir as the target base
return target_path
示例14: __init__
def __init__(self, configparser, configpath):
# Base Config
self.configparser = configparser
with open(configpath) as ini:
self.configparser.readfp(ini, filename=configpath)
self.file = configpath
# Overrides
#
# This feature allows a second configuration file which will override
# pants.ini to be specified. The file is currently specified via an env
# variable because the cmd line flags are parsed after config is loaded.
#
# The main use of the extra file is to have different settings based on
# the environment. For example, the setting used to compile or locations
# of caches might be different between a developer's local environment
# and the environment used to build and publish artifacts (e.g. Jenkins)
#
# The files cannot reference each other's values, so make sure each one is
# internally consistent
self.overrides_path = os.environ.get('PANTS_CONFIG_OVERRIDE')
self.overrides_parser = None
if self.overrides_path is not None:
self.overrides_path = os.path.join(get_buildroot(), self.overrides_path)
self.overrides_parser = Config.create_parser()
with open(self.overrides_path) as o_ini:
self.overrides_parser.readfp(o_ini, filename=self.overrides_path)
示例15: make_build_properties
def make_build_properties(cls):
pi = PythonInterpreter()
base_info = {
'class': pi.identity().interpreter,
'version': pi.identity().version,
'platform': get_platform(),
}
try:
from twitter.pants.base.build_environment import get_buildroot, get_scm
buildroot = get_buildroot()
scm = get_scm()
now = localtime()
if scm:
revision = scm.commit_id
tag = scm.tag_name or 'none'
branchname = scm.branch_name or revision
else:
revision = 'unknown'
tag = 'none'
branchname = 'unknown'
base_info.update({
'date': strftime('%A %b %d, %Y', now),
'time': strftime('%H:%M:%S', now),
'timestamp': strftime('%m.%d.%Y %H:%M', now),
'branch': branchname,
'tag': tag,
'sha': revision,
'user': getpass.getuser(),
'machine': socket.gethostname(),
'path': buildroot
})
except ImportError:
pass
return base_info