Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dev #10, #11 #12

Merged
merged 2 commits into from
Jun 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .devcontainer/python-3.10/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"service": "python-3.10",
"forwardPorts": [],
"shutdownAction": "stopCompose",
"workspaceFolder": "/workspaces/weatherman",
"workspaceFolder": "/workspaces/weatherapi",
"remoteEnv": {},
"features": {
"ghcr.io/devcontainers/features/common-utils:2": {
Expand Down
10 changes: 5 additions & 5 deletions .devcontainer/python-3.10/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@ version: '3'
services:
python-3.10: # nosemgrep
image: mcr.microsoft.com/devcontainers/python:3.10
container_name: $USER-python-3.10-weatherman
container_name: $USER-python-3.10-weatherapi
volumes:
- ../../:/workspaces/weatherman:cached
- ../../:/workspaces/weatherapi:cached
command: sleep infinity
env_file:
- ../devcontainer.env
platform: linux/amd64
networks:
- weatherman-network
- weatherapi-network

networks:
weatherman-network:
name: "${USER}-weatherman-network"
weatherapi-network:
name: "${USER}-weatherapi-network"
2 changes: 1 addition & 1 deletion .devcontainer/python-3.11/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"service": "python-3.11",
"forwardPorts": [],
"shutdownAction": "stopCompose",
"workspaceFolder": "/workspaces/weatherman",
"workspaceFolder": "/workspaces/weatherapi",
"remoteEnv": {},
"features": {
"ghcr.io/devcontainers/features/common-utils:2": {
Expand Down
10 changes: 5 additions & 5 deletions .devcontainer/python-3.11/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@ version: '3'
services:
python-3.11: # nosemgrep
image: mcr.microsoft.com/devcontainers/python:3.11
container_name: $USER-python-3.11-weatherman
container_name: $USER-python-3.11-weatherapi
volumes:
- ../../:/workspaces/weatherman:cached
- ../../:/workspaces/weatherapi:cached
command: sleep infinity
env_file:
- ../devcontainer.env
platform: linux/amd64
networks:
- weatherman-network
- weatherapi-network

networks:
weatherman-network:
name: "${USER}-weatherman-network"
weatherapi-network:
name: "${USER}-weatherapi-network"
2 changes: 1 addition & 1 deletion .devcontainer/python-3.12/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"service": "python-3.12",
"forwardPorts": [],
"shutdownAction": "stopCompose",
"workspaceFolder": "/workspaces/weatherman",
"workspaceFolder": "/workspaces/weatherapi",
"remoteEnv": {},
"features": {
"ghcr.io/devcontainers/features/common-utils:2": {
Expand Down
10 changes: 5 additions & 5 deletions .devcontainer/python-3.12/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@ version: '3'
services:
python-3.12: # nosemgrep
image: mcr.microsoft.com/devcontainers/python:3.12
container_name: $USER-python-3.12-weatherman
container_name: $USER-python-3.12-weatherapi
volumes:
- ../../:/workspaces/weatherman:cached
- ../../:/workspaces/weatherapi:cached
command: sleep infinity
env_file:
- ../devcontainer.env
platform: linux/amd64
networks:
- weatherman-network
- weatherapi-network

networks:
weatherman-network:
name: "${USER}-weatherman-network"
weatherapi-network:
name: "${USER}-weatherapi-network"
2 changes: 1 addition & 1 deletion .devcontainer/python-3.9/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"service": "python-3.9",
"forwardPorts": [],
"shutdownAction": "stopCompose",
"workspaceFolder": "/workspaces/weatherman",
"workspaceFolder": "/workspaces/weatherapi",
"remoteEnv": {},
"features": {
"ghcr.io/devcontainers/features/common-utils:2": {
Expand Down
10 changes: 5 additions & 5 deletions .devcontainer/python-3.9/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@ version: '3'
services:
python-3.9: # nosemgrep
image: mcr.microsoft.com/devcontainers/python:3.9
container_name: $USER-python-3.9-weatherman
container_name: $USER-python-3.9-weatherapi
volumes:
- ../../:/workspaces/weatherman:cached
- ../../:/workspaces/weatherapi:cached
command: sleep infinity
env_file:
- ../devcontainer.env
platform: linux/amd64
networks:
- weatherman-network
- weatherapi-network

networks:
weatherman-network:
name: "${USER}-weatherman-network"
weatherapi-network:
name: "${USER}-weatherapi-network"
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Provide a clear and concise description of the bug.
Include source code:

```python
from weatherman.app import app
from weatherapi.app import app
...
```

Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ contact_links:
about: Please report security vulnerabilities to [email protected]
- name: Question or Problem
about: Ask a question or ask about a problem in GitHub Discussions.
url: https://github.com/airtai/weatherman/discussions/categories/questions
url: https://github.com/airtai/weatherapi/discussions/categories/questions
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ Provide a clear and concise description of the problem you've encountered. For e
Clearly and concisely describe the desired outcome or solution.

**Feature code example**
To help others understand the proposed feature, illustrate it with a **weatherman** code example:
To help others understand the proposed feature, illustrate it with a **weatherapi** code example:

```python
from weatherman.app import app
from weatherapi.app import app
...
```

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docker_cleanup.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
with:
# NOTE: at now only orgs is supported
owner: airtai
name: weatherman
name: weatherapi

token: ${{ secrets.GITHUB_TOKEN }}
# Keep latest N untagged images
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@ jobs:
pip install -e ".[docs,lint]"
- name: Run mypy
shell: bash
run: mypy weatherman tests
run: mypy weatherapi tests

- name: Run bandit
shell: bash
run: bandit -c pyproject.toml -r weatherman
run: bandit -c pyproject.toml -r weatherapi

- name: Run Semgrep
shell: bash
Expand Down Expand Up @@ -146,7 +146,7 @@ jobs:
- run: ls -la coverage
- run: coverage combine coverage
- run: coverage report
- run: coverage html --show-contexts --title "weatherman coverage for ${{ github.sha }}"
- run: coverage html --show-contexts --title "weatherapi coverage for ${{ github.sha }}"

- name: Store coverage html
uses: actions/upload-artifact@v4
Expand Down
10 changes: 5 additions & 5 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,21 +36,21 @@ After activating the virtual environment as described above, run:
pip install -e ".[dev]"
```

This will install all the dependencies and your local **WeatherMan** in your virtual environment.
This will install all the dependencies and your local **WeatherAPI** in your virtual environment.

### Using Your local **WeatherMan**
### Using Your local **WeatherAPI**

If you create a Python file that imports and uses **WeatherMan**, and run it with the Python from your local environment, it will use your local **WeatherMan** source code.
If you create a Python file that imports and uses **WeatherAPI**, and run it with the Python from your local environment, it will use your local **WeatherAPI** source code.

Whenever you update your local **WeatherMan** source code, it will automatically use the latest version when you run your Python file again. This is because it is installed with `-e`.
Whenever you update your local **WeatherAPI** source code, it will automatically use the latest version when you run your Python file again. This is because it is installed with `-e`.

This way, you don't have to "install" your local version to be able to test every change.

## Running Tests

### Pytest

To run tests with your current **WeatherMan** application and Python environment, use:
To run tests with your current **WeatherAPI** application and Python environment, use:

```bash
pytest tests
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1

RUN python3 -m pip install --upgrade pip

COPY weatherman ./weatherman
COPY weatherapi ./weatherapi
COPY scripts/* pyproject.toml README.md ./
RUN pip install -e ".[dev]"

Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# weatherman
A weatherman api to be used with FastAgency
# Weather API
A simple weather API made for usage with FastAgency
6 changes: 3 additions & 3 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# Security Policy

Security and stability are paramount for WeatherMan.
Security and stability are paramount for WeatherAPI.

Learn more below. 👇

## Versions

The latest version of WeatherMan is actively supported.
The latest version of WeatherAPI is actively supported.

We strongly encourage you to write tests for your application and regularly update your WeatherMan version after confirming that your tests pass. This ensures you benefit from the latest features, bug fixes, and **security updates**.
We strongly encourage you to write tests for your application and regularly update your WeatherAPI version after confirming that your tests pass. This ensures you benefit from the latest features, bug fixes, and **security updates**.

## Reporting a Vulnerability

Expand Down
8 changes: 4 additions & 4 deletions docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ x-logging: &default-logging
version: "3.4"

name: weatherman
name: weatherapi
services:
fastapi-app: # nosemgrep
image: ghcr.io/${GITHUB_REPOSITORY}:${TAG}
Expand All @@ -22,8 +22,8 @@ services:
- DOMAIN=${DOMAIN}
logging: *default-logging
networks:
- weatherman
- weatherapi

networks:
weatherman:
name: weatherman
weatherapi:
name: weatherapi
36 changes: 18 additions & 18 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ requires = ["hatchling"]
build-backend = "hatchling.build"

[project]
name = "weatherman"
description = "WeatherMan: an API to use with FastAgency"
name = "weatherapi"
description = "WeatherAPI: A simple weather API made for usage with FastAgency"
readme = "README.md"
authors = [
{ name = "airt", email = "[email protected]" },
Expand Down Expand Up @@ -64,40 +64,40 @@ lint = [
"types-Pygments",
"types-docutils",
"mypy==1.10.0",
"ruff==0.4.7",
"ruff==0.4.8",
"pyupgrade-directories==0.3.0",
"bandit==1.7.8",
"semgrep==1.71.0",
"semgrep==1.75.0",
"pytest-mypy-plugins==3.1.2",
]

test-core = [
"coverage[toml]==7.5.3",
"pytest==8.2.1",
"pytest-asyncio==0.23.6",
"pytest==8.2.2",
"pytest-asyncio==0.23.7",
]

testing = [
"weatherman[test-core]",
"weatherman[server]", # Uvicorn is needed for testing
"weatherapi[test-core]",
"weatherapi[server]", # Uvicorn is needed for testing
]

dev = [
"weatherman[server,lint,testing]",
"weatherapi[server,lint,testing]",
"pre-commit==3.7.1",
"detect-secrets==1.5.0",
]

[project.urls]
Tracker = "https://github.com/airtai/weatherman/issues"
Source = "https://github.com/airtai/weatherman"
Tracker = "https://github.com/airtai/weatherapi/issues"
Source = "https://github.com/airtai/weatherapi"
Discord = "https://discord.gg/qFm6aSqq59"

[project.scripts]
# weatherman = "weatherman.__main__:cli"
# weatherapi = "weatherapi.__main__:cli"

[tool.hatch.version]
path = "weatherman/__about__.py"
path = "weatherapi/__about__.py"

[tool.hatch.build]
skip-excluded-dirs = true
Expand All @@ -110,15 +110,15 @@ exclude = [
allow-direct-references = true

[tool.hatch.build.targets.wheel]
only-include = ["weatherman"]
only-include = ["weatherapi"]

[tool.hatch.build.targets.wheel.sources]
"src" = ""
# "scripts" = "weatherman/templates"
# "scripts" = "weatherapi/templates"

[tool.mypy]

files = ["weatherman", "tests"]
files = ["weatherapi", "tests"]

strict = true
python_version = "3.9"
Expand All @@ -145,7 +145,7 @@ disallow_any_unimported = false
fix = true
line-length = 88
# target-version = 'py39'
include = ["weatherman/**/*.py", "weatherman/**/*.pyi", "tests/**/*.py", "pyproject.toml"]
include = ["weatherapi/**/*.py", "weatherapi/**/*.pyi", "tests/**/*.py", "pyproject.toml"]
exclude = ["docs/docs_src"]

[tool.ruff.lint]
Expand Down Expand Up @@ -206,7 +206,7 @@ concurrency = [
"thread"
]
source = [
"weatherman",
"weatherapi",
# "tests",
]
context = '${CONTEXT}'
Expand Down
2 changes: 1 addition & 1 deletion scripts/deploy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ fi

ssh_command="ssh -o StrictHostKeyChecking=no -i key.pem azureuser@$DOMAIN"

container_name="weatherman"
container_name="weatherapi"
log_file="${container_name}.log"

echo "INFO: Capturing docker container logs"
Expand Down
2 changes: 1 addition & 1 deletion scripts/lint-pre-commit.sh
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,5 @@ pip install --editable ".[dev]" \
# and specify the package to run on explicitly.
# Note that we do not use --ignore-missing-imports,
# as this can give us false confidence in our results.
# mypy weatherman
# mypy weatherapi
./scripts/lint.sh
4 changes: 2 additions & 2 deletions scripts/lint.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/usr/bin/env bash

echo "Running pyup_dirs..."
pyup_dirs --py38-plus --recursive weatherman tests
pyup_dirs --py38-plus --recursive weatherapi tests

echo "Running ruff linter (isort, flake, pyupgrade, etc. replacement)..."
ruff check
Expand All @@ -10,4 +10,4 @@ echo "Running ruff formater (black replacement)..."
ruff format

# echo "Running black..."
# black weatherman examples tests docs
# black weatherapi examples tests docs
2 changes: 1 addition & 1 deletion scripts/run_server.sh
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
#!/usr/bin/env bash

uvicorn weatherman.app:app --workers 2 --host 0.0.0.0 --proxy-headers
uvicorn weatherapi.app:app --workers 2 --host 0.0.0.0 --proxy-headers
Loading
Loading