Skip to content

Commit

Permalink
Group eo tasks in the documentation and add subsubclasses of eo task.
Browse files Browse the repository at this point in the history
  • Loading branch information
tomislijepcevic committed Jul 16, 2018
1 parent ebf31cd commit 9a0a69a
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 19 deletions.
59 changes: 40 additions & 19 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -204,8 +204,16 @@
except FileExistsError:
pass

# MorphologicalFilterTask
# Create a list of all EOTasks

def get_subclasses(cls):
direct_subclasses = cls.__subclasses__()
nested_subclasses = [ s for c in direct_subclasses
for s in get_subclasses(c) ]

return list(set(direct_subclasses).union(nested_subclasses))

def get_eotasks():
import eolearn.core
import eolearn.coregistration
Expand All @@ -215,26 +223,39 @@ def get_eotasks():
import eolearn.mask
import eolearn.ml_tools

return eolearn.core.EOTask.__subclasses__()
return get_subclasses(eolearn.core.EOTask)

with open('eotasks.rst', 'w') as f:
f.write('''
********
EO Tasks
********
.. currentmodule:: eolearn
.. autosummary::
:nosignatures:
''')

eotasks = [
eotask.__module__[8:] + "." + eotask.__name__
for eotask in get_eotasks()
]
f.write('********\n')
f.write('EO Tasks\n')
f.write('********\n')
f.write('\n')

eopackage_tasks = {}

for eotask_cls in get_eotasks():
eopackage = eotask_cls.__module__.split('.')[1]
eotask = eotask_cls.__name__

if eopackage not in eopackage_tasks:
eopackage_tasks[eopackage] = []

eopackage_tasks[eopackage].append(eotask)

for eopackage in sorted(eopackage_tasks.keys()):
f.write(eopackage + '\n')
f.write('-' * len(eopackage) + '\n')
f.write('\n')

f.write('.. currentmodule:: eolearn.' + eopackage + '\n')
f.write('.. autosummary::\n')
f.write('\t:nosignatures:\n')
f.write('\n')

eotasks.sort()
eotasks = eopackage_tasks[eopackage]
eotasks.sort()

for eotask in eotasks:
f.write('\t' + eotask + '\n')
for eotask in eotasks:
f.write('\t' + eotask + '\n')

f.write('\n')
File renamed without changes.

0 comments on commit 9a0a69a

Please sign in to comment.