- Added:
- Added RREL-'fixed name'-extension, allowing to follow model elements
given a fixed name (e.g. an object defined in a builtin model).
Details described in rrel.md ([#364]).
- Added ability to access the full path of named objects traversed while
resolving a RREL expression ([#304]).
- Added decorator `textx.textxerror_wrap` for object processors to automatically
transform non-TextXErrors to TextXErrors in order to indicate the filename and
position of the element being processed ([#306]).
- Fixed:
- `model_param_defs` on `TextXMetaMetaModel` ([#360]).
- Interpreting of backslash special chars (e.g. `\n`, `\t`) in grammar string
matches ([#323]). Possible **(BIC)** - backslash chars were not interpreted in
grammar files and raw Python strings prior to this fix.
- Exception/error messages ([#320])
- Relaxed assert in model creation enabling some model changes in user classes
([#311])
- Model export to dot in cases where textX object is replaced in the
processor([#301])
- Do not allow "empty" RREL expressions (compare unittests in `test_rrel.py`; [#355])
- Changed:
- Inheritance chain calculation. Possible **(BIC)** ([#369]).
- Added `def_file_name` attribute to `RefRulePosition` for storing the definition's
model file name in case of cross-references between models. ([#313],[#277])
- Migrated from Travis CI to GitHub Actions ([#307])
- Dropped support for deprecated Python versions. The lowest supported version
is 3.6. **(BIC)**
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-textX?expand=0&rev=35
- Added:
- Initial docs for Jinja code generator support (from
[textX-jinja](https://github.com/textX/textX-jinja)) ([#264]).
- Analyzing grammars programmatically as plain textX models
(`grammar_model_from_str/file`) ([#235])
- Initial `startproject` scaffolding (from
[textX-dev](https://github.com/textX/textX-dev)) docs ([#234])
- Generator helper functions `get_output_filename` and `gen_file` ([#233])
- `textx version` command ([#219])
- Versions for languages/packages in `list-languages` and `list-generators`
commands ([#228])
- Added the ability to specify extra parameters during `model_from_file` or
`model_from_str` and to define which extra parameters exist in the
meta-model ([#243]).
- Fixed:
- Fixed several instances of invalid truthiness checking. Thanks
markusschmaus@GitHub ([#250])
- Fixed applying multiple grammar rule modifiers ([#246])
- Fixed exception on calling `check` CLI command with relative path name.
- Fixed return value of textx generate and check commands: we return a failure
on error now ([#222])
- Fixed type checking for references to builtin elements ([#218])
- Changed:
- User classes can now be immutable (e.g. `attr.frozen`) or can use
`__slots__`. Thanks markusschmaus@GitHub ([#256, #260, #261])
- Cleanup of setup configuration and install scripts [#231]
- Dot/PlantUML rendering of meta-models: remove rendering of base types,
improve rendering of required/optional, render match rules as a single
table. ([#225])
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-textX?expand=0&rev=27
- version update to 2.1.0
### Added
- Added new function `textx.scoping.is_file_included` ([#197]).
### Changed
- Allow passing kwargs (specially - file_name) argument when loading metamodel
from string (needed for `textX-LS v0.1.0`) ([#211]).
- Changed the parser rule for regex matches. Spaces are not stripped any more
from the beginning and the end of the regexp-pattern. This could be possible
**BIC** for some special cases [#208].
- Changed function name `textx.scoping.get_all_models_including_attached_models`
to `textx.scoping.get_included_models` (marked old function
as deprecated) ([#197]).
- Delete all models touched while loading a model, when an error occurs
while loading in all repositories (strong exception safety guarantee) ([#200]).
OBS-URL: https://build.opensuse.org/request/show/783789
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-textX?expand=0&rev=23
- 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