diff --git a/.gitignore b/.gitignore index 100ea0d..a7ecd2f 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,5 @@ dist/ build/ *.egg-info/ distribute*.tar.gz + +*.swp diff --git a/examples/genconf-manifest.yaml b/examples/genconf-manifest.yaml index 3fbafb8..61d38d0 100644 --- a/examples/genconf-manifest.yaml +++ b/examples/genconf-manifest.yaml @@ -18,6 +18,7 @@ profiles: "debug": "true" output_files: - {target: "target/${profile}/otherdir/sometext", template: "templates/sometext", template_format: "genshi-text"} + - name: "development" abstract: false extends: ["all"] @@ -29,3 +30,5 @@ profiles: - {target: "target/willnotexist", template: "templates/not-found-template", template_format: "genshi-text"} - {target: "target/io-error", template: "templates/sometext", template_format: "genshi-text"} - {target: "target/syntax-error", template: "templates/syntax-error", template_format: "genshi-text"} + + - name: "empty-profile" diff --git a/genconf/manifest/_parser.py b/genconf/manifest/_parser.py index 306fc98..d392e70 100644 --- a/genconf/manifest/_parser.py +++ b/genconf/manifest/_parser.py @@ -56,10 +56,10 @@ def get_profile(name): def do_create_profile(data): p = Profile(name = data['name'], - is_abstract = data['abstract'], - extends = map(get_profile, data['extends']), - properties = data['properties'], - output_files = map(create_output_file(lambda: p), data['output_files']), + is_abstract = data.get('abstract', False), + extends = map(get_profile, data.get('extends', [])), + properties = data.get('properties', {}), + output_files = map(create_output_file(lambda: p), data.get('output_files', [])), overrides = project_overrides.get(data['name'], {})) created_profiles[p.name] = p return p @@ -84,4 +84,4 @@ def parse(self, stream): project_profiles[k] = v overrides[project] = project_profiles - return overrides \ No newline at end of file + return overrides