Metadata-Version: 2.4
Name: aedev_project_manager
Version: 0.3.24
Summary: aedev namespace package portion project_manager: maintain Python projects locally and remotely
Home-page: https://gitlab.com/aedev-group/aedev_project_manager
Author: AndiEcker
Author-email: aecker2@gmail.com
License: GPL-3.0-or-later
Project-URL: Bug Tracker, https://gitlab.com/aedev-group/aedev_project_manager/-/issues
Project-URL: Documentation, https://aedev.readthedocs.io/en/latest/_autosummary/aedev.project_manager.html
Project-URL: Repository, https://gitlab.com/aedev-group/aedev_project_manager
Project-URL: Source, https://aedev.readthedocs.io/en/latest/_modules/aedev/project_manager.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 :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE.md
Requires-Dist: anybadge==1.16.0
Requires-Dist: coverage==7.13.5
Requires-Dist: flake8==7.3.0
Requires-Dist: mypy==1.20.1
Requires-Dist: packaging==26.1
Requires-Dist: pillow==12.2.0
Requires-Dist: types-Pillow==10.2.0.20240822
Requires-Dist: PyGithub==2.9.1
Requires-Dist: pylint==4.0.5
Requires-Dist: pytest==9.0.3
Requires-Dist: pytest-cov==7.1.0
Requires-Dist: python-gitlab==8.2.0
Requires-Dist: requests==2.33.1
Requires-Dist: requests-toolbelt==1.0.0
Requires-Dist: ae_base==0.3.81
Requires-Dist: ae_files==0.3.26
Requires-Dist: ae_paths==0.3.43
Requires-Dist: ae_dynamicod==0.3.15
Requires-Dist: ae_literal==0.3.35
Requires-Dist: ae_updater==0.3.17
Requires-Dist: ae_core==0.3.84
Requires-Dist: ae_console==0.3.94
Requires-Dist: ae_shell==0.3.13
Requires-Dist: ae_managed_files==0.3.4
Requires-Dist: ae_pythonanywhere==0.3.4
Requires-Dist: aedev_base==0.3.6
Requires-Dist: aedev_commands==0.3.9
Requires-Dist: aedev_project_vars==0.3.11
Provides-Extra: dev
Requires-Dist: aedev_project_tpls==0.3.77; extra == "dev"
Requires-Dist: aedev_aedev==0.3.32; extra == "dev"
Requires-Dist: ae-parse-date==0.3.5; extra == "dev"
Requires-Dist: ae_base==0.3.81; extra == "dev"
Requires-Dist: ae_console==0.3.94; extra == "dev"
Requires-Dist: ae_core==0.3.84; extra == "dev"
Requires-Dist: ae_dynamicod==0.3.15; extra == "dev"
Requires-Dist: ae_files==0.3.26; extra == "dev"
Requires-Dist: ae_literal==0.3.35; extra == "dev"
Requires-Dist: ae_managed_files==0.3.4; extra == "dev"
Requires-Dist: ae_paths==0.3.43; extra == "dev"
Requires-Dist: ae_pythonanywhere==0.3.4; extra == "dev"
Requires-Dist: ae_shell==0.3.13; extra == "dev"
Requires-Dist: ae_updater==0.3.17; extra == "dev"
Requires-Dist: aedev_app_tpls==0.3.19; extra == "dev"
Requires-Dist: aedev_base==0.3.6; extra == "dev"
Requires-Dist: aedev_commands==0.3.9; extra == "dev"
Requires-Dist: aedev_namespace_root_tpls==0.3.29; extra == "dev"
Requires-Dist: aedev_project_vars==0.3.11; extra == "dev"
Requires-Dist: anybadge==1.16.0; extra == "dev"
Requires-Dist: argcomplete==3.6.3; extra == "dev"
Requires-Dist: astroid==4.0.2; extra == "dev"
Requires-Dist: certifi==2025.4.26; extra == "dev"
Requires-Dist: cffi==1.17.1; extra == "dev"
Requires-Dist: charset-normalizer==3.4.2; extra == "dev"
Requires-Dist: click==8.3.0; extra == "dev"
Requires-Dist: coverage==7.13.5; extra == "dev"
Requires-Dist: cryptography==45.0.4; extra == "dev"
Requires-Dist: Deprecated==1.2.18; extra == "dev"
Requires-Dist: dill==0.4.0; extra == "dev"
Requires-Dist: docutils==0.21.2; extra == "dev"
Requires-Dist: flake8==7.3.0; extra == "dev"
Requires-Dist: id==1.5.0; extra == "dev"
Requires-Dist: idna==3.10; extra == "dev"
Requires-Dist: iniconfig==2.1.0; extra == "dev"
Requires-Dist: isort==6.0.1; extra == "dev"
Requires-Dist: jaraco.classes==3.4.0; extra == "dev"
Requires-Dist: jaraco.context==6.0.1; extra == "dev"
Requires-Dist: jaraco.functools==4.1.0; extra == "dev"
Requires-Dist: jeepney==0.9.0; extra == "dev"
Requires-Dist: keyring==25.6.0; extra == "dev"
Requires-Dist: librt==0.8.1; extra == "dev"
Requires-Dist: markdown-it-py==3.0.0; extra == "dev"
Requires-Dist: mccabe==0.7.0; extra == "dev"
Requires-Dist: mdurl==0.1.2; extra == "dev"
Requires-Dist: more-itertools==10.7.0; extra == "dev"
Requires-Dist: mypy==1.20.1; extra == "dev"
Requires-Dist: mypy_extensions==1.1.0; extra == "dev"
Requires-Dist: nh3==0.2.21; extra == "dev"
Requires-Dist: packaging==26.1; extra == "dev"
Requires-Dist: pathspec==1.0.4; extra == "dev"
Requires-Dist: pillow==12.2.0; extra == "dev"
Requires-Dist: pipx==1.11.1; extra == "dev"
Requires-Dist: platformdirs==4.3.8; extra == "dev"
Requires-Dist: pluggy==1.6.0; extra == "dev"
Requires-Dist: pycodestyle==2.14.0; extra == "dev"
Requires-Dist: pycparser==2.22; extra == "dev"
Requires-Dist: pyflakes==3.4.0; extra == "dev"
Requires-Dist: PyGithub==2.9.1; extra == "dev"
Requires-Dist: Pygments==2.19.1; 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: pylint-django==2.7.0; extra == "dev"
Requires-Dist: pylint-plugin-utils==0.9.0; extra == "dev"
Requires-Dist: PyNaCl==1.5.0; extra == "dev"
Requires-Dist: pytest==9.0.3; extra == "dev"
Requires-Dist: pytest-cov==7.1.0; extra == "dev"
Requires-Dist: python-gitlab==8.2.0; extra == "dev"
Requires-Dist: readme_renderer==44.0; extra == "dev"
Requires-Dist: requests==2.33.1; extra == "dev"
Requires-Dist: requests-toolbelt==1.0.0; extra == "dev"
Requires-Dist: rfc3986==2.0.0; extra == "dev"
Requires-Dist: rich==14.0.0; extra == "dev"
Requires-Dist: SecretStorage==3.3.3; extra == "dev"
Requires-Dist: setuptools==82.0.1; extra == "dev"
Requires-Dist: tomlkit==0.13.3; extra == "dev"
Requires-Dist: twine==6.2.0; extra == "dev"
Requires-Dist: types-Pillow==10.2.0.20240822; extra == "dev"
Requires-Dist: types-requests==2.33.0.20260408; extra == "dev"
Requires-Dist: types-setuptools==82.0.0.20260408; extra == "dev"
Requires-Dist: typing==3.7.4.3; extra == "dev"
Requires-Dist: typing_extensions==4.15.0; extra == "dev"
Requires-Dist: urllib3==2.4.0; extra == "dev"
Requires-Dist: userpath==1.9.2; extra == "dev"
Requires-Dist: wheel==0.46.3; extra == "dev"
Requires-Dist: wrapt==1.17.2; extra == "dev"
Requires-Dist: anybadge==1.16.0; extra == "dev"
Requires-Dist: flake8==7.3.0; extra == "dev"
Requires-Dist: mypy==1.20.1; extra == "dev"
Requires-Dist: pylint==4.0.5; extra == "dev"
Requires-Dist: pytest==9.0.3; extra == "dev"
Requires-Dist: pytest-cov==7.1.0; extra == "dev"
Requires-Dist: typing==3.7.4.3; extra == "dev"
Requires-Dist: types-setuptools==82.0.0.20260408; extra == "dev"
Provides-Extra: docs
Provides-Extra: tests
Requires-Dist: anybadge==1.16.0; extra == "tests"
Requires-Dist: flake8==7.3.0; extra == "tests"
Requires-Dist: mypy==1.20.1; extra == "tests"
Requires-Dist: pylint==4.0.5; extra == "tests"
Requires-Dist: pytest==9.0.3; extra == "tests"
Requires-Dist: pytest-cov==7.1.0; extra == "tests"
Requires-Dist: typing==3.7.4.3; extra == "tests"
Requires-Dist: types-setuptools==82.0.0.20260408; 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-dist
Dynamic: requires-python
Dynamic: summary

