Gentoo Archives: gentoo-commits

From: "André Erdmann" <dywi@×××××××.de>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/R_overlay:master commit in: roverlay/overlay/
Date: Thu, 29 Aug 2013 12:36:38
Message-Id: 1377779294.5e738c15639dddb86446e5c749d2c986f4350580.dywi@gentoo
1 commit: 5e738c15639dddb86446e5c749d2c986f4350580
2 Author: André Erdmann <dywi <AT> mailerd <DOT> de>
3 AuthorDate: Thu Aug 29 12:28:14 2013 +0000
4 Commit: André Erdmann <dywi <AT> mailerd <DOT> de>
5 CommitDate: Thu Aug 29 12:28:14 2013 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=5e738c15
7
8 common base object for Overlay,Category,...
9
10 ---
11 roverlay/overlay/base.py | 34 ++++++++++++++++++++++++++++++++++
12 roverlay/overlay/category.py | 10 +++++-----
13 roverlay/overlay/root.py | 12 ++++++------
14 3 files changed, 45 insertions(+), 11 deletions(-)
15
16 diff --git a/roverlay/overlay/base.py b/roverlay/overlay/base.py
17 new file mode 100644
18 index 0000000..b380e8f
19 --- /dev/null
20 +++ b/roverlay/overlay/base.py
21 @@ -0,0 +1,34 @@
22 +# R overlay -- overlay package, overlay base object
23 +# -*- coding: utf-8 -*-
24 +# Copyright (C) 2013 André Erdmann <dywi@×××××××.de>
25 +# Distributed under the terms of the GNU General Public License;
26 +# either version 2 of the License, or (at your option) any later version.
27 +
28 +import logging
29 +
30 +import roverlay.util.objects
31 +
32 +class OverlayObject ( roverlay.util.objects.ReferenceTree ):
33 +
34 + # always keep a (weak) reference to self:
35 + # (a) Overlay: multiple Category objects use this ref
36 + # (b) Category: ^ PackageDir ...
37 + # (c) PackageDir: ^ PackageInfo ...
38 + #
39 + CACHE_REF = True
40 +
41 + def __init__ ( self, name, logger, directory, parent ):
42 + super ( OverlayObject, self ).__init__ ( parent )
43 + self.name = name
44 + self.logger = (
45 + logger.getChild ( name ) if logger else logging.getLogger ( name )
46 + )
47 + self.physical_location = directory
48 + # --- end of __init__ (...) ---
49 +
50 + # inherited:
51 + #def get_parent
52 + #def get_upper
53 + #def get_ref
54 +
55 +# --- end of OverlayObject ---
56
57 diff --git a/roverlay/overlay/category.py b/roverlay/overlay/category.py
58 index 2fc3a4f..d2b2028 100644
59 --- a/roverlay/overlay/category.py
60 +++ b/roverlay/overlay/category.py
61 @@ -27,6 +27,7 @@ except ImportError:
62 import roverlay.stats.collector
63
64 import roverlay.overlay.pkgdir.base
65 +import roverlay.overlay.base
66 ##import roverlay.overlay.pkgdir.packagedir_ebuildmanifest
67 ##import roverlay.overlay.pkgdir.packagedir_newmanifest
68
69 @@ -77,14 +78,14 @@ class WriteQueueJob ( object ):
70
71 # --- end of WriteQueueJob ---
72
73 -class Category ( object ):
74 +class Category ( roverlay.overlay.base.OverlayObject ):
75
76 WRITE_JOBCOUNT = 3
77
78 STATS = roverlay.stats.collector.static.overlay
79
80 def __init__ ( self,
81 - name, logger, directory, get_header, runtime_incremental
82 + name, logger, directory, get_header, runtime_incremental, parent
83 ):
84 """Initializes a overlay/portage category (such as 'app-text', 'sci-R').
85
86 @@ -95,12 +96,11 @@ class Category ( object ):
87 * get_header -- function that returns an ebuild header
88 * runtime_incremental -- enable/disable runtime incremental writing
89 for this category (and all created PackageDirs)
90 + * parent -- overlay object that created/creates this object
91 """
92 - self.logger = logger.getChild ( name )
93 - self.name = name
94 + super ( Category, self ).__init__ ( name, logger, directory, parent )
95 self._lock = threading.RLock()
96 self._subdirs = dict()
97 - self.physical_location = directory
98 self.get_header = get_header
99 self.runtime_incremental = runtime_incremental
100 self.packagedir_cls = roverlay.overlay.pkgdir.base.get_class()
101
102 diff --git a/roverlay/overlay/root.py b/roverlay/overlay/root.py
103 index 6e3b1d7..1a07091 100644
104 --- a/roverlay/overlay/root.py
105 +++ b/roverlay/overlay/root.py
106 @@ -27,15 +27,15 @@ import threading
107 import roverlay.config
108 import roverlay.util
109 import roverlay.overlay.additionsdir
110 +import roverlay.overlay.base
111 import roverlay.overlay.category
112 import roverlay.overlay.header
113 import roverlay.overlay.pkgdir.base
114 import roverlay.overlay.pkgdir.distroot.static
115
116 -class Overlay ( object ):
117 +class Overlay ( roverlay.overlay.base.OverlayObject ):
118 DEFAULT_USE_DESC = (
119 'byte-compile - enable byte compiling\n'
120 - 'R_suggests - install recommended packages'
121 )
122
123 @classmethod
124 @@ -124,9 +124,8 @@ class Overlay ( object ):
125 * keep_n_ebuilds -- number of ebuilds to keep (per package),
126 any "false" Value (None, 0, ...) disables this
127 """
128 - self.name = name
129 - self.logger = logger.getChild ( 'overlay' )
130 - self.physical_location = directory
131 + super ( Overlay, self ).__init__ ( name, logger, directory, None )
132 +
133 self.default_category = default_category
134
135 self._eclass_files = eclass_files
136 @@ -203,7 +202,8 @@ class Overlay ( object ):
137 self.logger,
138 self.physical_location + os.sep + category,
139 get_header=self._header.get,
140 - runtime_incremental=self._runtime_incremental
141 + runtime_incremental=self._runtime_incremental,
142 + parent=self,
143 )
144 self._categories [category] = newcat
145 finally: