Skip to content
Snippets Groups Projects
Commit 4381445f authored by Paweł Szostek's avatar Paweł Szostek
Browse files

Make SourceFileSet iterable

parent 896aa29d
Branches
Tags
No related merge requests found
# -*- coding: utf-8 -*-
import msg as p
......@@ -60,7 +61,8 @@ class DependencySolver:
fset[idx] = fset[idx][1]
if(n_iter == max_iter):
p.vprint("Maximum number of iterations reached when trying to solve the dependencies. Perhaps a cyclic inter-dependency problem...");
p.rawprint("Maximum number of iterations reached when trying to solve the dependencies."+
"Perhaps a cyclic inter-dependency problem...");
return None
for f in fset:
......
......@@ -20,12 +20,9 @@ from fetch import *
def main():
# print("Start");
global_mod.t0 = time.time()
parser = optparse.OptionParser()
#disabled due to introducing a new parser class. Help msg printing is not ready yet.
parser.add_option("--manifest-help", action="store_true",
dest="manifest_help", help="print manifest file variables description")
......
# -*- coding: utf-8 -*-
from dep_solver import *
import os
......@@ -125,7 +126,6 @@ class VerilogFile(SourceFile):
if not library:
library = "work"
SourceFile.__init__(self, path, library);
# self.path = path;
self.create_deps();
def create_deps(self):
......@@ -147,21 +147,37 @@ class WBGenFile(SourceFile):
def __init__(self, path):
SourceFile.__init__(self, path);
class SourceFileSet:
class SourceFileSet(list):
def __init__(self):
self.files = [];
def __iter__(self):
return self.files.__iter__()
def __len__(self):
return len(self.files)
def __contains__(self,v):
return v in self.files
def __getitem__(self,v):
return self.files(v)
def add(self, files):
if(isinstance(files, SourceFileSet)):
for f in files.files:
self.files.append(f)
elif(isinstance(files, list)):
for f in files:
self.files.append(f)
else:
if isinstance(files, basestring):
raise RuntimeError("Expected object, not a string")
elif isinstance(files, list):
self.files.extend(files)
else: #single file, not a list
self.files.append(files)
#if(isinstance(files, SourceFileSet)):
# for f in files.files:
# self.files.append(f)
#elif(isinstance(files, list)):
# for f in files:
# self.files.append(f)
#else:
# self.files.append(files)
def filter(self, type):
out = []
......@@ -173,7 +189,6 @@ class SourceFileSet:
def get_libs(self):
return set(file.library for file in self.files)
class SourceFileFactory:
def new (self, path, library = None):
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment