Initial commit

This commit is contained in:
Evan Fiordeliso 2023-01-29 09:34:51 -05:00
commit e1ee7b16ee
12 changed files with 176 additions and 0 deletions

58
.pre-commit-config.yaml Normal file
View File

@ -0,0 +1,58 @@
repos:
- repo: https://github.com/asottile/pyupgrade
rev: v2.3.0
hooks:
- id: pyupgrade
args: [--py37-plus]
- repo: https://github.com/psf/black
rev: 19.10b0
hooks:
- id: black
args:
- --safe
- --quiet
files: ^((homeassistant|script|tests)/.+)?[^/]+\.py$
- repo: https://github.com/codespell-project/codespell
rev: v1.16.0
hooks:
- id: codespell
args:
- --ignore-words-list=hass,alot,datas,dof,dur,farenheit,hist,iff,ines,ist,lightsensor,mut,nd,pres,referer,ser,serie,te,technik,ue,uint,visability,wan,wanna,withing
- --skip="./.*,*.csv,*.json"
- --quiet-level=2
exclude_types: [csv, json]
- repo: https://gitlab.com/pycqa/flake8
rev: 3.8.1
hooks:
- id: flake8
additional_dependencies:
- flake8-docstrings==1.5.0
- pydocstyle==5.0.2
files: ^(homeassistant|script|tests)/.+\.py$
- repo: https://github.com/PyCQA/bandit
rev: 1.6.2
hooks:
- id: bandit
args:
- --quiet
- --format=custom
- --configfile=tests/bandit.yaml
files: ^(homeassistant|script|tests)/.+\.py$
- repo: https://github.com/pre-commit/mirrors-isort
rev: v4.3.21
hooks:
- id: isort
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.4.0
hooks:
- id: check-executables-have-shebangs
stages: [manual]
- id: check-json
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v0.770
hooks:
- id: mypy
args:
- --pretty
- --show-error-codes
- --show-error-context

3
README.md Normal file
View File

@ -0,0 +1,3 @@
# Flickerstrip for Home Assistant
## Installation

View File

View File

@ -0,0 +1,7 @@
from homeassistant import core
async def async_setup(hass: core.HomeAssistant, config: dict) -> bool:
"""Set up the Flickerstrip component."""
# @TODO: Add setup code.
return True

View File

@ -0,0 +1 @@
DOMAIN = "flickerstrip"

View File

@ -0,0 +1,11 @@
{
"codeowners": ["@fifitido"],
"config_flow": true,
"dependencies": [],
"documentation": "https://git.fifitido.net/lib/hass_flickerstrip",
"domain": "flickerstrip",
"iot_class": "local_polling",
"name": "Flickerstrip",
"requirements": [],
"version": "1.0.0"
}

5
hacs.json Normal file
View File

@ -0,0 +1,5 @@
{
"name": "Flickerstrip",
"render_readme": true,
"iot_class": "local_polling"
}

3
requirements.test.txt Normal file
View File

@ -0,0 +1,3 @@
pytest
pytest-cov==2.9.0
pytest-homeassistant-custom-component

62
setup.cfg Normal file
View File

@ -0,0 +1,62 @@
[coverage:run]
source =
custom_components
[coverage:report]
exclude_lines =
pragma: no cover
raise NotImplemented()
if __name__ == '__main__':
main()
show_missing = true
[tool:pytest]
testpaths = tests
norecursedirs = .git
addopts =
--strict
--cov=custom_components
[flake8]
# https://github.com/ambv/black#line-length
max-line-length = 88
# E501: line too long
# W503: Line break occurred before a binary operator
# E203: Whitespace before ':'
# D202 No blank lines allowed after function docstring
# W504 line break after binary operator
ignore =
E501,
W503,
E203,
D202,
W504
[isort]
# https://github.com/timothycrosley/isort
# https://github.com/timothycrosley/isort/wiki/isort-Settings
# splits long import on multiple lines indented by 4 spaces
multi_line_output = 3
include_trailing_comma=True
force_grid_wrap=0
use_parentheses=True
line_length=88
indent = " "
# by default isort don't check module indexes
not_skip = __init__.py
# will group `import x` and `from x import` of the same module.
force_sort_within_sections = true
sections = FUTURE,STDLIB,INBETWEENS,THIRDPARTY,FIRSTPARTY,LOCALFOLDER
default_section = THIRDPARTY
known_first_party = custom_components,tests
forced_separate = tests
combine_as_imports = true
[mypy]
python_version = 3.7
ignore_errors = true
follow_imports = silent
ignore_missing_imports = true
warn_incomplete_stub = true
warn_redundant_casts = true
warn_unused_configs = true

0
tests/__init__.py Normal file
View File

17
tests/bandit.yaml Normal file
View File

@ -0,0 +1,17 @@
# https://bandit.readthedocs.io/en/latest/config.html
tests:
- B108
- B306
- B307
- B313
- B314
- B315
- B316
- B317
- B318
- B319
- B320
- B325
- B602
- B604

9
tests/test_init.py Normal file
View File

@ -0,0 +1,9 @@
"""Test component setup."""
from homeassistant.setup import async_setup_component
from custom_components.flickerstrip.const import DOMAIN
async def test_async_setup(hass):
"""Test the component gets setup."""
assert await async_setup_component(hass, DOMAIN, {}) is True