Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(160)

Side by Side Diff: recipe_engine/package.py

Issue 2802693003: include Package proto into Result proto (Closed)
Patch Set: rebased and addressed comments Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « recipe_engine/loader.py ('k') | recipe_engine/result.proto » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2015 The LUCI Authors. All rights reserved. 1 # Copyright 2015 The LUCI Authors. All rights reserved.
2 # Use of this source code is governed under the Apache License, Version 2.0 2 # Use of this source code is governed under the Apache License, Version 2.0
3 # that can be found in the LICENSE file. 3 # that can be found in the LICENSE file.
4 4
5 import copy 5 import copy
6 import logging 6 import logging
7 import operator 7 import operator
8 import os 8 import os
9 import subprocess 9 import subprocess
10 import sys 10 import sys
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 def __eq__(self, other): 273 def __eq__(self, other):
274 if not isinstance(other, type(self)): 274 if not isinstance(other, type(self)):
275 return False 275 return False
276 return self._components() == other._components() 276 return self._components() == other._components()
277 277
278 278
279 class PathRepoSpec(RepoSpec): 279 class PathRepoSpec(RepoSpec):
280 """A RepoSpec implementation that uses a local filesystem path.""" 280 """A RepoSpec implementation that uses a local filesystem path."""
281 281
282 def __init__(self, project_id, path): 282 def __init__(self, project_id, path):
283 assert os.path.isabs(path), path
283 self.project_id = project_id 284 self.project_id = project_id
284 self.path = path 285 self.path = path
285 286
286 def __str__(self): 287 def __str__(self):
287 return ( 288 return (
288 'PathRepoSpec{project_id="%(project_id)s", path="%(path)s"}' 289 'PathRepoSpec{project_id="%(project_id)s", path="%(path)s"}'
289 % self.__dict__ 290 % self.__dict__
290 ) 291 )
291 292
292 def fetch(self): 293 def fetch(self):
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after
604 overrides=None): 605 overrides=None):
605 """Creates a PackageDeps object. 606 """Creates a PackageDeps object.
606 607
607 Arguments: 608 Arguments:
608 repo_root: the root of the repository containing this package. 609 repo_root: the root of the repository containing this package.
609 package_file: a PackageFile object corresponding to the repos recipes.cfg 610 package_file: a PackageFile object corresponding to the repos recipes.cfg
610 allow_fetch: whether to fetch dependencies rather than just checking for 611 allow_fetch: whether to fetch dependencies rather than just checking for
611 them. 612 them.
612 overrides: if not None, a dictionary of project overrides. Dictionary keys 613 overrides: if not None, a dictionary of project overrides. Dictionary keys
613 are the `project_id` field to override, and dictionary values 614 are the `project_id` field to override, and dictionary values
614 are the override path. 615 are the absolute override path.
615 """ 616 """
616 context = PackageContext.from_package_file( 617 context = PackageContext.from_package_file(
617 repo_root, package_file, allow_fetch, deps_path=deps_path) 618 repo_root, package_file, allow_fetch, deps_path=deps_path)
618 619
619 if overrides: 620 if overrides:
620 overrides = {project_id: PathRepoSpec(project_id, path) 621 overrides = {project_id: PathRepoSpec(project_id, path)
621 for project_id, path in overrides.iteritems()} 622 for project_id, path in overrides.iteritems()}
622 package_deps = cls(overrides=overrides) 623 package_deps = cls(overrides=overrides)
623 624
624 if allow_fetch: 625 if allow_fetch:
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
689 >>> d = { 'x': 1, 'y': 2 } 690 >>> d = { 'x': 1, 'y': 2 }
690 >>> sorted(_updated(d, { 'y': 3, 'z': 4 }).items()) 691 >>> sorted(_updated(d, { 'y': 3, 'z': 4 }).items())
691 [('x', 1), ('y', 3), ('z', 4)] 692 [('x', 1), ('y', 3), ('z', 4)]
692 >>> sorted(d.items()) 693 >>> sorted(d.items())
693 [('x', 1), ('y', 2)] 694 [('x', 1), ('y', 2)]
694 """ 695 """
695 696
696 d = copy.copy(d) 697 d = copy.copy(d)
697 d.update(updates) 698 d.update(updates)
698 return d 699 return d
OLDNEW
« no previous file with comments | « recipe_engine/loader.py ('k') | recipe_engine/result.proto » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698