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
2([library]) --> 4([vector])
1([tool]) --> 2([library])
3([file]) --> 5([packager])
2([library]) --> 3([file])
0([import]) --> 2([library])
0([import]) --> 3([file])
2([library]) --> 5([packager])
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 | ✔️ |
| setuptools | ✔️ |
| wheel | ✔️ |
| twine | ✔️ |
Information
| Package | Ver | Latest Release | Python | Platform | Cover |
|:---------------------------------------------------------------------|:---------------------------------------------------|:----------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------|:--------|
| [generalpackager](https://github.com/ManderaGeneral/generalpackager) | [0.5.9](https://pypi.org/project/generalpackager/) | 2023-06-05 11:30 CEST | [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 | 67.8 % |
Attributes
Module: generalpackager
├─ Class: GitHub
│ ├─ Class: GitHub
│ ├─ Class: LocalModule
│ ├─ Class: LocalRepo
│ ├─ Class: Packager
│ ├─ Class: PyPI
│ ├─ Method: api_url
│ ├─ Method: format_version
│ ├─ Method: get_description
│ ├─ Method: get_topics
│ ├─ Method: get_website
│ ├─ Method: git_clone_command
│ ├─ Method: is_general
│ ├─ Method: name_is_general
│ ├─ Property: pip_install_command
│ ├─ Method: request_kwargs
│ ├─ Method: set_description
│ ├─ Method: set_topics
│ ├─ Method: set_website
│ ├─ Property: simple_name
│ ├─ Property: ssh_url
│ └─ Method: tag_is_version
├─ 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
│ ├─ Class: commit_editmsg_file
│ ├─ Method: commit_message
│ ├─ Method: commit_sha
│ ├─ Method: commit_sha_short
│ ├─ Class: examples_folder
│ ├─ Class: exeproduct_folder
│ ├─ Class: exetarget_file
│ ├─ Method: exists
│ ├─ Method: format_file
│ ├─ Class: generate_file
│ ├─ Method: get_all_versions
│ ├─ Method: get_examples_path
│ ├─ Method: get_exeproduct_path
│ ├─ Method: get_exetarget_path
│ ├─ Method: get_file_from_path
│ ├─ Method: get_filenames
│ ├─ Method: get_files
│ ├─ Method: get_files_by_relative_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_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
│ ├─ Class: git_exclude_file
│ ├─ Method: git_missing_credentials
│ ├─ Method: git_nothing_to_commit
│ ├─ Class: gitignore_file
│ ├─ Class: index_js_file
│ ├─ Method: init
│ ├─ Class: init_file
│ ├─ Method: is_django
│ ├─ Method: is_exe
│ ├─ Method: is_general
│ ├─ Method: is_node
│ ├─ Method: is_python
│ ├─ Class: license_file
│ ├─ Class: manifest_file
│ ├─ Property: metadata
│ ├─ Method: metadata_exists
│ ├─ Class: metadata_file
│ ├─ Method: name_is_general
│ ├─ Class: npm_ignore_file
│ ├─ Class: org_readme_file
│ │ └─ Method: get_org_description_markdown
│ ├─ Class: package_json_file
│ ├─ Class: pre_commit_hook_file
│ ├─ Class: pre_push_hook_file
│ ├─ Method: push
│ ├─ Class: readme_file
│ │ ├─ Method: get_attributes_markdown
│ │ ├─ Method: get_badges_dict
│ │ ├─ Method: get_contributions_markdown
│ │ ├─ Method: get_description_markdown
│ │ ├─ Method: get_examples_markdown
│ │ ├─ Method: get_footnote_markdown
│ │ ├─ Method: get_information_markdown
│ │ ├─ Method: get_installation_markdown
│ │ ├─ Method: get_mermaid_markdown
│ │ ├─ Method: get_todos
│ │ ├─ Method: get_todos_markdown
│ │ ├─ Method: github_link
│ │ ├─ Method: github_link_path_line
│ │ └─ Method: set_collapsible
│ ├─ Method: repo_exists
│ ├─ Class: setup_file
│ │ └─ Method: get_classifiers
│ ├─ Property: simple_name
│ ├─ Method: targetted
│ ├─ Class: test_folder
│ ├─ Class: test_js_file
│ ├─ Class: test_template_file
│ ├─ Class: workflow_dev_file
│ └─ Class: workflow_file
│ └─ Method: codeline
├─ Class: LocalRepo_Node
├─ Class: LocalRepo_Python
│ ├─ Method: get_python_exe_path
│ └─ Method: set_easy_install_value
├─ 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
│ ├─ 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
│ ├─ Class: gitignore_file
│ ├─ 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: 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_dev_file
│ ├─ Class: workflow_file
│ ├─ Method: workflow_packagers
│ ├─ Method: workflow_sync
│ └─ Method: workflow_unittest
├─ Class: PyPI
│ ├─ Class: GitHub
│ ├─ Class: LocalModule
│ ├─ Class: LocalRepo
│ ├─ Class: Packager
│ ├─ Class: PyPI
│ ├─ Method: is_general
│ ├─ Property: json_endpoint
│ ├─ Method: name_is_general
│ └─ Property: simple_name
└─ Class: Venv
├─ Method: active
├─ Method: create_venv
├─ Property: cruds
├─ Method: deactivate
├─ Method: debug
├─ Method: easy_install_path
├─ Method: exe_name
├─ Method: exists
├─ Method: get_active_python
├─ Method: get_active_venv
├─ Method: get_active_venv_path
├─ Method: list_python_versions
├─ Method: list_venv_paths
├─ Method: python_exe_path
├─ Method: python_home_exe_path
├─ Method: python_home_path
├─ Method: python_path
├─ Method: python_sys_executable_path
├─ Method: python_version
├─ Method: pyvenv_cfg_path
├─ Method: scripts_path
└─ Method: site_packages_path
Contributions
Issue-creation, discussions and pull requests are most welcome!
Todo
| Module | Message |
|:------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 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. |
| localrepo.py | Search for imports to list dependencies. |
| readme.py | Sort todos by name to decrease automatic commit changes. |
| target.py | Generate Python file in generalpackager containing general packages. |
| github.py | Get and Set GitHub repo private. |
| pypi.py | Move download to it's own package. |
| pypi.py | Find a faster fetch for latest PyPI version and datetime. |
| packager_files.py | Fix create_blank, it overwrites current projects pip install. |
| packager_api.py | Check that every API has create an *_available method |
| packager_github.py | Setup env vars for project. |
Generated 2023-06-05 11:30 CEST 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