Skip to content

Commit 0e9f90c

Browse files
first commit
0 parents  commit 0e9f90c

18 files changed

Lines changed: 1593 additions & 0 deletions
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
---
2+
name: Bug report
3+
about: Create a report to help us improve
4+
title: ''
5+
labels: bug
6+
assignees: ''
7+
8+
---
9+
10+
**Describe the bug**
11+
A clear and concise description of what the bug is.
12+
13+
**To Reproduce**
14+
Steps to reproduce the behavior:
15+
1. Run '...'
16+
2. See error
17+
18+
**Expected behavior**
19+
A clear and concise description of what you expected to happen.
20+
21+
**Screenshots**
22+
If applicable, add screenshots to help explain your problem.
23+
24+
**Environment (please complete the following information):**
25+
- OS: [e.g. Linux, macOS, Windows]
26+
- Terminal: [e.g. Kitty, iTerm2, Windows Terminal]
27+
- Python version: [e.g. 3.11]
28+
- halo version: [e.g. 1.0.0]
29+
30+
**Additional context**
31+
Add any other context about the problem here.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
name: Feature request
3+
about: Suggest an idea for this project
4+
title: ''
5+
labels: enhancement
6+
assignees: ''
7+
8+
---
9+
10+
**Is your feature request related to a problem? Please describe.**
11+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12+
13+
**Describe the solution you'd like**
14+
A clear and concise description of what you want to happen.
15+
16+
**Describe alternatives you've considered**
17+
A clear and concise description of any alternative solutions or features you've considered.
18+
19+
**Additional context**
20+
Add any other context or screenshots about the feature request here.

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
## Description
2+
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context.
3+
4+
Fixes # (issue)
5+
6+
## Type of change
7+
- [ ] Bug fix (non-breaking change which fixes an issue)
8+
- [ ] New feature (non-breaking change which adds functionality)
9+
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
10+
- [ ] This change requires a documentation update
11+
12+
## How Has This Been Tested?
13+
Please describe the tests that you ran to verify your changes.
14+
15+
- [ ] Test A
16+
- [ ] Test B
17+
18+
## Checklist:
19+
- [ ] My code follows the style guidelines of this project
20+
- [ ] I have performed a self-review of my own code
21+
- [ ] I have commented my code, particularly in hard-to-understand areas
22+
- [ ] I have made corresponding changes to the documentation
23+
- [ ] My changes generate no new warnings
24+
- [ ] I have added tests that prove my fix is effective or that my feature works
25+
- [ ] New and existing unit tests pass locally with my changes
26+
- [ ] Any dependent changes have been merged and published in downstream modules

.github/workflows/ci.yml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
pull_request:
7+
branches: [ main ]
8+
9+
jobs:
10+
lint:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- uses: actions/checkout@v4
14+
- name: Set up Python
15+
uses: actions/setup-python@v5
16+
with:
17+
python-version: '3.10'
18+
- name: Install dependencies
19+
run: |
20+
python -m pip install --upgrade pip
21+
pip install ruff mypy isort black numpy
22+
- name: Run ruff
23+
run: ruff check halo
24+
- name: Run isort
25+
- name: Run isort check
26+
run: isort --check-only halo
27+
- name: Run black check
28+
run: black --check halo
29+
- name: Run mypy
30+
run: mypy halo
31+
32+
test:
33+
runs-on: ${{ matrix.os }}
34+
strategy:
35+
matrix:
36+
os: [ubuntu-latest, macos-latest, windows-latest]
37+
python-version: ['3.10', '3.11', '3.12', '3.13']
38+
steps:
39+
- uses: actions/checkout@v4
40+
- name: Set up Python ${{ matrix.python-version }}
41+
uses: actions/setup-python@v5
42+
with:
43+
python-version: ${{ matrix.python-version }}
44+
- name: Install dependencies
45+
run: |
46+
python -m pip install --upgrade pip
47+
pip install .
48+
- name: Verify installation
49+
run: |
50+
halo --help

