generalpackager
Tools to interface GitHub, PyPI, NPM and local modules / repos. Used for generating files to keep projects dry and synced. Tailored for ManderaGeneral for now.
Table of Contents
generalpackager
├─ Dependency Diagram for ManderaGeneral
├─ Installation showing dependencies
├─ Information
├─ Attributes
├─ Contributions
└─ Todo
Dependency Diagram for ManderaGeneral
```mermaid
flowchart LR
3([file]) --> 5([packager])
0([import]) --> 3([file])
2([library]) --> 3([file])
2([library]) --> 4([vector])
2([library]) --> 5([packager])
1([tool]) --> 2([library])
0([import]) --> 2([library])
click 0 "https://github.com/ManderaGeneral/generalimport"
click 1 "https://github.com/ManderaGeneral/generaltool"
click 2 "https://github.com/ManderaGeneral/generallibrary"
click 3 "https://github.com/ManderaGeneral/generalfile"
click 4 "https://github.com/ManderaGeneral/generalvector"
click 5 "https://github.com/ManderaGeneral/generalpackager"
style 5 fill:#482
```
Installation showing dependencies
| `pip install` | `generalpackager` |
|:-----------------------------------------------------------------------------------|:--------------------|
| generallibrary[table] | ✔️ |
| generalfile | ✔️ |
| requests | ✔️ |
| pyinstaller | ✔️ |
| coverage | ✔️ |
Information
| Package | Ver | Latest Release | Python | Platform | Cover |
|:---------------------------------------------------------------------|:---------------------------------------------------|:---------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------|:--------|
| [generalpackager](https://github.com/ManderaGeneral/generalpackager) | [0.5.7](https://pypi.org/project/generalpackager/) | 2023-02-02 13:29 CET | [3.8](https://www.python.org/downloads/release/python-380/), [3.9](https://www.python.org/downloads/release/python-390/), [3.10](https://www.python.org/downloads/release/python-3100/), [3.11](https://www.python.org/downloads/release/python-3110/) | Windows, Ubuntu | 68.9 % |
Attributes
Module: generalpackager
├─ Class: GitHub
│ ├─ Class: GitHub
│ ├─ Class: LocalModule
│ ├─ Class: LocalRepo
│ ├─ Class: Packager
│ ├─ Class: PyPI
│ ├─ Method: api_url
│ ├─ Method: download
│ ├─ Method: exists
│ ├─ Method: get_description
│ ├─ Method: get_owners_packages
│ ├─ Method: get_topics
│ ├─ Method: get_website
│ ├─ Property: git_clone_command
│ ├─ Property: pip_install_command
│ ├─ Method: request_kwargs
│ ├─ Method: set_description
│ ├─ Method: set_topics
│ ├─ Method: set_website
│ ├─ Property: ssh_url
│ └─ Property: url
├─ Class: LocalModule
│ ├─ Class: GitHub
│ ├─ Class: LocalModule
│ ├─ Class: LocalRepo
│ ├─ Class: Packager
│ ├─ Class: PyPI
│ ├─ Method: exists
│ ├─ Method: get_all_local_modules
│ ├─ Method: get_dependants
│ ├─ Method: get_dependencies
│ ├─ Property: module
│ ├─ Property: objInfo
│ └─ Property: path
├─ Class: LocalRepo
│ ├─ Class: GitHub
│ ├─ Class: LocalModule
│ ├─ Class: LocalRepo
│ ├─ Class: Packager
│ ├─ Class: PyPI
│ ├─ Class: Targets
│ ├─ Method: changed_files
│ ├─ Method: clone
│ ├─ Method: commit
│ ├─ Method: commit_message
│ ├─ Method: commit_sha
│ ├─ Method: commit_sha_short
│ ├─ Method: exists
│ ├─ Method: format_file
│ ├─ Method: get_examples_path
│ ├─ Method: get_exeproduct_path
│ ├─ Method: get_exetarget_path
│ ├─ Method: get_generate_path
│ ├─ Method: get_git_exclude_path
│ ├─ Method: get_git_ignore_path
│ ├─ Method: get_index_js_path
│ ├─ Method: get_init_path
│ ├─ Method: get_license_path
│ ├─ Method: get_manifest_path
│ ├─ Method: get_metadata_path
│ ├─ Method: get_npm_ignore_path
│ ├─ Method: get_org_readme_path
│ ├─ Method: get_package_json_path
│ ├─ Method: get_package_paths_gen
│ ├─ Method: get_pre_commit_hook_path
│ ├─ Method: get_pre_push_hook_path
│ ├─ Method: get_randomtesting_path
│ ├─ Method: get_readme_path
│ ├─ Method: get_setup_path
│ ├─ Method: get_test_js_path
│ ├─ Method: get_test_path
│ ├─ Method: get_test_paths
│ ├─ Method: get_test_template_path
│ ├─ Method: get_workflow_path
│ ├─ Method: git_config
│ ├─ Method: git_missing_credentials
│ ├─ Method: git_nothing_to_commit
│ ├─ Method: init
│ ├─ Method: is_django
│ ├─ Method: is_exe
│ ├─ Method: is_general
│ ├─ Method: is_node
│ ├─ Method: is_python
│ ├─ Property: metadata
│ ├─ Method: metadata_exists
│ ├─ Method: name_is_general
│ ├─ Method: push
│ ├─ Method: repo_exists
│ ├─ Property: simple_name
│ ├─ Property: target
│ └─ Method: targetted
├─ Class: LocalRepo_Node
├─ Class: LocalRepo_Python
│ ├─ Method: get_python_exe_path
│ └─ Method: unittest
├─ Class: Packager
│ ├─ Class: GitHub
│ ├─ Class: LocalModule
│ ├─ Class: LocalRepo
│ ├─ Class: Packager
│ ├─ Class: Packages
│ │ └─ Method: all_packages
│ ├─ Class: PyPI
│ ├─ Class: Targets
│ ├─ Method: commit_and_push
│ ├─ Class: commit_editmsg_file
│ ├─ Method: compare_local_to_github
│ ├─ Method: compare_local_to_pypi
│ ├─ Method: create_blank_locally_python
│ ├─ Method: create_github_repo
│ ├─ Method: create_master_branch
│ ├─ Class: examples_folder
│ ├─ Class: exeproduct_folder
│ ├─ Class: exetarget_file
│ ├─ Method: general_bumped_set
│ ├─ Method: general_changed_dict
│ ├─ Class: generate_file
│ ├─ Method: generate_localfiles
│ ├─ Method: get_classifiers
│ ├─ Method: get_dependants
│ ├─ Method: get_dependencies
│ ├─ Method: get_file_from_path
│ ├─ Method: get_filenames
│ ├─ Method: get_files
│ ├─ Method: get_files_by_relative_path
│ ├─ Method: get_latest_release
│ ├─ Method: get_ordered_packagers
│ ├─ Method: get_owners_package_names
│ ├─ Method: get_topics
│ ├─ Class: git_exclude_file
│ ├─ Property: github
│ ├─ Method: github_available
│ ├─ Method: if_publish_bump
│ ├─ Method: if_publish_upload
│ ├─ Class: index_js_file
│ ├─ Class: init_file
│ ├─ Method: is_bumped
│ ├─ Method: is_django
│ ├─ Method: is_exe
│ ├─ Method: is_general
│ ├─ Method: is_node
│ ├─ Method: is_python
│ ├─ Class: license_file
│ ├─ Property: localmodule
│ ├─ Method: localmodule_available
│ ├─ Property: localrepo
│ ├─ Method: localrepo_available
│ ├─ Class: manifest_file
│ ├─ Class: metadata_file
│ ├─ Method: name_is_general
│ ├─ Method: new_clean_environment
│ ├─ Class: npm_ignore_file
│ ├─ Class: org_readme_file
│ ├─ Class: package_json_file
│ ├─ Method: packagers_from_packages
│ ├─ Class: pre_commit_hook_file
│ ├─ Class: pre_push_hook_file
│ ├─ Method: push
│ ├─ Property: pypi
│ ├─ Method: pypi_available
│ ├─ Class: randomtesting_file
│ ├─ Class: readme_file
│ ├─ Method: reserve_name
│ ├─ Method: run_ordered_methods
│ ├─ Class: setup_file
│ ├─ Property: simple_name
│ ├─ Method: summary_packagers
│ ├─ Method: sync_github_metadata
│ ├─ Property: target
│ ├─ Class: test_folder
│ ├─ Class: test_js_file
│ ├─ Class: test_template_file
│ ├─ Method: upload_package_summary
│ ├─ Class: workflow_file
│ ├─ Method: workflow_sync
│ └─ Method: workflow_unittest
└─ Class: PyPI
├─ Class: GitHub
├─ Class: LocalModule
├─ Class: LocalRepo
├─ Class: Packager
├─ Class: PyPI
├─ Method: download
├─ Method: exists
├─ Method: get_date
├─ Method: get_owners_packages
├─ Method: get_tarball_url
├─ Method: get_version
└─ Property: url
Contributions
Issue-creation and discussions are most welcome!
Pull requests are currently not wanted, please discuss with me before investing any time
Todo
| Module | Message |
|:------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| packager_files.py | Fix create_blank, it overwrites current projects pip install. |
| localrepo_python.py | Make sure twine is installed when trying to upload to pypi. |
| localrepo_python.py | Look into private PyPI server where we could also do dry runs for test. |
| metadata_python.py | Dynamic values in DataClass to remove LocalRepos and Metadatas. |
| localrepo.py | Search for imports to list dependencies. |
| pypi.py | Move download to it's own package. |
| pypi.py | Find a faster fetch for latest PyPI version and datetime. |
| readme.py | Sort todos by name to decrease automatic commit changes. |
| github.py | Get and Set GitHub repo private. |
| packages.py | Generate Python file in generalpackager containing general packages. |
| packager_github.py | Setup env vars for project. |
Generated 2023-02-02 13:29 CET for commit master.
%package -n python3-generalpackager
Summary: Tools to interface GitHub, PyPI, NPM and local modules / repos. Used for generating files to keep projects dry and synced. Tailored for ManderaGeneral for now.
Provides: python-generalpackager
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-pip
%description -n python3-generalpackager