Metadata-Version: 2.4
Name: ae_ae
Version: 0.3.104
Summary: ae namespace-root: bundling and maintaining templates and documentation of the portions of this namespace.
Home-page: https://gitlab.com/ae-group/ae_ae
Author: AndiEcker
Author-email: aecker2@gmail.com
License: GPL-3.0-or-later
Project-URL: Bug Tracker, https://gitlab.com/ae-group/ae_ae/-/issues
Project-URL: Documentation, https://ae.readthedocs.io/en/latest/_autosummary/ae.ae.html
Project-URL: Repository, https://gitlab.com/ae-group/ae_ae
Project-URL: Source, https://ae.readthedocs.io/en/latest/_modules/ae/ae.html
Keywords: configuration,development,environment,productivity
Classifier: Development Status :: 3 - Alpha
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development
Classifier: Typing :: Typed
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE.md
Provides-Extra: dev
Requires-Dist: aedev_project_tpls==0.3.79; extra == "dev"
Requires-Dist: aedev_namespace_root_tpls==0.3.31; extra == "dev"
Requires-Dist: ae_base==0.3.85; extra == "dev"
Requires-Dist: ae_app_log==0.3.1; extra == "dev"
Requires-Dist: ae_system==0.3.3; extra == "dev"
Requires-Dist: ae_deep==0.3.13; extra == "dev"
Requires-Dist: ae_django_utils==0.3.2; extra == "dev"
Requires-Dist: ae_notify==0.3.7; extra == "dev"
Requires-Dist: ae-valid==0.3.3; extra == "dev"
Requires-Dist: ae_files==0.3.27; extra == "dev"
Requires-Dist: ae_paths==0.3.44; extra == "dev"
Requires-Dist: ae_cloud_storage==0.3.12; extra == "dev"
Requires-Dist: ae_oaio_model==0.3.14; extra == "dev"
Requires-Dist: ae_oaio_client==0.3.21; extra == "dev"
Requires-Dist: ae_updater==0.3.18; extra == "dev"
Requires-Dist: ae_core==0.3.86; extra == "dev"
Requires-Dist: ae_dynamicod==0.3.15; extra == "dev"
Requires-Dist: ae_i18n==0.3.35; extra == "dev"
Requires-Dist: ae-parse-date==0.3.5; extra == "dev"
Requires-Dist: ae_literal==0.3.35; extra == "dev"
Requires-Dist: ae_console==0.3.95; extra == "dev"
Requires-Dist: ae_shell==0.3.14; extra == "dev"
Requires-Dist: ae_managed_files==0.3.5; extra == "dev"
Requires-Dist: ae_pythonanywhere==0.3.5; extra == "dev"
Requires-Dist: ae_lockname==0.3.10; extra == "dev"
Requires-Dist: ae_progress==0.3.13; extra == "dev"
Requires-Dist: ae_sys_core==0.3.26; extra == "dev"
Requires-Dist: ae_sys_data==0.3.12; extra == "dev"
Requires-Dist: ae_sys_core_sh==0.3.9; extra == "dev"
Requires-Dist: ae_sys_data_sh==0.3.10; extra == "dev"
Requires-Dist: ae_db_core==0.3.16; extra == "dev"
Requires-Dist: ae_db_ora==0.3.9; extra == "dev"
Requires-Dist: ae-db-pg==0.3.7; extra == "dev"
Requires-Dist: ae_transfer_service==0.3.17; extra == "dev"
Requires-Dist: ae_sideloading_server==0.3.19; extra == "dev"
Requires-Dist: ae_gui==0.3.117; extra == "dev"
Requires-Dist: ae-kivy-glsl==0.3.16; extra == "dev"
Requires-Dist: ae_kivy_dyn_chi==0.3.12; extra == "dev"
Requires-Dist: ae_kivy_relief_canvas==0.3.14; extra == "dev"
Requires-Dist: ae_kivy==0.3.126; extra == "dev"
Requires-Dist: ae_kivy_auto_width==0.3.26; extra == "dev"
Requires-Dist: ae_kivy_file_chooser==0.3.13; extra == "dev"
Requires-Dist: ae_kivy_iterable_displayer==0.3.15; extra == "dev"
Requires-Dist: ae_kivy_qr_displayer==0.3.11; extra == "dev"
Requires-Dist: ae_kivy_sideloading==0.3.28; extra == "dev"
Requires-Dist: ae_kivy_user_prefs==0.3.37; extra == "dev"
Requires-Dist: ae_lisz_app_data==0.3.62; extra == "dev"
Requires-Dist: ae_enaml_app==0.3.29; extra == "dev"
Requires-Dist: aedev_base==0.3.7; extra == "dev"
Requires-Dist: aedev_commands==0.3.12; extra == "dev"
Requires-Dist: aedev_project_manager==0.3.26; extra == "dev"
Requires-Dist: aedev_project_vars==0.3.13; extra == "dev"
Requires-Dist: alabaster==1.0.0; extra == "dev"
Requires-Dist: anybadge==1.16.0; extra == "dev"
Requires-Dist: argcomplete==3.6.3; extra == "dev"
Requires-Dist: asgiref==3.11.1; extra == "dev"
Requires-Dist: ast_serialize==0.3.0; extra == "dev"
Requires-Dist: astroid==4.0.2; extra == "dev"
Requires-Dist: atom==0.12.1; extra == "dev"
Requires-Dist: babel==2.18.0; extra == "dev"
Requires-Dist: bytecode==0.17.0; extra == "dev"
Requires-Dist: certifi==2025.10.5; extra == "dev"
Requires-Dist: cffi==2.0.0; extra == "dev"
Requires-Dist: charset-normalizer==3.4.4; extra == "dev"
Requires-Dist: click==8.3.0; extra == "dev"
Requires-Dist: coverage==7.14.1; extra == "dev"
Requires-Dist: coverage-badge==1.1.2; extra == "dev"
Requires-Dist: cryptography==46.0.3; extra == "dev"
Requires-Dist: dill==0.4.0; extra == "dev"
Requires-Dist: Django==6.0.4; extra == "dev"
Requires-Dist: docutils==0.22.4; extra == "dev"
Requires-Dist: enaml==0.19.0; extra == "dev"
Requires-Dist: filetype==1.2.0; extra == "dev"
Requires-Dist: flake8==7.3.0; extra == "dev"
Requires-Dist: google-api-core==2.30.3; extra == "dev"
Requires-Dist: google-api-python-client==2.196.0; extra == "dev"
Requires-Dist: google-auth==2.53.0; extra == "dev"
Requires-Dist: google-auth-httplib2==0.4.0; extra == "dev"
Requires-Dist: google-auth-oauthlib==1.4.0; extra == "dev"
Requires-Dist: googleapis-common-protos==1.75.0; extra == "dev"
Requires-Dist: httplib2==0.31.2; extra == "dev"
Requires-Dist: idna==3.11; extra == "dev"
Requires-Dist: imagesize==2.0.0; extra == "dev"
Requires-Dist: iniconfig==2.3.0; extra == "dev"
Requires-Dist: isort==7.0.0; extra == "dev"
Requires-Dist: Jinja2==3.1.6; extra == "dev"
Requires-Dist: Kivy==2.3.0; extra == "dev"
Requires-Dist: Kivy-Garden==0.1.5; extra == "dev"
Requires-Dist: kivy-garden.qrcode==2021.314; extra == "dev"
Requires-Dist: kiwisolver==1.4.9; extra == "dev"
Requires-Dist: librt==0.11.0; extra == "dev"
Requires-Dist: MarkupSafe==3.0.3; extra == "dev"
Requires-Dist: mccabe==0.7.0; extra == "dev"
Requires-Dist: mypy==2.1.0; extra == "dev"
Requires-Dist: mypy_extensions==1.1.0; extra == "dev"
Requires-Dist: oauthlib==3.3.1; extra == "dev"
Requires-Dist: oracledb==4.0.0; extra == "dev"
Requires-Dist: packaging==26.2; extra == "dev"
Requires-Dist: pathspec==1.0.4; extra == "dev"
Requires-Dist: pegen==0.3.0; extra == "dev"
Requires-Dist: pillow==12.2.0; extra == "dev"
Requires-Dist: pipx==1.12.0; extra == "dev"
Requires-Dist: platformdirs==4.5.0; extra == "dev"
Requires-Dist: pluggy==1.6.0; extra == "dev"
Requires-Dist: plyer==2.1.0; extra == "dev"
Requires-Dist: proto-plus==1.27.2; extra == "dev"
Requires-Dist: protobuf==7.34.1; extra == "dev"
Requires-Dist: psycopg2-binary==2.9.11; extra == "dev"
Requires-Dist: pyasn1==0.6.3; extra == "dev"
Requires-Dist: pyasn1_modules==0.4.2; extra == "dev"
Requires-Dist: pycodestyle==2.14.0; extra == "dev"
Requires-Dist: pycparser==2.23; extra == "dev"
Requires-Dist: pyflakes==3.4.0; extra == "dev"
Requires-Dist: PyGithub==2.9.1; extra == "dev"
Requires-Dist: Pygments==2.19.2; extra == "dev"
Requires-Dist: pyjnius==1.7.0; extra == "dev"
Requires-Dist: PyJWT==2.10.1; extra == "dev"
Requires-Dist: pylint==4.0.5; extra == "dev"
Requires-Dist: PyNaCl==1.6.0; extra == "dev"
Requires-Dist: pyparsing==3.3.2; extra == "dev"
Requires-Dist: PyQt5==5.15.11; extra == "dev"
Requires-Dist: PyQt5-Qt5==5.15.18; extra == "dev"
Requires-Dist: PyQt5_sip==12.17.2; extra == "dev"
Requires-Dist: pytest==9.0.3; extra == "dev"
Requires-Dist: pytest-cov==7.1.0; extra == "dev"
Requires-Dist: pytest-django==4.12.0; extra == "dev"
Requires-Dist: python-gitlab==8.3.0; extra == "dev"
Requires-Dist: qrcode==8.2; extra == "dev"
Requires-Dist: QtPy==2.4.3; extra == "dev"
Requires-Dist: requests==2.34.2; extra == "dev"
Requires-Dist: requests-oauthlib==2.0.0; extra == "dev"
Requires-Dist: requests-toolbelt==1.0.0; extra == "dev"
Requires-Dist: roman-numerals==4.1.0; extra == "dev"
Requires-Dist: setuptools==82.0.1; extra == "dev"
Requires-Dist: snowballstemmer==3.0.1; extra == "dev"
Requires-Dist: Sphinx==9.1.0; extra == "dev"
Requires-Dist: sphinx-autodoc-typehints==3.10.2; extra == "dev"
Requires-Dist: sphinx-paramlinks==0.6.0; extra == "dev"
Requires-Dist: sphinx_rtd_theme==3.1.0; extra == "dev"
Requires-Dist: sphinxcontrib-applehelp==2.0.0; extra == "dev"
Requires-Dist: sphinxcontrib-devhelp==2.0.0; extra == "dev"
Requires-Dist: sphinxcontrib-htmlhelp==2.1.0; extra == "dev"
Requires-Dist: sphinxcontrib-jquery==4.1; extra == "dev"
Requires-Dist: sphinxcontrib-jsmath==1.0.1; extra == "dev"
Requires-Dist: sphinxcontrib-qthelp==2.0.0; extra == "dev"
Requires-Dist: sphinxcontrib-serializinghtml==2.0.0; extra == "dev"
Requires-Dist: sqlparse==0.5.5; extra == "dev"
Requires-Dist: tomlkit==0.13.3; extra == "dev"
Requires-Dist: types-Pillow==10.2.0.20240822; extra == "dev"
Requires-Dist: types-requests==2.33.0.20260518; extra == "dev"
Requires-Dist: types-setuptools==82.0.0.20260518; extra == "dev"
Requires-Dist: typing==3.7.4.3; extra == "dev"
Requires-Dist: typing_extensions==4.15.0; extra == "dev"
Requires-Dist: uritemplate==4.2.0; extra == "dev"
Requires-Dist: urllib3==2.5.0; extra == "dev"
Requires-Dist: userpath==1.9.2; extra == "dev"
Requires-Dist: wheel==0.47.0; extra == "dev"
Requires-Dist: sphinx; extra == "dev"
Requires-Dist: sphinx-rtd-theme; extra == "dev"
Requires-Dist: sphinx_autodoc_typehints; extra == "dev"
Requires-Dist: sphinx_paramlinks; extra == "dev"
Requires-Dist: aedev_project_vars; extra == "dev"
Requires-Dist: anybadge; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: pylint; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: typing; extra == "dev"
Requires-Dist: types-setuptools; extra == "dev"
Provides-Extra: docs
Requires-Dist: sphinx; extra == "docs"
Requires-Dist: sphinx-rtd-theme; extra == "docs"
Requires-Dist: sphinx_autodoc_typehints; extra == "docs"
Requires-Dist: sphinx_paramlinks; extra == "docs"
Requires-Dist: aedev_project_vars; extra == "docs"
Provides-Extra: tests
Requires-Dist: anybadge; extra == "tests"
Requires-Dist: flake8; extra == "tests"
Requires-Dist: mypy; extra == "tests"
Requires-Dist: pylint; extra == "tests"
Requires-Dist: pytest; extra == "tests"
Requires-Dist: pytest-cov; extra == "tests"
Requires-Dist: typing; extra == "tests"
Requires-Dist: types-setuptools; extra == "tests"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: project-url
Dynamic: provides-extra
Dynamic: requires-python
Dynamic: summary

