From: Marcel van der Veldt Date: Tue, 14 Apr 2020 21:01:45 +0000 (+0200) Subject: add jemalloc support X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=26681c3c553ed4b5470c3194d058b0e6a38060cf;p=music-assistant-server.git add jemalloc support --- diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 00000000..390f516f --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,19 @@ +repos: + - repo: https://github.com/psf/black + rev: 19.3b0 + hooks: + - id: black + args: + - --safe + - --quiet + - repo: https://gitlab.com/pycqa/flake8 + rev: 3.7.8 + hooks: + - id: flake8 + additional_dependencies: + - flake8-docstrings==1.3.1 + - pydocstyle==4.0.0 + - repo: https://github.com/pre-commit/mirrors-isort + rev: v4.3.21 + hooks: + - id: isort diff --git a/Dockerfile b/Dockerfile index ec3a702f..405c42f9 100755 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,9 @@ -FROM python:3.7-slim +FROM python:slim COPY requirements.txt requirements.txt RUN apt-get update && apt-get install -y --no-install-recommends \ # required packages - flac sox libsox-fmt-mp3 zip curl wget unzip ffmpeg libsndfile1 libtag1v5 \ + flac sox libsox-fmt-mp3 zip curl wget unzip ffmpeg libsndfile1 libtag1v5 libjemalloc1 \ # build packages libtag1-dev build-essential && \ # install required python packages with pip @@ -25,4 +25,6 @@ ENV mass_debug false ENV mass_datadir /data ENV mass_update false +ENV LD_PRELOAD="/usr/local/lib/libjemalloc.so.2" + CMD ["/usr/src/app/mass.py"] \ No newline at end of file diff --git a/pylintrc b/pylintrc new file mode 100644 index 00000000..1f4053fd --- /dev/null +++ b/pylintrc @@ -0,0 +1,62 @@ +[MASTER] +ignore=tests +# Use a conservative default here; 2 should speed up most setups and not hurt +# any too bad. Override on command line as appropriate. +jobs=2 +persistent=no + +[BASIC] +good-names=id,i,j,k,ex,Run,_,fp + +[MESSAGES CONTROL] +# Reasons disabled: +# format - handled by black +# locally-disabled - it spams too much +# duplicate-code - unavoidable +# cyclic-import - doesn't test if both import on load +# abstract-class-little-used - prevents from setting right foundation +# unused-argument - generic callbacks and setup methods create a lot of warnings +# global-statement - used for the on-demand requirement installation +# redefined-variable-type - this is Python, we're duck typing! +# too-many-* - are not enforced for the sake of readability +# too-few-* - same as too-many-* +# abstract-method - with intro of async there are always methods missing +# inconsistent-return-statements - doesn't handle raise +# unnecessary-pass - readability for functions which only contain pass +# import-outside-toplevel - TODO +# too-many-ancestors - it's too strict. +disable= + format, + abstract-class-little-used, + abstract-method, + cyclic-import, + duplicate-code, + global-statement, + import-outside-toplevel, + inconsistent-return-statements, + locally-disabled, + not-context-manager, + redefined-variable-type, + too-few-public-methods, + too-many-ancestors, + too-many-arguments, + too-many-branches, + too-many-instance-attributes, + too-many-lines, + too-many-locals, + too-many-public-methods, + too-many-return-statements, + too-many-statements, + too-many-boolean-expressions, + unnecessary-pass, + unused-argument + +[REPORTS] +score=no + +[TYPECHECK] +# For attrs +ignored-classes=_CountingAttr + +[FORMAT] +expected-line-ending-format=LF \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 7a19dff0..3389454e 100755 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ cytoolz -aiohttp +aiohttp[speedups] requests spotify_token protobuf diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 00000000..05e3f75e --- /dev/null +++ b/setup.cfg @@ -0,0 +1,35 @@ +[flake8] +exclude = .venv,.git,.tox,docs,venv,bin,lib,deps,build +# To work with Black +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 = homeassistant,tests +forced_separate = tests +combine_as_imports = true \ No newline at end of file