.gitignore

Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
# Byte-compiled / optimized / DLL files
2+
__pycache__/
3+
*.py[cod]
4+
*$py.class
5+
6+
# C extensions
7+
*.so
8+
9+
# Distribution / packaging
10+
.Python
11+
build/
12+
develop-eggs/
13+
dist/
14+
downloads/
15+
eggs/
16+
.eggs/
17+
lib/
18+
lib64/
19+
parts/
20+
sdist/
21+
var/
22+
wheels/
23+
share/python-wheels/
24+
*.egg-info/
25+
.installed.cfg
26+
*.egg
27+
MANIFEST
28+
29+
# PyInstaller
30+
# Usually these files are written by a python script that controls the FreeBSD build
31+
# and are then used by the installer to create a binary executable file.
32+
*.manifest
33+
*.spec
34+
35+
# Installer logs
36+
pip-log.txt
37+
pip-delete-this-directory.txt
38+
39+
# Unit test / coverage reports
40+
htmlcov/
41+
.tox/
42+
.nox/
43+
.coverage
44+
.coverage.*
45+
.cache
46+
nosetests.xml
47+
coverage.xml
48+
*.cover
49+
*.py,cover
50+
.reports/
51+
pytest_cache/
52+
53+
# Translations
54+
*.mo
55+
*.pot
56+
57+
# Django stuff:
58+
*.log
59+
local_settings.py
60+
db.sqlite3
61+
db.sqlite3-journal
62+
63+
# Flask stuff:
64+
instance/
65+
.webassets-cache
66+
67+
# Scrapy stuff:
68+
.scrapy
69+
70+
# Sphinx documentation
71+
docs/_build/
72+
73+
# PyBuilder
74+
.pybuilder/
75+
target/
76+
77+
# Jupyter Notebook
78+
.ipynb_checkpoints
79+
80+
# IPython
81+
profile_default/
82+
ipython_config.py
83+
84+
# pyenv
85+
# For a library or package, you might want to ignore these files since the Python version is
86+
# controlled by the toolchain. However, for a CLI application it can be useful to include them.
87+
# .python-version
88+
89+
# pipenv
90+
# According to pypa/pipenv#1255, lock files should be placed under version control
91+
# unless the provided hazards apply to your project.
92+
#Pipfile.lock
93+
94+
# poetry
95+
# Similar to Pipfile.lock, poetry.lock should be tracked unless there are good reasons not to.
96+
#poetry.lock
97+
98+
# pdm
99+
# Similar to Pipfile.lock, pdm.lock should be tracked unless there are good reasons not to.
100+
.pdm-python
101+
.pdm-build/
102+
103+
# PEP 582; used by e.g. github.com/pdm-project/pdm
104+
__pypackages__/
105+
106+
# Celery stuff
107+
celerybeat-schedule
108+
celerybeat.pid
109+
110+
# SageMath parsed files
111+
*.sage.py
112+
113+
# Environments
114+
.env
115+
.venv
116+
env/
117+
venv/
118+
ENV/
119+
env.bak/
120+
venv.bak/
121+
122+
# Spyder project settings
123+
.spyderproject
124+
.spyproject
125+
126+
# Rope project settings
127+
.ropeproject
128+
129+
# mkdocs documentation
130+
/site
131+
132+
# mypy
133+
.mypy_cache/
134+
.dmypy.json
135+
dmypy.json
136+
137+
# Pyre type checker
138+
.pyre/
139+
140+
# pytype static analyzer
141+
.pytype/
142+
143+
# Cython debug symbols
144+
cython_debug/
145+
146+
# PyCharm
147+
.idea/
148+
149+
# VS Code
150+
.vscode/
151+
152+
# Project specific
153+
.hatch/

CODE_OF_CONDUCT.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making 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, education, socio-economic status, 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 which could reasonably be considered inappropriate in a professional setting
24+
25+
## Our Responsibilities
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+
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to 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. Representation of a project may be further defined and clarified by project maintainers.
34+
35+
## Enforcement
36+
37+
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [INSERT EMAIL ADDRESS]. 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. Further details of specific enforcement policies may be posted separately.
38+
39+
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
40+
41+
## Attribution
42+
43+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
44+
45+
[homepage]: http://contributor-covenant.org
46+
[version]: http://contributor-covenant.org/version/1/4

CONTRIBUTING.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# Contributing to halo
2+
3+
First off, thank you for considering contributing to halo! It's people like you that make halo such a great tool.
4+
5+
## Code of Conduct
6+
7+
This project and everyone participating in it is governed by the [halo Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code.
8+
9+
## How Can I Contribute?
10+
11+
### Reporting Bugs
12+
13+
This section guides you through submitting a bug report for halo. Following these guidelines helps maintainers and contributors understand your report, reproduce the behavior, and find related reports.
14+
15+
Before creating bug reports, please check this list as you might find out that you don't need to create one. When you are creating a bug report, please include as many details as possible.
16+
17+
- **Check if your terminal supports True Color.** halo requires a terminal that supports 24-bit color.
18+
- **Check your Python version.** halo requires Python 3.10 or later.
19+
- **Check the Issues page** to see if the bug has already been reported.
20+
21+
### Suggesting Enhancements
22+
23+
This section guides you through submitting an enhancement suggestion for halo, including completely new features and minor improvements to existing functionality.
24+
25+
- **Use a clear and descriptive title** for the issue to identify the suggestion.
26+
- **Provide a step-by-step description of the suggested enhancement** in as many details as possible.
27+
- **Explain why this enhancement would be useful** to most halo users.
28+
29+
### Your First Code Contribution
30+
31+
Unsure where to begin contributing to halo? You can start by looking through these `good first issue` and `help wanted` issues:
32+
33+
- `good first issue` - issues which should only require a few lines of code, and a test or two.
34+
- `help wanted` - issues which should be a bit more involved than `good first issue` issues.
35+
36+
#### Local Development
37+
38+
1. Fork the repo and clone it locally.
39+
2. Create a virtual environment: `python -m venv venv`
40+
3. Activate the virtual environment:
41+
- Linux/macOS: `source venv/bin/activate`
42+
- Windows: `venv\Scripts\activate`
43+
4. Install dependencies: `pip install -e .`
44+
5. Run the project: `halo`
45+
46+
### Styleguides
47+
48+
#### Git Commit Messages
49+
50+
- Use the present tense ("Add feature" not "Added feature")
51+
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
52+
- Limit the first line to 72 characters or less
53+
- Reference issues and pull requests liberally after the first line
54+
55+
#### Python Styleguide
56+
57+
- Use [ruff](https://github.com/astral-sh/ruff) for linting and formatting.
58+
- Follow PEP 8 guidelines.
59+
- Use type hints for all function signatures.
60+
- Ensure all tests pass before submitting a pull request.
61+
62+
## Pull Requests
63+
64+
- Fill in the required template.
65+
- Do not include any changes that are not related to the issue.
66+
- Ensure that the CI/CD pipeline passes.
67+
- After a pull request is merged, you can safely delete your branch.

0 commit comments

Comments
 (0)