raztint 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,73 @@
1
+ name: Bug Report
2
+ description: Report a reproducible bug or issue with RazTint.
3
+ title: "[BUG] Short Description of the Issue"
4
+ labels: ["bug", "triage"]
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Thanks for taking the time to report an issue! Please fill out the details below.
10
+
11
+ - type: textarea
12
+ id: reproduction-steps
13
+ attributes:
14
+ label: Reproduction Steps
15
+ description: What steps did you take to encounter the bug?
16
+ placeholder: |
17
+ 1. ...
18
+ 2. ...
19
+ 3. ...
20
+ validations:
21
+ required: true
22
+
23
+ - type: textarea
24
+ id: expected-behavior
25
+ attributes:
26
+ label: Expected Behavior
27
+ description: What did you expect to happen?
28
+ validations:
29
+ required: true
30
+
31
+ - type: textarea
32
+ id: actual-behavior
33
+ attributes:
34
+ label: Actual Behavior
35
+ description: What actually happened? (Include screenshots or terminal output if possible)
36
+ validations:
37
+ required: true
38
+
39
+ - type: input
40
+ id: raztint-version
41
+ attributes:
42
+ label: RazTint Version
43
+ description: What version of the library are you using (e.g., 0.1.0)?
44
+
45
+ - type: dropdown
46
+ id: os
47
+ attributes:
48
+ label: Operating System
49
+ options:
50
+ - Windows
51
+ - macOS
52
+ - Linux (Specify Distribution)
53
+ - Other (Specify in details)
54
+ validations:
55
+ required: true
56
+
57
+ - type: input
58
+ id: terminal-app
59
+ attributes:
60
+ label: Terminal Application
61
+ description: Which terminal are you using (e.g., Windows Terminal, iTerm2, VS Code Integrated)?
62
+
63
+ - type: dropdown
64
+ id: nerd-font
65
+ attributes:
66
+ label: Nerd Font Status
67
+ description: Is a Nerd Font installed and configured in your terminal?
68
+ options:
69
+ - 'Yes, fully installed'
70
+ - 'No'
71
+ - 'Unsure'
72
+ validations:
73
+ required: true
@@ -0,0 +1,9 @@
1
+ blank_issues_enabled: false
2
+ contact_links:
3
+ - name: 💬 Discussions
4
+ url: https://github.com/razbuild/raztint/discussions
5
+ about: Ask questions and discuss ideas with the community
6
+ - name: 📚 Documentation
7
+ url: https://github.com/razbuild/raztint#readme
8
+ about: Check the README for usage examples and API reference
9
+
@@ -0,0 +1,57 @@
1
+ name: Feature Request
2
+ description: Suggest an idea or enhancement for RazTint
3
+ title: "[FEAT] Concise Description of the Feature"
4
+ labels: ["enhancement", "triage"]
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Thanks for suggesting a new feature! Please provide as much detail as possible.
10
+
11
+ - type: textarea
12
+ id: problem
13
+ attributes:
14
+ label: Is your feature request related to a problem?
15
+ description: A clear and concise description of what the problem is.
16
+ placeholder: I'm always frustrated when...
17
+ validations:
18
+ required: false
19
+
20
+ - type: textarea
21
+ id: solution
22
+ attributes:
23
+ label: Describe the solution you'd like
24
+ description: A clear and concise description of what you want to happen.
25
+ placeholder: I would like to see...
26
+ validations:
27
+ required: true
28
+
29
+ - type: textarea
30
+ id: alternatives
31
+ attributes:
32
+ label: Describe alternatives you've considered
33
+ description: A clear and concise description of any alternative solutions or features you've considered.
34
+ validations:
35
+ required: false
36
+
37
+ - type: textarea
38
+ id: use-case
39
+ attributes:
40
+ label: Use Case
41
+ description: How would this feature be used? Please provide examples or code snippets.
42
+ placeholder: |
43
+ Example usage:
44
+ ```python
45
+ from raztint import ...
46
+ ```
47
+ validations:
48
+ required: false
49
+
50
+ - type: textarea
51
+ id: additional-context
52
+ attributes:
53
+ label: Additional context
54
+ description: Add any other context, examples, or screenshots about the feature request here.
55
+ validations:
56
+ required: false
57
+
@@ -0,0 +1,23 @@
1
+ ## Description
2
+
3
+ Please describe the nature of your changes and link to the relevant issue(s) if applicable.
4
+
5
+ Fixes # (issue number if applicable)
6
+
7
+ ## Checklist
8
+
9
+ Before submitting your pull request, please ensure the following:
10
+
11
+ - [ ] I have read the [CONTRIBUTING.md](https://github.com/razbuild/raztint/blob/main/CONTRIBUTING.md) guidelines.
12
+ - [ ] My code follows the project's style guidelines (passed linting).
13
+ - [ ] I have added tests to cover my changes (if applicable).
14
+ - [ ] All existing tests pass.
15
+ - [ ] Documentation has been updated (if necessary, for API changes).
16
+ - [ ] This PR does not introduce any breaking changes to the public API.
17
+
18
+ ## Type of Change
19
+
20
+ - [ ] Bug fix (non-breaking change which fixes an issue)
21
+ - [ ] New feature (non-breaking change which adds functionality)
22
+ - [ ] Documentation update
23
+ - [ ] Code quality/refactoring (no change in functionality)
@@ -0,0 +1,72 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [master]
6
+ pull_request:
7
+ branches: [master]
8
+
9
+ concurrency:
10
+ group: ${{ github.workflow }}-${{ github.ref }}
11
+ cancel-in-progress: true
12
+
13
+ jobs:
14
+ lint:
15
+ name: Lint & Format
16
+ runs-on: ubuntu-latest
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+
20
+ - name: Set up Python
21
+ uses: actions/setup-python@v5
22
+ with:
23
+ python-version: "3.13"
24
+ allow-prereleases: true
25
+ cache: pip
26
+
27
+ - name: Install tools
28
+ run: pip install black ruff mypy
29
+
30
+ - name: Black
31
+ run: black --check src tests
32
+
33
+ - name: Ruff
34
+ run: ruff check src tests
35
+
36
+ - name: Mypy
37
+ run: mypy src
38
+
39
+ test:
40
+ name: Test (${{ matrix.os }})
41
+ runs-on: ${{ matrix.os }}
42
+ strategy:
43
+ fail-fast: false
44
+ matrix:
45
+ os: [ubuntu-latest, macos-latest, windows-latest]
46
+
47
+ steps:
48
+ - uses: actions/checkout@v4
49
+
50
+ - name: Set up Python
51
+ uses: actions/setup-python@v5
52
+ with:
53
+ python-version: "3.13"
54
+ allow-prereleases: true
55
+
56
+ - name: Install dependencies
57
+ run: pip install coverage pytest
58
+
59
+ - name: Run tests
60
+ run: |
61
+ coverage run --source=src/raztint -m pytest
62
+ coverage xml
63
+ coverage report -m
64
+ env:
65
+ PYTHONPATH: ${{ github.workspace }}/src
66
+
67
+ - name: Upload coverage
68
+ if: matrix.os == 'ubuntu-latest'
69
+ uses: codecov/codecov-action@v4
70
+ with:
71
+ files: coverage.xml
72
+ fail_ci_if_error: false
@@ -0,0 +1,30 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+
7
+ jobs:
8
+ publish:
9
+ runs-on: ubuntu-latest
10
+ environment: pypi
11
+ permissions:
12
+ id-token: write
13
+
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+
17
+ - name: Set up Python
18
+ uses: actions/setup-python@v5
19
+ with:
20
+ python-version: "3.13"
21
+ allow-prereleases: true
22
+
23
+ - name: Install build tools
24
+ run: pip install build
25
+
26
+ - name: Build package
27
+ run: python -m build
28
+
29
+ - name: Publish to PyPI
30
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,136 @@
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
+ pip-wheel-metadata/
24
+ share/python-wheels/
25
+ *.egg-info/
26
+ .installed.cfg
27
+ *.egg
28
+ MANIFEST
29
+
30
+ # PyInstaller
31
+ *.manifest
32
+ *.spec
33
+
34
+ # Installer logs
35
+ pip-log.txt
36
+ pip-delete-this-directory.txt
37
+
38
+ # Unit test / coverage reports
39
+ htmlcov/
40
+ .tox/
41
+ .nox/
42
+ .coverage
43
+ .coverage.*
44
+ .cache
45
+ nosetests.xml
46
+ coverage.xml
47
+ *.cover
48
+ *.py,cover
49
+ .hypothesis/
50
+ .pytest_cache/
51
+ .coverage.*
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
+ target/
75
+
76
+ # Jupyter Notebook
77
+ .ipynb_checkpoints
78
+
79
+ # IPython
80
+ profile_default/
81
+ ipython_config.py
82
+
83
+ # pyenv
84
+ .python-version
85
+
86
+ # pipenv
87
+ Pipfile.lock
88
+
89
+ # PEP 582
90
+ __pypackages__/
91
+
92
+ # Celery stuff
93
+ celerybeat-schedule
94
+ celerybeat.pid
95
+
96
+ # SageMath parsed files
97
+ *.sage.py
98
+
99
+ # Environments
100
+ .env
101
+ .venv
102
+ env/
103
+ venv/
104
+ ENV/
105
+ env.bak/
106
+ venv.bak/
107
+
108
+ # Spyder project settings
109
+ .spyderproject
110
+ .spyproject
111
+
112
+ # Rope project settings
113
+ .ropeproject
114
+
115
+ # mkdocs documentation
116
+ /site
117
+
118
+ # mypy
119
+ .mypy_cache/
120
+ .dmypy.json
121
+ dmypy.json
122
+
123
+ # Pyre type checker
124
+ .pyre/
125
+
126
+ # IDEs
127
+ .vscode/
128
+ .idea/
129
+ *.swp
130
+ *.swo
131
+ *~
132
+
133
+ # OS
134
+ .DS_Store
135
+ Thumbs.db
136
+
@@ -0,0 +1,143 @@
1
+ # Contributing to RazTint
2
+
3
+ Thank you for your interest in contributing to RazTint! We welcome all contributions, big or small.
4
+
5
+ ## How to Report Issues
6
+
7
+ If you find a bug or have a feature request, please use the provided templates in the [Issues tab](https://github.com/razbuild/raztint/issues):
8
+ - Use the **Bug Report** form for errors and unexpected behavior.
9
+ - Use the **Feature Request** template for new ideas and enhancements.
10
+
11
+ When reporting bugs, please include:
12
+ - RazTint version
13
+ - Python version
14
+ - Operating system
15
+ - Terminal application
16
+ - Nerd Font status (if relevant)
17
+ - Steps to reproduce
18
+ - Expected vs actual behavior
19
+
20
+ ## Development Setup
21
+
22
+ To set up your local environment for development:
23
+
24
+ 1. **Fork** the repository and clone it locally:
25
+ ```bash
26
+ git clone https://github.com/YOUR_USERNAME/raztint.git
27
+ cd raztint
28
+ ```
29
+
30
+ 2. Create a virtual environment:
31
+ ```bash
32
+ python -m venv venv
33
+ source venv/bin/activate # On Windows: .\venv\Scripts\activate
34
+ ```
35
+
36
+ 3. Install the project in editable mode with development dependencies:
37
+ ```bash
38
+ pip install -e .[dev]
39
+ ```
40
+
41
+ This installs:
42
+ - `pytest` - Testing framework
43
+ - `ruff` - Linter
44
+ - `black` - Code formatter
45
+ - `mypy` - Type checker
46
+ - `coverage` - Test coverage tool
47
+
48
+ ## Running Tests and Quality Checks
49
+
50
+ Before submitting a Pull Request, please ensure all quality checks pass:
51
+
52
+ ### Run Tests
53
+ ```bash
54
+ pytest
55
+ ```
56
+
57
+ ### Run Tests with Coverage
58
+ ```bash
59
+ pytest --cov=src/raztint --cov-report=html --cov-report=term
60
+ ```
61
+
62
+ This will:
63
+ - Run all tests
64
+ - Generate coverage report in terminal
65
+ - Create an HTML report in `htmlcov/` directory (open `htmlcov/index.html` in browser)
66
+
67
+ ### Run Linting
68
+ ```bash
69
+ ruff check .
70
+ ```
71
+
72
+ ### Format Code
73
+ ```bash
74
+ black .
75
+ ```
76
+
77
+ ### Run Type Checking
78
+ ```bash
79
+ mypy .
80
+ ```
81
+
82
+ ### Run All Checks
83
+ You can run all checks in sequence:
84
+ ```bash
85
+ ruff check . && black --check . && mypy . && pytest --cov=src/raztint --cov-report=term
86
+ ```
87
+
88
+ ## Code Style
89
+
90
+ - Follow PEP 8 style guidelines
91
+ - Use type hints for all functions and methods
92
+ - Keep functions focused and small
93
+ - Add docstrings for public APIs
94
+ - Write tests for new features and bug fixes
95
+
96
+ ## Submitting a Pull Request
97
+
98
+ 1. **Create a new branch** for your changes:
99
+ ```bash
100
+ git checkout -b fix/my-issue
101
+ # or
102
+ git checkout -b feat/new-feature
103
+ ```
104
+
105
+ 2. **Make your changes** and commit them with descriptive messages:
106
+ ```bash
107
+ git add .
108
+ git commit -m "fix: description of what was fixed"
109
+ ```
110
+
111
+ 3. **Push your branch** to your fork:
112
+ ```bash
113
+ git push origin fix/my-issue
114
+ ```
115
+
116
+ 4. **Open a Pull Request** against the `master` branch of the original RazTint repository.
117
+ - Fill out the Pull Request Template completely
118
+ - Link to any related issues
119
+ - Ensure all CI checks pass
120
+
121
+ ## Commit Message Guidelines
122
+
123
+ Use clear, descriptive commit messages:
124
+ - `fix:` for bug fixes
125
+ - `feat:` for new features
126
+ - `docs:` for documentation changes
127
+ - `refactor:` for code refactoring
128
+ - `test:` for test additions/changes
129
+ - `chore:` for maintenance tasks
130
+
131
+ Example: `fix: correct Nerd Font detection on Windows`
132
+
133
+ ## Testing Guidelines
134
+
135
+ - Write tests for all new features
136
+ - Ensure existing tests continue to pass
137
+ - Test on multiple platforms if possible (Linux, macOS, Windows)
138
+ - Test with and without Nerd Fonts
139
+ - Test color detection in various scenarios
140
+
141
+ ## Questions?
142
+
143
+ If you have questions about contributing, feel free to open an issue with the `question` label.
raztint-0.1.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Raz
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.