forked from enlightenment/efl
pyolian: improve the doc generation
This commit is contained in:
parent
a32735e9a7
commit
94b6ad8448
|
@ -2,51 +2,70 @@
|
|||
~~Title: EFL Reference~~
|
||||
{{page>:develop:api-include:reference:general&nouser&nolink&nodate}}
|
||||
|
||||
<!--(for ns in nspaces)-->
|
||||
<!--(if ns.name.startswith('Efl'))-->
|
||||
===== ${ns.name}$ =====
|
||||
====== Python-EFL documentation preview ======
|
||||
This is just a work in progress for the future development of the
|
||||
Python-EFL Unified API.
|
||||
|
||||
<!--(for i, cls in enumerate(ns.regulars))-->
|
||||
Pratically there is nothing python related currently in this documentation,
|
||||
so it can be considered valid for all languages.
|
||||
|
||||
|
||||
^** Some numbers just for information **^^
|
||||
<!--(for label, val in totals)-->
|
||||
| ${label}$ | **${val}$** |
|
||||
<!--(end)-->
|
||||
|
||||
|
||||
<!--(for ns in nspaces)-->
|
||||
===== ${ns.name}$ (namespace) =====
|
||||
|
||||
<!--(for i, cls in enumerate(sorted(ns.regulars)))-->
|
||||
<!--(if i == 0)-->
|
||||
^ Classes ^^
|
||||
^ Regular Classes ^^
|
||||
<!--(end)-->
|
||||
| ${CLS_LINK}$ | ${BEST_SUMMARY(obj=cls)}$ |
|
||||
<!--(end)-->
|
||||
#!
|
||||
<!--(for i, cls in enumerate(ns.interfaces))-->
|
||||
<!--(for i, cls in enumerate(sorted(ns.abstracts)))-->
|
||||
<!--(if i == 0)-->
|
||||
^ Interfaces ^^
|
||||
^ Abstract Classes ^^
|
||||
<!--(end)-->
|
||||
| ${CLS_LINK}$ | ${BEST_SUMMARY(obj=cls)}$ |
|
||||
<!--(end)-->
|
||||
#!
|
||||
<!--(for i, cls in enumerate(ns.mixins))-->
|
||||
<!--(for i, cls in enumerate(sorted(ns.mixins)))-->
|
||||
<!--(if i == 0)-->
|
||||
^ Mixins ^^
|
||||
<!--(end)-->
|
||||
| ${CLS_LINK}$ | ${BEST_SUMMARY(obj=cls)}$ |
|
||||
<!--(end)-->
|
||||
#!
|
||||
<!--(for i, typedecl in enumerate(ns.aliases))-->
|
||||
<!--(for i, cls in enumerate(sorted(ns.interfaces)))-->
|
||||
<!--(if i == 0)-->
|
||||
^ Interfaces ^^
|
||||
<!--(end)-->
|
||||
| ${CLS_LINK}$ | ${BEST_SUMMARY(obj=cls)}$ |
|
||||
<!--(end)-->
|
||||
#!
|
||||
<!--(for i, typedecl in enumerate(sorted(ns.aliases)))-->
|
||||
<!--(if i == 0)-->
|
||||
^ Aliases ^^
|
||||
<!--(end)-->
|
||||
| ${TYPEDECL_LINK}$ | ${BEST_SUMMARY(obj=typedecl)}$ |
|
||||
<!--(end)-->
|
||||
#!
|
||||
<!--(for i, typedecl in enumerate(ns.structs))-->
|
||||
<!--(for i, typedecl in enumerate(sorted(ns.structs)))-->
|
||||
<!--(if i == 0)-->
|
||||
^ Structures ^^
|
||||
<!--(end)-->
|
||||
| ${TYPEDECL_LINK}$ | ${BEST_SUMMARY(obj=typedecl)}$ |
|
||||
<!--(end)-->
|
||||
#!
|
||||
<!--(for i, typedecl in enumerate(ns.enums))-->
|
||||
<!--(for i, typedecl in enumerate(sorted(ns.enums)))-->
|
||||
<!--(if i == 0)-->
|
||||
^ Enumerations ^^
|
||||
<!--(end)-->
|
||||
| ${TYPEDECL_LINK}$ | ${BEST_SUMMARY(obj=typedecl)}$ |
|
||||
<!--(end)-->
|
||||
|
||||
<!--(end)-->
|
||||
<!--(end)-->
|
||||
|
|
|
@ -79,8 +79,34 @@ def page_path_for_object(obj):
|
|||
# render the main start.txt page
|
||||
if args.step in ('start', None):
|
||||
t = Template('doc_start.template')
|
||||
|
||||
nspaces = [ ns for ns in eolian_db.all_namespaces
|
||||
if ns.name.startswith(args.namespace) ]
|
||||
|
||||
tot_classes = tot_regulars = tot_abstracts = tot_mixins = tot_ifaces = 0
|
||||
for ns in nspaces:
|
||||
for cls in ns.classes:
|
||||
tot_classes += 1
|
||||
if cls.type == eolian.Eolian_Class_Type.REGULAR:
|
||||
tot_regulars += 1
|
||||
elif cls.type == eolian.Eolian_Class_Type.ABSTRACT:
|
||||
tot_abstracts += 1
|
||||
elif cls.type == eolian.Eolian_Class_Type.MIXIN:
|
||||
tot_mixins += 1
|
||||
elif cls.type == eolian.Eolian_Class_Type.INTERFACE:
|
||||
tot_ifaces += 1
|
||||
totals = [
|
||||
('Namespaces', len(nspaces)),
|
||||
('ALL Classes', tot_classes),
|
||||
('Regular classes', tot_regulars),
|
||||
('Abstract classes', tot_abstracts),
|
||||
('Mixins', tot_mixins),
|
||||
('Interfaces', tot_ifaces),
|
||||
]
|
||||
|
||||
output_file = os.path.join(args.root_path,'data','pages','develop','api','start.txt')
|
||||
t.render(output_file, args.verbose, nspaces=eolian_db.all_namespaces)
|
||||
t.render(output_file, args.verbose, nspaces=nspaces, totals=totals)
|
||||
|
||||
|
||||
# render a page for each Class
|
||||
if args.step in ('classes', None):
|
||||
|
|
|
@ -318,6 +318,13 @@ class EolianBaseObject(object):
|
|||
return self.name == other
|
||||
return False
|
||||
|
||||
def __gt__(self, other):
|
||||
if isinstance(other, EolianBaseObject):
|
||||
if hasattr(self, 'full_name'):
|
||||
return self.full_name > other.full_name
|
||||
elif hasattr(self, 'name'):
|
||||
return self.name > other.name
|
||||
|
||||
def __hash__(self):
|
||||
return self._obj.value
|
||||
|
||||
|
@ -479,7 +486,11 @@ class Namespace(object):
|
|||
return "<eolian.Namespace '{0._name}'>".format(self)
|
||||
|
||||
def __eq__(self, other):
|
||||
if isinstance(other, Namespace):
|
||||
return self.name == other.name
|
||||
if isinstance(other, str):
|
||||
return self.name == other
|
||||
raise TypeError('Namespace can only compare with Namespace or str')
|
||||
|
||||
def __lt__(self, other):
|
||||
return self.name < other.name
|
||||
|
@ -509,6 +520,12 @@ class Namespace(object):
|
|||
if c.type == Eolian_Class_Type.REGULAR and
|
||||
c.namespace == self._name]
|
||||
|
||||
@property
|
||||
def abstracts(self):
|
||||
return [ c for c in self._unit.all_classes
|
||||
if c.type == Eolian_Class_Type.ABSTRACT and
|
||||
c.namespace == self._name]
|
||||
|
||||
@property
|
||||
def mixins(self):
|
||||
return [ c for c in self._unit.all_classes
|
||||
|
|
Loading…
Reference in New Issue