Skip to content

Commit 3f12a18

Browse files
committed
Merge branch 'dev'
2 parents 1a302d2 + 4571d84 commit 3f12a18

File tree

10 files changed

+486
-0
lines changed

10 files changed

+486
-0
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* @muhammad-fiaz

.github/FUNDING.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# These are supported funding model platforms
2+
3+
github: [muhammad-fiaz] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
4+
patreon: # Replace with a single Patreon username
5+
open_collective: # Replace with a single Open Collective username
6+
ko_fi: # Replace with a single Ko-fi username
7+
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8+
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9+
liberapay: # Replace with a single Liberapay username
10+
issuehunt: # Replace with a single IssueHunt username
11+
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
12+
polar: # Replace with a single Polar username
13+
buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
14+
thanks_dev: # Replace with a single thanks.dev username
15+
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']

.github/dependabot.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# To get started with Dependabot version updates, you'll need to specify which
2+
# package ecosystems to update and where the package manifests are located.
3+
# Please see the documentation for all configuration options:
4+
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
5+
6+
version: 2
7+
updates:
8+
- package-ecosystem: "pip" # See documentation for possible values
9+
directory: "/" # Location of package manifests
10+
schedule:
11+
interval: "weekly"

.gitignore

Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,169 @@
1+
2+
# IntelliJ project files
3+
.idea
4+
*.iml
5+
out
6+
gen
7+
# Byte-compiled / optimized / DLL files
8+
__pycache__/
9+
*.py[cod]
10+
*$py.class
11+
12+
# C extensions
13+
*.so
14+
15+
# Distribution / packaging
16+
.Python
17+
build/
18+
develop-eggs/
19+
dist/
20+
downloads/
21+
eggs/
22+
.eggs/
23+
lib/
24+
lib64/
25+
parts/
26+
sdist/
27+
var/
28+
wheels/
29+
share/python-wheels/
30+
*.egg-info/
31+
.installed.cfg
32+
*.egg
33+
MANIFEST
34+
35+
# PyInstaller
36+
# Usually these files are written by a python script from a template
37+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
38+
*.manifest
39+
*.spec
40+
41+
# Installer logs
42+
pip-log.txt
43+
pip-delete-this-directory.txt
44+
45+
# Unit test / coverage reports
46+
htmlcov/
47+
.tox/
48+
.nox/
49+
.coverage
50+
.coverage.*
51+
.cache
52+
nosetests.xml
53+
coverage.xml
54+
*.cover
55+
*.py,cover
56+
.hypothesis/
57+
.pytest_cache/
58+
cover/
59+
60+
# Translations
61+
*.mo
62+
*.pot
63+
64+
# Django stuff:
65+
*.log
66+
local_settings.py
67+
db.sqlite3
68+
db.sqlite3-journal
69+
70+
# Flask stuff:
71+
instance/
72+
.webassets-cache
73+
74+
# Scrapy stuff:
75+
.scrapy
76+
77+
# Sphinx documentation
78+
docs/_build/
79+
80+
# PyBuilder
81+
.pybuilder/
82+
target/
83+
84+
# Jupyter Notebook
85+
.ipynb_checkpoints
86+
87+
# IPython
88+
profile_default/
89+
ipython_config.py
90+
91+
# pyenv
92+
# For a library or package, you might want to ignore these files since the code is
93+
# intended to run in multiple environments; otherwise, check them in:
94+
# .python-version
95+
96+
# pipenv
97+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
98+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
99+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
100+
# install all needed dependencies.
101+
#Pipfile.lock
102+
103+
# poetry
104+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
105+
# This is especially recommended for binary packages to ensure reproducibility, and is more
106+
# commonly ignored for libraries.
107+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
108+
#poetry.lock
109+
110+
# pdm
111+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
112+
#pdm.lock
113+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
114+
# in version control.
115+
# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
116+
.pdm.toml
117+
.pdm-python
118+
.pdm-build/
119+
120+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
121+
__pypackages__/
122+
123+
# Celery stuff
124+
celerybeat-schedule
125+
celerybeat.pid
126+
127+
# SageMath parsed files
128+
*.sage.py
129+
130+
# Environments
131+
.env
132+
.venv
133+
env/
134+
venv/
135+
ENV/
136+
env.bak/
137+
venv.bak/
138+
139+
# Spyder project settings
140+
.spyderproject
141+
.spyproject
142+
143+
# Rope project settings
144+
.ropeproject
145+
146+
# mkdocs documentation
147+
/site
148+
149+
# mypy
150+
.mypy_cache/
151+
.dmypy.json
152+
dmypy.json
153+
154+
# Pyre type checker
155+
.pyre/
156+
157+
# pytype static type analyzer
158+
.pytype/
159+
160+
# Cython debug symbols
161+
cython_debug/
162+
163+
# PyCharm
164+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
165+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
166+
# and can be added to the global gitignore or merged into this file. For a more nuclear
167+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
168+
#.idea/
169+

