isobar-cli 1.0.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.
- isobar_cli-1.0.0/LICENSE +21 -0
- isobar_cli-1.0.0/PKG-INFO +180 -0
- isobar_cli-1.0.0/README.md +147 -0
- isobar_cli-1.0.0/pyproject.toml +112 -0
- isobar_cli-1.0.0/setup.cfg +4 -0
- isobar_cli-1.0.0/src/isobar_cli/__init__.py +1 -0
- isobar_cli-1.0.0/src/isobar_cli/api.py +248 -0
- isobar_cli-1.0.0/src/isobar_cli/location.py +30 -0
- isobar_cli-1.0.0/src/isobar_cli/main.py +130 -0
- isobar_cli-1.0.0/src/isobar_cli/ui.py +366 -0
- isobar_cli-1.0.0/src/isobar_cli.egg-info/PKG-INFO +180 -0
- isobar_cli-1.0.0/src/isobar_cli.egg-info/SOURCES.txt +19 -0
- isobar_cli-1.0.0/src/isobar_cli.egg-info/dependency_links.txt +1 -0
- isobar_cli-1.0.0/src/isobar_cli.egg-info/entry_points.txt +2 -0
- isobar_cli-1.0.0/src/isobar_cli.egg-info/requires.txt +9 -0
- isobar_cli-1.0.0/src/isobar_cli.egg-info/top_level.txt +1 -0
- isobar_cli-1.0.0/tests/test_api.py +185 -0
- isobar_cli-1.0.0/tests/test_isobar_extra.py +379 -0
- isobar_cli-1.0.0/tests/test_location.py +28 -0
- isobar_cli-1.0.0/tests/test_main.py +94 -0
- isobar_cli-1.0.0/tests/test_ui.py +113 -0
isobar_cli-1.0.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Beau Bremer / KnowOneActual
|
|
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.
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: isobar-cli
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: A visually pleasing terminal weather tool focusing on Real Feel and Windchill.
|
|
5
|
+
Author: Beau Bremer / KnowOneActual
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/KnowOneActual/isobar-cli
|
|
8
|
+
Project-URL: Repository, https://github.com/KnowOneActual/isobar-cli
|
|
9
|
+
Project-URL: Issues, https://github.com/KnowOneActual/isobar-cli/issues
|
|
10
|
+
Project-URL: Changelog, https://github.com/KnowOneActual/isobar-cli/blob/main/CHANGELOG.md
|
|
11
|
+
Keywords: weather,cli,terminal,meteo,forecast
|
|
12
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
13
|
+
Classifier: Environment :: Console
|
|
14
|
+
Classifier: Intended Audience :: End Users/Desktop
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Topic :: Utilities
|
|
21
|
+
Requires-Python: >=3.8
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
License-File: LICENSE
|
|
24
|
+
Requires-Dist: rich>=13.0.0
|
|
25
|
+
Requires-Dist: requests>=2.31.0
|
|
26
|
+
Requires-Dist: typer>=0.9.0
|
|
27
|
+
Requires-Dist: timezonefinder>=6.0.0
|
|
28
|
+
Provides-Extra: test
|
|
29
|
+
Requires-Dist: pytest>=7.0.0; extra == "test"
|
|
30
|
+
Requires-Dist: requests-mock>=1.11.0; extra == "test"
|
|
31
|
+
Requires-Dist: pytest-cov>=4.1.0; extra == "test"
|
|
32
|
+
Dynamic: license-file
|
|
33
|
+
|
|
34
|
+
# Isobar CLI
|
|
35
|
+
|
|
36
|
+

|
|
37
|
+

|
|
38
|
+

|
|
39
|
+

|
|
40
|
+

|
|
41
|
+

