Code Structure¶
This is a quick view of the source code structure of Alfanous project explaining the different packages and modules.
Packages¶
alfanous: | the main API of the project, offers the search features. |
---|---|
alfanous-import: | |
a library responsible of all management tasks of Quranic & Linguistic resources. | |
alfanous-cgi: | a small script to execute the API in a web CGI environment. |
alfanous-desktop: | |
a desktop interface made by QT & PyQt. | |
alfanous-django: | |
a django app replaces the old web user interface and also the cgi script. | |
alfanous-labs: | all related libraries that still in alpha phase. |
alfanous-tests: | scripts used to test the different modules of the API. |
PyCorpus: | a library used to parse & understand Arabic Quranic Corpus. |
PyZekrModels: | a library used to parse Zekr Translations Models. |
API Modules, Files (alfanous)¶
main.py: | the main module that relay all the modules. |
---|---|
console.py: | a console interface for the API. |
Outputs.py: | the programming interface, responsible of the output of all results. |
Data.py: | the manager of paths and Data reading and loading. |
TextProcessing.py: | |
the module responsible of searched/indexed text processing. | |
QueryProcessing.py: | |
the module responsible of search query processing. | |
ResultsProcessing.py: | |
the module responsible of results processing. | |
Indexing.py: | the manager of the indexes reading. |
Searching.py: | the module responsible of the basic search operation. |
Suggestions.py: | the module responsible of suggestions. |
Romanization.py: | |
the module responsible of romanization systems. | |
Threading.py: | the module responsible of multi-processing during the search. |
Constants.py: | a module that contains some constants used in the API. |
Exceptions.py: | a module that contains some exceptions used in the API. |
Misc.py: | a pre-implementing test module. |
Support.*: | Some third-party libraries. |
configs.*: | Configuration files in a Json format. |
resources.*: | Quranic & Lingustic data in a Json format to replace the binary sqlite database. |
dynamic_resources.*: | |
Compiled linguistic data to python modules to gain speed. | |
indexes.*: | All needed indexes on Whoosh indexes format. |
setup.py: | the script of installation & packaging (setuptools) |
ez_setup.py: | an alternatif for setuptools library. |
Importer Modules (alfanous-import)¶
main.py: | the main module that relays all the modules and offers a console interface. |
---|---|
Downloader.py: | download online resources. |
Parser.py: | parse the resources. |
Standardizer.py: | |
convert the resources to a standard format (not implemented). | |
Importer.py: | import the resources into the main database. |
Transformer.py: | transfer&convert the resources from the main database into Whoosh indexes. |
Updater.py: | update the data in API based on actual resources. |
initial_importing.py: | |
a script used the first-time to load many resources (deprecated). | |
setup.py: | the script of installation & packaging (setuptools). |