<!-- THIS FILE IS EXCLUSIVELY MAINTAINED by the project aedev.namespace_root_tpls v0.3.31 -->
# __ae__ namespace-root project

ae namespace-root: bundling and maintaining templates and documentation of the portions of this namespace.



## ae namespace root package use-cases

this package is the root project of the ae namespace and their portions (the modules
and packages belonging to the namespace ae). it provides helpers and templates
in order to bundle and ease the maintenance, for example to:

* update and deploy managed files created and renewed from template files.
* merge docstrings of all portions into a single combined and cross-linked documentation.
* compile and publish documentation via Sphinx onto [ReadTheDocs](https://ae.readthedocs.io "ae on RTD").
* bulk manage/update/refactor multiple portion projects of this namespace simultaneously using the
  [git repository manager tool (__pjm__)](https://gitlab.com/aedev-group/aedev_project_manager).

to enable the update and deployment of managed files generated from the templates provided by
this root package, add this root package to the development requirements file (dev_requirements.txt)
of each portion project of this namespace. in this entry you can optionally specify the version of
this project.

and because this namespace-root package is only needed for development tasks, it will never need to
be added to the installation requirements file (requirements.txt) of a namespace portion project.

please check the [project manager manual](
https://aedev.readthedocs.io/en/latest/man/project_manager.html "project_manager manual")
for more detailed information on the provided actions of the __pjm__ tool.


## installation

no installation is needed to use this project for your portion projects, because the __pjm__ tool is
automatically fetching this and the other template projects from https://gitlab.com/ae-group (and
in the specified version).

an installation is only needed if you want to adapt this namespace-root project for your needs or if you want
to contribute to this root package. in this case please follow the instructions given in the
:ref:`contributing` document.



## namespace portions

the following 46 portions are currently included in this namespace:

* [ae_base](https://pypi.org/project/ae_base "ae namespace portion ae_base")
* [ae_app_log](https://pypi.org/project/ae_app_log "ae namespace portion ae_app_log")
* [ae_system](https://pypi.org/project/ae_system "ae namespace portion ae_system")
* [ae_deep](https://pypi.org/project/ae_deep "ae namespace portion ae_deep")
* [ae_django_utils](https://pypi.org/project/ae_django_utils "ae namespace portion ae_django_utils")
* [ae_notify](https://pypi.org/project/ae_notify "ae namespace portion ae_notify")
* [ae-valid](https://pypi.org/project/ae-valid "ae namespace portion ae-valid")
* [ae_files](https://pypi.org/project/ae_files "ae namespace portion ae_files")
* [ae_paths](https://pypi.org/project/ae_paths "ae namespace portion ae_paths")
* [ae_cloud_storage](https://pypi.org/project/ae_cloud_storage "ae namespace portion ae_cloud_storage")
* [ae_oaio_model](https://pypi.org/project/ae_oaio_model "ae namespace portion ae_oaio_model")
* [ae_oaio_client](https://pypi.org/project/ae_oaio_client "ae namespace portion ae_oaio_client")
* [ae_updater](https://pypi.org/project/ae_updater "ae namespace portion ae_updater")
* [ae_core](https://pypi.org/project/ae_core "ae namespace portion ae_core")
* [ae_dynamicod](https://pypi.org/project/ae_dynamicod "ae namespace portion ae_dynamicod")
* [ae_i18n](https://pypi.org/project/ae_i18n "ae namespace portion ae_i18n")
* [ae-parse-date](https://pypi.org/project/ae-parse-date "ae namespace portion ae-parse-date")
* [ae_literal](https://pypi.org/project/ae_literal "ae namespace portion ae_literal")
* [ae_console](https://pypi.org/project/ae_console "ae namespace portion ae_console")
* [ae_shell](https://pypi.org/project/ae_shell "ae namespace portion ae_shell")
* [ae_managed_files](https://pypi.org/project/ae_managed_files "ae namespace portion ae_managed_files")
* [ae_pythonanywhere](https://pypi.org/project/ae_pythonanywhere "ae namespace portion ae_pythonanywhere")
* [ae_lockname](https://pypi.org/project/ae_lockname "ae namespace portion ae_lockname")
* [ae_progress](https://pypi.org/project/ae_progress "ae namespace portion ae_progress")
* [ae_sys_core](https://pypi.org/project/ae_sys_core "ae namespace portion ae_sys_core")
* [ae_sys_data](https://pypi.org/project/ae_sys_data "ae namespace portion ae_sys_data")
* [ae_sys_core_sh](https://pypi.org/project/ae_sys_core_sh "ae namespace portion ae_sys_core_sh")
* [ae_sys_data_sh](https://pypi.org/project/ae_sys_data_sh "ae namespace portion ae_sys_data_sh")
* [ae_db_core](https://pypi.org/project/ae_db_core "ae namespace portion ae_db_core")
* [ae_db_ora](https://pypi.org/project/ae_db_ora "ae namespace portion ae_db_ora")
* [ae-db-pg](https://pypi.org/project/ae-db-pg "ae namespace portion ae-db-pg")
* [ae_transfer_service](https://pypi.org/project/ae_transfer_service "ae namespace portion ae_transfer_service")
* [ae_sideloading_server](https://pypi.org/project/ae_sideloading_server "ae namespace portion ae_sideloading_server")
* [ae_gui](https://pypi.org/project/ae_gui "ae namespace portion ae_gui")
* [ae-kivy-glsl](https://pypi.org/project/ae-kivy-glsl "ae namespace portion ae-kivy-glsl")
* [ae_kivy_dyn_chi](https://pypi.org/project/ae_kivy_dyn_chi "ae namespace portion ae_kivy_dyn_chi")
* [ae_kivy_relief_canvas](https://pypi.org/project/ae_kivy_relief_canvas "ae namespace portion ae_kivy_relief_canvas")
* [ae_kivy](https://pypi.org/project/ae_kivy "ae namespace portion ae_kivy")
* [ae_kivy_auto_width](https://pypi.org/project/ae_kivy_auto_width "ae namespace portion ae_kivy_auto_width")
* [ae_kivy_file_chooser](https://pypi.org/project/ae_kivy_file_chooser "ae namespace portion ae_kivy_file_chooser")
* [ae_kivy_iterable_displayer](https://pypi.org/project/ae_kivy_iterable_displayer "ae namespace portion ae_kivy_iterable_displayer")
* [ae_kivy_qr_displayer](https://pypi.org/project/ae_kivy_qr_displayer "ae namespace portion ae_kivy_qr_displayer")
* [ae_kivy_sideloading](https://pypi.org/project/ae_kivy_sideloading "ae namespace portion ae_kivy_sideloading")
* [ae_kivy_user_prefs](https://pypi.org/project/ae_kivy_user_prefs "ae namespace portion ae_kivy_user_prefs")
* [ae_lisz_app_data](https://pypi.org/project/ae_lisz_app_data "ae namespace portion ae_lisz_app_data")
* [ae_enaml_app](https://pypi.org/project/ae_enaml_app "ae namespace portion ae_enaml_app")