<!-- THIS FILE IS EXCLUSIVELY MAINTAINED by the project aedev.aedev v0.3.32 -->
<!-- THIS FILE IS EXCLUSIVELY MAINTAINED by the project aedev.namespace_root_tpls v0.3.27 -->
# project_manager 0.3.24

[![GitLab develop](https://img.shields.io/gitlab/pipeline/aedev-group/aedev_project_manager/develop?logo=python)](
    https://gitlab.com/aedev-group/aedev_project_manager)
[![LatestPyPIrelease](
    https://img.shields.io/gitlab/pipeline/aedev-group/aedev_project_manager/release0.3.24?logo=python)](
    https://gitlab.com/aedev-group/aedev_project_manager/-/tree/release0.3.24)
[![PyPIVersions](https://img.shields.io/pypi/v/aedev_project_manager)](
    https://pypi.org/project/aedev-project-manager/#history)

>aedev namespace package portion project_manager: maintain Python projects locally and remotely.

[![Coverage](https://aedev-group.gitlab.io/aedev_project_manager/coverage.svg)](
    https://aedev-group.gitlab.io/aedev_project_manager/coverage/index.html)
[![MyPyPrecision](https://aedev-group.gitlab.io/aedev_project_manager/mypy.svg)](
    https://aedev-group.gitlab.io/aedev_project_manager/lineprecision.txt)
[![PyLintScore](https://aedev-group.gitlab.io/aedev_project_manager/pylint.svg)](
    https://aedev-group.gitlab.io/aedev_project_manager/pylint.log)

[![PyPIImplementation](https://img.shields.io/pypi/implementation/aedev_project_manager)](
    https://gitlab.com/aedev-group/aedev_project_manager/)
[![PyPIPyVersions](https://img.shields.io/pypi/pyversions/aedev_project_manager)](
    https://gitlab.com/aedev-group/aedev_project_manager/)
[![PyPIWheel](https://img.shields.io/pypi/wheel/aedev_project_manager)](
    https://gitlab.com/aedev-group/aedev_project_manager/)
[![PyPIFormat](https://img.shields.io/pypi/format/aedev_project_manager)](
    https://pypi.org/project/aedev-project-manager/)
[![PyPILicense](https://img.shields.io/pypi/l/aedev_project_manager)](
    https://gitlab.com/aedev-group/aedev_project_manager/-/blob/develop/LICENSE.md)
[![PyPIStatus](https://img.shields.io/pypi/status/aedev_project_manager)](
    https://libraries.io/pypi/aedev-project-manager)
[![PyPIDownloads](https://img.shields.io/pypi/dm/aedev_project_manager)](
    https://pypi.org/project/aedev-project-manager/#files)

## features

simplifies your programming workflow, in order to:

    * clone or fork projects from GitLab or GitHub
    * push bug fixes and new features of projects to GitLab or GitHub
    * request a MR (merge request) (or a PR (pull request) at GitHub)
    * publish packages to [PyPI](https://pypi.org) or [PyPI Test](https://test.pypi.org)
    * deploy Django apps to [PythonAnywhere](https://pythonanywhere.com)  
    * run resource checks (i18n, images, sounds)
    * run unit and integration tests (with coverage reports)
    * use templates to create and maintain code, resource and configuration files
    * bulk refresh/update of mulitple projects, e.g. your namespace portions projects (:pep:`420`)


## installation

execute the following command to install the
aedev.project_manager package
in the currently active virtual environment:
 
```shell script
pip install aedev-project-manager
```

if you want to contribute to this portion then first fork
[the aedev_project_manager repository at GitLab](
https://gitlab.com/aedev-group/aedev_project_manager "aedev.project_manager code repository").
after that pull it to your machine and finally execute the
following command in the root folder of this repository
(aedev_project_manager):

```shell script
pip install -e .[dev]
```

the last command will install this package portion, along with the tools you need
to develop and run tests or to extend the portion documentation. to contribute only to the unit tests or to the
documentation of this portion, replace the setup extras key `dev` in the above command with `tests` or `docs`
respectively.

more detailed explanations on how to contribute to this project
[are available here](
https://gitlab.com/aedev-group/aedev_project_manager/-/blob/develop/CONTRIBUTING.rst)


## namespace portion documentation

the documentation of the source code of this portion is available at
[ReadTheDocs](
https://aedev.readthedocs.io/en/latest/_autosummary/aedev.project_manager.html
"aedev_project_manager documentation").

check also the
[manual](https://aedev.readthedocs.io/en/latest/man/project_manager.html "project manager manual")
for more detailed information on the usage of the project manager tool and their provided workflows.

the [source code](https://gitlab.com/aedev-group/aedev_project_manager "project manager source code")
is maintained by the user group [aedev-group](https://gitlab.com/aedev-group).

this project is implemented in pure Python code and based on portions of the two namespaces
[__ae__ (Application Environment)](https://ae.readthedocs.io "ae namespace") and
[__aedev__ (Development Packages and Tools)](https://ae.readthedocs.io "aedev namespace").

