Knut Nergaard
Knut Nergaard
Ref the following post and issue #71: > What's the purpose then of the base.reference function and how would you prefer we annotate this? Hmmmm. This is a really good...
Even though there is no open issue with regard to this, I'm assuming `glyph.py` should be revised with type annotations and updated docstrings, similarly to other modules in the pipeline....
Ref. this post: >> No, sorry for not bing clear. The kwargs is very logical. I'm alluding to name being optional in the public method, but not in the private...
Bravura has a number of classes not listed in the [SMuFL specification](https://w3c.github.io/smufl/latest/specification/classes.html): figuredBass tf_chordSymbolAccidentals tf_chordSymbols tf_daseianNotation tf_figuredBass tf_hairpins tf_harpPedals tf_metronomeMarks tf_ornaments tf_pedals tf_pictograms tf_prolations tf_zeroWidth Given Bravura's reference font status,...
This would be great for documentation and type hinting of font info attributes, e.g.: ```python { "openTypeNameRecords": dict( type="dictList", valueValidator=fontInfoOpenTypeNameRecordsValidator annotation=List[Dict[str, Union[int, str], description="List of name records with platform, encoding...
I want to contribute by adding annotations to `ufoLib`, but this would require custom type annotation definitions and aliases. Is there an existing central module for annotations that I've missed,...
With the current default setting of `clear=True`, I think `newGlyph` operates a little dangerously. I'm guessing changing this default value is out of the question, but perhaps it would be...
The return of the set glyph in `BaseLayer.__setitem__` is unusual, and seems to be ignored by Python so that the example code ```python >>> glyph = layer["A"] = otherGlyph ```...
To improve documentation and annotation of `BaseInfo` attributes, I would propose adding a property factory which generates the attributes at runtime. See [this module](https://github.com/knutnergaard/smufolib/blob/main/smufolib/objects/engravingDefaults.py) for reference. It generates properties from...
- Adds new section explaining `dynamicProperty` and how it handles normalization. - Breaks down the main code block and accompanying documentation into smaller sections for clarification. - Modifies the language...