|
|
42
|
+
|
|
43
|
+
A terminal weather tool designed to give you a fast, clean sense of what the weather **feels like** outside; right now and for the week ahead. Built with Python and Rich.
|
|
44
|
+
|
|
45
|
+
## Philosophy
|
|
46
|
+
|
|
47
|
+
Isobar CLI answers a simple question: **"What does it feel like outside right now, and how do I prepare to be outside?"**
|
|
48
|
+
|
|
49
|
+
Most weather apps overwhelm you with data. Isobar strips away everything except what matters when you're deciding whether to grab a jacket.
|
|
50
|
+
|
|
51
|
+
### Design Principles
|
|
52
|
+
- **Essential over comprehensive** — Show Real Feel, not 47 data points
|
|
53
|
+
- **Terminal-native** — Built for quick checks in your workflow
|
|
54
|
+
- **Zero friction** — No API keys, no config files
|
|
55
|
+
- **Information density** — Clean, borderless UI
|
|
56
|
+
- **Intentional features** — Each must answer: *"Does this help understand what it feels like outside?"*
|
|
57
|
+
|
|
58
|
+
## ✨ Features
|
|
59
|
+
|
|
60
|
+
- **Auto-Location** — `isobar` detects your city automatically 🌍
|
|
61
|
+
- **Weather Condition Icons** — WMO-standard emoji + plain-English description (☀️ Clear sky, 🌨️ Moderate snow, ⛈️ Thunderstorm)
|
|
62
|
+
- **Real Feel** — Apparent temperature (what it *feels* like)
|
|
63
|
+
- **Air Quality Index** — US AQI with health classifications 😷
|
|
64
|
+
- **7-Day Forecast** — Full week outlook with color-coded highs/lows and daily rain %
|
|
65
|
+
- **Hourly Outlook** — Next 12 hours of temp and rain chance (`--hourly`)
|
|
66
|
+
- **Multiple Cities** — Compare weather across several cities at once (side-by-side)
|
|
67
|
+
- **Smart Suggestions** — Fuzzy city name matching if you make a typo
|
|
68
|
+
- **Shell Completion** — Tab-complete city names from your search history
|
|
69
|
+
- **Dynamic Timezone** — Sunrise/sunset always shown in the city's local time, not yours
|
|
70
|
+
- **Precipitation Forecast** — Next 6h rain/snow chance + totals
|
|
71
|
+
- **Smart Caching** — 15-min cache per city (`~/.cache/isobar/`)
|
|
72
|
+
- **Color-Coded Temps** — Cyan → Blue → Green → Yellow → Red
|
|
73
|
+
- **Metric Support** — `--metric` or `-m` for Celsius, km/h, and mm
|
|
74
|
+
- **No API Keys** — Free Open-Meteo + ip-api.com
|
|
75
|
+
- **Zero Config** — Works instantly after `pip install .`
|
|
76
|
+
|
|
77
|
+
## 🚀 Installation
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
git clone https://github.com/KnowOneActual/isobar-cli.git
|
|
81
|
+
cd isobar-cli
|
|
82
|
+
pip install .
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## 📱 Usage
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
# Auto-detect your location
|
|
89
|
+
isobar
|
|
90
|
+
|
|
91
|
+
# Specify a city
|
|
92
|
+
isobar Chicago
|
|
93
|
+
isobar London Tokyo Paris # Multiple cities
|
|
94
|
+
isobar "New York" # Use quotes for multi-word cities
|
|
95
|
+
|
|
96
|
+
# Hourly outlook (next 12h)
|
|
97
|
+
isobar --hourly
|
|
98
|
+
isobar -H
|
|
99
|
+
|
|
100
|
+
# 7-day forecast
|
|
101
|
+
isobar --forecast
|
|
102
|
+
isobar -f
|
|
103
|
+
isobar "San Francisco" --forecast
|
|
104
|
+
isobar -f Sydney
|
|
105
|
+
|
|
106
|
+
# Metric units (Celsius, km/h, mm)
|
|
107
|
+
isobar --metric
|
|
108
|
+
isobar -m
|
|
109
|
+
isobar Tokyo -m
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## ⌨️ Shell Completion
|
|
113
|
+
|
|
114
|
+
Isobar supports tab-completion for city names based on your search history. To enable it for your shell:
|
|
115
|
+
|
|
116
|
+
**Zsh:**
|
|
117
|
+
```bash
|
|
118
|
+
isobar --install-completion zsh
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
**Bash:**
|
|
122
|
+
```bash
|
|
123
|
+
isobar --install-completion bash
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
*(Note: You may need to restart your terminal after installing completion).*
|
|
127
|
+
|
|
128
|
+
## 🖥️ Example Output
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
Chicago, Illinois Weather
|
|
132
|
+
☀️ Conditions: Mainly clear
|
|
133
|
+
🌡️ Temperature: 37.1°F
|
|
134
|
+
🤔 Real Feel: 30.4°F
|
|
135
|
+
💨 Wind Speed: 4.3 mph
|
|
136
|
+
💧 Humidity: 58%
|
|
137
|
+
☔ Precip Chance: 0% (6h) | Dry conditions expected
|
|
138
|
+
🌅 Sunrise: 6:29 AM
|
|
139
|
+
🌇 Sunset: 5:37 PM
|
|
140
|
+
|
|
141
|
+
7-Day Forecast — Chicago, Illinois
|
|
142
|
+
Day Conditions High Low Rain%
|
|
143
|
+
Today ☁️ Overcast 41.7°F 23.9°F 1%
|
|
144
|
+
Fri Feb 27 ⛅ Partly cloudy 66.4°F 32.4°F 2%
|
|
145
|
+
Sat Feb 28 🌨️ Moderate snow 44.0°F 26.5°F 38%
|
|
146
|
+
Sun Mar 1 ☁️ Overcast 29.0°F 26.6°F 36%
|
|
147
|
+
Mon Mar 2 ☁️ Overcast 33.6°F 27.1°F 36%
|
|
148
|
+
Tue Mar 3 🌦️ Light drizzle 36.8°F 30.9°F 27%
|
|
149
|
+
Wed Mar 4 🌦️ Moderate drizzle 41.3°F 33.5°F 46%
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## 🛠 Tech Stack
|
|
153
|
+
|
|
154
|
+
| Tool | Purpose |
|
|
155
|
+
|---|---|
|
|
156
|
+
| [Typer](https://typer.tiangolo.com/) | CLI framework |
|
|
157
|
+
| [Rich](https://github.com/Textualize/rich) | Terminal UI |
|
|
158
|
+
| [Open-Meteo](https://open-meteo.com/) | Weather + forecast data (free, no key) |
|
|
159
|
+
| [ip-api.com](http://ip-api.com/) | Auto-location detection (free) |
|
|
160
|
+
| [timezonefinder](https://github.com/jannikmi/timezonefinder) | Dynamic timezone from coordinates (offline) |
|
|
161
|
+
| [pytest](https://docs.pytest.org/) | Unit testing framework |
|
|
162
|
+
| [requests-mock](https://requests-mock.readthedocs.io/) | Mocking for API testing |
|
|
163
|
+
| [Ruff](https://docs.astral.sh/ruff/) | Linting + formatting |
|
|
164
|
+
| [pip-audit](https://github.com/pypa/pip-audit) | Dependency security scanning (CI) |
|
|
165
|
+
|
|
166
|
+
## 📈 Project Status
|
|
167
|
+
|
|
168
|
+
✅ **Phase 1 Complete** — Caching + Auto-Location
|
|
169
|
+
✅ **Phase 2 Complete** — Precipitation, Sunrise/Sunset, Condition Icons
|
|
170
|
+
✅ **Phase 3 Complete** — 7-Day Forecast, Dynamic Timezone, `--city` flag
|
|
171
|
+
✅ **CI/CD** — Ruff lint + security audit on every push and PR
|
|
172
|
+
See [ROADMAP.md](ROADMAP.md) and [CHANGELOG.md](CHANGELOG.md)
|
|
173
|
+
|
|
174
|
+
## 🤝 Contributing
|
|
175
|
+
|
|
176
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md). New features must answer: **"Does this help understand what it feels like outside?"**
|
|
177
|
+
|
|
178
|
+
## 📄 License
|
|
179
|
+
|
|
180
|
+
MIT. See [LICENSE](LICENSE).
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
# Isobar CLI
|
|
2
|
+
|
|
3
|
+

|
|
4
|
+

|
|
5
|
+

|
|
6
|
+

|
|
7
|
+

|
|
8
|
+

|
|
9
|
+
|
|
10
|
+
A terminal weather tool designed to give you a fast, clean sense of what the weather **feels like** outside; right now and for the week ahead. Built with Python and Rich.
|
|
11
|
+
|
|
12
|
+
## Philosophy
|
|
13
|
+
|
|
14
|
+
Isobar CLI answers a simple question: **"What does it feel like outside right now, and how do I prepare to be outside?"**
|
|
15
|
+
|
|
16
|
+
Most weather apps overwhelm you with data. Isobar strips away everything except what matters when you're deciding whether to grab a jacket.
|
|
17
|
+
|
|
18
|
+
### Design Principles
|
|
19
|
+
- **Essential over comprehensive** — Show Real Feel, not 47 data points
|
|
20
|
+
- **Terminal-native** — Built for quick checks in your workflow
|
|
21
|
+
- **Zero friction** — No API keys, no config files
|
|
22
|
+
- **Information density** — Clean, borderless UI
|
|
23
|
+
- **Intentional features** — Each must answer: *"Does this help understand what it feels like outside?"*
|
|
24
|
+
|
|
25
|
+
## ✨ Features
|
|
26
|
+
|
|
27
|
+
- **Auto-Location** — `isobar` detects your city automatically 🌍
|
|
28
|
+
- **Weather Condition Icons** — WMO-standard emoji + plain-English description (☀️ Clear sky, 🌨️ Moderate snow, ⛈️ Thunderstorm)
|
|
29
|
+
- **Real Feel** — Apparent temperature (what it *feels* like)
|
|
30
|
+
- **Air Quality Index** — US AQI with health classifications 😷
|
|
31
|
+
- **7-Day Forecast** — Full week outlook with color-coded highs/lows and daily rain %
|
|
32
|
+
- **Hourly Outlook** — Next 12 hours of temp and rain chance (`--hourly`)
|
|
33
|
+
- **Multiple Cities** — Compare weather across several cities at once (side-by-side)
|
|
34
|
+
- **Smart Suggestions** — Fuzzy city name matching if you make a typo
|
|
35
|
+
- **Shell Completion** — Tab-complete city names from your search history
|
|
36
|
+
- **Dynamic Timezone** — Sunrise/sunset always shown in the city's local time, not yours
|
|
37
|
+
- **Precipitation Forecast** — Next 6h rain/snow chance + totals
|
|
38
|
+
- **Smart Caching** — 15-min cache per city (`~/.cache/isobar/`)
|
|
39
|
+
- **Color-Coded Temps** — Cyan → Blue → Green → Yellow → Red
|
|
40
|
+
- **Metric Support** — `--metric` or `-m` for Celsius, km/h, and mm
|
|
41
|
+
- **No API Keys** — Free Open-Meteo + ip-api.com
|
|
42
|
+
- **Zero Config** — Works instantly after `pip install .`
|
|
43
|
+
|
|
44
|
+
## 🚀 Installation
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
git clone https://github.com/KnowOneActual/isobar-cli.git
|
|
48
|
+
cd isobar-cli
|
|
49
|
+
pip install .
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## 📱 Usage
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
# Auto-detect your location
|
|
56
|
+
isobar
|
|
57
|
+
|
|
58
|
+
# Specify a city
|
|
59
|
+
isobar Chicago
|
|
60
|
+
isobar London Tokyo Paris # Multiple cities
|
|
61
|
+
isobar "New York" # Use quotes for multi-word cities
|
|
62
|
+
|
|
63
|
+
# Hourly outlook (next 12h)
|
|
64
|
+
isobar --hourly
|
|
65
|
+
isobar -H
|
|
66
|
+
|
|
67
|
+
# 7-day forecast
|
|
68
|
+
isobar --forecast
|
|
69
|
+
isobar -f
|
|
70
|
+
isobar "San Francisco" --forecast
|
|
71
|
+
isobar -f Sydney
|
|
72
|
+
|
|
73
|
+
# Metric units (Celsius, km/h, mm)
|
|
74
|
+
isobar --metric
|
|
75
|
+
isobar -m
|
|
76
|
+
isobar Tokyo -m
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## ⌨️ Shell Completion
|
|
80
|
+
|
|
81
|
+
Isobar supports tab-completion for city names based on your search history. To enable it for your shell:
|
|
82
|
+
|
|
83
|
+
**Zsh:**
|
|
84
|
+
```bash
|
|
85
|
+
isobar --install-completion zsh
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Bash:**
|
|
89
|
+
```bash
|
|
90
|
+
isobar --install-completion bash
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
*(Note: You may need to restart your terminal after installing completion).*
|
|
94
|
+
|
|
95
|
+
## 🖥️ Example Output
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
Chicago, Illinois Weather
|
|
99
|
+
☀️ Conditions: Mainly clear
|
|
100
|
+
🌡️ Temperature: 37.1°F
|
|
101
|
+
🤔 Real Feel: 30.4°F
|
|
102
|
+
💨 Wind Speed: 4.3 mph
|
|
103
|
+
💧 Humidity: 58%
|
|
104
|
+
☔ Precip Chance: 0% (6h) | Dry conditions expected
|
|
105
|
+
🌅 Sunrise: 6:29 AM
|
|
106
|
+
🌇 Sunset: 5:37 PM
|
|
107
|
+
|
|
108
|
+
7-Day Forecast — Chicago, Illinois
|
|
109
|
+
Day Conditions High Low Rain%
|
|
110
|
+
Today ☁️ Overcast 41.7°F 23.9°F 1%
|
|
111
|
+
Fri Feb 27 ⛅ Partly cloudy 66.4°F 32.4°F 2%
|
|
112
|
+
Sat Feb 28 🌨️ Moderate snow 44.0°F 26.5°F 38%
|
|
113
|
+
Sun Mar 1 ☁️ Overcast 29.0°F 26.6°F 36%
|
|
114
|
+
Mon Mar 2 ☁️ Overcast 33.6°F 27.1°F 36%
|
|
115
|
+
Tue Mar 3 🌦️ Light drizzle 36.8°F 30.9°F 27%
|
|
116
|
+
Wed Mar 4 🌦️ Moderate drizzle 41.3°F 33.5°F 46%
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## 🛠 Tech Stack
|
|
120
|
+
|
|
121
|
+
| Tool | Purpose |
|
|
122
|
+
|---|---|
|
|
123
|
+
| [Typer](https://typer.tiangolo.com/) | CLI framework |
|
|
124
|
+
| [Rich](https://github.com/Textualize/rich) | Terminal UI |
|
|
125
|
+
| [Open-Meteo](https://open-meteo.com/) | Weather + forecast data (free, no key) |
|
|
126
|
+
| [ip-api.com](http://ip-api.com/) | Auto-location detection (free) |
|
|
127
|
+
| [timezonefinder](https://github.com/jannikmi/timezonefinder) | Dynamic timezone from coordinates (offline) |
|
|
128
|
+
| [pytest](https://docs.pytest.org/) | Unit testing framework |
|
|
129
|
+
| [requests-mock](https://requests-mock.readthedocs.io/) | Mocking for API testing |
|
|
130
|
+
| [Ruff](https://docs.astral.sh/ruff/) | Linting + formatting |
|
|
131
|
+
| [pip-audit](https://github.com/pypa/pip-audit) | Dependency security scanning (CI) |
|
|
132
|
+
|
|
133
|
+
## 📈 Project Status
|
|
134
|
+
|
|
135
|
+
✅ **Phase 1 Complete** — Caching + Auto-Location
|
|
136
|
+
✅ **Phase 2 Complete** — Precipitation, Sunrise/Sunset, Condition Icons
|
|
137
|
+
✅ **Phase 3 Complete** — 7-Day Forecast, Dynamic Timezone, `--city` flag
|
|
138
|
+
✅ **CI/CD** — Ruff lint + security audit on every push and PR
|
|
139
|
+
See [ROADMAP.md](ROADMAP.md) and [CHANGELOG.md](CHANGELOG.md)
|
|
140
|
+
|
|
141
|
+
## 🤝 Contributing
|
|
142
|
+
|
|
143
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md). New features must answer: **"Does this help understand what it feels like outside?"**
|
|
144
|
+
|
|
145
|
+
## 📄 License
|
|
146
|
+
|
|
147
|
+
MIT. See [LICENSE](LICENSE).
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=61.0"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "isobar-cli"
|
|
7
|
+
version = "1.0.0"
|
|
8
|
+
description = "A visually pleasing terminal weather tool focusing on Real Feel and Windchill."
|
|
9
|
+
authors = [
|
|
10
|
+
{ name="Beau Bremer / KnowOneActual" },
|
|
11
|
+
]
|
|
12
|
+
readme = "README.md"
|
|
13
|
+
license = "MIT"
|
|
14
|
+
keywords = ["weather", "cli", "terminal", "meteo", "forecast"]
|
|
15
|
+
classifiers = [
|
|
16
|
+
"Development Status :: 5 - Production/Stable",
|
|
17
|
+
"Environment :: Console",
|
|
18
|
+
"Intended Audience :: End Users/Desktop",
|
|
19
|
+
"Programming Language :: Python :: 3",
|
|
20
|
+
"Programming Language :: Python :: 3.8",
|
|
21
|
+
"Programming Language :: Python :: 3.9",
|
|
22
|
+
"Programming Language :: Python :: 3.10",
|
|
23
|
+
"Programming Language :: Python :: 3.11",
|
|
24
|
+
"Topic :: Utilities",
|
|
25
|
+
]
|
|
26
|
+
dependencies = [
|
|
27
|
+
"rich>=13.0.0",
|
|
28
|
+
"requests>=2.31.0",
|
|
29
|
+
"typer>=0.9.0",
|
|
30
|
+
"timezonefinder>=6.0.0",
|
|
31
|
+
]
|
|
32
|
+
requires-python = ">=3.8"
|
|
33
|
+
|
|
34
|
+
[project.urls]
|
|
35
|
+
Homepage = "https://github.com/KnowOneActual/isobar-cli"
|
|
36
|
+
Repository = "https://github.com/KnowOneActual/isobar-cli"
|
|
37
|
+
Issues = "https://github.com/KnowOneActual/isobar-cli/issues"
|
|
38
|
+
Changelog = "https://github.com/KnowOneActual/isobar-cli/blob/main/CHANGELOG.md"
|
|
39
|
+
|
|
40
|
+
[project.optional-dependencies]
|
|
41
|
+
|
|
42
|
+
test = [
|
|
43
|
+
"pytest>=7.0.0",
|
|
44
|
+
"requests-mock>=1.11.0",
|
|
45
|
+
"pytest-cov>=4.1.0",
|
|
46
|
+
]
|
|
47
|
+
|
|
48
|
+
[project.scripts]
|
|
49
|
+
isobar = "isobar_cli.main:app" # This allows you to type 'isobar' in the terminal to run it
|
|
50
|
+
|
|
51
|
+
[tool.setuptools]
|
|
52
|
+
package-dir = {"" = "src"}
|
|
53
|
+
packages = ["isobar_cli"]
|
|
54
|
+
|
|
55
|
+
[tool.ruff]
|
|
56
|
+
# Exclude a variety of commonly ignored directories.
|
|
57
|
+
exclude = [
|
|
58
|
+
".bzr",
|
|
59
|
+
".direnv",
|
|
60
|
+
".eggs",
|
|
61
|
+
".git",
|
|
62
|
+
".git-rewrite",
|
|
63
|
+
".hg",
|
|
64
|
+
".ipynb_checkpoints",
|
|
65
|
+
".mypy_cache",
|
|
66
|
+
".nox",
|
|
67
|
+
".pants.d",
|
|
68
|
+
".pyenv",
|
|
69
|
+
".pytest_cache",
|
|
70
|
+
".pytype",
|
|
71
|
+
".ruff_cache",
|
|
72
|
+
".svn",
|
|
73
|
+
".tox",
|
|
74
|
+
".venv",
|
|
75
|
+
".vscode",
|
|
76
|
+
"__pypackages__",
|
|
77
|
+
"_build",
|
|
78
|
+
"buck-out",
|
|
79
|
+
"build",
|
|
80
|
+
"dist",
|
|
81
|
+
"node_modules",
|
|
82
|
+
"site-packages",
|
|
83
|
+
"venv",
|
|
84
|
+
]
|
|
85
|
+
|
|
86
|
+
line-length = 88
|
|
87
|
+
indent-width = 4
|
|
88
|
+
target-version = "py39"
|
|
89
|
+
|
|
90
|
+
[tool.ruff.lint]
|
|
91
|
+
select = [
|
|
92
|
+
"E", # pycodestyle errors
|
|
93
|
+
"W", # pycodestyle warnings
|
|
94
|
+
"F", # pyflakes
|
|
95
|
+
"I", # isort
|
|
96
|
+
"B", # flake8-bugbear
|
|
97
|
+
"C4", # flake8-comprehensions
|
|
98
|
+
"UP", # pyupgrade
|
|
99
|
+
]
|
|
100
|
+
ignore = ["E501"]
|
|
101
|
+
|
|
102
|
+
[tool.ruff.format]
|
|
103
|
+
quote-style = "double"
|
|
104
|
+
indent-style = "space"
|
|
105
|
+
skip-magic-trailing-comma = false
|
|
106
|
+
line-ending = "auto"
|
|
107
|
+
docstring-code-format = false
|
|
108
|
+
docstring-code-line-length = "dynamic"
|
|
109
|
+
|
|
110
|
+
[tool.pytest.ini_options]
|
|
111
|
+
testpaths = ["tests"]
|
|
112
|
+
addopts = "--cov=src/isobar_cli --cov-report=term-missing"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.6.2"
|