- Added:
- [Registration and discovery] of languages and generators ([#187])
- New textx CLI commands for listing generators and languages
(`list-generators`, `list-languages`) and calling a generator (`generate`) ([#187])
- Meta-models may now [reference other registered meta-models] using the
`reference` statement ([#187])
- Adding examples and documentation related to scope providers (related to
model modification through scope providers) ([#168])
- metamodel export feature for [PlantUML] ([#165])
- `textx_isinstance` from `textx.scoping.tools` made available in `textx`
([#164], [#157])
- CLI extensibility ([#162], [#161])
- An initial version of FAQ page ([#138]). Thanks Aluriak@GitHub
- A version of `calc.py` exercises usage of
`text.scoping.tools.textx_isinstance()` to inspect model objects types
during traversal. ([#136], [#123]). Thanks dkrikun@GitHub
- A version of `calc.py` in expression example that exercises dynamically adding
properties to object classes ([#126]). Thanks dkrikun@GitHub
- python like imports (named import rules, scope providers affected) ([#114])
- Added `STRICTFLOAT` as buildin type to allow to distinguish ints from floats
in `NUMBER`. Fixed docu link ([#98]). Possible **(BIC)**
- Added [flake8] and [coverage] checking ([#92])
- Changed:
- All textX commands implemented using textX CLI extensibility. `check`
command reworked to support the new registration feature ([#187]) **(BIC)**
- (Meta-)model visualization reworked as a set of textX generators ([#187]).
**(BIC)**
- Made scope provider implementation of `RelativeName` and `ExtRelativeName`
more readable ([#186]). Minor functional changes, not very probable to have
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-textX?expand=0&rev=14
- A major feature of this release is multi-(meta-)model support with
configurable resolving techniques. Thanks Pierre Bayerl (goto40@GitHub)!
The docs sections are [here](http://www.igordejanovic.net/textX/scoping/)
and [here](http://www.igordejanovic.net/textX/multimetamodel/).
Details follow:
- added new function textx.get_model.children to search arbritrary children
using a lambda predicate.
- remapped textx.model.get_children_of_type to the new children function
(changed the logic, such that the root node is also checked to be model
object).
- added new metamodel function to register scope providers. Scope providers
are callables, which return the referenced object.
- added optional attribute "_tx_model_repository", see metamodel.py
documentation
- added attribute "scope_provider" like "obj_processors" to organize scope
providers
- added an optional argument to model_from_str and model_from_file:
"pre_ref_resolution_callback": this is required internally to prepare the
loading of other model files.
- changed reference resolution in model.py
- moved default resolution to textx.scoping.py
- select the scope provider based on rule and rule-attribute (see
scoping.py documentation)
- added a Postponed type to postpone the resolution
- introduced a multi-pass resolution (implemented at the end of
parse_tree_to_objgraph; introduced new helper argument, e.g., a new
optional argument "is_this_the_main_model" and
"pre_ref_resolution_callback" (see metamodel.py above) to support
reference resolution in the presence of different model files.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-textX?expand=0&rev=6