CODE_OF_CONDUCT.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Code of Conduct
2+
3+
## Introduction
4+
5+
We, as contributors and maintainers, pledge to make participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
6+
7+
## Our Standards
8+
9+
Examples of behavior that contributes to creating a positive environment include:
10+
11+
- Using welcoming and inclusive language
12+
- Being respectful of differing viewpoints and experiences
13+
- Gracefully accepting constructive criticism
14+
- Focusing on what is best for the community
15+
- Showing empathy towards other community members
16+
17+
Examples of unacceptable behavior by participants include:
18+
19+
- The use of sexualized language or imagery and unwelcome sexual attention or advances
20+
- Trolling, insulting/derogatory comments, and personal or political attacks
21+
- Public or private harassment
22+
- Publishing others' private information, such as a physical or electronic address, without explicit permission
23+
- Other conduct that could reasonably be considered inappropriate in a professional setting
24+
25+
## Responsibilities of Maintainers
26+
27+
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
28+
29+
Maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned with this Code of Conduct or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
30+
31+
## Scope
32+
33+
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.
34+
35+
## Enforcement
36+
37+
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project maintainer. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident.
38+
39+
## Attribution
40+
41+
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 2.0, available at [https://www.contributor-covenant.org/version/2/0/code_of_conduct.html](https://www.contributor-covenant.org/version/2/0/code_of_conduct.html).
42+
43+
For answers to common questions about this code of conduct, see [https://www.contributor-covenant.org/faq](https://www.contributor-covenant.org/faq).

README.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
<h1 align="center">
2+
Setups Python
3+
</h1>
4+
<p align="center">
5+
<img src="https://img.shields.io/pypi/v/setups.svg" alt="PyPI Version">
6+
<img src="https://img.shields.io/github/license/muhammad-fiaz/setups-python.svg" alt="License Badge">
7+
<img src="https://img.shields.io/pypi/pyversions/setups.svg" alt="Python Version">
8+
<img src="https://img.shields.io/pypi/dm/setups.svg" alt="Downloads">
9+
<img src="https://img.shields.io/github/issues-pr/muhammad-fiaz/setups-python.svg" alt="PRs">
10+
<img src="https://img.shields.io/github/issues/muhammad-fiaz/setups-python.svg" alt="Issues">
11+
<img src="https://img.shields.io/github/contributors/muhammad-fiaz/setups-python.svg" alt="Contributors">
12+
<img src="https://img.shields.io/github/last-commit/muhammad-fiaz/setups-python" alt="Last Commit">
13+
<img src="https://img.shields.io/github/commit-activity/m/muhammad-fiaz/setups-python.svg" alt="Commit Activity">
14+
<img src="https://img.shields.io/github/license/muhammad-fiaz/setups-python.svg" alt="License Badge">
15+
</p>
16+
17+
**Setups Python** is a Python CLI tool to generate a `setup.py` file for your Python project dynamically. It prompts the user for key project details like dependencies, license types, and classifiers.
18+
19+
## Features
20+
21+
- Generate a `setup.py` with interactive prompts
22+
- Supports common open-source licenses
23+
- Define project metadata including dependencies, version, and URLs
24+
- Integrate with PyPI and other tools seamlessly
25+
26+
## Installation
27+
28+
```bash
29+
pip install setups
30+
```
31+
32+
## Usage
33+
34+
To create a `setup.py` file for your new project:
35+
36+
```bash
37+
setup new <project_name>
38+
```
39+
40+
## Example
41+
42+
```bash
43+
$ setup new my-awesome-project
44+
Version (e.g., 0.1.0): 0.1.0
45+
Short project description: An awesome project
46+
License type: MIT
47+
Minimum Python version required: 3.8
48+
Dependencies: numpy, requests
49+
```
50+
51+
## Contributing
52+
53+
We welcome contributions! Fork the repository, create a feature branch, and submit a pull request. Please follow the steps below:
54+
55+
1. Fork the repository
56+
2. Create a new branch: `git checkout -b feature-name`
57+
3. Commit your changes: `git commit -am 'Add feature'`
58+
4. Push to your fork: `git push origin feature-name`
59+
5. Submit a pull request
60+
61+
## Code of Conduct
62+
63+
By participating in this project, you agree to follow our [Code of Conduct](CODE_OF_CONDUCT.md).
64+
65+
## License
66+
67+
MIT License. See the [LICENSE](LICENSE) file for more details.

setup.py

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
from setuptools import setup, find_packages
2+
3+
VERSION = "0.0.1" # Version of your package
4+
DESCRIPTION = 'Setups: Dynamically generate setup.py for Python projects.'
5+
6+
# Reading the long description from README.md if exists
7+
try:
8+
with open("README.md", "r", encoding="utf-8") as fh:
9+
LONG_DESCRIPTION = fh.read()
10+
except FileNotFoundError:
11+
LONG_DESCRIPTION = DESCRIPTION # Fallback to DESCRIPTION if README.md is missing
12+
13+
setup(
14+
name="setups", # Name of your package
15+
version=VERSION, # Package version
16+
author="Muhammad Fiaz", # Author name
17+
author_email="contact@muhammadfiaz.com", # Author's email
18+
description=DESCRIPTION, # Short description
19+
long_description=LONG_DESCRIPTION, # Detailed description from README.md
20+
long_description_content_type="text/markdown", # Format of the long description
21+
url="https://github.com/muhammad-fiaz/setups-python", # URL to the project's GitHub page
22+
packages=find_packages(), # Automatically find all packages in the directory
23+
classifiers=[ # List of classifiers to categorize your package
24+
"Development Status :: 3 - Alpha",
25+
"Intended Audience :: Developers",
26+
"Programming Language :: Python :: 3",
27+
"License :: OSI Approved :: MIT License",
28+
"Operating System :: OS Independent",
29+
],
30+
python_requires='>=3.6', # Minimum Python version required
31+
install_requires=[ # Dependencies needed to run the package
32+
'click', # For creating command-line interfaces
33+
],
34+
setup_requires=['pytest-runner'], # For running tests during installation
35+
tests_require=['pytest'], # Dependencies for running tests
36+
license='MIT', # License for the project
37+
project_urls={ # Additional URLs related to your project
38+
'Source Code': 'https://github.com/muhammad-fiaz/setups-python',
39+
'Bug Tracker': 'https://github.com/muhammad-fiaz/setups-python/issues',
40+
'Documentation': 'https://github.com/muhammad-fiaz/setups-python#readme',
41+
},
42+
entry_points={ # CLI Entry Point
43+
'console_scripts': [
44+
'setup = setups.cli:generate_setup', # This links 'setup' command to generate_setup function
45+
],
46+
},
47+
)

setup/__init__.py

Whitespace-only changes.

0 commit comments

Comments
 (0)