summaryrefslogtreecommitdiff
path: root/src/scripts/pyolian (follow)
AgeCommit message (Collapse)Author
2019-11-26pyolian: Add helper functions for simple scriptsLauro Moura
Summary: These two functions encapsulate some code that commonly is repeated through pyolian scripts. With these, a minimal example (provided `src/scripts/pyolian` is in the PYTHONPATH) could be done with: ``` import os from pyolian import eolian SCAN_FOLDER = os.path.join(eolian.in_tree_src_dir(), 'src', 'lib') eolian_db = eolian.parse_folders(SCAN_FOLDER) for cls in eolian_db.classes: print(cls) ``` Reviewers: segfaultxavi, DaveMDS, felipealmeida Reviewed By: felipealmeida Subscribers: cedric, #reviewers, #committers, felipealmeida, brunobelo Tags: #efl Differential Revision: https://phab.enlightenment.org/D10589
2019-11-26pyolian: Add a method to get the hierarchy of extensionsLauro Moura
Summary: To be used by the test generator Depends on D10420 Test Plan: test in the diff Reviewers: DaveMDS, herb, segfaultxavi, felipealmeida Reviewed By: felipealmeida Subscribers: cedric, brunobelo, #reviewers, felipealmeida, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10421
2019-11-26pyolian: full_inherit must recurse parent tooLauro Moura
Test Plan: run tests Reviewers: segfaultxavi, herb, DaveMDS, felipealmeida Reviewed By: felipealmeida Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10420
2019-10-11Pyolian: correctly define c_type as a propertyDave Andreoli
2019-10-10Pyolian: improve api coverage scriptDave Andreoli
it now also check for enums and is smarter with code comments
2019-10-10Pyolian: some more missing symbols definedDave Andreoli
2019-10-08Pyolian: rewritten tests for the pytest frameworkDave Andreoli
...much more readable now, worst the pain! :)
2019-10-07Pyolian: implement some missing eolian functionsDave Andreoli
with tests
2019-10-07Pyolian gendoc: use some aux eolian functions to simplify templatesDave Andreoli
2019-10-07Pyolian gendoc: add ability to generate only the stable APIDave Andreoli
gendoc.py --exclude-beta generate the docs excluding all the classes/types/etc in beta state, a bit hackish but do the job. There are some broken links around that refer to objects in beta state that are (correctly) not generated, nothing we can do to fix this.
2019-10-05Pyolian gendoc: the last hidden bits of documentation ref tokensDave Andreoli
Now links works also inside documentation text \o/
2019-10-03Pyolian gendoc: unbreak after recent eolian changesDave Andreoli
shiny new generated documentation can be seen at: www.gurumeditation.it/dokuwiki_efl/
2019-09-29Pyolian: implemented eolian Error objectDave Andreoli
2019-09-29Pyolian: reformat code to make pycharm happyDave Andreoli
and fix some typos in the code
2019-09-26eolian: rename param direction enum and fields for consistencyDaniel Kolesa
2019-09-26eolian: rename event_prefix to event_c_prefix for consistencyDaniel Kolesa
2019-09-26eolian: move EOLIAN_TYPE_BUILTIN_HASH into beta sectionDaniel Kolesa
2019-09-25eolian: expose most API as stableDaniel Kolesa
There is still some TODO with builtin types, parameter directions and prefixes, which will be resolved in the next commits.
2019-09-24eolian: remove support for globalsDaniel Kolesa
This was meant to happen but did not previously happen. It is not ideal to do it now but better do it while we still can. In short, this removes one half of the variables API (keeps constants as they are) and repurposes the API to be only for constants. This is also better for consistency to match errors.
2019-09-20eolian: rename any_value_ptr -> any_value_ref for consistencyDaniel Kolesa
2019-09-09eolian: remove second parameter for eolian_type_c_type_getDaniel Kolesa
This has been replaced by newer APIs.
2019-08-28pyolian: Update after event and binbuf keywordsLauro Moura
Reviewers: q66, DaveMDS Reviewed By: q66 Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9626
2019-08-16eolian: rename is_class api for functions to is_staticDaniel Kolesa
Still needs restriction to classes only etc to be done later. Ref https://phab.enlightenment.org/T8118 Ref https://phab.enlightenment.org/T7675
2019-07-29pyolian: Fix testsLauro Moura
Summary: Update tests after some legacy cleanup from last release. Reviewers: bu5hm4n, DaveMDS, segfaultxavi Reviewed By: DaveMDS Subscribers: segfaultxavi, cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8817
2019-07-08eolian: remove API to get freefunc of typeDaniel Kolesa
This is not supported anymore. For now, the syntax is kept around because of broken C++ tests, but afterwards it will also be removed.
2019-05-26eolian: rename @warn_unused and its associated APIDaniel Kolesa
@warn_unused in syntax is now called @no_unused - this is because "warning about unused" is a C thing (or rather, an extension to C) and various languages might want to use stricter behavior for this. Its associated API does the reverse now - it lets you query whether being unused is allowed at all. This is to match future behavior of Eolian (once it supports versioning) that will likely reverse it. @feature
2019-05-26eolian: remove param @nonullDaniel Kolesa
This has been deprecated for a while and is not strictly necessary - as a part of an effort to stabilize Eolian, remove this. Eolian will eventually gain support for versioning and use a reversed behavior (i.e. no NULL by default), but the API it wlll use for that will be very different. Features can always be added, it's much harder to drop them. @feature
2019-05-21eolian: remove @nullable keywordDaniel Kolesa
This was an experiment that never properly took off and was never used by any generator. Its use was highly variable, so it could not be relied upon. We will still want to reverse the current behavior eventually (no null by default), but that will be done with eo file versioning in the future. @feature
2019-05-16eolian: rename eolian_event_c_name_getDaniel Kolesa
This is for consistency with the new eolian_class_c_macro_get as well as for better clarity, as c_name_get is already provided by Object and refers to something else.
2019-05-16eolian: rename eolian_typedecl_enum_field_c_name_getDaniel Kolesa
This is to allow for better object oriented APIs, as the `c_name` field would be inherited from Object. This also makes it more clear in C.
2019-05-16eolian: add API to retrieve the C name of an objectDaniel Kolesa
This is to prepare for type/class renaming support. This adds the necessary API to retrieve C-specific names. Other refactoring is necessary elsewhere for now. This also renames the old API eolian_class_c_name_get to eolian_class_c_macro_get to avoid conflict as well as clarify the intention.
2019-05-03eolian: refactor parsing API and path handlingDaniel Kolesa
This splits the eolian_file_parse API into two, one for parsing files already present in the database (always by filename) and one for parsing paths. It fixes several bugs/leaks on the way (incorrect use of stringshare etc.) as well as adds checking for whether there are no conflicting filenames at scan time, for free. That means it is now no longer possible to scan two paths which have an eo or eot file of the same name in them. It should also be faster now. It also fixes T7820. @fix
2019-03-08efl.loop_timer: rename all methods/properties/eventsMike Blumenkrantz
Summary: avoid potential future conflict by not using conflict-able names ref T7731 Reviewers: segfaultxavi Reviewed By: segfaultxavi Subscribers: cedric, #reviewers, #committers Tags: #efl_api Maniphest Tasks: T7731 Differential Revision: https://phab.enlightenment.org/D8256
2019-03-08eolian: remove legacy handling API and most of generationDaniel Kolesa
Summary: This removes all Eolian API that deals with handling of legacy code. It also removes the code using it in the generator as well as bindings, but for now keeps generation of .eo.legacy.h types, as there are still instances in our codebase where things are otherwise broken. We can remove the rest once that is resolved. Reviewers: zmike, cedric Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8255
2019-03-08eolian: add support for marking type declarations betaDaniel Kolesa
Summary: This also simplifies the beta checking API by unifying it under objects (makes much more sense that way) and reworks the validator to have betaness support within its context state, allowing checks to be done easily in any place. The betaness checks are disabled for types for the time being, because otherwise there are too many errors (types are assumed to be stable as they are not tagged beta, but they reference beta classes all over the place). Set EOLIAN_TYPEDECL_BETA_WARN to 1 in your environment to force enable the checks. Reviewers: zmike, bu5hm4n, stefan_schmidt, lauromoura, cedric Reviewed By: zmike Subscribers: #reviewers, #committers Tags: #efl, #eolian Differential Revision: https://phab.enlightenment.org/D8102
2019-02-28eolian: remove support for inlist/inarrayDaniel Kolesa
This feature was kind of ill-conceived and never worked properly. Since there isn't enough time to make it work right at this point and there are no users of it in the API, remove it for now. It might get added in the next release cycle, in a proper form. @feature
2019-02-21api: efl.gfx.size_hints -> efl.gfx.hintsMike Blumenkrantz
Summary: these hints are not strictly size-related, so renaming them is more consistent with their actual function ref T7563 Depends on D7968 Reviewers: segfaultxavi, cedric, bu5hm4n Subscribers: segfaultxavi, cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T7563 Differential Revision: https://phab.enlightenment.org/D7977
2018-11-28Pyolian: fixes for recent eolian changesDave Andreoli
2018-11-28Pyolian tests: 2 small improvementsDave Andreoli
1. properly use unittest infra to skip tests, otherwise we will forgot the commented tests 2. split the new name collision test (failing, but really cool) so it have a proper name and the results are more readable
2018-11-27pyolian: Fix tests after class renames and API changeLauro Moura
Summary: There is still a test failing as at least Ecore.Audio is both a namespace and a class. Test Plan: python test_pyolian.py Reviewers: DaveMDS, q66 Reviewed By: q66 Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D7371
2018-11-23eolian: implement new inherit behaviorDaniel Kolesa
Eolian now separates 'parent' and 'extensions'. For regular classes, parent is the first item in the inherits list and extesions is the rest. For interfaces and mixins, parent is NULL and extends is the inherits list. The reason for this is the separation of them in syntax in near future. It also slightly changes the behavior; since for interfaces and mixins, parent is always NULL now, you can freely inherit from all types of classes without needing to manually put an interface type as the first item of the inherits list.
2018-04-18eolian: make doc ref resolution globalDaniel Kolesa
Doc refs no longer introduce new dependencies into files. Instead, they're parsed globally, and any doc ref lookup is also made globally. This allows unit based dependencies to correspond more to what files actually really need at compile time/runtime, with docs being irrelevant to that; it also simplifies the API. The doc resolution API now takes Eolian_State instead of Eolian_Unit, too.
2018-03-17Pyolian: fix __repr__ for DocumentationDave Andreoli
2018-03-17Pyolian doc generator: update wrt name API changesDave Andreoli
Argh, this has been difficult... hopefully I have done this right
2018-03-17Pyolian: let ctypes automatically convert typesDave Andreoli
Not a big improvement and not so much automatically... but for sure a bit less to type :)
2018-03-17Pyolian: use tuple instead of list in declarationsDave Andreoli
This is a bit more correct and (maybe) a bit more faster
2018-03-17Pyolian: new API eolian_unit_state_getDave Andreoli
2018-03-17Pyolian: new API eolian_object_unit_getDave Andreoli
Also implemented __repr__ for Unit and State
2018-03-17Pyolian: fix tests wrt name/short_name/full_name API changesDave Andreoli
2018-03-16Pyolian: add support EOLIAN_SO_DIR env varDave Andreoli
Thanks goes to @lauromoura for proposing this in D5840